xref: /freebsd/sys/ofed/include/uapi/rdma/mthca-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  *
433ec1ccbSHans Petter Selasky  * Copyright (c) 2005 Topspin Communications.  All rights reserved.
533ec1ccbSHans Petter Selasky  * Copyright (c) 2005, 2006 Cisco Systems.  All rights reserved.
633ec1ccbSHans Petter Selasky  *
733ec1ccbSHans Petter Selasky  * This software is available to you under a choice of one of two
833ec1ccbSHans Petter Selasky  * licenses.  You may choose to be licensed under the terms of the GNU
933ec1ccbSHans Petter Selasky  * General Public License (GPL) Version 2, available from the file
1033ec1ccbSHans Petter Selasky  * COPYING in the main directory of this source tree, or the
1133ec1ccbSHans Petter Selasky  * OpenIB.org BSD license below:
1233ec1ccbSHans Petter Selasky  *
1333ec1ccbSHans Petter Selasky  *     Redistribution and use in source and binary forms, with or
1433ec1ccbSHans Petter Selasky  *     without modification, are permitted provided that the following
1533ec1ccbSHans Petter Selasky  *     conditions are met:
1633ec1ccbSHans Petter Selasky  *
1733ec1ccbSHans Petter Selasky  *      - Redistributions of source code must retain the above
1833ec1ccbSHans Petter Selasky  *        copyright notice, this list of conditions and the following
1933ec1ccbSHans Petter Selasky  *        disclaimer.
2033ec1ccbSHans Petter Selasky  *
2133ec1ccbSHans Petter Selasky  *      - Redistributions in binary form must reproduce the above
2233ec1ccbSHans Petter Selasky  *        copyright notice, this list of conditions and the following
2333ec1ccbSHans Petter Selasky  *        disclaimer in the documentation and/or other materials
2433ec1ccbSHans Petter Selasky  *        provided with the distribution.
2533ec1ccbSHans Petter Selasky  *
2633ec1ccbSHans Petter Selasky  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
2733ec1ccbSHans Petter Selasky  * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
2833ec1ccbSHans Petter Selasky  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
2933ec1ccbSHans Petter Selasky  * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
3033ec1ccbSHans Petter Selasky  * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
3133ec1ccbSHans Petter Selasky  * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
3233ec1ccbSHans Petter Selasky  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
3333ec1ccbSHans Petter Selasky  * SOFTWARE.
3433ec1ccbSHans Petter Selasky  */
3533ec1ccbSHans Petter Selasky 
3633ec1ccbSHans Petter Selasky #ifndef MTHCA_ABI_USER_H
3733ec1ccbSHans Petter Selasky #define MTHCA_ABI_USER_H
3833ec1ccbSHans Petter Selasky 
3933ec1ccbSHans Petter Selasky #include <linux/types.h>
4033ec1ccbSHans Petter Selasky 
4133ec1ccbSHans Petter Selasky /*
4233ec1ccbSHans Petter Selasky  * Increment this value if any changes that break userspace ABI
4333ec1ccbSHans Petter Selasky  * compatibility are made.
4433ec1ccbSHans Petter Selasky  */
4533ec1ccbSHans Petter Selasky #define MTHCA_UVERBS_ABI_VERSION	1
4633ec1ccbSHans Petter Selasky 
4733ec1ccbSHans Petter Selasky /*
4833ec1ccbSHans Petter Selasky  * Make sure that all structs defined in this file remain laid out so
4933ec1ccbSHans Petter Selasky  * that they pack the same way on 32-bit and 64-bit architectures (to
5033ec1ccbSHans Petter Selasky  * avoid incompatibility between 32-bit userspace and 64-bit kernels).
5133ec1ccbSHans Petter Selasky  * In particular do not use pointer types -- pass pointers in __u64
5233ec1ccbSHans Petter Selasky  * instead.
5333ec1ccbSHans Petter Selasky  */
5433ec1ccbSHans Petter Selasky struct mthca_alloc_ucontext_resp {
5533ec1ccbSHans Petter Selasky 	__u32 qp_tab_size;
5633ec1ccbSHans Petter Selasky 	__u32 uarc_size;
5733ec1ccbSHans Petter Selasky };
5833ec1ccbSHans Petter Selasky 
5933ec1ccbSHans Petter Selasky struct mthca_alloc_pd_resp {
6033ec1ccbSHans Petter Selasky 	__u32 pdn;
6133ec1ccbSHans Petter Selasky 	__u32 reserved;
6233ec1ccbSHans Petter Selasky };
6333ec1ccbSHans Petter Selasky 
6433ec1ccbSHans Petter Selasky /*
6533ec1ccbSHans Petter Selasky  * Mark the memory region with a DMA attribute that causes
6633ec1ccbSHans Petter Selasky  * in-flight DMA to be flushed when the region is written to:
6733ec1ccbSHans Petter Selasky  */
6833ec1ccbSHans Petter Selasky #define MTHCA_MR_DMASYNC	0x1
6933ec1ccbSHans Petter Selasky 
7033ec1ccbSHans Petter Selasky struct mthca_reg_mr {
7133ec1ccbSHans Petter Selasky 	__u32 mr_attrs;
7233ec1ccbSHans Petter Selasky 	__u32 reserved;
7333ec1ccbSHans Petter Selasky };
7433ec1ccbSHans Petter Selasky 
7533ec1ccbSHans Petter Selasky struct mthca_create_cq {
7633ec1ccbSHans Petter Selasky 	__u32 lkey;
7733ec1ccbSHans Petter Selasky 	__u32 pdn;
7833ec1ccbSHans Petter Selasky 	__u64 arm_db_page;
7933ec1ccbSHans Petter Selasky 	__u64 set_db_page;
8033ec1ccbSHans Petter Selasky 	__u32 arm_db_index;
8133ec1ccbSHans Petter Selasky 	__u32 set_db_index;
8233ec1ccbSHans Petter Selasky };
8333ec1ccbSHans Petter Selasky 
8433ec1ccbSHans Petter Selasky struct mthca_create_cq_resp {
8533ec1ccbSHans Petter Selasky 	__u32 cqn;
8633ec1ccbSHans Petter Selasky 	__u32 reserved;
8733ec1ccbSHans Petter Selasky };
8833ec1ccbSHans Petter Selasky 
8933ec1ccbSHans Petter Selasky struct mthca_resize_cq {
9033ec1ccbSHans Petter Selasky 	__u32 lkey;
9133ec1ccbSHans Petter Selasky 	__u32 reserved;
9233ec1ccbSHans Petter Selasky };
9333ec1ccbSHans Petter Selasky 
9433ec1ccbSHans Petter Selasky struct mthca_create_srq {
9533ec1ccbSHans Petter Selasky 	__u32 lkey;
9633ec1ccbSHans Petter Selasky 	__u32 db_index;
9733ec1ccbSHans Petter Selasky 	__u64 db_page;
9833ec1ccbSHans Petter Selasky };
9933ec1ccbSHans Petter Selasky 
10033ec1ccbSHans Petter Selasky struct mthca_create_srq_resp {
10133ec1ccbSHans Petter Selasky 	__u32 srqn;
10233ec1ccbSHans Petter Selasky 	__u32 reserved;
10333ec1ccbSHans Petter Selasky };
10433ec1ccbSHans Petter Selasky 
10533ec1ccbSHans Petter Selasky struct mthca_create_qp {
10633ec1ccbSHans Petter Selasky 	__u32 lkey;
10733ec1ccbSHans Petter Selasky 	__u32 reserved;
10833ec1ccbSHans Petter Selasky 	__u64 sq_db_page;
10933ec1ccbSHans Petter Selasky 	__u64 rq_db_page;
11033ec1ccbSHans Petter Selasky 	__u32 sq_db_index;
11133ec1ccbSHans Petter Selasky 	__u32 rq_db_index;
11233ec1ccbSHans Petter Selasky };
11333ec1ccbSHans Petter Selasky #endif /* MTHCA_ABI_USER_H */
114