Home | History | Annotate | Download | only in hfi
      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