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) 70struct 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 */ 114struct 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}; 122struct 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 */ 144struct 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}; 151enum 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 */ 159struct hfi1_sdma_comp_entry { 160 __u32 status; 161 __u32 errcode; 162}; 163/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 164struct 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}; 170struct 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}; 195enum 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 207struct 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; 215struct 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; 222struct 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; 230enum 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