blob: 8d1bbd05247902be248bd12072bb2187f04b6489 [file] [log] [blame]
Christopher Ferris49f525c2016-12-12 14:55:36 -08001/****************************************************************************
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>
22union rxe_gid {
Christopher Ferris49f525c2016-12-12 14:55:36 -080023 __u8 raw[16];
24 struct {
25 __be64 subnet_prefix;
26 __be64 interface_id;
Christopher Ferris49f525c2016-12-12 14:55:36 -080027 } global;
28};
29struct rxe_global_route {
30 union rxe_gid dgid;
Christopher Ferris49f525c2016-12-12 14:55:36 -080031 __u32 flow_label;
32 __u8 sgid_index;
33 __u8 hop_limit;
34 __u8 traffic_class;
Christopher Ferris49f525c2016-12-12 14:55:36 -080035};
36struct rxe_av {
37 __u8 port_num;
38 __u8 network_type;
Christopher Ferris49f525c2016-12-12 14:55:36 -080039 struct rxe_global_route grh;
40 union {
41 struct sockaddr _sockaddr;
42 struct sockaddr_in _sockaddr_in;
Christopher Ferris49f525c2016-12-12 14:55:36 -080043 struct sockaddr_in6 _sockaddr_in6;
44 } sgid_addr, dgid_addr;
45};
46struct rxe_send_wr {
Christopher Ferris49f525c2016-12-12 14:55:36 -080047 __u64 wr_id;
48 __u32 num_sge;
49 __u32 opcode;
50 __u32 send_flags;
Christopher Ferris49f525c2016-12-12 14:55:36 -080051 union {
52 __be32 imm_data;
53 __u32 invalidate_rkey;
54 } ex;
Christopher Ferris49f525c2016-12-12 14:55:36 -080055 union {
56 struct {
57 __u64 remote_addr;
58 __u32 rkey;
Christopher Ferris49f525c2016-12-12 14:55:36 -080059 } rdma;
60 struct {
61 __u64 remote_addr;
62 __u64 compare_add;
Christopher Ferris49f525c2016-12-12 14:55:36 -080063 __u64 swap;
64 __u32 rkey;
65 } atomic;
66 struct {
Christopher Ferris49f525c2016-12-12 14:55:36 -080067 __u32 remote_qpn;
68 __u32 remote_qkey;
69 __u16 pkey_index;
70 } ud;
Christopher Ferris49f525c2016-12-12 14:55:36 -080071 struct {
72 struct ib_mr * mr;
73 __u32 key;
74 int access;
Christopher Ferris49f525c2016-12-12 14:55:36 -080075 } reg;
76 } wr;
77};
78struct rxe_sge {
Christopher Ferris49f525c2016-12-12 14:55:36 -080079 __u64 addr;
80 __u32 length;
81 __u32 lkey;
82};
Christopher Ferris49f525c2016-12-12 14:55:36 -080083struct mminfo {
84 __u64 offset;
85 __u32 size;
86 __u32 pad;
Christopher Ferris49f525c2016-12-12 14:55:36 -080087};
88struct rxe_dma_info {
89 __u32 length;
90 __u32 resid;
Christopher Ferris49f525c2016-12-12 14:55:36 -080091 __u32 cur_sge;
92 __u32 num_sge;
93 __u32 sge_offset;
94 union {
Christopher Ferris49f525c2016-12-12 14:55:36 -080095 __u8 inline_data[0];
96 struct rxe_sge sge[0];
97 };
98};
Christopher Ferris49f525c2016-12-12 14:55:36 -080099struct rxe_send_wqe {
100 struct rxe_send_wr wr;
101 struct rxe_av av;
102 __u32 status;
Christopher Ferris49f525c2016-12-12 14:55:36 -0800103 __u32 state;
104 __u64 iova;
105 __u32 mask;
106 __u32 first_psn;
Christopher Ferris49f525c2016-12-12 14:55:36 -0800107 __u32 last_psn;
108 __u32 ack_length;
109 __u32 ssn;
110 __u32 has_rd_atomic;
Christopher Ferris49f525c2016-12-12 14:55:36 -0800111 struct rxe_dma_info dma;
112};
113struct rxe_recv_wqe {
114 __u64 wr_id;
Christopher Ferris49f525c2016-12-12 14:55:36 -0800115 __u32 num_sge;
116 __u32 padding;
117 struct rxe_dma_info dma;
118};
Christopher Ferris49f525c2016-12-12 14:55:36 -0800119#endif