RDS: Implement masked atomic operations

Add two CMSGs for masked versions of cswp and fadd. args
struct modified to use a union for different atomic op type's
arguments. Change IB to do masked atomic ops. Atomic op type
in rds_message similarly unionized.

Signed-off-by: Andy Grover <andy.grover@oracle.com>
This commit is contained in:
Andy Grover
2010-08-25 05:51:28 -07:00
parent 59f740a6ae
commit 20c72bd5f5
5 changed files with 64 additions and 13 deletions

View File

@@ -316,8 +316,18 @@ struct rds_message {
struct {
struct rm_atomic_op {
int op_type;
uint64_t op_swap_add;
uint64_t op_compare;
union {
struct {
uint64_t compare;
uint64_t swap;
uint64_t compare_mask;
uint64_t swap_mask;
} op_m_cswp;
struct {
uint64_t add;
uint64_t nocarry_mask;
} op_m_fadd;
};
u32 op_rkey;
u64 op_remote_addr;