projects/linux·blob master · refs

116 lines · 1.8 KiB

1/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
2/* Copyright (C) 2018-2025, Advanced Micro Devices, Inc */
3
4#ifndef IONIC_ABI_H
5#define IONIC_ABI_H
6
7#include <linux/types.h>
8
9#define IONIC_ABI_VERSION 1
10
11#define IONIC_EXPDB_64 1
12#define IONIC_EXPDB_128 2
13#define IONIC_EXPDB_256 4
14#define IONIC_EXPDB_512 8
15
16#define IONIC_EXPDB_SQ 1
17#define IONIC_EXPDB_RQ 2
18
19#define IONIC_CMB_ENABLE 1
20#define IONIC_CMB_REQUIRE 2
21#define IONIC_CMB_EXPDB 4
22#define IONIC_CMB_WC 8
23#define IONIC_CMB_UC 16
24
25struct ionic_ctx_req {
26 __u32 rsvd[2];
27};
28
29struct ionic_ctx_resp {
30 __u32 rsvd;
31 __u32 page_shift;
32
33 __aligned_u64 dbell_offset;
34
35 __u16 version;
36 __u8 qp_opcodes;
37 __u8 admin_opcodes;
38
39 __u8 sq_qtype;
40 __u8 rq_qtype;
41 __u8 cq_qtype;
42 __u8 admin_qtype;
43
44 __u8 max_stride;
45 __u8 max_spec;
46 __u8 udma_count;
47 __u8 expdb_mask;
48 __u8 expdb_qtypes;
49
50 __u8 rsvd2[3];
51 __aligned_u64 phc_offset;
52};
53
54struct ionic_qdesc {
55 __aligned_u64 addr;
56 __u32 size;
57 __u16 mask;
58 __u8 depth_log2;
59 __u8 stride_log2;
60};
61
62struct ionic_ah_resp {
63 __u32 ahid;
64 __u32 pad;
65};
66
67struct ionic_cq_req {
68 struct ionic_qdesc cq[2];
69 __u8 udma_mask;
70 __u8 rsvd[7];
71};
72
73struct ionic_cq_resp {
74 __u32 cqid[2];
75 __u8 udma_mask;
76 __u8 rsvd[7];
77};
78
79struct ionic_qp_req {
80 struct ionic_qdesc sq;
81 struct ionic_qdesc rq;
82 __u8 sq_spec;
83 __u8 rq_spec;
84 __u8 sq_cmb;
85 __u8 rq_cmb;
86 __u8 udma_mask;
87 __u8 rsvd[3];
88};
89
90struct ionic_qp_resp {
91 __u32 qpid;
92 __u8 sq_cmb;
93 __u8 rq_cmb;
94 __u8 udma_idx;
95 __u8 rsvd[1];
96 __aligned_u64 sq_cmb_offset;
97 __aligned_u64 rq_cmb_offset;
98};
99
100struct ionic_srq_req {
101 struct ionic_qdesc rq;
102 __u8 rq_spec;
103 __u8 rq_cmb;
104 __u8 udma_mask;
105 __u8 rsvd[5];
106};
107
108struct ionic_srq_resp {
109 __u32 qpid;
110 __u8 rq_cmb;
111 __u8 udma_idx;
112 __u8 rsvd[2];
113 __aligned_u64 rq_cmb_offset;
114};
115
116#endif /* IONIC_ABI_H */