diff options
| author | David S. Miller <davem@davemloft.net> | 2010-09-09 17:58:11 -0400 |
|---|---|---|
| committer | David S. Miller <davem@davemloft.net> | 2010-09-09 17:58:11 -0400 |
| commit | cf0ac2b8a759fecbefd80f890c6dbe80ba65fd95 (patch) | |
| tree | d5feaeef197dc681d1cdab2e8070ac31f0c43141 /include/linux/rds.h | |
| parent | f27e21a813e2c4ca74b30a5443602e75b146db9b (diff) | |
| parent | 905d64c89e2a9d71d0606904b7c3908633db6072 (diff) | |
Merge branch 'for-davem' of git://oss.oracle.com/git/agrover/linux-2.6
Diffstat (limited to 'include/linux/rds.h')
| -rw-r--r-- | include/linux/rds.h | 106 |
1 files changed, 65 insertions, 41 deletions
diff --git a/include/linux/rds.h b/include/linux/rds.h index 7f3971d9fc5c..91950950aa59 100644 --- a/include/linux/rds.h +++ b/include/linux/rds.h | |||
| @@ -73,6 +73,10 @@ | |||
| 73 | #define RDS_CMSG_RDMA_MAP 3 | 73 | #define RDS_CMSG_RDMA_MAP 3 |
| 74 | #define RDS_CMSG_RDMA_STATUS 4 | 74 | #define RDS_CMSG_RDMA_STATUS 4 |
| 75 | #define RDS_CMSG_CONG_UPDATE 5 | 75 | #define RDS_CMSG_CONG_UPDATE 5 |
| 76 | #define RDS_CMSG_ATOMIC_FADD 6 | ||
| 77 | #define RDS_CMSG_ATOMIC_CSWP 7 | ||
| 78 | #define RDS_CMSG_MASKED_ATOMIC_FADD 8 | ||
| 79 | #define RDS_CMSG_MASKED_ATOMIC_CSWP 9 | ||
| 76 | 80 | ||
| 77 | #define RDS_INFO_FIRST 10000 | 81 | #define RDS_INFO_FIRST 10000 |
| 78 | #define RDS_INFO_COUNTERS 10000 | 82 | #define RDS_INFO_COUNTERS 10000 |
| @@ -89,9 +93,9 @@ | |||
| 89 | #define RDS_INFO_LAST 10010 | 93 | #define RDS_INFO_LAST 10010 |
| 90 | 94 | ||
| 91 | struct rds_info_counter { | 95 | struct rds_info_counter { |
| 92 | u_int8_t name[32]; | 96 | uint8_t name[32]; |
| 93 | u_int64_t value; | 97 | uint64_t value; |
| 94 | } __packed; | 98 | } __attribute__((packed)); |
| 95 | 99 | ||
| 96 | #define RDS_INFO_CONNECTION_FLAG_SENDING 0x01 | 100 | #define RDS_INFO_CONNECTION_FLAG_SENDING 0x01 |
| 97 | #define RDS_INFO_CONNECTION_FLAG_CONNECTING 0x02 | 101 | #define RDS_INFO_CONNECTION_FLAG_CONNECTING 0x02 |
| @@ -100,56 +104,48 @@ struct rds_info_counter { | |||
| 100 | #define TRANSNAMSIZ 16 | 104 | #define TRANSNAMSIZ 16 |
| 101 | 105 | ||
| 102 | struct rds_info_connection { | 106 | struct rds_info_connection { |
| 103 | u_int64_t next_tx_seq; | 107 | uint64_t next_tx_seq; |
| 104 | u_int64_t next_rx_seq; | 108 | uint64_t next_rx_seq; |
| 105 | __be32 laddr; | 109 | __be32 laddr; |
| 106 | __be32 faddr; | 110 | __be32 faddr; |
| 107 | u_int8_t transport[TRANSNAMSIZ]; /* null term ascii */ | 111 | uint8_t transport[TRANSNAMSIZ]; /* null term ascii */ |
| 108 | u_int8_t flags; | 112 | uint8_t flags; |
| 109 | } __packed; | 113 | } __attribute__((packed)); |
| 110 | |||
| 111 | struct rds_info_flow { | ||
| 112 | __be32 laddr; | ||
| 113 | __be32 faddr; | ||
| 114 | u_int32_t bytes; | ||
| 115 | __be16 lport; | ||
| 116 | __be16 fport; | ||
| 117 | } __packed; | ||
| 118 | 114 | ||
| 119 | #define RDS_INFO_MESSAGE_FLAG_ACK 0x01 | 115 | #define RDS_INFO_MESSAGE_FLAG_ACK 0x01 |
| 120 | #define RDS_INFO_MESSAGE_FLAG_FAST_ACK 0x02 | 116 | #define RDS_INFO_MESSAGE_FLAG_FAST_ACK 0x02 |
| 121 | 117 | ||
| 122 | struct rds_info_message { | 118 | struct rds_info_message { |
| 123 | u_int64_t seq; | 119 | uint64_t seq; |
| 124 | u_int32_t len; | 120 | uint32_t len; |
| 125 | __be32 laddr; | 121 | __be32 laddr; |
| 126 | __be32 faddr; | 122 | __be32 faddr; |
| 127 | __be16 lport; | 123 | __be16 lport; |
| 128 | __be16 fport; | 124 | __be16 fport; |
| 129 | u_int8_t flags; | 125 | uint8_t flags; |
| 130 | } __packed; | 126 | } __attribute__((packed)); |
| 131 | 127 | ||
| 132 | struct rds_info_socket { | 128 | struct rds_info_socket { |
| 133 | u_int32_t sndbuf; | 129 | uint32_t sndbuf; |
| 134 | __be32 bound_addr; | 130 | __be32 bound_addr; |
| 135 | __be32 connected_addr; | 131 | __be32 connected_addr; |
| 136 | __be16 bound_port; | 132 | __be16 bound_port; |
| 137 | __be16 connected_port; | 133 | __be16 connected_port; |
| 138 | u_int32_t rcvbuf; | 134 | uint32_t rcvbuf; |
| 139 | u_int64_t inum; | 135 | uint64_t inum; |
| 140 | } __packed; | 136 | } __attribute__((packed)); |
| 141 | 137 | ||
| 142 | struct rds_info_tcp_socket { | 138 | struct rds_info_tcp_socket { |
| 143 | __be32 local_addr; | 139 | __be32 local_addr; |
| 144 | __be16 local_port; | 140 | __be16 local_port; |
| 145 | __be32 peer_addr; | 141 | __be32 peer_addr; |
| 146 | __be16 peer_port; | 142 | __be16 peer_port; |
| 147 | u_int64_t hdr_rem; | 143 | uint64_t hdr_rem; |
| 148 | u_int64_t data_rem; | 144 | uint64_t data_rem; |
| 149 | u_int32_t last_sent_nxt; | 145 | uint32_t last_sent_nxt; |
| 150 | u_int32_t last_expected_una; | 146 | uint32_t last_expected_una; |
| 151 | u_int32_t last_seen_una; | 147 | uint32_t last_seen_una; |
| 152 | } __packed; | 148 | } __attribute__((packed)); |
| 153 | 149 | ||
| 154 | #define RDS_IB_GID_LEN 16 | 150 | #define RDS_IB_GID_LEN 16 |
| 155 | struct rds_info_rdma_connection { | 151 | struct rds_info_rdma_connection { |
| @@ -203,42 +199,69 @@ struct rds_info_rdma_connection { | |||
| 203 | * (so that the application does not have to worry about | 199 | * (so that the application does not have to worry about |
| 204 | * alignment). | 200 | * alignment). |
| 205 | */ | 201 | */ |
| 206 | typedef u_int64_t rds_rdma_cookie_t; | 202 | typedef uint64_t rds_rdma_cookie_t; |
| 207 | 203 | ||
| 208 | struct rds_iovec { | 204 | struct rds_iovec { |
| 209 | u_int64_t addr; | 205 | uint64_t addr; |
| 210 | u_int64_t bytes; | 206 | uint64_t bytes; |
| 211 | }; | 207 | }; |
| 212 | 208 | ||
| 213 | struct rds_get_mr_args { | 209 | struct rds_get_mr_args { |
| 214 | struct rds_iovec vec; | 210 | struct rds_iovec vec; |
| 215 | u_int64_t cookie_addr; | 211 | uint64_t cookie_addr; |
| 216 | uint64_t flags; | 212 | uint64_t flags; |
| 217 | }; | 213 | }; |
| 218 | 214 | ||
| 219 | struct rds_get_mr_for_dest_args { | 215 | struct rds_get_mr_for_dest_args { |
| 220 | struct sockaddr_storage dest_addr; | 216 | struct sockaddr_storage dest_addr; |
| 221 | struct rds_iovec vec; | 217 | struct rds_iovec vec; |
| 222 | u_int64_t cookie_addr; | 218 | uint64_t cookie_addr; |
| 223 | uint64_t flags; | 219 | uint64_t flags; |
| 224 | }; | 220 | }; |
| 225 | 221 | ||
| 226 | struct rds_free_mr_args { | 222 | struct rds_free_mr_args { |
| 227 | rds_rdma_cookie_t cookie; | 223 | rds_rdma_cookie_t cookie; |
| 228 | u_int64_t flags; | 224 | uint64_t flags; |
| 229 | }; | 225 | }; |
| 230 | 226 | ||
| 231 | struct rds_rdma_args { | 227 | struct rds_rdma_args { |
| 232 | rds_rdma_cookie_t cookie; | 228 | rds_rdma_cookie_t cookie; |
| 233 | struct rds_iovec remote_vec; | 229 | struct rds_iovec remote_vec; |
| 234 | u_int64_t local_vec_addr; | 230 | uint64_t local_vec_addr; |
| 235 | u_int64_t nr_local; | 231 | uint64_t nr_local; |
| 236 | u_int64_t flags; | 232 | uint64_t flags; |
| 237 | u_int64_t user_token; | 233 | uint64_t user_token; |
| 234 | }; | ||
| 235 | |||
| 236 | struct rds_atomic_args { | ||
| 237 | rds_rdma_cookie_t cookie; | ||
| 238 | uint64_t local_addr; | ||
| 239 | uint64_t remote_addr; | ||
| 240 | union { | ||
| 241 | struct { | ||
| 242 | uint64_t compare; | ||
| 243 | uint64_t swap; | ||
| 244 | } cswp; | ||
| 245 | struct { | ||
| 246 | uint64_t add; | ||
| 247 | } fadd; | ||
| 248 | struct { | ||
| 249 | uint64_t compare; | ||
| 250 | uint64_t swap; | ||
| 251 | uint64_t compare_mask; | ||
| 252 | uint64_t swap_mask; | ||
| 253 | } m_cswp; | ||
| 254 | struct { | ||
| 255 | uint64_t add; | ||
| 256 | uint64_t nocarry_mask; | ||
| 257 | } m_fadd; | ||
| 258 | }; | ||
| 259 | uint64_t flags; | ||
| 260 | uint64_t user_token; | ||
| 238 | }; | 261 | }; |
| 239 | 262 | ||
| 240 | struct rds_rdma_notify { | 263 | struct rds_rdma_notify { |
| 241 | u_int64_t user_token; | 264 | uint64_t user_token; |
| 242 | int32_t status; | 265 | int32_t status; |
| 243 | }; | 266 | }; |
| 244 | 267 | ||
| @@ -257,5 +280,6 @@ struct rds_rdma_notify { | |||
| 257 | #define RDS_RDMA_USE_ONCE 0x0008 /* free MR after use */ | 280 | #define RDS_RDMA_USE_ONCE 0x0008 /* free MR after use */ |
| 258 | #define RDS_RDMA_DONTWAIT 0x0010 /* Don't wait in SET_BARRIER */ | 281 | #define RDS_RDMA_DONTWAIT 0x0010 /* Don't wait in SET_BARRIER */ |
| 259 | #define RDS_RDMA_NOTIFY_ME 0x0020 /* Notify when operation completes */ | 282 | #define RDS_RDMA_NOTIFY_ME 0x0020 /* Notify when operation completes */ |
| 283 | #define RDS_RDMA_SILENT 0x0040 /* Do not interrupt remote */ | ||
| 260 | 284 | ||
| 261 | #endif /* IB_RDS_H */ | 285 | #endif /* IB_RDS_H */ |
