brintos

brintos / linux-shallow public Read only

0
0
Text · 9.6 KiB · ec71905 Raw
385 lines · c
1/*2 * Copyright (c) 2018, Mellanox Technologies inc.  All rights reserved.3 * Copyright (c) 2020, Intel Corporation. All rights reserved.4 *5 * This software is available to you under a choice of one of two6 * licenses.  You may choose to be licensed under the terms of the GNU7 * General Public License (GPL) Version 2, available from the file8 * COPYING in the main directory of this source tree, or the9 * OpenIB.org BSD license below:10 *11 *     Redistribution and use in source and binary forms, with or12 *     without modification, are permitted provided that the following13 *     conditions are met:14 *15 *      - Redistributions of source code must retain the above16 *        copyright notice, this list of conditions and the following17 *        disclaimer.18 *19 *      - Redistributions in binary form must reproduce the above20 *        copyright notice, this list of conditions and the following21 *        disclaimer in the documentation and/or other materials22 *        provided with the distribution.23 *24 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,25 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF26 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND27 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS28 * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN29 * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN30 * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE31 * SOFTWARE.32 */33 34#ifndef IB_USER_IOCTL_CMDS_H35#define IB_USER_IOCTL_CMDS_H36 37#define UVERBS_ID_NS_MASK 0xF00038#define UVERBS_ID_NS_SHIFT 1239 40enum uverbs_default_objects {41	UVERBS_OBJECT_DEVICE, /* No instances of DEVICE are allowed */42	UVERBS_OBJECT_PD,43	UVERBS_OBJECT_COMP_CHANNEL,44	UVERBS_OBJECT_CQ,45	UVERBS_OBJECT_QP,46	UVERBS_OBJECT_SRQ,47	UVERBS_OBJECT_AH,48	UVERBS_OBJECT_MR,49	UVERBS_OBJECT_MW,50	UVERBS_OBJECT_FLOW,51	UVERBS_OBJECT_XRCD,52	UVERBS_OBJECT_RWQ_IND_TBL,53	UVERBS_OBJECT_WQ,54	UVERBS_OBJECT_FLOW_ACTION,55	UVERBS_OBJECT_DM,56	UVERBS_OBJECT_COUNTERS,57	UVERBS_OBJECT_ASYNC_EVENT,58};59 60enum {61	UVERBS_ID_DRIVER_NS = 1UL << UVERBS_ID_NS_SHIFT,62	UVERBS_ATTR_UHW_IN = UVERBS_ID_DRIVER_NS,63	UVERBS_ATTR_UHW_OUT,64	UVERBS_ID_DRIVER_NS_WITH_UHW,65};66 67enum uverbs_methods_device {68	UVERBS_METHOD_INVOKE_WRITE,69	UVERBS_METHOD_INFO_HANDLES,70	UVERBS_METHOD_QUERY_PORT,71	UVERBS_METHOD_GET_CONTEXT,72	UVERBS_METHOD_QUERY_CONTEXT,73	UVERBS_METHOD_QUERY_GID_TABLE,74	UVERBS_METHOD_QUERY_GID_ENTRY,75};76 77enum uverbs_attrs_invoke_write_cmd_attr_ids {78	UVERBS_ATTR_CORE_IN,79	UVERBS_ATTR_CORE_OUT,80	UVERBS_ATTR_WRITE_CMD,81};82 83enum uverbs_attrs_query_port_cmd_attr_ids {84	UVERBS_ATTR_QUERY_PORT_PORT_NUM,85	UVERBS_ATTR_QUERY_PORT_RESP,86};87 88enum uverbs_attrs_get_context_attr_ids {89	UVERBS_ATTR_GET_CONTEXT_NUM_COMP_VECTORS,90	UVERBS_ATTR_GET_CONTEXT_CORE_SUPPORT,91};92 93enum uverbs_attrs_query_context_attr_ids {94	UVERBS_ATTR_QUERY_CONTEXT_NUM_COMP_VECTORS,95	UVERBS_ATTR_QUERY_CONTEXT_CORE_SUPPORT,96};97 98enum uverbs_attrs_create_cq_cmd_attr_ids {99	UVERBS_ATTR_CREATE_CQ_HANDLE,100	UVERBS_ATTR_CREATE_CQ_CQE,101	UVERBS_ATTR_CREATE_CQ_USER_HANDLE,102	UVERBS_ATTR_CREATE_CQ_COMP_CHANNEL,103	UVERBS_ATTR_CREATE_CQ_COMP_VECTOR,104	UVERBS_ATTR_CREATE_CQ_FLAGS,105	UVERBS_ATTR_CREATE_CQ_RESP_CQE,106	UVERBS_ATTR_CREATE_CQ_EVENT_FD,107};108 109enum uverbs_attrs_destroy_cq_cmd_attr_ids {110	UVERBS_ATTR_DESTROY_CQ_HANDLE,111	UVERBS_ATTR_DESTROY_CQ_RESP,112};113 114enum uverbs_attrs_create_flow_action_esp {115	UVERBS_ATTR_CREATE_FLOW_ACTION_ESP_HANDLE,116	UVERBS_ATTR_FLOW_ACTION_ESP_ATTRS,117	UVERBS_ATTR_FLOW_ACTION_ESP_ESN,118	UVERBS_ATTR_FLOW_ACTION_ESP_KEYMAT,119	UVERBS_ATTR_FLOW_ACTION_ESP_REPLAY,120	UVERBS_ATTR_FLOW_ACTION_ESP_ENCAP,121};122 123enum uverbs_attrs_modify_flow_action_esp {124	UVERBS_ATTR_MODIFY_FLOW_ACTION_ESP_HANDLE =125		UVERBS_ATTR_CREATE_FLOW_ACTION_ESP_HANDLE,126};127 128enum uverbs_attrs_destroy_flow_action_esp {129	UVERBS_ATTR_DESTROY_FLOW_ACTION_HANDLE,130};131 132enum uverbs_attrs_create_qp_cmd_attr_ids {133	UVERBS_ATTR_CREATE_QP_HANDLE,134	UVERBS_ATTR_CREATE_QP_XRCD_HANDLE,135	UVERBS_ATTR_CREATE_QP_PD_HANDLE,136	UVERBS_ATTR_CREATE_QP_SRQ_HANDLE,137	UVERBS_ATTR_CREATE_QP_SEND_CQ_HANDLE,138	UVERBS_ATTR_CREATE_QP_RECV_CQ_HANDLE,139	UVERBS_ATTR_CREATE_QP_IND_TABLE_HANDLE,140	UVERBS_ATTR_CREATE_QP_USER_HANDLE,141	UVERBS_ATTR_CREATE_QP_CAP,142	UVERBS_ATTR_CREATE_QP_TYPE,143	UVERBS_ATTR_CREATE_QP_FLAGS,144	UVERBS_ATTR_CREATE_QP_SOURCE_QPN,145	UVERBS_ATTR_CREATE_QP_EVENT_FD,146	UVERBS_ATTR_CREATE_QP_RESP_CAP,147	UVERBS_ATTR_CREATE_QP_RESP_QP_NUM,148};149 150enum uverbs_attrs_destroy_qp_cmd_attr_ids {151	UVERBS_ATTR_DESTROY_QP_HANDLE,152	UVERBS_ATTR_DESTROY_QP_RESP,153};154 155enum uverbs_methods_qp {156	UVERBS_METHOD_QP_CREATE,157	UVERBS_METHOD_QP_DESTROY,158};159 160enum uverbs_attrs_create_srq_cmd_attr_ids {161	UVERBS_ATTR_CREATE_SRQ_HANDLE,162	UVERBS_ATTR_CREATE_SRQ_PD_HANDLE,163	UVERBS_ATTR_CREATE_SRQ_XRCD_HANDLE,164	UVERBS_ATTR_CREATE_SRQ_CQ_HANDLE,165	UVERBS_ATTR_CREATE_SRQ_USER_HANDLE,166	UVERBS_ATTR_CREATE_SRQ_MAX_WR,167	UVERBS_ATTR_CREATE_SRQ_MAX_SGE,168	UVERBS_ATTR_CREATE_SRQ_LIMIT,169	UVERBS_ATTR_CREATE_SRQ_MAX_NUM_TAGS,170	UVERBS_ATTR_CREATE_SRQ_TYPE,171	UVERBS_ATTR_CREATE_SRQ_EVENT_FD,172	UVERBS_ATTR_CREATE_SRQ_RESP_MAX_WR,173	UVERBS_ATTR_CREATE_SRQ_RESP_MAX_SGE,174	UVERBS_ATTR_CREATE_SRQ_RESP_SRQ_NUM,175};176 177enum uverbs_attrs_destroy_srq_cmd_attr_ids {178	UVERBS_ATTR_DESTROY_SRQ_HANDLE,179	UVERBS_ATTR_DESTROY_SRQ_RESP,180};181 182enum uverbs_methods_srq {183	UVERBS_METHOD_SRQ_CREATE,184	UVERBS_METHOD_SRQ_DESTROY,185};186 187enum uverbs_methods_cq {188	UVERBS_METHOD_CQ_CREATE,189	UVERBS_METHOD_CQ_DESTROY,190};191 192enum uverbs_attrs_create_wq_cmd_attr_ids {193	UVERBS_ATTR_CREATE_WQ_HANDLE,194	UVERBS_ATTR_CREATE_WQ_PD_HANDLE,195	UVERBS_ATTR_CREATE_WQ_CQ_HANDLE,196	UVERBS_ATTR_CREATE_WQ_USER_HANDLE,197	UVERBS_ATTR_CREATE_WQ_TYPE,198	UVERBS_ATTR_CREATE_WQ_EVENT_FD,199	UVERBS_ATTR_CREATE_WQ_MAX_WR,200	UVERBS_ATTR_CREATE_WQ_MAX_SGE,201	UVERBS_ATTR_CREATE_WQ_FLAGS,202	UVERBS_ATTR_CREATE_WQ_RESP_MAX_WR,203	UVERBS_ATTR_CREATE_WQ_RESP_MAX_SGE,204	UVERBS_ATTR_CREATE_WQ_RESP_WQ_NUM,205};206 207enum uverbs_attrs_destroy_wq_cmd_attr_ids {208	UVERBS_ATTR_DESTROY_WQ_HANDLE,209	UVERBS_ATTR_DESTROY_WQ_RESP,210};211 212enum uverbs_methods_wq {213	UVERBS_METHOD_WQ_CREATE,214	UVERBS_METHOD_WQ_DESTROY,215};216 217enum uverbs_methods_actions_flow_action_ops {218	UVERBS_METHOD_FLOW_ACTION_ESP_CREATE,219	UVERBS_METHOD_FLOW_ACTION_DESTROY,220	UVERBS_METHOD_FLOW_ACTION_ESP_MODIFY,221};222 223enum uverbs_attrs_alloc_dm_cmd_attr_ids {224	UVERBS_ATTR_ALLOC_DM_HANDLE,225	UVERBS_ATTR_ALLOC_DM_LENGTH,226	UVERBS_ATTR_ALLOC_DM_ALIGNMENT,227};228 229enum uverbs_attrs_free_dm_cmd_attr_ids {230	UVERBS_ATTR_FREE_DM_HANDLE,231};232 233enum uverbs_methods_dm {234	UVERBS_METHOD_DM_ALLOC,235	UVERBS_METHOD_DM_FREE,236};237 238enum uverbs_attrs_reg_dm_mr_cmd_attr_ids {239	UVERBS_ATTR_REG_DM_MR_HANDLE,240	UVERBS_ATTR_REG_DM_MR_OFFSET,241	UVERBS_ATTR_REG_DM_MR_LENGTH,242	UVERBS_ATTR_REG_DM_MR_PD_HANDLE,243	UVERBS_ATTR_REG_DM_MR_ACCESS_FLAGS,244	UVERBS_ATTR_REG_DM_MR_DM_HANDLE,245	UVERBS_ATTR_REG_DM_MR_RESP_LKEY,246	UVERBS_ATTR_REG_DM_MR_RESP_RKEY,247};248 249enum uverbs_methods_mr {250	UVERBS_METHOD_DM_MR_REG,251	UVERBS_METHOD_MR_DESTROY,252	UVERBS_METHOD_ADVISE_MR,253	UVERBS_METHOD_QUERY_MR,254	UVERBS_METHOD_REG_DMABUF_MR,255};256 257enum uverbs_attrs_mr_destroy_ids {258	UVERBS_ATTR_DESTROY_MR_HANDLE,259};260 261enum uverbs_attrs_advise_mr_cmd_attr_ids {262	UVERBS_ATTR_ADVISE_MR_PD_HANDLE,263	UVERBS_ATTR_ADVISE_MR_ADVICE,264	UVERBS_ATTR_ADVISE_MR_FLAGS,265	UVERBS_ATTR_ADVISE_MR_SGE_LIST,266};267 268enum uverbs_attrs_query_mr_cmd_attr_ids {269	UVERBS_ATTR_QUERY_MR_HANDLE,270	UVERBS_ATTR_QUERY_MR_RESP_LKEY,271	UVERBS_ATTR_QUERY_MR_RESP_RKEY,272	UVERBS_ATTR_QUERY_MR_RESP_LENGTH,273	UVERBS_ATTR_QUERY_MR_RESP_IOVA,274};275 276enum uverbs_attrs_reg_dmabuf_mr_cmd_attr_ids {277	UVERBS_ATTR_REG_DMABUF_MR_HANDLE,278	UVERBS_ATTR_REG_DMABUF_MR_PD_HANDLE,279	UVERBS_ATTR_REG_DMABUF_MR_OFFSET,280	UVERBS_ATTR_REG_DMABUF_MR_LENGTH,281	UVERBS_ATTR_REG_DMABUF_MR_IOVA,282	UVERBS_ATTR_REG_DMABUF_MR_FD,283	UVERBS_ATTR_REG_DMABUF_MR_ACCESS_FLAGS,284	UVERBS_ATTR_REG_DMABUF_MR_RESP_LKEY,285	UVERBS_ATTR_REG_DMABUF_MR_RESP_RKEY,286};287 288enum uverbs_attrs_create_counters_cmd_attr_ids {289	UVERBS_ATTR_CREATE_COUNTERS_HANDLE,290};291 292enum uverbs_attrs_destroy_counters_cmd_attr_ids {293	UVERBS_ATTR_DESTROY_COUNTERS_HANDLE,294};295 296enum uverbs_attrs_read_counters_cmd_attr_ids {297	UVERBS_ATTR_READ_COUNTERS_HANDLE,298	UVERBS_ATTR_READ_COUNTERS_BUFF,299	UVERBS_ATTR_READ_COUNTERS_FLAGS,300};301 302enum uverbs_methods_actions_counters_ops {303	UVERBS_METHOD_COUNTERS_CREATE,304	UVERBS_METHOD_COUNTERS_DESTROY,305	UVERBS_METHOD_COUNTERS_READ,306};307 308enum uverbs_attrs_info_handles_id {309	UVERBS_ATTR_INFO_OBJECT_ID,310	UVERBS_ATTR_INFO_TOTAL_HANDLES,311	UVERBS_ATTR_INFO_HANDLES_LIST,312};313 314enum uverbs_methods_pd {315	UVERBS_METHOD_PD_DESTROY,316};317 318enum uverbs_attrs_pd_destroy_ids {319	UVERBS_ATTR_DESTROY_PD_HANDLE,320};321 322enum uverbs_methods_mw {323	UVERBS_METHOD_MW_DESTROY,324};325 326enum uverbs_attrs_mw_destroy_ids {327	UVERBS_ATTR_DESTROY_MW_HANDLE,328};329 330enum uverbs_methods_xrcd {331	UVERBS_METHOD_XRCD_DESTROY,332};333 334enum uverbs_attrs_xrcd_destroy_ids {335	UVERBS_ATTR_DESTROY_XRCD_HANDLE,336};337 338enum uverbs_methods_ah {339	UVERBS_METHOD_AH_DESTROY,340};341 342enum uverbs_attrs_ah_destroy_ids {343	UVERBS_ATTR_DESTROY_AH_HANDLE,344};345 346enum uverbs_methods_rwq_ind_tbl {347	UVERBS_METHOD_RWQ_IND_TBL_DESTROY,348};349 350enum uverbs_attrs_rwq_ind_tbl_destroy_ids {351	UVERBS_ATTR_DESTROY_RWQ_IND_TBL_HANDLE,352};353 354enum uverbs_methods_flow {355	UVERBS_METHOD_FLOW_DESTROY,356};357 358enum uverbs_attrs_flow_destroy_ids {359	UVERBS_ATTR_DESTROY_FLOW_HANDLE,360};361 362enum uverbs_method_async_event {363	UVERBS_METHOD_ASYNC_EVENT_ALLOC,364};365 366enum uverbs_attrs_async_event_create {367	UVERBS_ATTR_ASYNC_EVENT_ALLOC_FD_HANDLE,368};369 370enum uverbs_attrs_query_gid_table_cmd_attr_ids {371	UVERBS_ATTR_QUERY_GID_TABLE_ENTRY_SIZE,372	UVERBS_ATTR_QUERY_GID_TABLE_FLAGS,373	UVERBS_ATTR_QUERY_GID_TABLE_RESP_ENTRIES,374	UVERBS_ATTR_QUERY_GID_TABLE_RESP_NUM_ENTRIES,375};376 377enum uverbs_attrs_query_gid_entry_cmd_attr_ids {378	UVERBS_ATTR_QUERY_GID_ENTRY_PORT,379	UVERBS_ATTR_QUERY_GID_ENTRY_GID_INDEX,380	UVERBS_ATTR_QUERY_GID_ENTRY_FLAGS,381	UVERBS_ATTR_QUERY_GID_ENTRY_RESP_ENTRY,382};383 384#endif385