xref: /freebsd/sys/ofed/include/uapi/rdma/mlx4-abi.h (revision 95ee2897e98f5d444f26ed2334cc7c439f9c16c6)
1*09938b21SHans Petter Selasky /*-
2*09938b21SHans Petter Selasky  * SPDX-License-Identifier: BSD-2-Clause OR GPL-2.0
3*09938b21SHans Petter Selasky  *
4478d3005SHans Petter Selasky  * Copyright (c) 2007 Cisco Systems, Inc. All rights reserved.
5478d3005SHans Petter Selasky  * Copyright (c) 2007, 2008 Mellanox Technologies. All rights reserved.
6478d3005SHans Petter Selasky  *
7478d3005SHans Petter Selasky  * This software is available to you under a choice of one of two
8478d3005SHans Petter Selasky  * licenses.  You may choose to be licensed under the terms of the GNU
9478d3005SHans Petter Selasky  * General Public License (GPL) Version 2, available from the file
10478d3005SHans Petter Selasky  * COPYING in the main directory of this source tree, or the
11478d3005SHans Petter Selasky  * OpenIB.org BSD license below:
12478d3005SHans Petter Selasky  *
13478d3005SHans Petter Selasky  *     Redistribution and use in source and binary forms, with or
14478d3005SHans Petter Selasky  *     without modification, are permitted provided that the following
15478d3005SHans Petter Selasky  *     conditions are met:
16478d3005SHans Petter Selasky  *
17478d3005SHans Petter Selasky  *      - Redistributions of source code must retain the above
18478d3005SHans Petter Selasky  *        copyright notice, this list of conditions and the following
19478d3005SHans Petter Selasky  *        disclaimer.
20478d3005SHans Petter Selasky  *
21478d3005SHans Petter Selasky  *      - Redistributions in binary form must reproduce the above
22478d3005SHans Petter Selasky  *        copyright notice, this list of conditions and the following
23478d3005SHans Petter Selasky  *        disclaimer in the documentation and/or other materials
24478d3005SHans Petter Selasky  *        provided with the distribution.
25478d3005SHans Petter Selasky  *
26478d3005SHans Petter Selasky  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
27478d3005SHans Petter Selasky  * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
28478d3005SHans Petter Selasky  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
29478d3005SHans Petter Selasky  * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
30478d3005SHans Petter Selasky  * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
31478d3005SHans Petter Selasky  * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
32478d3005SHans Petter Selasky  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
33478d3005SHans Petter Selasky  * SOFTWARE.
34478d3005SHans Petter Selasky  */
35478d3005SHans Petter Selasky 
36478d3005SHans Petter Selasky #ifndef MLX4_ABI_USER_H
37478d3005SHans Petter Selasky #define MLX4_ABI_USER_H
38478d3005SHans Petter Selasky 
39c19d6504SHans Petter Selasky #ifdef _KERNEL
40478d3005SHans Petter Selasky #include <linux/types.h>
41c19d6504SHans Petter Selasky #else
42c19d6504SHans Petter Selasky #include <infiniband/types.h>
43c19d6504SHans Petter Selasky #endif
44478d3005SHans Petter Selasky 
45478d3005SHans Petter Selasky /*
46478d3005SHans Petter Selasky  * Increment this value if any changes that break userspace ABI
47478d3005SHans Petter Selasky  * compatibility are made.
48478d3005SHans Petter Selasky  */
49478d3005SHans Petter Selasky 
50478d3005SHans Petter Selasky #define MLX4_IB_UVERBS_NO_DEV_CAPS_ABI_VERSION	3
51478d3005SHans Petter Selasky #define MLX4_IB_UVERBS_ABI_VERSION		4
52478d3005SHans Petter Selasky 
53478d3005SHans Petter Selasky /*
54478d3005SHans Petter Selasky  * Make sure that all structs defined in this file remain laid out so
55478d3005SHans Petter Selasky  * that they pack the same way on 32-bit and 64-bit architectures (to
56478d3005SHans Petter Selasky  * avoid incompatibility between 32-bit userspace and 64-bit kernels).
57478d3005SHans Petter Selasky  * In particular do not use pointer types -- pass pointers in __u64
58478d3005SHans Petter Selasky  * instead.
59478d3005SHans Petter Selasky  */
60478d3005SHans Petter Selasky 
61478d3005SHans Petter Selasky struct mlx4_ib_alloc_ucontext_resp_v3 {
62478d3005SHans Petter Selasky 	__u32	qp_tab_size;
63478d3005SHans Petter Selasky 	__u16	bf_reg_size;
64478d3005SHans Petter Selasky 	__u16	bf_regs_per_page;
65478d3005SHans Petter Selasky };
66478d3005SHans Petter Selasky 
67478d3005SHans Petter Selasky struct mlx4_ib_alloc_ucontext_resp {
68478d3005SHans Petter Selasky 	__u32	dev_caps;
69478d3005SHans Petter Selasky 	__u32	qp_tab_size;
70478d3005SHans Petter Selasky 	__u16	bf_reg_size;
71478d3005SHans Petter Selasky 	__u16	bf_regs_per_page;
72478d3005SHans Petter Selasky 	__u32	cqe_size;
73478d3005SHans Petter Selasky };
74478d3005SHans Petter Selasky 
75478d3005SHans Petter Selasky struct mlx4_ib_alloc_pd_resp {
76478d3005SHans Petter Selasky 	__u32	pdn;
77478d3005SHans Petter Selasky 	__u32	reserved;
78478d3005SHans Petter Selasky };
79478d3005SHans Petter Selasky 
80478d3005SHans Petter Selasky struct mlx4_ib_create_cq {
81478d3005SHans Petter Selasky 	__u64	buf_addr;
82478d3005SHans Petter Selasky 	__u64	db_addr;
83478d3005SHans Petter Selasky };
84478d3005SHans Petter Selasky 
85478d3005SHans Petter Selasky struct mlx4_ib_create_cq_resp {
86478d3005SHans Petter Selasky 	__u32	cqn;
87478d3005SHans Petter Selasky 	__u32	reserved;
88478d3005SHans Petter Selasky };
89478d3005SHans Petter Selasky 
90478d3005SHans Petter Selasky struct mlx4_ib_resize_cq {
91478d3005SHans Petter Selasky 	__u64	buf_addr;
92478d3005SHans Petter Selasky };
93478d3005SHans Petter Selasky 
94478d3005SHans Petter Selasky struct mlx4_ib_create_srq {
95478d3005SHans Petter Selasky 	__u64	buf_addr;
96478d3005SHans Petter Selasky 	__u64	db_addr;
97478d3005SHans Petter Selasky };
98478d3005SHans Petter Selasky 
99478d3005SHans Petter Selasky struct mlx4_ib_create_srq_resp {
100478d3005SHans Petter Selasky 	__u32	srqn;
101478d3005SHans Petter Selasky 	__u32	reserved;
102478d3005SHans Petter Selasky };
103478d3005SHans Petter Selasky 
104478d3005SHans Petter Selasky struct mlx4_ib_create_qp {
105478d3005SHans Petter Selasky 	__u64	buf_addr;
106478d3005SHans Petter Selasky 	__u64	db_addr;
107478d3005SHans Petter Selasky 	__u8	log_sq_bb_count;
108478d3005SHans Petter Selasky 	__u8	log_sq_stride;
109478d3005SHans Petter Selasky 	__u8	sq_no_prefetch;
110478d3005SHans Petter Selasky 	__u8	reserved[5];
111478d3005SHans Petter Selasky };
112478d3005SHans Petter Selasky 
113478d3005SHans Petter Selasky #endif /* MLX4_ABI_USER_H */
114