Merge drm/drm-next into drm-xe-next
Bring v6.17-rc1 to propagate commits from other subsystems, particularly PCI, which has some new functions needed for SR-IOV integration. Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com>
This commit is contained in:
@@ -2,8 +2,12 @@
|
||||
#ifndef _UAPI__ASM_GENERIC_PARAM_H
|
||||
#define _UAPI__ASM_GENERIC_PARAM_H
|
||||
|
||||
#ifndef __USER_HZ
|
||||
#define __USER_HZ 100
|
||||
#endif
|
||||
|
||||
#ifndef HZ
|
||||
#define HZ 100
|
||||
#define HZ __USER_HZ
|
||||
#endif
|
||||
|
||||
#ifndef EXEC_PAGESIZE
|
||||
|
||||
@@ -147,6 +147,9 @@
|
||||
|
||||
#define SO_PASSRIGHTS 83
|
||||
|
||||
#define SO_INQ 84
|
||||
#define SCM_INQ SO_INQ
|
||||
|
||||
#if !defined(__KERNEL__)
|
||||
|
||||
#if __BITS_PER_LONG == 64 || (defined(__x86_64__) && defined(__ILP32__))
|
||||
|
||||
@@ -852,8 +852,14 @@ __SYSCALL(__NR_removexattrat, sys_removexattrat)
|
||||
#define __NR_open_tree_attr 467
|
||||
__SYSCALL(__NR_open_tree_attr, sys_open_tree_attr)
|
||||
|
||||
/* fs/inode.c */
|
||||
#define __NR_file_getattr 468
|
||||
__SYSCALL(__NR_file_getattr, sys_file_getattr)
|
||||
#define __NR_file_setattr 469
|
||||
__SYSCALL(__NR_file_setattr, sys_file_setattr)
|
||||
|
||||
#undef __NR_syscalls
|
||||
#define __NR_syscalls 468
|
||||
#define __NR_syscalls 470
|
||||
|
||||
/*
|
||||
* 32 bit systems traditionally used different
|
||||
|
||||
@@ -1493,6 +1493,8 @@ struct drm_amdgpu_info_hw_ip {
|
||||
__u32 available_rings;
|
||||
/** version info: bits 23:16 major, 15:8 minor, 7:0 revision */
|
||||
__u32 ip_discovery_version;
|
||||
/* Userq available slots */
|
||||
__u32 userq_num_slots;
|
||||
};
|
||||
|
||||
/* GFX metadata BO sizes and alignment info (in bytes) */
|
||||
|
||||
@@ -210,6 +210,10 @@ extern "C" {
|
||||
#define DRM_FORMAT_RGBA1010102 fourcc_code('R', 'A', '3', '0') /* [31:0] R:G:B:A 10:10:10:2 little endian */
|
||||
#define DRM_FORMAT_BGRA1010102 fourcc_code('B', 'A', '3', '0') /* [31:0] B:G:R:A 10:10:10:2 little endian */
|
||||
|
||||
/* 48 bpp RGB */
|
||||
#define DRM_FORMAT_RGB161616 fourcc_code('R', 'G', '4', '8') /* [47:0] R:G:B 16:16:16 little endian */
|
||||
#define DRM_FORMAT_BGR161616 fourcc_code('B', 'G', '4', '8') /* [47:0] B:G:R 16:16:16 little endian */
|
||||
|
||||
/* 64 bpp RGB */
|
||||
#define DRM_FORMAT_XRGB16161616 fourcc_code('X', 'R', '4', '8') /* [63:0] x:R:G:B 16:16:16:16 little endian */
|
||||
#define DRM_FORMAT_XBGR16161616 fourcc_code('X', 'B', '4', '8') /* [63:0] x:B:G:R 16:16:16:16 little endian */
|
||||
@@ -218,7 +222,7 @@ extern "C" {
|
||||
#define DRM_FORMAT_ABGR16161616 fourcc_code('A', 'B', '4', '8') /* [63:0] A:B:G:R 16:16:16:16 little endian */
|
||||
|
||||
/*
|
||||
* Floating point 64bpp RGB
|
||||
* Half-Floating point - 16b/component
|
||||
* IEEE 754-2008 binary16 half-precision float
|
||||
* [15:0] sign:exponent:mantissa 1:5:10
|
||||
*/
|
||||
@@ -228,6 +232,20 @@ extern "C" {
|
||||
#define DRM_FORMAT_ARGB16161616F fourcc_code('A', 'R', '4', 'H') /* [63:0] A:R:G:B 16:16:16:16 little endian */
|
||||
#define DRM_FORMAT_ABGR16161616F fourcc_code('A', 'B', '4', 'H') /* [63:0] A:B:G:R 16:16:16:16 little endian */
|
||||
|
||||
#define DRM_FORMAT_R16F fourcc_code('R', ' ', ' ', 'H') /* [15:0] R 16 little endian */
|
||||
#define DRM_FORMAT_GR1616F fourcc_code('G', 'R', ' ', 'H') /* [31:0] G:R 16:16 little endian */
|
||||
#define DRM_FORMAT_BGR161616F fourcc_code('B', 'G', 'R', 'H') /* [47:0] B:G:R 16:16:16 little endian */
|
||||
|
||||
/*
|
||||
* Floating point - 32b/component
|
||||
* IEEE 754-2008 binary32 float
|
||||
* [31:0] sign:exponent:mantissa 1:8:23
|
||||
*/
|
||||
#define DRM_FORMAT_R32F fourcc_code('R', ' ', ' ', 'F') /* [31:0] R 32 little endian */
|
||||
#define DRM_FORMAT_GR3232F fourcc_code('G', 'R', ' ', 'F') /* [63:0] R:G 32:32 little endian */
|
||||
#define DRM_FORMAT_BGR323232F fourcc_code('B', 'G', 'R', 'F') /* [95:0] R:G:B 32:32:32 little endian */
|
||||
#define DRM_FORMAT_ABGR32323232F fourcc_code('A', 'B', '8', 'F') /* [127:0] R:G:B:A 32:32:32:32 little endian */
|
||||
|
||||
/*
|
||||
* RGBA format with 10-bit components packed in 64-bit per pixel, with 6 bits
|
||||
* of unused padding per component:
|
||||
|
||||
+134
-15
@@ -91,6 +91,32 @@ struct drm_msm_timespec {
|
||||
#define MSM_PARAM_UBWC_SWIZZLE 0x12 /* RO */
|
||||
#define MSM_PARAM_MACROTILE_MODE 0x13 /* RO */
|
||||
#define MSM_PARAM_UCHE_TRAP_BASE 0x14 /* RO */
|
||||
/* PRR (Partially Resident Region) is required for sparse residency: */
|
||||
#define MSM_PARAM_HAS_PRR 0x15 /* RO */
|
||||
/* MSM_PARAM_EN_VM_BIND is set to 1 to enable VM_BIND ops.
|
||||
*
|
||||
* With VM_BIND enabled, userspace is required to allocate iova and use the
|
||||
* VM_BIND ops for map/unmap ioctls. MSM_INFO_SET_IOVA and MSM_INFO_GET_IOVA
|
||||
* will be rejected. (The latter does not have a sensible meaning when a BO
|
||||
* can have multiple and/or partial mappings.)
|
||||
*
|
||||
* With VM_BIND enabled, userspace does not include a submit_bo table in the
|
||||
* SUBMIT ioctl (this will be rejected), the resident set is determined by
|
||||
* the the VM_BIND ops.
|
||||
*
|
||||
* Enabling VM_BIND will fail on devices which do not have per-process pgtables.
|
||||
* And it is not allowed to disable VM_BIND once it has been enabled.
|
||||
*
|
||||
* Enabling VM_BIND should be done (attempted) prior to allocating any BOs or
|
||||
* submitqueues of type MSM_SUBMITQUEUE_VM_BIND.
|
||||
*
|
||||
* Relatedly, when VM_BIND mode is enabled, the kernel will not try to recover
|
||||
* from GPU faults or failed async VM_BIND ops, in particular because it is
|
||||
* difficult to communicate to userspace which op failed so that userspace
|
||||
* could rewind and try again. When the VM is marked unusable, the SUBMIT
|
||||
* ioctl will throw -EPIPE.
|
||||
*/
|
||||
#define MSM_PARAM_EN_VM_BIND 0x16 /* WO, once */
|
||||
|
||||
/* For backwards compat. The original support for preemption was based on
|
||||
* a single ring per priority level so # of priority levels equals the #
|
||||
@@ -114,6 +140,19 @@ struct drm_msm_param {
|
||||
|
||||
#define MSM_BO_SCANOUT 0x00000001 /* scanout capable */
|
||||
#define MSM_BO_GPU_READONLY 0x00000002
|
||||
/* Private buffers do not need to be explicitly listed in the SUBMIT
|
||||
* ioctl, unless referenced by a drm_msm_gem_submit_cmd. Private
|
||||
* buffers may NOT be imported/exported or used for scanout (or any
|
||||
* other situation where buffers can be indefinitely pinned, but
|
||||
* cases other than scanout are all kernel owned BOs which are not
|
||||
* visible to userspace).
|
||||
*
|
||||
* In exchange for those constraints, all private BOs associated with
|
||||
* a single context (drm_file) share a single dma_resv, and if there
|
||||
* has been no eviction since the last submit, there are no per-BO
|
||||
* bookeeping to do, significantly cutting the SUBMIT overhead.
|
||||
*/
|
||||
#define MSM_BO_NO_SHARE 0x00000004
|
||||
#define MSM_BO_CACHE_MASK 0x000f0000
|
||||
/* cache modes */
|
||||
#define MSM_BO_CACHED 0x00010000
|
||||
@@ -123,6 +162,7 @@ struct drm_msm_param {
|
||||
|
||||
#define MSM_BO_FLAGS (MSM_BO_SCANOUT | \
|
||||
MSM_BO_GPU_READONLY | \
|
||||
MSM_BO_NO_SHARE | \
|
||||
MSM_BO_CACHE_MASK)
|
||||
|
||||
struct drm_msm_gem_new {
|
||||
@@ -180,6 +220,17 @@ struct drm_msm_gem_cpu_fini {
|
||||
* Cmdstream Submission:
|
||||
*/
|
||||
|
||||
#define MSM_SYNCOBJ_RESET 0x00000001 /* Reset syncobj after wait. */
|
||||
#define MSM_SYNCOBJ_FLAGS ( \
|
||||
MSM_SYNCOBJ_RESET | \
|
||||
0)
|
||||
|
||||
struct drm_msm_syncobj {
|
||||
__u32 handle; /* in, syncobj handle. */
|
||||
__u32 flags; /* in, from MSM_SUBMIT_SYNCOBJ_FLAGS */
|
||||
__u64 point; /* in, timepoint for timeline syncobjs. */
|
||||
};
|
||||
|
||||
/* The value written into the cmdstream is logically:
|
||||
*
|
||||
* ((relocbuf->gpuaddr + reloc_offset) << shift) | or
|
||||
@@ -221,7 +272,10 @@ struct drm_msm_gem_submit_cmd {
|
||||
__u32 size; /* in, cmdstream size */
|
||||
__u32 pad;
|
||||
__u32 nr_relocs; /* in, number of submit_reloc's */
|
||||
__u64 relocs; /* in, ptr to array of submit_reloc's */
|
||||
union {
|
||||
__u64 relocs; /* in, ptr to array of submit_reloc's */
|
||||
__u64 iova; /* cmdstream address (for VM_BIND contexts) */
|
||||
};
|
||||
};
|
||||
|
||||
/* Each buffer referenced elsewhere in the cmdstream submit (ie. the
|
||||
@@ -269,17 +323,6 @@ struct drm_msm_gem_submit_bo {
|
||||
MSM_SUBMIT_FENCE_SN_IN | \
|
||||
0)
|
||||
|
||||
#define MSM_SUBMIT_SYNCOBJ_RESET 0x00000001 /* Reset syncobj after wait. */
|
||||
#define MSM_SUBMIT_SYNCOBJ_FLAGS ( \
|
||||
MSM_SUBMIT_SYNCOBJ_RESET | \
|
||||
0)
|
||||
|
||||
struct drm_msm_gem_submit_syncobj {
|
||||
__u32 handle; /* in, syncobj handle. */
|
||||
__u32 flags; /* in, from MSM_SUBMIT_SYNCOBJ_FLAGS */
|
||||
__u64 point; /* in, timepoint for timeline syncobjs. */
|
||||
};
|
||||
|
||||
/* Each cmdstream submit consists of a table of buffers involved, and
|
||||
* one or more cmdstream buffers. This allows for conditional execution
|
||||
* (context-restore), and IB buffers needed for per tile/bin draw cmds.
|
||||
@@ -293,13 +336,80 @@ struct drm_msm_gem_submit {
|
||||
__u64 cmds; /* in, ptr to array of submit_cmd's */
|
||||
__s32 fence_fd; /* in/out fence fd (see MSM_SUBMIT_FENCE_FD_IN/OUT) */
|
||||
__u32 queueid; /* in, submitqueue id */
|
||||
__u64 in_syncobjs; /* in, ptr to array of drm_msm_gem_submit_syncobj */
|
||||
__u64 out_syncobjs; /* in, ptr to array of drm_msm_gem_submit_syncobj */
|
||||
__u64 in_syncobjs; /* in, ptr to array of drm_msm_syncobj */
|
||||
__u64 out_syncobjs; /* in, ptr to array of drm_msm_syncobj */
|
||||
__u32 nr_in_syncobjs; /* in, number of entries in in_syncobj */
|
||||
__u32 nr_out_syncobjs; /* in, number of entries in out_syncobj. */
|
||||
__u32 syncobj_stride; /* in, stride of syncobj arrays. */
|
||||
__u32 pad; /*in, reserved for future use, always 0. */
|
||||
};
|
||||
|
||||
#define MSM_VM_BIND_OP_UNMAP 0
|
||||
#define MSM_VM_BIND_OP_MAP 1
|
||||
#define MSM_VM_BIND_OP_MAP_NULL 2
|
||||
|
||||
#define MSM_VM_BIND_OP_DUMP 1
|
||||
#define MSM_VM_BIND_OP_FLAGS ( \
|
||||
MSM_VM_BIND_OP_DUMP | \
|
||||
0)
|
||||
|
||||
/**
|
||||
* struct drm_msm_vm_bind_op - bind/unbind op to run
|
||||
*/
|
||||
struct drm_msm_vm_bind_op {
|
||||
/** @op: one of MSM_VM_BIND_OP_x */
|
||||
__u32 op;
|
||||
/** @handle: GEM object handle, MBZ for UNMAP or MAP_NULL */
|
||||
__u32 handle;
|
||||
/** @obj_offset: Offset into GEM object, MBZ for UNMAP or MAP_NULL */
|
||||
__u64 obj_offset;
|
||||
/** @iova: Address to operate on */
|
||||
__u64 iova;
|
||||
/** @range: Number of bites to to map/unmap */
|
||||
__u64 range;
|
||||
/** @flags: Bitmask of MSM_VM_BIND_OP_FLAG_x */
|
||||
__u32 flags;
|
||||
/** @pad: MBZ */
|
||||
__u32 pad;
|
||||
};
|
||||
|
||||
#define MSM_VM_BIND_FENCE_FD_IN 0x00000001
|
||||
#define MSM_VM_BIND_FENCE_FD_OUT 0x00000002
|
||||
#define MSM_VM_BIND_FLAGS ( \
|
||||
MSM_VM_BIND_FENCE_FD_IN | \
|
||||
MSM_VM_BIND_FENCE_FD_OUT | \
|
||||
0)
|
||||
|
||||
/**
|
||||
* struct drm_msm_vm_bind - Input of &DRM_IOCTL_MSM_VM_BIND
|
||||
*/
|
||||
struct drm_msm_vm_bind {
|
||||
/** @flags: in, bitmask of MSM_VM_BIND_x */
|
||||
__u32 flags;
|
||||
/** @nr_ops: the number of bind ops in this ioctl */
|
||||
__u32 nr_ops;
|
||||
/** @fence_fd: in/out fence fd (see MSM_VM_BIND_FENCE_FD_IN/OUT) */
|
||||
__s32 fence_fd;
|
||||
/** @queue_id: in, submitqueue id */
|
||||
__u32 queue_id;
|
||||
/** @in_syncobjs: in, ptr to array of drm_msm_gem_syncobj */
|
||||
__u64 in_syncobjs;
|
||||
/** @out_syncobjs: in, ptr to array of drm_msm_gem_syncobj */
|
||||
__u64 out_syncobjs;
|
||||
/** @nr_in_syncobjs: in, number of entries in in_syncobj */
|
||||
__u32 nr_in_syncobjs;
|
||||
/** @nr_out_syncobjs: in, number of entries in out_syncobj */
|
||||
__u32 nr_out_syncobjs;
|
||||
/** @syncobj_stride: in, stride of syncobj arrays */
|
||||
__u32 syncobj_stride;
|
||||
/** @op_stride: sizeof each struct drm_msm_vm_bind_op in @ops */
|
||||
__u32 op_stride;
|
||||
union {
|
||||
/** @op: used if num_ops == 1 */
|
||||
struct drm_msm_vm_bind_op op;
|
||||
/** @ops: userptr to array of drm_msm_vm_bind_op if num_ops > 1 */
|
||||
__u64 ops;
|
||||
};
|
||||
};
|
||||
|
||||
#define MSM_WAIT_FENCE_BOOST 0x00000001
|
||||
@@ -345,12 +455,19 @@ struct drm_msm_gem_madvise {
|
||||
/*
|
||||
* Draw queues allow the user to set specific submission parameter. Command
|
||||
* submissions specify a specific submitqueue to use. ID 0 is reserved for
|
||||
* backwards compatibility as a "default" submitqueue
|
||||
* backwards compatibility as a "default" submitqueue.
|
||||
*
|
||||
* Because VM_BIND async updates happen on the CPU, they must run on a
|
||||
* virtual queue created with the flag MSM_SUBMITQUEUE_VM_BIND. If we had
|
||||
* a way to do pgtable updates on the GPU, we could drop this restriction.
|
||||
*/
|
||||
|
||||
#define MSM_SUBMITQUEUE_ALLOW_PREEMPT 0x00000001
|
||||
#define MSM_SUBMITQUEUE_VM_BIND 0x00000002 /* virtual queue for VM_BIND ops */
|
||||
|
||||
#define MSM_SUBMITQUEUE_FLAGS ( \
|
||||
MSM_SUBMITQUEUE_ALLOW_PREEMPT | \
|
||||
MSM_SUBMITQUEUE_VM_BIND | \
|
||||
0)
|
||||
|
||||
/*
|
||||
@@ -388,6 +505,7 @@ struct drm_msm_submitqueue_query {
|
||||
#define DRM_MSM_SUBMITQUEUE_NEW 0x0A
|
||||
#define DRM_MSM_SUBMITQUEUE_CLOSE 0x0B
|
||||
#define DRM_MSM_SUBMITQUEUE_QUERY 0x0C
|
||||
#define DRM_MSM_VM_BIND 0x0D
|
||||
|
||||
#define DRM_IOCTL_MSM_GET_PARAM DRM_IOWR(DRM_COMMAND_BASE + DRM_MSM_GET_PARAM, struct drm_msm_param)
|
||||
#define DRM_IOCTL_MSM_SET_PARAM DRM_IOW (DRM_COMMAND_BASE + DRM_MSM_SET_PARAM, struct drm_msm_param)
|
||||
@@ -401,6 +519,7 @@ struct drm_msm_submitqueue_query {
|
||||
#define DRM_IOCTL_MSM_SUBMITQUEUE_NEW DRM_IOWR(DRM_COMMAND_BASE + DRM_MSM_SUBMITQUEUE_NEW, struct drm_msm_submitqueue)
|
||||
#define DRM_IOCTL_MSM_SUBMITQUEUE_CLOSE DRM_IOW (DRM_COMMAND_BASE + DRM_MSM_SUBMITQUEUE_CLOSE, __u32)
|
||||
#define DRM_IOCTL_MSM_SUBMITQUEUE_QUERY DRM_IOW (DRM_COMMAND_BASE + DRM_MSM_SUBMITQUEUE_QUERY, struct drm_msm_submitqueue_query)
|
||||
#define DRM_IOCTL_MSM_VM_BIND DRM_IOWR(DRM_COMMAND_BASE + DRM_MSM_VM_BIND, struct drm_msm_vm_bind)
|
||||
|
||||
#if defined(__cplusplus)
|
||||
}
|
||||
|
||||
@@ -450,6 +450,7 @@ union bpf_iter_link_info {
|
||||
* * **struct bpf_map_info**
|
||||
* * **struct bpf_btf_info**
|
||||
* * **struct bpf_link_info**
|
||||
* * **struct bpf_token_info**
|
||||
*
|
||||
* Return
|
||||
* Returns zero on success. On error, -1 is returned and *errno*
|
||||
@@ -906,6 +907,17 @@ union bpf_iter_link_info {
|
||||
* A new file descriptor (a nonnegative integer), or -1 if an
|
||||
* error occurred (in which case, *errno* is set appropriately).
|
||||
*
|
||||
* BPF_PROG_STREAM_READ_BY_FD
|
||||
* Description
|
||||
* Read data of a program's BPF stream. The program is identified
|
||||
* by *prog_fd*, and the stream is identified by the *stream_id*.
|
||||
* The data is copied to a buffer pointed to by *stream_buf*, and
|
||||
* filled less than or equal to *stream_buf_len* bytes.
|
||||
*
|
||||
* Return
|
||||
* Number of bytes read from the stream on success, or -1 if an
|
||||
* error occurred (in which case, *errno* is set appropriately).
|
||||
*
|
||||
* NOTES
|
||||
* eBPF objects (maps and programs) can be shared between processes.
|
||||
*
|
||||
@@ -961,6 +973,7 @@ enum bpf_cmd {
|
||||
BPF_LINK_DETACH,
|
||||
BPF_PROG_BIND_MAP,
|
||||
BPF_TOKEN_CREATE,
|
||||
BPF_PROG_STREAM_READ_BY_FD,
|
||||
__MAX_BPF_CMD,
|
||||
};
|
||||
|
||||
@@ -1463,6 +1476,11 @@ struct bpf_stack_build_id {
|
||||
|
||||
#define BPF_OBJ_NAME_LEN 16U
|
||||
|
||||
enum {
|
||||
BPF_STREAM_STDOUT = 1,
|
||||
BPF_STREAM_STDERR = 2,
|
||||
};
|
||||
|
||||
union bpf_attr {
|
||||
struct { /* anonymous struct used by BPF_MAP_CREATE command */
|
||||
__u32 map_type; /* one of enum bpf_map_type */
|
||||
@@ -1794,6 +1812,13 @@ union bpf_attr {
|
||||
};
|
||||
__u64 expected_revision;
|
||||
} netkit;
|
||||
struct {
|
||||
union {
|
||||
__u32 relative_fd;
|
||||
__u32 relative_id;
|
||||
};
|
||||
__u64 expected_revision;
|
||||
} cgroup;
|
||||
};
|
||||
} link_create;
|
||||
|
||||
@@ -1842,6 +1867,13 @@ union bpf_attr {
|
||||
__u32 bpffs_fd;
|
||||
} token_create;
|
||||
|
||||
struct {
|
||||
__aligned_u64 stream_buf;
|
||||
__u32 stream_buf_len;
|
||||
__u32 stream_id;
|
||||
__u32 prog_fd;
|
||||
} prog_stream_read;
|
||||
|
||||
} __attribute__((aligned(8)));
|
||||
|
||||
/* The description below is an attempt at providing documentation to eBPF
|
||||
@@ -2403,7 +2435,7 @@ union bpf_attr {
|
||||
* into it. An example is available in file
|
||||
* *samples/bpf/trace_output_user.c* in the Linux kernel source
|
||||
* tree (the eBPF program counterpart is in
|
||||
* *samples/bpf/trace_output_kern.c*).
|
||||
* *samples/bpf/trace_output.bpf.c*).
|
||||
*
|
||||
* **bpf_perf_event_output**\ () achieves better performance
|
||||
* than **bpf_trace_printk**\ () for sharing data with user
|
||||
@@ -6653,11 +6685,15 @@ struct bpf_link_info {
|
||||
struct {
|
||||
__aligned_u64 tp_name; /* in/out: tp_name buffer ptr */
|
||||
__u32 tp_name_len; /* in/out: tp_name buffer len */
|
||||
__u32 :32;
|
||||
__u64 cookie;
|
||||
} raw_tracepoint;
|
||||
struct {
|
||||
__u32 attach_type;
|
||||
__u32 target_obj_id; /* prog_id for PROG_EXT, otherwise btf object id */
|
||||
__u32 target_btf_id; /* BTF type id inside the object */
|
||||
__u32 :32;
|
||||
__u64 cookie;
|
||||
} tracing;
|
||||
struct {
|
||||
__u64 cgroup_id;
|
||||
@@ -6768,6 +6804,13 @@ struct bpf_link_info {
|
||||
};
|
||||
} __attribute__((aligned(8)));
|
||||
|
||||
struct bpf_token_info {
|
||||
__u64 allowed_cmds;
|
||||
__u64 allowed_maps;
|
||||
__u64 allowed_progs;
|
||||
__u64 allowed_attachs;
|
||||
} __attribute__((aligned(8)));
|
||||
|
||||
/* User bpf_sock_addr struct to access socket fields and sockaddr struct passed
|
||||
* by user and intended to be used by socket (e.g. to bind to, depends on
|
||||
* attach type).
|
||||
|
||||
@@ -616,8 +616,11 @@ struct btrfs_ioctl_clone_range_args {
|
||||
#define BTRFS_DEFRAG_RANGE_COMPRESS 1
|
||||
#define BTRFS_DEFRAG_RANGE_START_IO 2
|
||||
#define BTRFS_DEFRAG_RANGE_COMPRESS_LEVEL 4
|
||||
/* Request no compression on the range (uncompress if necessary). */
|
||||
#define BTRFS_DEFRAG_RANGE_NOCOMPRESS 8
|
||||
#define BTRFS_DEFRAG_RANGE_FLAGS_SUPP (BTRFS_DEFRAG_RANGE_COMPRESS | \
|
||||
BTRFS_DEFRAG_RANGE_COMPRESS_LEVEL | \
|
||||
BTRFS_DEFRAG_RANGE_NOCOMPRESS | \
|
||||
BTRFS_DEFRAG_RANGE_START_IO)
|
||||
|
||||
struct btrfs_ioctl_defrag_range_args {
|
||||
|
||||
@@ -6,9 +6,10 @@
|
||||
* Alexander Kjeldaas <astor@guardian.no>
|
||||
* with help from Aleph1, Roland Buresund and Andrew Main.
|
||||
*
|
||||
* See here for the libcap library ("POSIX draft" compliance):
|
||||
* See here for the libcap2 library (compliant with Section 25 of
|
||||
* the withdrawn POSIX 1003.1e Draft 17):
|
||||
*
|
||||
* ftp://www.kernel.org/pub/linux/libs/security/linux-privs/kernel-2.6/
|
||||
* https://www.kernel.org/pub/linux/libs/security/linux-privs/libcap2/
|
||||
*/
|
||||
|
||||
#ifndef _UAPI_LINUX_CAPABILITY_H
|
||||
|
||||
@@ -0,0 +1,104 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
|
||||
|
||||
#ifndef _UAPI_LINUX_COREDUMP_H
|
||||
#define _UAPI_LINUX_COREDUMP_H
|
||||
|
||||
#include <linux/types.h>
|
||||
|
||||
/**
|
||||
* coredump_{req,ack} flags
|
||||
* @COREDUMP_KERNEL: kernel writes coredump
|
||||
* @COREDUMP_USERSPACE: userspace writes coredump
|
||||
* @COREDUMP_REJECT: don't generate coredump
|
||||
* @COREDUMP_WAIT: wait for coredump server
|
||||
*/
|
||||
enum {
|
||||
COREDUMP_KERNEL = (1ULL << 0),
|
||||
COREDUMP_USERSPACE = (1ULL << 1),
|
||||
COREDUMP_REJECT = (1ULL << 2),
|
||||
COREDUMP_WAIT = (1ULL << 3),
|
||||
};
|
||||
|
||||
/**
|
||||
* struct coredump_req - message kernel sends to userspace
|
||||
* @size: size of struct coredump_req
|
||||
* @size_ack: known size of struct coredump_ack on this kernel
|
||||
* @mask: supported features
|
||||
*
|
||||
* When a coredump happens the kernel will connect to the coredump
|
||||
* socket and send a coredump request to the coredump server. The @size
|
||||
* member is set to the size of struct coredump_req and provides a hint
|
||||
* to userspace how much data can be read. Userspace may use MSG_PEEK to
|
||||
* peek the size of struct coredump_req and then choose to consume it in
|
||||
* one go. Userspace may also simply read a COREDUMP_ACK_SIZE_VER0
|
||||
* request. If the size the kernel sends is larger userspace simply
|
||||
* discards any remaining data.
|
||||
*
|
||||
* The coredump_req->mask member is set to the currently know features.
|
||||
* Userspace may only set coredump_ack->mask to the bits raised by the
|
||||
* kernel in coredump_req->mask.
|
||||
*
|
||||
* The coredump_req->size_ack member is set by the kernel to the size of
|
||||
* struct coredump_ack the kernel knows. Userspace may only send up to
|
||||
* coredump_req->size_ack bytes to the kernel and must set
|
||||
* coredump_ack->size accordingly.
|
||||
*/
|
||||
struct coredump_req {
|
||||
__u32 size;
|
||||
__u32 size_ack;
|
||||
__u64 mask;
|
||||
};
|
||||
|
||||
enum {
|
||||
COREDUMP_REQ_SIZE_VER0 = 16U, /* size of first published struct */
|
||||
};
|
||||
|
||||
/**
|
||||
* struct coredump_ack - message userspace sends to kernel
|
||||
* @size: size of the struct
|
||||
* @spare: unused
|
||||
* @mask: features kernel is supposed to use
|
||||
*
|
||||
* The @size member must be set to the size of struct coredump_ack. It
|
||||
* may never exceed what the kernel returned in coredump_req->size_ack
|
||||
* but it may of course be smaller (>= COREDUMP_ACK_SIZE_VER0 and <=
|
||||
* coredump_req->size_ack).
|
||||
*
|
||||
* The @mask member must be set to the features the coredump server
|
||||
* wants the kernel to use. Only bits the kernel returned in
|
||||
* coredump_req->mask may be set.
|
||||
*/
|
||||
struct coredump_ack {
|
||||
__u32 size;
|
||||
__u32 spare;
|
||||
__u64 mask;
|
||||
};
|
||||
|
||||
enum {
|
||||
COREDUMP_ACK_SIZE_VER0 = 16U, /* size of first published struct */
|
||||
};
|
||||
|
||||
/**
|
||||
* enum coredump_mark - Markers for the coredump socket
|
||||
*
|
||||
* The kernel will place a single byte on the coredump socket. The
|
||||
* markers notify userspace whether the coredump ack succeeded or
|
||||
* failed.
|
||||
*
|
||||
* @COREDUMP_MARK_MINSIZE: the provided coredump_ack size was too small
|
||||
* @COREDUMP_MARK_MAXSIZE: the provided coredump_ack size was too big
|
||||
* @COREDUMP_MARK_UNSUPPORTED: the provided coredump_ack mask was invalid
|
||||
* @COREDUMP_MARK_CONFLICTING: the provided coredump_ack mask has conflicting options
|
||||
* @COREDUMP_MARK_REQACK: the coredump request and ack was successful
|
||||
* @__COREDUMP_MARK_MAX: the maximum coredump mark value
|
||||
*/
|
||||
enum coredump_mark {
|
||||
COREDUMP_MARK_REQACK = 0U,
|
||||
COREDUMP_MARK_MINSIZE = 1U,
|
||||
COREDUMP_MARK_MAXSIZE = 2U,
|
||||
COREDUMP_MARK_UNSUPPORTED = 3U,
|
||||
COREDUMP_MARK_CONFLICTING = 4U,
|
||||
__COREDUMP_MARK_MAX = (1U << 31),
|
||||
};
|
||||
|
||||
#endif /* _UAPI_LINUX_COREDUMP_H */
|
||||
@@ -221,6 +221,11 @@ enum devlink_port_flavour {
|
||||
*/
|
||||
};
|
||||
|
||||
/* IEEE 802.1Qaz standard supported values. */
|
||||
|
||||
#define DEVLINK_RATE_TCS_MAX 8
|
||||
#define DEVLINK_RATE_TC_INDEX_MAX (DEVLINK_RATE_TCS_MAX - 1)
|
||||
|
||||
enum devlink_rate_type {
|
||||
DEVLINK_RATE_TYPE_LEAF,
|
||||
DEVLINK_RATE_TYPE_NODE,
|
||||
@@ -629,6 +634,8 @@ enum devlink_attr {
|
||||
|
||||
DEVLINK_ATTR_REGION_DIRECT, /* flag */
|
||||
|
||||
DEVLINK_ATTR_RATE_TC_BWS, /* nested */
|
||||
|
||||
/* Add new attributes above here, update the spec in
|
||||
* Documentation/netlink/specs/devlink.yaml and re-generate
|
||||
* net/devlink/netlink_gen.c.
|
||||
@@ -638,6 +645,15 @@ enum devlink_attr {
|
||||
DEVLINK_ATTR_MAX = __DEVLINK_ATTR_MAX - 1
|
||||
};
|
||||
|
||||
enum devlink_rate_tc_attr {
|
||||
DEVLINK_RATE_TC_ATTR_UNSPEC,
|
||||
DEVLINK_RATE_TC_ATTR_INDEX, /* u8 */
|
||||
DEVLINK_RATE_TC_ATTR_BW, /* u32 */
|
||||
|
||||
__DEVLINK_RATE_TC_ATTR_MAX,
|
||||
DEVLINK_RATE_TC_ATTR_MAX = __DEVLINK_RATE_TC_ATTR_MAX - 1
|
||||
};
|
||||
|
||||
/* Mapping between internal resource described by the field and system
|
||||
* structure
|
||||
*/
|
||||
|
||||
@@ -192,6 +192,17 @@ enum dpll_pin_capabilities {
|
||||
|
||||
#define DPLL_PHASE_OFFSET_DIVIDER 1000
|
||||
|
||||
/**
|
||||
* enum dpll_feature_state - Allow control (enable/disable) and status checking
|
||||
* over features.
|
||||
* @DPLL_FEATURE_STATE_DISABLE: feature shall be disabled
|
||||
* @DPLL_FEATURE_STATE_ENABLE: feature shall be enabled
|
||||
*/
|
||||
enum dpll_feature_state {
|
||||
DPLL_FEATURE_STATE_DISABLE,
|
||||
DPLL_FEATURE_STATE_ENABLE,
|
||||
};
|
||||
|
||||
enum dpll_a {
|
||||
DPLL_A_ID = 1,
|
||||
DPLL_A_MODULE_NAME,
|
||||
@@ -204,6 +215,7 @@ enum dpll_a {
|
||||
DPLL_A_TYPE,
|
||||
DPLL_A_LOCK_STATUS_ERROR,
|
||||
DPLL_A_CLOCK_QUALITY_LEVEL,
|
||||
DPLL_A_PHASE_OFFSET_MONITOR,
|
||||
|
||||
__DPLL_A_MAX,
|
||||
DPLL_A_MAX = (__DPLL_A_MAX - 1)
|
||||
@@ -237,6 +249,7 @@ enum dpll_a_pin {
|
||||
DPLL_A_PIN_ESYNC_FREQUENCY,
|
||||
DPLL_A_PIN_ESYNC_FREQUENCY_SUPPORTED,
|
||||
DPLL_A_PIN_ESYNC_PULSE,
|
||||
DPLL_A_PIN_REFERENCE_SYNC,
|
||||
|
||||
__DPLL_A_PIN_MAX,
|
||||
DPLL_A_PIN_MAX = (__DPLL_A_PIN_MAX - 1)
|
||||
|
||||
@@ -2314,7 +2314,7 @@ enum {
|
||||
IPV6_USER_FLOW = 0x0e, /* spec only (usr_ip6_spec; nfc only) */
|
||||
IPV4_FLOW = 0x10, /* hash only */
|
||||
IPV6_FLOW = 0x11, /* hash only */
|
||||
ETHER_FLOW = 0x12, /* spec only (ether_spec) */
|
||||
ETHER_FLOW = 0x12, /* hash or spec (ether_spec) */
|
||||
|
||||
/* Used for GTP-U IPv4 and IPv6.
|
||||
* The format of GTP packets only includes
|
||||
@@ -2371,7 +2371,7 @@ enum {
|
||||
/* Flag to enable RSS spreading of traffic matching rule (nfc only) */
|
||||
#define FLOW_RSS 0x20000000
|
||||
|
||||
/* L3-L4 network traffic flow hash options */
|
||||
/* L2-L4 network traffic flow hash options */
|
||||
#define RXH_L2DA (1 << 1)
|
||||
#define RXH_VLAN (1 << 2)
|
||||
#define RXH_L3_PROTO (1 << 3)
|
||||
|
||||
@@ -208,10 +208,4 @@ enum {
|
||||
ETHTOOL_A_STATS_PHY_MAX = (__ETHTOOL_A_STATS_PHY_CNT - 1)
|
||||
};
|
||||
|
||||
/* generic netlink info */
|
||||
#define ETHTOOL_GENL_NAME "ethtool"
|
||||
#define ETHTOOL_GENL_VERSION 1
|
||||
|
||||
#define ETHTOOL_MCGRP_MONITOR_NAME "monitor"
|
||||
|
||||
#endif /* _UAPI_LINUX_ETHTOOL_NETLINK_H_ */
|
||||
|
||||
@@ -6,8 +6,8 @@
|
||||
#ifndef _UAPI_LINUX_ETHTOOL_NETLINK_GENERATED_H
|
||||
#define _UAPI_LINUX_ETHTOOL_NETLINK_GENERATED_H
|
||||
|
||||
#define ETHTOOL_FAMILY_NAME "ethtool"
|
||||
#define ETHTOOL_FAMILY_VERSION 1
|
||||
#define ETHTOOL_GENL_NAME "ethtool"
|
||||
#define ETHTOOL_GENL_VERSION 1
|
||||
|
||||
enum {
|
||||
ETHTOOL_UDP_TUNNEL_TYPE_VXLAN,
|
||||
@@ -49,6 +49,34 @@ enum hwtstamp_source {
|
||||
HWTSTAMP_SOURCE_PHYLIB,
|
||||
};
|
||||
|
||||
/**
|
||||
* enum ethtool_pse_event - PSE event list for the PSE controller
|
||||
* @ETHTOOL_PSE_EVENT_OVER_CURRENT: PSE output current is too high
|
||||
* @ETHTOOL_PSE_EVENT_OVER_TEMP: PSE in over temperature state
|
||||
* @ETHTOOL_C33_PSE_EVENT_DETECTION: detection process occur on the PSE. IEEE
|
||||
* 802.3-2022 33.2.5 and 145.2.6 PSE detection of PDs. IEEE 802.3-202
|
||||
* 30.9.1.1.5 aPSEPowerDetectionStatus
|
||||
* @ETHTOOL_C33_PSE_EVENT_CLASSIFICATION: classification process occur on the
|
||||
* PSE. IEEE 802.3-2022 33.2.6 and 145.2.8 classification of PDs mutual
|
||||
* identification. IEEE 802.3-2022 30.9.1.1.8 aPSEPowerClassification.
|
||||
* @ETHTOOL_C33_PSE_EVENT_DISCONNECTION: PD has been disconnected on the PSE.
|
||||
* IEEE 802.3-2022 33.3.8 and 145.3.9 PD Maintain Power Signature. IEEE
|
||||
* 802.3-2022 33.5.1.2.9 MPS Absent. IEEE 802.3-2022 30.9.1.1.20
|
||||
* aPSEMPSAbsentCounter.
|
||||
* @ETHTOOL_PSE_EVENT_OVER_BUDGET: PSE turned off due to over budget situation
|
||||
* @ETHTOOL_PSE_EVENT_SW_PW_CONTROL_ERROR: PSE faced an error managing the
|
||||
* power control from software
|
||||
*/
|
||||
enum ethtool_pse_event {
|
||||
ETHTOOL_PSE_EVENT_OVER_CURRENT = 1,
|
||||
ETHTOOL_PSE_EVENT_OVER_TEMP = 2,
|
||||
ETHTOOL_C33_PSE_EVENT_DETECTION = 4,
|
||||
ETHTOOL_C33_PSE_EVENT_CLASSIFICATION = 8,
|
||||
ETHTOOL_C33_PSE_EVENT_DISCONNECTION = 16,
|
||||
ETHTOOL_PSE_EVENT_OVER_BUDGET = 32,
|
||||
ETHTOOL_PSE_EVENT_SW_PW_CONTROL_ERROR = 64,
|
||||
};
|
||||
|
||||
enum {
|
||||
ETHTOOL_A_HEADER_UNSPEC,
|
||||
ETHTOOL_A_HEADER_DEV_INDEX,
|
||||
@@ -642,11 +670,47 @@ enum {
|
||||
ETHTOOL_A_C33_PSE_EXT_SUBSTATE,
|
||||
ETHTOOL_A_C33_PSE_AVAIL_PW_LIMIT,
|
||||
ETHTOOL_A_C33_PSE_PW_LIMIT_RANGES,
|
||||
ETHTOOL_A_PSE_PW_D_ID,
|
||||
ETHTOOL_A_PSE_PRIO_MAX,
|
||||
ETHTOOL_A_PSE_PRIO,
|
||||
|
||||
__ETHTOOL_A_PSE_CNT,
|
||||
ETHTOOL_A_PSE_MAX = (__ETHTOOL_A_PSE_CNT - 1)
|
||||
};
|
||||
|
||||
enum {
|
||||
ETHTOOL_A_FLOW_ETHER = 1,
|
||||
ETHTOOL_A_FLOW_IP4,
|
||||
ETHTOOL_A_FLOW_IP6,
|
||||
ETHTOOL_A_FLOW_TCP4,
|
||||
ETHTOOL_A_FLOW_TCP6,
|
||||
ETHTOOL_A_FLOW_UDP4,
|
||||
ETHTOOL_A_FLOW_UDP6,
|
||||
ETHTOOL_A_FLOW_SCTP4,
|
||||
ETHTOOL_A_FLOW_SCTP6,
|
||||
ETHTOOL_A_FLOW_AH4,
|
||||
ETHTOOL_A_FLOW_AH6,
|
||||
ETHTOOL_A_FLOW_ESP4,
|
||||
ETHTOOL_A_FLOW_ESP6,
|
||||
ETHTOOL_A_FLOW_AH_ESP4,
|
||||
ETHTOOL_A_FLOW_AH_ESP6,
|
||||
ETHTOOL_A_FLOW_GTPU4,
|
||||
ETHTOOL_A_FLOW_GTPU6,
|
||||
ETHTOOL_A_FLOW_GTPC4,
|
||||
ETHTOOL_A_FLOW_GTPC6,
|
||||
ETHTOOL_A_FLOW_GTPC_TEID4,
|
||||
ETHTOOL_A_FLOW_GTPC_TEID6,
|
||||
ETHTOOL_A_FLOW_GTPU_EH4,
|
||||
ETHTOOL_A_FLOW_GTPU_EH6,
|
||||
ETHTOOL_A_FLOW_GTPU_UL4,
|
||||
ETHTOOL_A_FLOW_GTPU_UL6,
|
||||
ETHTOOL_A_FLOW_GTPU_DL4,
|
||||
ETHTOOL_A_FLOW_GTPU_DL6,
|
||||
|
||||
__ETHTOOL_A_FLOW_CNT,
|
||||
ETHTOOL_A_FLOW_MAX = (__ETHTOOL_A_FLOW_CNT - 1)
|
||||
};
|
||||
|
||||
enum {
|
||||
ETHTOOL_A_RSS_UNSPEC,
|
||||
ETHTOOL_A_RSS_HEADER,
|
||||
@@ -656,6 +720,7 @@ enum {
|
||||
ETHTOOL_A_RSS_HKEY,
|
||||
ETHTOOL_A_RSS_INPUT_XFRM,
|
||||
ETHTOOL_A_RSS_START_CONTEXT,
|
||||
ETHTOOL_A_RSS_FLOW_HASH,
|
||||
|
||||
__ETHTOOL_A_RSS_CNT,
|
||||
ETHTOOL_A_RSS_MAX = (__ETHTOOL_A_RSS_CNT - 1)
|
||||
@@ -718,6 +783,14 @@ enum {
|
||||
ETHTOOL_A_TSCONFIG_MAX = (__ETHTOOL_A_TSCONFIG_CNT - 1)
|
||||
};
|
||||
|
||||
enum {
|
||||
ETHTOOL_A_PSE_NTF_HEADER = 1,
|
||||
ETHTOOL_A_PSE_NTF_EVENTS,
|
||||
|
||||
__ETHTOOL_A_PSE_NTF_CNT,
|
||||
ETHTOOL_A_PSE_NTF_MAX = (__ETHTOOL_A_PSE_NTF_CNT - 1)
|
||||
};
|
||||
|
||||
enum {
|
||||
ETHTOOL_MSG_USER_NONE = 0,
|
||||
ETHTOOL_MSG_STRSET_GET = 1,
|
||||
@@ -767,6 +840,9 @@ enum {
|
||||
ETHTOOL_MSG_PHY_GET,
|
||||
ETHTOOL_MSG_TSCONFIG_GET,
|
||||
ETHTOOL_MSG_TSCONFIG_SET,
|
||||
ETHTOOL_MSG_RSS_SET,
|
||||
ETHTOOL_MSG_RSS_CREATE_ACT,
|
||||
ETHTOOL_MSG_RSS_DELETE_ACT,
|
||||
|
||||
__ETHTOOL_MSG_USER_CNT,
|
||||
ETHTOOL_MSG_USER_MAX = (__ETHTOOL_MSG_USER_CNT - 1)
|
||||
@@ -822,9 +898,16 @@ enum {
|
||||
ETHTOOL_MSG_PHY_NTF,
|
||||
ETHTOOL_MSG_TSCONFIG_GET_REPLY,
|
||||
ETHTOOL_MSG_TSCONFIG_SET_REPLY,
|
||||
ETHTOOL_MSG_PSE_NTF,
|
||||
ETHTOOL_MSG_RSS_NTF,
|
||||
ETHTOOL_MSG_RSS_CREATE_ACT_REPLY,
|
||||
ETHTOOL_MSG_RSS_CREATE_NTF,
|
||||
ETHTOOL_MSG_RSS_DELETE_NTF,
|
||||
|
||||
__ETHTOOL_MSG_KERNEL_CNT,
|
||||
ETHTOOL_MSG_KERNEL_MAX = (__ETHTOOL_MSG_KERNEL_CNT - 1)
|
||||
};
|
||||
|
||||
#define ETHTOOL_MCGRP_MONITOR_NAME "monitor"
|
||||
|
||||
#endif /* _UAPI_LINUX_ETHTOOL_NETLINK_GENERATED_H */
|
||||
|
||||
@@ -78,4 +78,21 @@
|
||||
*/
|
||||
#define FALLOC_FL_UNSHARE_RANGE 0x40
|
||||
|
||||
/*
|
||||
* FALLOC_FL_WRITE_ZEROES zeroes a specified file range in such a way that
|
||||
* subsequent writes to that range do not require further changes to the file
|
||||
* mapping metadata. This flag is beneficial for subsequent pure overwriting
|
||||
* within this range, as it can save on block allocation and, consequently,
|
||||
* significant metadata changes. Therefore, filesystems that always require
|
||||
* out-of-place writes should not support this flag.
|
||||
*
|
||||
* Different filesystems may implement different limitations on the
|
||||
* granularity of the zeroing operation. Most will preferably be accelerated
|
||||
* by submitting write zeroes command if the backing storage supports, which
|
||||
* may not physically write zeros to the media.
|
||||
*
|
||||
* This flag cannot be specified in conjunction with the FALLOC_FL_KEEP_SIZE.
|
||||
*/
|
||||
#define FALLOC_FL_WRITE_ZEROES 0x80
|
||||
|
||||
#endif /* _UAPI_FALLOC_H_ */
|
||||
|
||||
@@ -90,10 +90,28 @@
|
||||
#define DN_ATTRIB 0x00000020 /* File changed attibutes */
|
||||
#define DN_MULTISHOT 0x80000000 /* Don't remove notifier */
|
||||
|
||||
/* Reserved kernel ranges [-100], [-10000, -40000]. */
|
||||
#define AT_FDCWD -100 /* Special value for dirfd used to
|
||||
indicate openat should use the
|
||||
current working directory. */
|
||||
|
||||
/*
|
||||
* The concept of process and threads in userland and the kernel is a confusing
|
||||
* one - within the kernel every thread is a 'task' with its own individual PID,
|
||||
* however from userland's point of view threads are grouped by a single PID,
|
||||
* which is that of the 'thread group leader', typically the first thread
|
||||
* spawned.
|
||||
*
|
||||
* To cut the Gideon knot, for internal kernel usage, we refer to
|
||||
* PIDFD_SELF_THREAD to refer to the current thread (or task from a kernel
|
||||
* perspective), and PIDFD_SELF_THREAD_GROUP to refer to the current thread
|
||||
* group leader...
|
||||
*/
|
||||
#define PIDFD_SELF_THREAD -10000 /* Current thread. */
|
||||
#define PIDFD_SELF_THREAD_GROUP -10001 /* Current thread group leader. */
|
||||
|
||||
#define FD_PIDFS_ROOT -10002 /* Root of the pidfs filesystem */
|
||||
#define FD_INVALID -10009 /* Invalid file descriptor: -10000 - EBADF = -10009 */
|
||||
|
||||
/* Generic flags for the *at(2) family of syscalls. */
|
||||
|
||||
|
||||
@@ -60,6 +60,17 @@
|
||||
#define RENAME_EXCHANGE (1 << 1) /* Exchange source and dest */
|
||||
#define RENAME_WHITEOUT (1 << 2) /* Whiteout source */
|
||||
|
||||
/*
|
||||
* The root inode of procfs is guaranteed to always have the same inode number.
|
||||
* For programs that make heavy use of procfs, verifying that the root is a
|
||||
* real procfs root and using openat2(RESOLVE_{NO_{XDEV,MAGICLINKS},BENEATH})
|
||||
* will allow you to make sure you are never tricked into operating on the
|
||||
* wrong procfs file.
|
||||
*/
|
||||
enum procfs_ino {
|
||||
PROCFS_ROOT_INO = 1,
|
||||
};
|
||||
|
||||
struct file_clone_range {
|
||||
__s64 src_fd;
|
||||
__u64 src_offset;
|
||||
@@ -91,6 +102,63 @@ struct fs_sysfs_path {
|
||||
__u8 name[128];
|
||||
};
|
||||
|
||||
/* Protection info capability flags */
|
||||
#define LBMD_PI_CAP_INTEGRITY (1 << 0)
|
||||
#define LBMD_PI_CAP_REFTAG (1 << 1)
|
||||
|
||||
/* Checksum types for Protection Information */
|
||||
#define LBMD_PI_CSUM_NONE 0
|
||||
#define LBMD_PI_CSUM_IP 1
|
||||
#define LBMD_PI_CSUM_CRC16_T10DIF 2
|
||||
#define LBMD_PI_CSUM_CRC64_NVME 4
|
||||
|
||||
/* sizeof first published struct */
|
||||
#define LBMD_SIZE_VER0 16
|
||||
|
||||
/*
|
||||
* Logical block metadata capability descriptor
|
||||
* If the device does not support metadata, all the fields will be zero.
|
||||
* Applications must check lbmd_flags to determine whether metadata is
|
||||
* supported or not.
|
||||
*/
|
||||
struct logical_block_metadata_cap {
|
||||
/* Bitmask of logical block metadata capability flags */
|
||||
__u32 lbmd_flags;
|
||||
/*
|
||||
* The amount of data described by each unit of logical block
|
||||
* metadata
|
||||
*/
|
||||
__u16 lbmd_interval;
|
||||
/*
|
||||
* Size in bytes of the logical block metadata associated with each
|
||||
* interval
|
||||
*/
|
||||
__u8 lbmd_size;
|
||||
/*
|
||||
* Size in bytes of the opaque block tag associated with each
|
||||
* interval
|
||||
*/
|
||||
__u8 lbmd_opaque_size;
|
||||
/*
|
||||
* Offset in bytes of the opaque block tag within the logical block
|
||||
* metadata
|
||||
*/
|
||||
__u8 lbmd_opaque_offset;
|
||||
/* Size in bytes of the T10 PI tuple associated with each interval */
|
||||
__u8 lbmd_pi_size;
|
||||
/* Offset in bytes of T10 PI tuple within the logical block metadata */
|
||||
__u8 lbmd_pi_offset;
|
||||
/* T10 PI guard tag type */
|
||||
__u8 lbmd_guard_tag_type;
|
||||
/* Size in bytes of the T10 PI application tag */
|
||||
__u8 lbmd_app_tag_size;
|
||||
/* Size in bytes of the T10 PI reference tag */
|
||||
__u8 lbmd_ref_tag_size;
|
||||
/* Size in bytes of the T10 PI storage tag */
|
||||
__u8 lbmd_storage_tag_size;
|
||||
__u8 pad;
|
||||
};
|
||||
|
||||
/* extent-same (dedupe) ioctls; these MUST match the btrfs ioctl definitions */
|
||||
#define FILE_DEDUPE_RANGE_SAME 0
|
||||
#define FILE_DEDUPE_RANGE_DIFFERS 1
|
||||
@@ -148,6 +216,24 @@ struct fsxattr {
|
||||
unsigned char fsx_pad[8];
|
||||
};
|
||||
|
||||
/*
|
||||
* Variable size structure for file_[sg]et_attr().
|
||||
*
|
||||
* Note. This is alternative to the structure 'struct file_kattr'/'struct fsxattr'.
|
||||
* As this structure is passed to/from userspace with its size, this can
|
||||
* be versioned based on the size.
|
||||
*/
|
||||
struct file_attr {
|
||||
__u64 fa_xflags; /* xflags field value (get/set) */
|
||||
__u32 fa_extsize; /* extsize field value (get/set)*/
|
||||
__u32 fa_nextents; /* nextents field value (get) */
|
||||
__u32 fa_projid; /* project identifier (get/set) */
|
||||
__u32 fa_cowextsize; /* CoW extsize field value (get/set) */
|
||||
};
|
||||
|
||||
#define FILE_ATTR_SIZE_VER0 24
|
||||
#define FILE_ATTR_SIZE_LATEST FILE_ATTR_SIZE_VER0
|
||||
|
||||
/*
|
||||
* Flags for the fsx_xflags field
|
||||
*/
|
||||
@@ -247,6 +333,8 @@ struct fsxattr {
|
||||
* also /sys/kernel/debug/ for filesystems with debugfs exports
|
||||
*/
|
||||
#define FS_IOC_GETFSSYSFSPATH _IOR(0x15, 1, struct fs_sysfs_path)
|
||||
/* Get logical block metadata capability details */
|
||||
#define FS_IOC_GETLBMD_CAP _IOWR(0x15, 2, struct logical_block_metadata_cap)
|
||||
|
||||
/*
|
||||
* Inode flags (FS_IOC_GETFLAGS / FS_IOC_SETFLAGS)
|
||||
|
||||
@@ -45,6 +45,7 @@ enum {
|
||||
HANDSHAKE_A_ACCEPT_PEER_IDENTITY,
|
||||
HANDSHAKE_A_ACCEPT_CERTIFICATE,
|
||||
HANDSHAKE_A_ACCEPT_PEERNAME,
|
||||
HANDSHAKE_A_ACCEPT_KEYRING,
|
||||
|
||||
__HANDSHAKE_A_ACCEPT_MAX,
|
||||
HANDSHAKE_A_ACCEPT_MAX = (__HANDSHAKE_A_ACCEPT_MAX - 1)
|
||||
|
||||
@@ -21,7 +21,8 @@
|
||||
*
|
||||
* @flags:
|
||||
* Supported by all adapters:
|
||||
* %I2C_M_RD: read data (from slave to master). Guaranteed to be 0x0001!
|
||||
* %I2C_M_RD: read data (from slave to master). Guaranteed to be 0x0001! If
|
||||
* not set, the transaction is interpreted as write.
|
||||
*
|
||||
* Optional:
|
||||
* %I2C_M_DMA_SAFE: the buffer of this message is DMA safe. Makes only sense
|
||||
|
||||
@@ -1398,6 +1398,7 @@ enum {
|
||||
IFLA_VXLAN_LOCALBYPASS,
|
||||
IFLA_VXLAN_LABEL_POLICY, /* IPv6 flow label policy; ifla_vxlan_label_policy */
|
||||
IFLA_VXLAN_RESERVED_BITS,
|
||||
IFLA_VXLAN_MC_ROUTE,
|
||||
__IFLA_VXLAN_MAX
|
||||
};
|
||||
#define IFLA_VXLAN_MAX (__IFLA_VXLAN_MAX - 1)
|
||||
@@ -1534,6 +1535,7 @@ enum {
|
||||
IFLA_BOND_MISSED_MAX,
|
||||
IFLA_BOND_NS_IP6_TARGET,
|
||||
IFLA_BOND_COUPLED_CONTROL,
|
||||
IFLA_BOND_BROADCAST_NEIGH,
|
||||
__IFLA_BOND_MAX,
|
||||
};
|
||||
|
||||
|
||||
@@ -93,6 +93,15 @@
|
||||
#define TUN_F_USO4 0x20 /* I can handle USO for IPv4 packets */
|
||||
#define TUN_F_USO6 0x40 /* I can handle USO for IPv6 packets */
|
||||
|
||||
/* I can handle TSO/USO for UDP tunneled packets */
|
||||
#define TUN_F_UDP_TUNNEL_GSO 0x080
|
||||
|
||||
/*
|
||||
* I can handle TSO/USO for UDP tunneled packets requiring csum offload for
|
||||
* the outer header
|
||||
*/
|
||||
#define TUN_F_UDP_TUNNEL_GSO_CSUM 0x100
|
||||
|
||||
/* Protocol info prepended to the packets (when IFF_NO_PI is not set) */
|
||||
#define TUN_PKT_STRIP 0x0001
|
||||
struct tun_pi {
|
||||
|
||||
@@ -79,6 +79,7 @@ struct xdp_mmap_offsets {
|
||||
#define XDP_UMEM_COMPLETION_RING 6
|
||||
#define XDP_STATISTICS 7
|
||||
#define XDP_OPTIONS 8
|
||||
#define XDP_MAX_TX_SKB_BUDGET 9
|
||||
|
||||
struct xdp_umem_reg {
|
||||
__u64 addr; /* Start of packet data area */
|
||||
|
||||
@@ -152,7 +152,6 @@ struct in6_flowlabel_req {
|
||||
/*
|
||||
* IPV6 socket options
|
||||
*/
|
||||
#if __UAPI_DEF_IPV6_OPTIONS
|
||||
#define IPV6_ADDRFORM 1
|
||||
#define IPV6_2292PKTINFO 2
|
||||
#define IPV6_2292HOPOPTS 3
|
||||
@@ -169,8 +168,10 @@ struct in6_flowlabel_req {
|
||||
#define IPV6_MULTICAST_IF 17
|
||||
#define IPV6_MULTICAST_HOPS 18
|
||||
#define IPV6_MULTICAST_LOOP 19
|
||||
#if __UAPI_DEF_IPV6_OPTIONS
|
||||
#define IPV6_ADD_MEMBERSHIP 20
|
||||
#define IPV6_DROP_MEMBERSHIP 21
|
||||
#endif
|
||||
#define IPV6_ROUTER_ALERT 22
|
||||
#define IPV6_MTU_DISCOVER 23
|
||||
#define IPV6_MTU 24
|
||||
@@ -203,7 +204,6 @@ struct in6_flowlabel_req {
|
||||
#define IPV6_IPSEC_POLICY 34
|
||||
#define IPV6_XFRM_POLICY 35
|
||||
#define IPV6_HDRINCL 36
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Multicast:
|
||||
|
||||
@@ -601,6 +601,11 @@
|
||||
#define BTN_DPAD_LEFT 0x222
|
||||
#define BTN_DPAD_RIGHT 0x223
|
||||
|
||||
#define BTN_GRIPL 0x224
|
||||
#define BTN_GRIPR 0x225
|
||||
#define BTN_GRIPL2 0x226
|
||||
#define BTN_GRIPR2 0x227
|
||||
|
||||
#define KEY_ALS_TOGGLE 0x230 /* Ambient light sensor */
|
||||
#define KEY_ROTATE_LOCK_TOGGLE 0x231 /* Display rotation lock */
|
||||
#define KEY_REFRESH_RATE_TOGGLE 0x232 /* Display refresh rate toggle */
|
||||
@@ -765,6 +770,9 @@
|
||||
#define KEY_KBD_LCD_MENU4 0x2bb
|
||||
#define KEY_KBD_LCD_MENU5 0x2bc
|
||||
|
||||
/* Performance Boost key (Alienware)/G-Mode key (Dell) */
|
||||
#define KEY_PERFORMANCE 0x2bd
|
||||
|
||||
#define BTN_TRIGGER_HAPPY 0x2c0
|
||||
#define BTN_TRIGGER_HAPPY1 0x2c0
|
||||
#define BTN_TRIGGER_HAPPY2 0x2c1
|
||||
|
||||
@@ -275,6 +275,7 @@ struct input_mask {
|
||||
#define BUS_CEC 0x1E
|
||||
#define BUS_INTEL_ISHTP 0x1F
|
||||
#define BUS_AMD_SFH 0x20
|
||||
#define BUS_SDW 0x21
|
||||
|
||||
/*
|
||||
* MT_TOOL types
|
||||
|
||||
@@ -50,7 +50,7 @@ struct io_uring_sqe {
|
||||
};
|
||||
__u32 len; /* buffer size or number of iovecs */
|
||||
union {
|
||||
__kernel_rwf_t rw_flags;
|
||||
__u32 rw_flags;
|
||||
__u32 fsync_flags;
|
||||
__u16 poll_events; /* compatibility */
|
||||
__u32 poll32_events; /* word-reversed for BE */
|
||||
@@ -392,12 +392,16 @@ enum io_uring_op {
|
||||
* the starting buffer ID in cqe->flags as per
|
||||
* usual for provided buffer usage. The buffers
|
||||
* will be contiguous from the starting buffer ID.
|
||||
*
|
||||
* IORING_SEND_VECTORIZED If set, SEND[_ZC] will take a pointer to a io_vec
|
||||
* to allow vectorized send operations.
|
||||
*/
|
||||
#define IORING_RECVSEND_POLL_FIRST (1U << 0)
|
||||
#define IORING_RECV_MULTISHOT (1U << 1)
|
||||
#define IORING_RECVSEND_FIXED_BUF (1U << 2)
|
||||
#define IORING_SEND_ZC_REPORT_USAGE (1U << 3)
|
||||
#define IORING_RECVSEND_BUNDLE (1U << 4)
|
||||
#define IORING_SEND_VECTORIZED (1U << 5)
|
||||
|
||||
/*
|
||||
* cqe.res for IORING_CQE_F_NOTIF if
|
||||
@@ -449,6 +453,7 @@ enum io_uring_msg_ring_flags {
|
||||
#define IORING_NOP_FILE (1U << 1)
|
||||
#define IORING_NOP_FIXED_FILE (1U << 2)
|
||||
#define IORING_NOP_FIXED_BUFFER (1U << 3)
|
||||
#define IORING_NOP_TW (1U << 4)
|
||||
|
||||
/*
|
||||
* IO completion data structure (Completion Queue Entry)
|
||||
@@ -968,6 +973,22 @@ enum io_uring_socket_op {
|
||||
SOCKET_URING_OP_SIOCOUTQ,
|
||||
SOCKET_URING_OP_GETSOCKOPT,
|
||||
SOCKET_URING_OP_SETSOCKOPT,
|
||||
SOCKET_URING_OP_TX_TIMESTAMP,
|
||||
};
|
||||
|
||||
/*
|
||||
* SOCKET_URING_OP_TX_TIMESTAMP definitions
|
||||
*/
|
||||
|
||||
#define IORING_TIMESTAMP_HW_SHIFT 16
|
||||
/* The cqe->flags bit from which the timestamp type is stored */
|
||||
#define IORING_TIMESTAMP_TYPE_SHIFT (IORING_TIMESTAMP_HW_SHIFT + 1)
|
||||
/* The cqe->flags flag signifying whether it's a hardware timestamp */
|
||||
#define IORING_CQE_F_TSTAMP_HW ((__u32)1 << IORING_TIMESTAMP_HW_SHIFT)
|
||||
|
||||
struct io_timespec {
|
||||
__u64 tv_sec;
|
||||
__u64 tv_nsec;
|
||||
};
|
||||
|
||||
/* Zero copy receive refill queue entry */
|
||||
|
||||
@@ -0,0 +1,47 @@
|
||||
#ifndef LINUX_IO_URING_MOCK_FILE_H
|
||||
#define LINUX_IO_URING_MOCK_FILE_H
|
||||
|
||||
#include <linux/types.h>
|
||||
|
||||
enum {
|
||||
IORING_MOCK_FEAT_CMD_COPY,
|
||||
IORING_MOCK_FEAT_RW_ZERO,
|
||||
IORING_MOCK_FEAT_RW_NOWAIT,
|
||||
IORING_MOCK_FEAT_RW_ASYNC,
|
||||
IORING_MOCK_FEAT_POLL,
|
||||
|
||||
IORING_MOCK_FEAT_END,
|
||||
};
|
||||
|
||||
struct io_uring_mock_probe {
|
||||
__u64 features;
|
||||
__u64 __resv[9];
|
||||
};
|
||||
|
||||
enum {
|
||||
IORING_MOCK_CREATE_F_SUPPORT_NOWAIT = 1,
|
||||
IORING_MOCK_CREATE_F_POLL = 2,
|
||||
};
|
||||
|
||||
struct io_uring_mock_create {
|
||||
__u32 out_fd;
|
||||
__u32 flags;
|
||||
__u64 file_size;
|
||||
__u64 rw_delay_ns;
|
||||
__u64 __resv[13];
|
||||
};
|
||||
|
||||
enum {
|
||||
IORING_MOCK_MGR_CMD_PROBE,
|
||||
IORING_MOCK_MGR_CMD_CREATE,
|
||||
};
|
||||
|
||||
enum {
|
||||
IORING_MOCK_CMD_COPY_REGBUF,
|
||||
};
|
||||
|
||||
enum {
|
||||
IORING_MOCK_COPY_FROM = 1,
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -56,6 +56,7 @@ enum {
|
||||
IOMMUFD_CMD_VDEVICE_ALLOC = 0x91,
|
||||
IOMMUFD_CMD_IOAS_CHANGE_PROCESS = 0x92,
|
||||
IOMMUFD_CMD_VEVENTQ_ALLOC = 0x93,
|
||||
IOMMUFD_CMD_HW_QUEUE_ALLOC = 0x94,
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -590,17 +591,44 @@ struct iommu_hw_info_arm_smmuv3 {
|
||||
__u32 aidr;
|
||||
};
|
||||
|
||||
/**
|
||||
* struct iommu_hw_info_tegra241_cmdqv - NVIDIA Tegra241 CMDQV Hardware
|
||||
* Information (IOMMU_HW_INFO_TYPE_TEGRA241_CMDQV)
|
||||
*
|
||||
* @flags: Must be 0
|
||||
* @version: Version number for the CMDQ-V HW for PARAM bits[03:00]
|
||||
* @log2vcmdqs: Log2 of the total number of VCMDQs for PARAM bits[07:04]
|
||||
* @log2vsids: Log2 of the total number of SID replacements for PARAM bits[15:12]
|
||||
* @__reserved: Must be 0
|
||||
*
|
||||
* VMM can use these fields directly in its emulated global PARAM register. Note
|
||||
* that only one Virtual Interface (VINTF) should be exposed to a VM, i.e. PARAM
|
||||
* bits[11:08] should be set to 0 for log2 of the total number of VINTFs.
|
||||
*/
|
||||
struct iommu_hw_info_tegra241_cmdqv {
|
||||
__u32 flags;
|
||||
__u8 version;
|
||||
__u8 log2vcmdqs;
|
||||
__u8 log2vsids;
|
||||
__u8 __reserved;
|
||||
};
|
||||
|
||||
/**
|
||||
* enum iommu_hw_info_type - IOMMU Hardware Info Types
|
||||
* @IOMMU_HW_INFO_TYPE_NONE: Used by the drivers that do not report hardware
|
||||
* @IOMMU_HW_INFO_TYPE_NONE: Output by the drivers that do not report hardware
|
||||
* info
|
||||
* @IOMMU_HW_INFO_TYPE_DEFAULT: Input to request for a default type
|
||||
* @IOMMU_HW_INFO_TYPE_INTEL_VTD: Intel VT-d iommu info type
|
||||
* @IOMMU_HW_INFO_TYPE_ARM_SMMUV3: ARM SMMUv3 iommu info type
|
||||
* @IOMMU_HW_INFO_TYPE_TEGRA241_CMDQV: NVIDIA Tegra241 CMDQV (extension for ARM
|
||||
* SMMUv3) info type
|
||||
*/
|
||||
enum iommu_hw_info_type {
|
||||
IOMMU_HW_INFO_TYPE_NONE = 0,
|
||||
IOMMU_HW_INFO_TYPE_DEFAULT = 0,
|
||||
IOMMU_HW_INFO_TYPE_INTEL_VTD = 1,
|
||||
IOMMU_HW_INFO_TYPE_ARM_SMMUV3 = 2,
|
||||
IOMMU_HW_INFO_TYPE_TEGRA241_CMDQV = 3,
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -625,6 +653,15 @@ enum iommufd_hw_capabilities {
|
||||
IOMMU_HW_CAP_PCI_PASID_PRIV = 1 << 2,
|
||||
};
|
||||
|
||||
/**
|
||||
* enum iommufd_hw_info_flags - Flags for iommu_hw_info
|
||||
* @IOMMU_HW_INFO_FLAG_INPUT_TYPE: If set, @in_data_type carries an input type
|
||||
* for user space to request for a specific info
|
||||
*/
|
||||
enum iommufd_hw_info_flags {
|
||||
IOMMU_HW_INFO_FLAG_INPUT_TYPE = 1 << 0,
|
||||
};
|
||||
|
||||
/**
|
||||
* struct iommu_hw_info - ioctl(IOMMU_GET_HW_INFO)
|
||||
* @size: sizeof(struct iommu_hw_info)
|
||||
@@ -634,6 +671,12 @@ enum iommufd_hw_capabilities {
|
||||
* data that kernel supports
|
||||
* @data_uptr: User pointer to a user-space buffer used by the kernel to fill
|
||||
* the iommu type specific hardware information data
|
||||
* @in_data_type: This shares the same field with @out_data_type, making it be
|
||||
* a bidirectional field. When IOMMU_HW_INFO_FLAG_INPUT_TYPE is
|
||||
* set, an input type carried via this @in_data_type field will
|
||||
* be valid, requesting for the info data to the given type. If
|
||||
* IOMMU_HW_INFO_FLAG_INPUT_TYPE is unset, any input value will
|
||||
* be seen as IOMMU_HW_INFO_TYPE_DEFAULT
|
||||
* @out_data_type: Output the iommu hardware info type as defined in the enum
|
||||
* iommu_hw_info_type.
|
||||
* @out_capabilities: Output the generic iommu capability info type as defined
|
||||
@@ -663,7 +706,10 @@ struct iommu_hw_info {
|
||||
__u32 dev_id;
|
||||
__u32 data_len;
|
||||
__aligned_u64 data_uptr;
|
||||
__u32 out_data_type;
|
||||
union {
|
||||
__u32 in_data_type;
|
||||
__u32 out_data_type;
|
||||
};
|
||||
__u8 out_max_pasid_log2;
|
||||
__u8 __reserved[3];
|
||||
__aligned_u64 out_capabilities;
|
||||
@@ -951,10 +997,29 @@ struct iommu_fault_alloc {
|
||||
* enum iommu_viommu_type - Virtual IOMMU Type
|
||||
* @IOMMU_VIOMMU_TYPE_DEFAULT: Reserved for future use
|
||||
* @IOMMU_VIOMMU_TYPE_ARM_SMMUV3: ARM SMMUv3 driver specific type
|
||||
* @IOMMU_VIOMMU_TYPE_TEGRA241_CMDQV: NVIDIA Tegra241 CMDQV (extension for ARM
|
||||
* SMMUv3) enabled ARM SMMUv3 type
|
||||
*/
|
||||
enum iommu_viommu_type {
|
||||
IOMMU_VIOMMU_TYPE_DEFAULT = 0,
|
||||
IOMMU_VIOMMU_TYPE_ARM_SMMUV3 = 1,
|
||||
IOMMU_VIOMMU_TYPE_TEGRA241_CMDQV = 2,
|
||||
};
|
||||
|
||||
/**
|
||||
* struct iommu_viommu_tegra241_cmdqv - NVIDIA Tegra241 CMDQV Virtual Interface
|
||||
* (IOMMU_VIOMMU_TYPE_TEGRA241_CMDQV)
|
||||
* @out_vintf_mmap_offset: mmap offset argument for VINTF's page0
|
||||
* @out_vintf_mmap_length: mmap length argument for VINTF's page0
|
||||
*
|
||||
* Both @out_vintf_mmap_offset and @out_vintf_mmap_length are reported by kernel
|
||||
* for user space to mmap the VINTF page0 from the host physical address space
|
||||
* to the guest physical address space so that a guest kernel can directly R/W
|
||||
* access to the VINTF page0 in order to control its virtual command queues.
|
||||
*/
|
||||
struct iommu_viommu_tegra241_cmdqv {
|
||||
__aligned_u64 out_vintf_mmap_offset;
|
||||
__aligned_u64 out_vintf_mmap_length;
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -965,6 +1030,9 @@ enum iommu_viommu_type {
|
||||
* @dev_id: The device's physical IOMMU will be used to back the virtual IOMMU
|
||||
* @hwpt_id: ID of a nesting parent HWPT to associate to
|
||||
* @out_viommu_id: Output virtual IOMMU ID for the allocated object
|
||||
* @data_len: Length of the type specific data
|
||||
* @__reserved: Must be 0
|
||||
* @data_uptr: User pointer to a driver-specific virtual IOMMU data
|
||||
*
|
||||
* Allocate a virtual IOMMU object, representing the underlying physical IOMMU's
|
||||
* virtualization support that is a security-isolated slice of the real IOMMU HW
|
||||
@@ -985,6 +1053,9 @@ struct iommu_viommu_alloc {
|
||||
__u32 dev_id;
|
||||
__u32 hwpt_id;
|
||||
__u32 out_viommu_id;
|
||||
__u32 data_len;
|
||||
__u32 __reserved;
|
||||
__aligned_u64 data_uptr;
|
||||
};
|
||||
#define IOMMU_VIOMMU_ALLOC _IO(IOMMUFD_TYPE, IOMMUFD_CMD_VIOMMU_ALLOC)
|
||||
|
||||
@@ -995,10 +1066,15 @@ struct iommu_viommu_alloc {
|
||||
* @dev_id: The physical device to allocate a virtual instance on the vIOMMU
|
||||
* @out_vdevice_id: Object handle for the vDevice. Pass to IOMMU_DESTORY
|
||||
* @virt_id: Virtual device ID per vIOMMU, e.g. vSID of ARM SMMUv3, vDeviceID
|
||||
* of AMD IOMMU, and vRID of a nested Intel VT-d to a Context Table
|
||||
* of AMD IOMMU, and vRID of Intel VT-d
|
||||
*
|
||||
* Allocate a virtual device instance (for a physical device) against a vIOMMU.
|
||||
* This instance holds the device's information (related to its vIOMMU) in a VM.
|
||||
* User should use IOMMU_DESTROY to destroy the virtual device before
|
||||
* destroying the physical device (by closing vfio_cdev fd). Otherwise the
|
||||
* virtual device would be forcibly destroyed on physical device destruction,
|
||||
* its vdevice_id would be permanently leaked (unremovable & unreusable) until
|
||||
* iommu fd closed.
|
||||
*/
|
||||
struct iommu_vdevice_alloc {
|
||||
__u32 size;
|
||||
@@ -1075,10 +1151,12 @@ struct iommufd_vevent_header {
|
||||
* enum iommu_veventq_type - Virtual Event Queue Type
|
||||
* @IOMMU_VEVENTQ_TYPE_DEFAULT: Reserved for future use
|
||||
* @IOMMU_VEVENTQ_TYPE_ARM_SMMUV3: ARM SMMUv3 Virtual Event Queue
|
||||
* @IOMMU_VEVENTQ_TYPE_TEGRA241_CMDQV: NVIDIA Tegra241 CMDQV Extension IRQ
|
||||
*/
|
||||
enum iommu_veventq_type {
|
||||
IOMMU_VEVENTQ_TYPE_DEFAULT = 0,
|
||||
IOMMU_VEVENTQ_TYPE_ARM_SMMUV3 = 1,
|
||||
IOMMU_VEVENTQ_TYPE_TEGRA241_CMDQV = 2,
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -1102,6 +1180,19 @@ struct iommu_vevent_arm_smmuv3 {
|
||||
__aligned_le64 evt[4];
|
||||
};
|
||||
|
||||
/**
|
||||
* struct iommu_vevent_tegra241_cmdqv - Tegra241 CMDQV IRQ
|
||||
* (IOMMU_VEVENTQ_TYPE_TEGRA241_CMDQV)
|
||||
* @lvcmdq_err_map: 128-bit logical vcmdq error map, little-endian.
|
||||
* (Refer to register LVCMDQ_ERR_MAPs per VINTF )
|
||||
*
|
||||
* The 128-bit register value from HW exclusively reflect the error bits for a
|
||||
* Virtual Interface represented by a vIOMMU object. Read and report directly.
|
||||
*/
|
||||
struct iommu_vevent_tegra241_cmdqv {
|
||||
__aligned_le64 lvcmdq_err_map[2];
|
||||
};
|
||||
|
||||
/**
|
||||
* struct iommu_veventq_alloc - ioctl(IOMMU_VEVENTQ_ALLOC)
|
||||
* @size: sizeof(struct iommu_veventq_alloc)
|
||||
@@ -1141,4 +1232,61 @@ struct iommu_veventq_alloc {
|
||||
__u32 __reserved;
|
||||
};
|
||||
#define IOMMU_VEVENTQ_ALLOC _IO(IOMMUFD_TYPE, IOMMUFD_CMD_VEVENTQ_ALLOC)
|
||||
|
||||
/**
|
||||
* enum iommu_hw_queue_type - HW Queue Type
|
||||
* @IOMMU_HW_QUEUE_TYPE_DEFAULT: Reserved for future use
|
||||
* @IOMMU_HW_QUEUE_TYPE_TEGRA241_CMDQV: NVIDIA Tegra241 CMDQV (extension for ARM
|
||||
* SMMUv3) Virtual Command Queue (VCMDQ)
|
||||
*/
|
||||
enum iommu_hw_queue_type {
|
||||
IOMMU_HW_QUEUE_TYPE_DEFAULT = 0,
|
||||
/*
|
||||
* TEGRA241_CMDQV requirements (otherwise, allocation will fail)
|
||||
* - alloc starts from the lowest @index=0 in ascending order
|
||||
* - destroy starts from the last allocated @index in descending order
|
||||
* - @base_addr must be aligned to @length in bytes and mapped in IOAS
|
||||
* - @length must be a power of 2, with a minimum 32 bytes and a maximum
|
||||
* 2 ^ idr[1].CMDQS * 16 bytes (use GET_HW_INFO call to read idr[1]
|
||||
* from struct iommu_hw_info_arm_smmuv3)
|
||||
* - suggest to back the queue memory with contiguous physical pages or
|
||||
* a single huge page with alignment of the queue size, and limit the
|
||||
* emulated vSMMU's IDR1.CMDQS to log2(huge page size / 16 bytes)
|
||||
*/
|
||||
IOMMU_HW_QUEUE_TYPE_TEGRA241_CMDQV = 1,
|
||||
};
|
||||
|
||||
/**
|
||||
* struct iommu_hw_queue_alloc - ioctl(IOMMU_HW_QUEUE_ALLOC)
|
||||
* @size: sizeof(struct iommu_hw_queue_alloc)
|
||||
* @flags: Must be 0
|
||||
* @viommu_id: Virtual IOMMU ID to associate the HW queue with
|
||||
* @type: One of enum iommu_hw_queue_type
|
||||
* @index: The logical index to the HW queue per virtual IOMMU for a multi-queue
|
||||
* model
|
||||
* @out_hw_queue_id: The ID of the new HW queue
|
||||
* @nesting_parent_iova: Base address of the queue memory in the guest physical
|
||||
* address space
|
||||
* @length: Length of the queue memory
|
||||
*
|
||||
* Allocate a HW queue object for a vIOMMU-specific HW-accelerated queue, which
|
||||
* allows HW to access a guest queue memory described using @nesting_parent_iova
|
||||
* and @length.
|
||||
*
|
||||
* A vIOMMU can allocate multiple queues, but it must use a different @index per
|
||||
* type to separate each allocation, e.g::
|
||||
*
|
||||
* Type1 HW queue0, Type1 HW queue1, Type2 HW queue0, ...
|
||||
*/
|
||||
struct iommu_hw_queue_alloc {
|
||||
__u32 size;
|
||||
__u32 flags;
|
||||
__u32 viommu_id;
|
||||
__u32 type;
|
||||
__u32 index;
|
||||
__u32 out_hw_queue_id;
|
||||
__aligned_u64 nesting_parent_iova;
|
||||
__aligned_u64 length;
|
||||
};
|
||||
#define IOMMU_HW_QUEUE_ALLOC _IO(IOMMUFD_TYPE, IOMMUFD_CMD_HW_QUEUE_ALLOC)
|
||||
#endif
|
||||
|
||||
@@ -199,6 +199,7 @@ enum {
|
||||
DEVCONF_NDISC_EVICT_NOCARRIER,
|
||||
DEVCONF_ACCEPT_UNTRACKED_NA,
|
||||
DEVCONF_ACCEPT_RA_MIN_LFT,
|
||||
DEVCONF_FORCE_FORWARDING,
|
||||
DEVCONF_MAX
|
||||
};
|
||||
|
||||
|
||||
@@ -27,6 +27,7 @@
|
||||
#define KEXEC_FILE_ON_CRASH 0x00000002
|
||||
#define KEXEC_FILE_NO_INITRAMFS 0x00000004
|
||||
#define KEXEC_FILE_DEBUG 0x00000008
|
||||
#define KEXEC_FILE_NO_CMA 0x00000010
|
||||
|
||||
/* These values match the ELF architecture values.
|
||||
* Unless there is a good reason that should continue to be the case.
|
||||
|
||||
@@ -178,6 +178,7 @@ struct kvm_xen_exit {
|
||||
#define KVM_EXIT_NOTIFY 37
|
||||
#define KVM_EXIT_LOONGARCH_IOCSR 38
|
||||
#define KVM_EXIT_MEMORY_FAULT 39
|
||||
#define KVM_EXIT_TDX 40
|
||||
|
||||
/* For KVM_EXIT_INTERNAL_ERROR */
|
||||
/* Emulate instruction failed. */
|
||||
@@ -447,6 +448,31 @@ struct kvm_run {
|
||||
__u64 gpa;
|
||||
__u64 size;
|
||||
} memory_fault;
|
||||
/* KVM_EXIT_TDX */
|
||||
struct {
|
||||
__u64 flags;
|
||||
__u64 nr;
|
||||
union {
|
||||
struct {
|
||||
__u64 ret;
|
||||
__u64 data[5];
|
||||
} unknown;
|
||||
struct {
|
||||
__u64 ret;
|
||||
__u64 gpa;
|
||||
__u64 size;
|
||||
} get_quote;
|
||||
struct {
|
||||
__u64 ret;
|
||||
__u64 leaf;
|
||||
__u64 r11, r12, r13, r14;
|
||||
} get_tdvmcall_info;
|
||||
struct {
|
||||
__u64 ret;
|
||||
__u64 vector;
|
||||
} setup_event_notify;
|
||||
};
|
||||
} tdx;
|
||||
/* Fix the size of the union. */
|
||||
char padding[256];
|
||||
};
|
||||
@@ -618,6 +644,7 @@ struct kvm_ioeventfd {
|
||||
#define KVM_X86_DISABLE_EXITS_HLT (1 << 1)
|
||||
#define KVM_X86_DISABLE_EXITS_PAUSE (1 << 2)
|
||||
#define KVM_X86_DISABLE_EXITS_CSTATE (1 << 3)
|
||||
#define KVM_X86_DISABLE_EXITS_APERFMPERF (1 << 4)
|
||||
|
||||
/* for KVM_ENABLE_CAP */
|
||||
struct kvm_enable_cap {
|
||||
@@ -934,6 +961,7 @@ struct kvm_enable_cap {
|
||||
#define KVM_CAP_ARM_EL2 240
|
||||
#define KVM_CAP_ARM_EL2_E2H0 241
|
||||
#define KVM_CAP_RISCV_MP_STATE_RESET 242
|
||||
#define KVM_CAP_ARM_CACHEABLE_PFNMAP_SUPPORTED 243
|
||||
|
||||
struct kvm_irq_routing_irqchip {
|
||||
__u32 irqchip;
|
||||
|
||||
@@ -37,6 +37,14 @@ struct sockaddr_mctp_ext {
|
||||
__u8 smctp_haddr[MAX_ADDR_LEN];
|
||||
};
|
||||
|
||||
/* A "fully qualified" MCTP address, which includes the system-local network ID,
|
||||
* required to uniquely resolve a routable EID.
|
||||
*/
|
||||
struct mctp_fq_addr {
|
||||
unsigned int net;
|
||||
mctp_eid_t eid;
|
||||
};
|
||||
|
||||
#define MCTP_NET_ANY 0x0
|
||||
|
||||
#define MCTP_ADDR_NULL 0x00
|
||||
|
||||
@@ -21,10 +21,11 @@
|
||||
/* preferred byte alignment for outputs */
|
||||
#define PISP_BACK_END_OUTPUT_MAX_ALIGN 64u
|
||||
|
||||
/* minimum allowed tile width anywhere in the pipeline */
|
||||
#define PISP_BACK_END_MIN_TILE_WIDTH 16u
|
||||
/* minimum allowed tile width anywhere in the pipeline */
|
||||
#define PISP_BACK_END_MIN_TILE_HEIGHT 16u
|
||||
/* minimum allowed tile sizes anywhere in the pipeline */
|
||||
#define PISP_BACK_END_MIN_TILE_WIDTH 16u
|
||||
#define PISP_BACK_END_MIN_TILE_HEIGHT 16u
|
||||
#define PISP_BACK_END_MAX_TILE_WIDTH 65536u
|
||||
#define PISP_BACK_END_MAX_TILE_HEIGHT 65536u
|
||||
|
||||
#define PISP_BACK_END_NUM_OUTPUTS 2
|
||||
#define PISP_BACK_END_HOG_OUTPUT 1
|
||||
|
||||
@@ -27,14 +27,14 @@
|
||||
* token, rem_id.
|
||||
* @MPTCP_EVENT_SUB_ESTABLISHED: A new subflow has been established. 'error'
|
||||
* should not be set. Attributes: token, family, loc_id, rem_id, saddr4 |
|
||||
* saddr6, daddr4 | daddr6, sport, dport, backup, if_idx [, error].
|
||||
* saddr6, daddr4 | daddr6, sport, dport, backup, if-idx [, error].
|
||||
* @MPTCP_EVENT_SUB_CLOSED: A subflow has been closed. An error (copy of
|
||||
* sk_err) could be set if an error has been detected for this subflow.
|
||||
* Attributes: token, family, loc_id, rem_id, saddr4 | saddr6, daddr4 |
|
||||
* daddr6, sport, dport, backup, if_idx [, error].
|
||||
* daddr6, sport, dport, backup, if-idx [, error].
|
||||
* @MPTCP_EVENT_SUB_PRIORITY: The priority of a subflow has changed. 'error'
|
||||
* should not be set. Attributes: token, family, loc_id, rem_id, saddr4 |
|
||||
* saddr6, daddr4 | daddr6, sport, dport, backup, if_idx [, error].
|
||||
* saddr6, daddr4 | daddr6, sport, dport, backup, if-idx [, error].
|
||||
* @MPTCP_EVENT_LISTENER_CREATED: A new PM listener is created. Attributes:
|
||||
* family, sport, saddr4 | saddr6.
|
||||
* @MPTCP_EVENT_LISTENER_CLOSED: A PM listener is closed. Attributes: family,
|
||||
|
||||
@@ -54,6 +54,7 @@ enum {
|
||||
/* Extended flags under NDA_FLAGS_EXT: */
|
||||
#define NTF_EXT_MANAGED (1 << 0)
|
||||
#define NTF_EXT_LOCKED (1 << 1)
|
||||
#define NTF_EXT_EXT_VALIDATED (1 << 2)
|
||||
|
||||
/*
|
||||
* Neighbor Cache Entry States.
|
||||
@@ -92,6 +93,10 @@ enum {
|
||||
* bridge in response to a host trying to communicate via a locked bridge port
|
||||
* with MAB enabled. Their purpose is to notify user space that a host requires
|
||||
* authentication.
|
||||
*
|
||||
* NTF_EXT_EXT_VALIDATED flagged neighbor entries were externally validated by
|
||||
* a user space control plane. The kernel will not remove or invalidate them,
|
||||
* but it can probe them and notify user space when they become reachable.
|
||||
*/
|
||||
|
||||
struct nda_cacheinfo {
|
||||
|
||||
@@ -10,13 +10,6 @@ struct net_dm_drop_point {
|
||||
__u32 count;
|
||||
};
|
||||
|
||||
#define is_drop_point_hw(x) do {\
|
||||
int ____i, ____j;\
|
||||
for (____i = 0; ____i < 8; i ____i++)\
|
||||
____j |= x[____i];\
|
||||
____j;\
|
||||
} while (0)
|
||||
|
||||
#define NET_DM_CFG_VERSION 0
|
||||
#define NET_DM_CFG_ALERT_COUNT 1
|
||||
#define NET_DM_CFG_ALERT_DELAY 2
|
||||
|
||||
@@ -19,6 +19,7 @@ enum {
|
||||
NETCONFA_IGNORE_ROUTES_WITH_LINKDOWN,
|
||||
NETCONFA_INPUT,
|
||||
NETCONFA_BC_FORWARDING,
|
||||
NETCONFA_FORCE_FORWARDING,
|
||||
__NETCONFA_MAX
|
||||
};
|
||||
#define NETCONFA_MAX (__NETCONFA_MAX - 1)
|
||||
|
||||
@@ -77,6 +77,11 @@ enum netdev_qstats_scope {
|
||||
NETDEV_QSTATS_SCOPE_QUEUE = 1,
|
||||
};
|
||||
|
||||
enum netdev_napi_threaded {
|
||||
NETDEV_NAPI_THREADED_DISABLED,
|
||||
NETDEV_NAPI_THREADED_ENABLED,
|
||||
};
|
||||
|
||||
enum {
|
||||
NETDEV_A_DEV_IFINDEX = 1,
|
||||
NETDEV_A_DEV_PAD,
|
||||
@@ -134,6 +139,7 @@ enum {
|
||||
NETDEV_A_NAPI_DEFER_HARD_IRQS,
|
||||
NETDEV_A_NAPI_GRO_FLUSH_TIMEOUT,
|
||||
NETDEV_A_NAPI_IRQ_SUSPEND_TIMEOUT,
|
||||
NETDEV_A_NAPI_THREADED,
|
||||
|
||||
__NETDEV_A_NAPI_MAX,
|
||||
NETDEV_A_NAPI_MAX = (__NETDEV_A_NAPI_MAX - 1)
|
||||
|
||||
@@ -142,8 +142,6 @@ enum nf_tables_msg_types {
|
||||
NFT_MSG_DESTROYOBJ,
|
||||
NFT_MSG_DESTROYFLOWTABLE,
|
||||
NFT_MSG_GETSETELEM_RESET,
|
||||
NFT_MSG_NEWDEV,
|
||||
NFT_MSG_DELDEV,
|
||||
NFT_MSG_MAX,
|
||||
};
|
||||
|
||||
@@ -1786,18 +1784,10 @@ enum nft_synproxy_attributes {
|
||||
* enum nft_device_attributes - nf_tables device netlink attributes
|
||||
*
|
||||
* @NFTA_DEVICE_NAME: name of this device (NLA_STRING)
|
||||
* @NFTA_DEVICE_TABLE: table containing the flowtable or chain hooking into the device (NLA_STRING)
|
||||
* @NFTA_DEVICE_FLOWTABLE: flowtable hooking into the device (NLA_STRING)
|
||||
* @NFTA_DEVICE_CHAIN: chain hooking into the device (NLA_STRING)
|
||||
* @NFTA_DEVICE_SPEC: hook spec matching the device (NLA_STRING)
|
||||
*/
|
||||
enum nft_devices_attributes {
|
||||
NFTA_DEVICE_UNSPEC,
|
||||
NFTA_DEVICE_NAME,
|
||||
NFTA_DEVICE_TABLE,
|
||||
NFTA_DEVICE_FLOWTABLE,
|
||||
NFTA_DEVICE_CHAIN,
|
||||
NFTA_DEVICE_SPEC,
|
||||
__NFTA_DEVICE_MAX
|
||||
};
|
||||
#define NFTA_DEVICE_MAX (__NFTA_DEVICE_MAX - 1)
|
||||
|
||||
@@ -25,8 +25,6 @@ enum nfnetlink_groups {
|
||||
#define NFNLGRP_ACCT_QUOTA NFNLGRP_ACCT_QUOTA
|
||||
NFNLGRP_NFTRACE,
|
||||
#define NFNLGRP_NFTRACE NFNLGRP_NFTRACE
|
||||
NFNLGRP_NFT_DEV,
|
||||
#define NFNLGRP_NFT_DEV NFNLGRP_NFT_DEV
|
||||
__NFNLGRP_MAX,
|
||||
};
|
||||
#define NFNLGRP_MAX (__NFNLGRP_MAX - 1)
|
||||
|
||||
@@ -61,10 +61,12 @@ enum nfnl_hook_chain_desc_attributes {
|
||||
*
|
||||
* @NFNL_HOOK_TYPE_NFTABLES: nf_tables base chain
|
||||
* @NFNL_HOOK_TYPE_BPF: bpf program
|
||||
* @NFNL_HOOK_TYPE_NFT_FLOWTABLE: nf_tables flowtable
|
||||
*/
|
||||
enum nfnl_hook_chaintype {
|
||||
NFNL_HOOK_TYPE_NFTABLES = 0x1,
|
||||
NFNL_HOOK_TYPE_BPF,
|
||||
NFNL_HOOK_TYPE_NFT_FLOWTABLE,
|
||||
};
|
||||
|
||||
/**
|
||||
|
||||
@@ -1330,7 +1330,15 @@
|
||||
* TID to Link mapping for downlink/uplink traffic.
|
||||
*
|
||||
* @NL80211_CMD_ASSOC_MLO_RECONF: For a non-AP MLD station, request to
|
||||
* add/remove links to/from the association.
|
||||
* add/remove links to/from the association. To indicate link
|
||||
* reconfiguration request results from the driver, this command is also
|
||||
* used as an event to notify userspace about the added links information.
|
||||
* For notifying the removed links information, the existing
|
||||
* %NL80211_CMD_LINKS_REMOVED command is used. This command is also used to
|
||||
* notify userspace about newly added links for the current connection in
|
||||
* case of AP-initiated link recommendation requests, received via
|
||||
* a BTM (BSS Transition Management) request or a link reconfig notify
|
||||
* frame, where the driver handles the link recommendation offload.
|
||||
*
|
||||
* @NL80211_CMD_EPCS_CFG: EPCS configuration for a station. Used by userland to
|
||||
* control EPCS configuration. Used to notify userland on the current state
|
||||
@@ -2899,6 +2907,27 @@ enum nl80211_commands {
|
||||
* APs Support". Drivers may set additional flags that they support
|
||||
* in the kernel or device.
|
||||
*
|
||||
* @NL80211_ATTR_WIPHY_RADIO_INDEX: (int) Integer attribute denoting the index
|
||||
* of the radio in interest. Internally a value of -1 is used to
|
||||
* indicate that the radio id is not given in user-space. This means
|
||||
* that all the attributes are applicable to all the radios. If there is
|
||||
* a radio index provided in user-space, the attributes will be
|
||||
* applicable to that specific radio only. If the radio id is greater
|
||||
* thank the number of radios, error denoting invalid value is returned.
|
||||
*
|
||||
* @NL80211_ATTR_S1G_LONG_BEACON_PERIOD: (u8) Integer attribute that represents
|
||||
* the number of beacon intervals between each long beacon transmission
|
||||
* for an S1G BSS with short beaconing enabled. This is a required
|
||||
* attribute for initialising an S1G short beaconing BSS. When updating
|
||||
* the short beacon data, this is not required. It has a minimum value of
|
||||
* 2 (i.e 2 beacon intervals).
|
||||
*
|
||||
* @NL80211_ATTR_S1G_SHORT_BEACON: Nested attribute containing the short beacon
|
||||
* head and tail used to set or update the short beacon templates. When
|
||||
* bringing up a new interface, %NL80211_ATTR_S1G_LONG_BEACON_PERIOD is
|
||||
* required alongside this attribute. Refer to
|
||||
* @enum nl80211_s1g_short_beacon_attrs for the attribute definitions.
|
||||
*
|
||||
* @NUM_NL80211_ATTR: total number of nl80211_attrs available
|
||||
* @NL80211_ATTR_MAX: highest attribute number currently defined
|
||||
* @__NL80211_ATTR_AFTER_LAST: internal use
|
||||
@@ -3456,6 +3485,11 @@ enum nl80211_attrs {
|
||||
|
||||
NL80211_ATTR_ASSOC_MLD_EXT_CAPA_OPS,
|
||||
|
||||
NL80211_ATTR_WIPHY_RADIO_INDEX,
|
||||
|
||||
NL80211_ATTR_S1G_LONG_BEACON_PERIOD,
|
||||
NL80211_ATTR_S1G_SHORT_BEACON,
|
||||
|
||||
/* add attributes here, update the policy in nl80211.c */
|
||||
|
||||
__NL80211_ATTR_AFTER_LAST,
|
||||
@@ -8088,6 +8122,7 @@ enum nl80211_ap_settings_flags {
|
||||
* and contains attributes defined in &enum nl80211_if_combination_attrs.
|
||||
* @NL80211_WIPHY_RADIO_ATTR_ANTENNA_MASK: bitmask (u32) of antennas
|
||||
* connected to this radio.
|
||||
* @NL80211_WIPHY_RADIO_ATTR_RTS_THRESHOLD: RTS threshold (u32) of this radio.
|
||||
*
|
||||
* @__NL80211_WIPHY_RADIO_ATTR_LAST: Internal
|
||||
* @NL80211_WIPHY_RADIO_ATTR_MAX: Highest attribute
|
||||
@@ -8099,6 +8134,7 @@ enum nl80211_wiphy_radio_attrs {
|
||||
NL80211_WIPHY_RADIO_ATTR_FREQ_RANGE,
|
||||
NL80211_WIPHY_RADIO_ATTR_INTERFACE_COMBINATION,
|
||||
NL80211_WIPHY_RADIO_ATTR_ANTENNA_MASK,
|
||||
NL80211_WIPHY_RADIO_ATTR_RTS_THRESHOLD,
|
||||
|
||||
/* keep last */
|
||||
__NL80211_WIPHY_RADIO_ATTR_LAST,
|
||||
@@ -8128,4 +8164,27 @@ enum nl80211_wiphy_radio_freq_range {
|
||||
NL80211_WIPHY_RADIO_FREQ_ATTR_MAX = __NL80211_WIPHY_RADIO_FREQ_ATTR_LAST - 1,
|
||||
};
|
||||
|
||||
/**
|
||||
* enum nl80211_s1g_short_beacon_attrs - S1G short beacon data
|
||||
*
|
||||
* @__NL80211_S1G_SHORT_BEACON_ATTR_INVALID: Invalid
|
||||
*
|
||||
* @NL80211_S1G_SHORT_BEACON_ATTR_HEAD: Short beacon head (binary).
|
||||
* @NL80211_S1G_SHORT_BEACON_ATTR_TAIL: Short beacon tail (binary).
|
||||
*
|
||||
* @__NL80211_S1G_SHORT_BEACON_ATTR_LAST: Internal
|
||||
* @NL80211_S1G_SHORT_BEACON_ATTR_MAX: Highest attribute
|
||||
*/
|
||||
enum nl80211_s1g_short_beacon_attrs {
|
||||
__NL80211_S1G_SHORT_BEACON_ATTR_INVALID,
|
||||
|
||||
NL80211_S1G_SHORT_BEACON_ATTR_HEAD,
|
||||
NL80211_S1G_SHORT_BEACON_ATTR_TAIL,
|
||||
|
||||
/* keep last */
|
||||
__NL80211_S1G_SHORT_BEACON_ATTR_LAST,
|
||||
NL80211_S1G_SHORT_BEACON_ATTR_MAX =
|
||||
__NL80211_S1G_SHORT_BEACON_ATTR_LAST - 1
|
||||
};
|
||||
|
||||
#endif /* __LINUX_NL80211_H */
|
||||
|
||||
@@ -42,4 +42,15 @@ struct mnt_ns_info {
|
||||
/* Get previous namespace. */
|
||||
#define NS_MNT_GET_PREV _IOR(NSIO, 12, struct mnt_ns_info)
|
||||
|
||||
enum init_ns_ino {
|
||||
IPC_NS_INIT_INO = 0xEFFFFFFFU,
|
||||
UTS_NS_INIT_INO = 0xEFFFFFFEU,
|
||||
USER_NS_INIT_INO = 0xEFFFFFFDU,
|
||||
PID_NS_INIT_INO = 0xEFFFFFFCU,
|
||||
CGROUP_NS_INIT_INO = 0xEFFFFFFBU,
|
||||
TIME_NS_INIT_INO = 0xEFFFFFFAU,
|
||||
NET_NS_INIT_INO = 0xEFFFFFF9U,
|
||||
MNT_NS_INIT_INO = 0xEFFFFFF8U,
|
||||
};
|
||||
|
||||
#endif /* __LINUX_NSFS_H */
|
||||
|
||||
@@ -186,6 +186,11 @@ enum ovs_packet_cmd {
|
||||
* %OVS_PACKET_ATTR_USERSPACE action specify the Maximum received fragment
|
||||
* size.
|
||||
* @OVS_PACKET_ATTR_HASH: Packet hash info (e.g. hash, sw_hash and l4_hash in skb).
|
||||
* @OVS_PACKET_ATTR_UPCALL_PID: Netlink PID to use for upcalls while
|
||||
* processing %OVS_PACKET_CMD_EXECUTE. Takes precedence over all other ways
|
||||
* to determine the Netlink PID including %OVS_USERSPACE_ATTR_PID,
|
||||
* %OVS_DP_ATTR_UPCALL_PID, %OVS_DP_ATTR_PER_CPU_PIDS and the
|
||||
* %OVS_VPORT_ATTR_UPCALL_PID.
|
||||
*
|
||||
* These attributes follow the &struct ovs_header within the Generic Netlink
|
||||
* payload for %OVS_PACKET_* commands.
|
||||
@@ -205,6 +210,7 @@ enum ovs_packet_attr {
|
||||
OVS_PACKET_ATTR_MRU, /* Maximum received IP fragment size. */
|
||||
OVS_PACKET_ATTR_LEN, /* Packet size before truncation. */
|
||||
OVS_PACKET_ATTR_HASH, /* Packet hash. */
|
||||
OVS_PACKET_ATTR_UPCALL_PID, /* u32 Netlink PID. */
|
||||
__OVS_PACKET_ATTR_MAX
|
||||
};
|
||||
|
||||
|
||||
@@ -745,6 +745,7 @@
|
||||
#define PCI_EXT_CAP_ID_L1SS 0x1E /* L1 PM Substates */
|
||||
#define PCI_EXT_CAP_ID_PTM 0x1F /* Precision Time Measurement */
|
||||
#define PCI_EXT_CAP_ID_DVSEC 0x23 /* Designated Vendor-Specific */
|
||||
#define PCI_EXT_CAP_ID_VF_REBAR 0x24 /* VF Resizable BAR */
|
||||
#define PCI_EXT_CAP_ID_DLF 0x25 /* Data Link Feature */
|
||||
#define PCI_EXT_CAP_ID_PL_16GT 0x26 /* Physical Layer 16.0 GT/s */
|
||||
#define PCI_EXT_CAP_ID_NPEM 0x29 /* Native PCIe Enclosure Management */
|
||||
@@ -1141,6 +1142,14 @@
|
||||
#define PCI_DVSEC_HEADER2 0x8 /* Designated Vendor-Specific Header2 */
|
||||
#define PCI_DVSEC_HEADER2_ID(x) ((x) & 0xffff)
|
||||
|
||||
/* VF Resizable BARs, same layout as PCI_REBAR */
|
||||
#define PCI_VF_REBAR_CAP PCI_REBAR_CAP
|
||||
#define PCI_VF_REBAR_CAP_SIZES PCI_REBAR_CAP_SIZES
|
||||
#define PCI_VF_REBAR_CTRL PCI_REBAR_CTRL
|
||||
#define PCI_VF_REBAR_CTRL_BAR_IDX PCI_REBAR_CTRL_BAR_IDX
|
||||
#define PCI_VF_REBAR_CTRL_NBAR_MASK PCI_REBAR_CTRL_NBAR_MASK
|
||||
#define PCI_VF_REBAR_CTRL_BAR_SIZE PCI_REBAR_CTRL_BAR_SIZE
|
||||
|
||||
/* Data Link Feature */
|
||||
#define PCI_DLF_CAP 0x04 /* Capabilities Register */
|
||||
#define PCI_DLF_EXCHANGE_ENABLE 0x80000000 /* Data Link Feature Exchange Enable */
|
||||
|
||||
@@ -21,6 +21,7 @@
|
||||
#define PCITEST_SET_IRQTYPE _IOW('P', 0x8, int)
|
||||
#define PCITEST_GET_IRQTYPE _IO('P', 0x9)
|
||||
#define PCITEST_BARS _IO('P', 0xa)
|
||||
#define PCITEST_DOORBELL _IO('P', 0xb)
|
||||
#define PCITEST_CLEAR_IRQ _IO('P', 0x10)
|
||||
|
||||
#define PCITEST_IRQ_TYPE_UNDEFINED -1
|
||||
|
||||
@@ -42,21 +42,6 @@
|
||||
#define PIDFD_COREDUMP_USER (1U << 2) /* coredump was done as the user. */
|
||||
#define PIDFD_COREDUMP_ROOT (1U << 3) /* coredump was done as root. */
|
||||
|
||||
/*
|
||||
* The concept of process and threads in userland and the kernel is a confusing
|
||||
* one - within the kernel every thread is a 'task' with its own individual PID,
|
||||
* however from userland's point of view threads are grouped by a single PID,
|
||||
* which is that of the 'thread group leader', typically the first thread
|
||||
* spawned.
|
||||
*
|
||||
* To cut the Gideon knot, for internal kernel usage, we refer to
|
||||
* PIDFD_SELF_THREAD to refer to the current thread (or task from a kernel
|
||||
* perspective), and PIDFD_SELF_THREAD_GROUP to refer to the current thread
|
||||
* group leader...
|
||||
*/
|
||||
#define PIDFD_SELF_THREAD -10000 /* Current thread. */
|
||||
#define PIDFD_SELF_THREAD_GROUP -20000 /* Current thread group leader. */
|
||||
|
||||
/*
|
||||
* ...and for userland we make life simpler - PIDFD_SELF refers to the current
|
||||
* thread, PIDFD_SELF_PROCESS refers to the process thread group leader.
|
||||
|
||||
@@ -1211,4 +1211,72 @@ enum {
|
||||
|
||||
#define TCA_ETS_MAX (__TCA_ETS_MAX - 1)
|
||||
|
||||
/* DUALPI2 */
|
||||
enum tc_dualpi2_drop_overload {
|
||||
TC_DUALPI2_DROP_OVERLOAD_OVERFLOW = 0,
|
||||
TC_DUALPI2_DROP_OVERLOAD_DROP = 1,
|
||||
__TCA_DUALPI2_DROP_OVERLOAD_MAX,
|
||||
};
|
||||
#define TCA_DUALPI2_DROP_OVERLOAD_MAX (__TCA_DUALPI2_DROP_OVERLOAD_MAX - 1)
|
||||
|
||||
enum tc_dualpi2_drop_early {
|
||||
TC_DUALPI2_DROP_EARLY_DROP_DEQUEUE = 0,
|
||||
TC_DUALPI2_DROP_EARLY_DROP_ENQUEUE = 1,
|
||||
__TCA_DUALPI2_DROP_EARLY_MAX,
|
||||
};
|
||||
#define TCA_DUALPI2_DROP_EARLY_MAX (__TCA_DUALPI2_DROP_EARLY_MAX - 1)
|
||||
|
||||
enum tc_dualpi2_ecn_mask {
|
||||
TC_DUALPI2_ECN_MASK_L4S_ECT = 1,
|
||||
TC_DUALPI2_ECN_MASK_CLA_ECT = 2,
|
||||
TC_DUALPI2_ECN_MASK_ANY_ECT = 3,
|
||||
__TCA_DUALPI2_ECN_MASK_MAX,
|
||||
};
|
||||
#define TCA_DUALPI2_ECN_MASK_MAX (__TCA_DUALPI2_ECN_MASK_MAX - 1)
|
||||
|
||||
enum tc_dualpi2_split_gso {
|
||||
TC_DUALPI2_SPLIT_GSO_NO_SPLIT_GSO = 0,
|
||||
TC_DUALPI2_SPLIT_GSO_SPLIT_GSO = 1,
|
||||
__TCA_DUALPI2_SPLIT_GSO_MAX,
|
||||
};
|
||||
#define TCA_DUALPI2_SPLIT_GSO_MAX (__TCA_DUALPI2_SPLIT_GSO_MAX - 1)
|
||||
|
||||
enum {
|
||||
TCA_DUALPI2_UNSPEC,
|
||||
TCA_DUALPI2_LIMIT, /* Packets */
|
||||
TCA_DUALPI2_MEMORY_LIMIT, /* Bytes */
|
||||
TCA_DUALPI2_TARGET, /* us */
|
||||
TCA_DUALPI2_TUPDATE, /* us */
|
||||
TCA_DUALPI2_ALPHA, /* Hz scaled up by 256 */
|
||||
TCA_DUALPI2_BETA, /* Hz scaled up by 256 */
|
||||
TCA_DUALPI2_STEP_THRESH_PKTS, /* Step threshold in packets */
|
||||
TCA_DUALPI2_STEP_THRESH_US, /* Step threshold in microseconds */
|
||||
TCA_DUALPI2_MIN_QLEN_STEP, /* Minimum qlen to apply STEP_THRESH */
|
||||
TCA_DUALPI2_COUPLING, /* Coupling factor between queues */
|
||||
TCA_DUALPI2_DROP_OVERLOAD, /* Whether to drop on overload */
|
||||
TCA_DUALPI2_DROP_EARLY, /* Whether to drop on enqueue */
|
||||
TCA_DUALPI2_C_PROTECTION, /* Percentage */
|
||||
TCA_DUALPI2_ECN_MASK, /* L4S queue classification mask */
|
||||
TCA_DUALPI2_SPLIT_GSO, /* Split GSO packets at enqueue */
|
||||
TCA_DUALPI2_PAD,
|
||||
__TCA_DUALPI2_MAX
|
||||
};
|
||||
|
||||
#define TCA_DUALPI2_MAX (__TCA_DUALPI2_MAX - 1)
|
||||
|
||||
struct tc_dualpi2_xstats {
|
||||
__u32 prob; /* current probability */
|
||||
__u32 delay_c; /* current delay in C queue */
|
||||
__u32 delay_l; /* current delay in L queue */
|
||||
__u32 packets_in_c; /* number of packets enqueued in C queue */
|
||||
__u32 packets_in_l; /* number of packets enqueued in L queue */
|
||||
__u32 maxq; /* maximum queue size */
|
||||
__u32 ecn_mark; /* packets marked with ecn*/
|
||||
__u32 step_marks; /* ECN marks due to the step AQM */
|
||||
__s32 credit; /* current c_protection credit */
|
||||
__u32 memory_used; /* Memory used by both queues */
|
||||
__u32 max_memory_used; /* Maximum used memory */
|
||||
__u32 memory_limit; /* Memory limit of both queues */
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -244,6 +244,8 @@ struct prctl_mm_map {
|
||||
# define PR_MTE_TAG_MASK (0xffffUL << PR_MTE_TAG_SHIFT)
|
||||
/* Unused; kept only for source compatibility */
|
||||
# define PR_MTE_TCF_SHIFT 1
|
||||
/* MTE tag check store only */
|
||||
# define PR_MTE_STORE_ONLY (1UL << 19)
|
||||
/* RISC-V pointer masking tag length */
|
||||
# define PR_PMLEN_SHIFT 24
|
||||
# define PR_PMLEN_MASK (0x7fUL << PR_PMLEN_SHIFT)
|
||||
@@ -255,7 +257,12 @@ struct prctl_mm_map {
|
||||
/* Dispatch syscalls to a userspace handler */
|
||||
#define PR_SET_SYSCALL_USER_DISPATCH 59
|
||||
# define PR_SYS_DISPATCH_OFF 0
|
||||
# define PR_SYS_DISPATCH_ON 1
|
||||
/* Enable dispatch except for the specified range */
|
||||
# define PR_SYS_DISPATCH_EXCLUSIVE_ON 1
|
||||
/* Enable dispatch for the specified range */
|
||||
# define PR_SYS_DISPATCH_INCLUSIVE_ON 2
|
||||
/* Legacy name for backwards compatibility */
|
||||
# define PR_SYS_DISPATCH_ON PR_SYS_DISPATCH_EXCLUSIVE_ON
|
||||
/* The control values for the user space selector when dispatch is enabled */
|
||||
# define SYSCALL_DISPATCH_FILTER_ALLOW 0
|
||||
# define SYSCALL_DISPATCH_FILTER_BLOCK 1
|
||||
@@ -367,8 +374,6 @@ struct prctl_mm_map {
|
||||
/* FUTEX hash management */
|
||||
#define PR_FUTEX_HASH 78
|
||||
# define PR_FUTEX_HASH_SET_SLOTS 1
|
||||
# define FH_FLAG_IMMUTABLE (1ULL << 0)
|
||||
# define PR_FUTEX_HASH_GET_SLOTS 2
|
||||
# define PR_FUTEX_HASH_GET_IMMUTABLE 3
|
||||
|
||||
#endif /* _LINUX_PRCTL_H */
|
||||
|
||||
@@ -0,0 +1,53 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-only WITH Linux-syscall-note */
|
||||
|
||||
#ifndef _UAPI_PWM_H_
|
||||
#define _UAPI_PWM_H_
|
||||
|
||||
#include <linux/ioctl.h>
|
||||
#include <linux/types.h>
|
||||
|
||||
/**
|
||||
* struct pwmchip_waveform - Describe a PWM waveform for a pwm_chip's PWM channel
|
||||
* @hwpwm: per-chip relative index of the PWM device
|
||||
* @__pad: padding, must be zero
|
||||
* @period_length_ns: duration of the repeating period.
|
||||
* A value of 0 represents a disabled PWM.
|
||||
* @duty_length_ns: duration of the active part in each period
|
||||
* @duty_offset_ns: offset of the rising edge from a period's start
|
||||
*/
|
||||
struct pwmchip_waveform {
|
||||
__u32 hwpwm;
|
||||
__u32 __pad;
|
||||
__u64 period_length_ns;
|
||||
__u64 duty_length_ns;
|
||||
__u64 duty_offset_ns;
|
||||
};
|
||||
|
||||
/* Reserves the passed hwpwm for exclusive control. */
|
||||
#define PWM_IOCTL_REQUEST _IO(0x75, 1)
|
||||
|
||||
/* counter part to PWM_IOCTL_REQUEST */
|
||||
#define PWM_IOCTL_FREE _IO(0x75, 2)
|
||||
|
||||
/*
|
||||
* Modifies the passed wf according to hardware constraints. All parameters are
|
||||
* rounded down to the next possible value, unless there is no such value, then
|
||||
* values are rounded up. Note that zero isn't considered for rounding down
|
||||
* period_length_ns.
|
||||
*/
|
||||
#define PWM_IOCTL_ROUNDWF _IOWR(0x75, 3, struct pwmchip_waveform)
|
||||
|
||||
/* Get the currently implemented waveform */
|
||||
#define PWM_IOCTL_GETWF _IOWR(0x75, 4, struct pwmchip_waveform)
|
||||
|
||||
/* Like PWM_IOCTL_ROUNDWF + PWM_IOCTL_SETEXACTWF in one go. */
|
||||
#define PWM_IOCTL_SETROUNDEDWF _IOW(0x75, 5, struct pwmchip_waveform)
|
||||
|
||||
/*
|
||||
* Program the PWM to emit exactly the passed waveform, subject only to rounding
|
||||
* down each value less than 1 ns. Returns 0 on success, -EDOM if the waveform
|
||||
* cannot be implemented exactly, or other negative error codes.
|
||||
*/
|
||||
#define PWM_IOCTL_SETEXACTWF _IOW(0x75, 6, struct pwmchip_waveform)
|
||||
|
||||
#endif /* _UAPI_PWM_H_ */
|
||||
@@ -173,7 +173,7 @@ typedef struct mdp_superblock_s {
|
||||
#else
|
||||
#error unspecified endianness
|
||||
#endif
|
||||
__u32 recovery_cp; /* 11 recovery checkpoint sector count */
|
||||
__u32 resync_offset; /* 11 resync checkpoint sector count */
|
||||
/* There are only valid for minor_version > 90 */
|
||||
__u64 reshape_position; /* 12,13 next address in array-space for reshape */
|
||||
__u32 new_level; /* 14 new level we are reshaping to */
|
||||
|
||||
@@ -169,6 +169,13 @@
|
||||
*/
|
||||
#define RKISP1_CIF_ISP_COMPAND_NUM_POINTS 64
|
||||
|
||||
/*
|
||||
* Wide Dynamic Range
|
||||
*/
|
||||
#define RKISP1_CIF_ISP_WDR_CURVE_NUM_INTERV 32
|
||||
#define RKISP1_CIF_ISP_WDR_CURVE_NUM_COEFF (RKISP1_CIF_ISP_WDR_CURVE_NUM_INTERV + 1)
|
||||
#define RKISP1_CIF_ISP_WDR_CURVE_NUM_DY_REGS 4
|
||||
|
||||
/*
|
||||
* Measurement types
|
||||
*/
|
||||
@@ -889,6 +896,72 @@ struct rkisp1_cif_isp_compand_curve_config {
|
||||
__u32 y[RKISP1_CIF_ISP_COMPAND_NUM_POINTS];
|
||||
};
|
||||
|
||||
/**
|
||||
* struct rkisp1_cif_isp_wdr_tone_curve - Tone mapping curve definition for WDR.
|
||||
*
|
||||
* @dY: the dYn increments for horizontal (input) axis of the tone curve.
|
||||
* each 3-bit dY value represents an increment of 2**(value+3).
|
||||
* dY[0] bits 0:2 is increment dY1, bit 3 unused
|
||||
* dY[0] bits 4:6 is increment dY2, bit 7 unused
|
||||
* ...
|
||||
* dY[0] bits 28:30 is increment dY8, bit 31 unused
|
||||
* ... and so on till dY[3] bits 28:30 is increment dY32, bit 31 unused.
|
||||
* @ym: the Ym values for the vertical (output) axis of the tone curve.
|
||||
* each value is 13 bit.
|
||||
*/
|
||||
struct rkisp1_cif_isp_wdr_tone_curve {
|
||||
__u32 dY[RKISP1_CIF_ISP_WDR_CURVE_NUM_DY_REGS];
|
||||
__u16 ym[RKISP1_CIF_ISP_WDR_CURVE_NUM_COEFF];
|
||||
};
|
||||
|
||||
/**
|
||||
* struct rkisp1_cif_isp_wdr_iref_config - Illumination reference config for WDR.
|
||||
*
|
||||
* Use illumination reference value as described below, instead of only the
|
||||
* luminance (Y) value for tone mapping and gain calculations:
|
||||
* IRef = (rgb_factor * RGBMax_tr + (8 - rgb_factor) * Y)/8
|
||||
*
|
||||
* @rgb_factor: defines how much influence the RGBmax approach has in
|
||||
* comparison to Y (valid values are 0..8).
|
||||
* @use_y9_8: use Y*9/8 for maximum value calculation along with the
|
||||
* default of R, G, B for noise reduction.
|
||||
* @use_rgb7_8: decrease RGBMax by 7/8 for noise reduction.
|
||||
* @disable_transient: disable transient calculation between Y and RGBY_max.
|
||||
*/
|
||||
struct rkisp1_cif_isp_wdr_iref_config {
|
||||
__u8 rgb_factor;
|
||||
__u8 use_y9_8;
|
||||
__u8 use_rgb7_8;
|
||||
__u8 disable_transient;
|
||||
};
|
||||
|
||||
/**
|
||||
* struct rkisp1_cif_isp_wdr_config - Configuration for wide dynamic range.
|
||||
*
|
||||
* @tone_curve: tone mapping curve.
|
||||
* @iref_config: illumination reference configuration. (when use_iref is true)
|
||||
* @rgb_offset: RGB offset value for RGB operation mode. (12 bits)
|
||||
* @luma_offset: luminance offset value for RGB operation mode. (12 bits)
|
||||
* @dmin_thresh: lower threshold for deltaMin value. (12 bits)
|
||||
* @dmin_strength: strength factor for deltaMin. (valid range is 0x00..0x10)
|
||||
* @use_rgb_colorspace: use RGB instead of luminance/chrominance colorspace.
|
||||
* @bypass_chroma_mapping: disable chrominance mapping (only valid if
|
||||
* use_rgb_colorspace = 0)
|
||||
* @use_iref: use illumination reference instead of Y for tone mapping
|
||||
* and gain calculations.
|
||||
*/
|
||||
struct rkisp1_cif_isp_wdr_config {
|
||||
struct rkisp1_cif_isp_wdr_tone_curve tone_curve;
|
||||
struct rkisp1_cif_isp_wdr_iref_config iref_config;
|
||||
__u16 rgb_offset;
|
||||
__u16 luma_offset;
|
||||
__u16 dmin_thresh;
|
||||
__u8 dmin_strength;
|
||||
__u8 use_rgb_colorspace;
|
||||
__u8 bypass_chroma_mapping;
|
||||
__u8 use_iref;
|
||||
};
|
||||
|
||||
/*---------- PART2: Measurement Statistics ------------*/
|
||||
|
||||
/**
|
||||
@@ -1059,6 +1132,7 @@ struct rkisp1_stat_buffer {
|
||||
* @RKISP1_EXT_PARAMS_BLOCK_TYPE_COMPAND_BLS: BLS in the compand block
|
||||
* @RKISP1_EXT_PARAMS_BLOCK_TYPE_COMPAND_EXPAND: Companding expand curve
|
||||
* @RKISP1_EXT_PARAMS_BLOCK_TYPE_COMPAND_COMPRESS: Companding compress curve
|
||||
* @RKISP1_EXT_PARAMS_BLOCK_TYPE_WDR: Wide dynamic range
|
||||
*/
|
||||
enum rkisp1_ext_params_block_type {
|
||||
RKISP1_EXT_PARAMS_BLOCK_TYPE_BLS,
|
||||
@@ -1081,11 +1155,15 @@ enum rkisp1_ext_params_block_type {
|
||||
RKISP1_EXT_PARAMS_BLOCK_TYPE_COMPAND_BLS,
|
||||
RKISP1_EXT_PARAMS_BLOCK_TYPE_COMPAND_EXPAND,
|
||||
RKISP1_EXT_PARAMS_BLOCK_TYPE_COMPAND_COMPRESS,
|
||||
RKISP1_EXT_PARAMS_BLOCK_TYPE_WDR,
|
||||
};
|
||||
|
||||
#define RKISP1_EXT_PARAMS_FL_BLOCK_DISABLE (1U << 0)
|
||||
#define RKISP1_EXT_PARAMS_FL_BLOCK_ENABLE (1U << 1)
|
||||
|
||||
/* A bitmask of parameters blocks supported on the current hardware. */
|
||||
#define RKISP1_CID_SUPPORTED_PARAMS_BLOCKS (V4L2_CID_USER_RKISP1_BASE + 0x01)
|
||||
|
||||
/**
|
||||
* struct rkisp1_ext_params_block_header - RkISP1 extensible parameters block
|
||||
* header
|
||||
@@ -1460,6 +1538,23 @@ struct rkisp1_ext_params_compand_curve_config {
|
||||
struct rkisp1_cif_isp_compand_curve_config config;
|
||||
} __attribute__((aligned(8)));
|
||||
|
||||
/**
|
||||
* struct rkisp1_ext_params_wdr_config - RkISP1 extensible params
|
||||
* Wide dynamic range config
|
||||
*
|
||||
* RkISP1 extensible parameters WDR block.
|
||||
* Identified by :c:type:`RKISP1_EXT_PARAMS_BLOCK_TYPE_WDR`
|
||||
*
|
||||
* @header: The RkISP1 extensible parameters header, see
|
||||
* :c:type:`rkisp1_ext_params_block_header`
|
||||
* @config: WDR configuration, see
|
||||
* :c:type:`rkisp1_cif_isp_wdr_config`
|
||||
*/
|
||||
struct rkisp1_ext_params_wdr_config {
|
||||
struct rkisp1_ext_params_block_header header;
|
||||
struct rkisp1_cif_isp_wdr_config config;
|
||||
} __attribute__((aligned(8)));
|
||||
|
||||
/*
|
||||
* The rkisp1_ext_params_compand_curve_config structure is counted twice as it
|
||||
* is used for both the COMPAND_EXPAND and COMPAND_COMPRESS block types.
|
||||
@@ -1484,7 +1579,8 @@ struct rkisp1_ext_params_compand_curve_config {
|
||||
sizeof(struct rkisp1_ext_params_afc_config) +\
|
||||
sizeof(struct rkisp1_ext_params_compand_bls_config) +\
|
||||
sizeof(struct rkisp1_ext_params_compand_curve_config) +\
|
||||
sizeof(struct rkisp1_ext_params_compand_curve_config))
|
||||
sizeof(struct rkisp1_ext_params_compand_curve_config) +\
|
||||
sizeof(struct rkisp1_ext_params_wdr_config))
|
||||
|
||||
/**
|
||||
* enum rksip1_ext_param_buffer_version - RkISP1 extensible parameters version
|
||||
@@ -1520,6 +1616,14 @@ enum rksip1_ext_param_buffer_version {
|
||||
* V4L2 control. If such control is not available, userspace should assume only
|
||||
* RKISP1_EXT_PARAM_BUFFER_V1 is supported by the driver.
|
||||
*
|
||||
* The read-only V4L2 control ``RKISP1_CID_SUPPORTED_PARAMS_BLOCKS`` can be used
|
||||
* to query the blocks supported by the device. It contains a bitmask where each
|
||||
* bit represents the availability of the corresponding entry from the
|
||||
* :c:type:`rkisp1_ext_params_block_type` enum. The current and default values
|
||||
* of the control represents the blocks supported by the device instance, while
|
||||
* the maximum value represents the blocks supported by the kernel driver,
|
||||
* independently of the device instance.
|
||||
*
|
||||
* For each ISP block that userspace wants to configure, a block-specific
|
||||
* structure is appended to the @data buffer, one after the other without gaps
|
||||
* in between nor overlaps. Userspace shall populate the @data_size field with
|
||||
|
||||
@@ -186,6 +186,7 @@ enum
|
||||
LINUX_MIB_TIMEWAITKILLED, /* TimeWaitKilled */
|
||||
LINUX_MIB_PAWSACTIVEREJECTED, /* PAWSActiveRejected */
|
||||
LINUX_MIB_PAWSESTABREJECTED, /* PAWSEstabRejected */
|
||||
LINUX_MIB_BEYOND_WINDOW, /* BeyondWindow */
|
||||
LINUX_MIB_TSECRREJECTED, /* TSEcrRejected */
|
||||
LINUX_MIB_PAWS_OLD_ACK, /* PAWSOldAck */
|
||||
LINUX_MIB_PAWS_TW_REJECTED, /* PAWSTimewait */
|
||||
|
||||
@@ -573,6 +573,7 @@ enum {
|
||||
NET_IPV6_ACCEPT_RA_FROM_LOCAL=26,
|
||||
NET_IPV6_ACCEPT_RA_RT_INFO_MIN_PLEN=27,
|
||||
NET_IPV6_RA_DEFRTR_METRIC=28,
|
||||
NET_IPV6_FORCE_FORWARDING=29,
|
||||
__NET_IPV6_MAX
|
||||
};
|
||||
|
||||
|
||||
@@ -64,6 +64,17 @@ struct timezone {
|
||||
#define CLOCK_TAI 11
|
||||
|
||||
#define MAX_CLOCKS 16
|
||||
|
||||
/*
|
||||
* AUX clock support. AUXiliary clocks are dynamically configured by
|
||||
* enabling a clock ID. These clock can be steered independently of the
|
||||
* core timekeeper. The kernel can support up to 8 auxiliary clocks, but
|
||||
* the actual limit depends on eventual architecture constraints vs. VDSO.
|
||||
*/
|
||||
#define CLOCK_AUX MAX_CLOCKS
|
||||
#define MAX_AUX_CLOCKS 8
|
||||
#define CLOCK_AUX_LAST (CLOCK_AUX + MAX_AUX_CLOCKS - 1)
|
||||
|
||||
#define CLOCKS_MASK (CLOCK_REALTIME | CLOCK_MONOTONIC)
|
||||
#define CLOCKS_MONO CLOCK_MONOTONIC
|
||||
|
||||
|
||||
@@ -135,8 +135,28 @@
|
||||
#define UBLKSRV_IO_BUF_TOTAL_SIZE (1ULL << UBLKSRV_IO_BUF_TOTAL_BITS)
|
||||
|
||||
/*
|
||||
* zero copy requires 4k block size, and can remap ublk driver's io
|
||||
* request into ublksrv's vm space
|
||||
* ublk server can register data buffers for incoming I/O requests with a sparse
|
||||
* io_uring buffer table. The request buffer can then be used as the data buffer
|
||||
* for io_uring operations via the fixed buffer index.
|
||||
* Note that the ublk server can never directly access the request data memory.
|
||||
*
|
||||
* To use this feature, the ublk server must first register a sparse buffer
|
||||
* table on an io_uring instance.
|
||||
* When an incoming ublk request is received, the ublk server submits a
|
||||
* UBLK_U_IO_REGISTER_IO_BUF command to that io_uring instance. The
|
||||
* ublksrv_io_cmd's q_id and tag specify the request whose buffer to register
|
||||
* and addr is the index in the io_uring's buffer table to install the buffer.
|
||||
* SQEs can now be submitted to the io_uring to read/write the request's buffer
|
||||
* by enabling fixed buffers (e.g. using IORING_OP_{READ,WRITE}_FIXED or
|
||||
* IORING_URING_CMD_FIXED) and passing the registered buffer index in buf_index.
|
||||
* Once the last io_uring operation using the request's buffer has completed,
|
||||
* the ublk server submits a UBLK_U_IO_UNREGISTER_IO_BUF command with q_id, tag,
|
||||
* and addr again specifying the request buffer to unregister.
|
||||
* The ublk request is completed when its buffer is unregistered from all
|
||||
* io_uring instances and the ublk server issues UBLK_U_IO_COMMIT_AND_FETCH_REQ.
|
||||
*
|
||||
* Not available for UBLK_F_UNPRIVILEGED_DEV, as a ublk server can leak
|
||||
* uninitialized kernel memory by not reading into the full request buffer.
|
||||
*/
|
||||
#define UBLK_F_SUPPORT_ZERO_COPY (1ULL << 0)
|
||||
|
||||
@@ -281,6 +301,16 @@
|
||||
*/
|
||||
#define UBLK_F_PER_IO_DAEMON (1ULL << 13)
|
||||
|
||||
/*
|
||||
* If this feature is set, UBLK_U_IO_REGISTER_IO_BUF/UBLK_U_IO_UNREGISTER_IO_BUF
|
||||
* can be issued for an I/O on any task. q_id and tag are also ignored in
|
||||
* UBLK_U_IO_UNREGISTER_IO_BUF's ublksrv_io_cmd.
|
||||
* If it is unset, zero-copy buffers can only be registered and unregistered by
|
||||
* the I/O's daemon task. The q_id and tag of the registered buffer are required
|
||||
* in UBLK_U_IO_UNREGISTER_IO_BUF's ublksrv_io_cmd.
|
||||
*/
|
||||
#define UBLK_F_BUF_REG_OFF_DAEMON (1ULL << 14)
|
||||
|
||||
/* device state */
|
||||
#define UBLK_S_DEV_DEAD 0
|
||||
#define UBLK_S_DEV_LIVE 1
|
||||
@@ -450,10 +480,10 @@ static inline struct ublk_auto_buf_reg ublk_sqe_addr_to_auto_buf_reg(
|
||||
__u64 sqe_addr)
|
||||
{
|
||||
struct ublk_auto_buf_reg reg = {
|
||||
.index = sqe_addr & 0xffff,
|
||||
.flags = (sqe_addr >> 16) & 0xff,
|
||||
.reserved0 = (sqe_addr >> 24) & 0xff,
|
||||
.reserved1 = sqe_addr >> 32,
|
||||
.index = (__u16)sqe_addr,
|
||||
.flags = (__u8)(sqe_addr >> 16),
|
||||
.reserved0 = (__u8)(sqe_addr >> 24),
|
||||
.reserved1 = (__u32)(sqe_addr >> 32),
|
||||
};
|
||||
|
||||
return reg;
|
||||
|
||||
@@ -222,6 +222,12 @@ enum v4l2_colorfx {
|
||||
*/
|
||||
#define V4L2_CID_USER_UVC_BASE (V4L2_CID_USER_BASE + 0x11e0)
|
||||
|
||||
/*
|
||||
* The base for Rockchip ISP1 driver controls.
|
||||
* We reserve 16 controls for this driver.
|
||||
*/
|
||||
#define V4L2_CID_USER_RKISP1_BASE (V4L2_CID_USER_BASE + 0x1220)
|
||||
|
||||
/* MPEG-class control IDs */
|
||||
/* The MPEG controls are applicable to all codec controls
|
||||
* and the 'MPEG' part of the define is historical */
|
||||
|
||||
@@ -905,10 +905,12 @@ struct vfio_device_feature {
|
||||
* VFIO_DEVICE_BIND_IOMMUFD - _IOR(VFIO_TYPE, VFIO_BASE + 18,
|
||||
* struct vfio_device_bind_iommufd)
|
||||
* @argsz: User filled size of this data.
|
||||
* @flags: Must be 0.
|
||||
* @flags: Must be 0 or a bit flags of VFIO_DEVICE_BIND_*
|
||||
* @iommufd: iommufd to bind.
|
||||
* @out_devid: The device id generated by this bind. devid is a handle for
|
||||
* this device/iommufd bond and can be used in IOMMUFD commands.
|
||||
* @token_uuid_ptr: Valid if VFIO_DEVICE_BIND_FLAG_TOKEN. Points to a 16 byte
|
||||
* UUID in the same format as VFIO_DEVICE_FEATURE_PCI_VF_TOKEN.
|
||||
*
|
||||
* Bind a vfio_device to the specified iommufd.
|
||||
*
|
||||
@@ -917,13 +919,21 @@ struct vfio_device_feature {
|
||||
*
|
||||
* Unbind is automatically conducted when device fd is closed.
|
||||
*
|
||||
* A token is sometimes required to open the device, unless this is known to be
|
||||
* needed VFIO_DEVICE_BIND_FLAG_TOKEN should not be set and token_uuid_ptr is
|
||||
* ignored. The only case today is a PF/VF relationship where the VF bind must
|
||||
* be provided the same token as VFIO_DEVICE_FEATURE_PCI_VF_TOKEN provided to
|
||||
* the PF.
|
||||
*
|
||||
* Return: 0 on success, -errno on failure.
|
||||
*/
|
||||
struct vfio_device_bind_iommufd {
|
||||
__u32 argsz;
|
||||
__u32 flags;
|
||||
#define VFIO_DEVICE_BIND_FLAG_TOKEN (1 << 0)
|
||||
__s32 iommufd;
|
||||
__u32 out_devid;
|
||||
__aligned_u64 token_uuid_ptr;
|
||||
};
|
||||
|
||||
#define VFIO_DEVICE_BIND_IOMMUFD _IO(VFIO_TYPE, VFIO_BASE + 18)
|
||||
|
||||
@@ -235,4 +235,39 @@
|
||||
*/
|
||||
#define VHOST_VDPA_GET_VRING_SIZE _IOWR(VHOST_VIRTIO, 0x82, \
|
||||
struct vhost_vring_state)
|
||||
|
||||
/* Extended features manipulation */
|
||||
#define VHOST_GET_FEATURES_ARRAY _IOR(VHOST_VIRTIO, 0x83, \
|
||||
struct vhost_features_array)
|
||||
#define VHOST_SET_FEATURES_ARRAY _IOW(VHOST_VIRTIO, 0x83, \
|
||||
struct vhost_features_array)
|
||||
|
||||
/* fork_owner values for vhost */
|
||||
#define VHOST_FORK_OWNER_KTHREAD 0
|
||||
#define VHOST_FORK_OWNER_TASK 1
|
||||
|
||||
/**
|
||||
* VHOST_SET_FORK_FROM_OWNER - Set the fork_owner flag for the vhost device,
|
||||
* This ioctl must called before VHOST_SET_OWNER.
|
||||
* Only available when CONFIG_VHOST_ENABLE_FORK_OWNER_CONTROL=y
|
||||
*
|
||||
* @param fork_owner: An 8-bit value that determines the vhost thread mode
|
||||
*
|
||||
* When fork_owner is set to VHOST_FORK_OWNER_TASK(default value):
|
||||
* - Vhost will create vhost worker as tasks forked from the owner,
|
||||
* inheriting all of the owner's attributes.
|
||||
*
|
||||
* When fork_owner is set to VHOST_FORK_OWNER_KTHREAD:
|
||||
* - Vhost will create vhost workers as kernel threads.
|
||||
*/
|
||||
#define VHOST_SET_FORK_FROM_OWNER _IOW(VHOST_VIRTIO, 0x83, __u8)
|
||||
|
||||
/**
|
||||
* VHOST_GET_FORK_OWNER - Get the current fork_owner flag for the vhost device.
|
||||
* Only available when CONFIG_VHOST_ENABLE_FORK_OWNER_CONTROL=y
|
||||
*
|
||||
* @return: An 8-bit value indicating the current thread mode.
|
||||
*/
|
||||
#define VHOST_GET_FORK_FROM_OWNER _IOR(VHOST_VIRTIO, 0x84, __u8)
|
||||
|
||||
#endif
|
||||
|
||||
@@ -110,6 +110,11 @@ struct vhost_msg_v2 {
|
||||
};
|
||||
};
|
||||
|
||||
struct vhost_features_array {
|
||||
__u64 count; /* number of entries present in features array */
|
||||
__u64 features[] __counted_by(count);
|
||||
};
|
||||
|
||||
struct vhost_memory_region {
|
||||
__u64 guest_phys_addr;
|
||||
__u64 memory_size; /* bytes */
|
||||
|
||||
@@ -726,7 +726,7 @@ struct v4l2_pix_format {
|
||||
#define V4L2_PIX_FMT_SGBRG12 v4l2_fourcc('G', 'B', '1', '2') /* 12 GBGB.. RGRG.. */
|
||||
#define V4L2_PIX_FMT_SGRBG12 v4l2_fourcc('B', 'A', '1', '2') /* 12 GRGR.. BGBG.. */
|
||||
#define V4L2_PIX_FMT_SRGGB12 v4l2_fourcc('R', 'G', '1', '2') /* 12 RGRG.. GBGB.. */
|
||||
/* 12bit raw bayer packed, 6 bytes for every 4 pixels */
|
||||
/* 12bit raw bayer packed, 3 bytes for every 2 pixels */
|
||||
#define V4L2_PIX_FMT_SBGGR12P v4l2_fourcc('p', 'B', 'C', 'C')
|
||||
#define V4L2_PIX_FMT_SGBRG12P v4l2_fourcc('p', 'G', 'C', 'C')
|
||||
#define V4L2_PIX_FMT_SGRBG12P v4l2_fourcc('p', 'g', 'C', 'C')
|
||||
@@ -840,6 +840,12 @@ struct v4l2_pix_format {
|
||||
#define V4L2_PIX_FMT_PISP_COMP2_BGGR v4l2_fourcc('P', 'C', '2', 'B') /* PiSP 8-bit mode 2 compressed BGGR bayer */
|
||||
#define V4L2_PIX_FMT_PISP_COMP2_MONO v4l2_fourcc('P', 'C', '2', 'M') /* PiSP 8-bit mode 2 compressed monochrome */
|
||||
|
||||
/* Renesas RZ/V2H CRU packed formats. 64-bit units with contiguous pixels */
|
||||
#define V4L2_PIX_FMT_RAW_CRU10 v4l2_fourcc('C', 'R', '1', '0')
|
||||
#define V4L2_PIX_FMT_RAW_CRU12 v4l2_fourcc('C', 'R', '1', '2')
|
||||
#define V4L2_PIX_FMT_RAW_CRU14 v4l2_fourcc('C', 'R', '1', '4')
|
||||
#define V4L2_PIX_FMT_RAW_CRU20 v4l2_fourcc('C', 'R', '2', '0')
|
||||
|
||||
/* SDR formats - used only for Software Defined Radio devices */
|
||||
#define V4L2_SDR_FMT_CU8 v4l2_fourcc('C', 'U', '0', '8') /* IQ u8 */
|
||||
#define V4L2_SDR_FMT_CU16LE v4l2_fourcc('C', 'U', '1', '6') /* IQ u16le */
|
||||
@@ -861,6 +867,7 @@ struct v4l2_pix_format {
|
||||
#define V4L2_META_FMT_VSP1_HGT v4l2_fourcc('V', 'S', 'P', 'T') /* R-Car VSP1 2-D Histogram */
|
||||
#define V4L2_META_FMT_UVC v4l2_fourcc('U', 'V', 'C', 'H') /* UVC Payload Header metadata */
|
||||
#define V4L2_META_FMT_D4XX v4l2_fourcc('D', '4', 'X', 'X') /* D4XX Payload Header metadata */
|
||||
#define V4L2_META_FMT_UVC_MSXU_1_5 v4l2_fourcc('U', 'V', 'C', 'M') /* UVC MSXU metadata */
|
||||
#define V4L2_META_FMT_VIVID v4l2_fourcc('V', 'I', 'V', 'D') /* Vivid Metadata */
|
||||
|
||||
/* Vendor specific - used for RK_ISP1 camera sub-system */
|
||||
|
||||
@@ -70,6 +70,28 @@
|
||||
* with the same MAC.
|
||||
*/
|
||||
#define VIRTIO_NET_F_SPEED_DUPLEX 63 /* Device set linkspeed and duplex */
|
||||
#define VIRTIO_NET_F_GUEST_UDP_TUNNEL_GSO 65 /* Driver can receive
|
||||
* GSO-over-UDP-tunnel packets
|
||||
*/
|
||||
#define VIRTIO_NET_F_GUEST_UDP_TUNNEL_GSO_CSUM 66 /* Driver handles
|
||||
* GSO-over-UDP-tunnel
|
||||
* packets with partial csum
|
||||
* for the outer header
|
||||
*/
|
||||
#define VIRTIO_NET_F_HOST_UDP_TUNNEL_GSO 67 /* Device can receive
|
||||
* GSO-over-UDP-tunnel packets
|
||||
*/
|
||||
#define VIRTIO_NET_F_HOST_UDP_TUNNEL_GSO_CSUM 68 /* Device handles
|
||||
* GSO-over-UDP-tunnel
|
||||
* packets with partial csum
|
||||
* for the outer header
|
||||
*/
|
||||
|
||||
/* Offloads bits corresponding to VIRTIO_NET_F_HOST_UDP_TUNNEL_GSO{,_CSUM}
|
||||
* features
|
||||
*/
|
||||
#define VIRTIO_NET_F_GUEST_UDP_TUNNEL_GSO_MAPPED 46
|
||||
#define VIRTIO_NET_F_GUEST_UDP_TUNNEL_GSO_CSUM_MAPPED 47
|
||||
|
||||
#ifndef VIRTIO_NET_NO_LEGACY
|
||||
#define VIRTIO_NET_F_GSO 6 /* Host handles pkts w/ any GSO type */
|
||||
@@ -131,12 +153,17 @@ struct virtio_net_hdr_v1 {
|
||||
#define VIRTIO_NET_HDR_F_NEEDS_CSUM 1 /* Use csum_start, csum_offset */
|
||||
#define VIRTIO_NET_HDR_F_DATA_VALID 2 /* Csum is valid */
|
||||
#define VIRTIO_NET_HDR_F_RSC_INFO 4 /* rsc info in csum_ fields */
|
||||
#define VIRTIO_NET_HDR_F_UDP_TUNNEL_CSUM 8 /* UDP tunnel csum offload */
|
||||
__u8 flags;
|
||||
#define VIRTIO_NET_HDR_GSO_NONE 0 /* Not a GSO frame */
|
||||
#define VIRTIO_NET_HDR_GSO_TCPV4 1 /* GSO frame, IPv4 TCP (TSO) */
|
||||
#define VIRTIO_NET_HDR_GSO_UDP 3 /* GSO frame, IPv4 UDP (UFO) */
|
||||
#define VIRTIO_NET_HDR_GSO_TCPV6 4 /* GSO frame, IPv6 TCP */
|
||||
#define VIRTIO_NET_HDR_GSO_UDP_L4 5 /* GSO frame, IPv4& IPv6 UDP (USO) */
|
||||
#define VIRTIO_NET_HDR_GSO_UDP_TUNNEL_IPV4 0x20 /* UDPv4 tunnel present */
|
||||
#define VIRTIO_NET_HDR_GSO_UDP_TUNNEL_IPV6 0x40 /* UDPv6 tunnel present */
|
||||
#define VIRTIO_NET_HDR_GSO_UDP_TUNNEL (VIRTIO_NET_HDR_GSO_UDP_TUNNEL_IPV4 | \
|
||||
VIRTIO_NET_HDR_GSO_UDP_TUNNEL_IPV6)
|
||||
#define VIRTIO_NET_HDR_GSO_ECN 0x80 /* TCP has ECN set */
|
||||
__u8 gso_type;
|
||||
__virtio16 hdr_len; /* Ethernet + IP + tcp/udp hdrs */
|
||||
@@ -181,6 +208,12 @@ struct virtio_net_hdr_v1_hash {
|
||||
__le16 padding;
|
||||
};
|
||||
|
||||
struct virtio_net_hdr_v1_hash_tunnel {
|
||||
struct virtio_net_hdr_v1_hash hash_hdr;
|
||||
__le16 outer_th_offset;
|
||||
__le16 inner_nh_offset;
|
||||
};
|
||||
|
||||
#ifndef VIRTIO_NET_NO_LEGACY
|
||||
/* This header comes first in the scatter-gather list.
|
||||
* For legacy virtio, if VIRTIO_F_ANY_LAYOUT is not negotiated, it must
|
||||
|
||||
@@ -17,6 +17,10 @@
|
||||
#ifndef _UAPI_VM_SOCKETS_H
|
||||
#define _UAPI_VM_SOCKETS_H
|
||||
|
||||
#ifndef __KERNEL__
|
||||
#include <sys/socket.h> /* for struct sockaddr and sa_family_t */
|
||||
#endif
|
||||
|
||||
#include <linux/socket.h>
|
||||
#include <linux/types.h>
|
||||
|
||||
|
||||
+22
-22
@@ -19,11 +19,11 @@
|
||||
#define VT_OPENQRY 0x5600 /* find available vt */
|
||||
|
||||
struct vt_mode {
|
||||
char mode; /* vt mode */
|
||||
char waitv; /* if set, hang on writes if not active */
|
||||
short relsig; /* signal to raise on release req */
|
||||
short acqsig; /* signal to raise on acquisition */
|
||||
short frsig; /* unused (set to 0) */
|
||||
__u8 mode; /* vt mode */
|
||||
__u8 waitv; /* if set, hang on writes if not active */
|
||||
__s16 relsig; /* signal to raise on release req */
|
||||
__s16 acqsig; /* signal to raise on acquisition */
|
||||
__s16 frsig; /* unused (set to 0) */
|
||||
};
|
||||
#define VT_GETMODE 0x5601 /* get mode of active vt */
|
||||
#define VT_SETMODE 0x5602 /* set mode of active vt */
|
||||
@@ -32,9 +32,9 @@ struct vt_mode {
|
||||
#define VT_ACKACQ 0x02 /* acknowledge switch */
|
||||
|
||||
struct vt_stat {
|
||||
unsigned short v_active; /* active vt */
|
||||
unsigned short v_signal; /* signal to send */
|
||||
unsigned short v_state; /* vt bitmask */
|
||||
__u16 v_active; /* active vt */
|
||||
__u16 v_signal; /* signal to send */
|
||||
__u16 v_state; /* vt bitmask */
|
||||
};
|
||||
#define VT_GETSTATE 0x5603 /* get global vt state info */
|
||||
#define VT_SENDSIG 0x5604 /* signal to send to bitmask of vts */
|
||||
@@ -46,19 +46,19 @@ struct vt_stat {
|
||||
#define VT_DISALLOCATE 0x5608 /* free memory associated to vt */
|
||||
|
||||
struct vt_sizes {
|
||||
unsigned short v_rows; /* number of rows */
|
||||
unsigned short v_cols; /* number of columns */
|
||||
unsigned short v_scrollsize; /* number of lines of scrollback */
|
||||
__u16 v_rows; /* number of rows */
|
||||
__u16 v_cols; /* number of columns */
|
||||
__u16 v_scrollsize; /* number of lines of scrollback */
|
||||
};
|
||||
#define VT_RESIZE 0x5609 /* set kernel's idea of screensize */
|
||||
|
||||
struct vt_consize {
|
||||
unsigned short v_rows; /* number of rows */
|
||||
unsigned short v_cols; /* number of columns */
|
||||
unsigned short v_vlin; /* number of pixel rows on screen */
|
||||
unsigned short v_clin; /* number of pixel rows per character */
|
||||
unsigned short v_vcol; /* number of pixel columns on screen */
|
||||
unsigned short v_ccol; /* number of pixel columns per character */
|
||||
__u16 v_rows; /* number of rows */
|
||||
__u16 v_cols; /* number of columns */
|
||||
__u16 v_vlin; /* number of pixel rows on screen */
|
||||
__u16 v_clin; /* number of pixel rows per character */
|
||||
__u16 v_vcol; /* number of pixel columns on screen */
|
||||
__u16 v_ccol; /* number of pixel columns per character */
|
||||
};
|
||||
#define VT_RESIZEX 0x560A /* set kernel's idea of screensize + more */
|
||||
#define VT_LOCKSWITCH 0x560B /* disallow vt switching */
|
||||
@@ -66,21 +66,21 @@ struct vt_consize {
|
||||
#define VT_GETHIFONTMASK 0x560D /* return hi font mask */
|
||||
|
||||
struct vt_event {
|
||||
unsigned int event;
|
||||
__u32 event;
|
||||
#define VT_EVENT_SWITCH 0x0001 /* Console switch */
|
||||
#define VT_EVENT_BLANK 0x0002 /* Screen blank */
|
||||
#define VT_EVENT_UNBLANK 0x0004 /* Screen unblank */
|
||||
#define VT_EVENT_RESIZE 0x0008 /* Resize display */
|
||||
#define VT_MAX_EVENT 0x000F
|
||||
unsigned int oldev; /* Old console */
|
||||
unsigned int newev; /* New console (if changing) */
|
||||
unsigned int pad[4]; /* Padding for expansion */
|
||||
__u32 oldev; /* Old console */
|
||||
__u32 newev; /* New console (if changing) */
|
||||
__u32 pad[4]; /* Padding for expansion */
|
||||
};
|
||||
|
||||
#define VT_WAITEVENT 0x560E /* Wait for an event */
|
||||
|
||||
struct vt_setactivate {
|
||||
unsigned int console;
|
||||
__u32 console;
|
||||
struct vt_mode mode;
|
||||
};
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/* SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-2-Clause) */
|
||||
/*
|
||||
* Copyright 2018-2024 Amazon.com, Inc. or its affiliates. All rights reserved.
|
||||
* Copyright 2018-2025 Amazon.com, Inc. or its affiliates. All rights reserved.
|
||||
*/
|
||||
|
||||
#ifndef EFA_ABI_USER_H
|
||||
@@ -131,6 +131,7 @@ enum {
|
||||
EFA_QUERY_DEVICE_CAPS_DATA_POLLING_128 = 1 << 4,
|
||||
EFA_QUERY_DEVICE_CAPS_RDMA_WRITE = 1 << 5,
|
||||
EFA_QUERY_DEVICE_CAPS_UNSOLICITED_WRITE_RECV = 1 << 6,
|
||||
EFA_QUERY_DEVICE_CAPS_CQ_WITH_EXT_MEM = 1 << 7,
|
||||
};
|
||||
|
||||
struct efa_ibv_ex_query_device_resp {
|
||||
|
||||
@@ -55,6 +55,7 @@ enum uverbs_default_objects {
|
||||
UVERBS_OBJECT_DM,
|
||||
UVERBS_OBJECT_COUNTERS,
|
||||
UVERBS_OBJECT_ASYNC_EVENT,
|
||||
UVERBS_OBJECT_DMAH,
|
||||
};
|
||||
|
||||
enum {
|
||||
@@ -105,6 +106,10 @@ enum uverbs_attrs_create_cq_cmd_attr_ids {
|
||||
UVERBS_ATTR_CREATE_CQ_FLAGS,
|
||||
UVERBS_ATTR_CREATE_CQ_RESP_CQE,
|
||||
UVERBS_ATTR_CREATE_CQ_EVENT_FD,
|
||||
UVERBS_ATTR_CREATE_CQ_BUFFER_VA,
|
||||
UVERBS_ATTR_CREATE_CQ_BUFFER_LENGTH,
|
||||
UVERBS_ATTR_CREATE_CQ_BUFFER_FD,
|
||||
UVERBS_ATTR_CREATE_CQ_BUFFER_OFFSET,
|
||||
};
|
||||
|
||||
enum uverbs_attrs_destroy_cq_cmd_attr_ids {
|
||||
@@ -236,6 +241,22 @@ enum uverbs_methods_dm {
|
||||
UVERBS_METHOD_DM_FREE,
|
||||
};
|
||||
|
||||
enum uverbs_attrs_alloc_dmah_cmd_attr_ids {
|
||||
UVERBS_ATTR_ALLOC_DMAH_HANDLE,
|
||||
UVERBS_ATTR_ALLOC_DMAH_CPU_ID,
|
||||
UVERBS_ATTR_ALLOC_DMAH_TPH_MEM_TYPE,
|
||||
UVERBS_ATTR_ALLOC_DMAH_PH,
|
||||
};
|
||||
|
||||
enum uverbs_attrs_free_dmah_cmd_attr_ids {
|
||||
UVERBS_ATTR_FREE_DMA_HANDLE,
|
||||
};
|
||||
|
||||
enum uverbs_methods_dmah {
|
||||
UVERBS_METHOD_DMAH_ALLOC,
|
||||
UVERBS_METHOD_DMAH_FREE,
|
||||
};
|
||||
|
||||
enum uverbs_attrs_reg_dm_mr_cmd_attr_ids {
|
||||
UVERBS_ATTR_REG_DM_MR_HANDLE,
|
||||
UVERBS_ATTR_REG_DM_MR_OFFSET,
|
||||
@@ -253,6 +274,7 @@ enum uverbs_methods_mr {
|
||||
UVERBS_METHOD_ADVISE_MR,
|
||||
UVERBS_METHOD_QUERY_MR,
|
||||
UVERBS_METHOD_REG_DMABUF_MR,
|
||||
UVERBS_METHOD_REG_MR,
|
||||
};
|
||||
|
||||
enum uverbs_attrs_mr_destroy_ids {
|
||||
@@ -286,6 +308,20 @@ enum uverbs_attrs_reg_dmabuf_mr_cmd_attr_ids {
|
||||
UVERBS_ATTR_REG_DMABUF_MR_RESP_RKEY,
|
||||
};
|
||||
|
||||
enum uverbs_attrs_reg_mr_cmd_attr_ids {
|
||||
UVERBS_ATTR_REG_MR_HANDLE,
|
||||
UVERBS_ATTR_REG_MR_PD_HANDLE,
|
||||
UVERBS_ATTR_REG_MR_DMA_HANDLE,
|
||||
UVERBS_ATTR_REG_MR_IOVA,
|
||||
UVERBS_ATTR_REG_MR_ADDR,
|
||||
UVERBS_ATTR_REG_MR_LENGTH,
|
||||
UVERBS_ATTR_REG_MR_ACCESS_FLAGS,
|
||||
UVERBS_ATTR_REG_MR_FD,
|
||||
UVERBS_ATTR_REG_MR_FD_OFFSET,
|
||||
UVERBS_ATTR_REG_MR_RESP_LKEY,
|
||||
UVERBS_ATTR_REG_MR_RESP_RKEY,
|
||||
};
|
||||
|
||||
enum uverbs_attrs_create_counters_cmd_attr_ids {
|
||||
UVERBS_ATTR_CREATE_COUNTERS_HANDLE,
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user