Home | History | Annotate | Download | only in rdma
      1 /****************************************************************************
      2  ****************************************************************************
      3  ***
      4  ***   This header was automatically generated from a Linux kernel header
      5  ***   of the same name, to make information necessary for userspace to
      6  ***   call into the kernel available to libc.  It contains only constants,
      7  ***   structures, and macros generated from the original header, and thus,
      8  ***   contains no copyrightable information.
      9  ***
     10  ***   To edit the content of this header, modify the corresponding
     11  ***   source file (e.g. under external/kernel-headers/original/) then
     12  ***   run bionic/libc/kernel/tools/update_all.py
     13  ***
     14  ***   Any manual change here will be lost the next time this script will
     15  ***   be run. You've been warned!
     16  ***
     17  ****************************************************************************
     18  ****************************************************************************/
     19 #ifndef RDMA_USER_RXE_H
     20 #define RDMA_USER_RXE_H
     21 #include <linux/types.h>
     22 #include <linux/socket.h>
     23 #include <linux/in.h>
     24 #include <linux/in6.h>
     25 union rxe_gid {
     26   __u8 raw[16];
     27   struct {
     28     __be64 subnet_prefix;
     29     __be64 interface_id;
     30   } global;
     31 };
     32 struct rxe_global_route {
     33   union rxe_gid dgid;
     34   __u32 flow_label;
     35   __u8 sgid_index;
     36   __u8 hop_limit;
     37   __u8 traffic_class;
     38 };
     39 struct rxe_av {
     40   __u8 port_num;
     41   __u8 network_type;
     42   __u16 reserved1;
     43   __u32 reserved2;
     44   struct rxe_global_route grh;
     45   union {
     46     struct sockaddr_in _sockaddr_in;
     47     struct sockaddr_in6 _sockaddr_in6;
     48   } sgid_addr, dgid_addr;
     49 };
     50 struct rxe_send_wr {
     51   __aligned_u64 wr_id;
     52   __u32 num_sge;
     53   __u32 opcode;
     54   __u32 send_flags;
     55   union {
     56     __be32 imm_data;
     57     __u32 invalidate_rkey;
     58   } ex;
     59   union {
     60     struct {
     61       __aligned_u64 remote_addr;
     62       __u32 rkey;
     63       __u32 reserved;
     64     } rdma;
     65     struct {
     66       __aligned_u64 remote_addr;
     67       __aligned_u64 compare_add;
     68       __aligned_u64 swap;
     69       __u32 rkey;
     70       __u32 reserved;
     71     } atomic;
     72     struct {
     73       __u32 remote_qpn;
     74       __u32 remote_qkey;
     75       __u16 pkey_index;
     76     } ud;
     77     struct {
     78       union {
     79         struct ib_mr * mr;
     80         __aligned_u64 reserved;
     81       };
     82       __u32 key;
     83       __u32 access;
     84     } reg;
     85   } wr;
     86 };
     87 struct rxe_sge {
     88   __aligned_u64 addr;
     89   __u32 length;
     90   __u32 lkey;
     91 };
     92 struct mminfo {
     93   __aligned_u64 offset;
     94   __u32 size;
     95   __u32 pad;
     96 };
     97 struct rxe_dma_info {
     98   __u32 length;
     99   __u32 resid;
    100   __u32 cur_sge;
    101   __u32 num_sge;
    102   __u32 sge_offset;
    103   __u32 reserved;
    104   union {
    105     __u8 inline_data[0];
    106     struct rxe_sge sge[0];
    107   };
    108 };
    109 struct rxe_send_wqe {
    110   struct rxe_send_wr wr;
    111   struct rxe_av av;
    112   __u32 status;
    113   __u32 state;
    114   __aligned_u64 iova;
    115   __u32 mask;
    116   __u32 first_psn;
    117   __u32 last_psn;
    118   __u32 ack_length;
    119   __u32 ssn;
    120   __u32 has_rd_atomic;
    121   struct rxe_dma_info dma;
    122 };
    123 struct rxe_recv_wqe {
    124   __aligned_u64 wr_id;
    125   __u32 num_sge;
    126   __u32 padding;
    127   struct rxe_dma_info dma;
    128 };
    129 struct rxe_create_cq_resp {
    130   struct mminfo mi;
    131 };
    132 struct rxe_resize_cq_resp {
    133   struct mminfo mi;
    134 };
    135 struct rxe_create_qp_resp {
    136   struct mminfo rq_mi;
    137   struct mminfo sq_mi;
    138 };
    139 struct rxe_create_srq_resp {
    140   struct mminfo mi;
    141   __u32 srq_num;
    142   __u32 reserved;
    143 };
    144 struct rxe_modify_srq_cmd {
    145   __aligned_u64 mmap_info_addr;
    146 };
    147 #endif
    148