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 union rxe_gid {
     23   __u8 raw[16];
     24   struct {
     25     __be64 subnet_prefix;
     26     __be64 interface_id;
     27   } global;
     28 };
     29 struct rxe_global_route {
     30   union rxe_gid dgid;
     31   __u32 flow_label;
     32   __u8 sgid_index;
     33   __u8 hop_limit;
     34   __u8 traffic_class;
     35 };
     36 struct rxe_av {
     37   __u8 port_num;
     38   __u8 network_type;
     39   struct rxe_global_route grh;
     40   union {
     41     struct sockaddr _sockaddr;
     42     struct sockaddr_in _sockaddr_in;
     43     struct sockaddr_in6 _sockaddr_in6;
     44   } sgid_addr, dgid_addr;
     45 };
     46 struct rxe_send_wr {
     47   __u64 wr_id;
     48   __u32 num_sge;
     49   __u32 opcode;
     50   __u32 send_flags;
     51   union {
     52     __be32 imm_data;
     53     __u32 invalidate_rkey;
     54   } ex;
     55   union {
     56     struct {
     57       __u64 remote_addr;
     58       __u32 rkey;
     59     } rdma;
     60     struct {
     61       __u64 remote_addr;
     62       __u64 compare_add;
     63       __u64 swap;
     64       __u32 rkey;
     65     } atomic;
     66     struct {
     67       __u32 remote_qpn;
     68       __u32 remote_qkey;
     69       __u16 pkey_index;
     70     } ud;
     71     struct {
     72       struct ib_mr * mr;
     73       __u32 key;
     74       int access;
     75     } reg;
     76   } wr;
     77 };
     78 struct rxe_sge {
     79   __u64 addr;
     80   __u32 length;
     81   __u32 lkey;
     82 };
     83 struct mminfo {
     84   __u64 offset;
     85   __u32 size;
     86   __u32 pad;
     87 };
     88 struct rxe_dma_info {
     89   __u32 length;
     90   __u32 resid;
     91   __u32 cur_sge;
     92   __u32 num_sge;
     93   __u32 sge_offset;
     94   union {
     95     __u8 inline_data[0];
     96     struct rxe_sge sge[0];
     97   };
     98 };
     99 struct rxe_send_wqe {
    100   struct rxe_send_wr wr;
    101   struct rxe_av av;
    102   __u32 status;
    103   __u32 state;
    104   __u64 iova;
    105   __u32 mask;
    106   __u32 first_psn;
    107   __u32 last_psn;
    108   __u32 ack_length;
    109   __u32 ssn;
    110   __u32 has_rd_atomic;
    111   struct rxe_dma_info dma;
    112 };
    113 struct rxe_recv_wqe {
    114   __u64 wr_id;
    115   __u32 num_sge;
    116   __u32 padding;
    117   struct rxe_dma_info dma;
    118 };
    119 #endif
    120