116 lines · 1.8 KB · C
RawDownload
/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note *//* Copyright (C) 2018-2025, Advanced Micro Devices, Inc */ #ifndef IONIC_ABI_H#define IONIC_ABI_H #include <linux/types.h> #define IONIC_ABI_VERSION	1 #define IONIC_EXPDB_64		1#define IONIC_EXPDB_128		2#define IONIC_EXPDB_256		4#define IONIC_EXPDB_512		8 #define IONIC_EXPDB_SQ		1#define IONIC_EXPDB_RQ		2 #define IONIC_CMB_ENABLE	1#define IONIC_CMB_REQUIRE	2#define IONIC_CMB_EXPDB		4#define IONIC_CMB_WC		8#define IONIC_CMB_UC		16 struct ionic_ctx_req {	__u32 rsvd[2];}; struct ionic_ctx_resp {	__u32 rsvd;	__u32 page_shift; 	__aligned_u64 dbell_offset; 	__u16 version;	__u8 qp_opcodes;	__u8 admin_opcodes; 	__u8 sq_qtype;	__u8 rq_qtype;	__u8 cq_qtype;	__u8 admin_qtype; 	__u8 max_stride;	__u8 max_spec;	__u8 udma_count;	__u8 expdb_mask;	__u8 expdb_qtypes; 	__u8 rsvd2[3];	__aligned_u64 phc_offset;}; struct ionic_qdesc {	__aligned_u64 addr;	__u32 size;	__u16 mask;	__u8 depth_log2;	__u8 stride_log2;}; struct ionic_ah_resp {	__u32 ahid;	__u32 pad;}; struct ionic_cq_req {	struct ionic_qdesc cq[2];	__u8 udma_mask;	__u8 rsvd[7];}; struct ionic_cq_resp {	__u32 cqid[2];	__u8 udma_mask;	__u8 rsvd[7];}; struct ionic_qp_req {	struct ionic_qdesc sq;	struct ionic_qdesc rq;	__u8 sq_spec;	__u8 rq_spec;	__u8 sq_cmb;	__u8 rq_cmb;	__u8 udma_mask;	__u8 rsvd[3];}; struct ionic_qp_resp {	__u32 qpid;	__u8 sq_cmb;	__u8 rq_cmb;	__u8 udma_idx;	__u8 rsvd[1];	__aligned_u64 sq_cmb_offset;	__aligned_u64 rq_cmb_offset;}; struct ionic_srq_req {	struct ionic_qdesc rq;	__u8 rq_spec;	__u8 rq_cmb;	__u8 udma_mask;	__u8 rsvd[5];}; struct ionic_srq_resp {	__u32 qpid;	__u8 rq_cmb;	__u8 udma_idx;	__u8 rsvd[2];	__aligned_u64 rq_cmb_offset;}; #endif /* IONIC_ABI_H */