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