@@ -105,6 +105,7 @@ enum ib_device_cap_flags {
IB_DEVICE_UD_TSO = (1<<19),
IB_DEVICE_MEM_MGT_EXTENSIONS = (1<<21),
IB_DEVICE_BLOCK_MULTICAST_LOOPBACK = (1<<22),
+ IB_DEVICE_MASKED_ATOMIC = (1<<23),
};
enum ib_atomic_cap {
@@ -472,7 +473,9 @@ enum ib_wc_opcode {
* receive by testing (opcode & IB_WC_RECV).
*/
IB_WC_RECV = 1 << 7,
- IB_WC_RECV_RDMA_WITH_IMM
+ IB_WC_RECV_RDMA_WITH_IMM,
+ IB_WC_MASKED_COMP_SWAP,
+ IB_WC_MASKED_FETCH_ADD
};
enum ib_wc_flags {
@@ -689,6 +692,8 @@ enum ib_wr_opcode {
IB_WR_RDMA_READ_WITH_INV,
IB_WR_LOCAL_INV,
IB_WR_FAST_REG_MR,
+ IB_WR_ATOMIC_MASKED_CMP_AND_SWP,
+ IB_WR_ATOMIC_MASKED_FETCH_AND_ADD,
};
enum ib_send_flags {
@@ -732,6 +737,8 @@ struct ib_send_wr {
u64 compare_add;
u64 swap;
u32 rkey;
+ u64 compare_add_mask;
+ u64 swap_mask;
} atomic;
struct {
struct ib_ah *ah;