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