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