Merge branch 'core-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel...
[safe/jmp/linux-2.6] / include / rdma / ib_user_verbs.h
index 0edd3a6..a17f771 100644 (file)
@@ -31,8 +31,6 @@
  * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
- *
- * $Id: ib_user_verbs.h 2708 2005-06-24 17:27:21Z roland $
  */
 
 #ifndef IB_USER_VERBS_H
@@ -44,7 +42,7 @@
  * Increment this value if any changes that break userspace ABI
  * compatibility are made.
  */
-#define IB_USER_VERBS_ABI_VERSION      4
+#define IB_USER_VERBS_ABI_VERSION      6
 
 enum {
        IB_USER_VERBS_CMD_GET_CONTEXT,
@@ -275,6 +273,8 @@ struct ib_uverbs_resize_cq {
 
 struct ib_uverbs_resize_cq_resp {
        __u32 cqe;
+       __u32 reserved;
+       __u64 driver_data[0];
 };
 
 struct ib_uverbs_poll_cq {
@@ -289,7 +289,10 @@ struct ib_uverbs_wc {
        __u32 opcode;
        __u32 vendor_err;
        __u32 byte_len;
-       __u32 imm_data;
+       union {
+               __u32 imm_data;
+               __u32 invalidate_rkey;
+       } ex;
        __u32 qp_num;
        __u32 src_qp;
        __u32 wc_flags;
@@ -323,6 +326,64 @@ struct ib_uverbs_destroy_cq_resp {
        __u32 async_events_reported;
 };
 
+struct ib_uverbs_global_route {
+       __u8  dgid[16];
+       __u32 flow_label;
+       __u8  sgid_index;
+       __u8  hop_limit;
+       __u8  traffic_class;
+       __u8  reserved;
+};
+
+struct ib_uverbs_ah_attr {
+       struct ib_uverbs_global_route grh;
+       __u16 dlid;
+       __u8  sl;
+       __u8  src_path_bits;
+       __u8  static_rate;
+       __u8  is_global;
+       __u8  port_num;
+       __u8  reserved;
+};
+
+struct ib_uverbs_qp_attr {
+       __u32   qp_attr_mask;
+       __u32   qp_state;
+       __u32   cur_qp_state;
+       __u32   path_mtu;
+       __u32   path_mig_state;
+       __u32   qkey;
+       __u32   rq_psn;
+       __u32   sq_psn;
+       __u32   dest_qp_num;
+       __u32   qp_access_flags;
+
+       struct ib_uverbs_ah_attr ah_attr;
+       struct ib_uverbs_ah_attr alt_ah_attr;
+
+       /* ib_qp_cap */
+       __u32   max_send_wr;
+       __u32   max_recv_wr;
+       __u32   max_send_sge;
+       __u32   max_recv_sge;
+       __u32   max_inline_data;
+
+       __u16   pkey_index;
+       __u16   alt_pkey_index;
+       __u8    en_sqd_async_notify;
+       __u8    sq_draining;
+       __u8    max_rd_atomic;
+       __u8    max_dest_rd_atomic;
+       __u8    min_rnr_timer;
+       __u8    port_num;
+       __u8    timeout;
+       __u8    retry_cnt;
+       __u8    rnr_retry;
+       __u8    alt_port_num;
+       __u8    alt_timeout;
+       __u8    reserved[5];
+};
+
 struct ib_uverbs_create_qp {
        __u64 response;
        __u64 user_handle;
@@ -350,6 +411,7 @@ struct ib_uverbs_create_qp_resp {
        __u32 max_send_sge;
        __u32 max_recv_sge;
        __u32 max_inline_data;
+       __u32 reserved;
 };
 
 /*
@@ -397,7 +459,7 @@ struct ib_uverbs_query_qp_resp {
        __u8  cur_qp_state;
        __u8  path_mtu;
        __u8  path_mig_state;
-       __u8  en_sqd_async_notify;
+       __u8  sq_draining;
        __u8  max_rd_atomic;
        __u8  max_dest_rd_atomic;
        __u8  min_rnr_timer;
@@ -472,7 +534,10 @@ struct ib_uverbs_send_wr {
        __u32 num_sge;
        __u32 opcode;
        __u32 send_flags;
-       __u32 imm_data;
+       union {
+               __u32 imm_data;
+               __u32 invalidate_rkey;
+       } ex;
        union {
                struct {
                        __u64 remote_addr;
@@ -540,26 +605,6 @@ struct ib_uverbs_post_srq_recv_resp {
        __u32 bad_wr;
 };
 
-struct ib_uverbs_global_route {
-       __u8  dgid[16];
-       __u32 flow_label;
-       __u8  sgid_index;
-       __u8  hop_limit;
-       __u8  traffic_class;
-       __u8  reserved;
-};
-
-struct ib_uverbs_ah_attr {
-       struct ib_uverbs_global_route grh;
-       __u16 dlid;
-       __u8  sl;
-       __u8  src_path_bits;
-       __u8  static_rate;
-       __u8  is_global;
-       __u8  port_num;
-       __u8  reserved;
-};
-
 struct ib_uverbs_create_ah {
        __u64 response;
        __u64 user_handle;
@@ -604,6 +649,9 @@ struct ib_uverbs_create_srq {
 
 struct ib_uverbs_create_srq_resp {
        __u32 srq_handle;
+       __u32 max_wr;
+       __u32 max_sge;
+       __u32 reserved;
 };
 
 struct ib_uverbs_modify_srq {