Merge drm/drm-next into drm-misc-next
Now that 4.19-rc1 is cut, backmerge it into -misc-next. Signed-off-by: Sean Paul <seanpaul@chromium.org>
This commit is contained in:
@@ -107,4 +107,7 @@
|
||||
|
||||
#define SO_ZEROCOPY 60
|
||||
|
||||
#define SO_TXTIME 61
|
||||
#define SCM_TXTIME SO_TXTIME
|
||||
|
||||
#endif /* __ASM_GENERIC_SOCKET_H */
|
||||
|
@@ -734,9 +734,11 @@ __SYSCALL(__NR_pkey_free, sys_pkey_free)
|
||||
__SYSCALL(__NR_statx, sys_statx)
|
||||
#define __NR_io_pgetevents 292
|
||||
__SC_COMP(__NR_io_pgetevents, sys_io_pgetevents, compat_sys_io_pgetevents)
|
||||
#define __NR_rseq 293
|
||||
__SYSCALL(__NR_rseq, sys_rseq)
|
||||
|
||||
#undef __NR_syscalls
|
||||
#define __NR_syscalls 293
|
||||
#define __NR_syscalls 294
|
||||
|
||||
/*
|
||||
* 32 bit systems traditionally used different
|
||||
|
@@ -516,6 +516,7 @@ struct drm_amdgpu_gem_va {
|
||||
#define AMDGPU_CHUNK_ID_DEPENDENCIES 0x03
|
||||
#define AMDGPU_CHUNK_ID_SYNCOBJ_IN 0x04
|
||||
#define AMDGPU_CHUNK_ID_SYNCOBJ_OUT 0x05
|
||||
#define AMDGPU_CHUNK_ID_BO_HANDLES 0x06
|
||||
|
||||
struct drm_amdgpu_cs_chunk {
|
||||
__u32 chunk_id;
|
||||
|
@@ -335,6 +335,19 @@ extern "C" {
|
||||
*/
|
||||
#define DRM_FORMAT_MOD_SAMSUNG_64_32_TILE fourcc_mod_code(SAMSUNG, 1)
|
||||
|
||||
/*
|
||||
* Qualcomm Compressed Format
|
||||
*
|
||||
* Refers to a compressed variant of the base format that is compressed.
|
||||
* Implementation may be platform and base-format specific.
|
||||
*
|
||||
* Each macrotile consists of m x n (mostly 4 x 4) tiles.
|
||||
* Pixel data pitch/stride is aligned with macrotile width.
|
||||
* Pixel data height is aligned with macrotile height.
|
||||
* Entire pixel data buffer is aligned with 4k(bytes).
|
||||
*/
|
||||
#define DRM_FORMAT_MOD_QCOM_COMPRESSED fourcc_mod_code(QCOM, 1)
|
||||
|
||||
/* Vivante framebuffer modifiers */
|
||||
|
||||
/*
|
||||
|
@@ -40,6 +40,7 @@ extern "C" {
|
||||
|
||||
#define DRM_VMW_GET_PARAM 0
|
||||
#define DRM_VMW_ALLOC_DMABUF 1
|
||||
#define DRM_VMW_ALLOC_BO 1
|
||||
#define DRM_VMW_UNREF_DMABUF 2
|
||||
#define DRM_VMW_HANDLE_CLOSE 2
|
||||
#define DRM_VMW_CURSOR_BYPASS 3
|
||||
@@ -68,6 +69,8 @@ extern "C" {
|
||||
#define DRM_VMW_GB_SURFACE_REF 24
|
||||
#define DRM_VMW_SYNCCPU 25
|
||||
#define DRM_VMW_CREATE_EXTENDED_CONTEXT 26
|
||||
#define DRM_VMW_GB_SURFACE_CREATE_EXT 27
|
||||
#define DRM_VMW_GB_SURFACE_REF_EXT 28
|
||||
|
||||
/*************************************************************************/
|
||||
/**
|
||||
@@ -79,6 +82,9 @@ extern "C" {
|
||||
*
|
||||
* DRM_VMW_PARAM_OVERLAY_IOCTL:
|
||||
* Does the driver support the overlay ioctl.
|
||||
*
|
||||
* DRM_VMW_PARAM_SM4_1
|
||||
* SM4_1 support is enabled.
|
||||
*/
|
||||
|
||||
#define DRM_VMW_PARAM_NUM_STREAMS 0
|
||||
@@ -94,6 +100,8 @@ extern "C" {
|
||||
#define DRM_VMW_PARAM_MAX_MOB_SIZE 10
|
||||
#define DRM_VMW_PARAM_SCREEN_TARGET 11
|
||||
#define DRM_VMW_PARAM_DX 12
|
||||
#define DRM_VMW_PARAM_HW_CAPS2 13
|
||||
#define DRM_VMW_PARAM_SM4_1 14
|
||||
|
||||
/**
|
||||
* enum drm_vmw_handle_type - handle type for ref ioctls
|
||||
@@ -356,9 +364,9 @@ struct drm_vmw_fence_rep {
|
||||
|
||||
/*************************************************************************/
|
||||
/**
|
||||
* DRM_VMW_ALLOC_DMABUF
|
||||
* DRM_VMW_ALLOC_BO
|
||||
*
|
||||
* Allocate a DMA buffer that is visible also to the host.
|
||||
* Allocate a buffer object that is visible also to the host.
|
||||
* NOTE: The buffer is
|
||||
* identified by a handle and an offset, which are private to the guest, but
|
||||
* useable in the command stream. The guest kernel may translate these
|
||||
@@ -366,27 +374,28 @@ struct drm_vmw_fence_rep {
|
||||
* be zero at all times, or it may disappear from the interface before it is
|
||||
* fixed.
|
||||
*
|
||||
* The DMA buffer may stay user-space mapped in the guest at all times,
|
||||
* The buffer object may stay user-space mapped in the guest at all times,
|
||||
* and is thus suitable for sub-allocation.
|
||||
*
|
||||
* DMA buffers are mapped using the mmap() syscall on the drm device.
|
||||
* Buffer objects are mapped using the mmap() syscall on the drm device.
|
||||
*/
|
||||
|
||||
/**
|
||||
* struct drm_vmw_alloc_dmabuf_req
|
||||
* struct drm_vmw_alloc_bo_req
|
||||
*
|
||||
* @size: Required minimum size of the buffer.
|
||||
*
|
||||
* Input data to the DRM_VMW_ALLOC_DMABUF Ioctl.
|
||||
* Input data to the DRM_VMW_ALLOC_BO Ioctl.
|
||||
*/
|
||||
|
||||
struct drm_vmw_alloc_dmabuf_req {
|
||||
struct drm_vmw_alloc_bo_req {
|
||||
__u32 size;
|
||||
__u32 pad64;
|
||||
};
|
||||
#define drm_vmw_alloc_dmabuf_req drm_vmw_alloc_bo_req
|
||||
|
||||
/**
|
||||
* struct drm_vmw_dmabuf_rep
|
||||
* struct drm_vmw_bo_rep
|
||||
*
|
||||
* @map_handle: Offset to use in the mmap() call used to map the buffer.
|
||||
* @handle: Handle unique to this buffer. Used for unreferencing.
|
||||
@@ -395,50 +404,32 @@ struct drm_vmw_alloc_dmabuf_req {
|
||||
* @cur_gmr_offset: Offset to use in the command stream when this buffer is
|
||||
* referenced. See note above.
|
||||
*
|
||||
* Output data from the DRM_VMW_ALLOC_DMABUF Ioctl.
|
||||
* Output data from the DRM_VMW_ALLOC_BO Ioctl.
|
||||
*/
|
||||
|
||||
struct drm_vmw_dmabuf_rep {
|
||||
struct drm_vmw_bo_rep {
|
||||
__u64 map_handle;
|
||||
__u32 handle;
|
||||
__u32 cur_gmr_id;
|
||||
__u32 cur_gmr_offset;
|
||||
__u32 pad64;
|
||||
};
|
||||
#define drm_vmw_dmabuf_rep drm_vmw_bo_rep
|
||||
|
||||
/**
|
||||
* union drm_vmw_dmabuf_arg
|
||||
* union drm_vmw_alloc_bo_arg
|
||||
*
|
||||
* @req: Input data as described above.
|
||||
* @rep: Output data as described above.
|
||||
*
|
||||
* Argument to the DRM_VMW_ALLOC_DMABUF Ioctl.
|
||||
* Argument to the DRM_VMW_ALLOC_BO Ioctl.
|
||||
*/
|
||||
|
||||
union drm_vmw_alloc_dmabuf_arg {
|
||||
struct drm_vmw_alloc_dmabuf_req req;
|
||||
struct drm_vmw_dmabuf_rep rep;
|
||||
};
|
||||
|
||||
/*************************************************************************/
|
||||
/**
|
||||
* DRM_VMW_UNREF_DMABUF - Free a DMA buffer.
|
||||
*
|
||||
*/
|
||||
|
||||
/**
|
||||
* struct drm_vmw_unref_dmabuf_arg
|
||||
*
|
||||
* @handle: Handle indicating what buffer to free. Obtained from the
|
||||
* DRM_VMW_ALLOC_DMABUF Ioctl.
|
||||
*
|
||||
* Argument to the DRM_VMW_UNREF_DMABUF Ioctl.
|
||||
*/
|
||||
|
||||
struct drm_vmw_unref_dmabuf_arg {
|
||||
__u32 handle;
|
||||
__u32 pad64;
|
||||
union drm_vmw_alloc_bo_arg {
|
||||
struct drm_vmw_alloc_bo_req req;
|
||||
struct drm_vmw_bo_rep rep;
|
||||
};
|
||||
#define drm_vmw_alloc_dmabuf_arg drm_vmw_alloc_bo_arg
|
||||
|
||||
/*************************************************************************/
|
||||
/**
|
||||
@@ -1103,9 +1094,8 @@ union drm_vmw_extended_context_arg {
|
||||
* DRM_VMW_HANDLE_CLOSE - Close a user-space handle and release its
|
||||
* underlying resource.
|
||||
*
|
||||
* Note that this ioctl is overlaid on the DRM_VMW_UNREF_DMABUF Ioctl.
|
||||
* The ioctl arguments therefore need to be identical in layout.
|
||||
*
|
||||
* Note that this ioctl is overlaid on the deprecated DRM_VMW_UNREF_DMABUF
|
||||
* Ioctl.
|
||||
*/
|
||||
|
||||
/**
|
||||
@@ -1119,7 +1109,107 @@ struct drm_vmw_handle_close_arg {
|
||||
__u32 handle;
|
||||
__u32 pad64;
|
||||
};
|
||||
#define drm_vmw_unref_dmabuf_arg drm_vmw_handle_close_arg
|
||||
|
||||
/*************************************************************************/
|
||||
/**
|
||||
* DRM_VMW_GB_SURFACE_CREATE_EXT - Create a host guest-backed surface.
|
||||
*
|
||||
* Allocates a surface handle and queues a create surface command
|
||||
* for the host on the first use of the surface. The surface ID can
|
||||
* be used as the surface ID in commands referencing the surface.
|
||||
*
|
||||
* This new command extends DRM_VMW_GB_SURFACE_CREATE by adding version
|
||||
* parameter and 64 bit svga flag.
|
||||
*/
|
||||
|
||||
/**
|
||||
* enum drm_vmw_surface_version
|
||||
*
|
||||
* @drm_vmw_surface_gb_v1: Corresponds to current gb surface format with
|
||||
* svga3d surface flags split into 2, upper half and lower half.
|
||||
*/
|
||||
enum drm_vmw_surface_version {
|
||||
drm_vmw_gb_surface_v1
|
||||
};
|
||||
|
||||
/**
|
||||
* struct drm_vmw_gb_surface_create_ext_req
|
||||
*
|
||||
* @base: Surface create parameters.
|
||||
* @version: Version of surface create ioctl.
|
||||
* @svga3d_flags_upper_32_bits: Upper 32 bits of svga3d flags.
|
||||
* @multisample_pattern: Multisampling pattern when msaa is supported.
|
||||
* @quality_level: Precision settings for each sample.
|
||||
* @must_be_zero: Reserved for future usage.
|
||||
*
|
||||
* Input argument to the DRM_VMW_GB_SURFACE_CREATE_EXT Ioctl.
|
||||
* Part of output argument for the DRM_VMW_GB_SURFACE_REF_EXT Ioctl.
|
||||
*/
|
||||
struct drm_vmw_gb_surface_create_ext_req {
|
||||
struct drm_vmw_gb_surface_create_req base;
|
||||
enum drm_vmw_surface_version version;
|
||||
uint32_t svga3d_flags_upper_32_bits;
|
||||
SVGA3dMSPattern multisample_pattern;
|
||||
SVGA3dMSQualityLevel quality_level;
|
||||
uint64_t must_be_zero;
|
||||
};
|
||||
|
||||
/**
|
||||
* union drm_vmw_gb_surface_create_ext_arg
|
||||
*
|
||||
* @req: Input argument as described above.
|
||||
* @rep: Output argument as described above.
|
||||
*
|
||||
* Argument to the DRM_VMW_GB_SURFACE_CREATE_EXT ioctl.
|
||||
*/
|
||||
union drm_vmw_gb_surface_create_ext_arg {
|
||||
struct drm_vmw_gb_surface_create_rep rep;
|
||||
struct drm_vmw_gb_surface_create_ext_req req;
|
||||
};
|
||||
|
||||
/*************************************************************************/
|
||||
/**
|
||||
* DRM_VMW_GB_SURFACE_REF_EXT - Reference a host surface.
|
||||
*
|
||||
* Puts a reference on a host surface with a given handle, as previously
|
||||
* returned by the DRM_VMW_GB_SURFACE_CREATE_EXT ioctl.
|
||||
* A reference will make sure the surface isn't destroyed while we hold
|
||||
* it and will allow the calling client to use the surface handle in
|
||||
* the command stream.
|
||||
*
|
||||
* On successful return, the Ioctl returns the surface information given
|
||||
* to and returned from the DRM_VMW_GB_SURFACE_CREATE_EXT ioctl.
|
||||
*/
|
||||
|
||||
/**
|
||||
* struct drm_vmw_gb_surface_ref_ext_rep
|
||||
*
|
||||
* @creq: The data used as input when the surface was created, as described
|
||||
* above at "struct drm_vmw_gb_surface_create_ext_req"
|
||||
* @crep: Additional data output when the surface was created, as described
|
||||
* above at "struct drm_vmw_gb_surface_create_rep"
|
||||
*
|
||||
* Output Argument to the DRM_VMW_GB_SURFACE_REF_EXT ioctl.
|
||||
*/
|
||||
struct drm_vmw_gb_surface_ref_ext_rep {
|
||||
struct drm_vmw_gb_surface_create_ext_req creq;
|
||||
struct drm_vmw_gb_surface_create_rep crep;
|
||||
};
|
||||
|
||||
/**
|
||||
* union drm_vmw_gb_surface_reference_ext_arg
|
||||
*
|
||||
* @req: Input data as described above at "struct drm_vmw_surface_arg"
|
||||
* @rep: Output data as described above at
|
||||
* "struct drm_vmw_gb_surface_ref_ext_rep"
|
||||
*
|
||||
* Argument to the DRM_VMW_GB_SURFACE_REF Ioctl.
|
||||
*/
|
||||
union drm_vmw_gb_surface_reference_ext_arg {
|
||||
struct drm_vmw_gb_surface_ref_ext_rep rep;
|
||||
struct drm_vmw_surface_arg req;
|
||||
};
|
||||
|
||||
#if defined(__cplusplus)
|
||||
}
|
||||
|
@@ -29,7 +29,6 @@
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <linux/fs.h>
|
||||
#include <linux/signal.h>
|
||||
#include <asm/byteorder.h>
|
||||
|
||||
typedef __kernel_ulong_t aio_context_t;
|
||||
@@ -39,10 +38,8 @@ enum {
|
||||
IOCB_CMD_PWRITE = 1,
|
||||
IOCB_CMD_FSYNC = 2,
|
||||
IOCB_CMD_FDSYNC = 3,
|
||||
/* These two are experimental.
|
||||
* IOCB_CMD_PREADX = 4,
|
||||
* IOCB_CMD_POLL = 5,
|
||||
*/
|
||||
/* 4 was the experimental IOCB_CMD_PREADX */
|
||||
IOCB_CMD_POLL = 5,
|
||||
IOCB_CMD_NOOP = 6,
|
||||
IOCB_CMD_PREADV = 7,
|
||||
IOCB_CMD_PWRITEV = 8,
|
||||
@@ -110,10 +107,5 @@ struct iocb {
|
||||
#undef IFBIG
|
||||
#undef IFLITTLE
|
||||
|
||||
struct __aio_sigset {
|
||||
const sigset_t __user *sigmask;
|
||||
size_t sigsetsize;
|
||||
};
|
||||
|
||||
#endif /* __LINUX__AIO_ABI_H */
|
||||
|
||||
|
@@ -148,6 +148,7 @@
|
||||
#define AUDIT_INTEGRITY_PCR 1804 /* PCR invalidation msgs */
|
||||
#define AUDIT_INTEGRITY_RULE 1805 /* policy rule */
|
||||
#define AUDIT_INTEGRITY_EVM_XATTR 1806 /* New EVM-covered xattr */
|
||||
#define AUDIT_INTEGRITY_POLICY_RULE 1807 /* IMA policy rules */
|
||||
|
||||
#define AUDIT_KERNEL 2000 /* Asynchronous audit record. NOT A REQUEST. */
|
||||
|
||||
@@ -157,7 +158,8 @@
|
||||
#define AUDIT_FILTER_ENTRY 0x02 /* Apply rule at syscall entry */
|
||||
#define AUDIT_FILTER_WATCH 0x03 /* Apply rule to file system watches */
|
||||
#define AUDIT_FILTER_EXIT 0x04 /* Apply rule at syscall exit */
|
||||
#define AUDIT_FILTER_TYPE 0x05 /* Apply rule at audit_log_start */
|
||||
#define AUDIT_FILTER_EXCLUDE 0x05 /* Apply rule before record creation */
|
||||
#define AUDIT_FILTER_TYPE AUDIT_FILTER_EXCLUDE /* obsolete misleading naming */
|
||||
#define AUDIT_FILTER_FS 0x06 /* Apply rule at __audit_inode_child */
|
||||
|
||||
#define AUDIT_NR_FILTERS 7
|
||||
|
@@ -23,7 +23,7 @@
|
||||
#define AUTOFS_MIN_PROTO_VERSION 3
|
||||
#define AUTOFS_MAX_PROTO_VERSION 5
|
||||
|
||||
#define AUTOFS_PROTO_SUBVERSION 2
|
||||
#define AUTOFS_PROTO_SUBVERSION 3
|
||||
|
||||
/*
|
||||
* The wait_queue_token (autofs_wqt_t) is part of a structure which is passed
|
||||
@@ -90,8 +90,10 @@ enum {
|
||||
/* autofs version 4 and later definitions */
|
||||
|
||||
/* Mask for expire behaviour */
|
||||
#define AUTOFS_EXP_IMMEDIATE 1
|
||||
#define AUTOFS_EXP_LEAVES 2
|
||||
#define AUTOFS_EXP_NORMAL 0x00
|
||||
#define AUTOFS_EXP_IMMEDIATE 0x01
|
||||
#define AUTOFS_EXP_LEAVES 0x02
|
||||
#define AUTOFS_EXP_FORCED 0x04
|
||||
|
||||
#define AUTOFS_TYPE_ANY 0U
|
||||
#define AUTOFS_TYPE_INDIRECT 1U
|
||||
|
@@ -30,10 +30,10 @@ struct bkey {
|
||||
BITMASK(name, struct bkey, field, offset, size)
|
||||
|
||||
#define PTR_FIELD(name, offset, size) \
|
||||
static inline __u64 name(const struct bkey *k, unsigned i) \
|
||||
static inline __u64 name(const struct bkey *k, unsigned int i) \
|
||||
{ return (k->ptr[i] >> offset) & ~(~0ULL << size); } \
|
||||
\
|
||||
static inline void SET_##name(struct bkey *k, unsigned i, __u64 v) \
|
||||
static inline void SET_##name(struct bkey *k, unsigned int i, __u64 v) \
|
||||
{ \
|
||||
k->ptr[i] &= ~(~(~0ULL << size) << offset); \
|
||||
k->ptr[i] |= (v & ~(~0ULL << size)) << offset; \
|
||||
@@ -117,12 +117,14 @@ static inline void bkey_copy_key(struct bkey *dest, const struct bkey *src)
|
||||
static inline struct bkey *bkey_next(const struct bkey *k)
|
||||
{
|
||||
__u64 *d = (void *) k;
|
||||
|
||||
return (struct bkey *) (d + bkey_u64s(k));
|
||||
}
|
||||
|
||||
static inline struct bkey *bkey_idx(const struct bkey *k, unsigned nr_keys)
|
||||
static inline struct bkey *bkey_idx(const struct bkey *k, unsigned int nr_keys)
|
||||
{
|
||||
__u64 *d = (void *) k;
|
||||
|
||||
return (struct bkey *) (d + nr_keys);
|
||||
}
|
||||
/* Enough for a key with 6 pointers */
|
||||
@@ -195,7 +197,7 @@ struct cache_sb {
|
||||
};
|
||||
};
|
||||
|
||||
__u32 last_mount; /* time_t */
|
||||
__u32 last_mount; /* time overflow in y2106 */
|
||||
|
||||
__u16 first_bucket;
|
||||
union {
|
||||
@@ -318,7 +320,7 @@ struct uuid_entry {
|
||||
struct {
|
||||
__u8 uuid[16];
|
||||
__u8 label[32];
|
||||
__u32 first_reg;
|
||||
__u32 first_reg; /* time overflow in y2106 */
|
||||
__u32 last_reg;
|
||||
__u32 invalidated;
|
||||
|
||||
|
@@ -117,7 +117,7 @@ struct blk_zone_report {
|
||||
__u32 nr_zones;
|
||||
__u8 reserved[4];
|
||||
struct blk_zone zones[0];
|
||||
} __packed;
|
||||
};
|
||||
|
||||
/**
|
||||
* struct blk_zone_range - BLKRESETZONE ioctl request
|
||||
|
@@ -75,6 +75,11 @@ struct bpf_lpm_trie_key {
|
||||
__u8 data[0]; /* Arbitrary size */
|
||||
};
|
||||
|
||||
struct bpf_cgroup_storage_key {
|
||||
__u64 cgroup_inode_id; /* cgroup inode id */
|
||||
__u32 attach_type; /* program attach type */
|
||||
};
|
||||
|
||||
/* BPF syscall commands, see bpf(2) man-page for details. */
|
||||
enum bpf_cmd {
|
||||
BPF_MAP_CREATE,
|
||||
@@ -120,6 +125,8 @@ enum bpf_map_type {
|
||||
BPF_MAP_TYPE_CPUMAP,
|
||||
BPF_MAP_TYPE_XSKMAP,
|
||||
BPF_MAP_TYPE_SOCKHASH,
|
||||
BPF_MAP_TYPE_CGROUP_STORAGE,
|
||||
BPF_MAP_TYPE_REUSEPORT_SOCKARRAY,
|
||||
};
|
||||
|
||||
enum bpf_prog_type {
|
||||
@@ -144,6 +151,7 @@ enum bpf_prog_type {
|
||||
BPF_PROG_TYPE_CGROUP_SOCK_ADDR,
|
||||
BPF_PROG_TYPE_LWT_SEG6LOCAL,
|
||||
BPF_PROG_TYPE_LIRC_MODE2,
|
||||
BPF_PROG_TYPE_SK_REUSEPORT,
|
||||
};
|
||||
|
||||
enum bpf_attach_type {
|
||||
@@ -1371,6 +1379,20 @@ union bpf_attr {
|
||||
* A 8-byte long non-decreasing number on success, or 0 if the
|
||||
* socket field is missing inside *skb*.
|
||||
*
|
||||
* u64 bpf_get_socket_cookie(struct bpf_sock_addr *ctx)
|
||||
* Description
|
||||
* Equivalent to bpf_get_socket_cookie() helper that accepts
|
||||
* *skb*, but gets socket from **struct bpf_sock_addr** contex.
|
||||
* Return
|
||||
* A 8-byte long non-decreasing number.
|
||||
*
|
||||
* u64 bpf_get_socket_cookie(struct bpf_sock_ops *ctx)
|
||||
* Description
|
||||
* Equivalent to bpf_get_socket_cookie() helper that accepts
|
||||
* *skb*, but gets socket from **struct bpf_sock_ops** contex.
|
||||
* Return
|
||||
* A 8-byte long non-decreasing number.
|
||||
*
|
||||
* u32 bpf_get_socket_uid(struct sk_buff *skb)
|
||||
* Return
|
||||
* The owner UID of the socket associated to *skb*. If the socket
|
||||
@@ -1826,7 +1848,7 @@ union bpf_attr {
|
||||
* A non-negative value equal to or less than *size* on success,
|
||||
* or a negative error in case of failure.
|
||||
*
|
||||
* int skb_load_bytes_relative(const struct sk_buff *skb, u32 offset, void *to, u32 len, u32 start_header)
|
||||
* int bpf_skb_load_bytes_relative(const struct sk_buff *skb, u32 offset, void *to, u32 len, u32 start_header)
|
||||
* Description
|
||||
* This helper is similar to **bpf_skb_load_bytes**\ () in that
|
||||
* it provides an easy way to load *len* bytes from *offset*
|
||||
@@ -1857,7 +1879,8 @@ union bpf_attr {
|
||||
* is resolved), the nexthop address is returned in ipv4_dst
|
||||
* or ipv6_dst based on family, smac is set to mac address of
|
||||
* egress device, dmac is set to nexthop mac address, rt_metric
|
||||
* is set to metric from route (IPv4/IPv6 only).
|
||||
* is set to metric from route (IPv4/IPv6 only), and ifindex
|
||||
* is set to the device index of the nexthop from the FIB lookup.
|
||||
*
|
||||
* *plen* argument is the size of the passed in struct.
|
||||
* *flags* argument can be a combination of one or more of the
|
||||
@@ -1873,9 +1896,10 @@ union bpf_attr {
|
||||
* *ctx* is either **struct xdp_md** for XDP programs or
|
||||
* **struct sk_buff** tc cls_act programs.
|
||||
* Return
|
||||
* Egress device index on success, 0 if packet needs to continue
|
||||
* up the stack for further processing or a negative error in case
|
||||
* of failure.
|
||||
* * < 0 if any input argument is invalid
|
||||
* * 0 on success (packet is forwarded, nexthop neighbor exists)
|
||||
* * > 0 one of **BPF_FIB_LKUP_RET_** codes explaining why the
|
||||
* packet is not forwarded or needs assist from full stack
|
||||
*
|
||||
* int bpf_sock_hash_update(struct bpf_sock_ops_kern *skops, struct bpf_map *map, void *key, u64 flags)
|
||||
* Description
|
||||
@@ -2031,7 +2055,6 @@ union bpf_attr {
|
||||
* This helper is only available is the kernel was compiled with
|
||||
* the **CONFIG_BPF_LIRC_MODE2** configuration option set to
|
||||
* "**y**".
|
||||
*
|
||||
* Return
|
||||
* 0
|
||||
*
|
||||
@@ -2051,7 +2074,6 @@ union bpf_attr {
|
||||
* This helper is only available is the kernel was compiled with
|
||||
* the **CONFIG_BPF_LIRC_MODE2** configuration option set to
|
||||
* "**y**".
|
||||
*
|
||||
* Return
|
||||
* 0
|
||||
*
|
||||
@@ -2071,10 +2093,54 @@ union bpf_attr {
|
||||
* Return
|
||||
* The id is returned or 0 in case the id could not be retrieved.
|
||||
*
|
||||
* u64 bpf_skb_ancestor_cgroup_id(struct sk_buff *skb, int ancestor_level)
|
||||
* Description
|
||||
* Return id of cgroup v2 that is ancestor of cgroup associated
|
||||
* with the *skb* at the *ancestor_level*. The root cgroup is at
|
||||
* *ancestor_level* zero and each step down the hierarchy
|
||||
* increments the level. If *ancestor_level* == level of cgroup
|
||||
* associated with *skb*, then return value will be same as that
|
||||
* of **bpf_skb_cgroup_id**\ ().
|
||||
*
|
||||
* The helper is useful to implement policies based on cgroups
|
||||
* that are upper in hierarchy than immediate cgroup associated
|
||||
* with *skb*.
|
||||
*
|
||||
* The format of returned id and helper limitations are same as in
|
||||
* **bpf_skb_cgroup_id**\ ().
|
||||
* Return
|
||||
* The id is returned or 0 in case the id could not be retrieved.
|
||||
*
|
||||
* u64 bpf_get_current_cgroup_id(void)
|
||||
* Return
|
||||
* A 64-bit integer containing the current cgroup id based
|
||||
* on the cgroup within which the current task is running.
|
||||
*
|
||||
* void* get_local_storage(void *map, u64 flags)
|
||||
* Description
|
||||
* Get the pointer to the local storage area.
|
||||
* The type and the size of the local storage is defined
|
||||
* by the *map* argument.
|
||||
* The *flags* meaning is specific for each map type,
|
||||
* and has to be 0 for cgroup local storage.
|
||||
*
|
||||
* Depending on the bpf program type, a local storage area
|
||||
* can be shared between multiple instances of the bpf program,
|
||||
* running simultaneously.
|
||||
*
|
||||
* A user should care about the synchronization by himself.
|
||||
* For example, by using the BPF_STX_XADD instruction to alter
|
||||
* the shared data.
|
||||
* Return
|
||||
* Pointer to the local storage area.
|
||||
*
|
||||
* int bpf_sk_select_reuseport(struct sk_reuseport_md *reuse, struct bpf_map *map, void *key, u64 flags)
|
||||
* Description
|
||||
* Select a SO_REUSEPORT sk from a BPF_MAP_TYPE_REUSEPORT_ARRAY map
|
||||
* It checks the selected sk is matching the incoming
|
||||
* request in the skb.
|
||||
* Return
|
||||
* 0 on success, or a negative error in case of failure.
|
||||
*/
|
||||
#define __BPF_FUNC_MAPPER(FN) \
|
||||
FN(unspec), \
|
||||
@@ -2157,7 +2223,10 @@ union bpf_attr {
|
||||
FN(rc_repeat), \
|
||||
FN(rc_keydown), \
|
||||
FN(skb_cgroup_id), \
|
||||
FN(get_current_cgroup_id),
|
||||
FN(get_current_cgroup_id), \
|
||||
FN(get_local_storage), \
|
||||
FN(sk_select_reuseport), \
|
||||
FN(skb_ancestor_cgroup_id),
|
||||
|
||||
/* integer value in 'imm' field of BPF_CALL instruction selects which helper
|
||||
* function eBPF program intends to call
|
||||
@@ -2374,6 +2443,30 @@ struct sk_msg_md {
|
||||
__u32 local_port; /* stored in host byte order */
|
||||
};
|
||||
|
||||
struct sk_reuseport_md {
|
||||
/*
|
||||
* Start of directly accessible data. It begins from
|
||||
* the tcp/udp header.
|
||||
*/
|
||||
void *data;
|
||||
void *data_end; /* End of directly accessible data */
|
||||
/*
|
||||
* Total length of packet (starting from the tcp/udp header).
|
||||
* Note that the directly accessible bytes (data_end - data)
|
||||
* could be less than this "len". Those bytes could be
|
||||
* indirectly read by a helper "bpf_skb_load_bytes()".
|
||||
*/
|
||||
__u32 len;
|
||||
/*
|
||||
* Eth protocol in the mac header (network byte order). e.g.
|
||||
* ETH_P_IP(0x0800) and ETH_P_IPV6(0x86DD)
|
||||
*/
|
||||
__u32 eth_protocol;
|
||||
__u32 ip_protocol; /* IP protocol. e.g. IPPROTO_TCP, IPPROTO_UDP */
|
||||
__u32 bind_inany; /* Is sock bound to an INANY address? */
|
||||
__u32 hash; /* A hash of the packet 4 tuples */
|
||||
};
|
||||
|
||||
#define BPF_TAG_SIZE 8
|
||||
|
||||
struct bpf_prog_info {
|
||||
@@ -2555,6 +2648,9 @@ enum {
|
||||
* Arg1: old_state
|
||||
* Arg2: new_state
|
||||
*/
|
||||
BPF_SOCK_OPS_TCP_LISTEN_CB, /* Called on listen(2), right after
|
||||
* socket transition to LISTEN state.
|
||||
*/
|
||||
};
|
||||
|
||||
/* List of TCP states. There is a build check in net/ipv4/tcp.c to detect
|
||||
@@ -2612,6 +2708,18 @@ struct bpf_raw_tracepoint_args {
|
||||
#define BPF_FIB_LOOKUP_DIRECT BIT(0)
|
||||
#define BPF_FIB_LOOKUP_OUTPUT BIT(1)
|
||||
|
||||
enum {
|
||||
BPF_FIB_LKUP_RET_SUCCESS, /* lookup successful */
|
||||
BPF_FIB_LKUP_RET_BLACKHOLE, /* dest is blackholed; can be dropped */
|
||||
BPF_FIB_LKUP_RET_UNREACHABLE, /* dest is unreachable; can be dropped */
|
||||
BPF_FIB_LKUP_RET_PROHIBIT, /* dest not allowed; can be dropped */
|
||||
BPF_FIB_LKUP_RET_NOT_FWDED, /* packet is not forwarded */
|
||||
BPF_FIB_LKUP_RET_FWD_DISABLED, /* fwding is not enabled on ingress */
|
||||
BPF_FIB_LKUP_RET_UNSUPP_LWT, /* fwd requires encapsulation */
|
||||
BPF_FIB_LKUP_RET_NO_NEIGH, /* no neighbor entry for nh */
|
||||
BPF_FIB_LKUP_RET_FRAG_NEEDED, /* fragmentation required to fwd */
|
||||
};
|
||||
|
||||
struct bpf_fib_lookup {
|
||||
/* input: network family for lookup (AF_INET, AF_INET6)
|
||||
* output: network family of egress nexthop
|
||||
@@ -2625,7 +2733,11 @@ struct bpf_fib_lookup {
|
||||
|
||||
/* total length of packet from network header - used for MTU check */
|
||||
__u16 tot_len;
|
||||
__u32 ifindex; /* L3 device index for lookup */
|
||||
|
||||
/* input: L3 device index for lookup
|
||||
* output: device index from FIB lookup
|
||||
*/
|
||||
__u32 ifindex;
|
||||
|
||||
union {
|
||||
/* inputs to lookup */
|
||||
|
@@ -76,7 +76,7 @@ struct btf_type {
|
||||
*/
|
||||
#define BTF_INT_ENCODING(VAL) (((VAL) & 0x0f000000) >> 24)
|
||||
#define BTF_INT_OFFSET(VAL) (((VAL & 0x00ff0000)) >> 16)
|
||||
#define BTF_INT_BITS(VAL) ((VAL) & 0x0000ffff)
|
||||
#define BTF_INT_BITS(VAL) ((VAL) & 0x000000ff)
|
||||
|
||||
/* Attributes stored in the BTF_INT_ENCODING */
|
||||
#define BTF_INT_SIGNED (1 << 0)
|
||||
|
@@ -77,7 +77,7 @@ typedef __u32 canid_t;
|
||||
/*
|
||||
* Controller Area Network Error Message Frame Mask structure
|
||||
*
|
||||
* bit 0-28 : error class mask (see include/linux/can/error.h)
|
||||
* bit 0-28 : error class mask (see include/uapi/linux/can/error.h)
|
||||
* bit 29-31 : set to zero
|
||||
*/
|
||||
typedef __u32 can_err_mask_t;
|
||||
|
@@ -384,6 +384,8 @@ struct cec_log_addrs {
|
||||
#define CEC_EVENT_PIN_CEC_HIGH 4
|
||||
#define CEC_EVENT_PIN_HPD_LOW 5
|
||||
#define CEC_EVENT_PIN_HPD_HIGH 6
|
||||
#define CEC_EVENT_PIN_5V_LOW 7
|
||||
#define CEC_EVENT_PIN_5V_HIGH 8
|
||||
|
||||
#define CEC_EVENT_FL_INITIAL_STATE (1 << 0)
|
||||
#define CEC_EVENT_FL_DROPPED_EVENTS (1 << 1)
|
||||
|
@@ -233,7 +233,8 @@ struct cee_pfc {
|
||||
* 2 Well known port number over TCP or SCTP
|
||||
* 3 Well known port number over UDP or DCCP
|
||||
* 4 Well known port number over TCP, SCTP, UDP, or DCCP
|
||||
* 5-7 Reserved
|
||||
* 5 Differentiated Services Code Point (DSCP) value
|
||||
* 6-7 Reserved
|
||||
*
|
||||
* Selector field values for CEE
|
||||
* 0 Ethertype
|
||||
|
@@ -78,6 +78,17 @@ enum devlink_command {
|
||||
*/
|
||||
DEVLINK_CMD_RELOAD,
|
||||
|
||||
DEVLINK_CMD_PARAM_GET, /* can dump */
|
||||
DEVLINK_CMD_PARAM_SET,
|
||||
DEVLINK_CMD_PARAM_NEW,
|
||||
DEVLINK_CMD_PARAM_DEL,
|
||||
|
||||
DEVLINK_CMD_REGION_GET,
|
||||
DEVLINK_CMD_REGION_SET,
|
||||
DEVLINK_CMD_REGION_NEW,
|
||||
DEVLINK_CMD_REGION_DEL,
|
||||
DEVLINK_CMD_REGION_READ,
|
||||
|
||||
/* add new commands above here */
|
||||
__DEVLINK_CMD_MAX,
|
||||
DEVLINK_CMD_MAX = __DEVLINK_CMD_MAX - 1
|
||||
@@ -142,6 +153,16 @@ enum devlink_port_flavour {
|
||||
*/
|
||||
};
|
||||
|
||||
enum devlink_param_cmode {
|
||||
DEVLINK_PARAM_CMODE_RUNTIME,
|
||||
DEVLINK_PARAM_CMODE_DRIVERINIT,
|
||||
DEVLINK_PARAM_CMODE_PERMANENT,
|
||||
|
||||
/* Add new configuration modes above */
|
||||
__DEVLINK_PARAM_CMODE_MAX,
|
||||
DEVLINK_PARAM_CMODE_MAX = __DEVLINK_PARAM_CMODE_MAX - 1
|
||||
};
|
||||
|
||||
enum devlink_attr {
|
||||
/* don't change the order or add anything between, this is ABI! */
|
||||
DEVLINK_ATTR_UNSPEC,
|
||||
@@ -238,6 +259,27 @@ enum devlink_attr {
|
||||
DEVLINK_ATTR_PORT_NUMBER, /* u32 */
|
||||
DEVLINK_ATTR_PORT_SPLIT_SUBPORT_NUMBER, /* u32 */
|
||||
|
||||
DEVLINK_ATTR_PARAM, /* nested */
|
||||
DEVLINK_ATTR_PARAM_NAME, /* string */
|
||||
DEVLINK_ATTR_PARAM_GENERIC, /* flag */
|
||||
DEVLINK_ATTR_PARAM_TYPE, /* u8 */
|
||||
DEVLINK_ATTR_PARAM_VALUES_LIST, /* nested */
|
||||
DEVLINK_ATTR_PARAM_VALUE, /* nested */
|
||||
DEVLINK_ATTR_PARAM_VALUE_DATA, /* dynamic */
|
||||
DEVLINK_ATTR_PARAM_VALUE_CMODE, /* u8 */
|
||||
|
||||
DEVLINK_ATTR_REGION_NAME, /* string */
|
||||
DEVLINK_ATTR_REGION_SIZE, /* u64 */
|
||||
DEVLINK_ATTR_REGION_SNAPSHOTS, /* nested */
|
||||
DEVLINK_ATTR_REGION_SNAPSHOT, /* nested */
|
||||
DEVLINK_ATTR_REGION_SNAPSHOT_ID, /* u32 */
|
||||
|
||||
DEVLINK_ATTR_REGION_CHUNKS, /* nested */
|
||||
DEVLINK_ATTR_REGION_CHUNK, /* nested */
|
||||
DEVLINK_ATTR_REGION_CHUNK_DATA, /* binary */
|
||||
DEVLINK_ATTR_REGION_CHUNK_ADDR, /* u64 */
|
||||
DEVLINK_ATTR_REGION_CHUNK_LEN, /* u64 */
|
||||
|
||||
/* add new attributes above here, update the policy in devlink.c */
|
||||
|
||||
__DEVLINK_ATTR_MAX,
|
||||
|
@@ -67,27 +67,6 @@ typedef struct audio_status {
|
||||
} audio_status_t; /* separate decoder hardware */
|
||||
|
||||
|
||||
typedef
|
||||
struct audio_karaoke { /* if Vocal1 or Vocal2 are non-zero, they get mixed */
|
||||
int vocal1; /* into left and right t at 70% each */
|
||||
int vocal2; /* if both, Vocal1 and Vocal2 are non-zero, Vocal1 gets*/
|
||||
int melody; /* mixed into the left channel and */
|
||||
/* Vocal2 into the right channel at 100% each. */
|
||||
/* if Melody is non-zero, the melody channel gets mixed*/
|
||||
} audio_karaoke_t; /* into left and right */
|
||||
|
||||
|
||||
typedef __u16 audio_attributes_t;
|
||||
/* bits: descr. */
|
||||
/* 15-13 audio coding mode (0=ac3, 2=mpeg1, 3=mpeg2ext, 4=LPCM, 6=DTS, */
|
||||
/* 12 multichannel extension */
|
||||
/* 11-10 audio type (0=not spec, 1=language included) */
|
||||
/* 9- 8 audio application mode (0=not spec, 1=karaoke, 2=surround) */
|
||||
/* 7- 6 Quantization / DRC (mpeg audio: 1=DRC exists)(lpcm: 0=16bit, */
|
||||
/* 5- 4 Sample frequency fs (0=48kHz, 1=96kHz) */
|
||||
/* 2- 0 number of audio channels (n+1 channels) */
|
||||
|
||||
|
||||
/* for GET_CAPABILITIES and SET_FORMAT, the latter should only set one bit */
|
||||
#define AUDIO_CAP_DTS 1
|
||||
#define AUDIO_CAP_LPCM 2
|
||||
@@ -115,22 +94,6 @@ typedef __u16 audio_attributes_t;
|
||||
#define AUDIO_SET_ID _IO('o', 13)
|
||||
#define AUDIO_SET_MIXER _IOW('o', 14, audio_mixer_t)
|
||||
#define AUDIO_SET_STREAMTYPE _IO('o', 15)
|
||||
#define AUDIO_SET_EXT_ID _IO('o', 16)
|
||||
#define AUDIO_SET_ATTRIBUTES _IOW('o', 17, audio_attributes_t)
|
||||
#define AUDIO_SET_KARAOKE _IOW('o', 18, audio_karaoke_t)
|
||||
|
||||
/**
|
||||
* AUDIO_GET_PTS
|
||||
*
|
||||
* Read the 33 bit presentation time stamp as defined
|
||||
* in ITU T-REC-H.222.0 / ISO/IEC 13818-1.
|
||||
*
|
||||
* The PTS should belong to the currently played
|
||||
* frame if possible, but may also be a value close to it
|
||||
* like the PTS of the last decoded frame or the last PTS
|
||||
* extracted by the PES parser.
|
||||
*/
|
||||
#define AUDIO_GET_PTS _IOR('o', 19, __u64)
|
||||
#define AUDIO_BILINGUAL_CHANNEL_SELECT _IO('o', 20)
|
||||
|
||||
#endif /* _DVBAUDIO_H_ */
|
||||
|
@@ -37,18 +37,6 @@ typedef enum {
|
||||
} video_format_t;
|
||||
|
||||
|
||||
typedef enum {
|
||||
VIDEO_SYSTEM_PAL,
|
||||
VIDEO_SYSTEM_NTSC,
|
||||
VIDEO_SYSTEM_PALN,
|
||||
VIDEO_SYSTEM_PALNc,
|
||||
VIDEO_SYSTEM_PALM,
|
||||
VIDEO_SYSTEM_NTSC60,
|
||||
VIDEO_SYSTEM_PAL60,
|
||||
VIDEO_SYSTEM_PALM60
|
||||
} video_system_t;
|
||||
|
||||
|
||||
typedef enum {
|
||||
VIDEO_PAN_SCAN, /* use pan and scan format */
|
||||
VIDEO_LETTER_BOX, /* use letterbox format */
|
||||
@@ -160,44 +148,6 @@ struct video_still_picture {
|
||||
};
|
||||
|
||||
|
||||
typedef
|
||||
struct video_highlight {
|
||||
int active; /* 1=show highlight, 0=hide highlight */
|
||||
__u8 contrast1; /* 7- 4 Pattern pixel contrast */
|
||||
/* 3- 0 Background pixel contrast */
|
||||
__u8 contrast2; /* 7- 4 Emphasis pixel-2 contrast */
|
||||
/* 3- 0 Emphasis pixel-1 contrast */
|
||||
__u8 color1; /* 7- 4 Pattern pixel color */
|
||||
/* 3- 0 Background pixel color */
|
||||
__u8 color2; /* 7- 4 Emphasis pixel-2 color */
|
||||
/* 3- 0 Emphasis pixel-1 color */
|
||||
__u32 ypos; /* 23-22 auto action mode */
|
||||
/* 21-12 start y */
|
||||
/* 9- 0 end y */
|
||||
__u32 xpos; /* 23-22 button color number */
|
||||
/* 21-12 start x */
|
||||
/* 9- 0 end x */
|
||||
} video_highlight_t;
|
||||
|
||||
|
||||
typedef struct video_spu {
|
||||
int active;
|
||||
int stream_id;
|
||||
} video_spu_t;
|
||||
|
||||
|
||||
typedef struct video_spu_palette { /* SPU Palette information */
|
||||
int length;
|
||||
__u8 __user *palette;
|
||||
} video_spu_palette_t;
|
||||
|
||||
|
||||
typedef struct video_navi_pack {
|
||||
int length; /* 0 ... 1024 */
|
||||
__u8 data[1024];
|
||||
} video_navi_pack_t;
|
||||
|
||||
|
||||
typedef __u16 video_attributes_t;
|
||||
/* bits: descr. */
|
||||
/* 15-14 Video compression mode (0=MPEG-1, 1=MPEG-2) */
|
||||
@@ -242,17 +192,9 @@ typedef __u16 video_attributes_t;
|
||||
#define VIDEO_SLOWMOTION _IO('o', 32)
|
||||
#define VIDEO_GET_CAPABILITIES _IOR('o', 33, unsigned int)
|
||||
#define VIDEO_CLEAR_BUFFER _IO('o', 34)
|
||||
#define VIDEO_SET_ID _IO('o', 35)
|
||||
#define VIDEO_SET_STREAMTYPE _IO('o', 36)
|
||||
#define VIDEO_SET_FORMAT _IO('o', 37)
|
||||
#define VIDEO_SET_SYSTEM _IO('o', 38)
|
||||
#define VIDEO_SET_HIGHLIGHT _IOW('o', 39, video_highlight_t)
|
||||
#define VIDEO_SET_SPU _IOW('o', 50, video_spu_t)
|
||||
#define VIDEO_SET_SPU_PALETTE _IOW('o', 51, video_spu_palette_t)
|
||||
#define VIDEO_GET_NAVI _IOR('o', 52, video_navi_pack_t)
|
||||
#define VIDEO_SET_ATTRIBUTES _IO('o', 53)
|
||||
#define VIDEO_GET_SIZE _IOR('o', 55, video_size_t)
|
||||
#define VIDEO_GET_FRAME_RATE _IOR('o', 56, unsigned int)
|
||||
|
||||
/**
|
||||
* VIDEO_GET_PTS
|
||||
|
@@ -422,6 +422,8 @@ typedef struct elf64_shdr {
|
||||
#define NT_ARM_SVE 0x405 /* ARM Scalable Vector Extension registers */
|
||||
#define NT_ARC_V2 0x600 /* ARCv2 accumulator/extra registers */
|
||||
#define NT_VMCOREDD 0x700 /* Vmcore Device Dump Note */
|
||||
#define NT_MIPS_DSP 0x800 /* MIPS DSP ASE registers */
|
||||
#define NT_MIPS_FP_MODE 0x801 /* MIPS floating-point mode */
|
||||
|
||||
/* Note header in a PT_NOTE section */
|
||||
typedef struct elf32_note {
|
||||
|
@@ -20,12 +20,16 @@ struct sock_extended_err {
|
||||
#define SO_EE_ORIGIN_ICMP6 3
|
||||
#define SO_EE_ORIGIN_TXSTATUS 4
|
||||
#define SO_EE_ORIGIN_ZEROCOPY 5
|
||||
#define SO_EE_ORIGIN_TXTIME 6
|
||||
#define SO_EE_ORIGIN_TIMESTAMPING SO_EE_ORIGIN_TXSTATUS
|
||||
|
||||
#define SO_EE_OFFENDER(ee) ((struct sockaddr*)((ee)+1))
|
||||
|
||||
#define SO_EE_CODE_ZEROCOPY_COPIED 1
|
||||
|
||||
#define SO_EE_CODE_TXTIME_INVALID_PARAM 1
|
||||
#define SO_EE_CODE_TXTIME_MISSED 2
|
||||
|
||||
/**
|
||||
* struct scm_timestamping - timestamps exposed through cmsg
|
||||
*
|
||||
|
@@ -226,7 +226,7 @@ enum tunable_id {
|
||||
ETHTOOL_TX_COPYBREAK,
|
||||
ETHTOOL_PFC_PREVENTION_TOUT, /* timeout in msecs */
|
||||
/*
|
||||
* Add your fresh new tubale attribute above and remember to update
|
||||
* Add your fresh new tunable attribute above and remember to update
|
||||
* tunable_strings[] in net/core/ethtool.c
|
||||
*/
|
||||
__ETHTOOL_TUNABLE_COUNT,
|
||||
@@ -870,7 +870,8 @@ struct ethtool_flow_ext {
|
||||
* includes the %FLOW_EXT or %FLOW_MAC_EXT flag
|
||||
* (see &struct ethtool_flow_ext description).
|
||||
* @ring_cookie: RX ring/queue index to deliver to, or %RX_CLS_FLOW_DISC
|
||||
* if packets should be discarded
|
||||
* if packets should be discarded, or %RX_CLS_FLOW_WAKE if the
|
||||
* packets should be used for Wake-on-LAN with %WAKE_FILTER
|
||||
* @location: Location of rule in the table. Locations must be
|
||||
* numbered such that a flow matching multiple rules will be
|
||||
* classified according to the first (lowest numbered) rule.
|
||||
@@ -902,13 +903,13 @@ struct ethtool_rx_flow_spec {
|
||||
static inline __u64 ethtool_get_flow_spec_ring(__u64 ring_cookie)
|
||||
{
|
||||
return ETHTOOL_RX_FLOW_SPEC_RING & ring_cookie;
|
||||
};
|
||||
}
|
||||
|
||||
static inline __u64 ethtool_get_flow_spec_ring_vf(__u64 ring_cookie)
|
||||
{
|
||||
return (ETHTOOL_RX_FLOW_SPEC_RING_VF & ring_cookie) >>
|
||||
ETHTOOL_RX_FLOW_SPEC_RING_VF_OFF;
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* struct ethtool_rxnfc - command to get or set RX flow classification rules
|
||||
@@ -1634,6 +1635,7 @@ static inline int ethtool_validate_duplex(__u8 duplex)
|
||||
#define WAKE_ARP (1 << 4)
|
||||
#define WAKE_MAGIC (1 << 5)
|
||||
#define WAKE_MAGICSECURE (1 << 6) /* only meaningful if WAKE_MAGIC */
|
||||
#define WAKE_FILTER (1 << 7)
|
||||
|
||||
/* L2-L4 network traffic flow types */
|
||||
#define TCP_V4_FLOW 0x01 /* hash or spec (tcp_ip4_spec) */
|
||||
@@ -1671,6 +1673,7 @@ static inline int ethtool_validate_duplex(__u8 duplex)
|
||||
#define RXH_DISCARD (1 << 31)
|
||||
|
||||
#define RX_CLS_FLOW_DISC 0xffffffffffffffffULL
|
||||
#define RX_CLS_FLOW_WAKE 0xfffffffffffffffeULL
|
||||
|
||||
/* Special RX classification rule insert location values */
|
||||
#define RX_CLS_LOC_SPECIAL 0x80000000 /* flag */
|
||||
|
@@ -42,7 +42,7 @@
|
||||
#define EPOLLRDHUP (__force __poll_t)0x00002000
|
||||
|
||||
/* Set exclusive wakeup mode for the target file descriptor */
|
||||
#define EPOLLEXCLUSIVE (__force __poll_t)(1U << 28)
|
||||
#define EPOLLEXCLUSIVE ((__force __poll_t)(1U << 28))
|
||||
|
||||
/*
|
||||
* Request the handling of system wakeup events so as to prevent system suspends
|
||||
@@ -54,13 +54,13 @@
|
||||
*
|
||||
* Requires CAP_BLOCK_SUSPEND
|
||||
*/
|
||||
#define EPOLLWAKEUP (__force __poll_t)(1U << 29)
|
||||
#define EPOLLWAKEUP ((__force __poll_t)(1U << 29))
|
||||
|
||||
/* Set the One Shot behaviour for the target file descriptor */
|
||||
#define EPOLLONESHOT (__force __poll_t)(1U << 30)
|
||||
#define EPOLLONESHOT ((__force __poll_t)(1U << 30))
|
||||
|
||||
/* Set the Edge Triggered behaviour for the target file descriptor */
|
||||
#define EPOLLET (__force __poll_t)(1U << 31)
|
||||
#define EPOLLET ((__force __poll_t)(1U << 31))
|
||||
|
||||
/*
|
||||
* On x86-64 make the 64bit structure have the same alignment as the
|
||||
|
179
include/uapi/linux/fpga-dfl.h
Normal file
179
include/uapi/linux/fpga-dfl.h
Normal file
@@ -0,0 +1,179 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
|
||||
/*
|
||||
* Header File for FPGA DFL User API
|
||||
*
|
||||
* Copyright (C) 2017-2018 Intel Corporation, Inc.
|
||||
*
|
||||
* Authors:
|
||||
* Kang Luwei <luwei.kang@intel.com>
|
||||
* Zhang Yi <yi.z.zhang@intel.com>
|
||||
* Wu Hao <hao.wu@intel.com>
|
||||
* Xiao Guangrong <guangrong.xiao@linux.intel.com>
|
||||
*/
|
||||
|
||||
#ifndef _UAPI_LINUX_FPGA_DFL_H
|
||||
#define _UAPI_LINUX_FPGA_DFL_H
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <linux/ioctl.h>
|
||||
|
||||
#define DFL_FPGA_API_VERSION 0
|
||||
|
||||
/*
|
||||
* The IOCTL interface for DFL based FPGA is designed for extensibility by
|
||||
* embedding the structure length (argsz) and flags into structures passed
|
||||
* between kernel and userspace. This design referenced the VFIO IOCTL
|
||||
* interface (include/uapi/linux/vfio.h).
|
||||
*/
|
||||
|
||||
#define DFL_FPGA_MAGIC 0xB6
|
||||
|
||||
#define DFL_FPGA_BASE 0
|
||||
#define DFL_PORT_BASE 0x40
|
||||
#define DFL_FME_BASE 0x80
|
||||
|
||||
/* Common IOCTLs for both FME and AFU file descriptor */
|
||||
|
||||
/**
|
||||
* DFL_FPGA_GET_API_VERSION - _IO(DFL_FPGA_MAGIC, DFL_FPGA_BASE + 0)
|
||||
*
|
||||
* Report the version of the driver API.
|
||||
* Return: Driver API Version.
|
||||
*/
|
||||
|
||||
#define DFL_FPGA_GET_API_VERSION _IO(DFL_FPGA_MAGIC, DFL_FPGA_BASE + 0)
|
||||
|
||||
/**
|
||||
* DFL_FPGA_CHECK_EXTENSION - _IO(DFL_FPGA_MAGIC, DFL_FPGA_BASE + 1)
|
||||
*
|
||||
* Check whether an extension is supported.
|
||||
* Return: 0 if not supported, otherwise the extension is supported.
|
||||
*/
|
||||
|
||||
#define DFL_FPGA_CHECK_EXTENSION _IO(DFL_FPGA_MAGIC, DFL_FPGA_BASE + 1)
|
||||
|
||||
/* IOCTLs for AFU file descriptor */
|
||||
|
||||
/**
|
||||
* DFL_FPGA_PORT_RESET - _IO(DFL_FPGA_MAGIC, DFL_PORT_BASE + 0)
|
||||
*
|
||||
* Reset the FPGA Port and its AFU. No parameters are supported.
|
||||
* Userspace can do Port reset at any time, e.g. during DMA or PR. But
|
||||
* it should never cause any system level issue, only functional failure
|
||||
* (e.g. DMA or PR operation failure) and be recoverable from the failure.
|
||||
* Return: 0 on success, -errno of failure
|
||||
*/
|
||||
|
||||
#define DFL_FPGA_PORT_RESET _IO(DFL_FPGA_MAGIC, DFL_PORT_BASE + 0)
|
||||
|
||||
/**
|
||||
* DFL_FPGA_PORT_GET_INFO - _IOR(DFL_FPGA_MAGIC, DFL_PORT_BASE + 1,
|
||||
* struct dfl_fpga_port_info)
|
||||
*
|
||||
* Retrieve information about the fpga port.
|
||||
* Driver fills the info in provided struct dfl_fpga_port_info.
|
||||
* Return: 0 on success, -errno on failure.
|
||||
*/
|
||||
struct dfl_fpga_port_info {
|
||||
/* Input */
|
||||
__u32 argsz; /* Structure length */
|
||||
/* Output */
|
||||
__u32 flags; /* Zero for now */
|
||||
__u32 num_regions; /* The number of supported regions */
|
||||
__u32 num_umsgs; /* The number of allocated umsgs */
|
||||
};
|
||||
|
||||
#define DFL_FPGA_PORT_GET_INFO _IO(DFL_FPGA_MAGIC, DFL_PORT_BASE + 1)
|
||||
|
||||
/**
|
||||
* FPGA_PORT_GET_REGION_INFO - _IOWR(FPGA_MAGIC, PORT_BASE + 2,
|
||||
* struct dfl_fpga_port_region_info)
|
||||
*
|
||||
* Retrieve information about a device memory region.
|
||||
* Caller provides struct dfl_fpga_port_region_info with index value set.
|
||||
* Driver returns the region info in other fields.
|
||||
* Return: 0 on success, -errno on failure.
|
||||
*/
|
||||
struct dfl_fpga_port_region_info {
|
||||
/* input */
|
||||
__u32 argsz; /* Structure length */
|
||||
/* Output */
|
||||
__u32 flags; /* Access permission */
|
||||
#define DFL_PORT_REGION_READ (1 << 0) /* Region is readable */
|
||||
#define DFL_PORT_REGION_WRITE (1 << 1) /* Region is writable */
|
||||
#define DFL_PORT_REGION_MMAP (1 << 2) /* Can be mmaped to userspace */
|
||||
/* Input */
|
||||
__u32 index; /* Region index */
|
||||
#define DFL_PORT_REGION_INDEX_AFU 0 /* AFU */
|
||||
#define DFL_PORT_REGION_INDEX_STP 1 /* Signal Tap */
|
||||
__u32 padding;
|
||||
/* Output */
|
||||
__u64 size; /* Region size (bytes) */
|
||||
__u64 offset; /* Region offset from start of device fd */
|
||||
};
|
||||
|
||||
#define DFL_FPGA_PORT_GET_REGION_INFO _IO(DFL_FPGA_MAGIC, DFL_PORT_BASE + 2)
|
||||
|
||||
/**
|
||||
* DFL_FPGA_PORT_DMA_MAP - _IOWR(DFL_FPGA_MAGIC, DFL_PORT_BASE + 3,
|
||||
* struct dfl_fpga_port_dma_map)
|
||||
*
|
||||
* Map the dma memory per user_addr and length which are provided by caller.
|
||||
* Driver fills the iova in provided struct afu_port_dma_map.
|
||||
* This interface only accepts page-size aligned user memory for dma mapping.
|
||||
* Return: 0 on success, -errno on failure.
|
||||
*/
|
||||
struct dfl_fpga_port_dma_map {
|
||||
/* Input */
|
||||
__u32 argsz; /* Structure length */
|
||||
__u32 flags; /* Zero for now */
|
||||
__u64 user_addr; /* Process virtual address */
|
||||
__u64 length; /* Length of mapping (bytes)*/
|
||||
/* Output */
|
||||
__u64 iova; /* IO virtual address */
|
||||
};
|
||||
|
||||
#define DFL_FPGA_PORT_DMA_MAP _IO(DFL_FPGA_MAGIC, DFL_PORT_BASE + 3)
|
||||
|
||||
/**
|
||||
* DFL_FPGA_PORT_DMA_UNMAP - _IOW(FPGA_MAGIC, PORT_BASE + 4,
|
||||
* struct dfl_fpga_port_dma_unmap)
|
||||
*
|
||||
* Unmap the dma memory per iova provided by caller.
|
||||
* Return: 0 on success, -errno on failure.
|
||||
*/
|
||||
struct dfl_fpga_port_dma_unmap {
|
||||
/* Input */
|
||||
__u32 argsz; /* Structure length */
|
||||
__u32 flags; /* Zero for now */
|
||||
__u64 iova; /* IO virtual address */
|
||||
};
|
||||
|
||||
#define DFL_FPGA_PORT_DMA_UNMAP _IO(DFL_FPGA_MAGIC, DFL_PORT_BASE + 4)
|
||||
|
||||
/* IOCTLs for FME file descriptor */
|
||||
|
||||
/**
|
||||
* DFL_FPGA_FME_PORT_PR - _IOW(DFL_FPGA_MAGIC, DFL_FME_BASE + 0,
|
||||
* struct dfl_fpga_fme_port_pr)
|
||||
*
|
||||
* Driver does Partial Reconfiguration based on Port ID and Buffer (Image)
|
||||
* provided by caller.
|
||||
* Return: 0 on success, -errno on failure.
|
||||
* If DFL_FPGA_FME_PORT_PR returns -EIO, that indicates the HW has detected
|
||||
* some errors during PR, under this case, the user can fetch HW error info
|
||||
* from the status of FME's fpga manager.
|
||||
*/
|
||||
|
||||
struct dfl_fpga_fme_port_pr {
|
||||
/* Input */
|
||||
__u32 argsz; /* Structure length */
|
||||
__u32 flags; /* Zero for now */
|
||||
__u32 port_id;
|
||||
__u32 buffer_size;
|
||||
__u64 buffer_address; /* Userspace address to the buffer for PR */
|
||||
};
|
||||
|
||||
#define DFL_FPGA_FME_PORT_PR _IO(DFL_FPGA_MAGIC, DFL_FME_BASE + 0)
|
||||
|
||||
#endif /* _UAPI_LINUX_FPGA_DFL_H */
|
58
include/uapi/linux/fsi.h
Normal file
58
include/uapi/linux/fsi.h
Normal file
@@ -0,0 +1,58 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */
|
||||
#ifndef _UAPI_LINUX_FSI_H
|
||||
#define _UAPI_LINUX_FSI_H
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <linux/ioctl.h>
|
||||
|
||||
/*
|
||||
* /dev/scom "raw" ioctl interface
|
||||
*
|
||||
* The driver supports a high level "read/write" interface which
|
||||
* handles retries and converts the status to Linux error codes,
|
||||
* however low level tools an debugger need to access the "raw"
|
||||
* HW status information and interpret it themselves, so this
|
||||
* ioctl interface is also provided for their use case.
|
||||
*/
|
||||
|
||||
/* Structure for SCOM read/write */
|
||||
struct scom_access {
|
||||
__u64 addr; /* SCOM address, supports indirect */
|
||||
__u64 data; /* SCOM data (in for write, out for read) */
|
||||
__u64 mask; /* Data mask for writes */
|
||||
__u32 intf_errors; /* Interface error flags */
|
||||
#define SCOM_INTF_ERR_PARITY 0x00000001 /* Parity error */
|
||||
#define SCOM_INTF_ERR_PROTECTION 0x00000002 /* Blocked by secure boot */
|
||||
#define SCOM_INTF_ERR_ABORT 0x00000004 /* PIB reset during access */
|
||||
#define SCOM_INTF_ERR_UNKNOWN 0x80000000 /* Unknown error */
|
||||
/*
|
||||
* Note: Any other bit set in intf_errors need to be considered as an
|
||||
* error. Future implementations may define new error conditions. The
|
||||
* pib_status below is only valid if intf_errors is 0.
|
||||
*/
|
||||
__u8 pib_status; /* 3-bit PIB status */
|
||||
#define SCOM_PIB_SUCCESS 0 /* Access successful */
|
||||
#define SCOM_PIB_BLOCKED 1 /* PIB blocked, pls retry */
|
||||
#define SCOM_PIB_OFFLINE 2 /* Chiplet offline */
|
||||
#define SCOM_PIB_PARTIAL 3 /* Partial good */
|
||||
#define SCOM_PIB_BAD_ADDR 4 /* Invalid address */
|
||||
#define SCOM_PIB_CLK_ERR 5 /* Clock error */
|
||||
#define SCOM_PIB_PARITY_ERR 6 /* Parity error on the PIB bus */
|
||||
#define SCOM_PIB_TIMEOUT 7 /* Bus timeout */
|
||||
__u8 pad;
|
||||
};
|
||||
|
||||
/* Flags for SCOM check */
|
||||
#define SCOM_CHECK_SUPPORTED 0x00000001 /* Interface supported */
|
||||
#define SCOM_CHECK_PROTECTED 0x00000002 /* Interface blocked by secure boot */
|
||||
|
||||
/* Flags for SCOM reset */
|
||||
#define SCOM_RESET_INTF 0x00000001 /* Reset interface */
|
||||
#define SCOM_RESET_PIB 0x00000002 /* Reset PIB */
|
||||
|
||||
#define FSI_SCOM_CHECK _IOR('s', 0x00, __u32)
|
||||
#define FSI_SCOM_READ _IOWR('s', 0x01, struct scom_access)
|
||||
#define FSI_SCOM_WRITE _IOWR('s', 0x02, struct scom_access)
|
||||
#define FSI_SCOM_RESET _IOW('s', 0x03, __u32)
|
||||
|
||||
#endif /* _UAPI_LINUX_FSI_H */
|
@@ -164,6 +164,8 @@ enum {
|
||||
IFLA_CARRIER_UP_COUNT,
|
||||
IFLA_CARRIER_DOWN_COUNT,
|
||||
IFLA_NEW_IFINDEX,
|
||||
IFLA_MIN_MTU,
|
||||
IFLA_MAX_MTU,
|
||||
__IFLA_MAX
|
||||
};
|
||||
|
||||
@@ -334,6 +336,7 @@ enum {
|
||||
IFLA_BRPORT_GROUP_FWD_MASK,
|
||||
IFLA_BRPORT_NEIGH_SUPPRESS,
|
||||
IFLA_BRPORT_ISOLATED,
|
||||
IFLA_BRPORT_BACKUP_PORT,
|
||||
__IFLA_BRPORT_MAX
|
||||
};
|
||||
#define IFLA_BRPORT_MAX (__IFLA_BRPORT_MAX - 1)
|
||||
@@ -459,6 +462,16 @@ enum {
|
||||
|
||||
#define IFLA_MACSEC_MAX (__IFLA_MACSEC_MAX - 1)
|
||||
|
||||
/* XFRM section */
|
||||
enum {
|
||||
IFLA_XFRM_UNSPEC,
|
||||
IFLA_XFRM_LINK,
|
||||
IFLA_XFRM_IF_ID,
|
||||
__IFLA_XFRM_MAX
|
||||
};
|
||||
|
||||
#define IFLA_XFRM_MAX (__IFLA_XFRM_MAX - 1)
|
||||
|
||||
enum macsec_validation_type {
|
||||
MACSEC_VALIDATE_DISABLED = 0,
|
||||
MACSEC_VALIDATE_CHECK = 1,
|
||||
@@ -920,6 +933,7 @@ enum {
|
||||
XDP_ATTACHED_DRV,
|
||||
XDP_ATTACHED_SKB,
|
||||
XDP_ATTACHED_HW,
|
||||
XDP_ATTACHED_MULTI,
|
||||
};
|
||||
|
||||
enum {
|
||||
@@ -928,6 +942,9 @@ enum {
|
||||
IFLA_XDP_ATTACHED,
|
||||
IFLA_XDP_FLAGS,
|
||||
IFLA_XDP_PROG_ID,
|
||||
IFLA_XDP_DRV_PROG_ID,
|
||||
IFLA_XDP_SKB_PROG_ID,
|
||||
IFLA_XDP_HW_PROG_ID,
|
||||
__IFLA_XDP_MAX,
|
||||
};
|
||||
|
||||
|
@@ -44,6 +44,8 @@ enum iio_chan_type {
|
||||
IIO_COUNT,
|
||||
IIO_INDEX,
|
||||
IIO_GRAVITY,
|
||||
IIO_POSITIONRELATIVE,
|
||||
IIO_PHASE,
|
||||
};
|
||||
|
||||
enum iio_modifier {
|
||||
@@ -84,6 +86,7 @@ enum iio_modifier {
|
||||
IIO_MOD_CO2,
|
||||
IIO_MOD_VOC,
|
||||
IIO_MOD_LIGHT_UV,
|
||||
IIO_MOD_LIGHT_DUV,
|
||||
};
|
||||
|
||||
enum iio_event_type {
|
||||
|
@@ -30,6 +30,7 @@ enum {
|
||||
ILA_CMD_ADD,
|
||||
ILA_CMD_DEL,
|
||||
ILA_CMD_GET,
|
||||
ILA_CMD_FLUSH,
|
||||
|
||||
__ILA_CMD_MAX,
|
||||
};
|
||||
|
@@ -53,6 +53,7 @@ struct inotify_event {
|
||||
#define IN_ONLYDIR 0x01000000 /* only watch the path if it is a directory */
|
||||
#define IN_DONT_FOLLOW 0x02000000 /* don't follow a sym link */
|
||||
#define IN_EXCL_UNLINK 0x04000000 /* exclude events on unlinked objects */
|
||||
#define IN_MASK_CREATE 0x10000000 /* only create watches */
|
||||
#define IN_MASK_ADD 0x20000000 /* add to the mask of an already existing watch */
|
||||
#define IN_ISDIR 0x40000000 /* event occurred against dir */
|
||||
#define IN_ONESHOT 0x80000000 /* only send event once */
|
||||
|
@@ -270,10 +270,11 @@ struct input_mask {
|
||||
/*
|
||||
* MT_TOOL types
|
||||
*/
|
||||
#define MT_TOOL_FINGER 0
|
||||
#define MT_TOOL_PEN 1
|
||||
#define MT_TOOL_PALM 2
|
||||
#define MT_TOOL_MAX 2
|
||||
#define MT_TOOL_FINGER 0x00
|
||||
#define MT_TOOL_PEN 0x01
|
||||
#define MT_TOOL_PALM 0x02
|
||||
#define MT_TOOL_DIAL 0x0a
|
||||
#define MT_TOOL_MAX 0x0f
|
||||
|
||||
/*
|
||||
* Values describing the status of a force-feedback effect
|
||||
|
@@ -168,6 +168,7 @@ enum
|
||||
IPV4_DEVCONF_IGNORE_ROUTES_WITH_LINKDOWN,
|
||||
IPV4_DEVCONF_DROP_UNICAST_IN_L2_MULTICAST,
|
||||
IPV4_DEVCONF_DROP_GRATUITOUS_ARP,
|
||||
IPV4_DEVCONF_BC_FORWARDING,
|
||||
__IPV4_DEVCONF_MAX
|
||||
};
|
||||
|
||||
|
@@ -18,10 +18,6 @@
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*
|
||||
* Should you need to contact me, the author, you can do so either by
|
||||
* e-mail - mail your message to <vojtech@suse.cz>, or by paper mail:
|
||||
* Vojtech Pavlik, Ucitelska 1576, Prague 8, 182 00 Czech Republic
|
||||
*/
|
||||
#ifndef _UAPI_LINUX_JOYSTICK_H
|
||||
#define _UAPI_LINUX_JOYSTICK_H
|
||||
|
@@ -357,8 +357,29 @@
|
||||
#define K_DTILDE K(KT_DEAD,3)
|
||||
#define K_DDIERE K(KT_DEAD,4)
|
||||
#define K_DCEDIL K(KT_DEAD,5)
|
||||
#define K_DMACRON K(KT_DEAD,6)
|
||||
#define K_DBREVE K(KT_DEAD,7)
|
||||
#define K_DABDOT K(KT_DEAD,8)
|
||||
#define K_DABRING K(KT_DEAD,9)
|
||||
#define K_DDBACUTE K(KT_DEAD,10)
|
||||
#define K_DCARON K(KT_DEAD,11)
|
||||
#define K_DOGONEK K(KT_DEAD,12)
|
||||
#define K_DIOTA K(KT_DEAD,13)
|
||||
#define K_DVOICED K(KT_DEAD,14)
|
||||
#define K_DSEMVOICED K(KT_DEAD,15)
|
||||
#define K_DBEDOT K(KT_DEAD,16)
|
||||
#define K_DHOOK K(KT_DEAD,17)
|
||||
#define K_DHORN K(KT_DEAD,18)
|
||||
#define K_DSTROKE K(KT_DEAD,19)
|
||||
#define K_DABCOMMA K(KT_DEAD,20)
|
||||
#define K_DABREVCOMMA K(KT_DEAD,21)
|
||||
#define K_DDBGRAVE K(KT_DEAD,22)
|
||||
#define K_DINVBREVE K(KT_DEAD,23)
|
||||
#define K_DBECOMMA K(KT_DEAD,24)
|
||||
#define K_DCURRENCY K(KT_DEAD,25)
|
||||
#define K_DGREEK K(KT_DEAD,26)
|
||||
|
||||
#define NR_DEAD 6
|
||||
#define NR_DEAD 27
|
||||
|
||||
#define K_DOWN K(KT_CUR,0)
|
||||
#define K_LEFT K(KT_CUR,1)
|
||||
|
@@ -76,6 +76,12 @@ struct kfd_ioctl_update_queue_args {
|
||||
__u32 queue_priority; /* to KFD */
|
||||
};
|
||||
|
||||
struct kfd_ioctl_set_cu_mask_args {
|
||||
__u32 queue_id; /* to KFD */
|
||||
__u32 num_cu_mask; /* to KFD */
|
||||
__u64 cu_mask_ptr; /* to KFD */
|
||||
};
|
||||
|
||||
/* For kfd_ioctl_set_memory_policy_args.default_policy and alternate_policy */
|
||||
#define KFD_IOC_CACHE_POLICY_COHERENT 0
|
||||
#define KFD_IOC_CACHE_POLICY_NONCOHERENT 1
|
||||
@@ -189,6 +195,15 @@ struct kfd_ioctl_dbg_wave_control_args {
|
||||
|
||||
#define KFD_SIGNAL_EVENT_LIMIT 4096
|
||||
|
||||
/* For kfd_event_data.hw_exception_data.reset_type. */
|
||||
#define KFD_HW_EXCEPTION_WHOLE_GPU_RESET 0
|
||||
#define KFD_HW_EXCEPTION_PER_ENGINE_RESET 1
|
||||
|
||||
/* For kfd_event_data.hw_exception_data.reset_cause. */
|
||||
#define KFD_HW_EXCEPTION_GPU_HANG 0
|
||||
#define KFD_HW_EXCEPTION_ECC 1
|
||||
|
||||
|
||||
struct kfd_ioctl_create_event_args {
|
||||
__u64 event_page_offset; /* from KFD */
|
||||
__u32 event_trigger_data; /* from KFD - signal events only */
|
||||
@@ -219,7 +234,7 @@ struct kfd_memory_exception_failure {
|
||||
__u32 NotPresent; /* Page not present or supervisor privilege */
|
||||
__u32 ReadOnly; /* Write access to a read-only page */
|
||||
__u32 NoExecute; /* Execute access to a page marked NX */
|
||||
__u32 pad;
|
||||
__u32 imprecise; /* Can't determine the exact fault address */
|
||||
};
|
||||
|
||||
/* memory exception data*/
|
||||
@@ -230,10 +245,19 @@ struct kfd_hsa_memory_exception_data {
|
||||
__u32 pad;
|
||||
};
|
||||
|
||||
/* Event data*/
|
||||
/* hw exception data */
|
||||
struct kfd_hsa_hw_exception_data {
|
||||
uint32_t reset_type;
|
||||
uint32_t reset_cause;
|
||||
uint32_t memory_lost;
|
||||
uint32_t gpu_id;
|
||||
};
|
||||
|
||||
/* Event data */
|
||||
struct kfd_event_data {
|
||||
union {
|
||||
struct kfd_hsa_memory_exception_data memory_exception_data;
|
||||
struct kfd_hsa_hw_exception_data hw_exception_data;
|
||||
}; /* From KFD */
|
||||
__u64 kfd_event_data_ext; /* pointer to an extension structure
|
||||
for future exception types */
|
||||
@@ -448,7 +472,10 @@ struct kfd_ioctl_unmap_memory_from_gpu_args {
|
||||
#define AMDKFD_IOC_UNMAP_MEMORY_FROM_GPU \
|
||||
AMDKFD_IOWR(0x19, struct kfd_ioctl_unmap_memory_from_gpu_args)
|
||||
|
||||
#define AMDKFD_IOC_SET_CU_MASK \
|
||||
AMDKFD_IOW(0x1A, struct kfd_ioctl_set_cu_mask_args)
|
||||
|
||||
#define AMDKFD_COMMAND_START 0x01
|
||||
#define AMDKFD_COMMAND_END 0x1A
|
||||
#define AMDKFD_COMMAND_END 0x1B
|
||||
|
||||
#endif
|
||||
|
@@ -949,6 +949,9 @@ struct kvm_ppc_resize_hpt {
|
||||
#define KVM_CAP_GET_MSR_FEATURES 153
|
||||
#define KVM_CAP_HYPERV_EVENTFD 154
|
||||
#define KVM_CAP_HYPERV_TLBFLUSH 155
|
||||
#define KVM_CAP_S390_HPAGE_1M 156
|
||||
#define KVM_CAP_NESTED_STATE 157
|
||||
#define KVM_CAP_ARM_INJECT_SERROR_ESR 158
|
||||
|
||||
#ifdef KVM_CAP_IRQ_ROUTING
|
||||
|
||||
@@ -1391,6 +1394,9 @@ struct kvm_enc_region {
|
||||
/* Available with KVM_CAP_HYPERV_EVENTFD */
|
||||
#define KVM_HYPERV_EVENTFD _IOW(KVMIO, 0xbd, struct kvm_hyperv_eventfd)
|
||||
|
||||
/* Available with KVM_CAP_NESTED_STATE */
|
||||
#define KVM_GET_NESTED_STATE _IOWR(KVMIO, 0xbe, struct kvm_nested_state)
|
||||
#define KVM_SET_NESTED_STATE _IOW(KVMIO, 0xbf, struct kvm_nested_state)
|
||||
|
||||
/* Secure Encrypted Virtualization command */
|
||||
enum sev_cmd_id {
|
||||
|
@@ -13,6 +13,7 @@
|
||||
/* Return values for hypercalls */
|
||||
#define KVM_ENOSYS 1000
|
||||
#define KVM_EFAULT EFAULT
|
||||
#define KVM_EINVAL EINVAL
|
||||
#define KVM_E2BIG E2BIG
|
||||
#define KVM_EPERM EPERM
|
||||
#define KVM_EOPNOTSUPP 95
|
||||
@@ -26,6 +27,7 @@
|
||||
#define KVM_HC_MIPS_EXIT_VM 7
|
||||
#define KVM_HC_MIPS_CONSOLE_OUTPUT 8
|
||||
#define KVM_HC_CLOCK_PAIRING 9
|
||||
#define KVM_HC_SEND_IPI 10
|
||||
|
||||
/*
|
||||
* hypercalls use architecture specific
|
||||
|
@@ -60,14 +60,14 @@ struct sockaddr_l2tpip6 {
|
||||
/*
|
||||
* Commands.
|
||||
* Valid TLVs of each command are:-
|
||||
* TUNNEL_CREATE - CONN_ID, pw_type, netns, ifname, ipinfo, udpinfo, udpcsum, vlanid
|
||||
* TUNNEL_CREATE - CONN_ID, pw_type, netns, ifname, ipinfo, udpinfo, udpcsum
|
||||
* TUNNEL_DELETE - CONN_ID
|
||||
* TUNNEL_MODIFY - CONN_ID, udpcsum
|
||||
* TUNNEL_GETSTATS - CONN_ID, (stats)
|
||||
* TUNNEL_GET - CONN_ID, (...)
|
||||
* SESSION_CREATE - SESSION_ID, PW_TYPE, data_seq, cookie, peer_cookie, l2spec
|
||||
* SESSION_CREATE - SESSION_ID, PW_TYPE, cookie, peer_cookie, l2spec
|
||||
* SESSION_DELETE - SESSION_ID
|
||||
* SESSION_MODIFY - SESSION_ID, data_seq
|
||||
* SESSION_MODIFY - SESSION_ID
|
||||
* SESSION_GET - SESSION_ID, (...)
|
||||
* SESSION_GETSTATS - SESSION_ID, (stats)
|
||||
*
|
||||
@@ -95,7 +95,7 @@ enum {
|
||||
L2TP_ATTR_PW_TYPE, /* u16, enum l2tp_pwtype */
|
||||
L2TP_ATTR_ENCAP_TYPE, /* u16, enum l2tp_encap_type */
|
||||
L2TP_ATTR_OFFSET, /* u16 (not used) */
|
||||
L2TP_ATTR_DATA_SEQ, /* u16 */
|
||||
L2TP_ATTR_DATA_SEQ, /* u16 (not used) */
|
||||
L2TP_ATTR_L2SPEC_TYPE, /* u8, enum l2tp_l2spec_type */
|
||||
L2TP_ATTR_L2SPEC_LEN, /* u8 (not used) */
|
||||
L2TP_ATTR_PROTO_VERSION, /* u8 */
|
||||
@@ -105,7 +105,7 @@ enum {
|
||||
L2TP_ATTR_SESSION_ID, /* u32 */
|
||||
L2TP_ATTR_PEER_SESSION_ID, /* u32 */
|
||||
L2TP_ATTR_UDP_CSUM, /* u8 */
|
||||
L2TP_ATTR_VLAN_ID, /* u16 */
|
||||
L2TP_ATTR_VLAN_ID, /* u16 (not used) */
|
||||
L2TP_ATTR_COOKIE, /* 0, 4 or 8 bytes */
|
||||
L2TP_ATTR_PEER_COOKIE, /* 0, 4 or 8 bytes */
|
||||
L2TP_ATTR_DEBUG, /* u32, enum l2tp_debug_flags */
|
||||
@@ -119,8 +119,8 @@ enum {
|
||||
L2TP_ATTR_IP_DADDR, /* u32 */
|
||||
L2TP_ATTR_UDP_SPORT, /* u16 */
|
||||
L2TP_ATTR_UDP_DPORT, /* u16 */
|
||||
L2TP_ATTR_MTU, /* u16 */
|
||||
L2TP_ATTR_MRU, /* u16 */
|
||||
L2TP_ATTR_MTU, /* u16 (not used) */
|
||||
L2TP_ATTR_MRU, /* u16 (not used) */
|
||||
L2TP_ATTR_STATS, /* nested */
|
||||
L2TP_ATTR_IP6_SADDR, /* struct in6_addr */
|
||||
L2TP_ATTR_IP6_DADDR, /* struct in6_addr */
|
||||
@@ -169,6 +169,7 @@ enum l2tp_encap_type {
|
||||
L2TP_ENCAPTYPE_IP,
|
||||
};
|
||||
|
||||
/* For L2TP_ATTR_DATA_SEQ. Unused. */
|
||||
enum l2tp_seqmode {
|
||||
L2TP_SEQ_NONE = 0,
|
||||
L2TP_SEQ_IP = 1,
|
||||
|
@@ -62,7 +62,7 @@
|
||||
#define MEDIA_BUS_FMT_RGB121212_1X36 0x1019
|
||||
#define MEDIA_BUS_FMT_RGB161616_1X48 0x101a
|
||||
|
||||
/* YUV (including grey) - next is 0x202c */
|
||||
/* YUV (including grey) - next is 0x202d */
|
||||
#define MEDIA_BUS_FMT_Y8_1X8 0x2001
|
||||
#define MEDIA_BUS_FMT_UV8_1X8 0x2015
|
||||
#define MEDIA_BUS_FMT_UYVY8_1_5X8 0x2002
|
||||
@@ -74,6 +74,7 @@
|
||||
#define MEDIA_BUS_FMT_YUYV8_2X8 0x2008
|
||||
#define MEDIA_BUS_FMT_YVYU8_2X8 0x2009
|
||||
#define MEDIA_BUS_FMT_Y10_1X10 0x200a
|
||||
#define MEDIA_BUS_FMT_Y10_2X8_PADHI_LE 0x202c
|
||||
#define MEDIA_BUS_FMT_UYVY10_2X10 0x2018
|
||||
#define MEDIA_BUS_FMT_VYUY10_2X10 0x2019
|
||||
#define MEDIA_BUS_FMT_YUYV10_2X10 0x200b
|
||||
|
@@ -25,7 +25,6 @@
|
||||
#endif
|
||||
#include <linux/ioctl.h>
|
||||
#include <linux/types.h>
|
||||
#include <linux/version.h>
|
||||
|
||||
struct media_device_info {
|
||||
char driver[16];
|
||||
@@ -89,12 +88,6 @@ struct media_device_info {
|
||||
#define MEDIA_ENT_F_FLASH (MEDIA_ENT_F_OLD_SUBDEV_BASE + 2)
|
||||
#define MEDIA_ENT_F_LENS (MEDIA_ENT_F_OLD_SUBDEV_BASE + 3)
|
||||
|
||||
/*
|
||||
* Video decoder functions
|
||||
*/
|
||||
#define MEDIA_ENT_F_ATV_DECODER (MEDIA_ENT_F_OLD_SUBDEV_BASE + 4)
|
||||
#define MEDIA_ENT_F_DTV_DECODER (MEDIA_ENT_F_BASE + 0x6001)
|
||||
|
||||
/*
|
||||
* Digital TV, analog TV, radio and/or software defined radio tuner functions.
|
||||
*
|
||||
@@ -132,6 +125,8 @@ struct media_device_info {
|
||||
#define MEDIA_ENT_F_PROC_VIDEO_LUT (MEDIA_ENT_F_BASE + 0x4004)
|
||||
#define MEDIA_ENT_F_PROC_VIDEO_SCALER (MEDIA_ENT_F_BASE + 0x4005)
|
||||
#define MEDIA_ENT_F_PROC_VIDEO_STATISTICS (MEDIA_ENT_F_BASE + 0x4006)
|
||||
#define MEDIA_ENT_F_PROC_VIDEO_ENCODER (MEDIA_ENT_F_BASE + 0x4007)
|
||||
#define MEDIA_ENT_F_PROC_VIDEO_DECODER (MEDIA_ENT_F_BASE + 0x4008)
|
||||
|
||||
/*
|
||||
* Switch and bridge entity functions
|
||||
@@ -139,6 +134,13 @@ struct media_device_info {
|
||||
#define MEDIA_ENT_F_VID_MUX (MEDIA_ENT_F_BASE + 0x5001)
|
||||
#define MEDIA_ENT_F_VID_IF_BRIDGE (MEDIA_ENT_F_BASE + 0x5002)
|
||||
|
||||
/*
|
||||
* Video decoder/encoder functions
|
||||
*/
|
||||
#define MEDIA_ENT_F_ATV_DECODER (MEDIA_ENT_F_OLD_SUBDEV_BASE + 4)
|
||||
#define MEDIA_ENT_F_DV_DECODER (MEDIA_ENT_F_BASE + 0x6001)
|
||||
#define MEDIA_ENT_F_DV_ENCODER (MEDIA_ENT_F_BASE + 0x6002)
|
||||
|
||||
/* Entity flags */
|
||||
#define MEDIA_ENT_FL_DEFAULT (1 << 0)
|
||||
#define MEDIA_ENT_FL_CONNECTOR (1 << 1)
|
||||
@@ -280,11 +282,21 @@ struct media_links_enum {
|
||||
* MC next gen API definitions
|
||||
*/
|
||||
|
||||
/*
|
||||
* Appeared in 4.19.0.
|
||||
*
|
||||
* The media_version argument comes from the media_version field in
|
||||
* struct media_device_info.
|
||||
*/
|
||||
#define MEDIA_V2_ENTITY_HAS_FLAGS(media_version) \
|
||||
((media_version) >= ((4 << 16) | (19 << 8) | 0))
|
||||
|
||||
struct media_v2_entity {
|
||||
__u32 id;
|
||||
char name[64];
|
||||
__u32 function; /* Main function of the entity */
|
||||
__u32 reserved[6];
|
||||
__u32 flags;
|
||||
__u32 reserved[5];
|
||||
} __attribute__ ((packed));
|
||||
|
||||
/* Should match the specific fields at media_intf_devnode */
|
||||
@@ -305,11 +317,21 @@ struct media_v2_interface {
|
||||
};
|
||||
} __attribute__ ((packed));
|
||||
|
||||
/*
|
||||
* Appeared in 4.19.0.
|
||||
*
|
||||
* The media_version argument comes from the media_version field in
|
||||
* struct media_device_info.
|
||||
*/
|
||||
#define MEDIA_V2_PAD_HAS_INDEX(media_version) \
|
||||
((media_version) >= ((4 << 16) | (19 << 8) | 0))
|
||||
|
||||
struct media_v2_pad {
|
||||
__u32 id;
|
||||
__u32 entity_id;
|
||||
__u32 flags;
|
||||
__u32 reserved[5];
|
||||
__u32 index;
|
||||
__u32 reserved[4];
|
||||
} __attribute__ ((packed));
|
||||
|
||||
struct media_v2_link {
|
||||
@@ -348,7 +370,7 @@ struct media_v2_topology {
|
||||
#define MEDIA_IOC_SETUP_LINK _IOWR('|', 0x03, struct media_link_desc)
|
||||
#define MEDIA_IOC_G_TOPOLOGY _IOWR('|', 0x04, struct media_v2_topology)
|
||||
|
||||
#if !defined(__KERNEL__) || defined(__NEED_MEDIA_LEGACY_API)
|
||||
#ifndef __KERNEL__
|
||||
|
||||
/*
|
||||
* Legacy symbols used to avoid userspace compilation breakages.
|
||||
@@ -380,6 +402,8 @@ struct media_v2_topology {
|
||||
#define MEDIA_ENT_T_V4L2_SUBDEV_DECODER MEDIA_ENT_F_ATV_DECODER
|
||||
#define MEDIA_ENT_T_V4L2_SUBDEV_TUNER MEDIA_ENT_F_TUNER
|
||||
|
||||
#define MEDIA_ENT_F_DTV_DECODER MEDIA_ENT_F_DV_DECODER
|
||||
|
||||
/*
|
||||
* There is still no ALSA support in the media controller. These
|
||||
* defines should not have been added and we leave them here only
|
||||
@@ -396,7 +420,7 @@ struct media_v2_topology {
|
||||
#define MEDIA_INTF_T_ALSA_TIMER (MEDIA_INTF_T_ALSA_BASE + 7)
|
||||
|
||||
/* Obsolete symbol for media_version, no longer used in the kernel */
|
||||
#define MEDIA_API_VERSION KERNEL_VERSION(0, 1, 0)
|
||||
#define MEDIA_API_VERSION ((0 << 16) | (1 << 8) | 0)
|
||||
|
||||
#endif
|
||||
|
||||
|
@@ -136,6 +136,7 @@
|
||||
#define CTL1000_ENABLE_MASTER 0x1000
|
||||
|
||||
/* 1000BASE-T Status register */
|
||||
#define LPA_1000MSFAIL 0x8000 /* Master/Slave resolution failure */
|
||||
#define LPA_1000LOCALRXOK 0x2000 /* Link partner local receiver status */
|
||||
#define LPA_1000REMRXOK 0x1000 /* Link partner remote receiver status */
|
||||
#define LPA_1000FULL 0x0800 /* Link partner 1000BASE-T full duplex */
|
||||
|
@@ -120,6 +120,7 @@ enum {
|
||||
IPMRA_TABLE_MROUTE_DO_ASSERT,
|
||||
IPMRA_TABLE_MROUTE_DO_PIM,
|
||||
IPMRA_TABLE_VIFS,
|
||||
IPMRA_TABLE_MROUTE_DO_WRVIFWHOLE,
|
||||
__IPMRA_TABLE_MAX
|
||||
};
|
||||
#define IPMRA_TABLE_MAX (__IPMRA_TABLE_MAX - 1)
|
||||
@@ -173,5 +174,6 @@ enum {
|
||||
#define IGMPMSG_NOCACHE 1 /* Kern cache fill request to mrouted */
|
||||
#define IGMPMSG_WRONGVIF 2 /* For PIM assert processing (unused) */
|
||||
#define IGMPMSG_WHOLEPKT 3 /* For PIM Register processing */
|
||||
#define IGMPMSG_WRVIFWHOLE 4 /* For PIM Register and assert processing */
|
||||
|
||||
#endif /* _UAPI__LINUX_MROUTE_H */
|
||||
|
@@ -141,4 +141,22 @@ struct scm_ts_pktinfo {
|
||||
__u32 reserved[2];
|
||||
};
|
||||
|
||||
/*
|
||||
* SO_TXTIME gets a struct sock_txtime with flags being an integer bit
|
||||
* field comprised of these values.
|
||||
*/
|
||||
enum txtime_flags {
|
||||
SOF_TXTIME_DEADLINE_MODE = (1 << 0),
|
||||
SOF_TXTIME_REPORT_ERRORS = (1 << 1),
|
||||
|
||||
SOF_TXTIME_FLAGS_LAST = SOF_TXTIME_REPORT_ERRORS,
|
||||
SOF_TXTIME_FLAGS_MASK = (SOF_TXTIME_FLAGS_LAST - 1) |
|
||||
SOF_TXTIME_FLAGS_LAST
|
||||
};
|
||||
|
||||
struct sock_txtime {
|
||||
clockid_t clockid; /* reference clockid */
|
||||
__u32 flags; /* as defined by enum txtime_flags */
|
||||
};
|
||||
|
||||
#endif /* _NET_TIMESTAMPING_H */
|
||||
|
@@ -18,6 +18,7 @@ enum {
|
||||
NETCONFA_PROXY_NEIGH,
|
||||
NETCONFA_IGNORE_ROUTES_WITH_LINKDOWN,
|
||||
NETCONFA_INPUT,
|
||||
NETCONFA_BC_FORWARDING,
|
||||
__NETCONFA_MAX
|
||||
};
|
||||
#define NETCONFA_MAX (__NETCONFA_MAX - 1)
|
||||
|
@@ -8,6 +8,7 @@
|
||||
#define NFT_SET_MAXNAMELEN NFT_NAME_MAXLEN
|
||||
#define NFT_OBJ_MAXNAMELEN NFT_NAME_MAXLEN
|
||||
#define NFT_USERDATA_MAXLEN 256
|
||||
#define NFT_OSF_MAXGENRELEN 16
|
||||
|
||||
/**
|
||||
* enum nft_registers - nf_tables registers
|
||||
@@ -921,10 +922,12 @@ enum nft_socket_attributes {
|
||||
/*
|
||||
* enum nft_socket_keys - nf_tables socket expression keys
|
||||
*
|
||||
* @NFT_SOCKET_TRANSPARENT: Value of the IP(V6)_TRANSPARENT socket option_
|
||||
* @NFT_SOCKET_TRANSPARENT: Value of the IP(V6)_TRANSPARENT socket option
|
||||
* @NFT_SOCKET_MARK: Value of the socket mark
|
||||
*/
|
||||
enum nft_socket_keys {
|
||||
NFT_SOCKET_TRANSPARENT,
|
||||
NFT_SOCKET_MARK,
|
||||
__NFT_SOCKET_MAX
|
||||
};
|
||||
#define NFT_SOCKET_MAX (__NFT_SOCKET_MAX - 1)
|
||||
@@ -955,6 +958,7 @@ enum nft_socket_keys {
|
||||
* @NFT_CT_DST_IP: conntrack layer 3 protocol destination (IPv4 address)
|
||||
* @NFT_CT_SRC_IP6: conntrack layer 3 protocol source (IPv6 address)
|
||||
* @NFT_CT_DST_IP6: conntrack layer 3 protocol destination (IPv6 address)
|
||||
* @NFT_CT_TIMEOUT: connection tracking timeout policy assigned to conntrack
|
||||
*/
|
||||
enum nft_ct_keys {
|
||||
NFT_CT_STATE,
|
||||
@@ -980,6 +984,7 @@ enum nft_ct_keys {
|
||||
NFT_CT_DST_IP,
|
||||
NFT_CT_SRC_IP6,
|
||||
NFT_CT_DST_IP6,
|
||||
NFT_CT_TIMEOUT,
|
||||
__NFT_CT_MAX
|
||||
};
|
||||
#define NFT_CT_MAX (__NFT_CT_MAX - 1)
|
||||
@@ -1250,6 +1255,22 @@ enum nft_nat_attributes {
|
||||
};
|
||||
#define NFTA_NAT_MAX (__NFTA_NAT_MAX - 1)
|
||||
|
||||
/**
|
||||
* enum nft_tproxy_attributes - nf_tables tproxy expression netlink attributes
|
||||
*
|
||||
* NFTA_TPROXY_FAMILY: Target address family (NLA_U32: nft_registers)
|
||||
* NFTA_TPROXY_REG_ADDR: Target address register (NLA_U32: nft_registers)
|
||||
* NFTA_TPROXY_REG_PORT: Target port register (NLA_U32: nft_registers)
|
||||
*/
|
||||
enum nft_tproxy_attributes {
|
||||
NFTA_TPROXY_UNSPEC,
|
||||
NFTA_TPROXY_FAMILY,
|
||||
NFTA_TPROXY_REG_ADDR,
|
||||
NFTA_TPROXY_REG_PORT,
|
||||
__NFTA_TPROXY_MAX
|
||||
};
|
||||
#define NFTA_TPROXY_MAX (__NFTA_TPROXY_MAX - 1)
|
||||
|
||||
/**
|
||||
* enum nft_masq_attributes - nf_tables masquerade expression attributes
|
||||
*
|
||||
@@ -1392,13 +1413,24 @@ enum nft_ct_helper_attributes {
|
||||
};
|
||||
#define NFTA_CT_HELPER_MAX (__NFTA_CT_HELPER_MAX - 1)
|
||||
|
||||
enum nft_ct_timeout_timeout_attributes {
|
||||
NFTA_CT_TIMEOUT_UNSPEC,
|
||||
NFTA_CT_TIMEOUT_L3PROTO,
|
||||
NFTA_CT_TIMEOUT_L4PROTO,
|
||||
NFTA_CT_TIMEOUT_DATA,
|
||||
__NFTA_CT_TIMEOUT_MAX,
|
||||
};
|
||||
#define NFTA_CT_TIMEOUT_MAX (__NFTA_CT_TIMEOUT_MAX - 1)
|
||||
|
||||
#define NFT_OBJECT_UNSPEC 0
|
||||
#define NFT_OBJECT_COUNTER 1
|
||||
#define NFT_OBJECT_QUOTA 2
|
||||
#define NFT_OBJECT_CT_HELPER 3
|
||||
#define NFT_OBJECT_LIMIT 4
|
||||
#define NFT_OBJECT_CONNLIMIT 5
|
||||
#define __NFT_OBJECT_MAX 6
|
||||
#define NFT_OBJECT_TUNNEL 6
|
||||
#define NFT_OBJECT_CT_TIMEOUT 7
|
||||
#define __NFT_OBJECT_MAX 8
|
||||
#define NFT_OBJECT_MAX (__NFT_OBJECT_MAX - 1)
|
||||
|
||||
/**
|
||||
@@ -1461,6 +1493,13 @@ enum nft_flowtable_hook_attributes {
|
||||
};
|
||||
#define NFTA_FLOWTABLE_HOOK_MAX (__NFTA_FLOWTABLE_HOOK_MAX - 1)
|
||||
|
||||
enum nft_osf_attributes {
|
||||
NFTA_OSF_UNSPEC,
|
||||
NFTA_OSF_DREG,
|
||||
__NFTA_OSF_MAX,
|
||||
};
|
||||
#define NFTA_OSF_MAX (__NFTA_OSF_MAX - 1)
|
||||
|
||||
/**
|
||||
* enum nft_device_attributes - nf_tables device netlink attributes
|
||||
*
|
||||
@@ -1555,4 +1594,85 @@ enum nft_ng_types {
|
||||
};
|
||||
#define NFT_NG_MAX (__NFT_NG_MAX - 1)
|
||||
|
||||
enum nft_tunnel_key_ip_attributes {
|
||||
NFTA_TUNNEL_KEY_IP_UNSPEC,
|
||||
NFTA_TUNNEL_KEY_IP_SRC,
|
||||
NFTA_TUNNEL_KEY_IP_DST,
|
||||
__NFTA_TUNNEL_KEY_IP_MAX
|
||||
};
|
||||
#define NFTA_TUNNEL_KEY_IP_MAX (__NFTA_TUNNEL_KEY_IP_MAX - 1)
|
||||
|
||||
enum nft_tunnel_ip6_attributes {
|
||||
NFTA_TUNNEL_KEY_IP6_UNSPEC,
|
||||
NFTA_TUNNEL_KEY_IP6_SRC,
|
||||
NFTA_TUNNEL_KEY_IP6_DST,
|
||||
NFTA_TUNNEL_KEY_IP6_FLOWLABEL,
|
||||
__NFTA_TUNNEL_KEY_IP6_MAX
|
||||
};
|
||||
#define NFTA_TUNNEL_KEY_IP6_MAX (__NFTA_TUNNEL_KEY_IP6_MAX - 1)
|
||||
|
||||
enum nft_tunnel_opts_attributes {
|
||||
NFTA_TUNNEL_KEY_OPTS_UNSPEC,
|
||||
NFTA_TUNNEL_KEY_OPTS_VXLAN,
|
||||
NFTA_TUNNEL_KEY_OPTS_ERSPAN,
|
||||
__NFTA_TUNNEL_KEY_OPTS_MAX
|
||||
};
|
||||
#define NFTA_TUNNEL_KEY_OPTS_MAX (__NFTA_TUNNEL_KEY_OPTS_MAX - 1)
|
||||
|
||||
enum nft_tunnel_opts_vxlan_attributes {
|
||||
NFTA_TUNNEL_KEY_VXLAN_UNSPEC,
|
||||
NFTA_TUNNEL_KEY_VXLAN_GBP,
|
||||
__NFTA_TUNNEL_KEY_VXLAN_MAX
|
||||
};
|
||||
#define NFTA_TUNNEL_KEY_VXLAN_MAX (__NFTA_TUNNEL_KEY_VXLAN_MAX - 1)
|
||||
|
||||
enum nft_tunnel_opts_erspan_attributes {
|
||||
NFTA_TUNNEL_KEY_ERSPAN_UNSPEC,
|
||||
NFTA_TUNNEL_KEY_ERSPAN_VERSION,
|
||||
NFTA_TUNNEL_KEY_ERSPAN_V1_INDEX,
|
||||
NFTA_TUNNEL_KEY_ERSPAN_V2_HWID,
|
||||
NFTA_TUNNEL_KEY_ERSPAN_V2_DIR,
|
||||
__NFTA_TUNNEL_KEY_ERSPAN_MAX
|
||||
};
|
||||
#define NFTA_TUNNEL_KEY_ERSPAN_MAX (__NFTA_TUNNEL_KEY_ERSPAN_MAX - 1)
|
||||
|
||||
enum nft_tunnel_flags {
|
||||
NFT_TUNNEL_F_ZERO_CSUM_TX = (1 << 0),
|
||||
NFT_TUNNEL_F_DONT_FRAGMENT = (1 << 1),
|
||||
NFT_TUNNEL_F_SEQ_NUMBER = (1 << 2),
|
||||
};
|
||||
#define NFT_TUNNEL_F_MASK (NFT_TUNNEL_F_ZERO_CSUM_TX | \
|
||||
NFT_TUNNEL_F_DONT_FRAGMENT | \
|
||||
NFT_TUNNEL_F_SEQ_NUMBER)
|
||||
|
||||
enum nft_tunnel_key_attributes {
|
||||
NFTA_TUNNEL_KEY_UNSPEC,
|
||||
NFTA_TUNNEL_KEY_ID,
|
||||
NFTA_TUNNEL_KEY_IP,
|
||||
NFTA_TUNNEL_KEY_IP6,
|
||||
NFTA_TUNNEL_KEY_FLAGS,
|
||||
NFTA_TUNNEL_KEY_TOS,
|
||||
NFTA_TUNNEL_KEY_TTL,
|
||||
NFTA_TUNNEL_KEY_SPORT,
|
||||
NFTA_TUNNEL_KEY_DPORT,
|
||||
NFTA_TUNNEL_KEY_OPTS,
|
||||
__NFTA_TUNNEL_KEY_MAX
|
||||
};
|
||||
#define NFTA_TUNNEL_KEY_MAX (__NFTA_TUNNEL_KEY_MAX - 1)
|
||||
|
||||
enum nft_tunnel_keys {
|
||||
NFT_TUNNEL_PATH,
|
||||
NFT_TUNNEL_ID,
|
||||
__NFT_TUNNEL_MAX
|
||||
};
|
||||
#define NFT_TUNNEL_MAX (__NFT_TUNNEL_MAX - 1)
|
||||
|
||||
enum nft_tunnel_attributes {
|
||||
NFTA_TUNNEL_UNSPEC,
|
||||
NFTA_TUNNEL_KEY,
|
||||
NFTA_TUNNEL_DREG,
|
||||
__NFTA_TUNNEL_MAX
|
||||
};
|
||||
#define NFTA_TUNNEL_MAX (__NFTA_TUNNEL_MAX - 1)
|
||||
|
||||
#endif /* _LINUX_NF_TABLES_H */
|
||||
|
@@ -2,6 +2,8 @@
|
||||
#define _NF_OSF_H
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <linux/ip.h>
|
||||
#include <linux/tcp.h>
|
||||
|
||||
#define MAXGENRELEN 32
|
||||
|
||||
@@ -16,9 +18,14 @@
|
||||
|
||||
#define NF_OSF_TTL_TRUE 0 /* True ip and fingerprint TTL comparison */
|
||||
|
||||
/* Check if ip TTL is less than fingerprint one */
|
||||
#define NF_OSF_TTL_LESS 1
|
||||
|
||||
/* Do not compare ip and fingerprint TTL at all */
|
||||
#define NF_OSF_TTL_NOCHECK 2
|
||||
|
||||
#define NF_OSF_FLAGMASK (NF_OSF_GENRE | NF_OSF_TTL | \
|
||||
NF_OSF_LOG | NF_OSF_INVERT)
|
||||
/* Wildcard MSS (kind of).
|
||||
* It is used to implement a state machine for the different wildcard values
|
||||
* of the MSS and window sizes.
|
||||
@@ -83,4 +90,31 @@ enum iana_options {
|
||||
OSFOPT_EMPTY = 255,
|
||||
};
|
||||
|
||||
/* Initial window size option state machine: multiple of mss, mtu or
|
||||
* plain numeric value. Can also be made as plain numeric value which
|
||||
* is not a multiple of specified value.
|
||||
*/
|
||||
enum nf_osf_window_size_options {
|
||||
OSF_WSS_PLAIN = 0,
|
||||
OSF_WSS_MSS,
|
||||
OSF_WSS_MTU,
|
||||
OSF_WSS_MODULO,
|
||||
OSF_WSS_MAX,
|
||||
};
|
||||
|
||||
enum nf_osf_attr_type {
|
||||
OSF_ATTR_UNSPEC,
|
||||
OSF_ATTR_FINGER,
|
||||
OSF_ATTR_MAX,
|
||||
};
|
||||
|
||||
/*
|
||||
* Add/remove fingerprint from the kernel.
|
||||
*/
|
||||
enum nf_osf_msg_types {
|
||||
OSF_MSG_ADD,
|
||||
OSF_MSG_REMOVE,
|
||||
OSF_MSG_MAX,
|
||||
};
|
||||
|
||||
#endif /* _NF_OSF_H */
|
@@ -21,9 +21,7 @@
|
||||
#define _XT_OSF_H
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <linux/ip.h>
|
||||
#include <linux/tcp.h>
|
||||
#include <linux/netfilter/nf_osf.h>
|
||||
#include <linux/netfilter/nfnetlink_osf.h>
|
||||
|
||||
#define XT_OSF_GENRE NF_OSF_GENRE
|
||||
#define XT_OSF_INVERT NF_OSF_INVERT
|
||||
@@ -37,8 +35,7 @@
|
||||
|
||||
#define XT_OSF_TTL_TRUE NF_OSF_TTL_TRUE
|
||||
#define XT_OSF_TTL_NOCHECK NF_OSF_TTL_NOCHECK
|
||||
|
||||
#define XT_OSF_TTL_LESS 1 /* Check if ip TTL is less than fingerprint one */
|
||||
#define XT_OSF_TTL_LESS NF_OSF_TTL_LESS
|
||||
|
||||
#define xt_osf_wc nf_osf_wc
|
||||
#define xt_osf_opt nf_osf_opt
|
||||
@@ -47,19 +44,8 @@
|
||||
#define xt_osf_finger nf_osf_finger
|
||||
#define xt_osf_nlmsg nf_osf_nlmsg
|
||||
|
||||
/*
|
||||
* Add/remove fingerprint from the kernel.
|
||||
*/
|
||||
enum xt_osf_msg_types {
|
||||
OSF_MSG_ADD,
|
||||
OSF_MSG_REMOVE,
|
||||
OSF_MSG_MAX,
|
||||
};
|
||||
|
||||
enum xt_osf_attr_type {
|
||||
OSF_ATTR_UNSPEC,
|
||||
OSF_ATTR_FINGER,
|
||||
OSF_ATTR_MAX,
|
||||
};
|
||||
#define xt_osf_window_size_options nf_osf_window_size_options
|
||||
#define xt_osf_attr_type nf_osf_attr_type
|
||||
#define xt_osf_msg_types nf_osf_msg_types
|
||||
|
||||
#endif /* _XT_OSF_H */
|
||||
|
@@ -26,4 +26,15 @@
|
||||
#define NF_BR_BROUTING 5
|
||||
#define NF_BR_NUMHOOKS 6
|
||||
|
||||
enum nf_br_hook_priorities {
|
||||
NF_BR_PRI_FIRST = INT_MIN,
|
||||
NF_BR_PRI_NAT_DST_BRIDGED = -300,
|
||||
NF_BR_PRI_FILTER_BRIDGED = -200,
|
||||
NF_BR_PRI_BRNF = 0,
|
||||
NF_BR_PRI_NAT_DST_OTHER = 100,
|
||||
NF_BR_PRI_FILTER_OTHER = 200,
|
||||
NF_BR_PRI_NAT_SRC = 300,
|
||||
NF_BR_PRI_LAST = INT_MAX,
|
||||
};
|
||||
|
||||
#endif /* _UAPI__LINUX_BRIDGE_NETFILTER_H */
|
||||
|
@@ -2237,6 +2237,9 @@ enum nl80211_commands {
|
||||
* enforced.
|
||||
* @NL80211_ATTR_TXQ_QUANTUM: TXQ scheduler quantum (bytes). Number of bytes
|
||||
* a flow is assigned on each round of the DRR scheduler.
|
||||
* @NL80211_ATTR_HE_CAPABILITY: HE Capability information element (from
|
||||
* association request when used with NL80211_CMD_NEW_STATION). Can be set
|
||||
* only if %NL80211_STA_FLAG_WME is set.
|
||||
*
|
||||
* @NUM_NL80211_ATTR: total number of nl80211_attrs available
|
||||
* @NL80211_ATTR_MAX: highest attribute number currently defined
|
||||
@@ -2677,6 +2680,8 @@ enum nl80211_attrs {
|
||||
NL80211_ATTR_TXQ_MEMORY_LIMIT,
|
||||
NL80211_ATTR_TXQ_QUANTUM,
|
||||
|
||||
NL80211_ATTR_HE_CAPABILITY,
|
||||
|
||||
/* add attributes here, update the policy in nl80211.c */
|
||||
|
||||
__NL80211_ATTR_AFTER_LAST,
|
||||
@@ -2726,7 +2731,8 @@ enum nl80211_attrs {
|
||||
#define NL80211_TKIP_DATA_OFFSET_RX_MIC_KEY 24
|
||||
#define NL80211_HT_CAPABILITY_LEN 26
|
||||
#define NL80211_VHT_CAPABILITY_LEN 12
|
||||
|
||||
#define NL80211_HE_MIN_CAPABILITY_LEN 16
|
||||
#define NL80211_HE_MAX_CAPABILITY_LEN 51
|
||||
#define NL80211_MAX_NR_CIPHER_SUITES 5
|
||||
#define NL80211_MAX_NR_AKM_SUITES 2
|
||||
|
||||
@@ -2853,6 +2859,38 @@ struct nl80211_sta_flag_update {
|
||||
__u32 set;
|
||||
} __attribute__((packed));
|
||||
|
||||
/**
|
||||
* enum nl80211_he_gi - HE guard interval
|
||||
* @NL80211_RATE_INFO_HE_GI_0_8: 0.8 usec
|
||||
* @NL80211_RATE_INFO_HE_GI_1_6: 1.6 usec
|
||||
* @NL80211_RATE_INFO_HE_GI_3_2: 3.2 usec
|
||||
*/
|
||||
enum nl80211_he_gi {
|
||||
NL80211_RATE_INFO_HE_GI_0_8,
|
||||
NL80211_RATE_INFO_HE_GI_1_6,
|
||||
NL80211_RATE_INFO_HE_GI_3_2,
|
||||
};
|
||||
|
||||
/**
|
||||
* enum nl80211_he_ru_alloc - HE RU allocation values
|
||||
* @NL80211_RATE_INFO_HE_RU_ALLOC_26: 26-tone RU allocation
|
||||
* @NL80211_RATE_INFO_HE_RU_ALLOC_52: 52-tone RU allocation
|
||||
* @NL80211_RATE_INFO_HE_RU_ALLOC_106: 106-tone RU allocation
|
||||
* @NL80211_RATE_INFO_HE_RU_ALLOC_242: 242-tone RU allocation
|
||||
* @NL80211_RATE_INFO_HE_RU_ALLOC_484: 484-tone RU allocation
|
||||
* @NL80211_RATE_INFO_HE_RU_ALLOC_996: 996-tone RU allocation
|
||||
* @NL80211_RATE_INFO_HE_RU_ALLOC_2x996: 2x996-tone RU allocation
|
||||
*/
|
||||
enum nl80211_he_ru_alloc {
|
||||
NL80211_RATE_INFO_HE_RU_ALLOC_26,
|
||||
NL80211_RATE_INFO_HE_RU_ALLOC_52,
|
||||
NL80211_RATE_INFO_HE_RU_ALLOC_106,
|
||||
NL80211_RATE_INFO_HE_RU_ALLOC_242,
|
||||
NL80211_RATE_INFO_HE_RU_ALLOC_484,
|
||||
NL80211_RATE_INFO_HE_RU_ALLOC_996,
|
||||
NL80211_RATE_INFO_HE_RU_ALLOC_2x996,
|
||||
};
|
||||
|
||||
/**
|
||||
* enum nl80211_rate_info - bitrate information
|
||||
*
|
||||
@@ -2885,6 +2923,13 @@ struct nl80211_sta_flag_update {
|
||||
* @NL80211_RATE_INFO_5_MHZ_WIDTH: 5 MHz width - note that this is
|
||||
* a legacy rate and will be reported as the actual bitrate, i.e.
|
||||
* a quarter of the base (20 MHz) rate
|
||||
* @NL80211_RATE_INFO_HE_MCS: HE MCS index (u8, 0-11)
|
||||
* @NL80211_RATE_INFO_HE_NSS: HE NSS value (u8, 1-8)
|
||||
* @NL80211_RATE_INFO_HE_GI: HE guard interval identifier
|
||||
* (u8, see &enum nl80211_he_gi)
|
||||
* @NL80211_RATE_INFO_HE_DCM: HE DCM value (u8, 0/1)
|
||||
* @NL80211_RATE_INFO_RU_ALLOC: HE RU allocation, if not present then
|
||||
* non-OFDMA was used (u8, see &enum nl80211_he_ru_alloc)
|
||||
* @__NL80211_RATE_INFO_AFTER_LAST: internal use
|
||||
*/
|
||||
enum nl80211_rate_info {
|
||||
@@ -2901,6 +2946,11 @@ enum nl80211_rate_info {
|
||||
NL80211_RATE_INFO_160_MHZ_WIDTH,
|
||||
NL80211_RATE_INFO_10_MHZ_WIDTH,
|
||||
NL80211_RATE_INFO_5_MHZ_WIDTH,
|
||||
NL80211_RATE_INFO_HE_MCS,
|
||||
NL80211_RATE_INFO_HE_NSS,
|
||||
NL80211_RATE_INFO_HE_GI,
|
||||
NL80211_RATE_INFO_HE_DCM,
|
||||
NL80211_RATE_INFO_HE_RU_ALLOC,
|
||||
|
||||
/* keep last */
|
||||
__NL80211_RATE_INFO_AFTER_LAST,
|
||||
@@ -3166,6 +3216,38 @@ enum nl80211_mpath_info {
|
||||
NL80211_MPATH_INFO_MAX = __NL80211_MPATH_INFO_AFTER_LAST - 1
|
||||
};
|
||||
|
||||
/**
|
||||
* enum nl80211_band_iftype_attr - Interface type data attributes
|
||||
*
|
||||
* @__NL80211_BAND_IFTYPE_ATTR_INVALID: attribute number 0 is reserved
|
||||
* @NL80211_BAND_IFTYPE_ATTR_IFTYPES: nested attribute containing a flag attribute
|
||||
* for each interface type that supports the band data
|
||||
* @NL80211_BAND_IFTYPE_ATTR_HE_CAP_MAC: HE MAC capabilities as in HE
|
||||
* capabilities IE
|
||||
* @NL80211_BAND_IFTYPE_ATTR_HE_CAP_PHY: HE PHY capabilities as in HE
|
||||
* capabilities IE
|
||||
* @NL80211_BAND_IFTYPE_ATTR_HE_CAP_MCS_SET: HE supported NSS/MCS as in HE
|
||||
* capabilities IE
|
||||
* @NL80211_BAND_IFTYPE_ATTR_HE_CAP_PPE: HE PPE thresholds information as
|
||||
* defined in HE capabilities IE
|
||||
* @NL80211_BAND_IFTYPE_ATTR_MAX: highest band HE capability attribute currently
|
||||
* defined
|
||||
* @__NL80211_BAND_IFTYPE_ATTR_AFTER_LAST: internal use
|
||||
*/
|
||||
enum nl80211_band_iftype_attr {
|
||||
__NL80211_BAND_IFTYPE_ATTR_INVALID,
|
||||
|
||||
NL80211_BAND_IFTYPE_ATTR_IFTYPES,
|
||||
NL80211_BAND_IFTYPE_ATTR_HE_CAP_MAC,
|
||||
NL80211_BAND_IFTYPE_ATTR_HE_CAP_PHY,
|
||||
NL80211_BAND_IFTYPE_ATTR_HE_CAP_MCS_SET,
|
||||
NL80211_BAND_IFTYPE_ATTR_HE_CAP_PPE,
|
||||
|
||||
/* keep last */
|
||||
__NL80211_BAND_IFTYPE_ATTR_AFTER_LAST,
|
||||
NL80211_BAND_IFTYPE_ATTR_MAX = __NL80211_BAND_IFTYPE_ATTR_AFTER_LAST - 1
|
||||
};
|
||||
|
||||
/**
|
||||
* enum nl80211_band_attr - band attributes
|
||||
* @__NL80211_BAND_ATTR_INVALID: attribute number 0 is reserved
|
||||
@@ -3181,6 +3263,8 @@ enum nl80211_mpath_info {
|
||||
* @NL80211_BAND_ATTR_VHT_MCS_SET: 32-byte attribute containing the MCS set as
|
||||
* defined in 802.11ac
|
||||
* @NL80211_BAND_ATTR_VHT_CAPA: VHT capabilities, as in the HT information IE
|
||||
* @NL80211_BAND_ATTR_IFTYPE_DATA: nested array attribute, with each entry using
|
||||
* attributes from &enum nl80211_band_iftype_attr
|
||||
* @NL80211_BAND_ATTR_MAX: highest band attribute currently defined
|
||||
* @__NL80211_BAND_ATTR_AFTER_LAST: internal use
|
||||
*/
|
||||
@@ -3196,6 +3280,7 @@ enum nl80211_band_attr {
|
||||
|
||||
NL80211_BAND_ATTR_VHT_MCS_SET,
|
||||
NL80211_BAND_ATTR_VHT_CAPA,
|
||||
NL80211_BAND_ATTR_IFTYPE_DATA,
|
||||
|
||||
/* keep last */
|
||||
__NL80211_BAND_ATTR_AFTER_LAST,
|
||||
@@ -5133,6 +5218,11 @@ enum nl80211_feature_flags {
|
||||
* support to nl80211.
|
||||
* @NL80211_EXT_FEATURE_TXQS: Driver supports FQ-CoDel-enabled intermediate
|
||||
* TXQs.
|
||||
* @NL80211_EXT_FEATURE_SCAN_RANDOM_SN: Driver/device supports randomizing the
|
||||
* SN in probe request frames if requested by %NL80211_SCAN_FLAG_RANDOM_SN.
|
||||
* @NL80211_EXT_FEATURE_SCAN_MIN_PREQ_CONTENT: Driver/device can omit all data
|
||||
* except for supported rates from the probe request content if requested
|
||||
* by the %NL80211_SCAN_FLAG_MIN_PREQ_CONTENT flag.
|
||||
*
|
||||
* @NUM_NL80211_EXT_FEATURES: number of extended features.
|
||||
* @MAX_NL80211_EXT_FEATURES: highest extended feature index.
|
||||
@@ -5167,6 +5257,8 @@ enum nl80211_ext_feature_index {
|
||||
NL80211_EXT_FEATURE_CONTROL_PORT_OVER_NL80211,
|
||||
NL80211_EXT_FEATURE_DATA_ACK_SIGNAL_SUPPORT,
|
||||
NL80211_EXT_FEATURE_TXQS,
|
||||
NL80211_EXT_FEATURE_SCAN_RANDOM_SN,
|
||||
NL80211_EXT_FEATURE_SCAN_MIN_PREQ_CONTENT,
|
||||
|
||||
/* add new features before the definition below */
|
||||
NUM_NL80211_EXT_FEATURES,
|
||||
@@ -5272,6 +5364,12 @@ enum nl80211_timeout_reason {
|
||||
* possible scan results. This flag hints the driver to use the best
|
||||
* possible scan configuration to improve the accuracy in scanning.
|
||||
* Latency and power use may get impacted with this flag.
|
||||
* @NL80211_SCAN_FLAG_RANDOM_SN: randomize the sequence number in probe
|
||||
* request frames from this scan to avoid correlation/tracking being
|
||||
* possible.
|
||||
* @NL80211_SCAN_FLAG_MIN_PREQ_CONTENT: minimize probe request content to
|
||||
* only have supported rates and no additional capabilities (unless
|
||||
* added by userspace explicitly.)
|
||||
*/
|
||||
enum nl80211_scan_flags {
|
||||
NL80211_SCAN_FLAG_LOW_PRIORITY = 1<<0,
|
||||
@@ -5285,6 +5383,8 @@ enum nl80211_scan_flags {
|
||||
NL80211_SCAN_FLAG_LOW_SPAN = 1<<8,
|
||||
NL80211_SCAN_FLAG_LOW_POWER = 1<<9,
|
||||
NL80211_SCAN_FLAG_HIGH_ACCURACY = 1<<10,
|
||||
NL80211_SCAN_FLAG_RANDOM_SN = 1<<11,
|
||||
NL80211_SCAN_FLAG_MIN_PREQ_CONTENT = 1<<12,
|
||||
};
|
||||
|
||||
/**
|
||||
|
@@ -840,6 +840,8 @@ struct ovs_action_push_eth {
|
||||
* @OVS_ACTION_ATTR_POP_NSH: pop the outermost NSH header off the packet.
|
||||
* @OVS_ACTION_ATTR_METER: Run packet through a meter, which may drop the
|
||||
* packet, or modify the packet (e.g., change the DSCP field).
|
||||
* @OVS_ACTION_ATTR_CLONE: make a copy of the packet and execute a list of
|
||||
* actions without affecting the original packet and key.
|
||||
*
|
||||
* Only a single header can be set with a single %OVS_ACTION_ATTR_SET. Not all
|
||||
* fields within a header are modifiable, e.g. the IPv4 protocol and fragment
|
||||
@@ -873,6 +875,7 @@ enum ovs_action_attr {
|
||||
OVS_ACTION_ATTR_PUSH_NSH, /* Nested OVS_NSH_KEY_ATTR_*. */
|
||||
OVS_ACTION_ATTR_POP_NSH, /* No argument. */
|
||||
OVS_ACTION_ATTR_METER, /* u32 meter ID. */
|
||||
OVS_ACTION_ATTR_CLONE, /* Nested OVS_CLONE_ATTR_*. */
|
||||
|
||||
__OVS_ACTION_ATTR_MAX, /* Nothing past this will be accepted
|
||||
* from userspace. */
|
||||
|
@@ -636,6 +636,7 @@
|
||||
#define PCI_EXP_DEVCAP2_OBFF_MASK 0x000c0000 /* OBFF support mechanism */
|
||||
#define PCI_EXP_DEVCAP2_OBFF_MSG 0x00040000 /* New message signaling */
|
||||
#define PCI_EXP_DEVCAP2_OBFF_WAKE 0x00080000 /* Re-use WAKE# for OBFF */
|
||||
#define PCI_EXP_DEVCAP2_EE_PREFIX 0x00200000 /* End-End TLP Prefix */
|
||||
#define PCI_EXP_DEVCTL2 40 /* Device Control 2 */
|
||||
#define PCI_EXP_DEVCTL2_COMP_TIMEOUT 0x000f /* Completion Timeout Value */
|
||||
#define PCI_EXP_DEVCTL2_COMP_TMOUT_DIS 0x0010 /* Completion Timeout Disable */
|
||||
@@ -960,8 +961,9 @@
|
||||
#define PCI_REBAR_CTRL 8 /* control register */
|
||||
#define PCI_REBAR_CTRL_BAR_IDX 0x00000007 /* BAR index */
|
||||
#define PCI_REBAR_CTRL_NBAR_MASK 0x000000E0 /* # of resizable BARs */
|
||||
#define PCI_REBAR_CTRL_NBAR_SHIFT 5 /* shift for # of BARs */
|
||||
#define PCI_REBAR_CTRL_NBAR_SHIFT 5 /* shift for # of BARs */
|
||||
#define PCI_REBAR_CTRL_BAR_SIZE 0x00001F00 /* BAR size */
|
||||
#define PCI_REBAR_CTRL_BAR_SHIFT 8 /* shift for BAR size */
|
||||
|
||||
/* Dynamic Power Allocation */
|
||||
#define PCI_DPA_CAP 4 /* capability register */
|
||||
|
@@ -16,5 +16,8 @@
|
||||
#define PCITEST_WRITE _IOW('P', 0x4, unsigned long)
|
||||
#define PCITEST_READ _IOW('P', 0x5, unsigned long)
|
||||
#define PCITEST_COPY _IOW('P', 0x6, unsigned long)
|
||||
#define PCITEST_MSIX _IOW('P', 0x7, int)
|
||||
#define PCITEST_SET_IRQTYPE _IOW('P', 0x8, int)
|
||||
#define PCITEST_GET_IRQTYPE _IO('P', 0x9)
|
||||
|
||||
#endif /* __UAPI_LINUX_PCITEST_H */
|
||||
|
@@ -143,6 +143,8 @@ enum perf_event_sample_format {
|
||||
PERF_SAMPLE_PHYS_ADDR = 1U << 19,
|
||||
|
||||
PERF_SAMPLE_MAX = 1U << 20, /* non-ABI */
|
||||
|
||||
__PERF_SAMPLE_CALLCHAIN_EARLY = 1ULL << 63,
|
||||
};
|
||||
|
||||
/*
|
||||
|
@@ -45,6 +45,7 @@ enum {
|
||||
* the skb and act like everything
|
||||
* is alright.
|
||||
*/
|
||||
#define TC_ACT_VALUE_MAX TC_ACT_TRAP
|
||||
|
||||
/* There is a special kind of actions called "extended actions",
|
||||
* which need a value parameter. These have a local opcode located in
|
||||
@@ -55,11 +56,12 @@ enum {
|
||||
#define __TC_ACT_EXT_SHIFT 28
|
||||
#define __TC_ACT_EXT(local) ((local) << __TC_ACT_EXT_SHIFT)
|
||||
#define TC_ACT_EXT_VAL_MASK ((1 << __TC_ACT_EXT_SHIFT) - 1)
|
||||
#define TC_ACT_EXT_CMP(combined, opcode) \
|
||||
(((combined) & (~TC_ACT_EXT_VAL_MASK)) == opcode)
|
||||
#define TC_ACT_EXT_OPCODE(combined) ((combined) & (~TC_ACT_EXT_VAL_MASK))
|
||||
#define TC_ACT_EXT_CMP(combined, opcode) (TC_ACT_EXT_OPCODE(combined) == opcode)
|
||||
|
||||
#define TC_ACT_JUMP __TC_ACT_EXT(1)
|
||||
#define TC_ACT_GOTO_CHAIN __TC_ACT_EXT(2)
|
||||
#define TC_ACT_EXT_OPCODE_MAX TC_ACT_GOTO_CHAIN
|
||||
|
||||
/* Action type identifiers*/
|
||||
enum {
|
||||
@@ -469,11 +471,46 @@ enum {
|
||||
TCA_FLOWER_KEY_IP_TTL, /* u8 */
|
||||
TCA_FLOWER_KEY_IP_TTL_MASK, /* u8 */
|
||||
|
||||
TCA_FLOWER_KEY_CVLAN_ID, /* be16 */
|
||||
TCA_FLOWER_KEY_CVLAN_PRIO, /* u8 */
|
||||
TCA_FLOWER_KEY_CVLAN_ETH_TYPE, /* be16 */
|
||||
|
||||
TCA_FLOWER_KEY_ENC_IP_TOS, /* u8 */
|
||||
TCA_FLOWER_KEY_ENC_IP_TOS_MASK, /* u8 */
|
||||
TCA_FLOWER_KEY_ENC_IP_TTL, /* u8 */
|
||||
TCA_FLOWER_KEY_ENC_IP_TTL_MASK, /* u8 */
|
||||
|
||||
TCA_FLOWER_KEY_ENC_OPTS,
|
||||
TCA_FLOWER_KEY_ENC_OPTS_MASK,
|
||||
|
||||
__TCA_FLOWER_MAX,
|
||||
};
|
||||
|
||||
#define TCA_FLOWER_MAX (__TCA_FLOWER_MAX - 1)
|
||||
|
||||
enum {
|
||||
TCA_FLOWER_KEY_ENC_OPTS_UNSPEC,
|
||||
TCA_FLOWER_KEY_ENC_OPTS_GENEVE, /* Nested
|
||||
* TCA_FLOWER_KEY_ENC_OPT_GENEVE_
|
||||
* attributes
|
||||
*/
|
||||
__TCA_FLOWER_KEY_ENC_OPTS_MAX,
|
||||
};
|
||||
|
||||
#define TCA_FLOWER_KEY_ENC_OPTS_MAX (__TCA_FLOWER_KEY_ENC_OPTS_MAX - 1)
|
||||
|
||||
enum {
|
||||
TCA_FLOWER_KEY_ENC_OPT_GENEVE_UNSPEC,
|
||||
TCA_FLOWER_KEY_ENC_OPT_GENEVE_CLASS, /* u16 */
|
||||
TCA_FLOWER_KEY_ENC_OPT_GENEVE_TYPE, /* u8 */
|
||||
TCA_FLOWER_KEY_ENC_OPT_GENEVE_DATA, /* 4 to 128 bytes */
|
||||
|
||||
__TCA_FLOWER_KEY_ENC_OPT_GENEVE_MAX,
|
||||
};
|
||||
|
||||
#define TCA_FLOWER_KEY_ENC_OPT_GENEVE_MAX \
|
||||
(__TCA_FLOWER_KEY_ENC_OPT_GENEVE_MAX - 1)
|
||||
|
||||
enum {
|
||||
TCA_FLOWER_KEY_FLAGS_IS_FRAGMENT = (1 << 0),
|
||||
TCA_FLOWER_KEY_FLAGS_FRAG_IS_FIRST = (1 << 1),
|
||||
|
@@ -124,6 +124,21 @@ struct tc_fifo_qopt {
|
||||
__u32 limit; /* Queue length: bytes for bfifo, packets for pfifo */
|
||||
};
|
||||
|
||||
/* SKBPRIO section */
|
||||
|
||||
/*
|
||||
* Priorities go from zero to (SKBPRIO_MAX_PRIORITY - 1).
|
||||
* SKBPRIO_MAX_PRIORITY should be at least 64 in order for skbprio to be able
|
||||
* to map one to one the DS field of IPV4 and IPV6 headers.
|
||||
* Memory allocation grows linearly with SKBPRIO_MAX_PRIORITY.
|
||||
*/
|
||||
|
||||
#define SKBPRIO_MAX_PRIORITY 64
|
||||
|
||||
struct tc_skbprio_qopt {
|
||||
__u32 limit; /* Queue length in packets. */
|
||||
};
|
||||
|
||||
/* PRIO section */
|
||||
|
||||
#define TCQ_PRIO_BANDS 16
|
||||
@@ -539,6 +554,7 @@ enum {
|
||||
TCA_NETEM_LATENCY64,
|
||||
TCA_NETEM_JITTER64,
|
||||
TCA_NETEM_SLOT,
|
||||
TCA_NETEM_SLOT_DIST,
|
||||
__TCA_NETEM_MAX,
|
||||
};
|
||||
|
||||
@@ -581,6 +597,8 @@ struct tc_netem_slot {
|
||||
__s64 max_delay;
|
||||
__s32 max_packets;
|
||||
__s32 max_bytes;
|
||||
__s64 dist_delay; /* nsec */
|
||||
__s64 dist_jitter; /* nsec */
|
||||
};
|
||||
|
||||
enum {
|
||||
@@ -934,4 +952,136 @@ enum {
|
||||
|
||||
#define TCA_CBS_MAX (__TCA_CBS_MAX - 1)
|
||||
|
||||
|
||||
/* ETF */
|
||||
struct tc_etf_qopt {
|
||||
__s32 delta;
|
||||
__s32 clockid;
|
||||
__u32 flags;
|
||||
#define TC_ETF_DEADLINE_MODE_ON BIT(0)
|
||||
#define TC_ETF_OFFLOAD_ON BIT(1)
|
||||
};
|
||||
|
||||
enum {
|
||||
TCA_ETF_UNSPEC,
|
||||
TCA_ETF_PARMS,
|
||||
__TCA_ETF_MAX,
|
||||
};
|
||||
|
||||
#define TCA_ETF_MAX (__TCA_ETF_MAX - 1)
|
||||
|
||||
|
||||
/* CAKE */
|
||||
enum {
|
||||
TCA_CAKE_UNSPEC,
|
||||
TCA_CAKE_PAD,
|
||||
TCA_CAKE_BASE_RATE64,
|
||||
TCA_CAKE_DIFFSERV_MODE,
|
||||
TCA_CAKE_ATM,
|
||||
TCA_CAKE_FLOW_MODE,
|
||||
TCA_CAKE_OVERHEAD,
|
||||
TCA_CAKE_RTT,
|
||||
TCA_CAKE_TARGET,
|
||||
TCA_CAKE_AUTORATE,
|
||||
TCA_CAKE_MEMORY,
|
||||
TCA_CAKE_NAT,
|
||||
TCA_CAKE_RAW,
|
||||
TCA_CAKE_WASH,
|
||||
TCA_CAKE_MPU,
|
||||
TCA_CAKE_INGRESS,
|
||||
TCA_CAKE_ACK_FILTER,
|
||||
TCA_CAKE_SPLIT_GSO,
|
||||
__TCA_CAKE_MAX
|
||||
};
|
||||
#define TCA_CAKE_MAX (__TCA_CAKE_MAX - 1)
|
||||
|
||||
enum {
|
||||
__TCA_CAKE_STATS_INVALID,
|
||||
TCA_CAKE_STATS_PAD,
|
||||
TCA_CAKE_STATS_CAPACITY_ESTIMATE64,
|
||||
TCA_CAKE_STATS_MEMORY_LIMIT,
|
||||
TCA_CAKE_STATS_MEMORY_USED,
|
||||
TCA_CAKE_STATS_AVG_NETOFF,
|
||||
TCA_CAKE_STATS_MIN_NETLEN,
|
||||
TCA_CAKE_STATS_MAX_NETLEN,
|
||||
TCA_CAKE_STATS_MIN_ADJLEN,
|
||||
TCA_CAKE_STATS_MAX_ADJLEN,
|
||||
TCA_CAKE_STATS_TIN_STATS,
|
||||
TCA_CAKE_STATS_DEFICIT,
|
||||
TCA_CAKE_STATS_COBALT_COUNT,
|
||||
TCA_CAKE_STATS_DROPPING,
|
||||
TCA_CAKE_STATS_DROP_NEXT_US,
|
||||
TCA_CAKE_STATS_P_DROP,
|
||||
TCA_CAKE_STATS_BLUE_TIMER_US,
|
||||
__TCA_CAKE_STATS_MAX
|
||||
};
|
||||
#define TCA_CAKE_STATS_MAX (__TCA_CAKE_STATS_MAX - 1)
|
||||
|
||||
enum {
|
||||
__TCA_CAKE_TIN_STATS_INVALID,
|
||||
TCA_CAKE_TIN_STATS_PAD,
|
||||
TCA_CAKE_TIN_STATS_SENT_PACKETS,
|
||||
TCA_CAKE_TIN_STATS_SENT_BYTES64,
|
||||
TCA_CAKE_TIN_STATS_DROPPED_PACKETS,
|
||||
TCA_CAKE_TIN_STATS_DROPPED_BYTES64,
|
||||
TCA_CAKE_TIN_STATS_ACKS_DROPPED_PACKETS,
|
||||
TCA_CAKE_TIN_STATS_ACKS_DROPPED_BYTES64,
|
||||
TCA_CAKE_TIN_STATS_ECN_MARKED_PACKETS,
|
||||
TCA_CAKE_TIN_STATS_ECN_MARKED_BYTES64,
|
||||
TCA_CAKE_TIN_STATS_BACKLOG_PACKETS,
|
||||
TCA_CAKE_TIN_STATS_BACKLOG_BYTES,
|
||||
TCA_CAKE_TIN_STATS_THRESHOLD_RATE64,
|
||||
TCA_CAKE_TIN_STATS_TARGET_US,
|
||||
TCA_CAKE_TIN_STATS_INTERVAL_US,
|
||||
TCA_CAKE_TIN_STATS_WAY_INDIRECT_HITS,
|
||||
TCA_CAKE_TIN_STATS_WAY_MISSES,
|
||||
TCA_CAKE_TIN_STATS_WAY_COLLISIONS,
|
||||
TCA_CAKE_TIN_STATS_PEAK_DELAY_US,
|
||||
TCA_CAKE_TIN_STATS_AVG_DELAY_US,
|
||||
TCA_CAKE_TIN_STATS_BASE_DELAY_US,
|
||||
TCA_CAKE_TIN_STATS_SPARSE_FLOWS,
|
||||
TCA_CAKE_TIN_STATS_BULK_FLOWS,
|
||||
TCA_CAKE_TIN_STATS_UNRESPONSIVE_FLOWS,
|
||||
TCA_CAKE_TIN_STATS_MAX_SKBLEN,
|
||||
TCA_CAKE_TIN_STATS_FLOW_QUANTUM,
|
||||
__TCA_CAKE_TIN_STATS_MAX
|
||||
};
|
||||
#define TCA_CAKE_TIN_STATS_MAX (__TCA_CAKE_TIN_STATS_MAX - 1)
|
||||
#define TC_CAKE_MAX_TINS (8)
|
||||
|
||||
enum {
|
||||
CAKE_FLOW_NONE = 0,
|
||||
CAKE_FLOW_SRC_IP,
|
||||
CAKE_FLOW_DST_IP,
|
||||
CAKE_FLOW_HOSTS, /* = CAKE_FLOW_SRC_IP | CAKE_FLOW_DST_IP */
|
||||
CAKE_FLOW_FLOWS,
|
||||
CAKE_FLOW_DUAL_SRC, /* = CAKE_FLOW_SRC_IP | CAKE_FLOW_FLOWS */
|
||||
CAKE_FLOW_DUAL_DST, /* = CAKE_FLOW_DST_IP | CAKE_FLOW_FLOWS */
|
||||
CAKE_FLOW_TRIPLE, /* = CAKE_FLOW_HOSTS | CAKE_FLOW_FLOWS */
|
||||
CAKE_FLOW_MAX,
|
||||
};
|
||||
|
||||
enum {
|
||||
CAKE_DIFFSERV_DIFFSERV3 = 0,
|
||||
CAKE_DIFFSERV_DIFFSERV4,
|
||||
CAKE_DIFFSERV_DIFFSERV8,
|
||||
CAKE_DIFFSERV_BESTEFFORT,
|
||||
CAKE_DIFFSERV_PRECEDENCE,
|
||||
CAKE_DIFFSERV_MAX
|
||||
};
|
||||
|
||||
enum {
|
||||
CAKE_ACK_NONE = 0,
|
||||
CAKE_ACK_FILTER,
|
||||
CAKE_ACK_AGGRESSIVE,
|
||||
CAKE_ACK_MAX
|
||||
};
|
||||
|
||||
enum {
|
||||
CAKE_ATM_NONE = 0,
|
||||
CAKE_ATM_ATM,
|
||||
CAKE_ATM_PTM,
|
||||
CAKE_ATM_MAX
|
||||
};
|
||||
|
||||
#endif
|
||||
|
@@ -93,8 +93,8 @@ enum {
|
||||
PMU_HEATHROW_BASED, /* PowerBook G3 series */
|
||||
PMU_PADDINGTON_BASED, /* 1999 PowerBook G3 */
|
||||
PMU_KEYLARGO_BASED, /* Core99 motherboard (PMU99) */
|
||||
PMU_68K_V1, /* 68K PMU, version 1 */
|
||||
PMU_68K_V2, /* 68K PMU, version 2 */
|
||||
PMU_68K_V1, /* Unused/deprecated */
|
||||
PMU_68K_V2, /* Unused/deprecated */
|
||||
};
|
||||
|
||||
/* PMU PMU_POWER_EVENTS commands */
|
||||
|
@@ -68,7 +68,7 @@ struct ppp_option_data {
|
||||
struct pppol2tp_ioc_stats {
|
||||
__u16 tunnel_id; /* redundant */
|
||||
__u16 session_id; /* if zero, get tunnel stats */
|
||||
__u32 using_ipsec:1; /* valid only for session_id == 0 */
|
||||
__u32 using_ipsec:1;
|
||||
__aligned_u64 tx_packets;
|
||||
__aligned_u64 tx_bytes;
|
||||
__aligned_u64 tx_errors;
|
||||
|
@@ -1,6 +1,6 @@
|
||||
/* SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR Linux-OpenIB) */
|
||||
/*
|
||||
* Copyright (c) 2008 Oracle. All rights reserved.
|
||||
* Copyright (c) 2008, 2018 Oracle and/or its affiliates. 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
|
||||
@@ -118,7 +118,17 @@
|
||||
#define RDS_INFO_IB_CONNECTIONS 10008
|
||||
#define RDS_INFO_CONNECTION_STATS 10009
|
||||
#define RDS_INFO_IWARP_CONNECTIONS 10010
|
||||
#define RDS_INFO_LAST 10010
|
||||
|
||||
/* PF_RDS6 options */
|
||||
#define RDS6_INFO_CONNECTIONS 10011
|
||||
#define RDS6_INFO_SEND_MESSAGES 10012
|
||||
#define RDS6_INFO_RETRANS_MESSAGES 10013
|
||||
#define RDS6_INFO_RECV_MESSAGES 10014
|
||||
#define RDS6_INFO_SOCKETS 10015
|
||||
#define RDS6_INFO_TCP_SOCKETS 10016
|
||||
#define RDS6_INFO_IB_CONNECTIONS 10017
|
||||
|
||||
#define RDS_INFO_LAST 10017
|
||||
|
||||
struct rds_info_counter {
|
||||
__u8 name[32];
|
||||
@@ -140,6 +150,15 @@ struct rds_info_connection {
|
||||
__u8 flags;
|
||||
} __attribute__((packed));
|
||||
|
||||
struct rds6_info_connection {
|
||||
__u64 next_tx_seq;
|
||||
__u64 next_rx_seq;
|
||||
struct in6_addr laddr;
|
||||
struct in6_addr faddr;
|
||||
__u8 transport[TRANSNAMSIZ]; /* null term ascii */
|
||||
__u8 flags;
|
||||
} __attribute__((packed));
|
||||
|
||||
#define RDS_INFO_MESSAGE_FLAG_ACK 0x01
|
||||
#define RDS_INFO_MESSAGE_FLAG_FAST_ACK 0x02
|
||||
|
||||
@@ -153,6 +172,17 @@ struct rds_info_message {
|
||||
__u8 flags;
|
||||
} __attribute__((packed));
|
||||
|
||||
struct rds6_info_message {
|
||||
__u64 seq;
|
||||
__u32 len;
|
||||
struct in6_addr laddr;
|
||||
struct in6_addr faddr;
|
||||
__be16 lport;
|
||||
__be16 fport;
|
||||
__u8 flags;
|
||||
__u8 tos;
|
||||
} __attribute__((packed));
|
||||
|
||||
struct rds_info_socket {
|
||||
__u32 sndbuf;
|
||||
__be32 bound_addr;
|
||||
@@ -163,6 +193,16 @@ struct rds_info_socket {
|
||||
__u64 inum;
|
||||
} __attribute__((packed));
|
||||
|
||||
struct rds6_info_socket {
|
||||
__u32 sndbuf;
|
||||
struct in6_addr bound_addr;
|
||||
struct in6_addr connected_addr;
|
||||
__be16 bound_port;
|
||||
__be16 connected_port;
|
||||
__u32 rcvbuf;
|
||||
__u64 inum;
|
||||
} __attribute__((packed));
|
||||
|
||||
struct rds_info_tcp_socket {
|
||||
__be32 local_addr;
|
||||
__be16 local_port;
|
||||
@@ -175,6 +215,18 @@ struct rds_info_tcp_socket {
|
||||
__u32 last_seen_una;
|
||||
} __attribute__((packed));
|
||||
|
||||
struct rds6_info_tcp_socket {
|
||||
struct in6_addr local_addr;
|
||||
__be16 local_port;
|
||||
struct in6_addr peer_addr;
|
||||
__be16 peer_port;
|
||||
__u64 hdr_rem;
|
||||
__u64 data_rem;
|
||||
__u32 last_sent_nxt;
|
||||
__u32 last_expected_una;
|
||||
__u32 last_seen_una;
|
||||
} __attribute__((packed));
|
||||
|
||||
#define RDS_IB_GID_LEN 16
|
||||
struct rds_info_rdma_connection {
|
||||
__be32 src_addr;
|
||||
@@ -189,6 +241,19 @@ struct rds_info_rdma_connection {
|
||||
__u32 rdma_mr_size;
|
||||
};
|
||||
|
||||
struct rds6_info_rdma_connection {
|
||||
struct in6_addr src_addr;
|
||||
struct in6_addr dst_addr;
|
||||
__u8 src_gid[RDS_IB_GID_LEN];
|
||||
__u8 dst_gid[RDS_IB_GID_LEN];
|
||||
|
||||
__u32 max_send_wr;
|
||||
__u32 max_recv_wr;
|
||||
__u32 max_send_sge;
|
||||
__u32 rdma_mr_max;
|
||||
__u32 rdma_mr_size;
|
||||
};
|
||||
|
||||
/* RDS message Receive Path Latency points */
|
||||
enum rds_message_rxpath_latency {
|
||||
RDS_MSG_RX_HDR_TO_DGRAM_START = 0,
|
||||
|
@@ -10,13 +10,8 @@
|
||||
* Copyright (c) 2015-2018 Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
|
||||
*/
|
||||
|
||||
#ifdef __KERNEL__
|
||||
# include <linux/types.h>
|
||||
#else
|
||||
# include <stdint.h>
|
||||
#endif
|
||||
|
||||
#include <linux/types_32_64.h>
|
||||
#include <linux/types.h>
|
||||
#include <asm/byteorder.h>
|
||||
|
||||
enum rseq_cpu_id_state {
|
||||
RSEQ_CPU_ID_UNINITIALIZED = -1,
|
||||
@@ -52,10 +47,10 @@ struct rseq_cs {
|
||||
__u32 version;
|
||||
/* enum rseq_cs_flags */
|
||||
__u32 flags;
|
||||
LINUX_FIELD_u32_u64(start_ip);
|
||||
__u64 start_ip;
|
||||
/* Offset from start_ip. */
|
||||
LINUX_FIELD_u32_u64(post_commit_offset);
|
||||
LINUX_FIELD_u32_u64(abort_ip);
|
||||
__u64 post_commit_offset;
|
||||
__u64 abort_ip;
|
||||
} __attribute__((aligned(4 * sizeof(__u64))));
|
||||
|
||||
/*
|
||||
@@ -67,28 +62,30 @@ struct rseq_cs {
|
||||
struct rseq {
|
||||
/*
|
||||
* Restartable sequences cpu_id_start field. Updated by the
|
||||
* kernel, and read by user-space with single-copy atomicity
|
||||
* semantics. Aligned on 32-bit. Always contains a value in the
|
||||
* range of possible CPUs, although the value may not be the
|
||||
* actual current CPU (e.g. if rseq is not initialized). This
|
||||
* CPU number value should always be compared against the value
|
||||
* of the cpu_id field before performing a rseq commit or
|
||||
* returning a value read from a data structure indexed using
|
||||
* the cpu_id_start value.
|
||||
* kernel. Read by user-space with single-copy atomicity
|
||||
* semantics. This field should only be read by the thread which
|
||||
* registered this data structure. Aligned on 32-bit. Always
|
||||
* contains a value in the range of possible CPUs, although the
|
||||
* value may not be the actual current CPU (e.g. if rseq is not
|
||||
* initialized). This CPU number value should always be compared
|
||||
* against the value of the cpu_id field before performing a rseq
|
||||
* commit or returning a value read from a data structure indexed
|
||||
* using the cpu_id_start value.
|
||||
*/
|
||||
__u32 cpu_id_start;
|
||||
/*
|
||||
* Restartable sequences cpu_id field. Updated by the kernel,
|
||||
* and read by user-space with single-copy atomicity semantics.
|
||||
* Aligned on 32-bit. Values RSEQ_CPU_ID_UNINITIALIZED and
|
||||
* RSEQ_CPU_ID_REGISTRATION_FAILED have a special semantic: the
|
||||
* former means "rseq uninitialized", and latter means "rseq
|
||||
* initialization failed". This value is meant to be read within
|
||||
* rseq critical sections and compared with the cpu_id_start
|
||||
* value previously read, before performing the commit instruction,
|
||||
* or read and compared with the cpu_id_start value before returning
|
||||
* a value loaded from a data structure indexed using the
|
||||
* cpu_id_start value.
|
||||
* Restartable sequences cpu_id field. Updated by the kernel.
|
||||
* Read by user-space with single-copy atomicity semantics. This
|
||||
* field should only be read by the thread which registered this
|
||||
* data structure. Aligned on 32-bit. Values
|
||||
* RSEQ_CPU_ID_UNINITIALIZED and RSEQ_CPU_ID_REGISTRATION_FAILED
|
||||
* have a special semantic: the former means "rseq uninitialized",
|
||||
* and latter means "rseq initialization failed". This value is
|
||||
* meant to be read within rseq critical sections and compared
|
||||
* with the cpu_id_start value previously read, before performing
|
||||
* the commit instruction, or read and compared with the
|
||||
* cpu_id_start value before returning a value loaded from a data
|
||||
* structure indexed using the cpu_id_start value.
|
||||
*/
|
||||
__u32 cpu_id;
|
||||
/*
|
||||
@@ -105,27 +102,44 @@ struct rseq {
|
||||
* targeted by the rseq_cs. Also needs to be set to NULL by user-space
|
||||
* before reclaiming memory that contains the targeted struct rseq_cs.
|
||||
*
|
||||
* Read and set by the kernel with single-copy atomicity semantics.
|
||||
* Set by user-space with single-copy atomicity semantics. Aligned
|
||||
* on 64-bit.
|
||||
* Read and set by the kernel. Set by user-space with single-copy
|
||||
* atomicity semantics. This field should only be updated by the
|
||||
* thread which registered this data structure. Aligned on 64-bit.
|
||||
*/
|
||||
LINUX_FIELD_u32_u64(rseq_cs);
|
||||
union {
|
||||
__u64 ptr64;
|
||||
#ifdef __LP64__
|
||||
__u64 ptr;
|
||||
#else
|
||||
struct {
|
||||
#if (defined(__BYTE_ORDER) && (__BYTE_ORDER == __BIG_ENDIAN)) || defined(__BIG_ENDIAN)
|
||||
__u32 padding; /* Initialized to zero. */
|
||||
__u32 ptr32;
|
||||
#else /* LITTLE */
|
||||
__u32 ptr32;
|
||||
__u32 padding; /* Initialized to zero. */
|
||||
#endif /* ENDIAN */
|
||||
} ptr;
|
||||
#endif
|
||||
} rseq_cs;
|
||||
|
||||
/*
|
||||
* - RSEQ_DISABLE flag:
|
||||
* Restartable sequences flags field.
|
||||
*
|
||||
* This field should only be updated by the thread which
|
||||
* registered this data structure. Read by the kernel.
|
||||
* Mainly used for single-stepping through rseq critical sections
|
||||
* with debuggers.
|
||||
*
|
||||
* Fallback fast-track flag for single-stepping.
|
||||
* Set by user-space if lack of progress is detected.
|
||||
* Cleared by user-space after rseq finish.
|
||||
* Read by the kernel.
|
||||
* - RSEQ_CS_FLAG_NO_RESTART_ON_PREEMPT
|
||||
* Inhibit instruction sequence block restart and event
|
||||
* counter increment on preemption for this thread.
|
||||
* Inhibit instruction sequence block restart on preemption
|
||||
* for this thread.
|
||||
* - RSEQ_CS_FLAG_NO_RESTART_ON_SIGNAL
|
||||
* Inhibit instruction sequence block restart and event
|
||||
* counter increment on signal delivery for this thread.
|
||||
* Inhibit instruction sequence block restart on signal
|
||||
* delivery for this thread.
|
||||
* - RSEQ_CS_FLAG_NO_RESTART_ON_MIGRATE
|
||||
* Inhibit instruction sequence block restart and event
|
||||
* counter increment on migration for this thread.
|
||||
* Inhibit instruction sequence block restart on migration for
|
||||
* this thread.
|
||||
*/
|
||||
__u32 flags;
|
||||
} __attribute__((aligned(4 * sizeof(__u64))));
|
||||
|
@@ -150,6 +150,13 @@ enum {
|
||||
RTM_NEWCACHEREPORT = 96,
|
||||
#define RTM_NEWCACHEREPORT RTM_NEWCACHEREPORT
|
||||
|
||||
RTM_NEWCHAIN = 100,
|
||||
#define RTM_NEWCHAIN RTM_NEWCHAIN
|
||||
RTM_DELCHAIN,
|
||||
#define RTM_DELCHAIN RTM_DELCHAIN
|
||||
RTM_GETCHAIN,
|
||||
#define RTM_GETCHAIN RTM_GETCHAIN
|
||||
|
||||
__RTM_MAX,
|
||||
#define RTM_MAX (((__RTM_MAX + 3) & ~3) - 1)
|
||||
};
|
||||
|
@@ -100,6 +100,7 @@ typedef __s32 sctp_assoc_t;
|
||||
#define SCTP_RECVNXTINFO 33
|
||||
#define SCTP_DEFAULT_SNDINFO 34
|
||||
#define SCTP_AUTH_DEACTIVATE_KEY 35
|
||||
#define SCTP_REUSE_PORT 36
|
||||
|
||||
/* Internal Socket Options. Some of the sctp library functions are
|
||||
* implemented using these socket options.
|
||||
@@ -762,6 +763,8 @@ enum sctp_spp_flags {
|
||||
SPP_SACKDELAY_DISABLE = 1<<6, /*Disable SACK*/
|
||||
SPP_SACKDELAY = SPP_SACKDELAY_ENABLE | SPP_SACKDELAY_DISABLE,
|
||||
SPP_HB_TIME_IS_ZERO = 1<<7, /* Set HB delay to 0 */
|
||||
SPP_IPV6_FLOWLABEL = 1<<8,
|
||||
SPP_DSCP = 1<<9,
|
||||
};
|
||||
|
||||
struct sctp_paddrparams {
|
||||
@@ -772,6 +775,8 @@ struct sctp_paddrparams {
|
||||
__u32 spp_pathmtu;
|
||||
__u32 spp_sackdelay;
|
||||
__u32 spp_flags;
|
||||
__u32 spp_ipv6_flowlabel;
|
||||
__u8 spp_dscp;
|
||||
} __attribute__((packed, aligned(4)));
|
||||
|
||||
/*
|
||||
|
@@ -20,7 +20,7 @@ struct smc_diag_req {
|
||||
struct smc_diag_msg {
|
||||
__u8 diag_family;
|
||||
__u8 diag_state;
|
||||
__u8 diag_fallback;
|
||||
__u8 diag_mode;
|
||||
__u8 diag_shutdown;
|
||||
struct inet_diag_sockid id;
|
||||
|
||||
@@ -28,6 +28,13 @@ struct smc_diag_msg {
|
||||
__u64 diag_inode;
|
||||
};
|
||||
|
||||
/* Mode of a connection */
|
||||
enum {
|
||||
SMC_DIAG_MODE_SMCR,
|
||||
SMC_DIAG_MODE_FALLBACK_TCP,
|
||||
SMC_DIAG_MODE_SMCD,
|
||||
};
|
||||
|
||||
/* Extensions */
|
||||
|
||||
enum {
|
||||
@@ -35,6 +42,8 @@ enum {
|
||||
SMC_DIAG_CONNINFO,
|
||||
SMC_DIAG_LGRINFO,
|
||||
SMC_DIAG_SHUTDOWN,
|
||||
SMC_DIAG_DMBINFO,
|
||||
SMC_DIAG_FALLBACK,
|
||||
__SMC_DIAG_MAX,
|
||||
};
|
||||
|
||||
@@ -83,4 +92,18 @@ struct smc_diag_lgrinfo {
|
||||
struct smc_diag_linkinfo lnk[1];
|
||||
__u8 role;
|
||||
};
|
||||
|
||||
struct smc_diag_fallback {
|
||||
__u32 reason;
|
||||
__u32 peer_diagnosis;
|
||||
};
|
||||
|
||||
struct smcd_diag_dmbinfo { /* SMC-D Socket internals */
|
||||
__u32 linkid; /* Link identifier */
|
||||
__u64 peer_gid; /* Peer GID */
|
||||
__u64 my_gid; /* My GID */
|
||||
__u64 token; /* Token of DMB */
|
||||
__u64 peer_token; /* Token of remote DMBE */
|
||||
};
|
||||
|
||||
#endif /* _UAPI_SMC_DIAG_H_ */
|
||||
|
@@ -56,6 +56,7 @@ enum
|
||||
IPSTATS_MIB_ECT1PKTS, /* InECT1Pkts */
|
||||
IPSTATS_MIB_ECT0PKTS, /* InECT0Pkts */
|
||||
IPSTATS_MIB_CEPKTS, /* InCEPkts */
|
||||
IPSTATS_MIB_REASM_OVERLAPS, /* ReasmOverlaps */
|
||||
__IPSTATS_MIB_MAX
|
||||
};
|
||||
|
||||
@@ -279,6 +280,8 @@ enum
|
||||
LINUX_MIB_TCPDELIVERED, /* TCPDelivered */
|
||||
LINUX_MIB_TCPDELIVEREDCE, /* TCPDeliveredCE */
|
||||
LINUX_MIB_TCPACKCOMPRESSED, /* TCPAckCompressed */
|
||||
LINUX_MIB_TCPZEROWINDOWDROP, /* TCPZeroWindowDrop */
|
||||
LINUX_MIB_TCPRCVQDROP, /* TCPRcvQDrop */
|
||||
__LINUX_MIB_MAX
|
||||
};
|
||||
|
||||
|
@@ -575,7 +575,8 @@ enum {
|
||||
|
||||
/* /proc/sys/net/ipv6/icmp */
|
||||
enum {
|
||||
NET_IPV6_ICMP_RATELIMIT=1
|
||||
NET_IPV6_ICMP_RATELIMIT = 1,
|
||||
NET_IPV6_ICMP_ECHO_IGNORE_ALL = 2
|
||||
};
|
||||
|
||||
/* /proc/sys/net/<protocol>/neigh/<dev> */
|
||||
|
@@ -17,13 +17,15 @@ enum {
|
||||
TCA_PEDIT_KEY_EX,
|
||||
__TCA_PEDIT_MAX
|
||||
};
|
||||
|
||||
#define TCA_PEDIT_MAX (__TCA_PEDIT_MAX - 1)
|
||||
|
||||
|
||||
enum {
|
||||
TCA_PEDIT_KEY_EX_HTYPE = 1,
|
||||
TCA_PEDIT_KEY_EX_CMD = 2,
|
||||
__TCA_PEDIT_KEY_EX_MAX
|
||||
};
|
||||
|
||||
#define TCA_PEDIT_KEY_EX_MAX (__TCA_PEDIT_KEY_EX_MAX - 1)
|
||||
|
||||
/* TCA_PEDIT_KEY_EX_HDR_TYPE_NETWROK is a special case for legacy users. It
|
||||
@@ -38,6 +40,7 @@ enum pedit_header_type {
|
||||
TCA_PEDIT_KEY_EX_HDR_TYPE_UDP = 5,
|
||||
__PEDIT_HDR_TYPE_MAX,
|
||||
};
|
||||
|
||||
#define TCA_PEDIT_HDR_TYPE_MAX (__PEDIT_HDR_TYPE_MAX - 1)
|
||||
|
||||
enum pedit_cmd {
|
||||
@@ -45,6 +48,7 @@ enum pedit_cmd {
|
||||
TCA_PEDIT_KEY_EX_CMD_ADD = 1,
|
||||
__PEDIT_CMD_MAX,
|
||||
};
|
||||
|
||||
#define TCA_PEDIT_CMD_MAX (__PEDIT_CMD_MAX - 1)
|
||||
|
||||
struct tc_pedit_key {
|
||||
@@ -55,13 +59,14 @@ struct tc_pedit_key {
|
||||
__u32 offmask;
|
||||
__u32 shift;
|
||||
};
|
||||
|
||||
|
||||
struct tc_pedit_sel {
|
||||
tc_gen;
|
||||
unsigned char nkeys;
|
||||
unsigned char flags;
|
||||
struct tc_pedit_key keys[0];
|
||||
};
|
||||
|
||||
#define tc_pedit tc_pedit_sel
|
||||
|
||||
#endif
|
||||
|
@@ -30,6 +30,7 @@
|
||||
#define SKBEDIT_F_MARK 0x4
|
||||
#define SKBEDIT_F_PTYPE 0x8
|
||||
#define SKBEDIT_F_MASK 0x10
|
||||
#define SKBEDIT_F_INHERITDSFIELD 0x20
|
||||
|
||||
struct tc_skbedit {
|
||||
tc_gen;
|
||||
@@ -45,6 +46,7 @@ enum {
|
||||
TCA_SKBEDIT_PAD,
|
||||
TCA_SKBEDIT_PTYPE,
|
||||
TCA_SKBEDIT_MASK,
|
||||
TCA_SKBEDIT_FLAGS,
|
||||
__TCA_SKBEDIT_MAX
|
||||
};
|
||||
#define TCA_SKBEDIT_MAX (__TCA_SKBEDIT_MAX - 1)
|
||||
|
@@ -36,9 +36,37 @@ enum {
|
||||
TCA_TUNNEL_KEY_PAD,
|
||||
TCA_TUNNEL_KEY_ENC_DST_PORT, /* be16 */
|
||||
TCA_TUNNEL_KEY_NO_CSUM, /* u8 */
|
||||
TCA_TUNNEL_KEY_ENC_OPTS, /* Nested TCA_TUNNEL_KEY_ENC_OPTS_
|
||||
* attributes
|
||||
*/
|
||||
TCA_TUNNEL_KEY_ENC_TOS, /* u8 */
|
||||
TCA_TUNNEL_KEY_ENC_TTL, /* u8 */
|
||||
__TCA_TUNNEL_KEY_MAX,
|
||||
};
|
||||
|
||||
#define TCA_TUNNEL_KEY_MAX (__TCA_TUNNEL_KEY_MAX - 1)
|
||||
|
||||
enum {
|
||||
TCA_TUNNEL_KEY_ENC_OPTS_UNSPEC,
|
||||
TCA_TUNNEL_KEY_ENC_OPTS_GENEVE, /* Nested
|
||||
* TCA_TUNNEL_KEY_ENC_OPTS_
|
||||
* attributes
|
||||
*/
|
||||
__TCA_TUNNEL_KEY_ENC_OPTS_MAX,
|
||||
};
|
||||
|
||||
#define TCA_TUNNEL_KEY_ENC_OPTS_MAX (__TCA_TUNNEL_KEY_ENC_OPTS_MAX - 1)
|
||||
|
||||
enum {
|
||||
TCA_TUNNEL_KEY_ENC_OPT_GENEVE_UNSPEC,
|
||||
TCA_TUNNEL_KEY_ENC_OPT_GENEVE_CLASS, /* be16 */
|
||||
TCA_TUNNEL_KEY_ENC_OPT_GENEVE_TYPE, /* u8 */
|
||||
TCA_TUNNEL_KEY_ENC_OPT_GENEVE_DATA, /* 4 to 128 bytes */
|
||||
|
||||
__TCA_TUNNEL_KEY_ENC_OPT_GENEVE_MAX,
|
||||
};
|
||||
|
||||
#define TCA_TUNNEL_KEY_ENC_OPT_GENEVE_MAX \
|
||||
(__TCA_TUNNEL_KEY_ENC_OPT_GENEVE_MAX - 1)
|
||||
|
||||
#endif
|
||||
|
@@ -127,6 +127,10 @@ enum {
|
||||
|
||||
#define TCP_CM_INQ TCP_INQ
|
||||
|
||||
#define TCP_REPAIR_ON 1
|
||||
#define TCP_REPAIR_OFF 0
|
||||
#define TCP_REPAIR_OFF_NO_WP -1 /* Turn off without window probes */
|
||||
|
||||
struct tcp_repair_opt {
|
||||
__u32 opt_code;
|
||||
__u32 opt_val;
|
||||
@@ -231,6 +235,11 @@ struct tcp_info {
|
||||
|
||||
__u32 tcpi_delivered;
|
||||
__u32 tcpi_delivered_ce;
|
||||
|
||||
__u64 tcpi_bytes_sent; /* RFC4898 tcpEStatsPerfHCDataOctetsOut */
|
||||
__u64 tcpi_bytes_retrans; /* RFC4898 tcpEStatsPerfOctetsRetrans */
|
||||
__u32 tcpi_dsack_dups; /* RFC4898 tcpEStatsStackDSACKDups */
|
||||
__u32 tcpi_reord_seen; /* reordering events seen */
|
||||
};
|
||||
|
||||
/* netlink attributes types for SCM_TIMESTAMPING_OPT_STATS */
|
||||
@@ -253,7 +262,10 @@ enum {
|
||||
TCP_NLA_SND_SSTHRESH, /* Slow start size threshold */
|
||||
TCP_NLA_DELIVERED, /* Data pkts delivered incl. out-of-order */
|
||||
TCP_NLA_DELIVERED_CE, /* Like above but only ones w/ CE marks */
|
||||
|
||||
TCP_NLA_BYTES_SENT, /* Data bytes sent including retransmission */
|
||||
TCP_NLA_BYTES_RETRANS, /* Data bytes retransmitted */
|
||||
TCP_NLA_DSACK_DUPS, /* DSACK blocks received */
|
||||
TCP_NLA_REORD_SEEN, /* reordering events seen */
|
||||
};
|
||||
|
||||
/* for TCP_MD5SIG socket option */
|
||||
|
@@ -49,6 +49,13 @@ struct __kernel_timespec {
|
||||
};
|
||||
#endif
|
||||
|
||||
#ifndef __kernel_itimerspec
|
||||
struct __kernel_itimerspec {
|
||||
struct __kernel_timespec it_interval; /* timer period */
|
||||
struct __kernel_timespec it_value; /* timer expiration */
|
||||
};
|
||||
#endif
|
||||
|
||||
/*
|
||||
* legacy timeval structure, only embedded in structures that
|
||||
* traditionally used 'timeval' to pass time intervals (not absolute
|
||||
|
@@ -121,6 +121,7 @@ enum {
|
||||
TIPC_NLA_SOCK_TIPC_STATE, /* u32 */
|
||||
TIPC_NLA_SOCK_COOKIE, /* u64 */
|
||||
TIPC_NLA_SOCK_PAD, /* flag */
|
||||
TIPC_NLA_SOCK_GROUP, /* nest */
|
||||
|
||||
__TIPC_NLA_SOCK_MAX,
|
||||
TIPC_NLA_SOCK_MAX = __TIPC_NLA_SOCK_MAX - 1
|
||||
@@ -233,6 +234,19 @@ enum {
|
||||
TIPC_NLA_MON_PEER_MAX = __TIPC_NLA_MON_PEER_MAX - 1
|
||||
};
|
||||
|
||||
/* Nest, socket group info */
|
||||
enum {
|
||||
TIPC_NLA_SOCK_GROUP_ID, /* u32 */
|
||||
TIPC_NLA_SOCK_GROUP_OPEN, /* flag */
|
||||
TIPC_NLA_SOCK_GROUP_NODE_SCOPE, /* flag */
|
||||
TIPC_NLA_SOCK_GROUP_CLUSTER_SCOPE, /* flag */
|
||||
TIPC_NLA_SOCK_GROUP_INSTANCE, /* u32 */
|
||||
TIPC_NLA_SOCK_GROUP_BC_SEND_NEXT, /* u32 */
|
||||
|
||||
__TIPC_NLA_SOCK_GROUP_MAX,
|
||||
TIPC_NLA_SOCK_GROUP_MAX = __TIPC_NLA_SOCK_GROUP_MAX - 1
|
||||
};
|
||||
|
||||
/* Nest, connection info */
|
||||
enum {
|
||||
TIPC_NLA_CON_UNSPEC,
|
||||
|
@@ -1,50 +0,0 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */
|
||||
#ifndef _UAPI_LINUX_TYPES_32_64_H
|
||||
#define _UAPI_LINUX_TYPES_32_64_H
|
||||
|
||||
/*
|
||||
* linux/types_32_64.h
|
||||
*
|
||||
* Integer type declaration for pointers across 32-bit and 64-bit systems.
|
||||
*
|
||||
* Copyright (c) 2015-2018 Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
|
||||
*/
|
||||
|
||||
#ifdef __KERNEL__
|
||||
# include <linux/types.h>
|
||||
#else
|
||||
# include <stdint.h>
|
||||
#endif
|
||||
|
||||
#include <asm/byteorder.h>
|
||||
|
||||
#ifdef __BYTE_ORDER
|
||||
# if (__BYTE_ORDER == __BIG_ENDIAN)
|
||||
# define LINUX_BYTE_ORDER_BIG_ENDIAN
|
||||
# else
|
||||
# define LINUX_BYTE_ORDER_LITTLE_ENDIAN
|
||||
# endif
|
||||
#else
|
||||
# ifdef __BIG_ENDIAN
|
||||
# define LINUX_BYTE_ORDER_BIG_ENDIAN
|
||||
# else
|
||||
# define LINUX_BYTE_ORDER_LITTLE_ENDIAN
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#ifdef __LP64__
|
||||
# define LINUX_FIELD_u32_u64(field) __u64 field
|
||||
# define LINUX_FIELD_u32_u64_INIT_ONSTACK(field, v) field = (intptr_t)v
|
||||
#else
|
||||
# ifdef LINUX_BYTE_ORDER_BIG_ENDIAN
|
||||
# define LINUX_FIELD_u32_u64(field) __u32 field ## _padding, field
|
||||
# define LINUX_FIELD_u32_u64_INIT_ONSTACK(field, v) \
|
||||
field ## _padding = 0, field = (intptr_t)v
|
||||
# else
|
||||
# define LINUX_FIELD_u32_u64(field) __u32 field, field ## _padding
|
||||
# define LINUX_FIELD_u32_u64_INIT_ONSTACK(field, v) \
|
||||
field = (intptr_t)v, field ## _padding = 0
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#endif /* _UAPI_LINUX_TYPES_32_64_H */
|
@@ -390,33 +390,64 @@ static inline __u8 uac_processing_unit_iChannelNames(struct uac_processing_unit_
|
||||
static inline __u8 uac_processing_unit_bControlSize(struct uac_processing_unit_descriptor *desc,
|
||||
int protocol)
|
||||
{
|
||||
return (protocol == UAC_VERSION_1) ?
|
||||
desc->baSourceID[desc->bNrInPins + 4] :
|
||||
2; /* in UAC2, this value is constant */
|
||||
switch (protocol) {
|
||||
case UAC_VERSION_1:
|
||||
return desc->baSourceID[desc->bNrInPins + 4];
|
||||
case UAC_VERSION_2:
|
||||
return 2; /* in UAC2, this value is constant */
|
||||
case UAC_VERSION_3:
|
||||
return 4; /* in UAC3, this value is constant */
|
||||
default:
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
static inline __u8 *uac_processing_unit_bmControls(struct uac_processing_unit_descriptor *desc,
|
||||
int protocol)
|
||||
{
|
||||
return (protocol == UAC_VERSION_1) ?
|
||||
&desc->baSourceID[desc->bNrInPins + 5] :
|
||||
&desc->baSourceID[desc->bNrInPins + 6];
|
||||
switch (protocol) {
|
||||
case UAC_VERSION_1:
|
||||
return &desc->baSourceID[desc->bNrInPins + 5];
|
||||
case UAC_VERSION_2:
|
||||
return &desc->baSourceID[desc->bNrInPins + 6];
|
||||
case UAC_VERSION_3:
|
||||
return &desc->baSourceID[desc->bNrInPins + 2];
|
||||
default:
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
|
||||
static inline __u8 uac_processing_unit_iProcessing(struct uac_processing_unit_descriptor *desc,
|
||||
int protocol)
|
||||
{
|
||||
__u8 control_size = uac_processing_unit_bControlSize(desc, protocol);
|
||||
return *(uac_processing_unit_bmControls(desc, protocol)
|
||||
+ control_size);
|
||||
|
||||
switch (protocol) {
|
||||
case UAC_VERSION_1:
|
||||
case UAC_VERSION_2:
|
||||
default:
|
||||
return *(uac_processing_unit_bmControls(desc, protocol)
|
||||
+ control_size);
|
||||
case UAC_VERSION_3:
|
||||
return 0; /* UAC3 does not have this field */
|
||||
}
|
||||
}
|
||||
|
||||
static inline __u8 *uac_processing_unit_specific(struct uac_processing_unit_descriptor *desc,
|
||||
int protocol)
|
||||
{
|
||||
__u8 control_size = uac_processing_unit_bControlSize(desc, protocol);
|
||||
return uac_processing_unit_bmControls(desc, protocol)
|
||||
|
||||
switch (protocol) {
|
||||
case UAC_VERSION_1:
|
||||
case UAC_VERSION_2:
|
||||
default:
|
||||
return uac_processing_unit_bmControls(desc, protocol)
|
||||
+ control_size + 1;
|
||||
case UAC_VERSION_3:
|
||||
return uac_processing_unit_bmControls(desc, protocol)
|
||||
+ control_size;
|
||||
}
|
||||
}
|
||||
|
||||
/* 4.5.2 Class-Specific AS Interface Descriptor */
|
||||
|
39
include/uapi/linux/usb/g_uvc.h
Normal file
39
include/uapi/linux/usb/g_uvc.h
Normal file
@@ -0,0 +1,39 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0+ */
|
||||
/*
|
||||
* g_uvc.h -- USB Video Class Gadget driver API
|
||||
*
|
||||
* Copyright (C) 2009-2010 Laurent Pinchart <laurent.pinchart@ideasonboard.com>
|
||||
*/
|
||||
|
||||
#ifndef __LINUX_USB_G_UVC_H
|
||||
#define __LINUX_USB_G_UVC_H
|
||||
|
||||
#include <linux/ioctl.h>
|
||||
#include <linux/types.h>
|
||||
#include <linux/usb/ch9.h>
|
||||
|
||||
#define UVC_EVENT_FIRST (V4L2_EVENT_PRIVATE_START + 0)
|
||||
#define UVC_EVENT_CONNECT (V4L2_EVENT_PRIVATE_START + 0)
|
||||
#define UVC_EVENT_DISCONNECT (V4L2_EVENT_PRIVATE_START + 1)
|
||||
#define UVC_EVENT_STREAMON (V4L2_EVENT_PRIVATE_START + 2)
|
||||
#define UVC_EVENT_STREAMOFF (V4L2_EVENT_PRIVATE_START + 3)
|
||||
#define UVC_EVENT_SETUP (V4L2_EVENT_PRIVATE_START + 4)
|
||||
#define UVC_EVENT_DATA (V4L2_EVENT_PRIVATE_START + 5)
|
||||
#define UVC_EVENT_LAST (V4L2_EVENT_PRIVATE_START + 5)
|
||||
|
||||
struct uvc_request_data {
|
||||
__s32 length;
|
||||
__u8 data[60];
|
||||
};
|
||||
|
||||
struct uvc_event {
|
||||
union {
|
||||
enum usb_device_speed speed;
|
||||
struct usb_ctrlrequest req;
|
||||
struct uvc_request_data data;
|
||||
};
|
||||
};
|
||||
|
||||
#define UVCIOC_SEND_RESPONSE _IOW('U', 1, struct uvc_request_data)
|
||||
|
||||
#endif /* __LINUX_USB_G_UVC_H */
|
@@ -16,6 +16,8 @@
|
||||
#ifndef __LINUX_USB_TMC_H
|
||||
#define __LINUX_USB_TMC_H
|
||||
|
||||
#include <linux/types.h> /* __u8 etc */
|
||||
|
||||
/* USB TMC status values */
|
||||
#define USBTMC_STATUS_SUCCESS 0x01
|
||||
#define USBTMC_STATUS_PENDING 0x02
|
||||
@@ -38,6 +40,11 @@
|
||||
#define USBTMC488_REQUEST_GOTO_LOCAL 161
|
||||
#define USBTMC488_REQUEST_LOCAL_LOCKOUT 162
|
||||
|
||||
struct usbtmc_termchar {
|
||||
__u8 term_char;
|
||||
__u8 term_char_enabled;
|
||||
} __attribute__ ((packed));
|
||||
|
||||
/* Request values for USBTMC driver's ioctl entry point */
|
||||
#define USBTMC_IOC_NR 91
|
||||
#define USBTMC_IOCTL_INDICATOR_PULSE _IO(USBTMC_IOC_NR, 1)
|
||||
@@ -46,11 +53,17 @@
|
||||
#define USBTMC_IOCTL_ABORT_BULK_IN _IO(USBTMC_IOC_NR, 4)
|
||||
#define USBTMC_IOCTL_CLEAR_OUT_HALT _IO(USBTMC_IOC_NR, 6)
|
||||
#define USBTMC_IOCTL_CLEAR_IN_HALT _IO(USBTMC_IOC_NR, 7)
|
||||
#define USBTMC_IOCTL_GET_TIMEOUT _IOR(USBTMC_IOC_NR, 9, __u32)
|
||||
#define USBTMC_IOCTL_SET_TIMEOUT _IOW(USBTMC_IOC_NR, 10, __u32)
|
||||
#define USBTMC_IOCTL_EOM_ENABLE _IOW(USBTMC_IOC_NR, 11, __u8)
|
||||
#define USBTMC_IOCTL_CONFIG_TERMCHAR _IOW(USBTMC_IOC_NR, 12, struct usbtmc_termchar)
|
||||
|
||||
#define USBTMC488_IOCTL_GET_CAPS _IOR(USBTMC_IOC_NR, 17, unsigned char)
|
||||
#define USBTMC488_IOCTL_READ_STB _IOR(USBTMC_IOC_NR, 18, unsigned char)
|
||||
#define USBTMC488_IOCTL_REN_CONTROL _IOW(USBTMC_IOC_NR, 19, unsigned char)
|
||||
#define USBTMC488_IOCTL_GOTO_LOCAL _IO(USBTMC_IOC_NR, 20)
|
||||
#define USBTMC488_IOCTL_LOCAL_LOCKOUT _IO(USBTMC_IOC_NR, 21)
|
||||
#define USBTMC488_IOCTL_TRIGGER _IO(USBTMC_IOC_NR, 22)
|
||||
|
||||
/* Driver encoded usb488 capabilities */
|
||||
#define USBTMC488_CAPABILITY_TRIGGER 1
|
||||
|
@@ -28,6 +28,8 @@
|
||||
#define UVC_CTRL_FLAG_RESTORE (1 << 6)
|
||||
/* Control can be updated by the camera. */
|
||||
#define UVC_CTRL_FLAG_AUTO_UPDATE (1 << 7)
|
||||
/* Control supports asynchronous reporting */
|
||||
#define UVC_CTRL_FLAG_ASYNCHRONOUS (1 << 8)
|
||||
|
||||
#define UVC_CTRL_FLAG_GET_RANGE \
|
||||
(UVC_CTRL_FLAG_GET_CUR | UVC_CTRL_FLAG_GET_MIN | \
|
||||
|
@@ -188,7 +188,7 @@ enum v4l2_colorfx {
|
||||
|
||||
/* The base for the imx driver controls.
|
||||
* We reserve 16 controls for this driver. */
|
||||
#define V4L2_CID_USER_IMX_BASE (V4L2_CID_USER_BASE + 0x1090)
|
||||
#define V4L2_CID_USER_IMX_BASE (V4L2_CID_USER_BASE + 0x10b0)
|
||||
|
||||
/* MPEG-class control IDs */
|
||||
/* The MPEG controls are applicable to all codec controls
|
||||
@@ -587,7 +587,23 @@ enum v4l2_vp8_golden_frame_sel {
|
||||
#define V4L2_CID_MPEG_VIDEO_VPX_MAX_QP (V4L2_CID_MPEG_BASE+508)
|
||||
#define V4L2_CID_MPEG_VIDEO_VPX_I_FRAME_QP (V4L2_CID_MPEG_BASE+509)
|
||||
#define V4L2_CID_MPEG_VIDEO_VPX_P_FRAME_QP (V4L2_CID_MPEG_BASE+510)
|
||||
#define V4L2_CID_MPEG_VIDEO_VPX_PROFILE (V4L2_CID_MPEG_BASE+511)
|
||||
|
||||
#define V4L2_CID_MPEG_VIDEO_VP8_PROFILE (V4L2_CID_MPEG_BASE+511)
|
||||
enum v4l2_mpeg_video_vp8_profile {
|
||||
V4L2_MPEG_VIDEO_VP8_PROFILE_0 = 0,
|
||||
V4L2_MPEG_VIDEO_VP8_PROFILE_1 = 1,
|
||||
V4L2_MPEG_VIDEO_VP8_PROFILE_2 = 2,
|
||||
V4L2_MPEG_VIDEO_VP8_PROFILE_3 = 3,
|
||||
};
|
||||
/* Deprecated alias for compatibility reasons. */
|
||||
#define V4L2_CID_MPEG_VIDEO_VPX_PROFILE V4L2_CID_MPEG_VIDEO_VP8_PROFILE
|
||||
#define V4L2_CID_MPEG_VIDEO_VP9_PROFILE (V4L2_CID_MPEG_BASE+512)
|
||||
enum v4l2_mpeg_video_vp9_profile {
|
||||
V4L2_MPEG_VIDEO_VP9_PROFILE_0 = 0,
|
||||
V4L2_MPEG_VIDEO_VP9_PROFILE_1 = 1,
|
||||
V4L2_MPEG_VIDEO_VP9_PROFILE_2 = 2,
|
||||
V4L2_MPEG_VIDEO_VP9_PROFILE_3 = 3,
|
||||
};
|
||||
|
||||
/* CIDs for HEVC encoding. */
|
||||
|
||||
|
@@ -170,8 +170,12 @@ struct v4l2_subdev_selection {
|
||||
#define VIDIOC_SUBDEV_G_SELECTION _IOWR('V', 61, struct v4l2_subdev_selection)
|
||||
#define VIDIOC_SUBDEV_S_SELECTION _IOWR('V', 62, struct v4l2_subdev_selection)
|
||||
/* The following ioctls are identical to the ioctls in videodev2.h */
|
||||
#define VIDIOC_SUBDEV_G_STD _IOR('V', 23, v4l2_std_id)
|
||||
#define VIDIOC_SUBDEV_S_STD _IOW('V', 24, v4l2_std_id)
|
||||
#define VIDIOC_SUBDEV_ENUMSTD _IOWR('V', 25, struct v4l2_standard)
|
||||
#define VIDIOC_SUBDEV_G_EDID _IOWR('V', 40, struct v4l2_edid)
|
||||
#define VIDIOC_SUBDEV_S_EDID _IOWR('V', 41, struct v4l2_edid)
|
||||
#define VIDIOC_SUBDEV_QUERYSTD _IOR('V', 63, v4l2_std_id)
|
||||
#define VIDIOC_SUBDEV_S_DV_TIMINGS _IOWR('V', 87, struct v4l2_dv_timings)
|
||||
#define VIDIOC_SUBDEV_G_DV_TIMINGS _IOWR('V', 88, struct v4l2_dv_timings)
|
||||
#define VIDIOC_SUBDEV_ENUM_DV_TIMINGS _IOWR('V', 98, struct v4l2_enum_dv_timings)
|
||||
|
@@ -65,6 +65,7 @@ struct vhost_iotlb_msg {
|
||||
};
|
||||
|
||||
#define VHOST_IOTLB_MSG 0x1
|
||||
#define VHOST_IOTLB_MSG_V2 0x2
|
||||
|
||||
struct vhost_msg {
|
||||
int type;
|
||||
@@ -74,6 +75,15 @@ struct vhost_msg {
|
||||
};
|
||||
};
|
||||
|
||||
struct vhost_msg_v2 {
|
||||
__u32 type;
|
||||
__u32 reserved;
|
||||
union {
|
||||
struct vhost_iotlb_msg iotlb;
|
||||
__u8 padding[64];
|
||||
};
|
||||
};
|
||||
|
||||
struct vhost_memory_region {
|
||||
__u64 guest_phys_addr;
|
||||
__u64 memory_size; /* bytes */
|
||||
@@ -160,6 +170,14 @@ struct vhost_memory {
|
||||
#define VHOST_GET_VRING_BUSYLOOP_TIMEOUT _IOW(VHOST_VIRTIO, 0x24, \
|
||||
struct vhost_vring_state)
|
||||
|
||||
/* Set or get vhost backend capability */
|
||||
|
||||
/* Use message type V2 */
|
||||
#define VHOST_BACKEND_F_IOTLB_MSG_V2 0x1
|
||||
|
||||
#define VHOST_SET_BACKEND_FEATURES _IOW(VHOST_VIRTIO, 0x25, __u64)
|
||||
#define VHOST_GET_BACKEND_FEATURES _IOW(VHOST_VIRTIO, 0x26, __u64)
|
||||
|
||||
/* VHOST_NET specific defines */
|
||||
|
||||
/* Attach virtio net ring to a raw socket, or tap device.
|
||||
|
@@ -522,6 +522,7 @@ struct v4l2_pix_format {
|
||||
|
||||
/* Grey bit-packed formats */
|
||||
#define V4L2_PIX_FMT_Y10BPACK v4l2_fourcc('Y', '1', '0', 'B') /* 10 Greyscale bit-packed */
|
||||
#define V4L2_PIX_FMT_Y10P v4l2_fourcc('Y', '1', '0', 'P') /* 10 Greyscale, MIPI RAW10 packed */
|
||||
|
||||
/* Palette formats */
|
||||
#define V4L2_PIX_FMT_PAL8 v4l2_fourcc('P', 'A', 'L', '8') /* 8 8-bit palette */
|
||||
@@ -609,6 +610,11 @@ struct v4l2_pix_format {
|
||||
#define V4L2_PIX_FMT_SGBRG12P v4l2_fourcc('p', 'G', 'C', 'C')
|
||||
#define V4L2_PIX_FMT_SGRBG12P v4l2_fourcc('p', 'g', 'C', 'C')
|
||||
#define V4L2_PIX_FMT_SRGGB12P v4l2_fourcc('p', 'R', 'C', 'C')
|
||||
/* 14bit raw bayer packed, 7 bytes for every 4 pixels */
|
||||
#define V4L2_PIX_FMT_SBGGR14P v4l2_fourcc('p', 'B', 'E', 'E')
|
||||
#define V4L2_PIX_FMT_SGBRG14P v4l2_fourcc('p', 'G', 'E', 'E')
|
||||
#define V4L2_PIX_FMT_SGRBG14P v4l2_fourcc('p', 'g', 'E', 'E')
|
||||
#define V4L2_PIX_FMT_SRGGB14P v4l2_fourcc('p', 'R', 'E', 'E')
|
||||
#define V4L2_PIX_FMT_SBGGR16 v4l2_fourcc('B', 'Y', 'R', '2') /* 16 BGBG.. GRGR.. */
|
||||
#define V4L2_PIX_FMT_SGBRG16 v4l2_fourcc('G', 'B', '1', '6') /* 16 GBGB.. RGRG.. */
|
||||
#define V4L2_PIX_FMT_SGRBG16 v4l2_fourcc('G', 'R', '1', '6') /* 16 GRGR.. BGBG.. */
|
||||
@@ -636,6 +642,7 @@ struct v4l2_pix_format {
|
||||
#define V4L2_PIX_FMT_VP8 v4l2_fourcc('V', 'P', '8', '0') /* VP8 */
|
||||
#define V4L2_PIX_FMT_VP9 v4l2_fourcc('V', 'P', '9', '0') /* VP9 */
|
||||
#define V4L2_PIX_FMT_HEVC v4l2_fourcc('H', 'E', 'V', 'C') /* HEVC aka H.265 */
|
||||
#define V4L2_PIX_FMT_FWHT v4l2_fourcc('F', 'W', 'H', 'T') /* Fast Walsh Hadamard Transform (vicodec) */
|
||||
|
||||
/* Vendor-specific formats */
|
||||
#define V4L2_PIX_FMT_CPIA1 v4l2_fourcc('C', 'P', 'I', 'A') /* cpia1 YUV */
|
||||
@@ -2310,7 +2317,6 @@ struct v4l2_create_buffers {
|
||||
*
|
||||
*/
|
||||
#define VIDIOC_QUERYCAP _IOR('V', 0, struct v4l2_capability)
|
||||
#define VIDIOC_RESERVED _IO('V', 1)
|
||||
#define VIDIOC_ENUM_FMT _IOWR('V', 2, struct v4l2_fmtdesc)
|
||||
#define VIDIOC_G_FMT _IOWR('V', 4, struct v4l2_format)
|
||||
#define VIDIOC_S_FMT _IOWR('V', 5, struct v4l2_format)
|
||||
|
@@ -305,9 +305,12 @@ enum xfrm_attr_type_t {
|
||||
XFRMA_ADDRESS_FILTER, /* struct xfrm_address_filter */
|
||||
XFRMA_PAD,
|
||||
XFRMA_OFFLOAD_DEV, /* struct xfrm_state_offload */
|
||||
XFRMA_OUTPUT_MARK, /* __u32 */
|
||||
XFRMA_SET_MARK, /* __u32 */
|
||||
XFRMA_SET_MARK_MASK, /* __u32 */
|
||||
XFRMA_IF_ID, /* __u32 */
|
||||
__XFRMA_MAX
|
||||
|
||||
#define XFRMA_OUTPUT_MARK XFRMA_SET_MARK /* Compatibility */
|
||||
#define XFRMA_MAX (__XFRMA_MAX - 1)
|
||||
};
|
||||
|
||||
|
@@ -285,6 +285,20 @@ struct ubi_attach_req {
|
||||
__s8 padding[10];
|
||||
};
|
||||
|
||||
/*
|
||||
* UBI volume flags.
|
||||
*
|
||||
* @UBI_VOL_SKIP_CRC_CHECK_FLG: skip the CRC check done on a static volume at
|
||||
* open time. Only valid for static volumes and
|
||||
* should only be used if the volume user has a
|
||||
* way to verify data integrity
|
||||
*/
|
||||
enum {
|
||||
UBI_VOL_SKIP_CRC_CHECK_FLG = 0x1,
|
||||
};
|
||||
|
||||
#define UBI_VOL_VALID_FLGS (UBI_VOL_SKIP_CRC_CHECK_FLG)
|
||||
|
||||
/**
|
||||
* struct ubi_mkvol_req - volume description data structure used in
|
||||
* volume creation requests.
|
||||
@@ -292,7 +306,7 @@ struct ubi_attach_req {
|
||||
* @alignment: volume alignment
|
||||
* @bytes: volume size in bytes
|
||||
* @vol_type: volume type (%UBI_DYNAMIC_VOLUME or %UBI_STATIC_VOLUME)
|
||||
* @padding1: reserved for future, not used, has to be zeroed
|
||||
* @flags: volume flags (%UBI_VOL_SKIP_CRC_CHECK_FLG)
|
||||
* @name_len: volume name length
|
||||
* @padding2: reserved for future, not used, has to be zeroed
|
||||
* @name: volume name
|
||||
@@ -321,7 +335,7 @@ struct ubi_mkvol_req {
|
||||
__s32 alignment;
|
||||
__s64 bytes;
|
||||
__s8 vol_type;
|
||||
__s8 padding1;
|
||||
__u8 flags;
|
||||
__s16 name_len;
|
||||
__s8 padding2[4];
|
||||
char name[UBI_MAX_VOLUME_NAME + 1];
|
||||
|
@@ -44,6 +44,16 @@
|
||||
* In particular do not use pointer types -- pass pointers in __aligned_u64
|
||||
* instead.
|
||||
*/
|
||||
|
||||
enum {
|
||||
C4IW_64B_CQE = (1 << 0)
|
||||
};
|
||||
|
||||
struct c4iw_create_cq {
|
||||
__u32 flags;
|
||||
__u32 reserved;
|
||||
};
|
||||
|
||||
struct c4iw_create_cq_resp {
|
||||
__aligned_u64 key;
|
||||
__aligned_u64 gts_key;
|
||||
@@ -51,11 +61,12 @@ struct c4iw_create_cq_resp {
|
||||
__u32 cqid;
|
||||
__u32 size;
|
||||
__u32 qid_mask;
|
||||
__u32 reserved; /* explicit padding (optional for i386) */
|
||||
__u32 flags;
|
||||
};
|
||||
|
||||
enum {
|
||||
C4IW_QPF_ONCHIP = (1 << 0)
|
||||
C4IW_QPF_ONCHIP = (1 << 0),
|
||||
C4IW_QPF_WRITE_W_IMM = (1 << 1)
|
||||
};
|
||||
|
||||
struct c4iw_create_qp_resp {
|
||||
@@ -74,6 +85,23 @@ struct c4iw_create_qp_resp {
|
||||
__u32 flags;
|
||||
};
|
||||
|
||||
struct c4iw_create_srq_resp {
|
||||
__aligned_u64 srq_key;
|
||||
__aligned_u64 srq_db_gts_key;
|
||||
__aligned_u64 srq_memsize;
|
||||
__u32 srqid;
|
||||
__u32 srq_size;
|
||||
__u32 rqt_abs_idx;
|
||||
__u32 qid_mask;
|
||||
__u32 flags;
|
||||
__u32 reserved; /* explicit padding */
|
||||
};
|
||||
|
||||
enum {
|
||||
/* HW supports SRQ_LIMIT_REACHED event */
|
||||
T4_SRQ_LIMIT_SUPPORT = 1 << 0,
|
||||
};
|
||||
|
||||
struct c4iw_alloc_ucontext_resp {
|
||||
__aligned_u64 status_page_key;
|
||||
__u32 status_page_size;
|
||||
|
@@ -53,6 +53,7 @@ struct hns_roce_ib_create_qp {
|
||||
__u8 log_sq_stride;
|
||||
__u8 sq_no_prefetch;
|
||||
__u8 reserved[5];
|
||||
__aligned_u64 sdb_addr;
|
||||
};
|
||||
|
||||
struct hns_roce_ib_create_qp_resp {
|
||||
|
@@ -79,7 +79,7 @@ enum uverbs_attrs_destroy_cq_cmd_attr_ids {
|
||||
};
|
||||
|
||||
enum uverbs_attrs_create_flow_action_esp {
|
||||
UVERBS_ATTR_FLOW_ACTION_ESP_HANDLE,
|
||||
UVERBS_ATTR_CREATE_FLOW_ACTION_ESP_HANDLE,
|
||||
UVERBS_ATTR_FLOW_ACTION_ESP_ATTRS,
|
||||
UVERBS_ATTR_FLOW_ACTION_ESP_ESN,
|
||||
UVERBS_ATTR_FLOW_ACTION_ESP_KEYMAT,
|
||||
@@ -87,6 +87,11 @@ enum uverbs_attrs_create_flow_action_esp {
|
||||
UVERBS_ATTR_FLOW_ACTION_ESP_ENCAP,
|
||||
};
|
||||
|
||||
enum uverbs_attrs_modify_flow_action_esp {
|
||||
UVERBS_ATTR_MODIFY_FLOW_ACTION_ESP_HANDLE =
|
||||
UVERBS_ATTR_CREATE_FLOW_ACTION_ESP_HANDLE,
|
||||
};
|
||||
|
||||
enum uverbs_attrs_destroy_flow_action_esp {
|
||||
UVERBS_ATTR_DESTROY_FLOW_ACTION_HANDLE,
|
||||
};
|
||||
|
@@ -40,6 +40,59 @@
|
||||
#define RDMA_UAPI_PTR(_type, _name) __aligned_u64 _name
|
||||
#endif
|
||||
|
||||
enum ib_uverbs_access_flags {
|
||||
IB_UVERBS_ACCESS_LOCAL_WRITE = 1 << 0,
|
||||
IB_UVERBS_ACCESS_REMOTE_WRITE = 1 << 1,
|
||||
IB_UVERBS_ACCESS_REMOTE_READ = 1 << 2,
|
||||
IB_UVERBS_ACCESS_REMOTE_ATOMIC = 1 << 3,
|
||||
IB_UVERBS_ACCESS_MW_BIND = 1 << 4,
|
||||
IB_UVERBS_ACCESS_ZERO_BASED = 1 << 5,
|
||||
IB_UVERBS_ACCESS_ON_DEMAND = 1 << 6,
|
||||
IB_UVERBS_ACCESS_HUGETLB = 1 << 7,
|
||||
};
|
||||
|
||||
enum ib_uverbs_query_port_cap_flags {
|
||||
IB_UVERBS_PCF_SM = 1 << 1,
|
||||
IB_UVERBS_PCF_NOTICE_SUP = 1 << 2,
|
||||
IB_UVERBS_PCF_TRAP_SUP = 1 << 3,
|
||||
IB_UVERBS_PCF_OPT_IPD_SUP = 1 << 4,
|
||||
IB_UVERBS_PCF_AUTO_MIGR_SUP = 1 << 5,
|
||||
IB_UVERBS_PCF_SL_MAP_SUP = 1 << 6,
|
||||
IB_UVERBS_PCF_MKEY_NVRAM = 1 << 7,
|
||||
IB_UVERBS_PCF_PKEY_NVRAM = 1 << 8,
|
||||
IB_UVERBS_PCF_LED_INFO_SUP = 1 << 9,
|
||||
IB_UVERBS_PCF_SM_DISABLED = 1 << 10,
|
||||
IB_UVERBS_PCF_SYS_IMAGE_GUID_SUP = 1 << 11,
|
||||
IB_UVERBS_PCF_PKEY_SW_EXT_PORT_TRAP_SUP = 1 << 12,
|
||||
IB_UVERBS_PCF_EXTENDED_SPEEDS_SUP = 1 << 14,
|
||||
IB_UVERBS_PCF_CM_SUP = 1 << 16,
|
||||
IB_UVERBS_PCF_SNMP_TUNNEL_SUP = 1 << 17,
|
||||
IB_UVERBS_PCF_REINIT_SUP = 1 << 18,
|
||||
IB_UVERBS_PCF_DEVICE_MGMT_SUP = 1 << 19,
|
||||
IB_UVERBS_PCF_VENDOR_CLASS_SUP = 1 << 20,
|
||||
IB_UVERBS_PCF_DR_NOTICE_SUP = 1 << 21,
|
||||
IB_UVERBS_PCF_CAP_MASK_NOTICE_SUP = 1 << 22,
|
||||
IB_UVERBS_PCF_BOOT_MGMT_SUP = 1 << 23,
|
||||
IB_UVERBS_PCF_LINK_LATENCY_SUP = 1 << 24,
|
||||
IB_UVERBS_PCF_CLIENT_REG_SUP = 1 << 25,
|
||||
/*
|
||||
* IsOtherLocalChangesNoticeSupported is aliased by IP_BASED_GIDS and
|
||||
* is inaccessible
|
||||
*/
|
||||
IB_UVERBS_PCF_LINK_SPEED_WIDTH_TABLE_SUP = 1 << 27,
|
||||
IB_UVERBS_PCF_VENDOR_SPECIFIC_MADS_TABLE_SUP = 1 << 28,
|
||||
IB_UVERBS_PCF_MCAST_PKEY_TRAP_SUPPRESSION_SUP = 1 << 29,
|
||||
IB_UVERBS_PCF_MCAST_FDB_TOP_SUP = 1 << 30,
|
||||
IB_UVERBS_PCF_HIERARCHY_INFO_SUP = 1ULL << 31,
|
||||
|
||||
/* NOTE this is an internal flag, not an IBA flag */
|
||||
IB_UVERBS_PCF_IP_BASED_GIDS = 1 << 26,
|
||||
};
|
||||
|
||||
enum ib_uverbs_query_port_flags {
|
||||
IB_UVERBS_QPF_GRH_REQUIRED = 1 << 0,
|
||||
};
|
||||
|
||||
enum ib_uverbs_flow_action_esp_keymat {
|
||||
IB_UVERBS_FLOW_ACTION_ESP_KEYMAT_AES_GCM,
|
||||
};
|
||||
@@ -99,4 +152,9 @@ struct ib_uverbs_flow_action_esp {
|
||||
__aligned_u64 hard_limit_pkts;
|
||||
};
|
||||
|
||||
enum ib_uverbs_read_counters_flags {
|
||||
/* prefer read values from driver cache */
|
||||
IB_UVERBS_READ_COUNTERS_PREFER_CACHED = 1 << 0,
|
||||
};
|
||||
|
||||
#endif
|
||||
|
@@ -279,7 +279,7 @@ struct ib_uverbs_query_port {
|
||||
};
|
||||
|
||||
struct ib_uverbs_query_port_resp {
|
||||
__u32 port_cap_flags;
|
||||
__u32 port_cap_flags; /* see ib_uverbs_query_port_cap_flags */
|
||||
__u32 max_msg_sz;
|
||||
__u32 bad_pkey_cntr;
|
||||
__u32 qkey_viol_cntr;
|
||||
@@ -299,7 +299,8 @@ struct ib_uverbs_query_port_resp {
|
||||
__u8 active_speed;
|
||||
__u8 phys_state;
|
||||
__u8 link_layer;
|
||||
__u8 reserved[2];
|
||||
__u8 flags; /* see ib_uverbs_query_port_flags */
|
||||
__u8 reserved;
|
||||
};
|
||||
|
||||
struct ib_uverbs_alloc_pd {
|
||||
|
@@ -76,6 +76,9 @@ enum mlx5_lib_caps {
|
||||
MLX5_LIB_CAP_4K_UAR = (__u64)1 << 0,
|
||||
};
|
||||
|
||||
enum mlx5_ib_alloc_uctx_v2_flags {
|
||||
MLX5_IB_ALLOC_UCTX_DEVX = 1 << 0,
|
||||
};
|
||||
struct mlx5_ib_alloc_ucontext_req_v2 {
|
||||
__u32 total_num_bfregs;
|
||||
__u32 num_low_latency_bfregs;
|
||||
@@ -90,6 +93,7 @@ struct mlx5_ib_alloc_ucontext_req_v2 {
|
||||
|
||||
enum mlx5_ib_alloc_ucontext_resp_mask {
|
||||
MLX5_IB_ALLOC_UCONTEXT_RESP_MASK_CORE_CLOCK_OFFSET = 1UL << 0,
|
||||
MLX5_IB_ALLOC_UCONTEXT_RESP_MASK_DUMP_FILL_MKEY = 1UL << 1,
|
||||
};
|
||||
|
||||
enum mlx5_user_cmds_supp_uhw {
|
||||
@@ -138,7 +142,7 @@ struct mlx5_ib_alloc_ucontext_resp {
|
||||
__u32 log_uar_size;
|
||||
__u32 num_uars_per_page;
|
||||
__u32 num_dyn_bfregs;
|
||||
__u32 reserved3;
|
||||
__u32 dump_fill_mkey;
|
||||
};
|
||||
|
||||
struct mlx5_ib_alloc_pd_resp {
|
||||
|
@@ -33,6 +33,7 @@
|
||||
#ifndef MLX5_USER_IOCTL_CMDS_H
|
||||
#define MLX5_USER_IOCTL_CMDS_H
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <rdma/ib_user_ioctl_cmds.h>
|
||||
|
||||
enum mlx5_ib_create_flow_action_attrs {
|
||||
@@ -45,4 +46,124 @@ enum mlx5_ib_alloc_dm_attrs {
|
||||
MLX5_IB_ATTR_ALLOC_DM_RESP_PAGE_INDEX,
|
||||
};
|
||||
|
||||
enum mlx5_ib_devx_methods {
|
||||
MLX5_IB_METHOD_DEVX_OTHER = (1U << UVERBS_ID_NS_SHIFT),
|
||||
MLX5_IB_METHOD_DEVX_QUERY_UAR,
|
||||
MLX5_IB_METHOD_DEVX_QUERY_EQN,
|
||||
};
|
||||
|
||||
enum mlx5_ib_devx_other_attrs {
|
||||
MLX5_IB_ATTR_DEVX_OTHER_CMD_IN = (1U << UVERBS_ID_NS_SHIFT),
|
||||
MLX5_IB_ATTR_DEVX_OTHER_CMD_OUT,
|
||||
};
|
||||
|
||||
enum mlx5_ib_devx_obj_create_attrs {
|
||||
MLX5_IB_ATTR_DEVX_OBJ_CREATE_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
|
||||
MLX5_IB_ATTR_DEVX_OBJ_CREATE_CMD_IN,
|
||||
MLX5_IB_ATTR_DEVX_OBJ_CREATE_CMD_OUT,
|
||||
};
|
||||
|
||||
enum mlx5_ib_devx_query_uar_attrs {
|
||||
MLX5_IB_ATTR_DEVX_QUERY_UAR_USER_IDX = (1U << UVERBS_ID_NS_SHIFT),
|
||||
MLX5_IB_ATTR_DEVX_QUERY_UAR_DEV_IDX,
|
||||
};
|
||||
|
||||
enum mlx5_ib_devx_obj_destroy_attrs {
|
||||
MLX5_IB_ATTR_DEVX_OBJ_DESTROY_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
|
||||
};
|
||||
|
||||
enum mlx5_ib_devx_obj_modify_attrs {
|
||||
MLX5_IB_ATTR_DEVX_OBJ_MODIFY_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
|
||||
MLX5_IB_ATTR_DEVX_OBJ_MODIFY_CMD_IN,
|
||||
MLX5_IB_ATTR_DEVX_OBJ_MODIFY_CMD_OUT,
|
||||
};
|
||||
|
||||
enum mlx5_ib_devx_obj_query_attrs {
|
||||
MLX5_IB_ATTR_DEVX_OBJ_QUERY_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
|
||||
MLX5_IB_ATTR_DEVX_OBJ_QUERY_CMD_IN,
|
||||
MLX5_IB_ATTR_DEVX_OBJ_QUERY_CMD_OUT,
|
||||
};
|
||||
|
||||
enum mlx5_ib_devx_query_eqn_attrs {
|
||||
MLX5_IB_ATTR_DEVX_QUERY_EQN_USER_VEC = (1U << UVERBS_ID_NS_SHIFT),
|
||||
MLX5_IB_ATTR_DEVX_QUERY_EQN_DEV_EQN,
|
||||
};
|
||||
|
||||
enum mlx5_ib_devx_obj_methods {
|
||||
MLX5_IB_METHOD_DEVX_OBJ_CREATE = (1U << UVERBS_ID_NS_SHIFT),
|
||||
MLX5_IB_METHOD_DEVX_OBJ_DESTROY,
|
||||
MLX5_IB_METHOD_DEVX_OBJ_MODIFY,
|
||||
MLX5_IB_METHOD_DEVX_OBJ_QUERY,
|
||||
};
|
||||
|
||||
enum mlx5_ib_devx_umem_reg_attrs {
|
||||
MLX5_IB_ATTR_DEVX_UMEM_REG_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
|
||||
MLX5_IB_ATTR_DEVX_UMEM_REG_ADDR,
|
||||
MLX5_IB_ATTR_DEVX_UMEM_REG_LEN,
|
||||
MLX5_IB_ATTR_DEVX_UMEM_REG_ACCESS,
|
||||
MLX5_IB_ATTR_DEVX_UMEM_REG_OUT_ID,
|
||||
};
|
||||
|
||||
enum mlx5_ib_devx_umem_dereg_attrs {
|
||||
MLX5_IB_ATTR_DEVX_UMEM_DEREG_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
|
||||
};
|
||||
|
||||
enum mlx5_ib_devx_umem_methods {
|
||||
MLX5_IB_METHOD_DEVX_UMEM_REG = (1U << UVERBS_ID_NS_SHIFT),
|
||||
MLX5_IB_METHOD_DEVX_UMEM_DEREG,
|
||||
};
|
||||
|
||||
enum mlx5_ib_objects {
|
||||
MLX5_IB_OBJECT_DEVX = (1U << UVERBS_ID_NS_SHIFT),
|
||||
MLX5_IB_OBJECT_DEVX_OBJ,
|
||||
MLX5_IB_OBJECT_DEVX_UMEM,
|
||||
MLX5_IB_OBJECT_FLOW_MATCHER,
|
||||
};
|
||||
|
||||
enum mlx5_ib_flow_matcher_create_attrs {
|
||||
MLX5_IB_ATTR_FLOW_MATCHER_CREATE_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
|
||||
MLX5_IB_ATTR_FLOW_MATCHER_MATCH_MASK,
|
||||
MLX5_IB_ATTR_FLOW_MATCHER_FLOW_TYPE,
|
||||
MLX5_IB_ATTR_FLOW_MATCHER_MATCH_CRITERIA,
|
||||
};
|
||||
|
||||
enum mlx5_ib_flow_matcher_destroy_attrs {
|
||||
MLX5_IB_ATTR_FLOW_MATCHER_DESTROY_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
|
||||
};
|
||||
|
||||
enum mlx5_ib_flow_matcher_methods {
|
||||
MLX5_IB_METHOD_FLOW_MATCHER_CREATE = (1U << UVERBS_ID_NS_SHIFT),
|
||||
MLX5_IB_METHOD_FLOW_MATCHER_DESTROY,
|
||||
};
|
||||
|
||||
#define MLX5_IB_DW_MATCH_PARAM 0x80
|
||||
|
||||
struct mlx5_ib_match_params {
|
||||
__u32 match_params[MLX5_IB_DW_MATCH_PARAM];
|
||||
};
|
||||
|
||||
enum mlx5_ib_flow_type {
|
||||
MLX5_IB_FLOW_TYPE_NORMAL,
|
||||
MLX5_IB_FLOW_TYPE_SNIFFER,
|
||||
MLX5_IB_FLOW_TYPE_ALL_DEFAULT,
|
||||
MLX5_IB_FLOW_TYPE_MC_DEFAULT,
|
||||
};
|
||||
|
||||
enum mlx5_ib_create_flow_attrs {
|
||||
MLX5_IB_ATTR_CREATE_FLOW_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
|
||||
MLX5_IB_ATTR_CREATE_FLOW_MATCH_VALUE,
|
||||
MLX5_IB_ATTR_CREATE_FLOW_DEST_QP,
|
||||
MLX5_IB_ATTR_CREATE_FLOW_DEST_DEVX,
|
||||
MLX5_IB_ATTR_CREATE_FLOW_MATCHER,
|
||||
};
|
||||
|
||||
enum mlx5_ib_destoy_flow_attrs {
|
||||
MLX5_IB_ATTR_DESTROY_FLOW_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
|
||||
};
|
||||
|
||||
enum mlx5_ib_flow_methods {
|
||||
MLX5_IB_METHOD_CREATE_FLOW = (1U << UVERBS_ID_NS_SHIFT),
|
||||
MLX5_IB_METHOD_DESTROY_FLOW,
|
||||
};
|
||||
|
||||
#endif
|
||||
|
@@ -111,4 +111,21 @@ struct qedr_create_qp_uresp {
|
||||
__u32 reserved;
|
||||
};
|
||||
|
||||
struct qedr_create_srq_ureq {
|
||||
/* user space virtual address of producer pair */
|
||||
__aligned_u64 prod_pair_addr;
|
||||
|
||||
/* user space virtual address of SRQ buffer */
|
||||
__aligned_u64 srq_addr;
|
||||
|
||||
/* length of SRQ buffer */
|
||||
__aligned_u64 srq_len;
|
||||
};
|
||||
|
||||
struct qedr_create_srq_uresp {
|
||||
__u16 srq_id;
|
||||
__u16 reserved0;
|
||||
__u32 reserved1;
|
||||
};
|
||||
|
||||
#endif /* __QEDR_USER_H__ */
|
||||
|
@@ -62,7 +62,12 @@ struct ib_uverbs_attr {
|
||||
} enum_data;
|
||||
__u16 reserved;
|
||||
} attr_data;
|
||||
__aligned_u64 data; /* ptr to command, inline data or idr/fd */
|
||||
union {
|
||||
/* Used by PTR_IN/OUT, ENUM_IN and IDR */
|
||||
__aligned_u64 data;
|
||||
/* Used by FD_IN and FD_OUT */
|
||||
__s64 data_s64;
|
||||
};
|
||||
};
|
||||
|
||||
struct ib_uverbs_ioctl_hdr {
|
||||
|
@@ -5,6 +5,7 @@
|
||||
* Interface to /dev/xen/gntdev.
|
||||
*
|
||||
* Copyright (c) 2007, D G Murray
|
||||
* Copyright (c) 2018, Oleksandr Andrushchenko, EPAM Systems Inc.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License version 2
|
||||
@@ -200,4 +201,109 @@ struct ioctl_gntdev_grant_copy {
|
||||
/* Send an interrupt on the indicated event channel */
|
||||
#define UNMAP_NOTIFY_SEND_EVENT 0x2
|
||||
|
||||
/*
|
||||
* Flags to be used while requesting memory mapping's backing storage
|
||||
* to be allocated with DMA API.
|
||||
*/
|
||||
|
||||
/*
|
||||
* The buffer is backed with memory allocated with dma_alloc_wc.
|
||||
*/
|
||||
#define GNTDEV_DMA_FLAG_WC (1 << 0)
|
||||
|
||||
/*
|
||||
* The buffer is backed with memory allocated with dma_alloc_coherent.
|
||||
*/
|
||||
#define GNTDEV_DMA_FLAG_COHERENT (1 << 1)
|
||||
|
||||
/*
|
||||
* Create a dma-buf [1] from grant references @refs of count @count provided
|
||||
* by the foreign domain @domid with flags @flags.
|
||||
*
|
||||
* By default dma-buf is backed by system memory pages, but by providing
|
||||
* one of the GNTDEV_DMA_FLAG_XXX flags it can also be created as
|
||||
* a DMA write-combine or coherent buffer, e.g. allocated with dma_alloc_wc/
|
||||
* dma_alloc_coherent.
|
||||
*
|
||||
* Returns 0 if dma-buf was successfully created and the corresponding
|
||||
* dma-buf's file descriptor is returned in @fd.
|
||||
*
|
||||
* [1] Documentation/driver-api/dma-buf.rst
|
||||
*/
|
||||
|
||||
#define IOCTL_GNTDEV_DMABUF_EXP_FROM_REFS \
|
||||
_IOC(_IOC_NONE, 'G', 9, \
|
||||
sizeof(struct ioctl_gntdev_dmabuf_exp_from_refs))
|
||||
struct ioctl_gntdev_dmabuf_exp_from_refs {
|
||||
/* IN parameters. */
|
||||
/* Specific options for this dma-buf: see GNTDEV_DMA_FLAG_XXX. */
|
||||
__u32 flags;
|
||||
/* Number of grant references in @refs array. */
|
||||
__u32 count;
|
||||
/* OUT parameters. */
|
||||
/* File descriptor of the dma-buf. */
|
||||
__u32 fd;
|
||||
/* The domain ID of the grant references to be mapped. */
|
||||
__u32 domid;
|
||||
/* Variable IN parameter. */
|
||||
/* Array of grant references of size @count. */
|
||||
__u32 refs[1];
|
||||
};
|
||||
|
||||
/*
|
||||
* This will block until the dma-buf with the file descriptor @fd is
|
||||
* released. This is only valid for buffers created with
|
||||
* IOCTL_GNTDEV_DMABUF_EXP_FROM_REFS.
|
||||
*
|
||||
* If within @wait_to_ms milliseconds the buffer is not released
|
||||
* then -ETIMEDOUT error is returned.
|
||||
* If the buffer with the file descriptor @fd does not exist or has already
|
||||
* been released, then -ENOENT is returned. For valid file descriptors
|
||||
* this must not be treated as error.
|
||||
*/
|
||||
#define IOCTL_GNTDEV_DMABUF_EXP_WAIT_RELEASED \
|
||||
_IOC(_IOC_NONE, 'G', 10, \
|
||||
sizeof(struct ioctl_gntdev_dmabuf_exp_wait_released))
|
||||
struct ioctl_gntdev_dmabuf_exp_wait_released {
|
||||
/* IN parameters */
|
||||
__u32 fd;
|
||||
__u32 wait_to_ms;
|
||||
};
|
||||
|
||||
/*
|
||||
* Import a dma-buf with file descriptor @fd and export granted references
|
||||
* to the pages of that dma-buf into array @refs of size @count.
|
||||
*/
|
||||
#define IOCTL_GNTDEV_DMABUF_IMP_TO_REFS \
|
||||
_IOC(_IOC_NONE, 'G', 11, \
|
||||
sizeof(struct ioctl_gntdev_dmabuf_imp_to_refs))
|
||||
struct ioctl_gntdev_dmabuf_imp_to_refs {
|
||||
/* IN parameters. */
|
||||
/* File descriptor of the dma-buf. */
|
||||
__u32 fd;
|
||||
/* Number of grant references in @refs array. */
|
||||
__u32 count;
|
||||
/* The domain ID for which references to be granted. */
|
||||
__u32 domid;
|
||||
/* Reserved - must be zero. */
|
||||
__u32 reserved;
|
||||
/* OUT parameters. */
|
||||
/* Array of grant references of size @count. */
|
||||
__u32 refs[1];
|
||||
};
|
||||
|
||||
/*
|
||||
* This will close all references to the imported buffer with file descriptor
|
||||
* @fd, so it can be released by the owner. This is only valid for buffers
|
||||
* created with IOCTL_GNTDEV_DMABUF_IMP_TO_REFS.
|
||||
*/
|
||||
#define IOCTL_GNTDEV_DMABUF_IMP_RELEASE \
|
||||
_IOC(_IOC_NONE, 'G', 12, \
|
||||
sizeof(struct ioctl_gntdev_dmabuf_imp_release))
|
||||
struct ioctl_gntdev_dmabuf_imp_release {
|
||||
/* IN parameters */
|
||||
__u32 fd;
|
||||
__u32 reserved;
|
||||
};
|
||||
|
||||
#endif /* __LINUX_PUBLIC_GNTDEV_H__ */
|
||||
|
Reference in New Issue
Block a user