/****************************************************************************
****************************************************************************
***
*** This header was automatically generated from a Linux kernel header
*** of the same name, to make information necessary for userspace to
*** call into the kernel available to libc. It contains only constants,
*** structures, and macros generated from the original header, and thus,
*** contains no copyrightable information.
***
*** To edit the content of this header, modify the corresponding
*** source file (e.g. under external/kernel-headers/original/) then
*** run bionic/libc/kernel/tools/update_all.py
***
*** Any manual change here will be lost the next time this script will
*** be run. You've been warned!
***
****************************************************************************
****************************************************************************/
#ifndef OCRDMA_ABI_USER_H
#define OCRDMA_ABI_USER_H
#include <linux/types.h>
#define OCRDMA_ABI_VERSION 2
#define OCRDMA_BE_ROCE_ABI_VERSION 1
struct ocrdma_alloc_ucontext_resp {
__u32 dev_id;
__u32 wqe_size;
__u32 max_inline_data;
__u32 dpp_wqe_size;
__aligned_u64 ah_tbl_page;
__u32 ah_tbl_len;
__u32 rqe_size;
__u8 fw_ver[32];
__aligned_u64 rsvd1;
__aligned_u64 rsvd2;
};
struct ocrdma_alloc_pd_ureq {
__u32 rsvd[2];
};
struct ocrdma_alloc_pd_uresp {
__u32 id;
__u32 dpp_enabled;
__u32 dpp_page_addr_hi;
__u32 dpp_page_addr_lo;
__u32 rsvd[2];
};
struct ocrdma_create_cq_ureq {
__u32 dpp_cq;
__u32 rsvd;
};
#define MAX_CQ_PAGES 8
struct ocrdma_create_cq_uresp {
__u32 cq_id;
__u32 page_size;
__u32 num_pages;
__u32 max_hw_cqe;
__aligned_u64 page_addr[MAX_CQ_PAGES];
__aligned_u64 db_page_addr;
__u32 db_page_size;
__u32 phase_change;
__aligned_u64 rsvd1;
__aligned_u64 rsvd2;
};
#define MAX_QP_PAGES 8
#define MAX_UD_AV_PAGES 8
struct ocrdma_create_qp_ureq {
__u8 enable_dpp_cq;
__u8 rsvd;
__u16 dpp_cq_id;
__u32 rsvd1;
};
struct ocrdma_create_qp_uresp {
__u16 qp_id;
__u16 sq_dbid;
__u16 rq_dbid;
__u16 resv0;
__u32 sq_page_size;
__u32 rq_page_size;
__u32 num_sq_pages;
__u32 num_rq_pages;
__aligned_u64 sq_page_addr[MAX_QP_PAGES];
__aligned_u64 rq_page_addr[MAX_QP_PAGES];
__aligned_u64 db_page_addr;
__u32 db_page_size;
__u32 dpp_credit;
__u32 dpp_offset;
__u32 num_wqe_allocated;
__u32 num_rqe_allocated;
__u32 db_sq_offset;
__u32 db_rq_offset;
__u32 db_shift;
__aligned_u64 rsvd[11];
};
struct ocrdma_create_srq_uresp {
__u16 rq_dbid;
__u16 resv0;
__u32 resv1;
__u32 rq_page_size;
__u32 num_rq_pages;
__aligned_u64 rq_page_addr[MAX_QP_PAGES];
__aligned_u64 db_page_addr;
__u32 db_page_size;
__u32 num_rqe_allocated;
__u32 db_rq_offset;
__u32 db_shift;
__aligned_u64 rsvd2;
__aligned_u64 rsvd3;
};
#endif