2018-03-19 20:02:33 +07:00
|
|
|
/*
|
|
|
|
* Copyright (c) 2018, Mellanox Technologies inc. All rights reserved.
|
|
|
|
*
|
|
|
|
* This software is available to you under a choice of one of two
|
|
|
|
* licenses. You may choose to be licensed under the terms of the GNU
|
|
|
|
* General Public License (GPL) Version 2, available from the file
|
|
|
|
* COPYING in the main directory of this source tree, or the
|
|
|
|
* OpenIB.org BSD license below:
|
|
|
|
*
|
|
|
|
* Redistribution and use in source and binary forms, with or
|
|
|
|
* without modification, are permitted provided that the following
|
|
|
|
* conditions are met:
|
|
|
|
*
|
|
|
|
* - Redistributions of source code must retain the above
|
|
|
|
* copyright notice, this list of conditions and the following
|
|
|
|
* disclaimer.
|
|
|
|
*
|
|
|
|
* - Redistributions in binary form must reproduce the above
|
|
|
|
* copyright notice, this list of conditions and the following
|
|
|
|
* disclaimer in the documentation and/or other materials
|
|
|
|
* provided with the distribution.
|
|
|
|
*
|
|
|
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
|
|
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
|
|
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
|
|
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
|
|
|
|
* BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
|
|
|
|
* ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
|
|
|
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
|
|
* SOFTWARE.
|
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef RDMA_USER_IOCTL_CMDS_H
|
|
|
|
#define RDMA_USER_IOCTL_CMDS_H
|
|
|
|
|
|
|
|
#include <linux/types.h>
|
|
|
|
#include <linux/ioctl.h>
|
|
|
|
|
docs: ioctl-number.txt: convert it to ReST format
The conversion itself is simple: add a markup for the
title of this file and add markups for both tables.
Yet, the big table here with IOCTL numbers is badly formatted:
on several lines, the "Include File" column has some values that
are bigger than the reserved space there.
Also, on several places, a comment was misplaced at the "Include
File" space.
So, most of the work here is to actually ensure that each field
will be properly fixed.
Also worth to mention that some URLs have the asterisk character
on it. Well, Sphinx has an issue with asterisks in the middle
of an string. As this is URL, use the alternate format: %2A.
As a side effect of this patch, it is now a lot easier to see that
some reserved ioctl numbers are missing the include files
where it is supposed to be used.
PS.: While this is part of a subdir, I opted to convert this
single file alone, as this file has a potential of conflicts,
as most subsystem maintainers touch it.
Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
2019-04-18 21:21:26 +07:00
|
|
|
/* Documentation/ioctl/ioctl-number.rst */
|
2018-03-19 20:02:33 +07:00
|
|
|
#define RDMA_IOCTL_MAGIC 0x1b
|
|
|
|
#define RDMA_VERBS_IOCTL \
|
|
|
|
_IOWR(RDMA_IOCTL_MAGIC, 1, struct ib_uverbs_ioctl_hdr)
|
|
|
|
|
|
|
|
enum {
|
|
|
|
/* User input */
|
|
|
|
UVERBS_ATTR_F_MANDATORY = 1U << 0,
|
|
|
|
/*
|
|
|
|
* Valid output bit should be ignored and considered set in
|
|
|
|
* mandatory fields. This bit is kernel output.
|
|
|
|
*/
|
|
|
|
UVERBS_ATTR_F_VALID_OUTPUT = 1U << 1,
|
|
|
|
};
|
|
|
|
|
|
|
|
struct ib_uverbs_attr {
|
|
|
|
__u16 attr_id; /* command specific type attribute */
|
2018-09-06 21:27:01 +07:00
|
|
|
__u16 len; /* only for pointers and IDRs array */
|
2018-03-19 20:02:33 +07:00
|
|
|
__u16 flags; /* combination of UVERBS_ATTR_F_XXXX */
|
2018-03-28 13:27:42 +07:00
|
|
|
union {
|
|
|
|
struct {
|
|
|
|
__u8 elem_id;
|
|
|
|
__u8 reserved;
|
|
|
|
} enum_data;
|
|
|
|
__u16 reserved;
|
|
|
|
} attr_data;
|
2018-07-11 09:55:14 +07:00
|
|
|
union {
|
2018-09-06 21:27:01 +07:00
|
|
|
/*
|
|
|
|
* ptr to command, inline data, idr/fd or
|
|
|
|
* ptr to __u32 array of IDRs
|
|
|
|
*/
|
2018-07-11 09:55:14 +07:00
|
|
|
__aligned_u64 data;
|
|
|
|
/* Used by FD_IN and FD_OUT */
|
|
|
|
__s64 data_s64;
|
|
|
|
};
|
2018-03-19 20:02:33 +07:00
|
|
|
};
|
|
|
|
|
|
|
|
struct ib_uverbs_ioctl_hdr {
|
|
|
|
__u16 length;
|
|
|
|
__u16 object_id;
|
|
|
|
__u16 method_id;
|
|
|
|
__u16 num_attrs;
|
2018-03-19 20:02:34 +07:00
|
|
|
__aligned_u64 reserved1;
|
|
|
|
__u32 driver_id;
|
|
|
|
__u32 reserved2;
|
2018-03-19 20:02:33 +07:00
|
|
|
struct ib_uverbs_attr attrs[0];
|
|
|
|
};
|
|
|
|
|
2018-03-19 20:02:34 +07:00
|
|
|
enum rdma_driver_id {
|
|
|
|
RDMA_DRIVER_UNKNOWN,
|
|
|
|
RDMA_DRIVER_MLX5,
|
|
|
|
RDMA_DRIVER_MLX4,
|
|
|
|
RDMA_DRIVER_CXGB3,
|
|
|
|
RDMA_DRIVER_CXGB4,
|
|
|
|
RDMA_DRIVER_MTHCA,
|
|
|
|
RDMA_DRIVER_BNXT_RE,
|
|
|
|
RDMA_DRIVER_OCRDMA,
|
|
|
|
RDMA_DRIVER_NES,
|
|
|
|
RDMA_DRIVER_I40IW,
|
|
|
|
RDMA_DRIVER_VMW_PVRDMA,
|
|
|
|
RDMA_DRIVER_QEDR,
|
|
|
|
RDMA_DRIVER_HNS,
|
|
|
|
RDMA_DRIVER_USNIC,
|
|
|
|
RDMA_DRIVER_RXE,
|
|
|
|
RDMA_DRIVER_HFI1,
|
|
|
|
RDMA_DRIVER_QIB,
|
2019-05-06 00:59:21 +07:00
|
|
|
RDMA_DRIVER_EFA,
|
2019-06-20 23:21:27 +07:00
|
|
|
RDMA_DRIVER_SIW,
|
2018-03-19 20:02:34 +07:00
|
|
|
};
|
|
|
|
|
2018-03-19 20:02:33 +07:00
|
|
|
#endif
|