diff options
author | Andy Grover <andy.grover@oracle.com> | 2010-08-25 14:51:28 +0200 |
---|---|---|
committer | Andy Grover <andy.grover@oracle.com> | 2010-09-09 03:16:51 +0200 |
commit | 20c72bd5f5f902e5a8745d51573699605bf8d21c (patch) | |
tree | 6df337e07d423a0859ab92f25525570e134baba1 /net/rds/rds.h | |
parent | RDS/IB: print string constants in more places (diff) | |
download | linux-20c72bd5f5f902e5a8745d51573699605bf8d21c.tar.xz linux-20c72bd5f5f902e5a8745d51573699605bf8d21c.zip |
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>
Diffstat (limited to 'net/rds/rds.h')
-rw-r--r-- | net/rds/rds.h | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/net/rds/rds.h b/net/rds/rds.h index aadaddba88a7..8103dcf8b976 100644 --- a/net/rds/rds.h +++ b/net/rds/rds.h @@ -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; |