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