diff options
author | Andy Grover <andy.grover@oracle.com> | 2010-08-25 08:51:28 -0400 |
---|---|---|
committer | Andy Grover <andy.grover@oracle.com> | 2010-09-08 21:16:51 -0400 |
commit | 20c72bd5f5f902e5a8745d51573699605bf8d21c (patch) | |
tree | 6df337e07d423a0859ab92f25525570e134baba1 /net/rds/rds.h | |
parent | 59f740a6aeb2cde2f79fe0df38262d4c1ef35cd8 (diff) |
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 { | |||
316 | struct { | 316 | struct { |
317 | struct rm_atomic_op { | 317 | struct rm_atomic_op { |
318 | int op_type; | 318 | int op_type; |
319 | uint64_t op_swap_add; | 319 | union { |
320 | uint64_t op_compare; | 320 | struct { |
321 | uint64_t compare; | ||
322 | uint64_t swap; | ||
323 | uint64_t compare_mask; | ||
324 | uint64_t swap_mask; | ||
325 | } op_m_cswp; | ||
326 | struct { | ||
327 | uint64_t add; | ||
328 | uint64_t nocarry_mask; | ||
329 | } op_m_fadd; | ||
330 | }; | ||
321 | 331 | ||
322 | u32 op_rkey; | 332 | u32 op_rkey; |
323 | u64 op_remote_addr; | 333 | u64 op_remote_addr; |