Orange Pi5 kernel

Deprecated Linux kernel 5.10.110 for OrangePi 5/5B/5+ boards

3 Commits   0 Branches   0 Tags
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   1) /* SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-2-Clause) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   2) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   3)  * Copyright 2018-2020 Amazon.com, Inc. or its affiliates. All rights reserved.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   4)  */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   5) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   6) #ifndef EFA_ABI_USER_H
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   7) #define EFA_ABI_USER_H
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   8) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   9) #include <linux/types.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  10) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  11) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  12)  * Increment this value if any changes that break userspace ABI
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  13)  * compatibility are made.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  14)  */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  15) #define EFA_UVERBS_ABI_VERSION 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  16) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  17) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  18)  * Keep structs aligned to 8 bytes.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  19)  * Keep reserved fields as arrays of __u8 named reserved_XXX where XXX is the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  20)  * hex bit offset of the field.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  21)  */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  22) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  23) enum {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  24) 	EFA_ALLOC_UCONTEXT_CMD_COMP_TX_BATCH  = 1 << 0,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  25) 	EFA_ALLOC_UCONTEXT_CMD_COMP_MIN_SQ_WR = 1 << 1,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  26) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  27) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  28) struct efa_ibv_alloc_ucontext_cmd {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  29) 	__u32 comp_mask;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  30) 	__u8 reserved_20[4];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  31) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  32) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  33) enum efa_ibv_user_cmds_supp_udata {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  34) 	EFA_USER_CMDS_SUPP_UDATA_QUERY_DEVICE = 1 << 0,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  35) 	EFA_USER_CMDS_SUPP_UDATA_CREATE_AH    = 1 << 1,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  36) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  37) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  38) struct efa_ibv_alloc_ucontext_resp {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  39) 	__u32 comp_mask;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  40) 	__u32 cmds_supp_udata_mask;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  41) 	__u16 sub_cqs_per_cq;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  42) 	__u16 inline_buf_size;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  43) 	__u32 max_llq_size; /* bytes */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  44) 	__u16 max_tx_batch; /* units of 64 bytes */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  45) 	__u16 min_sq_wr;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  46) 	__u8 reserved_a0[4];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  47) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  48) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  49) struct efa_ibv_alloc_pd_resp {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  50) 	__u32 comp_mask;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  51) 	__u16 pdn;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  52) 	__u8 reserved_30[2];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  53) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  54) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  55) struct efa_ibv_create_cq {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  56) 	__u32 comp_mask;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  57) 	__u32 cq_entry_size;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  58) 	__u16 num_sub_cqs;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  59) 	__u8 reserved_50[6];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  60) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  61) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  62) struct efa_ibv_create_cq_resp {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  63) 	__u32 comp_mask;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  64) 	__u8 reserved_20[4];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  65) 	__aligned_u64 q_mmap_key;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  66) 	__aligned_u64 q_mmap_size;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  67) 	__u16 cq_idx;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  68) 	__u8 reserved_d0[6];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  69) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  70) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  71) enum {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  72) 	EFA_QP_DRIVER_TYPE_SRD = 0,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  73) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  74) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  75) struct efa_ibv_create_qp {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  76) 	__u32 comp_mask;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  77) 	__u32 rq_ring_size; /* bytes */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  78) 	__u32 sq_ring_size; /* bytes */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  79) 	__u32 driver_qp_type;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  80) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  81) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  82) struct efa_ibv_create_qp_resp {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  83) 	__u32 comp_mask;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  84) 	/* the offset inside the page of the rq db */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  85) 	__u32 rq_db_offset;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  86) 	/* the offset inside the page of the sq db */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  87) 	__u32 sq_db_offset;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  88) 	/* the offset inside the page of descriptors buffer */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  89) 	__u32 llq_desc_offset;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  90) 	__aligned_u64 rq_mmap_key;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  91) 	__aligned_u64 rq_mmap_size;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  92) 	__aligned_u64 rq_db_mmap_key;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  93) 	__aligned_u64 sq_db_mmap_key;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  94) 	__aligned_u64 llq_desc_mmap_key;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  95) 	__u16 send_sub_cq_idx;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  96) 	__u16 recv_sub_cq_idx;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  97) 	__u8 reserved_1e0[4];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  98) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  99) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 100) struct efa_ibv_create_ah_resp {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 101) 	__u32 comp_mask;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 102) 	__u16 efa_address_handle;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 103) 	__u8 reserved_30[2];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 104) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 105) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 106) enum {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 107) 	EFA_QUERY_DEVICE_CAPS_RDMA_READ = 1 << 0,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 108) 	EFA_QUERY_DEVICE_CAPS_RNR_RETRY = 1 << 1,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 109) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 110) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 111) struct efa_ibv_ex_query_device_resp {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 112) 	__u32 comp_mask;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 113) 	__u32 max_sq_wr;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 114) 	__u32 max_rq_wr;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 115) 	__u16 max_sq_sge;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 116) 	__u16 max_rq_sge;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 117) 	__u32 max_rdma_size;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 118) 	__u32 device_caps;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 119) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 120) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 121) #endif /* EFA_ABI_USER_H */