Merge branch 'next' into for-linus
Prepare input updates for 5.6 merge window.
This commit is contained in:
@@ -2,6 +2,8 @@
|
||||
#ifndef __ASM_GENERIC_IPCBUF_H
|
||||
#define __ASM_GENERIC_IPCBUF_H
|
||||
|
||||
#include <linux/posix_types.h>
|
||||
|
||||
/*
|
||||
* The generic ipc64_perm structure:
|
||||
* Note extra padding because this structure is passed back and forth
|
||||
|
@@ -3,6 +3,8 @@
|
||||
#define __ASM_GENERIC_MSGBUF_H
|
||||
|
||||
#include <asm/bitsperlong.h>
|
||||
#include <asm/ipcbuf.h>
|
||||
|
||||
/*
|
||||
* generic msqid64_ds structure.
|
||||
*
|
||||
@@ -13,9 +15,9 @@
|
||||
* everyone just ended up making identical copies without specific
|
||||
* optimizations, so we may just as well all use the same one.
|
||||
*
|
||||
* 64 bit architectures typically define a 64 bit __kernel_time_t,
|
||||
* so they do not need the first three padding words.
|
||||
* On big-endian systems, the padding is in the wrong place.
|
||||
* 64 bit architectures use a 64-bit long time field here, while
|
||||
* 32 bit architectures have a pair of unsigned long values.
|
||||
* On big-endian systems, the lower half is in the wrong place.
|
||||
*
|
||||
* Pad space is left for:
|
||||
* - 2 miscellaneous 32-bit values
|
||||
@@ -24,9 +26,9 @@
|
||||
struct msqid64_ds {
|
||||
struct ipc64_perm msg_perm;
|
||||
#if __BITS_PER_LONG == 64
|
||||
__kernel_time_t msg_stime; /* last msgsnd time */
|
||||
__kernel_time_t msg_rtime; /* last msgrcv time */
|
||||
__kernel_time_t msg_ctime; /* last change time */
|
||||
long msg_stime; /* last msgsnd time */
|
||||
long msg_rtime; /* last msgrcv time */
|
||||
long msg_ctime; /* last change time */
|
||||
#else
|
||||
unsigned long msg_stime; /* last msgsnd time */
|
||||
unsigned long msg_stime_high;
|
||||
|
@@ -86,6 +86,7 @@ typedef struct {
|
||||
*/
|
||||
typedef __kernel_long_t __kernel_off_t;
|
||||
typedef long long __kernel_loff_t;
|
||||
typedef __kernel_long_t __kernel_old_time_t;
|
||||
typedef __kernel_long_t __kernel_time_t;
|
||||
typedef long long __kernel_time64_t;
|
||||
typedef __kernel_long_t __kernel_clock_t;
|
||||
|
@@ -3,6 +3,7 @@
|
||||
#define __ASM_GENERIC_SEMBUF_H
|
||||
|
||||
#include <asm/bitsperlong.h>
|
||||
#include <asm/ipcbuf.h>
|
||||
|
||||
/*
|
||||
* The semid64_ds structure for x86 architecture.
|
||||
@@ -13,9 +14,8 @@
|
||||
* everyone just ended up making identical copies without specific
|
||||
* optimizations, so we may just as well all use the same one.
|
||||
*
|
||||
* 64 bit architectures use a 64-bit __kernel_time_t here, while
|
||||
* 64 bit architectures use a 64-bit long time field here, while
|
||||
* 32 bit architectures have a pair of unsigned long values.
|
||||
* so they do not need the first two padding words.
|
||||
*
|
||||
* On big-endian systems, the padding is in the wrong place for
|
||||
* historic reasons, so user space has to reconstruct a time_t
|
||||
@@ -29,8 +29,8 @@
|
||||
struct semid64_ds {
|
||||
struct ipc64_perm sem_perm; /* permissions .. see ipc.h */
|
||||
#if __BITS_PER_LONG == 64
|
||||
__kernel_time_t sem_otime; /* last semop time */
|
||||
__kernel_time_t sem_ctime; /* last change time */
|
||||
long sem_otime; /* last semop time */
|
||||
long sem_ctime; /* last change time */
|
||||
#else
|
||||
unsigned long sem_otime; /* last semop time */
|
||||
unsigned long sem_otime_high;
|
||||
|
@@ -13,9 +13,9 @@
|
||||
* everyone just ended up making identical copies without specific
|
||||
* optimizations, so we may just as well all use the same one.
|
||||
*
|
||||
* 64 bit architectures typically define a 64 bit __kernel_time_t,
|
||||
* so they do not need the first two padding words.
|
||||
* On big-endian systems, the padding is in the wrong place.
|
||||
* 64 bit architectures use a 64-bit long time field here, while
|
||||
* 32 bit architectures have a pair of unsigned long values.
|
||||
* On big-endian systems, the lower half is in the wrong place.
|
||||
*
|
||||
*
|
||||
* Pad space is left for:
|
||||
@@ -26,9 +26,9 @@ struct shmid64_ds {
|
||||
struct ipc64_perm shm_perm; /* operation perms */
|
||||
size_t shm_segsz; /* size of segment (bytes) */
|
||||
#if __BITS_PER_LONG == 64
|
||||
__kernel_time_t shm_atime; /* last attach time */
|
||||
__kernel_time_t shm_dtime; /* last detach time */
|
||||
__kernel_time_t shm_ctime; /* last change time */
|
||||
long shm_atime; /* last attach time */
|
||||
long shm_dtime; /* last detach time */
|
||||
long shm_ctime; /* last change time */
|
||||
#else
|
||||
unsigned long shm_atime; /* last attach time */
|
||||
unsigned long shm_atime_high;
|
||||
|
@@ -500,6 +500,8 @@ struct drm_amdgpu_gem_op {
|
||||
#define AMDGPU_VM_MTYPE_CC (3 << 5)
|
||||
/* Use UC MTYPE instead of default MTYPE */
|
||||
#define AMDGPU_VM_MTYPE_UC (4 << 5)
|
||||
/* Use RW MTYPE instead of default MTYPE */
|
||||
#define AMDGPU_VM_MTYPE_RW (5 << 5)
|
||||
|
||||
struct drm_amdgpu_gem_va {
|
||||
/** GEM object handle */
|
||||
|
@@ -778,11 +778,12 @@ struct drm_syncobj_array {
|
||||
__u32 pad;
|
||||
};
|
||||
|
||||
#define DRM_SYNCOBJ_QUERY_FLAGS_LAST_SUBMITTED (1 << 0) /* last available point on timeline syncobj */
|
||||
struct drm_syncobj_timeline_array {
|
||||
__u64 handles;
|
||||
__u64 points;
|
||||
__u32 count_handles;
|
||||
__u32 pad;
|
||||
__u32 flags;
|
||||
};
|
||||
|
||||
|
||||
|
@@ -69,7 +69,7 @@ extern "C" {
|
||||
#define fourcc_code(a, b, c, d) ((__u32)(a) | ((__u32)(b) << 8) | \
|
||||
((__u32)(c) << 16) | ((__u32)(d) << 24))
|
||||
|
||||
#define DRM_FORMAT_BIG_ENDIAN (1<<31) /* format is big endian instead of little endian */
|
||||
#define DRM_FORMAT_BIG_ENDIAN (1U<<31) /* format is big endian instead of little endian */
|
||||
|
||||
/* Reserve 0 for the invalid format specifier */
|
||||
#define DRM_FORMAT_INVALID 0
|
||||
@@ -648,7 +648,21 @@ extern "C" {
|
||||
* Further information on the use of AFBC modifiers can be found in
|
||||
* Documentation/gpu/afbc.rst
|
||||
*/
|
||||
#define DRM_FORMAT_MOD_ARM_AFBC(__afbc_mode) fourcc_mod_code(ARM, __afbc_mode)
|
||||
|
||||
/*
|
||||
* The top 4 bits (out of the 56 bits alloted for specifying vendor specific
|
||||
* modifiers) denote the category for modifiers. Currently we have only two
|
||||
* categories of modifiers ie AFBC and MISC. We can have a maximum of sixteen
|
||||
* different categories.
|
||||
*/
|
||||
#define DRM_FORMAT_MOD_ARM_CODE(__type, __val) \
|
||||
fourcc_mod_code(ARM, ((__u64)(__type) << 52) | ((__val) & 0x000fffffffffffffULL))
|
||||
|
||||
#define DRM_FORMAT_MOD_ARM_TYPE_AFBC 0x00
|
||||
#define DRM_FORMAT_MOD_ARM_TYPE_MISC 0x01
|
||||
|
||||
#define DRM_FORMAT_MOD_ARM_AFBC(__afbc_mode) \
|
||||
DRM_FORMAT_MOD_ARM_CODE(DRM_FORMAT_MOD_ARM_TYPE_AFBC, __afbc_mode)
|
||||
|
||||
/*
|
||||
* AFBC superblock size
|
||||
@@ -742,6 +756,16 @@ extern "C" {
|
||||
*/
|
||||
#define AFBC_FORMAT_MOD_BCH (1ULL << 11)
|
||||
|
||||
/*
|
||||
* Arm 16x16 Block U-Interleaved modifier
|
||||
*
|
||||
* This is used by Arm Mali Utgard and Midgard GPUs. It divides the image
|
||||
* into 16x16 pixel blocks. Blocks are stored linearly in order, but pixels
|
||||
* in the block are reordered.
|
||||
*/
|
||||
#define DRM_FORMAT_MOD_ARM_16X16_BLOCK_U_INTERLEAVED \
|
||||
DRM_FORMAT_MOD_ARM_CODE(DRM_FORMAT_MOD_ARM_TYPE_MISC, 1ULL)
|
||||
|
||||
/*
|
||||
* Allwinner tiled modifier
|
||||
*
|
||||
|
@@ -68,7 +68,7 @@ struct drm_exynos_gem_info {
|
||||
/**
|
||||
* A structure for user connection request of virtual display.
|
||||
*
|
||||
* @connection: indicate whether doing connetion or not by user.
|
||||
* @connection: indicate whether doing connection or not by user.
|
||||
* @extensions: if this value is 1 then the vidi driver would need additional
|
||||
* 128bytes edid data.
|
||||
* @edid: the edid data pointer from user side.
|
||||
|
@@ -611,6 +611,13 @@ typedef struct drm_i915_irq_wait {
|
||||
* See I915_EXEC_FENCE_OUT and I915_EXEC_FENCE_SUBMIT.
|
||||
*/
|
||||
#define I915_PARAM_HAS_EXEC_SUBMIT_FENCE 53
|
||||
|
||||
/*
|
||||
* Revision of the i915-perf uAPI. The value returned helps determine what
|
||||
* i915-perf features are available. See drm_i915_perf_property_id.
|
||||
*/
|
||||
#define I915_PARAM_PERF_REVISION 54
|
||||
|
||||
/* Must be kept compact -- no holes and well documented */
|
||||
|
||||
typedef struct drm_i915_getparam {
|
||||
@@ -1565,6 +1572,21 @@ struct drm_i915_gem_context_param {
|
||||
* i915_context_engines_bond (I915_CONTEXT_ENGINES_EXT_BOND)
|
||||
*/
|
||||
#define I915_CONTEXT_PARAM_ENGINES 0xa
|
||||
|
||||
/*
|
||||
* I915_CONTEXT_PARAM_PERSISTENCE:
|
||||
*
|
||||
* Allow the context and active rendering to survive the process until
|
||||
* completion. Persistence allows fire-and-forget clients to queue up a
|
||||
* bunch of work, hand the output over to a display server and then quit.
|
||||
* If the context is marked as not persistent, upon closing (either via
|
||||
* an explicit DRM_I915_GEM_CONTEXT_DESTROY or implicitly from file closure
|
||||
* or process termination), the context and any outstanding requests will be
|
||||
* cancelled (and exported fences for cancelled requests marked as -EIO).
|
||||
*
|
||||
* By default, new contexts allow persistence.
|
||||
*/
|
||||
#define I915_CONTEXT_PARAM_PERSISTENCE 0xb
|
||||
/* Must be kept compact -- no holes and well documented */
|
||||
|
||||
__u64 value;
|
||||
@@ -1844,23 +1866,31 @@ enum drm_i915_perf_property_id {
|
||||
* Open the stream for a specific context handle (as used with
|
||||
* execbuffer2). A stream opened for a specific context this way
|
||||
* won't typically require root privileges.
|
||||
*
|
||||
* This property is available in perf revision 1.
|
||||
*/
|
||||
DRM_I915_PERF_PROP_CTX_HANDLE = 1,
|
||||
|
||||
/**
|
||||
* A value of 1 requests the inclusion of raw OA unit reports as
|
||||
* part of stream samples.
|
||||
*
|
||||
* This property is available in perf revision 1.
|
||||
*/
|
||||
DRM_I915_PERF_PROP_SAMPLE_OA,
|
||||
|
||||
/**
|
||||
* The value specifies which set of OA unit metrics should be
|
||||
* be configured, defining the contents of any OA unit reports.
|
||||
*
|
||||
* This property is available in perf revision 1.
|
||||
*/
|
||||
DRM_I915_PERF_PROP_OA_METRICS_SET,
|
||||
|
||||
/**
|
||||
* The value specifies the size and layout of OA unit reports.
|
||||
*
|
||||
* This property is available in perf revision 1.
|
||||
*/
|
||||
DRM_I915_PERF_PROP_OA_FORMAT,
|
||||
|
||||
@@ -1870,9 +1900,22 @@ enum drm_i915_perf_property_id {
|
||||
* from this exponent as follows:
|
||||
*
|
||||
* 80ns * 2^(period_exponent + 1)
|
||||
*
|
||||
* This property is available in perf revision 1.
|
||||
*/
|
||||
DRM_I915_PERF_PROP_OA_EXPONENT,
|
||||
|
||||
/**
|
||||
* Specifying this property is only valid when specify a context to
|
||||
* filter with DRM_I915_PERF_PROP_CTX_HANDLE. Specifying this property
|
||||
* will hold preemption of the particular context we want to gather
|
||||
* performance data about. The execbuf2 submissions must include a
|
||||
* drm_i915_gem_execbuffer_ext_perf parameter for this to apply.
|
||||
*
|
||||
* This property is available in perf revision 3.
|
||||
*/
|
||||
DRM_I915_PERF_PROP_HOLD_PREEMPTION,
|
||||
|
||||
DRM_I915_PERF_PROP_MAX /* non-ABI */
|
||||
};
|
||||
|
||||
@@ -1901,6 +1944,8 @@ struct drm_i915_perf_open_param {
|
||||
* to close and re-open a stream with the same configuration.
|
||||
*
|
||||
* It's undefined whether any pending data for the stream will be lost.
|
||||
*
|
||||
* This ioctl is available in perf revision 1.
|
||||
*/
|
||||
#define I915_PERF_IOCTL_ENABLE _IO('i', 0x0)
|
||||
|
||||
@@ -1908,9 +1953,24 @@ struct drm_i915_perf_open_param {
|
||||
* Disable data capture for a stream.
|
||||
*
|
||||
* It is an error to try and read a stream that is disabled.
|
||||
*
|
||||
* This ioctl is available in perf revision 1.
|
||||
*/
|
||||
#define I915_PERF_IOCTL_DISABLE _IO('i', 0x1)
|
||||
|
||||
/**
|
||||
* Change metrics_set captured by a stream.
|
||||
*
|
||||
* If the stream is bound to a specific context, the configuration change
|
||||
* will performed inline with that context such that it takes effect before
|
||||
* the next execbuf submission.
|
||||
*
|
||||
* Returns the previously bound metrics set id, or a negative error code.
|
||||
*
|
||||
* This ioctl is available in perf revision 2.
|
||||
*/
|
||||
#define I915_PERF_IOCTL_CONFIG _IO('i', 0x2)
|
||||
|
||||
/**
|
||||
* Common to all i915 perf records
|
||||
*/
|
||||
@@ -1984,6 +2044,7 @@ struct drm_i915_query_item {
|
||||
__u64 query_id;
|
||||
#define DRM_I915_QUERY_TOPOLOGY_INFO 1
|
||||
#define DRM_I915_QUERY_ENGINE_INFO 2
|
||||
#define DRM_I915_QUERY_PERF_CONFIG 3
|
||||
/* Must be kept compact -- no holes and well documented */
|
||||
|
||||
/*
|
||||
@@ -1995,9 +2056,18 @@ struct drm_i915_query_item {
|
||||
__s32 length;
|
||||
|
||||
/*
|
||||
* Unused for now. Must be cleared to zero.
|
||||
* When query_id == DRM_I915_QUERY_TOPOLOGY_INFO, must be 0.
|
||||
*
|
||||
* When query_id == DRM_I915_QUERY_PERF_CONFIG, must be one of the
|
||||
* following :
|
||||
* - DRM_I915_QUERY_PERF_CONFIG_LIST
|
||||
* - DRM_I915_QUERY_PERF_CONFIG_DATA_FOR_UUID
|
||||
* - DRM_I915_QUERY_PERF_CONFIG_FOR_UUID
|
||||
*/
|
||||
__u32 flags;
|
||||
#define DRM_I915_QUERY_PERF_CONFIG_LIST 1
|
||||
#define DRM_I915_QUERY_PERF_CONFIG_DATA_FOR_UUID 2
|
||||
#define DRM_I915_QUERY_PERF_CONFIG_DATA_FOR_ID 3
|
||||
|
||||
/*
|
||||
* Data will be written at the location pointed by data_ptr when the
|
||||
@@ -2033,8 +2103,10 @@ struct drm_i915_query {
|
||||
* (data[X / 8] >> (X % 8)) & 1
|
||||
*
|
||||
* - the subslice mask for each slice with one bit per subslice telling
|
||||
* whether a subslice is available. The availability of subslice Y in slice
|
||||
* X can be queried with the following formula :
|
||||
* whether a subslice is available. Gen12 has dual-subslices, which are
|
||||
* similar to two gen11 subslices. For gen12, this array represents dual-
|
||||
* subslices. The availability of subslice Y in slice X can be queried
|
||||
* with the following formula :
|
||||
*
|
||||
* (data[subslice_offset +
|
||||
* X * subslice_stride +
|
||||
@@ -2123,6 +2195,56 @@ struct drm_i915_query_engine_info {
|
||||
struct drm_i915_engine_info engines[];
|
||||
};
|
||||
|
||||
/*
|
||||
* Data written by the kernel with query DRM_I915_QUERY_PERF_CONFIG.
|
||||
*/
|
||||
struct drm_i915_query_perf_config {
|
||||
union {
|
||||
/*
|
||||
* When query_item.flags == DRM_I915_QUERY_PERF_CONFIG_LIST, i915 sets
|
||||
* this fields to the number of configurations available.
|
||||
*/
|
||||
__u64 n_configs;
|
||||
|
||||
/*
|
||||
* When query_id == DRM_I915_QUERY_PERF_CONFIG_DATA_FOR_ID,
|
||||
* i915 will use the value in this field as configuration
|
||||
* identifier to decide what data to write into config_ptr.
|
||||
*/
|
||||
__u64 config;
|
||||
|
||||
/*
|
||||
* When query_id == DRM_I915_QUERY_PERF_CONFIG_DATA_FOR_UUID,
|
||||
* i915 will use the value in this field as configuration
|
||||
* identifier to decide what data to write into config_ptr.
|
||||
*
|
||||
* String formatted like "%08x-%04x-%04x-%04x-%012x"
|
||||
*/
|
||||
char uuid[36];
|
||||
};
|
||||
|
||||
/*
|
||||
* Unused for now. Must be cleared to zero.
|
||||
*/
|
||||
__u32 flags;
|
||||
|
||||
/*
|
||||
* When query_item.flags == DRM_I915_QUERY_PERF_CONFIG_LIST, i915 will
|
||||
* write an array of __u64 of configuration identifiers.
|
||||
*
|
||||
* When query_item.flags == DRM_I915_QUERY_PERF_CONFIG_DATA, i915 will
|
||||
* write a struct drm_i915_perf_oa_config. If the following fields of
|
||||
* drm_i915_perf_oa_config are set not set to 0, i915 will write into
|
||||
* the associated pointers the values of submitted when the
|
||||
* configuration was created :
|
||||
*
|
||||
* - n_mux_regs
|
||||
* - n_boolean_regs
|
||||
* - n_flex_regs
|
||||
*/
|
||||
__u8 data[];
|
||||
};
|
||||
|
||||
#if defined(__cplusplus)
|
||||
}
|
||||
#endif
|
||||
|
@@ -38,20 +38,20 @@ struct drm_omap_param {
|
||||
__u64 value; /* in (set_param), out (get_param) */
|
||||
};
|
||||
|
||||
#define OMAP_BO_SCANOUT 0x00000001 /* scanout capable (phys contiguous) */
|
||||
#define OMAP_BO_CACHE_MASK 0x00000006 /* cache type mask, see cache modes */
|
||||
#define OMAP_BO_TILED_MASK 0x00000f00 /* tiled mapping mask, see tiled modes */
|
||||
/* Scanout buffer, consumable by DSS */
|
||||
#define OMAP_BO_SCANOUT 0x00000001
|
||||
|
||||
/* cache modes */
|
||||
#define OMAP_BO_CACHED 0x00000000 /* default */
|
||||
#define OMAP_BO_WC 0x00000002 /* write-combine */
|
||||
#define OMAP_BO_UNCACHED 0x00000004 /* strongly-ordered (uncached) */
|
||||
/* Buffer CPU caching mode: cached, write-combining or uncached. */
|
||||
#define OMAP_BO_CACHED 0x00000000
|
||||
#define OMAP_BO_WC 0x00000002
|
||||
#define OMAP_BO_UNCACHED 0x00000004
|
||||
#define OMAP_BO_CACHE_MASK 0x00000006
|
||||
|
||||
/* tiled modes */
|
||||
/* Use TILER for the buffer. The TILER container unit can be 8, 16 or 32 bits. */
|
||||
#define OMAP_BO_TILED_8 0x00000100
|
||||
#define OMAP_BO_TILED_16 0x00000200
|
||||
#define OMAP_BO_TILED_32 0x00000300
|
||||
#define OMAP_BO_TILED (OMAP_BO_TILED_8 | OMAP_BO_TILED_16 | OMAP_BO_TILED_32)
|
||||
#define OMAP_BO_TILED_MASK 0x00000f00
|
||||
|
||||
union omap_gem_size {
|
||||
__u32 bytes; /* (for non-tiled formats) */
|
||||
|
@@ -48,6 +48,8 @@ extern "C" {
|
||||
#define DRM_IOCTL_V3D_SUBMIT_TFU DRM_IOW(DRM_COMMAND_BASE + DRM_V3D_SUBMIT_TFU, struct drm_v3d_submit_tfu)
|
||||
#define DRM_IOCTL_V3D_SUBMIT_CSD DRM_IOW(DRM_COMMAND_BASE + DRM_V3D_SUBMIT_CSD, struct drm_v3d_submit_csd)
|
||||
|
||||
#define DRM_V3D_SUBMIT_CL_FLUSH_CACHE 0x01
|
||||
|
||||
/**
|
||||
* struct drm_v3d_submit_cl - ioctl argument for submitting commands to the 3D
|
||||
* engine.
|
||||
@@ -61,7 +63,7 @@ extern "C" {
|
||||
* flushed by the time the render done IRQ happens, which is the
|
||||
* trigger for out_sync. Any dirtying of cachelines by the job (only
|
||||
* possible using TMU writes) must be flushed by the caller using the
|
||||
* CL's cache flush commands.
|
||||
* DRM_V3D_SUBMIT_CL_FLUSH_CACHE_FLAG flag.
|
||||
*/
|
||||
struct drm_v3d_submit_cl {
|
||||
/* Pointer to the binner command list.
|
||||
@@ -124,8 +126,7 @@ struct drm_v3d_submit_cl {
|
||||
/* Number of BO handles passed in (size is that times 4). */
|
||||
__u32 bo_handle_count;
|
||||
|
||||
/* Pad, must be zero-filled. */
|
||||
__u32 pad;
|
||||
__u32 flags;
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -193,6 +194,7 @@ enum drm_v3d_param {
|
||||
DRM_V3D_PARAM_V3D_CORE0_IDENT2,
|
||||
DRM_V3D_PARAM_SUPPORTS_TFU,
|
||||
DRM_V3D_PARAM_SUPPORTS_CSD,
|
||||
DRM_V3D_PARAM_SUPPORTS_CACHE_FLUSH,
|
||||
};
|
||||
|
||||
struct drm_v3d_get_param {
|
||||
|
@@ -891,11 +891,13 @@ struct drm_vmw_shader_arg {
|
||||
* surface.
|
||||
* @drm_vmw_surface_flag_create_buffer: Create a backup buffer if none is
|
||||
* given.
|
||||
* @drm_vmw_surface_flag_coherent: Back surface with coherent memory.
|
||||
*/
|
||||
enum drm_vmw_surface_flags {
|
||||
drm_vmw_surface_flag_shareable = (1 << 0),
|
||||
drm_vmw_surface_flag_scanout = (1 << 1),
|
||||
drm_vmw_surface_flag_create_buffer = (1 << 2)
|
||||
drm_vmw_surface_flag_create_buffer = (1 << 2),
|
||||
drm_vmw_surface_flag_coherent = (1 << 3),
|
||||
};
|
||||
|
||||
/**
|
||||
|
@@ -143,6 +143,7 @@
|
||||
#define AUDIT_ANOM_PROMISCUOUS 1700 /* Device changed promiscuous mode */
|
||||
#define AUDIT_ANOM_ABEND 1701 /* Process ended abnormally */
|
||||
#define AUDIT_ANOM_LINK 1702 /* Suspicious use of file links */
|
||||
#define AUDIT_ANOM_CREAT 1703 /* Suspicious file creation */
|
||||
#define AUDIT_INTEGRITY_DATA 1800 /* Data integrity verification */
|
||||
#define AUDIT_INTEGRITY_METADATA 1801 /* Metadata integrity verification */
|
||||
#define AUDIT_INTEGRITY_STATUS 1802 /* Integrity enable status */
|
||||
|
@@ -120,9 +120,11 @@ struct blk_zone_report {
|
||||
};
|
||||
|
||||
/**
|
||||
* struct blk_zone_range - BLKRESETZONE ioctl request
|
||||
* @sector: starting sector of the first zone to issue reset write pointer
|
||||
* @nr_sectors: Total number of sectors of 1 or more zones to reset
|
||||
* struct blk_zone_range - BLKRESETZONE/BLKOPENZONE/
|
||||
* BLKCLOSEZONE/BLKFINISHZONE ioctl
|
||||
* requests
|
||||
* @sector: Starting sector of the first zone to operate on.
|
||||
* @nr_sectors: Total number of sectors of all zones to operate on.
|
||||
*/
|
||||
struct blk_zone_range {
|
||||
__u64 sector;
|
||||
@@ -139,10 +141,19 @@ struct blk_zone_range {
|
||||
* sector range. The sector range must be zone aligned.
|
||||
* @BLKGETZONESZ: Get the device zone size in number of 512 B sectors.
|
||||
* @BLKGETNRZONES: Get the total number of zones of the device.
|
||||
* @BLKOPENZONE: Open the zones in the specified sector range.
|
||||
* The 512 B sector range must be zone aligned.
|
||||
* @BLKCLOSEZONE: Close the zones in the specified sector range.
|
||||
* The 512 B sector range must be zone aligned.
|
||||
* @BLKFINISHZONE: Mark the zones as full in the specified sector range.
|
||||
* The 512 B sector range must be zone aligned.
|
||||
*/
|
||||
#define BLKREPORTZONE _IOWR(0x12, 130, struct blk_zone_report)
|
||||
#define BLKRESETZONE _IOW(0x12, 131, struct blk_zone_range)
|
||||
#define BLKGETZONESZ _IOR(0x12, 132, __u32)
|
||||
#define BLKGETNRZONES _IOR(0x12, 133, __u32)
|
||||
#define BLKOPENZONE _IOW(0x12, 134, struct blk_zone_range)
|
||||
#define BLKCLOSEZONE _IOW(0x12, 135, struct blk_zone_range)
|
||||
#define BLKFINISHZONE _IOW(0x12, 136, struct blk_zone_range)
|
||||
|
||||
#endif /* _UAPI_BLKZONED_H */
|
||||
|
@@ -173,6 +173,7 @@ enum bpf_prog_type {
|
||||
BPF_PROG_TYPE_CGROUP_SYSCTL,
|
||||
BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE,
|
||||
BPF_PROG_TYPE_CGROUP_SOCKOPT,
|
||||
BPF_PROG_TYPE_TRACING,
|
||||
};
|
||||
|
||||
enum bpf_attach_type {
|
||||
@@ -199,6 +200,9 @@ enum bpf_attach_type {
|
||||
BPF_CGROUP_UDP6_RECVMSG,
|
||||
BPF_CGROUP_GETSOCKOPT,
|
||||
BPF_CGROUP_SETSOCKOPT,
|
||||
BPF_TRACE_RAW_TP,
|
||||
BPF_TRACE_FENTRY,
|
||||
BPF_TRACE_FEXIT,
|
||||
__MAX_BPF_ATTACH_TYPE
|
||||
};
|
||||
|
||||
@@ -344,6 +348,9 @@ enum bpf_attach_type {
|
||||
/* Clone map from listener for newly accepted socket */
|
||||
#define BPF_F_CLONE (1U << 9)
|
||||
|
||||
/* Enable memory-mapping BPF map */
|
||||
#define BPF_F_MMAPABLE (1U << 10)
|
||||
|
||||
/* flags for BPF_PROG_QUERY */
|
||||
#define BPF_F_QUERY_EFFECTIVE (1U << 0)
|
||||
|
||||
@@ -420,6 +427,8 @@ union bpf_attr {
|
||||
__u32 line_info_rec_size; /* userspace bpf_line_info size */
|
||||
__aligned_u64 line_info; /* line info */
|
||||
__u32 line_info_cnt; /* number of bpf_line_info records */
|
||||
__u32 attach_btf_id; /* in-kernel BTF type id to attach to */
|
||||
__u32 attach_prog_fd; /* 0 to attach to vmlinux */
|
||||
};
|
||||
|
||||
struct { /* anonymous struct used by BPF_OBJ_* commands */
|
||||
@@ -560,10 +569,13 @@ union bpf_attr {
|
||||
* Return
|
||||
* 0 on success, or a negative error in case of failure.
|
||||
*
|
||||
* int bpf_probe_read(void *dst, u32 size, const void *src)
|
||||
* int bpf_probe_read(void *dst, u32 size, const void *unsafe_ptr)
|
||||
* Description
|
||||
* For tracing programs, safely attempt to read *size* bytes from
|
||||
* address *src* and store the data in *dst*.
|
||||
* kernel space address *unsafe_ptr* and store the data in *dst*.
|
||||
*
|
||||
* Generally, use bpf_probe_read_user() or bpf_probe_read_kernel()
|
||||
* instead.
|
||||
* Return
|
||||
* 0 on success, or a negative error in case of failure.
|
||||
*
|
||||
@@ -794,7 +806,7 @@ union bpf_attr {
|
||||
* A 64-bit integer containing the current GID and UID, and
|
||||
* created as such: *current_gid* **<< 32 \|** *current_uid*.
|
||||
*
|
||||
* int bpf_get_current_comm(char *buf, u32 size_of_buf)
|
||||
* int bpf_get_current_comm(void *buf, u32 size_of_buf)
|
||||
* Description
|
||||
* Copy the **comm** attribute of the current task into *buf* of
|
||||
* *size_of_buf*. The **comm** attribute contains the name of
|
||||
@@ -1023,7 +1035,7 @@ union bpf_attr {
|
||||
* The realm of the route for the packet associated to *skb*, or 0
|
||||
* if none was found.
|
||||
*
|
||||
* int bpf_perf_event_output(struct pt_regs *ctx, struct bpf_map *map, u64 flags, void *data, u64 size)
|
||||
* int bpf_perf_event_output(void *ctx, struct bpf_map *map, u64 flags, void *data, u64 size)
|
||||
* Description
|
||||
* Write raw *data* blob into a special BPF perf event held by
|
||||
* *map* of type **BPF_MAP_TYPE_PERF_EVENT_ARRAY**. This perf
|
||||
@@ -1068,7 +1080,7 @@ union bpf_attr {
|
||||
* Return
|
||||
* 0 on success, or a negative error in case of failure.
|
||||
*
|
||||
* int bpf_skb_load_bytes(const struct sk_buff *skb, u32 offset, void *to, u32 len)
|
||||
* int bpf_skb_load_bytes(const void *skb, u32 offset, void *to, u32 len)
|
||||
* Description
|
||||
* This helper was provided as an easy way to load data from a
|
||||
* packet. It can be used to load *len* bytes from *offset* from
|
||||
@@ -1085,7 +1097,7 @@ union bpf_attr {
|
||||
* Return
|
||||
* 0 on success, or a negative error in case of failure.
|
||||
*
|
||||
* int bpf_get_stackid(struct pt_regs *ctx, struct bpf_map *map, u64 flags)
|
||||
* int bpf_get_stackid(void *ctx, struct bpf_map *map, u64 flags)
|
||||
* Description
|
||||
* Walk a user or a kernel stack and return its id. To achieve
|
||||
* this, the helper needs *ctx*, which is a pointer to the context
|
||||
@@ -1154,7 +1166,7 @@ union bpf_attr {
|
||||
* The checksum result, or a negative error code in case of
|
||||
* failure.
|
||||
*
|
||||
* int bpf_skb_get_tunnel_opt(struct sk_buff *skb, u8 *opt, u32 size)
|
||||
* int bpf_skb_get_tunnel_opt(struct sk_buff *skb, void *opt, u32 size)
|
||||
* Description
|
||||
* Retrieve tunnel options metadata for the packet associated to
|
||||
* *skb*, and store the raw tunnel option data to the buffer *opt*
|
||||
@@ -1172,7 +1184,7 @@ union bpf_attr {
|
||||
* Return
|
||||
* The size of the option data retrieved.
|
||||
*
|
||||
* int bpf_skb_set_tunnel_opt(struct sk_buff *skb, u8 *opt, u32 size)
|
||||
* int bpf_skb_set_tunnel_opt(struct sk_buff *skb, void *opt, u32 size)
|
||||
* Description
|
||||
* Set tunnel options metadata for the packet associated to *skb*
|
||||
* to the option data contained in the raw buffer *opt* of *size*.
|
||||
@@ -1425,45 +1437,14 @@ union bpf_attr {
|
||||
* Return
|
||||
* 0 on success, or a negative error in case of failure.
|
||||
*
|
||||
* int bpf_probe_read_str(void *dst, int size, const void *unsafe_ptr)
|
||||
* int bpf_probe_read_str(void *dst, u32 size, const void *unsafe_ptr)
|
||||
* Description
|
||||
* Copy a NUL terminated string from an unsafe address
|
||||
* *unsafe_ptr* to *dst*. The *size* should include the
|
||||
* terminating NUL byte. In case the string length is smaller than
|
||||
* *size*, the target is not padded with further NUL bytes. If the
|
||||
* string length is larger than *size*, just *size*-1 bytes are
|
||||
* copied and the last byte is set to NUL.
|
||||
* Copy a NUL terminated string from an unsafe kernel address
|
||||
* *unsafe_ptr* to *dst*. See bpf_probe_read_kernel_str() for
|
||||
* more details.
|
||||
*
|
||||
* On success, the length of the copied string is returned. This
|
||||
* makes this helper useful in tracing programs for reading
|
||||
* strings, and more importantly to get its length at runtime. See
|
||||
* the following snippet:
|
||||
*
|
||||
* ::
|
||||
*
|
||||
* SEC("kprobe/sys_open")
|
||||
* void bpf_sys_open(struct pt_regs *ctx)
|
||||
* {
|
||||
* char buf[PATHLEN]; // PATHLEN is defined to 256
|
||||
* int res = bpf_probe_read_str(buf, sizeof(buf),
|
||||
* ctx->di);
|
||||
*
|
||||
* // Consume buf, for example push it to
|
||||
* // userspace via bpf_perf_event_output(); we
|
||||
* // can use res (the string length) as event
|
||||
* // size, after checking its boundaries.
|
||||
* }
|
||||
*
|
||||
* In comparison, using **bpf_probe_read()** helper here instead
|
||||
* to read the string would require to estimate the length at
|
||||
* compile time, and would often result in copying more memory
|
||||
* than necessary.
|
||||
*
|
||||
* Another useful use case is when parsing individual process
|
||||
* arguments or individual environment variables navigating
|
||||
* *current*\ **->mm->arg_start** and *current*\
|
||||
* **->mm->env_start**: using this helper and the return value,
|
||||
* one can quickly iterate at the right offset of the memory area.
|
||||
* Generally, use bpf_probe_read_user_str() or bpf_probe_read_kernel_str()
|
||||
* instead.
|
||||
* Return
|
||||
* On success, the strictly positive length of the string,
|
||||
* including the trailing NUL character. On error, a negative
|
||||
@@ -1511,7 +1492,7 @@ union bpf_attr {
|
||||
* Return
|
||||
* 0
|
||||
*
|
||||
* int bpf_setsockopt(struct bpf_sock_ops *bpf_socket, int level, int optname, char *optval, int optlen)
|
||||
* int bpf_setsockopt(struct bpf_sock_ops *bpf_socket, int level, int optname, void *optval, int optlen)
|
||||
* Description
|
||||
* Emulate a call to **setsockopt()** on the socket associated to
|
||||
* *bpf_socket*, which must be a full socket. The *level* at
|
||||
@@ -1595,7 +1576,7 @@ union bpf_attr {
|
||||
* Return
|
||||
* **XDP_REDIRECT** on success, or **XDP_ABORTED** on error.
|
||||
*
|
||||
* int bpf_sk_redirect_map(struct bpf_map *map, u32 key, u64 flags)
|
||||
* int bpf_sk_redirect_map(struct sk_buff *skb, struct bpf_map *map, u32 key, u64 flags)
|
||||
* Description
|
||||
* Redirect the packet to the socket referenced by *map* (of type
|
||||
* **BPF_MAP_TYPE_SOCKMAP**) at index *key*. Both ingress and
|
||||
@@ -1715,7 +1696,7 @@ union bpf_attr {
|
||||
* Return
|
||||
* 0 on success, or a negative error in case of failure.
|
||||
*
|
||||
* int bpf_getsockopt(struct bpf_sock_ops *bpf_socket, int level, int optname, char *optval, int optlen)
|
||||
* int bpf_getsockopt(struct bpf_sock_ops *bpf_socket, int level, int optname, void *optval, int optlen)
|
||||
* Description
|
||||
* Emulate a call to **getsockopt()** on the socket associated to
|
||||
* *bpf_socket*, which must be a full socket. The *level* at
|
||||
@@ -1947,7 +1928,7 @@ union bpf_attr {
|
||||
* Return
|
||||
* 0 on success, or a negative error in case of failure.
|
||||
*
|
||||
* int bpf_get_stack(struct pt_regs *regs, void *buf, u32 size, u64 flags)
|
||||
* int bpf_get_stack(void *ctx, void *buf, u32 size, u64 flags)
|
||||
* Description
|
||||
* Return a user or a kernel stack in bpf program provided buffer.
|
||||
* To achieve this, the helper needs *ctx*, which is a pointer
|
||||
@@ -1980,7 +1961,7 @@ union bpf_attr {
|
||||
* A non-negative value equal to or less than *size* on success,
|
||||
* or a negative error in case of failure.
|
||||
*
|
||||
* int bpf_skb_load_bytes_relative(const struct sk_buff *skb, u32 offset, void *to, u32 len, u32 start_header)
|
||||
* int bpf_skb_load_bytes_relative(const void *skb, u32 offset, void *to, u32 len, u32 start_header)
|
||||
* Description
|
||||
* This helper is similar to **bpf_skb_load_bytes**\ () in that
|
||||
* it provides an easy way to load *len* bytes from *offset*
|
||||
@@ -2033,7 +2014,7 @@ union bpf_attr {
|
||||
* * > 0 one of **BPF_FIB_LKUP_RET_** codes explaining why the
|
||||
* packet is not forwarded or needs assist from full stack
|
||||
*
|
||||
* int bpf_sock_hash_update(struct bpf_sock_ops_kern *skops, struct bpf_map *map, void *key, u64 flags)
|
||||
* int bpf_sock_hash_update(struct bpf_sock_ops *skops, struct bpf_map *map, void *key, u64 flags)
|
||||
* Description
|
||||
* Add an entry to, or update a sockhash *map* referencing sockets.
|
||||
* The *skops* is used as a new value for the entry associated to
|
||||
@@ -2392,7 +2373,7 @@ union bpf_attr {
|
||||
* Return
|
||||
* 0 on success, or a negative error in case of failure.
|
||||
*
|
||||
* int bpf_msg_push_data(struct sk_buff *skb, u32 start, u32 len, u64 flags)
|
||||
* int bpf_msg_push_data(struct sk_msg_buff *msg, u32 start, u32 len, u64 flags)
|
||||
* Description
|
||||
* For socket policies, insert *len* bytes into *msg* at offset
|
||||
* *start*.
|
||||
@@ -2408,9 +2389,9 @@ union bpf_attr {
|
||||
* Return
|
||||
* 0 on success, or a negative error in case of failure.
|
||||
*
|
||||
* int bpf_msg_pop_data(struct sk_msg_buff *msg, u32 start, u32 pop, u64 flags)
|
||||
* int bpf_msg_pop_data(struct sk_msg_buff *msg, u32 start, u32 len, u64 flags)
|
||||
* Description
|
||||
* Will remove *pop* bytes from a *msg* starting at byte *start*.
|
||||
* Will remove *len* bytes from a *msg* starting at byte *start*.
|
||||
* This may result in **ENOMEM** errors under certain situations if
|
||||
* an allocation and copy are required due to a full ring buffer.
|
||||
* However, the helper will try to avoid doing the allocation
|
||||
@@ -2505,7 +2486,7 @@ union bpf_attr {
|
||||
* A **struct bpf_tcp_sock** pointer on success, or **NULL** in
|
||||
* case of failure.
|
||||
*
|
||||
* int bpf_skb_ecn_set_ce(struct sk_buf *skb)
|
||||
* int bpf_skb_ecn_set_ce(struct sk_buff *skb)
|
||||
* Description
|
||||
* Set ECN (Explicit Congestion Notification) field of IP header
|
||||
* to **CE** (Congestion Encountered) if current value is **ECT**
|
||||
@@ -2750,6 +2731,96 @@ union bpf_attr {
|
||||
* **-EOPNOTSUPP** kernel configuration does not enable SYN cookies
|
||||
*
|
||||
* **-EPROTONOSUPPORT** IP packet version is not 4 or 6
|
||||
*
|
||||
* int bpf_skb_output(void *ctx, struct bpf_map *map, u64 flags, void *data, u64 size)
|
||||
* Description
|
||||
* Write raw *data* blob into a special BPF perf event held by
|
||||
* *map* of type **BPF_MAP_TYPE_PERF_EVENT_ARRAY**. This perf
|
||||
* event must have the following attributes: **PERF_SAMPLE_RAW**
|
||||
* as **sample_type**, **PERF_TYPE_SOFTWARE** as **type**, and
|
||||
* **PERF_COUNT_SW_BPF_OUTPUT** as **config**.
|
||||
*
|
||||
* The *flags* are used to indicate the index in *map* for which
|
||||
* the value must be put, masked with **BPF_F_INDEX_MASK**.
|
||||
* Alternatively, *flags* can be set to **BPF_F_CURRENT_CPU**
|
||||
* to indicate that the index of the current CPU core should be
|
||||
* used.
|
||||
*
|
||||
* The value to write, of *size*, is passed through eBPF stack and
|
||||
* pointed by *data*.
|
||||
*
|
||||
* *ctx* is a pointer to in-kernel struct sk_buff.
|
||||
*
|
||||
* This helper is similar to **bpf_perf_event_output**\ () but
|
||||
* restricted to raw_tracepoint bpf programs.
|
||||
* Return
|
||||
* 0 on success, or a negative error in case of failure.
|
||||
*
|
||||
* int bpf_probe_read_user(void *dst, u32 size, const void *unsafe_ptr)
|
||||
* Description
|
||||
* Safely attempt to read *size* bytes from user space address
|
||||
* *unsafe_ptr* and store the data in *dst*.
|
||||
* Return
|
||||
* 0 on success, or a negative error in case of failure.
|
||||
*
|
||||
* int bpf_probe_read_kernel(void *dst, u32 size, const void *unsafe_ptr)
|
||||
* Description
|
||||
* Safely attempt to read *size* bytes from kernel space address
|
||||
* *unsafe_ptr* and store the data in *dst*.
|
||||
* Return
|
||||
* 0 on success, or a negative error in case of failure.
|
||||
*
|
||||
* int bpf_probe_read_user_str(void *dst, u32 size, const void *unsafe_ptr)
|
||||
* Description
|
||||
* Copy a NUL terminated string from an unsafe user address
|
||||
* *unsafe_ptr* to *dst*. The *size* should include the
|
||||
* terminating NUL byte. In case the string length is smaller than
|
||||
* *size*, the target is not padded with further NUL bytes. If the
|
||||
* string length is larger than *size*, just *size*-1 bytes are
|
||||
* copied and the last byte is set to NUL.
|
||||
*
|
||||
* On success, the length of the copied string is returned. This
|
||||
* makes this helper useful in tracing programs for reading
|
||||
* strings, and more importantly to get its length at runtime. See
|
||||
* the following snippet:
|
||||
*
|
||||
* ::
|
||||
*
|
||||
* SEC("kprobe/sys_open")
|
||||
* void bpf_sys_open(struct pt_regs *ctx)
|
||||
* {
|
||||
* char buf[PATHLEN]; // PATHLEN is defined to 256
|
||||
* int res = bpf_probe_read_user_str(buf, sizeof(buf),
|
||||
* ctx->di);
|
||||
*
|
||||
* // Consume buf, for example push it to
|
||||
* // userspace via bpf_perf_event_output(); we
|
||||
* // can use res (the string length) as event
|
||||
* // size, after checking its boundaries.
|
||||
* }
|
||||
*
|
||||
* In comparison, using **bpf_probe_read_user()** helper here
|
||||
* instead to read the string would require to estimate the length
|
||||
* at compile time, and would often result in copying more memory
|
||||
* than necessary.
|
||||
*
|
||||
* Another useful use case is when parsing individual process
|
||||
* arguments or individual environment variables navigating
|
||||
* *current*\ **->mm->arg_start** and *current*\
|
||||
* **->mm->env_start**: using this helper and the return value,
|
||||
* one can quickly iterate at the right offset of the memory area.
|
||||
* Return
|
||||
* On success, the strictly positive length of the string,
|
||||
* including the trailing NUL character. On error, a negative
|
||||
* value.
|
||||
*
|
||||
* int bpf_probe_read_kernel_str(void *dst, u32 size, const void *unsafe_ptr)
|
||||
* Description
|
||||
* Copy a NUL terminated string from an unsafe kernel address *unsafe_ptr*
|
||||
* to *dst*. Same semantics as with bpf_probe_read_user_str() apply.
|
||||
* Return
|
||||
* On success, the strictly positive length of the string, including
|
||||
* the trailing NUL character. On error, a negative value.
|
||||
*/
|
||||
#define __BPF_FUNC_MAPPER(FN) \
|
||||
FN(unspec), \
|
||||
@@ -2862,7 +2933,12 @@ union bpf_attr {
|
||||
FN(sk_storage_get), \
|
||||
FN(sk_storage_delete), \
|
||||
FN(send_signal), \
|
||||
FN(tcp_gen_syncookie),
|
||||
FN(tcp_gen_syncookie), \
|
||||
FN(skb_output), \
|
||||
FN(probe_read_user), \
|
||||
FN(probe_read_kernel), \
|
||||
FN(probe_read_user_str), \
|
||||
FN(probe_read_kernel_str),
|
||||
|
||||
/* integer value in 'imm' field of BPF_CALL instruction selects which helper
|
||||
* function eBPF program intends to call
|
||||
|
@@ -270,6 +270,7 @@ struct btrfs_ioctl_fs_info_args {
|
||||
#define BTRFS_FEATURE_INCOMPAT_SKINNY_METADATA (1ULL << 8)
|
||||
#define BTRFS_FEATURE_INCOMPAT_NO_HOLES (1ULL << 9)
|
||||
#define BTRFS_FEATURE_INCOMPAT_METADATA_UUID (1ULL << 10)
|
||||
#define BTRFS_FEATURE_INCOMPAT_RAID1C34 (1ULL << 11)
|
||||
|
||||
struct btrfs_ioctl_feature_flags {
|
||||
__u64 compat_flags;
|
||||
@@ -831,7 +832,9 @@ enum btrfs_err_code {
|
||||
BTRFS_ERROR_DEV_TGT_REPLACE,
|
||||
BTRFS_ERROR_DEV_MISSING_NOT_FOUND,
|
||||
BTRFS_ERROR_DEV_ONLY_WRITABLE,
|
||||
BTRFS_ERROR_DEV_EXCL_RUN_IN_PROGRESS
|
||||
BTRFS_ERROR_DEV_EXCL_RUN_IN_PROGRESS,
|
||||
BTRFS_ERROR_DEV_RAID1C3_MIN_NOT_MET,
|
||||
BTRFS_ERROR_DEV_RAID1C4_MIN_NOT_MET,
|
||||
};
|
||||
|
||||
#define BTRFS_IOC_SNAP_CREATE _IOW(BTRFS_IOCTL_MAGIC, 1, \
|
||||
|
@@ -302,6 +302,9 @@
|
||||
/* csum types */
|
||||
enum btrfs_csum_type {
|
||||
BTRFS_CSUM_TYPE_CRC32 = 0,
|
||||
BTRFS_CSUM_TYPE_XXHASH = 1,
|
||||
BTRFS_CSUM_TYPE_SHA256 = 2,
|
||||
BTRFS_CSUM_TYPE_BLAKE2 = 3,
|
||||
};
|
||||
|
||||
/*
|
||||
@@ -737,10 +740,12 @@ struct btrfs_balance_item {
|
||||
__le64 unused[4];
|
||||
} __attribute__ ((__packed__));
|
||||
|
||||
#define BTRFS_FILE_EXTENT_INLINE 0
|
||||
#define BTRFS_FILE_EXTENT_REG 1
|
||||
#define BTRFS_FILE_EXTENT_PREALLOC 2
|
||||
#define BTRFS_FILE_EXTENT_TYPES 2
|
||||
enum {
|
||||
BTRFS_FILE_EXTENT_INLINE = 0,
|
||||
BTRFS_FILE_EXTENT_REG = 1,
|
||||
BTRFS_FILE_EXTENT_PREALLOC = 2,
|
||||
BTRFS_NR_FILE_EXTENT_TYPES = 3,
|
||||
};
|
||||
|
||||
struct btrfs_file_extent_item {
|
||||
/*
|
||||
@@ -836,6 +841,8 @@ struct btrfs_dev_replace_item {
|
||||
#define BTRFS_BLOCK_GROUP_RAID10 (1ULL << 6)
|
||||
#define BTRFS_BLOCK_GROUP_RAID5 (1ULL << 7)
|
||||
#define BTRFS_BLOCK_GROUP_RAID6 (1ULL << 8)
|
||||
#define BTRFS_BLOCK_GROUP_RAID1C3 (1ULL << 9)
|
||||
#define BTRFS_BLOCK_GROUP_RAID1C4 (1ULL << 10)
|
||||
#define BTRFS_BLOCK_GROUP_RESERVED (BTRFS_AVAIL_ALLOC_BIT_SINGLE | \
|
||||
BTRFS_SPACE_INFO_GLOBAL_RSV)
|
||||
|
||||
@@ -847,6 +854,8 @@ enum btrfs_raid_types {
|
||||
BTRFS_RAID_SINGLE,
|
||||
BTRFS_RAID_RAID5,
|
||||
BTRFS_RAID_RAID6,
|
||||
BTRFS_RAID_RAID1C3,
|
||||
BTRFS_RAID_RAID1C4,
|
||||
BTRFS_NR_RAID_TYPES
|
||||
};
|
||||
|
||||
@@ -856,6 +865,8 @@ enum btrfs_raid_types {
|
||||
|
||||
#define BTRFS_BLOCK_GROUP_PROFILE_MASK (BTRFS_BLOCK_GROUP_RAID0 | \
|
||||
BTRFS_BLOCK_GROUP_RAID1 | \
|
||||
BTRFS_BLOCK_GROUP_RAID1C3 | \
|
||||
BTRFS_BLOCK_GROUP_RAID1C4 | \
|
||||
BTRFS_BLOCK_GROUP_RAID5 | \
|
||||
BTRFS_BLOCK_GROUP_RAID6 | \
|
||||
BTRFS_BLOCK_GROUP_DUP | \
|
||||
@@ -863,7 +874,9 @@ enum btrfs_raid_types {
|
||||
#define BTRFS_BLOCK_GROUP_RAID56_MASK (BTRFS_BLOCK_GROUP_RAID5 | \
|
||||
BTRFS_BLOCK_GROUP_RAID6)
|
||||
|
||||
#define BTRFS_BLOCK_GROUP_RAID1_MASK (BTRFS_BLOCK_GROUP_RAID1)
|
||||
#define BTRFS_BLOCK_GROUP_RAID1_MASK (BTRFS_BLOCK_GROUP_RAID1 | \
|
||||
BTRFS_BLOCK_GROUP_RAID1C3 | \
|
||||
BTRFS_BLOCK_GROUP_RAID1C4)
|
||||
|
||||
/*
|
||||
* We need a bit for restriper to be able to tell when chunks of type
|
||||
|
@@ -1,4 +1,4 @@
|
||||
/* SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause) */
|
||||
/* SPDX-License-Identifier: ((GPL-2.0-only WITH Linux-syscall-note) OR BSD-3-Clause) */
|
||||
/*
|
||||
* linux/can.h
|
||||
*
|
||||
|
@@ -1,4 +1,4 @@
|
||||
/* SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause) */
|
||||
/* SPDX-License-Identifier: ((GPL-2.0-only WITH Linux-syscall-note) OR BSD-3-Clause) */
|
||||
/*
|
||||
* linux/can/bcm.h
|
||||
*
|
||||
|
@@ -1,4 +1,4 @@
|
||||
/* SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause) */
|
||||
/* SPDX-License-Identifier: ((GPL-2.0-only WITH Linux-syscall-note) OR BSD-3-Clause) */
|
||||
/*
|
||||
* linux/can/error.h
|
||||
*
|
||||
|
@@ -1,4 +1,4 @@
|
||||
/* SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause) */
|
||||
/* SPDX-License-Identifier: ((GPL-2.0-only WITH Linux-syscall-note) OR BSD-3-Clause) */
|
||||
/*
|
||||
* linux/can/gw.h
|
||||
*
|
||||
|
@@ -1,4 +1,4 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
|
||||
/* SPDX-License-Identifier: GPL-2.0-only WITH Linux-syscall-note */
|
||||
/*
|
||||
* j1939.h
|
||||
*
|
||||
|
@@ -1,4 +1,4 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
|
||||
/* SPDX-License-Identifier: GPL-2.0-only WITH Linux-syscall-note */
|
||||
/*
|
||||
* linux/can/netlink.h
|
||||
*
|
||||
|
@@ -1,4 +1,4 @@
|
||||
/* SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause) */
|
||||
/* SPDX-License-Identifier: ((GPL-2.0-only WITH Linux-syscall-note) OR BSD-3-Clause) */
|
||||
/*
|
||||
* linux/can/raw.h
|
||||
*
|
||||
|
@@ -1,4 +1,4 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
|
||||
/* SPDX-License-Identifier: GPL-2.0-only WITH Linux-syscall-note */
|
||||
#ifndef _UAPI_CAN_VXCAN_H
|
||||
#define _UAPI_CAN_VXCAN_H
|
||||
|
||||
|
@@ -923,7 +923,8 @@ static inline void cec_msg_give_deck_status(struct cec_msg *msg,
|
||||
msg->len = 3;
|
||||
msg->msg[1] = CEC_MSG_GIVE_DECK_STATUS;
|
||||
msg->msg[2] = status_req;
|
||||
msg->reply = reply ? CEC_MSG_DECK_STATUS : 0;
|
||||
msg->reply = (reply && status_req != CEC_OP_STATUS_REQ_OFF) ?
|
||||
CEC_MSG_DECK_STATUS : 0;
|
||||
}
|
||||
|
||||
static inline void cec_ops_give_deck_status(const struct cec_msg *msg,
|
||||
@@ -1027,7 +1028,8 @@ static inline void cec_msg_give_tuner_device_status(struct cec_msg *msg,
|
||||
msg->len = 3;
|
||||
msg->msg[1] = CEC_MSG_GIVE_TUNER_DEVICE_STATUS;
|
||||
msg->msg[2] = status_req;
|
||||
msg->reply = reply ? CEC_MSG_TUNER_DEVICE_STATUS : 0;
|
||||
msg->reply = (reply && status_req != CEC_OP_STATUS_REQ_OFF) ?
|
||||
CEC_MSG_TUNER_DEVICE_STATUS : 0;
|
||||
}
|
||||
|
||||
static inline void cec_ops_give_tuner_device_status(const struct cec_msg *msg,
|
||||
@@ -1302,17 +1304,17 @@ static inline void cec_msg_user_control_pressed(struct cec_msg *msg,
|
||||
if (!ui_cmd->has_opt_arg)
|
||||
return;
|
||||
switch (ui_cmd->ui_cmd) {
|
||||
case 0x56:
|
||||
case 0x57:
|
||||
case 0x60:
|
||||
case 0x68:
|
||||
case 0x69:
|
||||
case 0x6a:
|
||||
case CEC_OP_UI_CMD_SELECT_BROADCAST_TYPE:
|
||||
case CEC_OP_UI_CMD_SELECT_SOUND_PRESENTATION:
|
||||
case CEC_OP_UI_CMD_PLAY_FUNCTION:
|
||||
case CEC_OP_UI_CMD_SELECT_MEDIA_FUNCTION:
|
||||
case CEC_OP_UI_CMD_SELECT_AV_INPUT_FUNCTION:
|
||||
case CEC_OP_UI_CMD_SELECT_AUDIO_INPUT_FUNCTION:
|
||||
/* The optional operand is one byte for all these ui commands */
|
||||
msg->len++;
|
||||
msg->msg[3] = ui_cmd->play_mode;
|
||||
break;
|
||||
case 0x67:
|
||||
case CEC_OP_UI_CMD_TUNE_FUNCTION:
|
||||
msg->len += 4;
|
||||
msg->msg[3] = (ui_cmd->channel_identifier.channel_number_fmt << 2) |
|
||||
(ui_cmd->channel_identifier.major >> 8);
|
||||
@@ -1331,17 +1333,17 @@ static inline void cec_ops_user_control_pressed(const struct cec_msg *msg,
|
||||
if (msg->len == 3)
|
||||
return;
|
||||
switch (ui_cmd->ui_cmd) {
|
||||
case 0x56:
|
||||
case 0x57:
|
||||
case 0x60:
|
||||
case 0x68:
|
||||
case 0x69:
|
||||
case 0x6a:
|
||||
case CEC_OP_UI_CMD_SELECT_BROADCAST_TYPE:
|
||||
case CEC_OP_UI_CMD_SELECT_SOUND_PRESENTATION:
|
||||
case CEC_OP_UI_CMD_PLAY_FUNCTION:
|
||||
case CEC_OP_UI_CMD_SELECT_MEDIA_FUNCTION:
|
||||
case CEC_OP_UI_CMD_SELECT_AV_INPUT_FUNCTION:
|
||||
case CEC_OP_UI_CMD_SELECT_AUDIO_INPUT_FUNCTION:
|
||||
/* The optional operand is one byte for all these ui commands */
|
||||
ui_cmd->play_mode = msg->msg[3];
|
||||
ui_cmd->has_opt_arg = 1;
|
||||
break;
|
||||
case 0x67:
|
||||
case CEC_OP_UI_CMD_TUNE_FUNCTION:
|
||||
if (msg->len < 7)
|
||||
break;
|
||||
ui_cmd->has_opt_arg = 1;
|
||||
|
@@ -317,6 +317,8 @@ static inline int cec_is_unconfigured(__u16 log_addr_mask)
|
||||
#define CEC_CAP_NEEDS_HPD (1 << 6)
|
||||
/* Hardware can monitor CEC pin transitions */
|
||||
#define CEC_CAP_MONITOR_PIN (1 << 7)
|
||||
/* CEC_ADAP_G_CONNECTOR_INFO is available */
|
||||
#define CEC_CAP_CONNECTOR_INFO (1 << 8)
|
||||
|
||||
/**
|
||||
* struct cec_caps - CEC capabilities structure.
|
||||
@@ -375,6 +377,34 @@ struct cec_log_addrs {
|
||||
/* CDC-Only device: supports only CDC messages */
|
||||
#define CEC_LOG_ADDRS_FL_CDC_ONLY (1 << 2)
|
||||
|
||||
/**
|
||||
* struct cec_drm_connector_info - tells which drm connector is
|
||||
* associated with the CEC adapter.
|
||||
* @card_no: drm card number
|
||||
* @connector_id: drm connector ID
|
||||
*/
|
||||
struct cec_drm_connector_info {
|
||||
__u32 card_no;
|
||||
__u32 connector_id;
|
||||
};
|
||||
|
||||
#define CEC_CONNECTOR_TYPE_NO_CONNECTOR 0
|
||||
#define CEC_CONNECTOR_TYPE_DRM 1
|
||||
|
||||
/**
|
||||
* struct cec_connector_info - tells if and which connector is
|
||||
* associated with the CEC adapter.
|
||||
* @type: connector type (if any)
|
||||
* @drm: drm connector info
|
||||
*/
|
||||
struct cec_connector_info {
|
||||
__u32 type;
|
||||
union {
|
||||
struct cec_drm_connector_info drm;
|
||||
__u32 raw[16];
|
||||
};
|
||||
};
|
||||
|
||||
/* Events */
|
||||
|
||||
/* Event that occurs when the adapter state changes */
|
||||
@@ -398,10 +428,17 @@ struct cec_log_addrs {
|
||||
* struct cec_event_state_change - used when the CEC adapter changes state.
|
||||
* @phys_addr: the current physical address
|
||||
* @log_addr_mask: the current logical address mask
|
||||
* @have_conn_info: if non-zero, then HDMI connector information is available.
|
||||
* This field is only valid if CEC_CAP_CONNECTOR_INFO is set. If that
|
||||
* capability is set and @have_conn_info is zero, then that indicates
|
||||
* that the HDMI connector device is not instantiated, either because
|
||||
* the HDMI driver is still configuring the device or because the HDMI
|
||||
* device was unbound.
|
||||
*/
|
||||
struct cec_event_state_change {
|
||||
__u16 phys_addr;
|
||||
__u16 log_addr_mask;
|
||||
__u16 have_conn_info;
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -476,6 +513,9 @@ struct cec_event {
|
||||
#define CEC_G_MODE _IOR('a', 8, __u32)
|
||||
#define CEC_S_MODE _IOW('a', 9, __u32)
|
||||
|
||||
/* Get the connector info */
|
||||
#define CEC_ADAP_G_CONNECTOR_INFO _IOR('a', 10, struct cec_connector_info)
|
||||
|
||||
/*
|
||||
* The remainder of this header defines all CEC messages and operands.
|
||||
* The format matters since it the cec-ctl utility parses it to generate
|
||||
@@ -768,8 +808,8 @@ struct cec_event {
|
||||
#define CEC_MSG_SELECT_DIGITAL_SERVICE 0x93
|
||||
#define CEC_MSG_TUNER_DEVICE_STATUS 0x07
|
||||
/* Recording Flag Operand (rec_flag) */
|
||||
#define CEC_OP_REC_FLAG_USED 0
|
||||
#define CEC_OP_REC_FLAG_NOT_USED 1
|
||||
#define CEC_OP_REC_FLAG_NOT_USED 0
|
||||
#define CEC_OP_REC_FLAG_USED 1
|
||||
/* Tuner Display Info Operand (tuner_display_info) */
|
||||
#define CEC_OP_TUNER_DISPLAY_INFO_DIGITAL 0
|
||||
#define CEC_OP_TUNER_DISPLAY_INFO_NONE 1
|
||||
@@ -820,6 +860,95 @@ struct cec_event {
|
||||
#define CEC_OP_MENU_STATE_DEACTIVATED 0x01
|
||||
|
||||
#define CEC_MSG_USER_CONTROL_PRESSED 0x44
|
||||
/* UI Command Operand (ui_cmd) */
|
||||
#define CEC_OP_UI_CMD_SELECT 0x00
|
||||
#define CEC_OP_UI_CMD_UP 0x01
|
||||
#define CEC_OP_UI_CMD_DOWN 0x02
|
||||
#define CEC_OP_UI_CMD_LEFT 0x03
|
||||
#define CEC_OP_UI_CMD_RIGHT 0x04
|
||||
#define CEC_OP_UI_CMD_RIGHT_UP 0x05
|
||||
#define CEC_OP_UI_CMD_RIGHT_DOWN 0x06
|
||||
#define CEC_OP_UI_CMD_LEFT_UP 0x07
|
||||
#define CEC_OP_UI_CMD_LEFT_DOWN 0x08
|
||||
#define CEC_OP_UI_CMD_DEVICE_ROOT_MENU 0x09
|
||||
#define CEC_OP_UI_CMD_DEVICE_SETUP_MENU 0x0a
|
||||
#define CEC_OP_UI_CMD_CONTENTS_MENU 0x0b
|
||||
#define CEC_OP_UI_CMD_FAVORITE_MENU 0x0c
|
||||
#define CEC_OP_UI_CMD_BACK 0x0d
|
||||
#define CEC_OP_UI_CMD_MEDIA_TOP_MENU 0x10
|
||||
#define CEC_OP_UI_CMD_MEDIA_CONTEXT_SENSITIVE_MENU 0x11
|
||||
#define CEC_OP_UI_CMD_NUMBER_ENTRY_MODE 0x1d
|
||||
#define CEC_OP_UI_CMD_NUMBER_11 0x1e
|
||||
#define CEC_OP_UI_CMD_NUMBER_12 0x1f
|
||||
#define CEC_OP_UI_CMD_NUMBER_0_OR_NUMBER_10 0x20
|
||||
#define CEC_OP_UI_CMD_NUMBER_1 0x21
|
||||
#define CEC_OP_UI_CMD_NUMBER_2 0x22
|
||||
#define CEC_OP_UI_CMD_NUMBER_3 0x23
|
||||
#define CEC_OP_UI_CMD_NUMBER_4 0x24
|
||||
#define CEC_OP_UI_CMD_NUMBER_5 0x25
|
||||
#define CEC_OP_UI_CMD_NUMBER_6 0x26
|
||||
#define CEC_OP_UI_CMD_NUMBER_7 0x27
|
||||
#define CEC_OP_UI_CMD_NUMBER_8 0x28
|
||||
#define CEC_OP_UI_CMD_NUMBER_9 0x29
|
||||
#define CEC_OP_UI_CMD_DOT 0x2a
|
||||
#define CEC_OP_UI_CMD_ENTER 0x2b
|
||||
#define CEC_OP_UI_CMD_CLEAR 0x2c
|
||||
#define CEC_OP_UI_CMD_NEXT_FAVORITE 0x2f
|
||||
#define CEC_OP_UI_CMD_CHANNEL_UP 0x30
|
||||
#define CEC_OP_UI_CMD_CHANNEL_DOWN 0x31
|
||||
#define CEC_OP_UI_CMD_PREVIOUS_CHANNEL 0x32
|
||||
#define CEC_OP_UI_CMD_SOUND_SELECT 0x33
|
||||
#define CEC_OP_UI_CMD_INPUT_SELECT 0x34
|
||||
#define CEC_OP_UI_CMD_DISPLAY_INFORMATION 0x35
|
||||
#define CEC_OP_UI_CMD_HELP 0x36
|
||||
#define CEC_OP_UI_CMD_PAGE_UP 0x37
|
||||
#define CEC_OP_UI_CMD_PAGE_DOWN 0x38
|
||||
#define CEC_OP_UI_CMD_POWER 0x40
|
||||
#define CEC_OP_UI_CMD_VOLUME_UP 0x41
|
||||
#define CEC_OP_UI_CMD_VOLUME_DOWN 0x42
|
||||
#define CEC_OP_UI_CMD_MUTE 0x43
|
||||
#define CEC_OP_UI_CMD_PLAY 0x44
|
||||
#define CEC_OP_UI_CMD_STOP 0x45
|
||||
#define CEC_OP_UI_CMD_PAUSE 0x46
|
||||
#define CEC_OP_UI_CMD_RECORD 0x47
|
||||
#define CEC_OP_UI_CMD_REWIND 0x48
|
||||
#define CEC_OP_UI_CMD_FAST_FORWARD 0x49
|
||||
#define CEC_OP_UI_CMD_EJECT 0x4a
|
||||
#define CEC_OP_UI_CMD_SKIP_FORWARD 0x4b
|
||||
#define CEC_OP_UI_CMD_SKIP_BACKWARD 0x4c
|
||||
#define CEC_OP_UI_CMD_STOP_RECORD 0x4d
|
||||
#define CEC_OP_UI_CMD_PAUSE_RECORD 0x4e
|
||||
#define CEC_OP_UI_CMD_ANGLE 0x50
|
||||
#define CEC_OP_UI_CMD_SUB_PICTURE 0x51
|
||||
#define CEC_OP_UI_CMD_VIDEO_ON_DEMAND 0x52
|
||||
#define CEC_OP_UI_CMD_ELECTRONIC_PROGRAM_GUIDE 0x53
|
||||
#define CEC_OP_UI_CMD_TIMER_PROGRAMMING 0x54
|
||||
#define CEC_OP_UI_CMD_INITIAL_CONFIGURATION 0x55
|
||||
#define CEC_OP_UI_CMD_SELECT_BROADCAST_TYPE 0x56
|
||||
#define CEC_OP_UI_CMD_SELECT_SOUND_PRESENTATION 0x57
|
||||
#define CEC_OP_UI_CMD_AUDIO_DESCRIPTION 0x58
|
||||
#define CEC_OP_UI_CMD_INTERNET 0x59
|
||||
#define CEC_OP_UI_CMD_3D_MODE 0x5a
|
||||
#define CEC_OP_UI_CMD_PLAY_FUNCTION 0x60
|
||||
#define CEC_OP_UI_CMD_PAUSE_PLAY_FUNCTION 0x61
|
||||
#define CEC_OP_UI_CMD_RECORD_FUNCTION 0x62
|
||||
#define CEC_OP_UI_CMD_PAUSE_RECORD_FUNCTION 0x63
|
||||
#define CEC_OP_UI_CMD_STOP_FUNCTION 0x64
|
||||
#define CEC_OP_UI_CMD_MUTE_FUNCTION 0x65
|
||||
#define CEC_OP_UI_CMD_RESTORE_VOLUME_FUNCTION 0x66
|
||||
#define CEC_OP_UI_CMD_TUNE_FUNCTION 0x67
|
||||
#define CEC_OP_UI_CMD_SELECT_MEDIA_FUNCTION 0x68
|
||||
#define CEC_OP_UI_CMD_SELECT_AV_INPUT_FUNCTION 0x69
|
||||
#define CEC_OP_UI_CMD_SELECT_AUDIO_INPUT_FUNCTION 0x6a
|
||||
#define CEC_OP_UI_CMD_POWER_TOGGLE_FUNCTION 0x6b
|
||||
#define CEC_OP_UI_CMD_POWER_OFF_FUNCTION 0x6c
|
||||
#define CEC_OP_UI_CMD_POWER_ON_FUNCTION 0x6d
|
||||
#define CEC_OP_UI_CMD_F1_BLUE 0x71
|
||||
#define CEC_OP_UI_CMD_F2_RED 0x72
|
||||
#define CEC_OP_UI_CMD_F3_GREEN 0x73
|
||||
#define CEC_OP_UI_CMD_F4_YELLOW 0x74
|
||||
#define CEC_OP_UI_CMD_F5 0x75
|
||||
#define CEC_OP_UI_CMD_DATA 0x76
|
||||
/* UI Broadcast Type Operand (ui_bcast_type) */
|
||||
#define CEC_OP_UI_BCAST_TYPE_TOGGLE_ALL 0x00
|
||||
#define CEC_OP_UI_BCAST_TYPE_TOGGLE_DIG_ANA 0x01
|
||||
|
@@ -3,6 +3,9 @@
|
||||
* ioctl interface for the scsi media changer driver
|
||||
*/
|
||||
|
||||
#ifndef _UAPI_LINUX_CHIO_H
|
||||
#define _UAPI_LINUX_CHIO_H
|
||||
|
||||
/* changer element types */
|
||||
#define CHET_MT 0 /* media transport element (robot) */
|
||||
#define CHET_ST 1 /* storage element (media slots) */
|
||||
@@ -160,10 +163,4 @@ struct changer_set_voltag {
|
||||
#define CHIOSVOLTAG _IOW('c',18,struct changer_set_voltag)
|
||||
#define CHIOGVPARAMS _IOR('c',19,struct changer_vendor_params)
|
||||
|
||||
/* ---------------------------------------------------------------------- */
|
||||
|
||||
/*
|
||||
* Local variables:
|
||||
* c-basic-offset: 8
|
||||
* End:
|
||||
*/
|
||||
#endif /* _UAPI_LINUX_CHIO_H */
|
||||
|
@@ -83,9 +83,9 @@ struct cyclades_monitor {
|
||||
* open)
|
||||
*/
|
||||
struct cyclades_idle_stats {
|
||||
__kernel_time_t in_use; /* Time device has been in use (secs) */
|
||||
__kernel_time_t recv_idle; /* Time since last char received (secs) */
|
||||
__kernel_time_t xmit_idle; /* Time since last char transmitted (secs) */
|
||||
__kernel_old_time_t in_use; /* Time device has been in use (secs) */
|
||||
__kernel_old_time_t recv_idle; /* Time since last char received (secs) */
|
||||
__kernel_old_time_t xmit_idle; /* Time since last char transmitted (secs) */
|
||||
unsigned long recv_bytes; /* Bytes received */
|
||||
unsigned long xmit_bytes; /* Bytes transmitted */
|
||||
unsigned long overruns; /* Input overruns */
|
||||
|
@@ -286,7 +286,7 @@ struct dcbmsg {
|
||||
* @DCB_CMD_GNUMTCS: get the number of traffic classes currently supported
|
||||
* @DCB_CMD_SNUMTCS: set the number of traffic classes
|
||||
* @DCB_CMD_GBCN: set backward congestion notification configuration
|
||||
* @DCB_CMD_SBCN: get backward congestion notification configration.
|
||||
* @DCB_CMD_SBCN: get backward congestion notification configuration.
|
||||
* @DCB_CMD_GAPP: get application protocol configuration
|
||||
* @DCB_CMD_SAPP: set application protocol configuration
|
||||
* @DCB_CMD_IEEE_SET: set IEEE 802.1Qaz configuration
|
||||
|
@@ -421,6 +421,11 @@ enum devlink_attr {
|
||||
|
||||
DEVLINK_ATTR_RELOAD_FAILED, /* u8 0 or 1 */
|
||||
|
||||
DEVLINK_ATTR_HEALTH_REPORTER_DUMP_TS_NS, /* u64 */
|
||||
|
||||
DEVLINK_ATTR_NETNS_FD, /* u32 */
|
||||
DEVLINK_ATTR_NETNS_PID, /* u32 */
|
||||
DEVLINK_ATTR_NETNS_ID, /* u32 */
|
||||
/* add new attributes above here, update the policy in devlink.c */
|
||||
|
||||
__DEVLINK_ATTR_MAX,
|
||||
|
@@ -53,10 +53,10 @@ struct elf_prstatus
|
||||
pid_t pr_ppid;
|
||||
pid_t pr_pgrp;
|
||||
pid_t pr_sid;
|
||||
struct timeval pr_utime; /* User time */
|
||||
struct timeval pr_stime; /* System time */
|
||||
struct timeval pr_cutime; /* Cumulative user time */
|
||||
struct timeval pr_cstime; /* Cumulative system time */
|
||||
struct __kernel_old_timeval pr_utime; /* User time */
|
||||
struct __kernel_old_timeval pr_stime; /* System time */
|
||||
struct __kernel_old_timeval pr_cutime; /* Cumulative user time */
|
||||
struct __kernel_old_timeval pr_cstime; /* Cumulative system time */
|
||||
#if 0
|
||||
long pr_instr; /* Current instruction */
|
||||
#endif
|
||||
|
@@ -37,9 +37,16 @@ struct sock_extended_err {
|
||||
* The timestamping interfaces SO_TIMESTAMPING, MSG_TSTAMP_*
|
||||
* communicate network timestamps by passing this struct in a cmsg with
|
||||
* recvmsg(). See Documentation/networking/timestamping.txt for details.
|
||||
* User space sees a timespec definition that matches either
|
||||
* __kernel_timespec or __kernel_old_timespec, in the kernel we
|
||||
* require two structure definitions to provide both.
|
||||
*/
|
||||
struct scm_timestamping {
|
||||
#ifdef __KERNEL__
|
||||
struct __kernel_old_timespec ts[3];
|
||||
#else
|
||||
struct timespec ts[3];
|
||||
#endif
|
||||
};
|
||||
|
||||
struct scm_timestamping64 {
|
||||
|
@@ -1507,6 +1507,11 @@ enum ethtool_link_mode_bit_indices {
|
||||
ETHTOOL_LINK_MODE_200000baseCR4_Full_BIT = 66,
|
||||
ETHTOOL_LINK_MODE_100baseT1_Full_BIT = 67,
|
||||
ETHTOOL_LINK_MODE_1000baseT1_Full_BIT = 68,
|
||||
ETHTOOL_LINK_MODE_400000baseKR8_Full_BIT = 69,
|
||||
ETHTOOL_LINK_MODE_400000baseSR8_Full_BIT = 70,
|
||||
ETHTOOL_LINK_MODE_400000baseLR8_ER8_FR8_Full_BIT = 71,
|
||||
ETHTOOL_LINK_MODE_400000baseDR8_Full_BIT = 72,
|
||||
ETHTOOL_LINK_MODE_400000baseCR8_Full_BIT = 73,
|
||||
|
||||
/* must be last entry */
|
||||
__ETHTOOL_LINK_MODE_MASK_NBITS
|
||||
@@ -1618,6 +1623,7 @@ enum ethtool_link_mode_bit_indices {
|
||||
#define SPEED_56000 56000
|
||||
#define SPEED_100000 100000
|
||||
#define SPEED_200000 200000
|
||||
#define SPEED_400000 400000
|
||||
|
||||
#define SPEED_UNKNOWN -1
|
||||
|
||||
|
@@ -58,13 +58,20 @@
|
||||
* Valid hint values for F_{GET,SET}_RW_HINT. 0 is "not set", or can be
|
||||
* used to clear any hints previously set.
|
||||
*/
|
||||
#define RWF_WRITE_LIFE_NOT_SET 0
|
||||
#define RWH_WRITE_LIFE_NOT_SET 0
|
||||
#define RWH_WRITE_LIFE_NONE 1
|
||||
#define RWH_WRITE_LIFE_SHORT 2
|
||||
#define RWH_WRITE_LIFE_MEDIUM 3
|
||||
#define RWH_WRITE_LIFE_LONG 4
|
||||
#define RWH_WRITE_LIFE_EXTREME 5
|
||||
|
||||
/*
|
||||
* The originally introduced spelling is remained from the first
|
||||
* versions of the patch set that introduced the feature, see commit
|
||||
* v4.13-rc1~212^2~51.
|
||||
*/
|
||||
#define RWF_WRITE_LIFE_NOT_SET RWH_WRITE_LIFE_NOT_SET
|
||||
|
||||
/*
|
||||
* Types of directory notifications that may be requested.
|
||||
*/
|
||||
|
@@ -17,7 +17,8 @@
|
||||
#define FSCRYPT_POLICY_FLAGS_PAD_32 0x03
|
||||
#define FSCRYPT_POLICY_FLAGS_PAD_MASK 0x03
|
||||
#define FSCRYPT_POLICY_FLAG_DIRECT_KEY 0x04
|
||||
#define FSCRYPT_POLICY_FLAGS_VALID 0x07
|
||||
#define FSCRYPT_POLICY_FLAG_IV_INO_LBLK_64 0x08
|
||||
#define FSCRYPT_POLICY_FLAGS_VALID 0x0F
|
||||
|
||||
/* Encryption algorithms */
|
||||
#define FSCRYPT_MODE_AES_256_XTS 1
|
||||
|
@@ -38,6 +38,43 @@
|
||||
*
|
||||
* Protocol changelog:
|
||||
*
|
||||
* 7.1:
|
||||
* - add the following messages:
|
||||
* FUSE_SETATTR, FUSE_SYMLINK, FUSE_MKNOD, FUSE_MKDIR, FUSE_UNLINK,
|
||||
* FUSE_RMDIR, FUSE_RENAME, FUSE_LINK, FUSE_OPEN, FUSE_READ, FUSE_WRITE,
|
||||
* FUSE_RELEASE, FUSE_FSYNC, FUSE_FLUSH, FUSE_SETXATTR, FUSE_GETXATTR,
|
||||
* FUSE_LISTXATTR, FUSE_REMOVEXATTR, FUSE_OPENDIR, FUSE_READDIR,
|
||||
* FUSE_RELEASEDIR
|
||||
* - add padding to messages to accommodate 32-bit servers on 64-bit kernels
|
||||
*
|
||||
* 7.2:
|
||||
* - add FOPEN_DIRECT_IO and FOPEN_KEEP_CACHE flags
|
||||
* - add FUSE_FSYNCDIR message
|
||||
*
|
||||
* 7.3:
|
||||
* - add FUSE_ACCESS message
|
||||
* - add FUSE_CREATE message
|
||||
* - add filehandle to fuse_setattr_in
|
||||
*
|
||||
* 7.4:
|
||||
* - add frsize to fuse_kstatfs
|
||||
* - clean up request size limit checking
|
||||
*
|
||||
* 7.5:
|
||||
* - add flags and max_write to fuse_init_out
|
||||
*
|
||||
* 7.6:
|
||||
* - add max_readahead to fuse_init_in and fuse_init_out
|
||||
*
|
||||
* 7.7:
|
||||
* - add FUSE_INTERRUPT message
|
||||
* - add POSIX file lock support
|
||||
*
|
||||
* 7.8:
|
||||
* - add lock_owner and flags fields to fuse_release_in
|
||||
* - add FUSE_BMAP message
|
||||
* - add FUSE_DESTROY message
|
||||
*
|
||||
* 7.9:
|
||||
* - new fuse_getattr_in input argument of GETATTR
|
||||
* - add lk_flags in fuse_lk_in
|
||||
|
@@ -13,6 +13,7 @@ enum {
|
||||
TCA_STATS_RATE_EST64,
|
||||
TCA_STATS_PAD,
|
||||
TCA_STATS_BASIC_HW,
|
||||
TCA_STATS_PKT64,
|
||||
__TCA_STATS_MAX,
|
||||
};
|
||||
#define TCA_STATS_MAX (__TCA_STATS_MAX - 1)
|
||||
@@ -26,10 +27,6 @@ struct gnet_stats_basic {
|
||||
__u64 bytes;
|
||||
__u32 packets;
|
||||
};
|
||||
struct gnet_stats_basic_packed {
|
||||
__u64 bytes;
|
||||
__u32 packets;
|
||||
} __attribute__ ((packed));
|
||||
|
||||
/**
|
||||
* struct gnet_stats_rate_est - rate estimator
|
||||
|
@@ -33,6 +33,9 @@ struct gpiochip_info {
|
||||
#define GPIOLINE_FLAG_ACTIVE_LOW (1UL << 2)
|
||||
#define GPIOLINE_FLAG_OPEN_DRAIN (1UL << 3)
|
||||
#define GPIOLINE_FLAG_OPEN_SOURCE (1UL << 4)
|
||||
#define GPIOLINE_FLAG_BIAS_PULL_UP (1UL << 5)
|
||||
#define GPIOLINE_FLAG_BIAS_PULL_DOWN (1UL << 6)
|
||||
#define GPIOLINE_FLAG_BIAS_DISABLE (1UL << 7)
|
||||
|
||||
/**
|
||||
* struct gpioline_info - Information about a certain GPIO line
|
||||
@@ -62,6 +65,9 @@ struct gpioline_info {
|
||||
#define GPIOHANDLE_REQUEST_ACTIVE_LOW (1UL << 2)
|
||||
#define GPIOHANDLE_REQUEST_OPEN_DRAIN (1UL << 3)
|
||||
#define GPIOHANDLE_REQUEST_OPEN_SOURCE (1UL << 4)
|
||||
#define GPIOHANDLE_REQUEST_BIAS_PULL_UP (1UL << 5)
|
||||
#define GPIOHANDLE_REQUEST_BIAS_PULL_DOWN (1UL << 6)
|
||||
#define GPIOHANDLE_REQUEST_BIAS_DISABLE (1UL << 7)
|
||||
|
||||
/**
|
||||
* struct gpiohandle_request - Information about a GPIO handle request
|
||||
@@ -94,6 +100,24 @@ struct gpiohandle_request {
|
||||
int fd;
|
||||
};
|
||||
|
||||
/**
|
||||
* struct gpiohandle_config - Configuration for a GPIO handle request
|
||||
* @flags: updated flags for the requested GPIO lines, such as
|
||||
* GPIOHANDLE_REQUEST_OUTPUT, GPIOHANDLE_REQUEST_ACTIVE_LOW etc, OR:ed
|
||||
* together
|
||||
* @default_values: if the GPIOHANDLE_REQUEST_OUTPUT is set in flags,
|
||||
* this specifies the default output value, should be 0 (low) or
|
||||
* 1 (high), anything else than 0 or 1 will be interpreted as 1 (high)
|
||||
* @padding: reserved for future use and should be zero filled
|
||||
*/
|
||||
struct gpiohandle_config {
|
||||
__u32 flags;
|
||||
__u8 default_values[GPIOHANDLES_MAX];
|
||||
__u32 padding[4]; /* padding for future use */
|
||||
};
|
||||
|
||||
#define GPIOHANDLE_SET_CONFIG_IOCTL _IOWR(0xB4, 0x0a, struct gpiohandle_config)
|
||||
|
||||
/**
|
||||
* struct gpiohandle_data - Information of values on a GPIO handle
|
||||
* @values: when getting the state of lines this contains the current
|
||||
|
@@ -33,6 +33,7 @@
|
||||
#define IFNAMSIZ 16
|
||||
#endif /* __UAPI_DEF_IF_IFNAMSIZ */
|
||||
#define IFALIASZ 256
|
||||
#define ALTIFNAMSIZ 128
|
||||
#include <linux/hdlc/ioctl.h>
|
||||
|
||||
/* For glibc compatibility. An empty enum does not compile. */
|
||||
|
@@ -167,6 +167,8 @@ enum {
|
||||
IFLA_NEW_IFINDEX,
|
||||
IFLA_MIN_MTU,
|
||||
IFLA_MAX_MTU,
|
||||
IFLA_PROP_LIST,
|
||||
IFLA_ALT_IFNAME, /* Alternative ifname */
|
||||
__IFLA_MAX
|
||||
};
|
||||
|
||||
|
@@ -652,6 +652,81 @@
|
||||
/* Electronic privacy screen control */
|
||||
#define KEY_PRIVACY_SCREEN_TOGGLE 0x279
|
||||
|
||||
/*
|
||||
* Some keyboards have keys which do not have a defined meaning, these keys
|
||||
* are intended to be programmed / bound to macros by the user. For most
|
||||
* keyboards with these macro-keys the key-sequence to inject, or action to
|
||||
* take, is all handled by software on the host side. So from the kernel's
|
||||
* point of view these are just normal keys.
|
||||
*
|
||||
* The KEY_MACRO# codes below are intended for such keys, which may be labeled
|
||||
* e.g. G1-G18, or S1 - S30. The KEY_MACRO# codes MUST NOT be used for keys
|
||||
* where the marking on the key does indicate a defined meaning / purpose.
|
||||
*
|
||||
* The KEY_MACRO# codes MUST also NOT be used as fallback for when no existing
|
||||
* KEY_FOO define matches the marking / purpose. In this case a new KEY_FOO
|
||||
* define MUST be added.
|
||||
*/
|
||||
#define KEY_MACRO1 0x290
|
||||
#define KEY_MACRO2 0x291
|
||||
#define KEY_MACRO3 0x292
|
||||
#define KEY_MACRO4 0x293
|
||||
#define KEY_MACRO5 0x294
|
||||
#define KEY_MACRO6 0x295
|
||||
#define KEY_MACRO7 0x296
|
||||
#define KEY_MACRO8 0x297
|
||||
#define KEY_MACRO9 0x298
|
||||
#define KEY_MACRO10 0x299
|
||||
#define KEY_MACRO11 0x29a
|
||||
#define KEY_MACRO12 0x29b
|
||||
#define KEY_MACRO13 0x29c
|
||||
#define KEY_MACRO14 0x29d
|
||||
#define KEY_MACRO15 0x29e
|
||||
#define KEY_MACRO16 0x29f
|
||||
#define KEY_MACRO17 0x2a0
|
||||
#define KEY_MACRO18 0x2a1
|
||||
#define KEY_MACRO19 0x2a2
|
||||
#define KEY_MACRO20 0x2a3
|
||||
#define KEY_MACRO21 0x2a4
|
||||
#define KEY_MACRO22 0x2a5
|
||||
#define KEY_MACRO23 0x2a6
|
||||
#define KEY_MACRO24 0x2a7
|
||||
#define KEY_MACRO25 0x2a8
|
||||
#define KEY_MACRO26 0x2a9
|
||||
#define KEY_MACRO27 0x2aa
|
||||
#define KEY_MACRO28 0x2ab
|
||||
#define KEY_MACRO29 0x2ac
|
||||
#define KEY_MACRO30 0x2ad
|
||||
|
||||
/*
|
||||
* Some keyboards with the macro-keys described above have some extra keys
|
||||
* for controlling the host-side software responsible for the macro handling:
|
||||
* -A macro recording start/stop key. Note that not all keyboards which emit
|
||||
* KEY_MACRO_RECORD_START will also emit KEY_MACRO_RECORD_STOP if
|
||||
* KEY_MACRO_RECORD_STOP is not advertised, then KEY_MACRO_RECORD_START
|
||||
* should be interpreted as a recording start/stop toggle;
|
||||
* -Keys for switching between different macro (pre)sets, either a key for
|
||||
* cycling through the configured presets or keys to directly select a preset.
|
||||
*/
|
||||
#define KEY_MACRO_RECORD_START 0x2b0
|
||||
#define KEY_MACRO_RECORD_STOP 0x2b1
|
||||
#define KEY_MACRO_PRESET_CYCLE 0x2b2
|
||||
#define KEY_MACRO_PRESET1 0x2b3
|
||||
#define KEY_MACRO_PRESET2 0x2b4
|
||||
#define KEY_MACRO_PRESET3 0x2b5
|
||||
|
||||
/*
|
||||
* Some keyboards have a buildin LCD panel where the contents are controlled
|
||||
* by the host. Often these have a number of keys directly below the LCD
|
||||
* intended for controlling a menu shown on the LCD. These keys often don't
|
||||
* have any labeling so we just name them KEY_KBD_LCD_MENU#
|
||||
*/
|
||||
#define KEY_KBD_LCD_MENU1 0x2b8
|
||||
#define KEY_KBD_LCD_MENU2 0x2b9
|
||||
#define KEY_KBD_LCD_MENU3 0x2ba
|
||||
#define KEY_KBD_LCD_MENU4 0x2bb
|
||||
#define KEY_KBD_LCD_MENU5 0x2bc
|
||||
|
||||
#define BTN_TRIGGER_HAPPY 0x2c0
|
||||
#define BTN_TRIGGER_HAPPY1 0x2c0
|
||||
#define BTN_TRIGGER_HAPPY2 0x2c1
|
||||
|
@@ -19,7 +19,10 @@ struct io_uring_sqe {
|
||||
__u8 flags; /* IOSQE_ flags */
|
||||
__u16 ioprio; /* ioprio for the request */
|
||||
__s32 fd; /* file descriptor to do IO on */
|
||||
__u64 off; /* offset into file */
|
||||
union {
|
||||
__u64 off; /* offset into file */
|
||||
__u64 addr2;
|
||||
};
|
||||
__u64 addr; /* pointer to buffer or iovecs */
|
||||
__u32 len; /* buffer size or number of iovecs */
|
||||
union {
|
||||
@@ -29,6 +32,8 @@ struct io_uring_sqe {
|
||||
__u32 sync_range_flags;
|
||||
__u32 msg_flags;
|
||||
__u32 timeout_flags;
|
||||
__u32 accept_flags;
|
||||
__u32 cancel_flags;
|
||||
};
|
||||
__u64 user_data; /* data to be passed back at completion time */
|
||||
union {
|
||||
@@ -43,6 +48,7 @@ struct io_uring_sqe {
|
||||
#define IOSQE_FIXED_FILE (1U << 0) /* use fixed fileset */
|
||||
#define IOSQE_IO_DRAIN (1U << 1) /* issue after inflight IO */
|
||||
#define IOSQE_IO_LINK (1U << 2) /* links next sqe */
|
||||
#define IOSQE_IO_HARDLINK (1U << 3) /* like LINK, but stronger */
|
||||
|
||||
/*
|
||||
* io_uring_setup() flags
|
||||
@@ -50,25 +56,41 @@ struct io_uring_sqe {
|
||||
#define IORING_SETUP_IOPOLL (1U << 0) /* io_context is polled */
|
||||
#define IORING_SETUP_SQPOLL (1U << 1) /* SQ poll thread */
|
||||
#define IORING_SETUP_SQ_AFF (1U << 2) /* sq_thread_cpu is valid */
|
||||
#define IORING_SETUP_CQSIZE (1U << 3) /* app defines CQ size */
|
||||
|
||||
#define IORING_OP_NOP 0
|
||||
#define IORING_OP_READV 1
|
||||
#define IORING_OP_WRITEV 2
|
||||
#define IORING_OP_FSYNC 3
|
||||
#define IORING_OP_READ_FIXED 4
|
||||
#define IORING_OP_WRITE_FIXED 5
|
||||
#define IORING_OP_POLL_ADD 6
|
||||
#define IORING_OP_POLL_REMOVE 7
|
||||
#define IORING_OP_SYNC_FILE_RANGE 8
|
||||
#define IORING_OP_SENDMSG 9
|
||||
#define IORING_OP_RECVMSG 10
|
||||
#define IORING_OP_TIMEOUT 11
|
||||
enum {
|
||||
IORING_OP_NOP,
|
||||
IORING_OP_READV,
|
||||
IORING_OP_WRITEV,
|
||||
IORING_OP_FSYNC,
|
||||
IORING_OP_READ_FIXED,
|
||||
IORING_OP_WRITE_FIXED,
|
||||
IORING_OP_POLL_ADD,
|
||||
IORING_OP_POLL_REMOVE,
|
||||
IORING_OP_SYNC_FILE_RANGE,
|
||||
IORING_OP_SENDMSG,
|
||||
IORING_OP_RECVMSG,
|
||||
IORING_OP_TIMEOUT,
|
||||
IORING_OP_TIMEOUT_REMOVE,
|
||||
IORING_OP_ACCEPT,
|
||||
IORING_OP_ASYNC_CANCEL,
|
||||
IORING_OP_LINK_TIMEOUT,
|
||||
IORING_OP_CONNECT,
|
||||
|
||||
/* this goes last, obviously */
|
||||
IORING_OP_LAST,
|
||||
};
|
||||
|
||||
/*
|
||||
* sqe->fsync_flags
|
||||
*/
|
||||
#define IORING_FSYNC_DATASYNC (1U << 0)
|
||||
|
||||
/*
|
||||
* sqe->timeout_flags
|
||||
*/
|
||||
#define IORING_TIMEOUT_ABS (1U << 0)
|
||||
|
||||
/*
|
||||
* IO completion data structure (Completion Queue Entry)
|
||||
*/
|
||||
@@ -140,6 +162,8 @@ struct io_uring_params {
|
||||
* io_uring_params->features flags
|
||||
*/
|
||||
#define IORING_FEAT_SINGLE_MMAP (1U << 0)
|
||||
#define IORING_FEAT_NODROP (1U << 1)
|
||||
#define IORING_FEAT_SUBMIT_STABLE (1U << 2)
|
||||
|
||||
/*
|
||||
* io_uring_register(2) opcodes and arguments
|
||||
@@ -150,5 +174,11 @@ struct io_uring_params {
|
||||
#define IORING_UNREGISTER_FILES 3
|
||||
#define IORING_REGISTER_EVENTFD 4
|
||||
#define IORING_UNREGISTER_EVENTFD 5
|
||||
#define IORING_REGISTER_FILES_UPDATE 6
|
||||
|
||||
struct io_uring_files_update {
|
||||
__u32 offset;
|
||||
__s32 *fds;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
@@ -152,4 +152,173 @@ struct iommu_page_response {
|
||||
__u32 code;
|
||||
};
|
||||
|
||||
/* defines the granularity of the invalidation */
|
||||
enum iommu_inv_granularity {
|
||||
IOMMU_INV_GRANU_DOMAIN, /* domain-selective invalidation */
|
||||
IOMMU_INV_GRANU_PASID, /* PASID-selective invalidation */
|
||||
IOMMU_INV_GRANU_ADDR, /* page-selective invalidation */
|
||||
IOMMU_INV_GRANU_NR, /* number of invalidation granularities */
|
||||
};
|
||||
|
||||
/**
|
||||
* struct iommu_inv_addr_info - Address Selective Invalidation Structure
|
||||
*
|
||||
* @flags: indicates the granularity of the address-selective invalidation
|
||||
* - If the PASID bit is set, the @pasid field is populated and the invalidation
|
||||
* relates to cache entries tagged with this PASID and matching the address
|
||||
* range.
|
||||
* - If ARCHID bit is set, @archid is populated and the invalidation relates
|
||||
* to cache entries tagged with this architecture specific ID and matching
|
||||
* the address range.
|
||||
* - Both PASID and ARCHID can be set as they may tag different caches.
|
||||
* - If neither PASID or ARCHID is set, global addr invalidation applies.
|
||||
* - The LEAF flag indicates whether only the leaf PTE caching needs to be
|
||||
* invalidated and other paging structure caches can be preserved.
|
||||
* @pasid: process address space ID
|
||||
* @archid: architecture-specific ID
|
||||
* @addr: first stage/level input address
|
||||
* @granule_size: page/block size of the mapping in bytes
|
||||
* @nb_granules: number of contiguous granules to be invalidated
|
||||
*/
|
||||
struct iommu_inv_addr_info {
|
||||
#define IOMMU_INV_ADDR_FLAGS_PASID (1 << 0)
|
||||
#define IOMMU_INV_ADDR_FLAGS_ARCHID (1 << 1)
|
||||
#define IOMMU_INV_ADDR_FLAGS_LEAF (1 << 2)
|
||||
__u32 flags;
|
||||
__u32 archid;
|
||||
__u64 pasid;
|
||||
__u64 addr;
|
||||
__u64 granule_size;
|
||||
__u64 nb_granules;
|
||||
};
|
||||
|
||||
/**
|
||||
* struct iommu_inv_pasid_info - PASID Selective Invalidation Structure
|
||||
*
|
||||
* @flags: indicates the granularity of the PASID-selective invalidation
|
||||
* - If the PASID bit is set, the @pasid field is populated and the invalidation
|
||||
* relates to cache entries tagged with this PASID and matching the address
|
||||
* range.
|
||||
* - If the ARCHID bit is set, the @archid is populated and the invalidation
|
||||
* relates to cache entries tagged with this architecture specific ID and
|
||||
* matching the address range.
|
||||
* - Both PASID and ARCHID can be set as they may tag different caches.
|
||||
* - At least one of PASID or ARCHID must be set.
|
||||
* @pasid: process address space ID
|
||||
* @archid: architecture-specific ID
|
||||
*/
|
||||
struct iommu_inv_pasid_info {
|
||||
#define IOMMU_INV_PASID_FLAGS_PASID (1 << 0)
|
||||
#define IOMMU_INV_PASID_FLAGS_ARCHID (1 << 1)
|
||||
__u32 flags;
|
||||
__u32 archid;
|
||||
__u64 pasid;
|
||||
};
|
||||
|
||||
/**
|
||||
* struct iommu_cache_invalidate_info - First level/stage invalidation
|
||||
* information
|
||||
* @version: API version of this structure
|
||||
* @cache: bitfield that allows to select which caches to invalidate
|
||||
* @granularity: defines the lowest granularity used for the invalidation:
|
||||
* domain > PASID > addr
|
||||
* @padding: reserved for future use (should be zero)
|
||||
* @pasid_info: invalidation data when @granularity is %IOMMU_INV_GRANU_PASID
|
||||
* @addr_info: invalidation data when @granularity is %IOMMU_INV_GRANU_ADDR
|
||||
*
|
||||
* Not all the combinations of cache/granularity are valid:
|
||||
*
|
||||
* +--------------+---------------+---------------+---------------+
|
||||
* | type / | DEV_IOTLB | IOTLB | PASID |
|
||||
* | granularity | | | cache |
|
||||
* +==============+===============+===============+===============+
|
||||
* | DOMAIN | N/A | Y | Y |
|
||||
* +--------------+---------------+---------------+---------------+
|
||||
* | PASID | Y | Y | Y |
|
||||
* +--------------+---------------+---------------+---------------+
|
||||
* | ADDR | Y | Y | N/A |
|
||||
* +--------------+---------------+---------------+---------------+
|
||||
*
|
||||
* Invalidations by %IOMMU_INV_GRANU_DOMAIN don't take any argument other than
|
||||
* @version and @cache.
|
||||
*
|
||||
* If multiple cache types are invalidated simultaneously, they all
|
||||
* must support the used granularity.
|
||||
*/
|
||||
struct iommu_cache_invalidate_info {
|
||||
#define IOMMU_CACHE_INVALIDATE_INFO_VERSION_1 1
|
||||
__u32 version;
|
||||
/* IOMMU paging structure cache */
|
||||
#define IOMMU_CACHE_INV_TYPE_IOTLB (1 << 0) /* IOMMU IOTLB */
|
||||
#define IOMMU_CACHE_INV_TYPE_DEV_IOTLB (1 << 1) /* Device IOTLB */
|
||||
#define IOMMU_CACHE_INV_TYPE_PASID (1 << 2) /* PASID cache */
|
||||
#define IOMMU_CACHE_INV_TYPE_NR (3)
|
||||
__u8 cache;
|
||||
__u8 granularity;
|
||||
__u8 padding[2];
|
||||
union {
|
||||
struct iommu_inv_pasid_info pasid_info;
|
||||
struct iommu_inv_addr_info addr_info;
|
||||
};
|
||||
};
|
||||
|
||||
/**
|
||||
* struct iommu_gpasid_bind_data_vtd - Intel VT-d specific data on device and guest
|
||||
* SVA binding.
|
||||
*
|
||||
* @flags: VT-d PASID table entry attributes
|
||||
* @pat: Page attribute table data to compute effective memory type
|
||||
* @emt: Extended memory type
|
||||
*
|
||||
* Only guest vIOMMU selectable and effective options are passed down to
|
||||
* the host IOMMU.
|
||||
*/
|
||||
struct iommu_gpasid_bind_data_vtd {
|
||||
#define IOMMU_SVA_VTD_GPASID_SRE (1 << 0) /* supervisor request */
|
||||
#define IOMMU_SVA_VTD_GPASID_EAFE (1 << 1) /* extended access enable */
|
||||
#define IOMMU_SVA_VTD_GPASID_PCD (1 << 2) /* page-level cache disable */
|
||||
#define IOMMU_SVA_VTD_GPASID_PWT (1 << 3) /* page-level write through */
|
||||
#define IOMMU_SVA_VTD_GPASID_EMTE (1 << 4) /* extended mem type enable */
|
||||
#define IOMMU_SVA_VTD_GPASID_CD (1 << 5) /* PASID-level cache disable */
|
||||
__u64 flags;
|
||||
__u32 pat;
|
||||
__u32 emt;
|
||||
};
|
||||
|
||||
/**
|
||||
* struct iommu_gpasid_bind_data - Information about device and guest PASID binding
|
||||
* @version: Version of this data structure
|
||||
* @format: PASID table entry format
|
||||
* @flags: Additional information on guest bind request
|
||||
* @gpgd: Guest page directory base of the guest mm to bind
|
||||
* @hpasid: Process address space ID used for the guest mm in host IOMMU
|
||||
* @gpasid: Process address space ID used for the guest mm in guest IOMMU
|
||||
* @addr_width: Guest virtual address width
|
||||
* @padding: Reserved for future use (should be zero)
|
||||
* @vtd: Intel VT-d specific data
|
||||
*
|
||||
* Guest to host PASID mapping can be an identity or non-identity, where guest
|
||||
* has its own PASID space. For non-identify mapping, guest to host PASID lookup
|
||||
* is needed when VM programs guest PASID into an assigned device. VMM may
|
||||
* trap such PASID programming then request host IOMMU driver to convert guest
|
||||
* PASID to host PASID based on this bind data.
|
||||
*/
|
||||
struct iommu_gpasid_bind_data {
|
||||
#define IOMMU_GPASID_BIND_VERSION_1 1
|
||||
__u32 version;
|
||||
#define IOMMU_PASID_FORMAT_INTEL_VTD 1
|
||||
__u32 format;
|
||||
#define IOMMU_SVA_GPASID_VAL (1 << 0) /* guest PASID valid */
|
||||
__u64 flags;
|
||||
__u64 gpgd;
|
||||
__u64 hpasid;
|
||||
__u64 gpasid;
|
||||
__u32 addr_width;
|
||||
__u8 padding[12];
|
||||
/* Vendor specific data */
|
||||
union {
|
||||
struct iommu_gpasid_bind_data_vtd vtd;
|
||||
};
|
||||
};
|
||||
|
||||
#endif /* _UAPI_IOMMU_H */
|
||||
|
@@ -4,9 +4,24 @@
|
||||
|
||||
#include <linux/types.h>
|
||||
|
||||
/*
|
||||
* Argument for KCOV_REMOTE_ENABLE ioctl, see Documentation/dev-tools/kcov.rst
|
||||
* and the comment before kcov_remote_start() for usage details.
|
||||
*/
|
||||
struct kcov_remote_arg {
|
||||
__u32 trace_mode; /* KCOV_TRACE_PC or KCOV_TRACE_CMP */
|
||||
__u32 area_size; /* Length of coverage buffer in words */
|
||||
__u32 num_handles; /* Size of handles array */
|
||||
__aligned_u64 common_handle;
|
||||
__aligned_u64 handles[0];
|
||||
};
|
||||
|
||||
#define KCOV_REMOTE_MAX_HANDLES 0x100
|
||||
|
||||
#define KCOV_INIT_TRACE _IOR('c', 1, unsigned long)
|
||||
#define KCOV_ENABLE _IO('c', 100)
|
||||
#define KCOV_DISABLE _IO('c', 101)
|
||||
#define KCOV_REMOTE_ENABLE _IOW('c', 102, struct kcov_remote_arg)
|
||||
|
||||
enum {
|
||||
/*
|
||||
@@ -32,4 +47,17 @@ enum {
|
||||
#define KCOV_CMP_SIZE(n) ((n) << 1)
|
||||
#define KCOV_CMP_MASK KCOV_CMP_SIZE(3)
|
||||
|
||||
#define KCOV_SUBSYSTEM_COMMON (0x00ull << 56)
|
||||
#define KCOV_SUBSYSTEM_USB (0x01ull << 56)
|
||||
|
||||
#define KCOV_SUBSYSTEM_MASK (0xffull << 56)
|
||||
#define KCOV_INSTANCE_MASK (0xffffffffull)
|
||||
|
||||
static inline __u64 kcov_remote_handle(__u64 subsys, __u64 inst)
|
||||
{
|
||||
if (subsys & ~KCOV_SUBSYSTEM_MASK || inst & ~KCOV_INSTANCE_MASK)
|
||||
return 0;
|
||||
return subsys | inst;
|
||||
}
|
||||
|
||||
#endif /* _LINUX_KCOV_IOCTLS_H */
|
||||
|
@@ -235,6 +235,7 @@ struct kvm_hyperv_exit {
|
||||
#define KVM_EXIT_S390_STSI 25
|
||||
#define KVM_EXIT_IOAPIC_EOI 26
|
||||
#define KVM_EXIT_HYPERV 27
|
||||
#define KVM_EXIT_ARM_NISV 28
|
||||
|
||||
/* For KVM_EXIT_INTERNAL_ERROR */
|
||||
/* Emulate instruction failed. */
|
||||
@@ -394,6 +395,11 @@ struct kvm_run {
|
||||
} eoi;
|
||||
/* KVM_EXIT_HYPERV */
|
||||
struct kvm_hyperv_exit hyperv;
|
||||
/* KVM_EXIT_ARM_NISV */
|
||||
struct {
|
||||
__u64 esr_iss;
|
||||
__u64 fault_ipa;
|
||||
} arm_nisv;
|
||||
/* Fix the size of the union. */
|
||||
char padding[256];
|
||||
};
|
||||
@@ -1000,6 +1006,9 @@ struct kvm_ppc_resize_hpt {
|
||||
#define KVM_CAP_PMU_EVENT_FILTER 173
|
||||
#define KVM_CAP_ARM_IRQ_LINE_LAYOUT_2 174
|
||||
#define KVM_CAP_HYPERV_DIRECT_TLBFLUSH 175
|
||||
#define KVM_CAP_PPC_GUEST_DEBUG_SSTEP 176
|
||||
#define KVM_CAP_ARM_NISV_TO_USER 177
|
||||
#define KVM_CAP_ARM_INJECT_EXT_DABT 178
|
||||
|
||||
#ifdef KVM_CAP_IRQ_ROUTING
|
||||
|
||||
@@ -1227,6 +1236,8 @@ enum kvm_device_type {
|
||||
#define KVM_DEV_TYPE_ARM_VGIC_ITS KVM_DEV_TYPE_ARM_VGIC_ITS
|
||||
KVM_DEV_TYPE_XIVE,
|
||||
#define KVM_DEV_TYPE_XIVE KVM_DEV_TYPE_XIVE
|
||||
KVM_DEV_TYPE_ARM_PV_TIME,
|
||||
#define KVM_DEV_TYPE_ARM_PV_TIME KVM_DEV_TYPE_ARM_PV_TIME
|
||||
KVM_DEV_TYPE_MAX,
|
||||
};
|
||||
|
||||
@@ -1337,6 +1348,7 @@ struct kvm_s390_ucas_mapping {
|
||||
#define KVM_PPC_GET_CPU_CHAR _IOR(KVMIO, 0xb1, struct kvm_ppc_cpu_char)
|
||||
/* Available with KVM_CAP_PMU_EVENT_FILTER */
|
||||
#define KVM_SET_PMU_EVENT_FILTER _IOW(KVMIO, 0xb2, struct kvm_pmu_event_filter)
|
||||
#define KVM_PPC_SVM_OFF _IO(KVMIO, 0xb3)
|
||||
|
||||
/* ioctl for vm fd */
|
||||
#define KVM_CREATE_DEVICE _IOWR(KVMIO, 0xe0, struct kvm_create_device)
|
||||
|
@@ -27,6 +27,7 @@ enum lwtunnel_ip_t {
|
||||
LWTUNNEL_IP_TOS,
|
||||
LWTUNNEL_IP_FLAGS,
|
||||
LWTUNNEL_IP_PAD,
|
||||
LWTUNNEL_IP_OPTS,
|
||||
__LWTUNNEL_IP_MAX,
|
||||
};
|
||||
|
||||
@@ -41,11 +42,51 @@ enum lwtunnel_ip6_t {
|
||||
LWTUNNEL_IP6_TC,
|
||||
LWTUNNEL_IP6_FLAGS,
|
||||
LWTUNNEL_IP6_PAD,
|
||||
LWTUNNEL_IP6_OPTS,
|
||||
__LWTUNNEL_IP6_MAX,
|
||||
};
|
||||
|
||||
#define LWTUNNEL_IP6_MAX (__LWTUNNEL_IP6_MAX - 1)
|
||||
|
||||
enum {
|
||||
LWTUNNEL_IP_OPTS_UNSPEC,
|
||||
LWTUNNEL_IP_OPTS_GENEVE,
|
||||
LWTUNNEL_IP_OPTS_VXLAN,
|
||||
LWTUNNEL_IP_OPTS_ERSPAN,
|
||||
__LWTUNNEL_IP_OPTS_MAX,
|
||||
};
|
||||
|
||||
#define LWTUNNEL_IP_OPTS_MAX (__LWTUNNEL_IP_OPTS_MAX - 1)
|
||||
|
||||
enum {
|
||||
LWTUNNEL_IP_OPT_GENEVE_UNSPEC,
|
||||
LWTUNNEL_IP_OPT_GENEVE_CLASS,
|
||||
LWTUNNEL_IP_OPT_GENEVE_TYPE,
|
||||
LWTUNNEL_IP_OPT_GENEVE_DATA,
|
||||
__LWTUNNEL_IP_OPT_GENEVE_MAX,
|
||||
};
|
||||
|
||||
#define LWTUNNEL_IP_OPT_GENEVE_MAX (__LWTUNNEL_IP_OPT_GENEVE_MAX - 1)
|
||||
|
||||
enum {
|
||||
LWTUNNEL_IP_OPT_VXLAN_UNSPEC,
|
||||
LWTUNNEL_IP_OPT_VXLAN_GBP,
|
||||
__LWTUNNEL_IP_OPT_VXLAN_MAX,
|
||||
};
|
||||
|
||||
#define LWTUNNEL_IP_OPT_VXLAN_MAX (__LWTUNNEL_IP_OPT_VXLAN_MAX - 1)
|
||||
|
||||
enum {
|
||||
LWTUNNEL_IP_OPT_ERSPAN_UNSPEC,
|
||||
LWTUNNEL_IP_OPT_ERSPAN_VER,
|
||||
LWTUNNEL_IP_OPT_ERSPAN_INDEX,
|
||||
LWTUNNEL_IP_OPT_ERSPAN_DIR,
|
||||
LWTUNNEL_IP_OPT_ERSPAN_HWID,
|
||||
__LWTUNNEL_IP_OPT_ERSPAN_MAX,
|
||||
};
|
||||
|
||||
#define LWTUNNEL_IP_OPT_ERSPAN_MAX (__LWTUNNEL_IP_OPT_ERSPAN_MAX - 1)
|
||||
|
||||
enum {
|
||||
LWT_BPF_PROG_UNSPEC,
|
||||
LWT_BPF_PROG_FD,
|
||||
|
@@ -94,5 +94,6 @@
|
||||
#define ZSMALLOC_MAGIC 0x58295829
|
||||
#define DMA_BUF_MAGIC 0x444d4142 /* "DMAB" */
|
||||
#define Z3FOLD_MAGIC 0x33
|
||||
#define PPC_CMM_MAGIC 0xc7571590
|
||||
|
||||
#endif /* __LINUX_MAGIC_H__ */
|
||||
|
@@ -19,9 +19,9 @@ struct msqid_ds {
|
||||
struct ipc_perm msg_perm;
|
||||
struct msg *msg_first; /* first message on queue,unused */
|
||||
struct msg *msg_last; /* last message in queue,unused */
|
||||
__kernel_time_t msg_stime; /* last msgsnd time */
|
||||
__kernel_time_t msg_rtime; /* last msgrcv time */
|
||||
__kernel_time_t msg_ctime; /* last change time */
|
||||
__kernel_old_time_t msg_stime; /* last msgsnd time */
|
||||
__kernel_old_time_t msg_rtime; /* last msgrcv time */
|
||||
__kernel_old_time_t msg_ctime; /* last change time */
|
||||
unsigned long msg_lcbytes; /* Reuse junk fields for 32 bit */
|
||||
unsigned long msg_lqbytes; /* ditto */
|
||||
unsigned short msg_cbytes; /* current number of bytes on queue */
|
||||
|
@@ -205,6 +205,8 @@ enum ipset_cadt_flags {
|
||||
IPSET_FLAG_WITH_FORCEADD = (1 << IPSET_FLAG_BIT_WITH_FORCEADD),
|
||||
IPSET_FLAG_BIT_WITH_SKBINFO = 6,
|
||||
IPSET_FLAG_WITH_SKBINFO = (1 << IPSET_FLAG_BIT_WITH_SKBINFO),
|
||||
IPSET_FLAG_BIT_IFACE_WILDCARD = 7,
|
||||
IPSET_FLAG_IFACE_WILDCARD = (1 << IPSET_FLAG_BIT_IFACE_WILDCARD),
|
||||
IPSET_FLAG_CADT_MAX = 15,
|
||||
};
|
||||
|
||||
|
@@ -144,12 +144,14 @@ enum nft_list_attributes {
|
||||
* @NFTA_HOOK_HOOKNUM: netfilter hook number (NLA_U32)
|
||||
* @NFTA_HOOK_PRIORITY: netfilter hook priority (NLA_U32)
|
||||
* @NFTA_HOOK_DEV: netdevice name (NLA_STRING)
|
||||
* @NFTA_HOOK_DEVS: list of netdevices (NLA_NESTED)
|
||||
*/
|
||||
enum nft_hook_attributes {
|
||||
NFTA_HOOK_UNSPEC,
|
||||
NFTA_HOOK_HOOKNUM,
|
||||
NFTA_HOOK_PRIORITY,
|
||||
NFTA_HOOK_DEV,
|
||||
NFTA_HOOK_DEVS,
|
||||
__NFTA_HOOK_MAX
|
||||
};
|
||||
#define NFTA_HOOK_MAX (__NFTA_HOOK_MAX - 1)
|
||||
@@ -1516,6 +1518,7 @@ enum nft_object_attributes {
|
||||
* @NFTA_FLOWTABLE_HOOK: netfilter hook configuration(NLA_U32)
|
||||
* @NFTA_FLOWTABLE_USE: number of references to this flow table (NLA_U32)
|
||||
* @NFTA_FLOWTABLE_HANDLE: object handle (NLA_U64)
|
||||
* @NFTA_FLOWTABLE_FLAGS: flags (NLA_U32)
|
||||
*/
|
||||
enum nft_flowtable_attributes {
|
||||
NFTA_FLOWTABLE_UNSPEC,
|
||||
@@ -1525,6 +1528,7 @@ enum nft_flowtable_attributes {
|
||||
NFTA_FLOWTABLE_USE,
|
||||
NFTA_FLOWTABLE_HANDLE,
|
||||
NFTA_FLOWTABLE_PAD,
|
||||
NFTA_FLOWTABLE_FLAGS,
|
||||
__NFTA_FLOWTABLE_MAX
|
||||
};
|
||||
#define NFTA_FLOWTABLE_MAX (__NFTA_FLOWTABLE_MAX - 1)
|
||||
|
@@ -41,19 +41,19 @@ struct xt_sctp_info {
|
||||
#define SCTP_CHUNKMAP_SET(chunkmap, type) \
|
||||
do { \
|
||||
(chunkmap)[type / bytes(__u32)] |= \
|
||||
1 << (type % bytes(__u32)); \
|
||||
1u << (type % bytes(__u32)); \
|
||||
} while (0)
|
||||
|
||||
#define SCTP_CHUNKMAP_CLEAR(chunkmap, type) \
|
||||
do { \
|
||||
(chunkmap)[type / bytes(__u32)] &= \
|
||||
~(1 << (type % bytes(__u32))); \
|
||||
~(1u << (type % bytes(__u32))); \
|
||||
} while (0)
|
||||
|
||||
#define SCTP_CHUNKMAP_IS_SET(chunkmap, type) \
|
||||
({ \
|
||||
((chunkmap)[type / bytes (__u32)] & \
|
||||
(1 << (type % bytes (__u32)))) ? 1: 0; \
|
||||
(1u << (type % bytes (__u32)))) ? 1: 0; \
|
||||
})
|
||||
|
||||
#define SCTP_CHUNKMAP_RESET(chunkmap) \
|
||||
|
@@ -199,7 +199,7 @@ struct arpt_get_entries {
|
||||
/* Helper functions */
|
||||
static __inline__ struct xt_entry_target *arpt_get_target(struct arpt_entry *e)
|
||||
{
|
||||
return (void *)e + e->target_offset;
|
||||
return (struct xt_entry_target *)((char *)e + e->target_offset);
|
||||
}
|
||||
|
||||
/*
|
||||
|
@@ -194,7 +194,7 @@ struct ebt_entry {
|
||||
static __inline__ struct ebt_entry_target *
|
||||
ebt_get_target(struct ebt_entry *e)
|
||||
{
|
||||
return (void *)e + e->target_offset;
|
||||
return (struct ebt_entry_target *)((char *)e + e->target_offset);
|
||||
}
|
||||
|
||||
/* {g,s}etsockopt numbers */
|
||||
|
@@ -222,7 +222,7 @@ struct ipt_get_entries {
|
||||
static __inline__ struct xt_entry_target *
|
||||
ipt_get_target(struct ipt_entry *e)
|
||||
{
|
||||
return (void *)e + e->target_offset;
|
||||
return (struct xt_entry_target *)((char *)e + e->target_offset);
|
||||
}
|
||||
|
||||
/*
|
||||
|
@@ -262,7 +262,7 @@ struct ip6t_get_entries {
|
||||
static __inline__ struct xt_entry_target *
|
||||
ip6t_get_target(struct ip6t_entry *e)
|
||||
{
|
||||
return (void *)e + e->target_offset;
|
||||
return (struct xt_entry_target *)((char *)e + e->target_offset);
|
||||
}
|
||||
|
||||
/*
|
||||
|
@@ -248,6 +248,22 @@
|
||||
* %NL80211_ATTR_SAE_PASSWORD.
|
||||
*/
|
||||
|
||||
/**
|
||||
* DOC: VLAN offload support for setting group keys and binding STAs to VLANs
|
||||
*
|
||||
* By setting @NL80211_EXT_FEATURE_VLAN_OFFLOAD flag drivers can indicate they
|
||||
* support offloading VLAN functionality in a manner where the driver exposes a
|
||||
* single netdev that uses VLAN tagged frames and separate VLAN-specific netdevs
|
||||
* can then be added using RTM_NEWLINK/IFLA_VLAN_ID similarly to the Ethernet
|
||||
* case. Frames received from stations that are not assigned to any VLAN are
|
||||
* delivered on the main netdev and frames to such stations can be sent through
|
||||
* that main netdev.
|
||||
*
|
||||
* %NL80211_CMD_NEW_KEY (for group keys), %NL80211_CMD_NEW_STATION, and
|
||||
* %NL80211_CMD_SET_STATION will optionally specify vlan_id using
|
||||
* %NL80211_ATTR_VLAN_ID.
|
||||
*/
|
||||
|
||||
/**
|
||||
* enum nl80211_commands - supported nl80211 commands
|
||||
*
|
||||
@@ -571,6 +587,14 @@
|
||||
* set of BSSID,frequency parameters is used (i.e., either the enforcing
|
||||
* %NL80211_ATTR_MAC,%NL80211_ATTR_WIPHY_FREQ or the less strict
|
||||
* %NL80211_ATTR_MAC_HINT and %NL80211_ATTR_WIPHY_FREQ_HINT).
|
||||
* Driver shall not modify the IEs specified through %NL80211_ATTR_IE if
|
||||
* %NL80211_ATTR_MAC is included. However, if %NL80211_ATTR_MAC_HINT is
|
||||
* included, these IEs through %NL80211_ATTR_IE are specified by the user
|
||||
* space based on the best possible BSS selected. Thus, if the driver ends
|
||||
* up selecting a different BSS, it can modify these IEs accordingly (e.g.
|
||||
* userspace asks the driver to perform PMKSA caching with BSS1 and the
|
||||
* driver ends up selecting BSS2 with different PMKSA cache entry; RSNIE
|
||||
* has to get updated with the apt PMKID).
|
||||
* %NL80211_ATTR_PREV_BSSID can be used to request a reassociation within
|
||||
* the ESS in case the device is already associated and an association with
|
||||
* a different BSS is desired.
|
||||
@@ -2373,6 +2397,9 @@ enum nl80211_commands {
|
||||
* the allowed channel bandwidth configurations. (u8 attribute)
|
||||
* Defined by IEEE P802.11ay/D4.0 section 9.4.2.251, Table 13.
|
||||
*
|
||||
* @NL80211_ATTR_VLAN_ID: VLAN ID (1..4094) for the station and VLAN group key
|
||||
* (u16).
|
||||
*
|
||||
* @NUM_NL80211_ATTR: total number of nl80211_attrs available
|
||||
* @NL80211_ATTR_MAX: highest attribute number currently defined
|
||||
* @__NL80211_ATTR_AFTER_LAST: internal use
|
||||
@@ -2835,6 +2862,8 @@ enum nl80211_attrs {
|
||||
NL80211_ATTR_WIPHY_EDMG_CHANNELS,
|
||||
NL80211_ATTR_WIPHY_EDMG_BW_CONFIG,
|
||||
|
||||
NL80211_ATTR_VLAN_ID,
|
||||
|
||||
/* add attributes here, update the policy in nl80211.c */
|
||||
|
||||
__NL80211_ATTR_AFTER_LAST,
|
||||
@@ -5484,6 +5513,14 @@ enum nl80211_feature_flags {
|
||||
* @NL80211_EXT_FEATURE_SAE_OFFLOAD: Device wants to do SAE authentication in
|
||||
* station mode (SAE password is passed as part of the connect command).
|
||||
*
|
||||
* @NL80211_EXT_FEATURE_VLAN_OFFLOAD: The driver supports a single netdev
|
||||
* with VLAN tagged frames and separate VLAN-specific netdevs added using
|
||||
* vconfig similarly to the Ethernet case.
|
||||
*
|
||||
* @NL80211_EXT_FEATURE_AQL: The driver supports the Airtime Queue Limit (AQL)
|
||||
* feature, which prevents bufferbloat by using the expected transmission
|
||||
* time to limit the amount of data buffered in the hardware.
|
||||
*
|
||||
* @NUM_NL80211_EXT_FEATURES: number of extended features.
|
||||
* @MAX_NL80211_EXT_FEATURES: highest extended feature index.
|
||||
*/
|
||||
@@ -5529,6 +5566,8 @@ enum nl80211_ext_feature_index {
|
||||
NL80211_EXT_FEATURE_EXT_KEY_ID,
|
||||
NL80211_EXT_FEATURE_STA_TX_PWR,
|
||||
NL80211_EXT_FEATURE_SAE_OFFLOAD,
|
||||
NL80211_EXT_FEATURE_VLAN_OFFLOAD,
|
||||
NL80211_EXT_FEATURE_AQL,
|
||||
|
||||
/* add new features before the definition below */
|
||||
NUM_NL80211_EXT_FEATURES,
|
||||
|
@@ -63,6 +63,7 @@ struct nvme_passthru_cmd64 {
|
||||
__u32 cdw14;
|
||||
__u32 cdw15;
|
||||
__u32 timeout_ms;
|
||||
__u32 rsvd2;
|
||||
__u64 result;
|
||||
};
|
||||
|
||||
|
@@ -173,6 +173,7 @@ enum ovs_packet_cmd {
|
||||
* @OVS_PACKET_ATTR_LEN: Packet size before truncation.
|
||||
* %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).
|
||||
*
|
||||
* These attributes follow the &struct ovs_header within the Generic Netlink
|
||||
* payload for %OVS_PACKET_* commands.
|
||||
@@ -190,7 +191,8 @@ enum ovs_packet_attr {
|
||||
OVS_PACKET_ATTR_PROBE, /* Packet operation is a feature probe,
|
||||
error logging should be suppressed. */
|
||||
OVS_PACKET_ATTR_MRU, /* Maximum received IP fragment size. */
|
||||
OVS_PACKET_ATTR_LEN, /* Packet size before truncation. */
|
||||
OVS_PACKET_ATTR_LEN, /* Packet size before truncation. */
|
||||
OVS_PACKET_ATTR_HASH, /* Packet hash. */
|
||||
__OVS_PACKET_ATTR_MAX
|
||||
};
|
||||
|
||||
|
@@ -34,6 +34,7 @@
|
||||
* of which the first 64 bytes are standardized as follows:
|
||||
*/
|
||||
#define PCI_STD_HEADER_SIZEOF 64
|
||||
#define PCI_STD_NUM_BARS 6 /* Number of standard BARs */
|
||||
#define PCI_VENDOR_ID 0x00 /* 16 bits */
|
||||
#define PCI_DEVICE_ID 0x02 /* 16 bits */
|
||||
#define PCI_COMMAND 0x04 /* 16 bits */
|
||||
@@ -673,6 +674,8 @@
|
||||
#define PCI_EXP_LNKCTL2_TLS_8_0GT 0x0003 /* Supported Speed 8GT/s */
|
||||
#define PCI_EXP_LNKCTL2_TLS_16_0GT 0x0004 /* Supported Speed 16GT/s */
|
||||
#define PCI_EXP_LNKCTL2_TLS_32_0GT 0x0005 /* Supported Speed 32GT/s */
|
||||
#define PCI_EXP_LNKCTL2_ENTER_COMP 0x0010 /* Enter Compliance */
|
||||
#define PCI_EXP_LNKCTL2_TX_MARGIN 0x0380 /* Transmit Margin */
|
||||
#define PCI_EXP_LNKSTA2 50 /* Link Status 2 */
|
||||
#define PCI_CAP_EXP_ENDPOINT_SIZEOF_V2 52 /* v2 endpoints with link end here */
|
||||
#define PCI_EXP_SLTCAP2 52 /* Slot Capabilities 2 */
|
||||
|
@@ -141,8 +141,9 @@ enum perf_event_sample_format {
|
||||
PERF_SAMPLE_TRANSACTION = 1U << 17,
|
||||
PERF_SAMPLE_REGS_INTR = 1U << 18,
|
||||
PERF_SAMPLE_PHYS_ADDR = 1U << 19,
|
||||
PERF_SAMPLE_AUX = 1U << 20,
|
||||
|
||||
PERF_SAMPLE_MAX = 1U << 20, /* non-ABI */
|
||||
PERF_SAMPLE_MAX = 1U << 21, /* non-ABI */
|
||||
|
||||
__PERF_SAMPLE_CALLCHAIN_EARLY = 1ULL << 63, /* non-ABI; internal use */
|
||||
};
|
||||
@@ -300,6 +301,7 @@ enum perf_event_read_format {
|
||||
/* add: sample_stack_user */
|
||||
#define PERF_ATTR_SIZE_VER4 104 /* add: sample_regs_intr */
|
||||
#define PERF_ATTR_SIZE_VER5 112 /* add: aux_watermark */
|
||||
#define PERF_ATTR_SIZE_VER6 120 /* add: aux_sample_size */
|
||||
|
||||
/*
|
||||
* Hardware event_id to monitor via a performance monitoring event:
|
||||
@@ -424,7 +426,9 @@ struct perf_event_attr {
|
||||
*/
|
||||
__u32 aux_watermark;
|
||||
__u16 sample_max_stack;
|
||||
__u16 __reserved_2; /* align to __u64 */
|
||||
__u16 __reserved_2;
|
||||
__u32 aux_sample_size;
|
||||
__u32 __reserved_3;
|
||||
};
|
||||
|
||||
/*
|
||||
@@ -864,6 +868,8 @@ enum perf_event_type {
|
||||
* { u64 abi; # enum perf_sample_regs_abi
|
||||
* u64 regs[weight(mask)]; } && PERF_SAMPLE_REGS_INTR
|
||||
* { u64 phys_addr;} && PERF_SAMPLE_PHYS_ADDR
|
||||
* { u64 size;
|
||||
* char data[size]; } && PERF_SAMPLE_AUX
|
||||
* };
|
||||
*/
|
||||
PERF_RECORD_SAMPLE = 9,
|
||||
|
@@ -16,9 +16,14 @@ enum {
|
||||
TCA_ACT_STATS,
|
||||
TCA_ACT_PAD,
|
||||
TCA_ACT_COOKIE,
|
||||
TCA_ACT_FLAGS,
|
||||
__TCA_ACT_MAX
|
||||
};
|
||||
|
||||
#define TCA_ACT_FLAGS_NO_PERCPU_STATS 1 /* Don't use percpu allocator for
|
||||
* actions stats.
|
||||
*/
|
||||
|
||||
#define TCA_ACT_MAX __TCA_ACT_MAX
|
||||
#define TCA_OLD_COMPAT (TCA_ACT_MAX+1)
|
||||
#define TCA_ACT_MAX_PRIO 32
|
||||
@@ -566,6 +571,14 @@ enum {
|
||||
* TCA_FLOWER_KEY_ENC_OPT_GENEVE_
|
||||
* attributes
|
||||
*/
|
||||
TCA_FLOWER_KEY_ENC_OPTS_VXLAN, /* Nested
|
||||
* TCA_FLOWER_KEY_ENC_OPT_VXLAN_
|
||||
* attributes
|
||||
*/
|
||||
TCA_FLOWER_KEY_ENC_OPTS_ERSPAN, /* Nested
|
||||
* TCA_FLOWER_KEY_ENC_OPT_ERSPAN_
|
||||
* attributes
|
||||
*/
|
||||
__TCA_FLOWER_KEY_ENC_OPTS_MAX,
|
||||
};
|
||||
|
||||
@@ -583,6 +596,27 @@ enum {
|
||||
#define TCA_FLOWER_KEY_ENC_OPT_GENEVE_MAX \
|
||||
(__TCA_FLOWER_KEY_ENC_OPT_GENEVE_MAX - 1)
|
||||
|
||||
enum {
|
||||
TCA_FLOWER_KEY_ENC_OPT_VXLAN_UNSPEC,
|
||||
TCA_FLOWER_KEY_ENC_OPT_VXLAN_GBP, /* u32 */
|
||||
__TCA_FLOWER_KEY_ENC_OPT_VXLAN_MAX,
|
||||
};
|
||||
|
||||
#define TCA_FLOWER_KEY_ENC_OPT_VXLAN_MAX \
|
||||
(__TCA_FLOWER_KEY_ENC_OPT_VXLAN_MAX - 1)
|
||||
|
||||
enum {
|
||||
TCA_FLOWER_KEY_ENC_OPT_ERSPAN_UNSPEC,
|
||||
TCA_FLOWER_KEY_ENC_OPT_ERSPAN_VER, /* u8 */
|
||||
TCA_FLOWER_KEY_ENC_OPT_ERSPAN_INDEX, /* be32 */
|
||||
TCA_FLOWER_KEY_ENC_OPT_ERSPAN_DIR, /* u8 */
|
||||
TCA_FLOWER_KEY_ENC_OPT_ERSPAN_HWID, /* u8 */
|
||||
__TCA_FLOWER_KEY_ENC_OPT_ERSPAN_MAX,
|
||||
};
|
||||
|
||||
#define TCA_FLOWER_KEY_ENC_OPT_ERSPAN_MAX \
|
||||
(__TCA_FLOWER_KEY_ENC_OPT_ERSPAN_MAX - 1)
|
||||
|
||||
enum {
|
||||
TCA_FLOWER_KEY_FLAGS_IS_FRAGMENT = (1 << 0),
|
||||
TCA_FLOWER_KEY_FLAGS_FRAG_IS_FIRST = (1 << 1),
|
||||
|
@@ -950,19 +950,25 @@ enum {
|
||||
TCA_PIE_BETA,
|
||||
TCA_PIE_ECN,
|
||||
TCA_PIE_BYTEMODE,
|
||||
TCA_PIE_DQ_RATE_ESTIMATOR,
|
||||
__TCA_PIE_MAX
|
||||
};
|
||||
#define TCA_PIE_MAX (__TCA_PIE_MAX - 1)
|
||||
|
||||
struct tc_pie_xstats {
|
||||
__u64 prob; /* current probability */
|
||||
__u32 delay; /* current delay in ms */
|
||||
__u32 avg_dq_rate; /* current average dq_rate in bits/pie_time */
|
||||
__u32 packets_in; /* total number of packets enqueued */
|
||||
__u32 dropped; /* packets dropped due to pie_action */
|
||||
__u32 overlimit; /* dropped due to lack of space in queue */
|
||||
__u32 maxq; /* maximum queue size */
|
||||
__u32 ecn_mark; /* packets marked with ecn*/
|
||||
__u64 prob; /* current probability */
|
||||
__u32 delay; /* current delay in ms */
|
||||
__u32 avg_dq_rate; /* current average dq_rate in
|
||||
* bits/pie_time
|
||||
*/
|
||||
__u32 dq_rate_estimating; /* is avg_dq_rate being calculated? */
|
||||
__u32 packets_in; /* total number of packets enqueued */
|
||||
__u32 dropped; /* packets dropped due to pie_action */
|
||||
__u32 overlimit; /* dropped due to lack of space
|
||||
* in queue
|
||||
*/
|
||||
__u32 maxq; /* maximum queue size */
|
||||
__u32 ecn_mark; /* packets marked with ecn*/
|
||||
};
|
||||
|
||||
/* CBS */
|
||||
|
@@ -104,6 +104,8 @@ struct pppol2tp_ioc_stats {
|
||||
#define PPPIOCGDEBUG _IOR('t', 65, int) /* Read debug level */
|
||||
#define PPPIOCSDEBUG _IOW('t', 64, int) /* Set debug level */
|
||||
#define PPPIOCGIDLE _IOR('t', 63, struct ppp_idle) /* get idle time */
|
||||
#define PPPIOCGIDLE32 _IOR('t', 63, struct ppp_idle32) /* 32-bit times */
|
||||
#define PPPIOCGIDLE64 _IOR('t', 63, struct ppp_idle64) /* 64-bit times */
|
||||
#define PPPIOCNEWUNIT _IOWR('t', 62, int) /* create new ppp unit */
|
||||
#define PPPIOCATTACH _IOW('t', 61, int) /* attach to ppp unit */
|
||||
#define PPPIOCDETACH _IOW('t', 60, int) /* obsolete, do not use */
|
||||
|
@@ -142,10 +142,24 @@ struct ppp_comp_stats {
|
||||
/*
|
||||
* The following structure records the time in seconds since
|
||||
* the last NP packet was sent or received.
|
||||
*
|
||||
* Linux implements both 32-bit and 64-bit time_t versions
|
||||
* for compatibility with user space that defines ppp_idle
|
||||
* based on the libc time_t.
|
||||
*/
|
||||
struct ppp_idle {
|
||||
__kernel_time_t xmit_idle; /* time since last NP packet sent */
|
||||
__kernel_time_t recv_idle; /* time since last NP packet received */
|
||||
__kernel_old_time_t xmit_idle; /* time since last NP packet sent */
|
||||
__kernel_old_time_t recv_idle; /* time since last NP packet received */
|
||||
};
|
||||
|
||||
struct ppp_idle32 {
|
||||
__s32 xmit_idle; /* time since last NP packet sent */
|
||||
__s32 recv_idle; /* time since last NP packet received */
|
||||
};
|
||||
|
||||
struct ppp_idle64 {
|
||||
__s64 xmit_idle; /* time since last NP packet sent */
|
||||
__s64 recv_idle; /* time since last NP packet received */
|
||||
};
|
||||
|
||||
#endif /* _UAPI_PPP_DEFS_H_ */
|
||||
|
@@ -58,6 +58,9 @@ typedef enum {
|
||||
SEV_RET_HWSEV_RET_PLATFORM,
|
||||
SEV_RET_HWSEV_RET_UNSAFE,
|
||||
SEV_RET_UNSUPPORTED,
|
||||
SEV_RET_INVALID_PARAM,
|
||||
SEV_RET_RESOURCE_LIMIT,
|
||||
SEV_RET_SECURE_DATA_INVALID,
|
||||
SEV_RET_MAX,
|
||||
} sev_ret_code;
|
||||
|
||||
|
@@ -31,13 +31,16 @@
|
||||
#define PTP_ENABLE_FEATURE (1<<0)
|
||||
#define PTP_RISING_EDGE (1<<1)
|
||||
#define PTP_FALLING_EDGE (1<<2)
|
||||
#define PTP_STRICT_FLAGS (1<<3)
|
||||
#define PTP_EXTTS_EDGES (PTP_RISING_EDGE | PTP_FALLING_EDGE)
|
||||
|
||||
/*
|
||||
* flag fields valid for the new PTP_EXTTS_REQUEST2 ioctl.
|
||||
*/
|
||||
#define PTP_EXTTS_VALID_FLAGS (PTP_ENABLE_FEATURE | \
|
||||
PTP_RISING_EDGE | \
|
||||
PTP_FALLING_EDGE)
|
||||
PTP_FALLING_EDGE | \
|
||||
PTP_STRICT_FLAGS)
|
||||
|
||||
/*
|
||||
* flag fields valid for the original PTP_EXTTS_REQUEST ioctl.
|
||||
|
@@ -22,8 +22,8 @@
|
||||
#define RUSAGE_THREAD 1 /* only the calling thread */
|
||||
|
||||
struct rusage {
|
||||
struct timeval ru_utime; /* user time used */
|
||||
struct timeval ru_stime; /* system time used */
|
||||
struct __kernel_old_timeval ru_utime; /* user time used */
|
||||
struct __kernel_old_timeval ru_stime; /* system time used */
|
||||
__kernel_long_t ru_maxrss; /* maximum resident set size */
|
||||
__kernel_long_t ru_ixrss; /* integral shared memory size */
|
||||
__kernel_long_t ru_idrss; /* integral unshared data size */
|
||||
|
@@ -164,6 +164,13 @@ enum {
|
||||
RTM_GETNEXTHOP,
|
||||
#define RTM_GETNEXTHOP RTM_GETNEXTHOP
|
||||
|
||||
RTM_NEWLINKPROP = 108,
|
||||
#define RTM_NEWLINKPROP RTM_NEWLINKPROP
|
||||
RTM_DELLINKPROP,
|
||||
#define RTM_DELLINKPROP RTM_DELLINKPROP
|
||||
RTM_GETLINKPROP,
|
||||
#define RTM_GETLINKPROP RTM_GETLINKPROP
|
||||
|
||||
__RTM_MAX,
|
||||
#define RTM_MAX (((__RTM_MAX + 3) & ~3) - 1)
|
||||
};
|
||||
|
@@ -4,6 +4,7 @@
|
||||
#ifndef _UAPI_SCC_H
|
||||
#define _UAPI_SCC_H
|
||||
|
||||
#include <linux/sockios.h>
|
||||
|
||||
/* selection of hardware types */
|
||||
|
||||
|
@@ -33,27 +33,48 @@
|
||||
#define CLONE_NEWNET 0x40000000 /* New network namespace */
|
||||
#define CLONE_IO 0x80000000 /* Clone io context */
|
||||
|
||||
/* Flags for the clone3() syscall. */
|
||||
#define CLONE_CLEAR_SIGHAND 0x100000000ULL /* Clear any signal handler and reset to SIG_DFL. */
|
||||
|
||||
#ifndef __ASSEMBLY__
|
||||
/**
|
||||
* struct clone_args - arguments for the clone3 syscall
|
||||
* @flags: Flags for the new process as listed above.
|
||||
* All flags are valid except for CSIGNAL and
|
||||
* CLONE_DETACHED.
|
||||
* @pidfd: If CLONE_PIDFD is set, a pidfd will be
|
||||
* returned in this argument.
|
||||
* @child_tid: If CLONE_CHILD_SETTID is set, the TID of the
|
||||
* child process will be returned in the child's
|
||||
* memory.
|
||||
* @parent_tid: If CLONE_PARENT_SETTID is set, the TID of
|
||||
* the child process will be returned in the
|
||||
* parent's memory.
|
||||
* @exit_signal: The exit_signal the parent process will be
|
||||
* sent when the child exits.
|
||||
* @stack: Specify the location of the stack for the
|
||||
* child process.
|
||||
* @stack_size: The size of the stack for the child process.
|
||||
* @tls: If CLONE_SETTLS is set, the tls descriptor
|
||||
* is set to tls.
|
||||
* @flags: Flags for the new process as listed above.
|
||||
* All flags are valid except for CSIGNAL and
|
||||
* CLONE_DETACHED.
|
||||
* @pidfd: If CLONE_PIDFD is set, a pidfd will be
|
||||
* returned in this argument.
|
||||
* @child_tid: If CLONE_CHILD_SETTID is set, the TID of the
|
||||
* child process will be returned in the child's
|
||||
* memory.
|
||||
* @parent_tid: If CLONE_PARENT_SETTID is set, the TID of
|
||||
* the child process will be returned in the
|
||||
* parent's memory.
|
||||
* @exit_signal: The exit_signal the parent process will be
|
||||
* sent when the child exits.
|
||||
* @stack: Specify the location of the stack for the
|
||||
* child process.
|
||||
* Note, @stack is expected to point to the
|
||||
* lowest address. The stack direction will be
|
||||
* determined by the kernel and set up
|
||||
* appropriately based on @stack_size.
|
||||
* @stack_size: The size of the stack for the child process.
|
||||
* @tls: If CLONE_SETTLS is set, the tls descriptor
|
||||
* is set to tls.
|
||||
* @set_tid: Pointer to an array of type *pid_t. The size
|
||||
* of the array is defined using @set_tid_size.
|
||||
* This array is used to select PIDs/TIDs for
|
||||
* newly created processes. The first element in
|
||||
* this defines the PID in the most nested PID
|
||||
* namespace. Each additional element in the array
|
||||
* defines the PID in the parent PID namespace of
|
||||
* the original PID namespace. If the array has
|
||||
* less entries than the number of currently
|
||||
* nested PID namespaces only the PIDs in the
|
||||
* corresponding namespaces are set.
|
||||
* @set_tid_size: This defines the size of the array referenced
|
||||
* in @set_tid. This cannot be larger than the
|
||||
* kernel's limit of nested PID namespaces.
|
||||
*
|
||||
* The structure is versioned by size and thus extensible.
|
||||
* New struct members must go at the end of the struct and
|
||||
@@ -68,10 +89,13 @@ struct clone_args {
|
||||
__aligned_u64 stack;
|
||||
__aligned_u64 stack_size;
|
||||
__aligned_u64 tls;
|
||||
__aligned_u64 set_tid;
|
||||
__aligned_u64 set_tid_size;
|
||||
};
|
||||
#endif
|
||||
|
||||
#define CLONE_ARGS_SIZE_VER0 64 /* sizeof first published struct */
|
||||
#define CLONE_ARGS_SIZE_VER1 80 /* sizeof second published struct */
|
||||
|
||||
/*
|
||||
* Scheduling policies
|
||||
|
@@ -105,6 +105,7 @@ typedef __s32 sctp_assoc_t;
|
||||
#define SCTP_DEFAULT_SNDINFO 34
|
||||
#define SCTP_AUTH_DEACTIVATE_KEY 35
|
||||
#define SCTP_REUSE_PORT 36
|
||||
#define SCTP_PEER_ADDR_THLDS_V2 37
|
||||
|
||||
/* Internal Socket Options. Some of the sctp library functions are
|
||||
* implemented using these socket options.
|
||||
@@ -137,6 +138,8 @@ typedef __s32 sctp_assoc_t;
|
||||
#define SCTP_ASCONF_SUPPORTED 128
|
||||
#define SCTP_AUTH_SUPPORTED 129
|
||||
#define SCTP_ECN_SUPPORTED 130
|
||||
#define SCTP_EXPOSE_POTENTIALLY_FAILED_STATE 131
|
||||
#define SCTP_EXPOSE_PF_STATE SCTP_EXPOSE_POTENTIALLY_FAILED_STATE
|
||||
|
||||
/* PR-SCTP policies */
|
||||
#define SCTP_PR_SCTP_NONE 0x0000
|
||||
@@ -410,6 +413,8 @@ enum sctp_spc_state {
|
||||
SCTP_ADDR_ADDED,
|
||||
SCTP_ADDR_MADE_PRIM,
|
||||
SCTP_ADDR_CONFIRMED,
|
||||
SCTP_ADDR_POTENTIALLY_FAILED,
|
||||
#define SCTP_ADDR_PF SCTP_ADDR_POTENTIALLY_FAILED
|
||||
};
|
||||
|
||||
|
||||
@@ -449,6 +454,16 @@ struct sctp_send_failed {
|
||||
__u8 ssf_data[0];
|
||||
};
|
||||
|
||||
struct sctp_send_failed_event {
|
||||
__u16 ssf_type;
|
||||
__u16 ssf_flags;
|
||||
__u32 ssf_length;
|
||||
__u32 ssf_error;
|
||||
struct sctp_sndinfo ssfe_info;
|
||||
sctp_assoc_t ssf_assoc_id;
|
||||
__u8 ssf_data[0];
|
||||
};
|
||||
|
||||
/*
|
||||
* ssf_flags: 16 bits (unsigned integer)
|
||||
*
|
||||
@@ -605,6 +620,7 @@ struct sctp_event_subscribe {
|
||||
__u8 sctp_stream_reset_event;
|
||||
__u8 sctp_assoc_reset_event;
|
||||
__u8 sctp_stream_change_event;
|
||||
__u8 sctp_send_failure_event_event;
|
||||
};
|
||||
|
||||
/*
|
||||
@@ -632,6 +648,7 @@ union sctp_notification {
|
||||
struct sctp_stream_reset_event sn_strreset_event;
|
||||
struct sctp_assoc_reset_event sn_assocreset_event;
|
||||
struct sctp_stream_change_event sn_strchange_event;
|
||||
struct sctp_send_failed_event sn_send_failed_event;
|
||||
};
|
||||
|
||||
/* Section 5.3.1
|
||||
@@ -667,7 +684,9 @@ enum sctp_sn_type {
|
||||
#define SCTP_ASSOC_RESET_EVENT SCTP_ASSOC_RESET_EVENT
|
||||
SCTP_STREAM_CHANGE_EVENT,
|
||||
#define SCTP_STREAM_CHANGE_EVENT SCTP_STREAM_CHANGE_EVENT
|
||||
SCTP_SN_TYPE_MAX = SCTP_STREAM_CHANGE_EVENT,
|
||||
SCTP_SEND_FAILED_EVENT,
|
||||
#define SCTP_SEND_FAILED_EVENT SCTP_SEND_FAILED_EVENT
|
||||
SCTP_SN_TYPE_MAX = SCTP_SEND_FAILED_EVENT,
|
||||
#define SCTP_SN_TYPE_MAX SCTP_SN_TYPE_MAX
|
||||
};
|
||||
|
||||
@@ -919,6 +938,7 @@ struct sctp_paddrinfo {
|
||||
enum sctp_spinfo_state {
|
||||
SCTP_INACTIVE,
|
||||
SCTP_PF,
|
||||
#define SCTP_POTENTIALLY_FAILED SCTP_PF
|
||||
SCTP_ACTIVE,
|
||||
SCTP_UNCONFIRMED,
|
||||
SCTP_UNKNOWN = 0xffff /* Value used for transport state unknown */
|
||||
@@ -1068,6 +1088,15 @@ struct sctp_paddrthlds {
|
||||
__u16 spt_pathpfthld;
|
||||
};
|
||||
|
||||
/* Use a new structure with spt_pathcpthld for back compatibility */
|
||||
struct sctp_paddrthlds_v2 {
|
||||
sctp_assoc_t spt_assoc_id;
|
||||
struct sockaddr_storage spt_address;
|
||||
__u16 spt_pathmaxrxt;
|
||||
__u16 spt_pathpfthld;
|
||||
__u16 spt_pathcpthld;
|
||||
};
|
||||
|
||||
/*
|
||||
* Socket Option for Getting the Association/Stream-Specific PR-SCTP Status
|
||||
*/
|
||||
|
@@ -76,6 +76,35 @@ struct seccomp_notif {
|
||||
struct seccomp_data data;
|
||||
};
|
||||
|
||||
/*
|
||||
* Valid flags for struct seccomp_notif_resp
|
||||
*
|
||||
* Note, the SECCOMP_USER_NOTIF_FLAG_CONTINUE flag must be used with caution!
|
||||
* If set by the process supervising the syscalls of another process the
|
||||
* syscall will continue. This is problematic because of an inherent TOCTOU.
|
||||
* An attacker can exploit the time while the supervised process is waiting on
|
||||
* a response from the supervising process to rewrite syscall arguments which
|
||||
* are passed as pointers of the intercepted syscall.
|
||||
* It should be absolutely clear that this means that the seccomp notifier
|
||||
* _cannot_ be used to implement a security policy! It should only ever be used
|
||||
* in scenarios where a more privileged process supervises the syscalls of a
|
||||
* lesser privileged process to get around kernel-enforced security
|
||||
* restrictions when the privileged process deems this safe. In other words,
|
||||
* in order to continue a syscall the supervising process should be sure that
|
||||
* another security mechanism or the kernel itself will sufficiently block
|
||||
* syscalls if arguments are rewritten to something unsafe.
|
||||
*
|
||||
* Similar precautions should be applied when stacking SECCOMP_RET_USER_NOTIF
|
||||
* or SECCOMP_RET_TRACE. For SECCOMP_RET_USER_NOTIF filters acting on the
|
||||
* same syscall, the most recently added filter takes precedence. This means
|
||||
* that the new SECCOMP_RET_USER_NOTIF filter can override any
|
||||
* SECCOMP_IOCTL_NOTIF_SEND from earlier filters, essentially allowing all
|
||||
* such filtered syscalls to be executed by sending the response
|
||||
* SECCOMP_USER_NOTIF_FLAG_CONTINUE. Note that SECCOMP_RET_TRACE can equally
|
||||
* be overriden by SECCOMP_USER_NOTIF_FLAG_CONTINUE.
|
||||
*/
|
||||
#define SECCOMP_USER_NOTIF_FLAG_CONTINUE (1UL << 0)
|
||||
|
||||
struct seccomp_notif_resp {
|
||||
__u64 id;
|
||||
__s64 val;
|
||||
|
@@ -113,6 +113,25 @@ struct opal_shadow_mbr {
|
||||
__u64 size;
|
||||
};
|
||||
|
||||
/* Opal table operations */
|
||||
enum opal_table_ops {
|
||||
OPAL_READ_TABLE,
|
||||
OPAL_WRITE_TABLE,
|
||||
};
|
||||
|
||||
#define OPAL_UID_LENGTH 8
|
||||
struct opal_read_write_table {
|
||||
struct opal_key key;
|
||||
const __u64 data;
|
||||
const __u8 table_uid[OPAL_UID_LENGTH];
|
||||
__u64 offset;
|
||||
__u64 size;
|
||||
#define OPAL_TABLE_READ (1 << OPAL_READ_TABLE)
|
||||
#define OPAL_TABLE_WRITE (1 << OPAL_WRITE_TABLE)
|
||||
__u64 flags;
|
||||
__u64 priv;
|
||||
};
|
||||
|
||||
#define IOC_OPAL_SAVE _IOW('p', 220, struct opal_lock_unlock)
|
||||
#define IOC_OPAL_LOCK_UNLOCK _IOW('p', 221, struct opal_lock_unlock)
|
||||
#define IOC_OPAL_TAKE_OWNERSHIP _IOW('p', 222, struct opal_key)
|
||||
@@ -128,5 +147,6 @@ struct opal_shadow_mbr {
|
||||
#define IOC_OPAL_PSID_REVERT_TPR _IOW('p', 232, struct opal_key)
|
||||
#define IOC_OPAL_MBR_DONE _IOW('p', 233, struct opal_mbr_done)
|
||||
#define IOC_OPAL_WRITE_SHADOW_MBR _IOW('p', 234, struct opal_shadow_mbr)
|
||||
#define IOC_OPAL_GENERIC_TABLE_RW _IOW('p', 235, struct opal_read_write_table)
|
||||
|
||||
#endif /* _UAPI_SED_OPAL_H */
|
||||
|
@@ -24,8 +24,8 @@
|
||||
/* Obsolete, used only for backwards compatibility and libc5 compiles */
|
||||
struct semid_ds {
|
||||
struct ipc_perm sem_perm; /* permissions .. see ipc.h */
|
||||
__kernel_time_t sem_otime; /* last semop time */
|
||||
__kernel_time_t sem_ctime; /* create/last semctl() time */
|
||||
__kernel_old_time_t sem_otime; /* last semop time */
|
||||
__kernel_old_time_t sem_ctime; /* create/last semctl() time */
|
||||
struct sem *sem_base; /* ptr to first semaphore in array */
|
||||
struct sem_queue *sem_pending; /* pending operations to be processed */
|
||||
struct sem_queue **sem_pending_last; /* last pending operation */
|
||||
|
@@ -290,7 +290,7 @@
|
||||
/* Sunix UART */
|
||||
#define PORT_SUNIX 121
|
||||
|
||||
/* Freescale Linflex UART */
|
||||
/* Freescale LINFlexD UART */
|
||||
#define PORT_LINFLEXUART 122
|
||||
|
||||
#endif /* _UAPILINUX_SERIAL_CORE_H */
|
||||
|
@@ -28,9 +28,9 @@
|
||||
struct shmid_ds {
|
||||
struct ipc_perm shm_perm; /* operation perms */
|
||||
int shm_segsz; /* size of segment (bytes) */
|
||||
__kernel_time_t shm_atime; /* last attach time */
|
||||
__kernel_time_t shm_dtime; /* last detach time */
|
||||
__kernel_time_t shm_ctime; /* last change time */
|
||||
__kernel_old_time_t shm_atime; /* last attach time */
|
||||
__kernel_old_time_t shm_dtime; /* last detach time */
|
||||
__kernel_old_time_t shm_ctime; /* last change time */
|
||||
__kernel_ipc_pid_t shm_cpid; /* pid of creator */
|
||||
__kernel_ipc_pid_t shm_lpid; /* pid of last operator */
|
||||
unsigned short shm_nattch; /* no. of current attaches */
|
||||
|
@@ -323,4 +323,21 @@ enum
|
||||
__LINUX_MIB_XFRMMAX
|
||||
};
|
||||
|
||||
/* linux TLS mib definitions */
|
||||
enum
|
||||
{
|
||||
LINUX_MIB_TLSNUM = 0,
|
||||
LINUX_MIB_TLSCURRTXSW, /* TlsCurrTxSw */
|
||||
LINUX_MIB_TLSCURRRXSW, /* TlsCurrRxSw */
|
||||
LINUX_MIB_TLSCURRTXDEVICE, /* TlsCurrTxDevice */
|
||||
LINUX_MIB_TLSCURRRXDEVICE, /* TlsCurrRxDevice */
|
||||
LINUX_MIB_TLSTXSW, /* TlsTxSw */
|
||||
LINUX_MIB_TLSRXSW, /* TlsRxSw */
|
||||
LINUX_MIB_TLSTXDEVICE, /* TlsTxDevice */
|
||||
LINUX_MIB_TLSRXDEVICE, /* TlsRxDevice */
|
||||
LINUX_MIB_TLSDECRYPTERROR, /* TlsDecryptError */
|
||||
LINUX_MIB_TLSRXDEVICERESYNC, /* TlsRxDeviceResync */
|
||||
__LINUX_MIB_TLSMAX
|
||||
};
|
||||
|
||||
#endif /* _LINUX_SNMP_H */
|
||||
|
@@ -167,8 +167,8 @@ struct statx {
|
||||
#define STATX_ATTR_APPEND 0x00000020 /* [I] File is append-only */
|
||||
#define STATX_ATTR_NODUMP 0x00000040 /* [I] File is not to be dumped */
|
||||
#define STATX_ATTR_ENCRYPTED 0x00000800 /* [I] File requires key to decrypt in fs */
|
||||
|
||||
#define STATX_ATTR_AUTOMOUNT 0x00001000 /* Dir: Automount trigger */
|
||||
#define STATX_ATTR_VERITY 0x00100000 /* [I] Verity protected file */
|
||||
|
||||
|
||||
#endif /* _UAPI_LINUX_STAT_H */
|
||||
|
@@ -50,6 +50,14 @@ enum {
|
||||
* TCA_TUNNEL_KEY_ENC_OPTS_
|
||||
* attributes
|
||||
*/
|
||||
TCA_TUNNEL_KEY_ENC_OPTS_VXLAN, /* Nested
|
||||
* TCA_TUNNEL_KEY_ENC_OPTS_
|
||||
* attributes
|
||||
*/
|
||||
TCA_TUNNEL_KEY_ENC_OPTS_ERSPAN, /* Nested
|
||||
* TCA_TUNNEL_KEY_ENC_OPTS_
|
||||
* attributes
|
||||
*/
|
||||
__TCA_TUNNEL_KEY_ENC_OPTS_MAX,
|
||||
};
|
||||
|
||||
@@ -67,4 +75,25 @@ enum {
|
||||
#define TCA_TUNNEL_KEY_ENC_OPT_GENEVE_MAX \
|
||||
(__TCA_TUNNEL_KEY_ENC_OPT_GENEVE_MAX - 1)
|
||||
|
||||
enum {
|
||||
TCA_TUNNEL_KEY_ENC_OPT_VXLAN_UNSPEC,
|
||||
TCA_TUNNEL_KEY_ENC_OPT_VXLAN_GBP, /* u32 */
|
||||
__TCA_TUNNEL_KEY_ENC_OPT_VXLAN_MAX,
|
||||
};
|
||||
|
||||
#define TCA_TUNNEL_KEY_ENC_OPT_VXLAN_MAX \
|
||||
(__TCA_TUNNEL_KEY_ENC_OPT_VXLAN_MAX - 1)
|
||||
|
||||
enum {
|
||||
TCA_TUNNEL_KEY_ENC_OPT_ERSPAN_UNSPEC,
|
||||
TCA_TUNNEL_KEY_ENC_OPT_ERSPAN_VER, /* u8 */
|
||||
TCA_TUNNEL_KEY_ENC_OPT_ERSPAN_INDEX, /* be32 */
|
||||
TCA_TUNNEL_KEY_ENC_OPT_ERSPAN_DIR, /* u8 */
|
||||
TCA_TUNNEL_KEY_ENC_OPT_ERSPAN_HWID, /* u8 */
|
||||
__TCA_TUNNEL_KEY_ENC_OPT_ERSPAN_MAX,
|
||||
};
|
||||
|
||||
#define TCA_TUNNEL_KEY_ENC_OPT_ERSPAN_MAX \
|
||||
(__TCA_TUNNEL_KEY_ENC_OPT_ERSPAN_MAX - 1)
|
||||
|
||||
#endif
|
||||
|
@@ -155,6 +155,14 @@ enum {
|
||||
TCP_QUEUES_NR,
|
||||
};
|
||||
|
||||
/* why fastopen failed from client perspective */
|
||||
enum tcp_fastopen_client_fail {
|
||||
TFO_STATUS_UNSPEC, /* catch-all */
|
||||
TFO_COOKIE_UNAVAILABLE, /* if not in TFO_CLIENT_NO_COOKIE mode */
|
||||
TFO_DATA_NOT_ACKED, /* SYN-ACK did not ack SYN data */
|
||||
TFO_SYN_RETRANSMITTED, /* SYN-ACK did not ack SYN data after timeout */
|
||||
};
|
||||
|
||||
/* for TCP_INFO socket option */
|
||||
#define TCPI_OPT_TIMESTAMPS 1
|
||||
#define TCPI_OPT_SACK 2
|
||||
@@ -211,7 +219,7 @@ struct tcp_info {
|
||||
__u8 tcpi_backoff;
|
||||
__u8 tcpi_options;
|
||||
__u8 tcpi_snd_wscale : 4, tcpi_rcv_wscale : 4;
|
||||
__u8 tcpi_delivery_rate_app_limited:1;
|
||||
__u8 tcpi_delivery_rate_app_limited:1, tcpi_fastopen_client_fail:2;
|
||||
|
||||
__u32 tcpi_rto;
|
||||
__u32 tcpi_ato;
|
||||
|
@@ -8,13 +8,13 @@
|
||||
#ifndef _STRUCT_TIMESPEC
|
||||
#define _STRUCT_TIMESPEC
|
||||
struct timespec {
|
||||
__kernel_time_t tv_sec; /* seconds */
|
||||
long tv_nsec; /* nanoseconds */
|
||||
__kernel_old_time_t tv_sec; /* seconds */
|
||||
long tv_nsec; /* nanoseconds */
|
||||
};
|
||||
#endif
|
||||
|
||||
struct timeval {
|
||||
__kernel_time_t tv_sec; /* seconds */
|
||||
__kernel_old_time_t tv_sec; /* seconds */
|
||||
__kernel_suseconds_t tv_usec; /* microseconds */
|
||||
};
|
||||
|
||||
|
@@ -28,6 +28,11 @@ struct __kernel_old_timeval {
|
||||
};
|
||||
#endif
|
||||
|
||||
struct __kernel_old_timespec {
|
||||
__kernel_old_time_t tv_sec; /* seconds */
|
||||
long tv_nsec; /* nanoseconds */
|
||||
};
|
||||
|
||||
struct __kernel_sock_timeval {
|
||||
__s64 tv_sec;
|
||||
__s64 tv_usec;
|
||||
|
@@ -191,6 +191,7 @@ struct sockaddr_tipc {
|
||||
#define TIPC_GROUP_JOIN 135 /* Takes struct tipc_group_req* */
|
||||
#define TIPC_GROUP_LEAVE 136 /* No argument */
|
||||
#define TIPC_SOCK_RECVQ_USED 137 /* Default: none (read only) */
|
||||
#define TIPC_NODELAY 138 /* Default: false */
|
||||
|
||||
/*
|
||||
* Flag values
|
||||
@@ -232,6 +233,27 @@ struct tipc_sioc_nodeid_req {
|
||||
char node_id[TIPC_NODEID_LEN];
|
||||
};
|
||||
|
||||
/*
|
||||
* TIPC Crypto, AEAD
|
||||
*/
|
||||
#define TIPC_AEAD_ALG_NAME (32)
|
||||
|
||||
struct tipc_aead_key {
|
||||
char alg_name[TIPC_AEAD_ALG_NAME];
|
||||
unsigned int keylen; /* in bytes */
|
||||
char key[];
|
||||
};
|
||||
|
||||
#define TIPC_AEAD_KEYLEN_MIN (16 + 4)
|
||||
#define TIPC_AEAD_KEYLEN_MAX (32 + 4)
|
||||
#define TIPC_AEAD_KEY_SIZE_MAX (sizeof(struct tipc_aead_key) + \
|
||||
TIPC_AEAD_KEYLEN_MAX)
|
||||
|
||||
static inline int tipc_aead_key_size(struct tipc_aead_key *key)
|
||||
{
|
||||
return sizeof(*key) + key->keylen;
|
||||
}
|
||||
|
||||
/* The macros and functions below are deprecated:
|
||||
*/
|
||||
|
||||
|
@@ -309,7 +309,7 @@ static inline int TLV_SET(void *tlv, __u16 type, void *data, __u16 len)
|
||||
tlv_ptr->tlv_len = htons(tlv_len);
|
||||
if (len && data) {
|
||||
memcpy(TLV_DATA(tlv_ptr), data, len);
|
||||
memset(TLV_DATA(tlv_ptr) + len, 0, TLV_SPACE(len) - tlv_len);
|
||||
memset((char *)TLV_DATA(tlv_ptr) + len, 0, TLV_SPACE(len) - tlv_len);
|
||||
}
|
||||
return TLV_SPACE(len);
|
||||
}
|
||||
@@ -409,7 +409,7 @@ static inline int TCM_SET(void *msg, __u16 cmd, __u16 flags,
|
||||
tcm_hdr->tcm_flags = htons(flags);
|
||||
if (data_len && data) {
|
||||
memcpy(TCM_DATA(msg), data, data_len);
|
||||
memset(TCM_DATA(msg) + data_len, 0, TCM_SPACE(data_len) - msg_len);
|
||||
memset((char *)TCM_DATA(msg) + data_len, 0, TCM_SPACE(data_len) - msg_len);
|
||||
}
|
||||
return TCM_SPACE(data_len);
|
||||
}
|
||||
|
@@ -63,6 +63,8 @@ enum {
|
||||
TIPC_NL_PEER_REMOVE,
|
||||
TIPC_NL_BEARER_ADD,
|
||||
TIPC_NL_UDP_GET_REMOTEIP,
|
||||
TIPC_NL_KEY_SET,
|
||||
TIPC_NL_KEY_FLUSH,
|
||||
|
||||
__TIPC_NL_CMD_MAX,
|
||||
TIPC_NL_CMD_MAX = __TIPC_NL_CMD_MAX - 1
|
||||
@@ -160,6 +162,8 @@ enum {
|
||||
TIPC_NLA_NODE_UNSPEC,
|
||||
TIPC_NLA_NODE_ADDR, /* u32 */
|
||||
TIPC_NLA_NODE_UP, /* flag */
|
||||
TIPC_NLA_NODE_ID, /* data */
|
||||
TIPC_NLA_NODE_KEY, /* data */
|
||||
|
||||
__TIPC_NLA_NODE_MAX,
|
||||
TIPC_NLA_NODE_MAX = __TIPC_NLA_NODE_MAX - 1
|
||||
|
@@ -5,8 +5,8 @@
|
||||
#include <linux/types.h>
|
||||
|
||||
struct utimbuf {
|
||||
__kernel_time_t actime;
|
||||
__kernel_time_t modtime;
|
||||
__kernel_old_time_t actime;
|
||||
__kernel_old_time_t modtime;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
@@ -1034,6 +1034,7 @@ enum v4l2_jpeg_chroma_subsampling {
|
||||
#define V4L2_CID_TEST_PATTERN_GREENR (V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 5)
|
||||
#define V4L2_CID_TEST_PATTERN_BLUE (V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 6)
|
||||
#define V4L2_CID_TEST_PATTERN_GREENB (V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 7)
|
||||
#define V4L2_CID_UNIT_CELL_SIZE (V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 8)
|
||||
|
||||
|
||||
/* Image processing controls */
|
||||
|
@@ -422,6 +422,11 @@ struct v4l2_fract {
|
||||
__u32 denominator;
|
||||
};
|
||||
|
||||
struct v4l2_area {
|
||||
__u32 width;
|
||||
__u32 height;
|
||||
};
|
||||
|
||||
/**
|
||||
* struct v4l2_capability - Describes V4L2 device caps returned by VIDIOC_QUERYCAP
|
||||
*
|
||||
@@ -755,6 +760,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_VIVID v4l2_fourcc('V', 'I', 'V', 'D') /* Vivid Metadata */
|
||||
|
||||
/* priv field value to indicates that subsequent fields are valid. */
|
||||
#define V4L2_PIX_FMT_PRIV_MAGIC 0xfeedcafe
|
||||
@@ -915,11 +921,12 @@ struct v4l2_requestbuffers {
|
||||
};
|
||||
|
||||
/* capabilities for struct v4l2_requestbuffers and v4l2_create_buffers */
|
||||
#define V4L2_BUF_CAP_SUPPORTS_MMAP (1 << 0)
|
||||
#define V4L2_BUF_CAP_SUPPORTS_USERPTR (1 << 1)
|
||||
#define V4L2_BUF_CAP_SUPPORTS_DMABUF (1 << 2)
|
||||
#define V4L2_BUF_CAP_SUPPORTS_REQUESTS (1 << 3)
|
||||
#define V4L2_BUF_CAP_SUPPORTS_ORPHANED_BUFS (1 << 4)
|
||||
#define V4L2_BUF_CAP_SUPPORTS_MMAP (1 << 0)
|
||||
#define V4L2_BUF_CAP_SUPPORTS_USERPTR (1 << 1)
|
||||
#define V4L2_BUF_CAP_SUPPORTS_DMABUF (1 << 2)
|
||||
#define V4L2_BUF_CAP_SUPPORTS_REQUESTS (1 << 3)
|
||||
#define V4L2_BUF_CAP_SUPPORTS_ORPHANED_BUFS (1 << 4)
|
||||
#define V4L2_BUF_CAP_SUPPORTS_M2M_HOLD_CAPTURE_BUF (1 << 5)
|
||||
|
||||
/**
|
||||
* struct v4l2_plane - plane info for multi-planar buffers
|
||||
@@ -1041,6 +1048,8 @@ static inline __u64 v4l2_timeval_to_ns(const struct timeval *tv)
|
||||
#define V4L2_BUF_FLAG_IN_REQUEST 0x00000080
|
||||
/* timecode field is valid */
|
||||
#define V4L2_BUF_FLAG_TIMECODE 0x00000100
|
||||
/* Don't return the capture buffer until OUTPUT timestamp changes */
|
||||
#define V4L2_BUF_FLAG_M2M_HOLD_CAPTURE_BUF 0x00000200
|
||||
/* Buffer is prepared for queuing */
|
||||
#define V4L2_BUF_FLAG_PREPARED 0x00000400
|
||||
/* Cache handling flags */
|
||||
@@ -1675,6 +1684,7 @@ struct v4l2_ext_control {
|
||||
__u8 __user *p_u8;
|
||||
__u16 __user *p_u16;
|
||||
__u32 __user *p_u32;
|
||||
struct v4l2_area __user *p_area;
|
||||
void __user *ptr;
|
||||
};
|
||||
} __attribute__ ((packed));
|
||||
@@ -1720,6 +1730,7 @@ enum v4l2_ctrl_type {
|
||||
V4L2_CTRL_TYPE_U8 = 0x0100,
|
||||
V4L2_CTRL_TYPE_U16 = 0x0101,
|
||||
V4L2_CTRL_TYPE_U32 = 0x0102,
|
||||
V4L2_CTRL_TYPE_AREA = 0x0106,
|
||||
};
|
||||
|
||||
/* Used in the VIDIOC_QUERYCTRL ioctl for querying controls */
|
||||
@@ -1975,6 +1986,7 @@ struct v4l2_encoder_cmd {
|
||||
#define V4L2_DEC_CMD_STOP (1)
|
||||
#define V4L2_DEC_CMD_PAUSE (2)
|
||||
#define V4L2_DEC_CMD_RESUME (3)
|
||||
#define V4L2_DEC_CMD_FLUSH (4)
|
||||
|
||||
/* Flags for V4L2_DEC_CMD_START */
|
||||
#define V4L2_DEC_CMD_START_MUTE_AUDIO (1 << 0)
|
||||
|
@@ -169,7 +169,7 @@ static inline void vring_init(struct vring *vr, unsigned int num, void *p,
|
||||
{
|
||||
vr->num = num;
|
||||
vr->desc = p;
|
||||
vr->avail = p + num*sizeof(struct vring_desc);
|
||||
vr->avail = (struct vring_avail *)((char *)p + num * sizeof(struct vring_desc));
|
||||
vr->used = (void *)(((uintptr_t)&vr->avail->ring[num] + sizeof(__virtio16)
|
||||
+ align-1) & ~(align - 1));
|
||||
}
|
||||
|
@@ -10,6 +10,8 @@
|
||||
#define FASTRPC_IOCTL_INVOKE _IOWR('R', 3, struct fastrpc_invoke)
|
||||
#define FASTRPC_IOCTL_INIT_ATTACH _IO('R', 4)
|
||||
#define FASTRPC_IOCTL_INIT_CREATE _IOWR('R', 5, struct fastrpc_init_create)
|
||||
#define FASTRPC_IOCTL_MMAP _IOWR('R', 6, struct fastrpc_req_mmap)
|
||||
#define FASTRPC_IOCTL_MUNMAP _IOWR('R', 7, struct fastrpc_req_munmap)
|
||||
|
||||
struct fastrpc_invoke_args {
|
||||
__u64 ptr;
|
||||
@@ -38,4 +40,17 @@ struct fastrpc_alloc_dma_buf {
|
||||
__u64 size; /* size */
|
||||
};
|
||||
|
||||
struct fastrpc_req_mmap {
|
||||
__s32 fd;
|
||||
__u32 flags; /* flags for dsp to map with */
|
||||
__u64 vaddrin; /* optional virtual address */
|
||||
__u64 size; /* size */
|
||||
__u64 vaddrout; /* dsp virtual address */
|
||||
};
|
||||
|
||||
struct fastrpc_req_munmap {
|
||||
__u64 vaddrout; /* address to unmap */
|
||||
__u64 size; /* size */
|
||||
};
|
||||
|
||||
#endif /* __QCOM_FASTRPC_H__ */
|
||||
|
@@ -88,13 +88,19 @@ enum hl_device_status {
|
||||
* internal engine.
|
||||
* HL_INFO_DEVICE_STATUS - Retrieve the device's status. This opcode doesn't
|
||||
* require an open context.
|
||||
* HL_INFO_DEVICE_UTILIZATION - Retrieve the total utilization of the device
|
||||
* over the last period specified by the user.
|
||||
* The period can be between 100ms to 1s, in
|
||||
* resolution of 100ms. The return value is a
|
||||
* percentage of the utilization rate.
|
||||
* HL_INFO_DEVICE_UTILIZATION - Retrieve the total utilization of the device
|
||||
* over the last period specified by the user.
|
||||
* The period can be between 100ms to 1s, in
|
||||
* resolution of 100ms. The return value is a
|
||||
* percentage of the utilization rate.
|
||||
* HL_INFO_HW_EVENTS_AGGREGATE - Receive an array describing how many times each
|
||||
* event occurred since the driver was loaded.
|
||||
* HL_INFO_CLK_RATE - Retrieve the current and maximum clock rate
|
||||
* of the device in MHz. The maximum clock rate is
|
||||
* configurable via sysfs parameter
|
||||
* HL_INFO_RESET_COUNT - Retrieve the counts of the soft and hard reset
|
||||
* operations performed on the device since the last
|
||||
* time the driver was loaded.
|
||||
*/
|
||||
#define HL_INFO_HW_IP_INFO 0
|
||||
#define HL_INFO_HW_EVENTS 1
|
||||
@@ -103,8 +109,11 @@ enum hl_device_status {
|
||||
#define HL_INFO_DEVICE_STATUS 4
|
||||
#define HL_INFO_DEVICE_UTILIZATION 6
|
||||
#define HL_INFO_HW_EVENTS_AGGREGATE 7
|
||||
#define HL_INFO_CLK_RATE 8
|
||||
#define HL_INFO_RESET_COUNT 9
|
||||
|
||||
#define HL_INFO_VERSION_MAX_LEN 128
|
||||
#define HL_INFO_CARD_NAME_MAX_LEN 16
|
||||
|
||||
struct hl_info_hw_ip_info {
|
||||
__u64 sram_base_address;
|
||||
@@ -123,6 +132,7 @@ struct hl_info_hw_ip_info {
|
||||
__u8 dram_enabled;
|
||||
__u8 pad[2];
|
||||
__u8 armcp_version[HL_INFO_VERSION_MAX_LEN];
|
||||
__u8 card_name[HL_INFO_CARD_NAME_MAX_LEN];
|
||||
};
|
||||
|
||||
struct hl_info_dram_usage {
|
||||
@@ -149,6 +159,16 @@ struct hl_info_device_utilization {
|
||||
__u32 pad;
|
||||
};
|
||||
|
||||
struct hl_info_clk_rate {
|
||||
__u32 cur_clk_rate_mhz;
|
||||
__u32 max_clk_rate_mhz;
|
||||
};
|
||||
|
||||
struct hl_info_reset_count {
|
||||
__u32 hard_reset_cnt;
|
||||
__u32 soft_reset_cnt;
|
||||
};
|
||||
|
||||
struct hl_info_args {
|
||||
/* Location of relevant struct in userspace */
|
||||
__u64 return_pointer;
|
||||
@@ -181,13 +201,15 @@ struct hl_info_args {
|
||||
/* Opcode to destroy previously created command buffer */
|
||||
#define HL_CB_OP_DESTROY 1
|
||||
|
||||
#define HL_MAX_CB_SIZE 0x200000 /* 2MB */
|
||||
|
||||
struct hl_cb_in {
|
||||
/* Handle of CB or 0 if we want to create one */
|
||||
__u64 cb_handle;
|
||||
/* HL_CB_OP_* */
|
||||
__u32 op;
|
||||
/* Size of CB. Maximum size is 2MB. The minimum size that will be
|
||||
* allocated, regardless of this parameter's value, is PAGE_SIZE
|
||||
/* Size of CB. Maximum size is HL_MAX_CB_SIZE. The minimum size that
|
||||
* will be allocated, regardless of this parameter's value, is PAGE_SIZE
|
||||
*/
|
||||
__u32 cb_size;
|
||||
/* Context ID - Currently not in use */
|
||||
@@ -233,6 +255,8 @@ struct hl_cs_chunk {
|
||||
|
||||
#define HL_CS_STATUS_SUCCESS 0
|
||||
|
||||
#define HL_MAX_JOBS_PER_CS 512
|
||||
|
||||
struct hl_cs_in {
|
||||
/* this holds address of array of hl_cs_chunk for restore phase */
|
||||
__u64 chunks_restore;
|
||||
@@ -242,9 +266,13 @@ struct hl_cs_in {
|
||||
* Currently not in use
|
||||
*/
|
||||
__u64 chunks_store;
|
||||
/* Number of chunks in restore phase array */
|
||||
/* Number of chunks in restore phase array. Maximum number is
|
||||
* HL_MAX_JOBS_PER_CS
|
||||
*/
|
||||
__u32 num_chunks_restore;
|
||||
/* Number of chunks in execution array */
|
||||
/* Number of chunks in execution array. Maximum number is
|
||||
* HL_MAX_JOBS_PER_CS
|
||||
*/
|
||||
__u32 num_chunks_execute;
|
||||
/* Number of chunks in restore phase array - Currently not in use */
|
||||
__u32 num_chunks_store;
|
||||
@@ -589,7 +617,7 @@ struct hl_debug_args {
|
||||
*
|
||||
* The user can call this IOCTL with a handle it received from the CS IOCTL
|
||||
* to wait until the handle's CS has finished executing. The user will wait
|
||||
* inside the kernel until the CS has finished or until the user-requeusted
|
||||
* inside the kernel until the CS has finished or until the user-requested
|
||||
* timeout has expired.
|
||||
*
|
||||
* The return value of the IOCTL is a standard Linux error code. The possible
|
||||
|
@@ -1,82 +0,0 @@
|
||||
/* SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR Linux-OpenIB) */
|
||||
/*
|
||||
* Copyright (c) 2006 Chelsio, Inc. All rights reserved.
|
||||
*
|
||||
* This software is available to you under a choice of one of two
|
||||
* licenses. You may choose to be licensed under the terms of the GNU
|
||||
* General Public License (GPL) Version 2, available from the file
|
||||
* COPYING in the main directory of this source tree, or the
|
||||
* OpenIB.org BSD license below:
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or
|
||||
* without modification, are permitted provided that the following
|
||||
* conditions are met:
|
||||
*
|
||||
* - Redistributions of source code must retain the above
|
||||
* copyright notice, this list of conditions and the following
|
||||
* disclaimer.
|
||||
*
|
||||
* - Redistributions in binary form must reproduce the above
|
||||
* copyright notice, this list of conditions and the following
|
||||
* disclaimer in the documentation and/or other materials
|
||||
* provided with the distribution.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
|
||||
* BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
|
||||
* ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
* SOFTWARE.
|
||||
*/
|
||||
#ifndef CXGB3_ABI_USER_H
|
||||
#define CXGB3_ABI_USER_H
|
||||
|
||||
#include <linux/types.h>
|
||||
|
||||
#define IWCH_UVERBS_ABI_VERSION 1
|
||||
|
||||
/*
|
||||
* Make sure that all structs defined in this file remain laid out so
|
||||
* that they pack the same way on 32-bit and 64-bit architectures (to
|
||||
* avoid incompatibility between 32-bit userspace and 64-bit kernels).
|
||||
* In particular do not use pointer types -- pass pointers in __aligned_u64
|
||||
* instead.
|
||||
*/
|
||||
struct iwch_create_cq_req {
|
||||
__aligned_u64 user_rptr_addr;
|
||||
};
|
||||
|
||||
struct iwch_create_cq_resp_v0 {
|
||||
__aligned_u64 key;
|
||||
__u32 cqid;
|
||||
__u32 size_log2;
|
||||
};
|
||||
|
||||
struct iwch_create_cq_resp {
|
||||
__aligned_u64 key;
|
||||
__u32 cqid;
|
||||
__u32 size_log2;
|
||||
__u32 memsize;
|
||||
__u32 reserved;
|
||||
};
|
||||
|
||||
struct iwch_create_qp_resp {
|
||||
__aligned_u64 key;
|
||||
__aligned_u64 db_key;
|
||||
__u32 qpid;
|
||||
__u32 size_log2;
|
||||
__u32 sq_size_log2;
|
||||
__u32 rq_size_log2;
|
||||
};
|
||||
|
||||
struct iwch_reg_user_mr_resp {
|
||||
__u32 pbl_addr;
|
||||
};
|
||||
|
||||
struct iwch_alloc_pd_resp {
|
||||
__u32 pdid;
|
||||
};
|
||||
|
||||
#endif /* CXGB3_ABI_USER_H */
|
@@ -90,12 +90,18 @@ struct efa_ibv_create_ah_resp {
|
||||
__u8 reserved_30[2];
|
||||
};
|
||||
|
||||
enum {
|
||||
EFA_QUERY_DEVICE_CAPS_RDMA_READ = 1 << 0,
|
||||
};
|
||||
|
||||
struct efa_ibv_ex_query_device_resp {
|
||||
__u32 comp_mask;
|
||||
__u32 max_sq_wr;
|
||||
__u32 max_rq_wr;
|
||||
__u16 max_sq_sge;
|
||||
__u16 max_rq_sge;
|
||||
__u32 max_rdma_size;
|
||||
__u32 device_caps;
|
||||
};
|
||||
|
||||
#endif /* EFA_ABI_USER_H */
|
||||
|
@@ -173,4 +173,26 @@ struct ib_uverbs_query_port_resp_ex {
|
||||
__u8 reserved[6];
|
||||
};
|
||||
|
||||
enum rdma_driver_id {
|
||||
RDMA_DRIVER_UNKNOWN,
|
||||
RDMA_DRIVER_MLX5,
|
||||
RDMA_DRIVER_MLX4,
|
||||
RDMA_DRIVER_CXGB3,
|
||||
RDMA_DRIVER_CXGB4,
|
||||
RDMA_DRIVER_MTHCA,
|
||||
RDMA_DRIVER_BNXT_RE,
|
||||
RDMA_DRIVER_OCRDMA,
|
||||
RDMA_DRIVER_NES,
|
||||
RDMA_DRIVER_I40IW,
|
||||
RDMA_DRIVER_VMW_PVRDMA,
|
||||
RDMA_DRIVER_QEDR,
|
||||
RDMA_DRIVER_HNS,
|
||||
RDMA_DRIVER_USNIC,
|
||||
RDMA_DRIVER_RXE,
|
||||
RDMA_DRIVER_HFI1,
|
||||
RDMA_DRIVER_QIB,
|
||||
RDMA_DRIVER_EFA,
|
||||
RDMA_DRIVER_SIW,
|
||||
};
|
||||
|
||||
#endif
|
||||
|
@@ -198,6 +198,7 @@ enum mlx5_ib_create_flow_attrs {
|
||||
MLX5_IB_ATTR_CREATE_FLOW_ARR_FLOW_ACTIONS,
|
||||
MLX5_IB_ATTR_CREATE_FLOW_TAG,
|
||||
MLX5_IB_ATTR_CREATE_FLOW_ARR_COUNTERS_DEVX,
|
||||
MLX5_IB_ATTR_CREATE_FLOW_ARR_COUNTERS_DEVX_OFFSET,
|
||||
};
|
||||
|
||||
enum mlx5_ib_destoy_flow_attrs {
|
||||
|
@@ -1,115 +0,0 @@
|
||||
/* SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR Linux-OpenIB) */
|
||||
/*
|
||||
* Copyright (c) 2006 - 2011 Intel Corporation. All rights reserved.
|
||||
* Copyright (c) 2005 Topspin Communications. All rights reserved.
|
||||
* Copyright (c) 2005 Cisco Systems. All rights reserved.
|
||||
* Copyright (c) 2005 Open Grid Computing, Inc. All rights reserved.
|
||||
*
|
||||
* This software is available to you under a choice of one of two
|
||||
* licenses. You may choose to be licensed under the terms of the GNU
|
||||
* General Public License (GPL) Version 2, available from the file
|
||||
* COPYING in the main directory of this source tree, or the
|
||||
* OpenIB.org BSD license below:
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or
|
||||
* without modification, are permitted provided that the following
|
||||
* conditions are met:
|
||||
*
|
||||
* - Redistributions of source code must retain the above
|
||||
* copyright notice, this list of conditions and the following
|
||||
* disclaimer.
|
||||
*
|
||||
* - Redistributions in binary form must reproduce the above
|
||||
* copyright notice, this list of conditions and the following
|
||||
* disclaimer in the documentation and/or other materials
|
||||
* provided with the distribution.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
|
||||
* BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
|
||||
* ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
* SOFTWARE.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef NES_ABI_USER_H
|
||||
#define NES_ABI_USER_H
|
||||
|
||||
#include <linux/types.h>
|
||||
|
||||
#define NES_ABI_USERSPACE_VER 2
|
||||
#define NES_ABI_KERNEL_VER 2
|
||||
|
||||
/*
|
||||
* Make sure that all structs defined in this file remain laid out so
|
||||
* that they pack the same way on 32-bit and 64-bit architectures (to
|
||||
* avoid incompatibility between 32-bit userspace and 64-bit kernels).
|
||||
* In particular do not use pointer types -- pass pointers in __u64
|
||||
* instead.
|
||||
*/
|
||||
|
||||
struct nes_alloc_ucontext_req {
|
||||
__u32 reserved32;
|
||||
__u8 userspace_ver;
|
||||
__u8 reserved8[3];
|
||||
};
|
||||
|
||||
struct nes_alloc_ucontext_resp {
|
||||
__u32 max_pds; /* maximum pds allowed for this user process */
|
||||
__u32 max_qps; /* maximum qps allowed for this user process */
|
||||
__u32 wq_size; /* size of the WQs (sq+rq) allocated to the mmaped area */
|
||||
__u8 virtwq; /* flag to indicate if virtual WQ are to be used or not */
|
||||
__u8 kernel_ver;
|
||||
__u8 reserved[2];
|
||||
};
|
||||
|
||||
struct nes_alloc_pd_resp {
|
||||
__u32 pd_id;
|
||||
__u32 mmap_db_index;
|
||||
};
|
||||
|
||||
struct nes_create_cq_req {
|
||||
__aligned_u64 user_cq_buffer;
|
||||
__u32 mcrqf;
|
||||
__u8 reserved[4];
|
||||
};
|
||||
|
||||
struct nes_create_qp_req {
|
||||
__aligned_u64 user_wqe_buffers;
|
||||
__aligned_u64 user_qp_buffer;
|
||||
};
|
||||
|
||||
enum iwnes_memreg_type {
|
||||
IWNES_MEMREG_TYPE_MEM = 0x0000,
|
||||
IWNES_MEMREG_TYPE_QP = 0x0001,
|
||||
IWNES_MEMREG_TYPE_CQ = 0x0002,
|
||||
IWNES_MEMREG_TYPE_MW = 0x0003,
|
||||
IWNES_MEMREG_TYPE_FMR = 0x0004,
|
||||
IWNES_MEMREG_TYPE_FMEM = 0x0005,
|
||||
};
|
||||
|
||||
struct nes_mem_reg_req {
|
||||
__u32 reg_type; /* indicates if id is memory, QP or CQ */
|
||||
__u32 reserved;
|
||||
};
|
||||
|
||||
struct nes_create_cq_resp {
|
||||
__u32 cq_id;
|
||||
__u32 cq_size;
|
||||
__u32 mmap_db_index;
|
||||
__u32 reserved;
|
||||
};
|
||||
|
||||
struct nes_create_qp_resp {
|
||||
__u32 qp_id;
|
||||
__u32 actual_sq_size;
|
||||
__u32 actual_rq_size;
|
||||
__u32 mmap_sq_db_index;
|
||||
__u32 mmap_rq_db_index;
|
||||
__u32 nes_drv_opt;
|
||||
};
|
||||
|
||||
#endif /* NES_ABI_USER_H */
|
@@ -38,6 +38,15 @@
|
||||
#define QEDR_ABI_VERSION (8)
|
||||
|
||||
/* user kernel communication data structures. */
|
||||
enum qedr_alloc_ucontext_flags {
|
||||
QEDR_ALLOC_UCTX_RESERVED = 1 << 0,
|
||||
QEDR_ALLOC_UCTX_DB_REC = 1 << 1
|
||||
};
|
||||
|
||||
struct qedr_alloc_ucontext_req {
|
||||
__u32 context_flags;
|
||||
__u32 reserved;
|
||||
};
|
||||
|
||||
struct qedr_alloc_ucontext_resp {
|
||||
__aligned_u64 db_pa;
|
||||
@@ -74,6 +83,7 @@ struct qedr_create_cq_uresp {
|
||||
__u32 db_offset;
|
||||
__u16 icid;
|
||||
__u16 reserved;
|
||||
__aligned_u64 db_rec_addr;
|
||||
};
|
||||
|
||||
struct qedr_create_qp_ureq {
|
||||
@@ -109,6 +119,13 @@ struct qedr_create_qp_uresp {
|
||||
|
||||
__u32 rq_db2_offset;
|
||||
__u32 reserved;
|
||||
|
||||
/* address of SQ doorbell recovery user entry */
|
||||
__aligned_u64 sq_db_rec_addr;
|
||||
|
||||
/* address of RQ doorbell recovery user entry */
|
||||
__aligned_u64 rq_db_rec_addr;
|
||||
|
||||
};
|
||||
|
||||
struct qedr_create_srq_ureq {
|
||||
@@ -128,4 +145,12 @@ struct qedr_create_srq_uresp {
|
||||
__u32 reserved1;
|
||||
};
|
||||
|
||||
/* doorbell recovery entry allocated and populated by userspace doorbelling
|
||||
* entities and mapped to kernel. Kernel uses this to register doorbell
|
||||
* information with doorbell drop recovery mechanism.
|
||||
*/
|
||||
struct qedr_user_db_rec {
|
||||
__aligned_u64 db_data; /* doorbell data */
|
||||
};
|
||||
|
||||
#endif /* __QEDR_USER_H__ */
|
||||
|
@@ -84,26 +84,4 @@ struct ib_uverbs_ioctl_hdr {
|
||||
struct ib_uverbs_attr attrs[0];
|
||||
};
|
||||
|
||||
enum rdma_driver_id {
|
||||
RDMA_DRIVER_UNKNOWN,
|
||||
RDMA_DRIVER_MLX5,
|
||||
RDMA_DRIVER_MLX4,
|
||||
RDMA_DRIVER_CXGB3,
|
||||
RDMA_DRIVER_CXGB4,
|
||||
RDMA_DRIVER_MTHCA,
|
||||
RDMA_DRIVER_BNXT_RE,
|
||||
RDMA_DRIVER_OCRDMA,
|
||||
RDMA_DRIVER_NES,
|
||||
RDMA_DRIVER_I40IW,
|
||||
RDMA_DRIVER_VMW_PVRDMA,
|
||||
RDMA_DRIVER_QEDR,
|
||||
RDMA_DRIVER_HNS,
|
||||
RDMA_DRIVER_USNIC,
|
||||
RDMA_DRIVER_RXE,
|
||||
RDMA_DRIVER_HFI1,
|
||||
RDMA_DRIVER_QIB,
|
||||
RDMA_DRIVER_EFA,
|
||||
RDMA_DRIVER_SIW,
|
||||
};
|
||||
|
||||
#endif
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user