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 _LINUX__HFI1_USER_H
20 #define _LINUX__HFI1_USER_H
21 #include <linux/types.h>
22 #define HFI1_USER_SWMAJOR 4
23 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
24 #define HFI1_USER_SWMINOR 0
25 #define HFI1_CAP_DMA_RTAIL (1UL << 0)
26 #define HFI1_CAP_SDMA (1UL << 1)
27 #define HFI1_CAP_SDMA_AHG (1UL << 2)
28 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
29 #define HFI1_CAP_EXTENDED_PSN (1UL << 3)
30 #define HFI1_CAP_HDRSUPP (1UL << 4)
31 #define HFI1_CAP_USE_SDMA_HEAD (1UL << 6)
32 #define HFI1_CAP_MULTI_PKT_EGR (1UL << 7)
33 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
34 #define HFI1_CAP_NODROP_RHQ_FULL (1UL << 8)
35 #define HFI1_CAP_NODROP_EGR_FULL (1UL << 9)
36 #define HFI1_CAP_TID_UNMAP (1UL << 10)
37 #define HFI1_CAP_PRINT_UNIMPL (1UL << 11)
38 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
39 #define HFI1_CAP_ALLOW_PERM_JKEY (1UL << 12)
40 #define HFI1_CAP_NO_INTEGRITY (1UL << 13)
41 #define HFI1_CAP_PKEY_CHECK (1UL << 14)
42 #define HFI1_CAP_STATIC_RATE_CTRL (1UL << 15)
43 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
44 #define HFI1_CAP_SDMA_HEAD_CHECK (1UL << 17)
45 #define HFI1_CAP_EARLY_CREDIT_RETURN (1UL << 18)
46 #define HFI1_RCVHDR_ENTSIZE_2 (1UL << 0)
47 #define HFI1_RCVHDR_ENTSIZE_16 (1UL << 1)
48 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
49 #define HFI1_RCVDHR_ENTSIZE_32 (1UL << 2)
50 #define HFI1_ALG_ACROSS 0
51 #define HFI1_ALG_WITHIN 1
52 #define HFI1_ALG_COUNT 2
53 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
54 #define HFI1_CMD_ASSIGN_CTXT 1
55 #define HFI1_CMD_CTXT_INFO 2
56 #define HFI1_CMD_USER_INFO 3
57 #define HFI1_CMD_TID_UPDATE 4
58 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
59 #define HFI1_CMD_TID_FREE 5
60 #define HFI1_CMD_CREDIT_UPD 6
61 #define HFI1_CMD_SDMA_STATUS_UPD 7
62 #define HFI1_CMD_RECV_CTRL 8
63 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
64 #define HFI1_CMD_POLL_TYPE 9
65 #define HFI1_CMD_ACK_EVENT 10
66 #define HFI1_CMD_SET_PKEY 11
67 #define HFI1_CMD_CTXT_RESET 12
68 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
69 #define HFI1_CMD_EP_INFO 64
70 #define HFI1_CMD_EP_ERASE_CHIP 65
71 #define HFI1_CMD_EP_ERASE_P0 66
72 #define HFI1_CMD_EP_ERASE_P1 67
73 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
74 #define HFI1_CMD_EP_READ_P0 68
75 #define HFI1_CMD_EP_READ_P1 69
76 #define HFI1_CMD_EP_WRITE_P0 70
77 #define HFI1_CMD_EP_WRITE_P1 71
78 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
79 #define _HFI1_EVENT_FROZEN_BIT 0
80 #define _HFI1_EVENT_LINKDOWN_BIT 1
81 #define _HFI1_EVENT_LID_CHANGE_BIT 2
82 #define _HFI1_EVENT_LMC_CHANGE_BIT 3
83 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
84 #define _HFI1_EVENT_SL2VL_CHANGE_BIT 4
85 #define _HFI1_MAX_EVENT_BIT _HFI1_EVENT_SL2VL_CHANGE_BIT
86 #define HFI1_EVENT_FROZEN (1UL << _HFI1_EVENT_FROZEN_BIT)
87 #define HFI1_EVENT_LINKDOWN_BIT (1UL << _HFI1_EVENT_LINKDOWN_BIT)
88 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
89 #define HFI1_EVENT_LID_CHANGE_BIT (1UL << _HFI1_EVENT_LID_CHANGE_BIT)
90 #define HFI1_EVENT_LMC_CHANGE_BIT (1UL << _HFI1_EVENT_LMC_CHANGE_BIT)
91 #define HFI1_EVENT_SL2VL_CHANGE_BIT (1UL << _HFI1_EVENT_SL2VL_CHANGE_BIT)
92 #define HFI1_STATUS_INITTED 0x1
93 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
94 #define HFI1_STATUS_CHIP_PRESENT 0x20
95 #define HFI1_STATUS_IB_READY 0x40
96 #define HFI1_STATUS_IB_CONF 0x80
97 #define HFI1_STATUS_HWERROR 0x200
98 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
99 #define HFI1_MAX_SHARED_CTXTS 8
100 #define HFI1_POLL_TYPE_ANYRCV 0x0
101 #define HFI1_POLL_TYPE_URGENT 0x1
102 struct hfi1_user_info {
103 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
104   __u32 userversion;
105   __u16 pad;
106   __u16 hfi1_alg;
107   __u16 subctxt_cnt;
108 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
109   __u16 subctxt_id;
110   __u8 uuid[16];
111 };
112 struct hfi1_ctxt_info {
113 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
114   __u64 runtime_flags;
115   __u32 rcvegr_size;
116   __u16 num_active;
117   __u16 unit;
118 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
119   __u16 ctxt;
120   __u16 subctxt;
121   __u16 rcvtids;
122   __u16 credits;
123 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
124   __u16 numa_node;
125   __u16 rec_cpu;
126   __u16 send_ctxt;
127   __u16 egrtids;
128 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
129   __u16 rcvhdrq_cnt;
130   __u16 rcvhdrq_entsize;
131   __u16 sdma_ring_size;
132 };
133 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
134 struct hfi1_tid_info {
135   __u64 vaddr;
136   __u64 tidlist;
137   __u32 tidcnt;
138 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
139   __u32 length;
140   __u64 tidmap;
141 };
142 struct hfi1_cmd {
143 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
144   __u32 type;
145   __u32 len;
146   __u64 addr;
147 };
148 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
149 enum hfi1_sdma_comp_state {
150   FREE = 0,
151   QUEUED,
152   COMPLETE,
153 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
154   ERROR
155 };
156 struct hfi1_sdma_comp_entry {
157   __u32 status;
158 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
159   __u32 errcode;
160 };
161 struct hfi1_status {
162   __u64 dev;
163 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
164   __u64 port;
165   char freezemsg[0];
166 };
167 struct hfi1_base_info {
168 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
169   __u32 hw_version;
170   __u32 sw_version;
171   __u16 jkey;
172   __u16 padding1;
173 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
174   __u32 bthqp;
175   __u64 sc_credits_addr;
176   __u64 pio_bufbase_sop;
177   __u64 pio_bufbase;
178 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
179   __u64 rcvhdr_bufbase;
180   __u64 rcvegr_bufbase;
181   __u64 sdma_comp_bufbase;
182   __u64 user_regbase;
183 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
184   __u64 events_bufbase;
185   __u64 status_bufbase;
186   __u64 rcvhdrtail_base;
187   __u64 subctxt_uregbase;
188 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
189   __u64 subctxt_rcvegrbuf;
190   __u64 subctxt_rcvhdrbuf;
191 };
192 enum sdma_req_opcode {
193 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
194   EXPECTED = 0,
195   EAGER
196 };
197 #define HFI1_SDMA_REQ_VERSION_MASK 0xF
198 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
199 #define HFI1_SDMA_REQ_VERSION_SHIFT 0x0
200 #define HFI1_SDMA_REQ_OPCODE_MASK 0xF
201 #define HFI1_SDMA_REQ_OPCODE_SHIFT 0x4
202 #define HFI1_SDMA_REQ_IOVCNT_MASK 0xFF
203 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
204 #define HFI1_SDMA_REQ_IOVCNT_SHIFT 0x8
205 struct sdma_req_info {
206   __u16 ctrl;
207   __u16 npkts;
208 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
209   __u16 fragsize;
210   __u16 comp_idx;
211 } __packed;
212 struct hfi1_kdeth_header {
213 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
214   __le32 ver_tid_offset;
215   __le16 jkey;
216   __le16 hcrc;
217   __le32 swdata[7];
218 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
219 } __packed;
220 struct hfi1_pkt_header {
221   __le16 pbc[4];
222   __be16 lrh[4];
223 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
224   __be32 bth[3];
225   struct hfi1_kdeth_header kdeth;
226 } __packed;
227 enum hfi1_ureg {
228 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
229   ur_rcvhdrtail = 0,
230   ur_rcvhdrhead = 1,
231   ur_rcvegrindextail = 2,
232   ur_rcvegrindexhead = 3,
233 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
234   ur_rcvegroffsettail = 4,
235   ur_maxreg,
236   ur_rcvtidflowtable = 256
237 };
238 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
239 #endif
240