diff options
Diffstat (limited to 'include/rdma')
| -rw-r--r-- | include/rdma/uverbs_std_types.h | 50 | ||||
| -rw-r--r-- | include/rdma/uverbs_types.h | 14 |
2 files changed, 64 insertions, 0 deletions
diff --git a/include/rdma/uverbs_std_types.h b/include/rdma/uverbs_std_types.h new file mode 100644 index 000000000000..2edb77648986 --- /dev/null +++ b/include/rdma/uverbs_std_types.h | |||
| @@ -0,0 +1,50 @@ | |||
| 1 | /* | ||
| 2 | * Copyright (c) 2017, Mellanox Technologies inc. All rights reserved. | ||
| 3 | * | ||
| 4 | * This software is available to you under a choice of one of two | ||
| 5 | * licenses. You may choose to be licensed under the terms of the GNU | ||
| 6 | * General Public License (GPL) Version 2, available from the file | ||
| 7 | * COPYING in the main directory of this source tree, or the | ||
| 8 | * OpenIB.org BSD license below: | ||
| 9 | * | ||
| 10 | * Redistribution and use in source and binary forms, with or | ||
| 11 | * without modification, are permitted provided that the following | ||
| 12 | * conditions are met: | ||
| 13 | * | ||
| 14 | * - Redistributions of source code must retain the above | ||
| 15 | * copyright notice, this list of conditions and the following | ||
| 16 | * disclaimer. | ||
| 17 | * | ||
| 18 | * - Redistributions in binary form must reproduce the above | ||
| 19 | * copyright notice, this list of conditions and the following | ||
| 20 | * disclaimer in the documentation and/or other materials | ||
| 21 | * provided with the distribution. | ||
| 22 | * | ||
| 23 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, | ||
| 24 | * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF | ||
| 25 | * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND | ||
| 26 | * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS | ||
| 27 | * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN | ||
| 28 | * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN | ||
| 29 | * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE | ||
| 30 | * SOFTWARE. | ||
| 31 | */ | ||
| 32 | |||
| 33 | #ifndef _UVERBS_STD_TYPES__ | ||
| 34 | #define _UVERBS_STD_TYPES__ | ||
| 35 | |||
| 36 | #include <rdma/uverbs_types.h> | ||
| 37 | |||
| 38 | extern const struct uverbs_obj_idr_type uverbs_type_attrs_cq; | ||
| 39 | extern const struct uverbs_obj_idr_type uverbs_type_attrs_qp; | ||
| 40 | extern const struct uverbs_obj_idr_type uverbs_type_attrs_rwq_ind_table; | ||
| 41 | extern const struct uverbs_obj_idr_type uverbs_type_attrs_wq; | ||
| 42 | extern const struct uverbs_obj_idr_type uverbs_type_attrs_srq; | ||
| 43 | extern const struct uverbs_obj_idr_type uverbs_type_attrs_ah; | ||
| 44 | extern const struct uverbs_obj_idr_type uverbs_type_attrs_flow; | ||
| 45 | extern const struct uverbs_obj_idr_type uverbs_type_attrs_mr; | ||
| 46 | extern const struct uverbs_obj_idr_type uverbs_type_attrs_mw; | ||
| 47 | extern const struct uverbs_obj_idr_type uverbs_type_attrs_pd; | ||
| 48 | extern const struct uverbs_obj_idr_type uverbs_type_attrs_xrcd; | ||
| 49 | #endif | ||
| 50 | |||
diff --git a/include/rdma/uverbs_types.h b/include/rdma/uverbs_types.h index 0777e405f22a..66368b5a3006 100644 --- a/include/rdma/uverbs_types.h +++ b/include/rdma/uverbs_types.h | |||
| @@ -129,4 +129,18 @@ void rdma_alloc_abort_uobject(struct ib_uobject *uobj); | |||
| 129 | int __must_check rdma_remove_commit_uobject(struct ib_uobject *uobj); | 129 | int __must_check rdma_remove_commit_uobject(struct ib_uobject *uobj); |
| 130 | int rdma_alloc_commit_uobject(struct ib_uobject *uobj); | 130 | int rdma_alloc_commit_uobject(struct ib_uobject *uobj); |
| 131 | 131 | ||
| 132 | extern const struct uverbs_obj_type_class uverbs_idr_class; | ||
| 133 | |||
| 134 | #define UVERBS_BUILD_BUG_ON(cond) (sizeof(char[1 - 2 * !!(cond)]) - \ | ||
| 135 | sizeof(char)) | ||
| 136 | #define UVERBS_TYPE_ALLOC_IDR_SZ(_size, _order) \ | ||
| 137 | { \ | ||
| 138 | .destroy_order = _order, \ | ||
| 139 | .type_class = &uverbs_idr_class, \ | ||
| 140 | .obj_size = (_size) + \ | ||
| 141 | UVERBS_BUILD_BUG_ON((_size) < \ | ||
| 142 | sizeof(struct ib_uobject)), \ | ||
| 143 | } | ||
| 144 | #define UVERBS_TYPE_ALLOC_IDR(_order) \ | ||
| 145 | UVERBS_TYPE_ALLOC_IDR_SZ(sizeof(struct ib_uobject), _order) | ||
| 132 | #endif | 146 | #endif |
