Merge drm/drm-next into drm-intel-next-queued
Backmerging in order to pull "topic/phy-compliance". Signed-off-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
This commit is contained in:
commit
2b703bbda2
11011 changed files with 485563 additions and 232470 deletions
|
|
@ -87,7 +87,9 @@ typedef struct {
|
|||
typedef __kernel_long_t __kernel_off_t;
|
||||
typedef long long __kernel_loff_t;
|
||||
typedef __kernel_long_t __kernel_old_time_t;
|
||||
#ifndef __KERNEL__
|
||||
typedef __kernel_long_t __kernel_time_t;
|
||||
#endif
|
||||
typedef long long __kernel_time64_t;
|
||||
typedef __kernel_long_t __kernel_clock_t;
|
||||
typedef int __kernel_timer_t;
|
||||
|
|
|
|||
|
|
@ -125,9 +125,10 @@ extern "C" {
|
|||
/* Flag that BO sharing will be explicitly synchronized */
|
||||
#define AMDGPU_GEM_CREATE_EXPLICIT_SYNC (1 << 7)
|
||||
/* Flag that indicates allocating MQD gart on GFX9, where the mtype
|
||||
* for the second page onward should be set to NC.
|
||||
* for the second page onward should be set to NC. It should never
|
||||
* be used by user space applications.
|
||||
*/
|
||||
#define AMDGPU_GEM_CREATE_MQD_GFX9 (1 << 8)
|
||||
#define AMDGPU_GEM_CREATE_CP_MQD_GFX9 (1 << 8)
|
||||
/* Flag that BO may contain sensitive data that must be wiped before
|
||||
* releasing the memory
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -86,6 +86,9 @@ extern "C" {
|
|||
*
|
||||
* DRM_VMW_PARAM_SM4_1
|
||||
* SM4_1 support is enabled.
|
||||
*
|
||||
* DRM_VMW_PARAM_SM5
|
||||
* SM5 support is enabled.
|
||||
*/
|
||||
|
||||
#define DRM_VMW_PARAM_NUM_STREAMS 0
|
||||
|
|
@ -103,6 +106,7 @@ extern "C" {
|
|||
#define DRM_VMW_PARAM_DX 12
|
||||
#define DRM_VMW_PARAM_HW_CAPS2 13
|
||||
#define DRM_VMW_PARAM_SM4_1 14
|
||||
#define DRM_VMW_PARAM_SM5 15
|
||||
|
||||
/**
|
||||
* enum drm_vmw_handle_type - handle type for ref ioctls
|
||||
|
|
@ -1133,7 +1137,7 @@ struct drm_vmw_handle_close_arg {
|
|||
* svga3d surface flags split into 2, upper half and lower half.
|
||||
*/
|
||||
enum drm_vmw_surface_version {
|
||||
drm_vmw_gb_surface_v1
|
||||
drm_vmw_gb_surface_v1,
|
||||
};
|
||||
|
||||
/**
|
||||
|
|
@ -1144,6 +1148,7 @@ enum drm_vmw_surface_version {
|
|||
* @svga3d_flags_upper_32_bits: Upper 32 bits of svga3d flags.
|
||||
* @multisample_pattern: Multisampling pattern when msaa is supported.
|
||||
* @quality_level: Precision settings for each sample.
|
||||
* @buffer_byte_stride: Buffer byte stride.
|
||||
* @must_be_zero: Reserved for future usage.
|
||||
*
|
||||
* Input argument to the DRM_VMW_GB_SURFACE_CREATE_EXT Ioctl.
|
||||
|
|
@ -1152,10 +1157,11 @@ enum drm_vmw_surface_version {
|
|||
struct drm_vmw_gb_surface_create_ext_req {
|
||||
struct drm_vmw_gb_surface_create_req base;
|
||||
enum drm_vmw_surface_version version;
|
||||
uint32_t svga3d_flags_upper_32_bits;
|
||||
SVGA3dMSPattern multisample_pattern;
|
||||
SVGA3dMSQualityLevel quality_level;
|
||||
uint64_t must_be_zero;
|
||||
__u32 svga3d_flags_upper_32_bits;
|
||||
__u32 multisample_pattern;
|
||||
__u32 quality_level;
|
||||
__u32 buffer_byte_stride;
|
||||
__u32 must_be_zero;
|
||||
};
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -73,7 +73,7 @@ struct bpf_insn {
|
|||
/* Key of an a BPF_MAP_TYPE_LPM_TRIE entry */
|
||||
struct bpf_lpm_trie_key {
|
||||
__u32 prefixlen; /* up to 32 for AF_INET, 128 for AF_INET6 */
|
||||
__u8 data[0]; /* Arbitrary size */
|
||||
__u8 data[]; /* Arbitrary size */
|
||||
};
|
||||
|
||||
struct bpf_cgroup_storage_key {
|
||||
|
|
@ -111,6 +111,8 @@ enum bpf_cmd {
|
|||
BPF_MAP_LOOKUP_AND_DELETE_BATCH,
|
||||
BPF_MAP_UPDATE_BATCH,
|
||||
BPF_MAP_DELETE_BATCH,
|
||||
BPF_LINK_CREATE,
|
||||
BPF_LINK_UPDATE,
|
||||
};
|
||||
|
||||
enum bpf_map_type {
|
||||
|
|
@ -181,6 +183,7 @@ enum bpf_prog_type {
|
|||
BPF_PROG_TYPE_TRACING,
|
||||
BPF_PROG_TYPE_STRUCT_OPS,
|
||||
BPF_PROG_TYPE_EXT,
|
||||
BPF_PROG_TYPE_LSM,
|
||||
};
|
||||
|
||||
enum bpf_attach_type {
|
||||
|
|
@ -210,6 +213,8 @@ enum bpf_attach_type {
|
|||
BPF_TRACE_RAW_TP,
|
||||
BPF_TRACE_FENTRY,
|
||||
BPF_TRACE_FEXIT,
|
||||
BPF_MODIFY_RETURN,
|
||||
BPF_LSM_MAC,
|
||||
__MAX_BPF_ATTACH_TYPE
|
||||
};
|
||||
|
||||
|
|
@ -325,44 +330,46 @@ enum bpf_attach_type {
|
|||
#define BPF_PSEUDO_CALL 1
|
||||
|
||||
/* flags for BPF_MAP_UPDATE_ELEM command */
|
||||
#define BPF_ANY 0 /* create new element or update existing */
|
||||
#define BPF_NOEXIST 1 /* create new element if it didn't exist */
|
||||
#define BPF_EXIST 2 /* update existing element */
|
||||
#define BPF_F_LOCK 4 /* spin_lock-ed map_lookup/map_update */
|
||||
enum {
|
||||
BPF_ANY = 0, /* create new element or update existing */
|
||||
BPF_NOEXIST = 1, /* create new element if it didn't exist */
|
||||
BPF_EXIST = 2, /* update existing element */
|
||||
BPF_F_LOCK = 4, /* spin_lock-ed map_lookup/map_update */
|
||||
};
|
||||
|
||||
/* flags for BPF_MAP_CREATE command */
|
||||
#define BPF_F_NO_PREALLOC (1U << 0)
|
||||
enum {
|
||||
BPF_F_NO_PREALLOC = (1U << 0),
|
||||
/* Instead of having one common LRU list in the
|
||||
* BPF_MAP_TYPE_LRU_[PERCPU_]HASH map, use a percpu LRU list
|
||||
* which can scale and perform better.
|
||||
* Note, the LRU nodes (including free nodes) cannot be moved
|
||||
* across different LRU lists.
|
||||
*/
|
||||
#define BPF_F_NO_COMMON_LRU (1U << 1)
|
||||
BPF_F_NO_COMMON_LRU = (1U << 1),
|
||||
/* Specify numa node during map creation */
|
||||
#define BPF_F_NUMA_NODE (1U << 2)
|
||||
|
||||
#define BPF_OBJ_NAME_LEN 16U
|
||||
BPF_F_NUMA_NODE = (1U << 2),
|
||||
|
||||
/* Flags for accessing BPF object from syscall side. */
|
||||
#define BPF_F_RDONLY (1U << 3)
|
||||
#define BPF_F_WRONLY (1U << 4)
|
||||
BPF_F_RDONLY = (1U << 3),
|
||||
BPF_F_WRONLY = (1U << 4),
|
||||
|
||||
/* Flag for stack_map, store build_id+offset instead of pointer */
|
||||
#define BPF_F_STACK_BUILD_ID (1U << 5)
|
||||
BPF_F_STACK_BUILD_ID = (1U << 5),
|
||||
|
||||
/* Zero-initialize hash function seed. This should only be used for testing. */
|
||||
#define BPF_F_ZERO_SEED (1U << 6)
|
||||
BPF_F_ZERO_SEED = (1U << 6),
|
||||
|
||||
/* Flags for accessing BPF object from program side. */
|
||||
#define BPF_F_RDONLY_PROG (1U << 7)
|
||||
#define BPF_F_WRONLY_PROG (1U << 8)
|
||||
BPF_F_RDONLY_PROG = (1U << 7),
|
||||
BPF_F_WRONLY_PROG = (1U << 8),
|
||||
|
||||
/* Clone map from listener for newly accepted socket */
|
||||
#define BPF_F_CLONE (1U << 9)
|
||||
BPF_F_CLONE = (1U << 9),
|
||||
|
||||
/* Enable memory-mapping BPF map */
|
||||
#define BPF_F_MMAPABLE (1U << 10)
|
||||
BPF_F_MMAPABLE = (1U << 10),
|
||||
};
|
||||
|
||||
/* Flags for BPF_PROG_QUERY. */
|
||||
|
||||
|
|
@ -391,6 +398,8 @@ struct bpf_stack_build_id {
|
|||
};
|
||||
};
|
||||
|
||||
#define BPF_OBJ_NAME_LEN 16U
|
||||
|
||||
union bpf_attr {
|
||||
struct { /* anonymous struct used by BPF_MAP_CREATE command */
|
||||
__u32 map_type; /* one of enum bpf_map_type */
|
||||
|
|
@ -534,7 +543,7 @@ union bpf_attr {
|
|||
__u32 prog_cnt;
|
||||
} query;
|
||||
|
||||
struct {
|
||||
struct { /* anonymous struct used by BPF_RAW_TRACEPOINT_OPEN command */
|
||||
__u64 name;
|
||||
__u32 prog_fd;
|
||||
} raw_tracepoint;
|
||||
|
|
@ -562,6 +571,24 @@ union bpf_attr {
|
|||
__u64 probe_offset; /* output: probe_offset */
|
||||
__u64 probe_addr; /* output: probe_addr */
|
||||
} task_fd_query;
|
||||
|
||||
struct { /* struct used by BPF_LINK_CREATE command */
|
||||
__u32 prog_fd; /* eBPF program to attach */
|
||||
__u32 target_fd; /* object to attach to */
|
||||
__u32 attach_type; /* attach type */
|
||||
__u32 flags; /* extra flags */
|
||||
} link_create;
|
||||
|
||||
struct { /* struct used by BPF_LINK_UPDATE command */
|
||||
__u32 link_fd; /* link fd */
|
||||
/* new program fd to update link with */
|
||||
__u32 new_prog_fd;
|
||||
__u32 flags; /* extra flags */
|
||||
/* expected link's program fd; is specified only if
|
||||
* BPF_F_REPLACE flag is set in flags */
|
||||
__u32 old_prog_fd;
|
||||
} link_update;
|
||||
|
||||
} __attribute__((aligned(8)));
|
||||
|
||||
/* The description below is an attempt at providing documentation to eBPF
|
||||
|
|
@ -1045,9 +1072,9 @@ union bpf_attr {
|
|||
* supports redirection to the egress interface, and accepts no
|
||||
* flag at all.
|
||||
*
|
||||
* The same effect can be attained with the more generic
|
||||
* **bpf_redirect_map**\ (), which requires specific maps to be
|
||||
* used but offers better performance.
|
||||
* The same effect can also be attained with the more generic
|
||||
* **bpf_redirect_map**\ (), which uses a BPF map to store the
|
||||
* redirect target instead of providing it directly to the helper.
|
||||
* Return
|
||||
* For XDP, the helper returns **XDP_REDIRECT** on success or
|
||||
* **XDP_ABORTED** on error. For other program types, the values
|
||||
|
|
@ -1611,13 +1638,11 @@ union bpf_attr {
|
|||
* the caller. Any higher bits in the *flags* argument must be
|
||||
* unset.
|
||||
*
|
||||
* When used to redirect packets to net devices, this helper
|
||||
* provides a high performance increase over **bpf_redirect**\ ().
|
||||
* This is due to various implementation details of the underlying
|
||||
* mechanisms, one of which is the fact that **bpf_redirect_map**\
|
||||
* () tries to send packet as a "bulk" to the device.
|
||||
* See also bpf_redirect(), which only supports redirecting to an
|
||||
* ifindex, but doesn't require a map to do so.
|
||||
* Return
|
||||
* **XDP_REDIRECT** on success, or **XDP_ABORTED** on error.
|
||||
* **XDP_REDIRECT** on success, or the value of the two lower bits
|
||||
* of the **flags* argument on error.
|
||||
*
|
||||
* int bpf_sk_redirect_map(struct sk_buff *skb, struct bpf_map *map, u32 key, u64 flags)
|
||||
* Description
|
||||
|
|
@ -2892,6 +2917,114 @@ union bpf_attr {
|
|||
* Obtain the 64bit jiffies
|
||||
* Return
|
||||
* The 64 bit jiffies
|
||||
*
|
||||
* int bpf_read_branch_records(struct bpf_perf_event_data *ctx, void *buf, u32 size, u64 flags)
|
||||
* Description
|
||||
* For an eBPF program attached to a perf event, retrieve the
|
||||
* branch records (struct perf_branch_entry) associated to *ctx*
|
||||
* and store it in the buffer pointed by *buf* up to size
|
||||
* *size* bytes.
|
||||
* Return
|
||||
* On success, number of bytes written to *buf*. On error, a
|
||||
* negative value.
|
||||
*
|
||||
* The *flags* can be set to **BPF_F_GET_BRANCH_RECORDS_SIZE** to
|
||||
* instead return the number of bytes required to store all the
|
||||
* branch entries. If this flag is set, *buf* may be NULL.
|
||||
*
|
||||
* **-EINVAL** if arguments invalid or **size** not a multiple
|
||||
* of sizeof(struct perf_branch_entry).
|
||||
*
|
||||
* **-ENOENT** if architecture does not support branch records.
|
||||
*
|
||||
* int bpf_get_ns_current_pid_tgid(u64 dev, u64 ino, struct bpf_pidns_info *nsdata, u32 size)
|
||||
* Description
|
||||
* Returns 0 on success, values for *pid* and *tgid* as seen from the current
|
||||
* *namespace* will be returned in *nsdata*.
|
||||
*
|
||||
* On failure, the returned value is one of the following:
|
||||
*
|
||||
* **-EINVAL** if dev and inum supplied don't match dev_t and inode number
|
||||
* with nsfs of current task, or if dev conversion to dev_t lost high bits.
|
||||
*
|
||||
* **-ENOENT** if pidns does not exists for the current task.
|
||||
*
|
||||
* int bpf_xdp_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 xdp_buff.
|
||||
*
|
||||
* This helper is similar to **bpf_perf_eventoutput**\ () but
|
||||
* restricted to raw_tracepoint bpf programs.
|
||||
* Return
|
||||
* 0 on success, or a negative error in case of failure.
|
||||
*
|
||||
* u64 bpf_get_netns_cookie(void *ctx)
|
||||
* Description
|
||||
* Retrieve the cookie (generated by the kernel) of the network
|
||||
* namespace the input *ctx* is associated with. The network
|
||||
* namespace cookie remains stable for its lifetime and provides
|
||||
* a global identifier that can be assumed unique. If *ctx* is
|
||||
* NULL, then the helper returns the cookie for the initial
|
||||
* network namespace. The cookie itself is very similar to that
|
||||
* of bpf_get_socket_cookie() helper, but for network namespaces
|
||||
* instead of sockets.
|
||||
* Return
|
||||
* A 8-byte long opaque number.
|
||||
*
|
||||
* u64 bpf_get_current_ancestor_cgroup_id(int ancestor_level)
|
||||
* Description
|
||||
* Return id of cgroup v2 that is ancestor of the cgroup associated
|
||||
* with the current task at the *ancestor_level*. The root cgroup
|
||||
* is at *ancestor_level* zero and each step down the hierarchy
|
||||
* increments the level. If *ancestor_level* == level of cgroup
|
||||
* associated with the current task, then return value will be the
|
||||
* same as that of **bpf_get_current_cgroup_id**\ ().
|
||||
*
|
||||
* The helper is useful to implement policies based on cgroups
|
||||
* that are upper in hierarchy than immediate cgroup associated
|
||||
* with the current task.
|
||||
*
|
||||
* The format of returned id and helper limitations are same as in
|
||||
* **bpf_get_current_cgroup_id**\ ().
|
||||
* Return
|
||||
* The id is returned or 0 in case the id could not be retrieved.
|
||||
*
|
||||
* int bpf_sk_assign(struct sk_buff *skb, struct bpf_sock *sk, u64 flags)
|
||||
* Description
|
||||
* Assign the *sk* to the *skb*. When combined with appropriate
|
||||
* routing configuration to receive the packet towards the socket,
|
||||
* will cause *skb* to be delivered to the specified socket.
|
||||
* Subsequent redirection of *skb* via **bpf_redirect**\ (),
|
||||
* **bpf_clone_redirect**\ () or other methods outside of BPF may
|
||||
* interfere with successful delivery to the socket.
|
||||
*
|
||||
* This operation is only valid from TC ingress path.
|
||||
*
|
||||
* The *flags* argument must be zero.
|
||||
* Return
|
||||
* 0 on success, or a negative errno in case of failure.
|
||||
*
|
||||
* * **-EINVAL** Unsupported flags specified.
|
||||
* * **-ENOENT** Socket is unavailable for assignment.
|
||||
* * **-ENETUNREACH** Socket is unreachable (wrong netns).
|
||||
* * **-EOPNOTSUPP** Unsupported operation, for example a
|
||||
* call from outside of TC ingress.
|
||||
* * **-ESOCKTNOSUPPORT** Socket type not supported (reuseport).
|
||||
*/
|
||||
#define __BPF_FUNC_MAPPER(FN) \
|
||||
FN(unspec), \
|
||||
|
|
@ -3012,7 +3145,13 @@ union bpf_attr {
|
|||
FN(probe_read_kernel_str), \
|
||||
FN(tcp_send_ack), \
|
||||
FN(send_signal_thread), \
|
||||
FN(jiffies64),
|
||||
FN(jiffies64), \
|
||||
FN(read_branch_records), \
|
||||
FN(get_ns_current_pid_tgid), \
|
||||
FN(xdp_output), \
|
||||
FN(get_netns_cookie), \
|
||||
FN(get_current_ancestor_cgroup_id), \
|
||||
FN(sk_assign),
|
||||
|
||||
/* integer value in 'imm' field of BPF_CALL instruction selects which helper
|
||||
* function eBPF program intends to call
|
||||
|
|
@ -3027,69 +3166,100 @@ enum bpf_func_id {
|
|||
/* All flags used by eBPF helper functions, placed here. */
|
||||
|
||||
/* BPF_FUNC_skb_store_bytes flags. */
|
||||
#define BPF_F_RECOMPUTE_CSUM (1ULL << 0)
|
||||
#define BPF_F_INVALIDATE_HASH (1ULL << 1)
|
||||
enum {
|
||||
BPF_F_RECOMPUTE_CSUM = (1ULL << 0),
|
||||
BPF_F_INVALIDATE_HASH = (1ULL << 1),
|
||||
};
|
||||
|
||||
/* BPF_FUNC_l3_csum_replace and BPF_FUNC_l4_csum_replace flags.
|
||||
* First 4 bits are for passing the header field size.
|
||||
*/
|
||||
#define BPF_F_HDR_FIELD_MASK 0xfULL
|
||||
enum {
|
||||
BPF_F_HDR_FIELD_MASK = 0xfULL,
|
||||
};
|
||||
|
||||
/* BPF_FUNC_l4_csum_replace flags. */
|
||||
#define BPF_F_PSEUDO_HDR (1ULL << 4)
|
||||
#define BPF_F_MARK_MANGLED_0 (1ULL << 5)
|
||||
#define BPF_F_MARK_ENFORCE (1ULL << 6)
|
||||
enum {
|
||||
BPF_F_PSEUDO_HDR = (1ULL << 4),
|
||||
BPF_F_MARK_MANGLED_0 = (1ULL << 5),
|
||||
BPF_F_MARK_ENFORCE = (1ULL << 6),
|
||||
};
|
||||
|
||||
/* BPF_FUNC_clone_redirect and BPF_FUNC_redirect flags. */
|
||||
#define BPF_F_INGRESS (1ULL << 0)
|
||||
enum {
|
||||
BPF_F_INGRESS = (1ULL << 0),
|
||||
};
|
||||
|
||||
/* BPF_FUNC_skb_set_tunnel_key and BPF_FUNC_skb_get_tunnel_key flags. */
|
||||
#define BPF_F_TUNINFO_IPV6 (1ULL << 0)
|
||||
enum {
|
||||
BPF_F_TUNINFO_IPV6 = (1ULL << 0),
|
||||
};
|
||||
|
||||
/* flags for both BPF_FUNC_get_stackid and BPF_FUNC_get_stack. */
|
||||
#define BPF_F_SKIP_FIELD_MASK 0xffULL
|
||||
#define BPF_F_USER_STACK (1ULL << 8)
|
||||
enum {
|
||||
BPF_F_SKIP_FIELD_MASK = 0xffULL,
|
||||
BPF_F_USER_STACK = (1ULL << 8),
|
||||
/* flags used by BPF_FUNC_get_stackid only. */
|
||||
#define BPF_F_FAST_STACK_CMP (1ULL << 9)
|
||||
#define BPF_F_REUSE_STACKID (1ULL << 10)
|
||||
BPF_F_FAST_STACK_CMP = (1ULL << 9),
|
||||
BPF_F_REUSE_STACKID = (1ULL << 10),
|
||||
/* flags used by BPF_FUNC_get_stack only. */
|
||||
#define BPF_F_USER_BUILD_ID (1ULL << 11)
|
||||
BPF_F_USER_BUILD_ID = (1ULL << 11),
|
||||
};
|
||||
|
||||
/* BPF_FUNC_skb_set_tunnel_key flags. */
|
||||
#define BPF_F_ZERO_CSUM_TX (1ULL << 1)
|
||||
#define BPF_F_DONT_FRAGMENT (1ULL << 2)
|
||||
#define BPF_F_SEQ_NUMBER (1ULL << 3)
|
||||
enum {
|
||||
BPF_F_ZERO_CSUM_TX = (1ULL << 1),
|
||||
BPF_F_DONT_FRAGMENT = (1ULL << 2),
|
||||
BPF_F_SEQ_NUMBER = (1ULL << 3),
|
||||
};
|
||||
|
||||
/* BPF_FUNC_perf_event_output, BPF_FUNC_perf_event_read and
|
||||
* BPF_FUNC_perf_event_read_value flags.
|
||||
*/
|
||||
#define BPF_F_INDEX_MASK 0xffffffffULL
|
||||
#define BPF_F_CURRENT_CPU BPF_F_INDEX_MASK
|
||||
enum {
|
||||
BPF_F_INDEX_MASK = 0xffffffffULL,
|
||||
BPF_F_CURRENT_CPU = BPF_F_INDEX_MASK,
|
||||
/* BPF_FUNC_perf_event_output for sk_buff input context. */
|
||||
#define BPF_F_CTXLEN_MASK (0xfffffULL << 32)
|
||||
BPF_F_CTXLEN_MASK = (0xfffffULL << 32),
|
||||
};
|
||||
|
||||
/* Current network namespace */
|
||||
#define BPF_F_CURRENT_NETNS (-1L)
|
||||
enum {
|
||||
BPF_F_CURRENT_NETNS = (-1L),
|
||||
};
|
||||
|
||||
/* BPF_FUNC_skb_adjust_room flags. */
|
||||
#define BPF_F_ADJ_ROOM_FIXED_GSO (1ULL << 0)
|
||||
enum {
|
||||
BPF_F_ADJ_ROOM_FIXED_GSO = (1ULL << 0),
|
||||
BPF_F_ADJ_ROOM_ENCAP_L3_IPV4 = (1ULL << 1),
|
||||
BPF_F_ADJ_ROOM_ENCAP_L3_IPV6 = (1ULL << 2),
|
||||
BPF_F_ADJ_ROOM_ENCAP_L4_GRE = (1ULL << 3),
|
||||
BPF_F_ADJ_ROOM_ENCAP_L4_UDP = (1ULL << 4),
|
||||
};
|
||||
|
||||
#define BPF_ADJ_ROOM_ENCAP_L2_MASK 0xff
|
||||
#define BPF_ADJ_ROOM_ENCAP_L2_SHIFT 56
|
||||
enum {
|
||||
BPF_ADJ_ROOM_ENCAP_L2_MASK = 0xff,
|
||||
BPF_ADJ_ROOM_ENCAP_L2_SHIFT = 56,
|
||||
};
|
||||
|
||||
#define BPF_F_ADJ_ROOM_ENCAP_L3_IPV4 (1ULL << 1)
|
||||
#define BPF_F_ADJ_ROOM_ENCAP_L3_IPV6 (1ULL << 2)
|
||||
#define BPF_F_ADJ_ROOM_ENCAP_L4_GRE (1ULL << 3)
|
||||
#define BPF_F_ADJ_ROOM_ENCAP_L4_UDP (1ULL << 4)
|
||||
#define BPF_F_ADJ_ROOM_ENCAP_L2(len) (((__u64)len & \
|
||||
BPF_ADJ_ROOM_ENCAP_L2_MASK) \
|
||||
<< BPF_ADJ_ROOM_ENCAP_L2_SHIFT)
|
||||
|
||||
/* BPF_FUNC_sysctl_get_name flags. */
|
||||
#define BPF_F_SYSCTL_BASE_NAME (1ULL << 0)
|
||||
enum {
|
||||
BPF_F_SYSCTL_BASE_NAME = (1ULL << 0),
|
||||
};
|
||||
|
||||
/* BPF_FUNC_sk_storage_get flags */
|
||||
#define BPF_SK_STORAGE_GET_F_CREATE (1ULL << 0)
|
||||
enum {
|
||||
BPF_SK_STORAGE_GET_F_CREATE = (1ULL << 0),
|
||||
};
|
||||
|
||||
/* BPF_FUNC_read_branch_records flags. */
|
||||
enum {
|
||||
BPF_F_GET_BRANCH_RECORDS_SIZE = (1ULL << 0),
|
||||
};
|
||||
|
||||
/* Mode for BPF_FUNC_skb_adjust_room helper. */
|
||||
enum bpf_adj_room_mode {
|
||||
|
|
@ -3155,6 +3325,7 @@ struct __sk_buff {
|
|||
__u32 wire_len;
|
||||
__u32 gso_segs;
|
||||
__bpf_md_ptr(struct bpf_sock *, sk);
|
||||
__u32 gso_size;
|
||||
};
|
||||
|
||||
struct bpf_tunnel_key {
|
||||
|
|
@ -3507,13 +3678,14 @@ struct bpf_sock_ops {
|
|||
};
|
||||
|
||||
/* Definitions for bpf_sock_ops_cb_flags */
|
||||
#define BPF_SOCK_OPS_RTO_CB_FLAG (1<<0)
|
||||
#define BPF_SOCK_OPS_RETRANS_CB_FLAG (1<<1)
|
||||
#define BPF_SOCK_OPS_STATE_CB_FLAG (1<<2)
|
||||
#define BPF_SOCK_OPS_RTT_CB_FLAG (1<<3)
|
||||
#define BPF_SOCK_OPS_ALL_CB_FLAGS 0xF /* Mask of all currently
|
||||
* supported cb flags
|
||||
*/
|
||||
enum {
|
||||
BPF_SOCK_OPS_RTO_CB_FLAG = (1<<0),
|
||||
BPF_SOCK_OPS_RETRANS_CB_FLAG = (1<<1),
|
||||
BPF_SOCK_OPS_STATE_CB_FLAG = (1<<2),
|
||||
BPF_SOCK_OPS_RTT_CB_FLAG = (1<<3),
|
||||
/* Mask of all currently supported cb flags */
|
||||
BPF_SOCK_OPS_ALL_CB_FLAGS = 0xF,
|
||||
};
|
||||
|
||||
/* List of known BPF sock_ops operators.
|
||||
* New entries can only be added at the end
|
||||
|
|
@ -3592,8 +3764,10 @@ enum {
|
|||
BPF_TCP_MAX_STATES /* Leave at the end! */
|
||||
};
|
||||
|
||||
#define TCP_BPF_IW 1001 /* Set TCP initial congestion window */
|
||||
#define TCP_BPF_SNDCWND_CLAMP 1002 /* Set sndcwnd_clamp */
|
||||
enum {
|
||||
TCP_BPF_IW = 1001, /* Set TCP initial congestion window */
|
||||
TCP_BPF_SNDCWND_CLAMP = 1002, /* Set sndcwnd_clamp */
|
||||
};
|
||||
|
||||
struct bpf_perf_event_value {
|
||||
__u64 counter;
|
||||
|
|
@ -3601,12 +3775,16 @@ struct bpf_perf_event_value {
|
|||
__u64 running;
|
||||
};
|
||||
|
||||
#define BPF_DEVCG_ACC_MKNOD (1ULL << 0)
|
||||
#define BPF_DEVCG_ACC_READ (1ULL << 1)
|
||||
#define BPF_DEVCG_ACC_WRITE (1ULL << 2)
|
||||
enum {
|
||||
BPF_DEVCG_ACC_MKNOD = (1ULL << 0),
|
||||
BPF_DEVCG_ACC_READ = (1ULL << 1),
|
||||
BPF_DEVCG_ACC_WRITE = (1ULL << 2),
|
||||
};
|
||||
|
||||
#define BPF_DEVCG_DEV_BLOCK (1ULL << 0)
|
||||
#define BPF_DEVCG_DEV_CHAR (1ULL << 1)
|
||||
enum {
|
||||
BPF_DEVCG_DEV_BLOCK = (1ULL << 0),
|
||||
BPF_DEVCG_DEV_CHAR = (1ULL << 1),
|
||||
};
|
||||
|
||||
struct bpf_cgroup_dev_ctx {
|
||||
/* access_type encoded as (BPF_DEVCG_ACC_* << 16) | BPF_DEVCG_DEV_* */
|
||||
|
|
@ -3622,8 +3800,10 @@ struct bpf_raw_tracepoint_args {
|
|||
/* DIRECT: Skip the FIB rules and go to FIB table associated with device
|
||||
* OUTPUT: Do lookup from egress perspective; default is ingress
|
||||
*/
|
||||
#define BPF_FIB_LOOKUP_DIRECT (1U << 0)
|
||||
#define BPF_FIB_LOOKUP_OUTPUT (1U << 1)
|
||||
enum {
|
||||
BPF_FIB_LOOKUP_DIRECT = (1U << 0),
|
||||
BPF_FIB_LOOKUP_OUTPUT = (1U << 1),
|
||||
};
|
||||
|
||||
enum {
|
||||
BPF_FIB_LKUP_RET_SUCCESS, /* lookup successful */
|
||||
|
|
@ -3695,9 +3875,11 @@ enum bpf_task_fd_type {
|
|||
BPF_FD_TYPE_URETPROBE, /* filename + offset */
|
||||
};
|
||||
|
||||
#define BPF_FLOW_DISSECTOR_F_PARSE_1ST_FRAG (1U << 0)
|
||||
#define BPF_FLOW_DISSECTOR_F_STOP_AT_FLOW_LABEL (1U << 1)
|
||||
#define BPF_FLOW_DISSECTOR_F_STOP_AT_ENCAP (1U << 2)
|
||||
enum {
|
||||
BPF_FLOW_DISSECTOR_F_PARSE_1ST_FRAG = (1U << 0),
|
||||
BPF_FLOW_DISSECTOR_F_STOP_AT_FLOW_LABEL = (1U << 1),
|
||||
BPF_FLOW_DISSECTOR_F_STOP_AT_ENCAP = (1U << 2),
|
||||
};
|
||||
|
||||
struct bpf_flow_keys {
|
||||
__u16 nhoff;
|
||||
|
|
@ -3763,4 +3945,8 @@ struct bpf_sockopt {
|
|||
__s32 retval;
|
||||
};
|
||||
|
||||
struct bpf_pidns_info {
|
||||
__u32 pid;
|
||||
__u32 tgid;
|
||||
};
|
||||
#endif /* _UAPI__LINUX_BPF_H__ */
|
||||
|
|
|
|||
|
|
@ -36,17 +36,24 @@ struct btrfs_ioctl_vol_args {
|
|||
#define BTRFS_DEVICE_PATH_NAME_MAX 1024
|
||||
#define BTRFS_SUBVOL_NAME_MAX 4039
|
||||
|
||||
#define BTRFS_SUBVOL_CREATE_ASYNC (1ULL << 0)
|
||||
/*
|
||||
* Deprecated since 5.7:
|
||||
*
|
||||
* BTRFS_SUBVOL_CREATE_ASYNC (1ULL << 0)
|
||||
*/
|
||||
|
||||
#define BTRFS_SUBVOL_RDONLY (1ULL << 1)
|
||||
#define BTRFS_SUBVOL_QGROUP_INHERIT (1ULL << 2)
|
||||
|
||||
#define BTRFS_DEVICE_SPEC_BY_ID (1ULL << 3)
|
||||
|
||||
#define BTRFS_SUBVOL_SPEC_BY_ID (1ULL << 4)
|
||||
|
||||
#define BTRFS_VOL_ARG_V2_FLAGS_SUPPORTED \
|
||||
(BTRFS_SUBVOL_CREATE_ASYNC | \
|
||||
BTRFS_SUBVOL_RDONLY | \
|
||||
(BTRFS_SUBVOL_RDONLY | \
|
||||
BTRFS_SUBVOL_QGROUP_INHERIT | \
|
||||
BTRFS_DEVICE_SPEC_BY_ID)
|
||||
BTRFS_DEVICE_SPEC_BY_ID | \
|
||||
BTRFS_SUBVOL_SPEC_BY_ID)
|
||||
|
||||
#define BTRFS_FSID_SIZE 16
|
||||
#define BTRFS_UUID_SIZE 16
|
||||
|
|
@ -97,16 +104,29 @@ struct btrfs_ioctl_qgroup_limit_args {
|
|||
};
|
||||
|
||||
/*
|
||||
* flags for subvolumes
|
||||
* Arguments for specification of subvolumes or devices, supporting by-name or
|
||||
* by-id and flags
|
||||
*
|
||||
* Used by:
|
||||
* struct btrfs_ioctl_vol_args_v2.flags
|
||||
* The set of supported flags depends on the ioctl
|
||||
*
|
||||
* BTRFS_SUBVOL_RDONLY is also provided/consumed by the following ioctls:
|
||||
* - BTRFS_IOC_SUBVOL_GETFLAGS
|
||||
* - BTRFS_IOC_SUBVOL_SETFLAGS
|
||||
*/
|
||||
|
||||
/* Supported flags for BTRFS_IOC_RM_DEV_V2 */
|
||||
#define BTRFS_DEVICE_REMOVE_ARGS_MASK \
|
||||
(BTRFS_DEVICE_SPEC_BY_ID)
|
||||
|
||||
/* Supported flags for BTRFS_IOC_SNAP_CREATE_V2 and BTRFS_IOC_SUBVOL_CREATE_V2 */
|
||||
#define BTRFS_SUBVOL_CREATE_ARGS_MASK \
|
||||
(BTRFS_SUBVOL_RDONLY | \
|
||||
BTRFS_SUBVOL_QGROUP_INHERIT)
|
||||
|
||||
/* Supported flags for BTRFS_IOC_SNAP_DESTROY_V2 */
|
||||
#define BTRFS_SUBVOL_DELETE_ARGS_MASK \
|
||||
(BTRFS_SUBVOL_SPEC_BY_ID)
|
||||
|
||||
struct btrfs_ioctl_vol_args_v2 {
|
||||
__s64 fd;
|
||||
__u64 transid;
|
||||
|
|
@ -121,6 +141,7 @@ struct btrfs_ioctl_vol_args_v2 {
|
|||
union {
|
||||
char name[BTRFS_SUBVOL_NAME_MAX + 1];
|
||||
__u64 devid;
|
||||
__u64 subvolid;
|
||||
};
|
||||
};
|
||||
|
||||
|
|
@ -949,5 +970,7 @@ enum btrfs_err_code {
|
|||
struct btrfs_ioctl_get_subvol_rootref_args)
|
||||
#define BTRFS_IOC_INO_LOOKUP_USER _IOWR(BTRFS_IOCTL_MAGIC, 62, \
|
||||
struct btrfs_ioctl_ino_lookup_user_args)
|
||||
#define BTRFS_IOC_SNAP_DESTROY_V2 _IOW(BTRFS_IOCTL_MAGIC, 63, \
|
||||
struct btrfs_ioctl_vol_args_v2)
|
||||
|
||||
#endif /* _UAPI_LINUX_BTRFS_H */
|
||||
|
|
|
|||
|
|
@ -2,8 +2,10 @@
|
|||
#ifndef __UAPI_CORESIGHT_STM_H_
|
||||
#define __UAPI_CORESIGHT_STM_H_
|
||||
|
||||
#define STM_FLAG_TIMESTAMPED BIT(3)
|
||||
#define STM_FLAG_GUARANTEED BIT(7)
|
||||
#include <linux/const.h>
|
||||
|
||||
#define STM_FLAG_TIMESTAMPED _BITUL(3)
|
||||
#define STM_FLAG_GUARANTEED _BITUL(7)
|
||||
|
||||
/*
|
||||
* The CoreSight STM supports guaranteed and invariant timing
|
||||
|
|
|
|||
|
|
@ -117,6 +117,11 @@ enum devlink_command {
|
|||
DEVLINK_CMD_TRAP_GROUP_NEW,
|
||||
DEVLINK_CMD_TRAP_GROUP_DEL,
|
||||
|
||||
DEVLINK_CMD_TRAP_POLICER_GET, /* can dump */
|
||||
DEVLINK_CMD_TRAP_POLICER_SET,
|
||||
DEVLINK_CMD_TRAP_POLICER_NEW,
|
||||
DEVLINK_CMD_TRAP_POLICER_DEL,
|
||||
|
||||
/* add new commands above here */
|
||||
__DEVLINK_CMD_MAX,
|
||||
DEVLINK_CMD_MAX = __DEVLINK_CMD_MAX - 1
|
||||
|
|
@ -187,6 +192,7 @@ enum devlink_port_flavour {
|
|||
* for the PCI VF. It is an internal
|
||||
* port that faces the PCI VF.
|
||||
*/
|
||||
DEVLINK_PORT_FLAVOUR_VIRTUAL, /* Any virtual port facing the user. */
|
||||
};
|
||||
|
||||
enum devlink_param_cmode {
|
||||
|
|
@ -216,6 +222,7 @@ enum devlink_param_reset_dev_on_drv_probe_value {
|
|||
enum {
|
||||
DEVLINK_ATTR_STATS_RX_PACKETS, /* u64 */
|
||||
DEVLINK_ATTR_STATS_RX_BYTES, /* u64 */
|
||||
DEVLINK_ATTR_STATS_RX_DROPPED, /* u64 */
|
||||
|
||||
__DEVLINK_ATTR_STATS_MAX,
|
||||
DEVLINK_ATTR_STATS_MAX = __DEVLINK_ATTR_STATS_MAX - 1
|
||||
|
|
@ -252,6 +259,8 @@ enum devlink_trap_type {
|
|||
enum {
|
||||
/* Trap can report input port as metadata */
|
||||
DEVLINK_ATTR_TRAP_METADATA_TYPE_IN_PORT,
|
||||
/* Trap can report flow action cookie as metadata */
|
||||
DEVLINK_ATTR_TRAP_METADATA_TYPE_FA_COOKIE,
|
||||
};
|
||||
|
||||
enum devlink_attr {
|
||||
|
|
@ -426,6 +435,13 @@ enum devlink_attr {
|
|||
DEVLINK_ATTR_NETNS_FD, /* u32 */
|
||||
DEVLINK_ATTR_NETNS_PID, /* u32 */
|
||||
DEVLINK_ATTR_NETNS_ID, /* u32 */
|
||||
|
||||
DEVLINK_ATTR_HEALTH_REPORTER_AUTO_DUMP, /* u8 */
|
||||
|
||||
DEVLINK_ATTR_TRAP_POLICER_ID, /* u32 */
|
||||
DEVLINK_ATTR_TRAP_POLICER_RATE, /* u64 */
|
||||
DEVLINK_ATTR_TRAP_POLICER_BURST, /* u64 */
|
||||
|
||||
/* add new attributes above here, update the policy in devlink.c */
|
||||
|
||||
__DEVLINK_ATTR_MAX,
|
||||
|
|
|
|||
|
|
@ -272,9 +272,9 @@ enum {
|
|||
#define DM_DEV_SET_GEOMETRY _IOWR(DM_IOCTL, DM_DEV_SET_GEOMETRY_CMD, struct dm_ioctl)
|
||||
|
||||
#define DM_VERSION_MAJOR 4
|
||||
#define DM_VERSION_MINOR 41
|
||||
#define DM_VERSION_MINOR 42
|
||||
#define DM_VERSION_PATCHLEVEL 0
|
||||
#define DM_VERSION_EXTRA "-ioctl (2019-09-16)"
|
||||
#define DM_VERSION_EXTRA "-ioctl (2020-02-27)"
|
||||
|
||||
/* Status bits */
|
||||
#define DM_READONLY_FLAG (1 << 0) /* In/Out */
|
||||
|
|
|
|||
|
|
@ -596,6 +596,9 @@ struct ethtool_pauseparam {
|
|||
* @ETH_SS_LINK_MODES: link mode names
|
||||
* @ETH_SS_MSG_CLASSES: debug message class names
|
||||
* @ETH_SS_WOL_MODES: wake-on-lan modes
|
||||
* @ETH_SS_SOF_TIMESTAMPING: SOF_TIMESTAMPING_* flags
|
||||
* @ETH_SS_TS_TX_TYPES: timestamping Tx types
|
||||
* @ETH_SS_TS_RX_FILTERS: timestamping Rx filters
|
||||
*/
|
||||
enum ethtool_stringset {
|
||||
ETH_SS_TEST = 0,
|
||||
|
|
@ -610,6 +613,9 @@ enum ethtool_stringset {
|
|||
ETH_SS_LINK_MODES,
|
||||
ETH_SS_MSG_CLASSES,
|
||||
ETH_SS_WOL_MODES,
|
||||
ETH_SS_SOF_TIMESTAMPING,
|
||||
ETH_SS_TS_TX_TYPES,
|
||||
ETH_SS_TS_RX_FILTERS,
|
||||
|
||||
/* add new constants above here */
|
||||
ETH_SS_COUNT
|
||||
|
|
@ -1330,6 +1336,7 @@ enum ethtool_fec_config_bits {
|
|||
ETHTOOL_FEC_OFF_BIT,
|
||||
ETHTOOL_FEC_RS_BIT,
|
||||
ETHTOOL_FEC_BASER_BIT,
|
||||
ETHTOOL_FEC_LLRS_BIT,
|
||||
};
|
||||
|
||||
#define ETHTOOL_FEC_NONE (1 << ETHTOOL_FEC_NONE_BIT)
|
||||
|
|
@ -1337,6 +1344,7 @@ enum ethtool_fec_config_bits {
|
|||
#define ETHTOOL_FEC_OFF (1 << ETHTOOL_FEC_OFF_BIT)
|
||||
#define ETHTOOL_FEC_RS (1 << ETHTOOL_FEC_RS_BIT)
|
||||
#define ETHTOOL_FEC_BASER (1 << ETHTOOL_FEC_BASER_BIT)
|
||||
#define ETHTOOL_FEC_LLRS (1 << ETHTOOL_FEC_LLRS_BIT)
|
||||
|
||||
/* CMDs currently supported */
|
||||
#define ETHTOOL_GSET 0x00000001 /* DEPRECATED, Get settings.
|
||||
|
|
@ -1521,7 +1529,7 @@ enum ethtool_link_mode_bit_indices {
|
|||
ETHTOOL_LINK_MODE_400000baseLR8_ER8_FR8_Full_BIT = 71,
|
||||
ETHTOOL_LINK_MODE_400000baseDR8_Full_BIT = 72,
|
||||
ETHTOOL_LINK_MODE_400000baseCR8_Full_BIT = 73,
|
||||
|
||||
ETHTOOL_LINK_MODE_FEC_LLRS_BIT = 74,
|
||||
/* must be last entry */
|
||||
__ETHTOOL_LINK_MODE_MASK_NBITS
|
||||
};
|
||||
|
|
|
|||
|
|
@ -24,6 +24,21 @@ enum {
|
|||
ETHTOOL_MSG_DEBUG_SET,
|
||||
ETHTOOL_MSG_WOL_GET,
|
||||
ETHTOOL_MSG_WOL_SET,
|
||||
ETHTOOL_MSG_FEATURES_GET,
|
||||
ETHTOOL_MSG_FEATURES_SET,
|
||||
ETHTOOL_MSG_PRIVFLAGS_GET,
|
||||
ETHTOOL_MSG_PRIVFLAGS_SET,
|
||||
ETHTOOL_MSG_RINGS_GET,
|
||||
ETHTOOL_MSG_RINGS_SET,
|
||||
ETHTOOL_MSG_CHANNELS_GET,
|
||||
ETHTOOL_MSG_CHANNELS_SET,
|
||||
ETHTOOL_MSG_COALESCE_GET,
|
||||
ETHTOOL_MSG_COALESCE_SET,
|
||||
ETHTOOL_MSG_PAUSE_GET,
|
||||
ETHTOOL_MSG_PAUSE_SET,
|
||||
ETHTOOL_MSG_EEE_GET,
|
||||
ETHTOOL_MSG_EEE_SET,
|
||||
ETHTOOL_MSG_TSINFO_GET,
|
||||
|
||||
/* add new constants above here */
|
||||
__ETHTOOL_MSG_USER_CNT,
|
||||
|
|
@ -43,6 +58,22 @@ enum {
|
|||
ETHTOOL_MSG_DEBUG_NTF,
|
||||
ETHTOOL_MSG_WOL_GET_REPLY,
|
||||
ETHTOOL_MSG_WOL_NTF,
|
||||
ETHTOOL_MSG_FEATURES_GET_REPLY,
|
||||
ETHTOOL_MSG_FEATURES_SET_REPLY,
|
||||
ETHTOOL_MSG_FEATURES_NTF,
|
||||
ETHTOOL_MSG_PRIVFLAGS_GET_REPLY,
|
||||
ETHTOOL_MSG_PRIVFLAGS_NTF,
|
||||
ETHTOOL_MSG_RINGS_GET_REPLY,
|
||||
ETHTOOL_MSG_RINGS_NTF,
|
||||
ETHTOOL_MSG_CHANNELS_GET_REPLY,
|
||||
ETHTOOL_MSG_CHANNELS_NTF,
|
||||
ETHTOOL_MSG_COALESCE_GET_REPLY,
|
||||
ETHTOOL_MSG_COALESCE_NTF,
|
||||
ETHTOOL_MSG_PAUSE_GET_REPLY,
|
||||
ETHTOOL_MSG_PAUSE_NTF,
|
||||
ETHTOOL_MSG_EEE_GET_REPLY,
|
||||
ETHTOOL_MSG_EEE_NTF,
|
||||
ETHTOOL_MSG_TSINFO_GET_REPLY,
|
||||
|
||||
/* add new constants above here */
|
||||
__ETHTOOL_MSG_KERNEL_CNT,
|
||||
|
|
@ -228,6 +259,150 @@ enum {
|
|||
ETHTOOL_A_WOL_MAX = __ETHTOOL_A_WOL_CNT - 1
|
||||
};
|
||||
|
||||
/* FEATURES */
|
||||
|
||||
enum {
|
||||
ETHTOOL_A_FEATURES_UNSPEC,
|
||||
ETHTOOL_A_FEATURES_HEADER, /* nest - _A_HEADER_* */
|
||||
ETHTOOL_A_FEATURES_HW, /* bitset */
|
||||
ETHTOOL_A_FEATURES_WANTED, /* bitset */
|
||||
ETHTOOL_A_FEATURES_ACTIVE, /* bitset */
|
||||
ETHTOOL_A_FEATURES_NOCHANGE, /* bitset */
|
||||
|
||||
/* add new constants above here */
|
||||
__ETHTOOL_A_FEATURES_CNT,
|
||||
ETHTOOL_A_FEATURES_MAX = __ETHTOOL_A_FEATURES_CNT - 1
|
||||
};
|
||||
|
||||
/* PRIVFLAGS */
|
||||
|
||||
enum {
|
||||
ETHTOOL_A_PRIVFLAGS_UNSPEC,
|
||||
ETHTOOL_A_PRIVFLAGS_HEADER, /* nest - _A_HEADER_* */
|
||||
ETHTOOL_A_PRIVFLAGS_FLAGS, /* bitset */
|
||||
|
||||
/* add new constants above here */
|
||||
__ETHTOOL_A_PRIVFLAGS_CNT,
|
||||
ETHTOOL_A_PRIVFLAGS_MAX = __ETHTOOL_A_PRIVFLAGS_CNT - 1
|
||||
};
|
||||
|
||||
/* RINGS */
|
||||
|
||||
enum {
|
||||
ETHTOOL_A_RINGS_UNSPEC,
|
||||
ETHTOOL_A_RINGS_HEADER, /* nest - _A_HEADER_* */
|
||||
ETHTOOL_A_RINGS_RX_MAX, /* u32 */
|
||||
ETHTOOL_A_RINGS_RX_MINI_MAX, /* u32 */
|
||||
ETHTOOL_A_RINGS_RX_JUMBO_MAX, /* u32 */
|
||||
ETHTOOL_A_RINGS_TX_MAX, /* u32 */
|
||||
ETHTOOL_A_RINGS_RX, /* u32 */
|
||||
ETHTOOL_A_RINGS_RX_MINI, /* u32 */
|
||||
ETHTOOL_A_RINGS_RX_JUMBO, /* u32 */
|
||||
ETHTOOL_A_RINGS_TX, /* u32 */
|
||||
|
||||
/* add new constants above here */
|
||||
__ETHTOOL_A_RINGS_CNT,
|
||||
ETHTOOL_A_RINGS_MAX = (__ETHTOOL_A_RINGS_CNT - 1)
|
||||
};
|
||||
|
||||
/* CHANNELS */
|
||||
|
||||
enum {
|
||||
ETHTOOL_A_CHANNELS_UNSPEC,
|
||||
ETHTOOL_A_CHANNELS_HEADER, /* nest - _A_HEADER_* */
|
||||
ETHTOOL_A_CHANNELS_RX_MAX, /* u32 */
|
||||
ETHTOOL_A_CHANNELS_TX_MAX, /* u32 */
|
||||
ETHTOOL_A_CHANNELS_OTHER_MAX, /* u32 */
|
||||
ETHTOOL_A_CHANNELS_COMBINED_MAX, /* u32 */
|
||||
ETHTOOL_A_CHANNELS_RX_COUNT, /* u32 */
|
||||
ETHTOOL_A_CHANNELS_TX_COUNT, /* u32 */
|
||||
ETHTOOL_A_CHANNELS_OTHER_COUNT, /* u32 */
|
||||
ETHTOOL_A_CHANNELS_COMBINED_COUNT, /* u32 */
|
||||
|
||||
/* add new constants above here */
|
||||
__ETHTOOL_A_CHANNELS_CNT,
|
||||
ETHTOOL_A_CHANNELS_MAX = (__ETHTOOL_A_CHANNELS_CNT - 1)
|
||||
};
|
||||
|
||||
/* COALESCE */
|
||||
|
||||
enum {
|
||||
ETHTOOL_A_COALESCE_UNSPEC,
|
||||
ETHTOOL_A_COALESCE_HEADER, /* nest - _A_HEADER_* */
|
||||
ETHTOOL_A_COALESCE_RX_USECS, /* u32 */
|
||||
ETHTOOL_A_COALESCE_RX_MAX_FRAMES, /* u32 */
|
||||
ETHTOOL_A_COALESCE_RX_USECS_IRQ, /* u32 */
|
||||
ETHTOOL_A_COALESCE_RX_MAX_FRAMES_IRQ, /* u32 */
|
||||
ETHTOOL_A_COALESCE_TX_USECS, /* u32 */
|
||||
ETHTOOL_A_COALESCE_TX_MAX_FRAMES, /* u32 */
|
||||
ETHTOOL_A_COALESCE_TX_USECS_IRQ, /* u32 */
|
||||
ETHTOOL_A_COALESCE_TX_MAX_FRAMES_IRQ, /* u32 */
|
||||
ETHTOOL_A_COALESCE_STATS_BLOCK_USECS, /* u32 */
|
||||
ETHTOOL_A_COALESCE_USE_ADAPTIVE_RX, /* u8 */
|
||||
ETHTOOL_A_COALESCE_USE_ADAPTIVE_TX, /* u8 */
|
||||
ETHTOOL_A_COALESCE_PKT_RATE_LOW, /* u32 */
|
||||
ETHTOOL_A_COALESCE_RX_USECS_LOW, /* u32 */
|
||||
ETHTOOL_A_COALESCE_RX_MAX_FRAMES_LOW, /* u32 */
|
||||
ETHTOOL_A_COALESCE_TX_USECS_LOW, /* u32 */
|
||||
ETHTOOL_A_COALESCE_TX_MAX_FRAMES_LOW, /* u32 */
|
||||
ETHTOOL_A_COALESCE_PKT_RATE_HIGH, /* u32 */
|
||||
ETHTOOL_A_COALESCE_RX_USECS_HIGH, /* u32 */
|
||||
ETHTOOL_A_COALESCE_RX_MAX_FRAMES_HIGH, /* u32 */
|
||||
ETHTOOL_A_COALESCE_TX_USECS_HIGH, /* u32 */
|
||||
ETHTOOL_A_COALESCE_TX_MAX_FRAMES_HIGH, /* u32 */
|
||||
ETHTOOL_A_COALESCE_RATE_SAMPLE_INTERVAL, /* u32 */
|
||||
|
||||
/* add new constants above here */
|
||||
__ETHTOOL_A_COALESCE_CNT,
|
||||
ETHTOOL_A_COALESCE_MAX = (__ETHTOOL_A_COALESCE_CNT - 1)
|
||||
};
|
||||
|
||||
/* PAUSE */
|
||||
|
||||
enum {
|
||||
ETHTOOL_A_PAUSE_UNSPEC,
|
||||
ETHTOOL_A_PAUSE_HEADER, /* nest - _A_HEADER_* */
|
||||
ETHTOOL_A_PAUSE_AUTONEG, /* u8 */
|
||||
ETHTOOL_A_PAUSE_RX, /* u8 */
|
||||
ETHTOOL_A_PAUSE_TX, /* u8 */
|
||||
|
||||
/* add new constants above here */
|
||||
__ETHTOOL_A_PAUSE_CNT,
|
||||
ETHTOOL_A_PAUSE_MAX = (__ETHTOOL_A_PAUSE_CNT - 1)
|
||||
};
|
||||
|
||||
/* EEE */
|
||||
|
||||
enum {
|
||||
ETHTOOL_A_EEE_UNSPEC,
|
||||
ETHTOOL_A_EEE_HEADER, /* nest - _A_HEADER_* */
|
||||
ETHTOOL_A_EEE_MODES_OURS, /* bitset */
|
||||
ETHTOOL_A_EEE_MODES_PEER, /* bitset */
|
||||
ETHTOOL_A_EEE_ACTIVE, /* u8 */
|
||||
ETHTOOL_A_EEE_ENABLED, /* u8 */
|
||||
ETHTOOL_A_EEE_TX_LPI_ENABLED, /* u8 */
|
||||
ETHTOOL_A_EEE_TX_LPI_TIMER, /* u32 */
|
||||
|
||||
/* add new constants above here */
|
||||
__ETHTOOL_A_EEE_CNT,
|
||||
ETHTOOL_A_EEE_MAX = (__ETHTOOL_A_EEE_CNT - 1)
|
||||
};
|
||||
|
||||
/* TSINFO */
|
||||
|
||||
enum {
|
||||
ETHTOOL_A_TSINFO_UNSPEC,
|
||||
ETHTOOL_A_TSINFO_HEADER, /* nest - _A_HEADER_* */
|
||||
ETHTOOL_A_TSINFO_TIMESTAMPING, /* bitset */
|
||||
ETHTOOL_A_TSINFO_TX_TYPES, /* bitset */
|
||||
ETHTOOL_A_TSINFO_RX_FILTERS, /* bitset */
|
||||
ETHTOOL_A_TSINFO_PHC_INDEX, /* u32 */
|
||||
|
||||
/* add new constants above here */
|
||||
__ETHTOOL_A_TSINFO_CNT,
|
||||
ETHTOOL_A_TSINFO_MAX = (__ETHTOOL_A_TSINFO_CNT - 1)
|
||||
};
|
||||
|
||||
/* generic netlink info */
|
||||
#define ETHTOOL_GENL_NAME "ethtool"
|
||||
#define ETHTOOL_GENL_VERSION 1
|
||||
|
|
|
|||
|
|
@ -24,10 +24,11 @@
|
|||
#define FAN_OPEN_PERM 0x00010000 /* File open in perm check */
|
||||
#define FAN_ACCESS_PERM 0x00020000 /* File accessed in perm check */
|
||||
#define FAN_OPEN_EXEC_PERM 0x00040000 /* File open/exec in perm check */
|
||||
#define FAN_DIR_MODIFY 0x00080000 /* Directory entry was modified */
|
||||
|
||||
#define FAN_ONDIR 0x40000000 /* event occurred against dir */
|
||||
#define FAN_EVENT_ON_CHILD 0x08000000 /* Interested in child events */
|
||||
|
||||
#define FAN_EVENT_ON_CHILD 0x08000000 /* interested in child events */
|
||||
#define FAN_ONDIR 0x40000000 /* Event occurred against dir */
|
||||
|
||||
/* helper events */
|
||||
#define FAN_CLOSE (FAN_CLOSE_WRITE | FAN_CLOSE_NOWRITE) /* close */
|
||||
|
|
@ -116,6 +117,7 @@ struct fanotify_event_metadata {
|
|||
};
|
||||
|
||||
#define FAN_EVENT_INFO_TYPE_FID 1
|
||||
#define FAN_EVENT_INFO_TYPE_DFID_NAME 2
|
||||
|
||||
/* Variable length info record following event metadata */
|
||||
struct fanotify_event_info_header {
|
||||
|
|
@ -124,7 +126,12 @@ struct fanotify_event_info_header {
|
|||
__u16 len;
|
||||
};
|
||||
|
||||
/* Unique file identifier info record */
|
||||
/*
|
||||
* Unique file identifier info record. This is used both for
|
||||
* FAN_EVENT_INFO_TYPE_FID records and for FAN_EVENT_INFO_TYPE_DFID_NAME
|
||||
* records. For FAN_EVENT_INFO_TYPE_DFID_NAME there is additionally a null
|
||||
* terminated name immediately after the file handle.
|
||||
*/
|
||||
struct fanotify_event_info_fid {
|
||||
struct fanotify_event_info_header hdr;
|
||||
__kernel_fsid_t fsid;
|
||||
|
|
|
|||
|
|
@ -7,26 +7,18 @@
|
|||
* Handbook", Sanches and Canton.
|
||||
*/
|
||||
|
||||
#ifdef FDPATCHES
|
||||
#define FD_IOPORT fdc_state[fdc].address
|
||||
#else
|
||||
/* It would be a lot saner just to force fdc_state[fdc].address to always
|
||||
be set ! FIXME */
|
||||
#define FD_IOPORT 0x3f0
|
||||
#endif
|
||||
|
||||
/* Fd controller regs. S&C, about page 340 */
|
||||
#define FD_STATUS (4 + FD_IOPORT )
|
||||
#define FD_DATA (5 + FD_IOPORT )
|
||||
#define FD_STATUS 4
|
||||
#define FD_DATA 5
|
||||
|
||||
/* Digital Output Register */
|
||||
#define FD_DOR (2 + FD_IOPORT )
|
||||
#define FD_DOR 2
|
||||
|
||||
/* Digital Input Register (read) */
|
||||
#define FD_DIR (7 + FD_IOPORT )
|
||||
#define FD_DIR 7
|
||||
|
||||
/* Diskette Control Register (write)*/
|
||||
#define FD_DCR (7 + FD_IOPORT )
|
||||
#define FD_DCR 7
|
||||
|
||||
/* Bits of main status register */
|
||||
#define STATUS_BUSYMASK 0x0F /* drive busy mask */
|
||||
|
|
|
|||
|
|
@ -163,6 +163,7 @@ struct fscrypt_get_key_status_arg {
|
|||
#define FS_IOC_REMOVE_ENCRYPTION_KEY _IOWR('f', 24, struct fscrypt_remove_key_arg)
|
||||
#define FS_IOC_REMOVE_ENCRYPTION_KEY_ALL_USERS _IOWR('f', 25, struct fscrypt_remove_key_arg)
|
||||
#define FS_IOC_GET_ENCRYPTION_KEY_STATUS _IOWR('f', 26, struct fscrypt_get_key_status_arg)
|
||||
#define FS_IOC_GET_ENCRYPTION_NONCE _IOR('f', 27, __u8[16])
|
||||
|
||||
/**********************************************************************/
|
||||
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@
|
|||
* struct gpiochip_info - Information about a certain GPIO chip
|
||||
* @name: the Linux kernel name of this GPIO chip
|
||||
* @label: a functional name for this GPIO chip, such as a product
|
||||
* number, may be NULL
|
||||
* number, may be empty
|
||||
* @lines: number of GPIO lines on this chip
|
||||
*/
|
||||
struct gpiochip_info {
|
||||
|
|
@ -44,10 +44,10 @@ struct gpiochip_info {
|
|||
* @flags: various flags for this line
|
||||
* @name: the name of this GPIO line, such as the output pin of the line on the
|
||||
* chip, a rail or a pin header name on a board, as specified by the gpio
|
||||
* chip, may be NULL
|
||||
* chip, may be empty
|
||||
* @consumer: a functional name for the consumer of this GPIO line as set by
|
||||
* whatever is using it, will be NULL if there is no current user but may
|
||||
* also be NULL if the consumer doesn't set this up
|
||||
* whatever is using it, will be empty if there is no current user but may
|
||||
* also be empty if the consumer doesn't set this up
|
||||
*/
|
||||
struct gpioline_info {
|
||||
__u32 line_offset;
|
||||
|
|
@ -59,6 +59,34 @@ struct gpioline_info {
|
|||
/* Maximum number of requested handles */
|
||||
#define GPIOHANDLES_MAX 64
|
||||
|
||||
/* Possible line status change events */
|
||||
enum {
|
||||
GPIOLINE_CHANGED_REQUESTED = 1,
|
||||
GPIOLINE_CHANGED_RELEASED,
|
||||
GPIOLINE_CHANGED_CONFIG,
|
||||
};
|
||||
|
||||
/**
|
||||
* struct gpioline_info_changed - Information about a change in status
|
||||
* of a GPIO line
|
||||
* @info: updated line information
|
||||
* @timestamp: estimate of time of status change occurrence, in nanoseconds
|
||||
* and GPIOLINE_CHANGED_CONFIG
|
||||
* @event_type: one of GPIOLINE_CHANGED_REQUESTED, GPIOLINE_CHANGED_RELEASED
|
||||
*
|
||||
* Note: struct gpioline_info embedded here has 32-bit alignment on its own,
|
||||
* but it works fine with 64-bit alignment too. With its 72 byte size, we can
|
||||
* guarantee there are no implicit holes between it and subsequent members.
|
||||
* The 20-byte padding at the end makes sure we don't add any implicit padding
|
||||
* at the end of the structure on 64-bit architectures.
|
||||
*/
|
||||
struct gpioline_info_changed {
|
||||
struct gpioline_info info;
|
||||
__u64 timestamp;
|
||||
__u32 event_type;
|
||||
__u32 padding[5]; /* for future use */
|
||||
};
|
||||
|
||||
/* Linerequest flags */
|
||||
#define GPIOHANDLE_REQUEST_INPUT (1UL << 0)
|
||||
#define GPIOHANDLE_REQUEST_OUTPUT (1UL << 1)
|
||||
|
|
@ -176,6 +204,8 @@ struct gpioevent_data {
|
|||
|
||||
#define GPIO_GET_CHIPINFO_IOCTL _IOR(0xB4, 0x01, struct gpiochip_info)
|
||||
#define GPIO_GET_LINEINFO_IOCTL _IOWR(0xB4, 0x02, struct gpioline_info)
|
||||
#define GPIO_GET_LINEINFO_WATCH_IOCTL _IOWR(0xB4, 0x0b, struct gpioline_info)
|
||||
#define GPIO_GET_LINEINFO_UNWATCH_IOCTL _IOWR(0xB4, 0x0c, __u32)
|
||||
#define GPIO_GET_LINEHANDLE_IOCTL _IOWR(0xB4, 0x03, struct gpiohandle_request)
|
||||
#define GPIO_GET_LINEEVENT_IOCTL _IOWR(0xB4, 0x04, struct gpioevent_request)
|
||||
|
||||
|
|
|
|||
|
|
@ -83,21 +83,6 @@ enum dsa_completion_status {
|
|||
#define DSA_COMP_STATUS_MASK 0x7f
|
||||
#define DSA_COMP_STATUS_WRITE 0x80
|
||||
|
||||
struct dsa_batch_desc {
|
||||
uint32_t pasid:20;
|
||||
uint32_t rsvd:11;
|
||||
uint32_t priv:1;
|
||||
uint32_t flags:24;
|
||||
uint32_t opcode:8;
|
||||
uint64_t completion_addr;
|
||||
uint64_t desc_list_addr;
|
||||
uint64_t rsvd1;
|
||||
uint32_t desc_count;
|
||||
uint16_t interrupt_handle;
|
||||
uint16_t rsvd2;
|
||||
uint8_t rsvd3[24];
|
||||
} __attribute__((packed));
|
||||
|
||||
struct dsa_hw_desc {
|
||||
uint32_t pasid:20;
|
||||
uint32_t rsvd:11;
|
||||
|
|
@ -109,6 +94,7 @@ struct dsa_hw_desc {
|
|||
uint64_t src_addr;
|
||||
uint64_t rdback_addr;
|
||||
uint64_t pattern;
|
||||
uint64_t desc_list_addr;
|
||||
};
|
||||
union {
|
||||
uint64_t dst_addr;
|
||||
|
|
@ -116,7 +102,10 @@ struct dsa_hw_desc {
|
|||
uint64_t src2_addr;
|
||||
uint64_t comp_pattern;
|
||||
};
|
||||
uint32_t xfer_size;
|
||||
union {
|
||||
uint32_t xfer_size;
|
||||
uint32_t desc_count;
|
||||
};
|
||||
uint16_t int_handle;
|
||||
uint16_t rsvd1;
|
||||
union {
|
||||
|
|
|
|||
|
|
@ -60,7 +60,7 @@ struct arc_rfc1201 {
|
|||
__u8 proto; /* protocol ID field - varies */
|
||||
__u8 split_flag; /* for use with split packets */
|
||||
__be16 sequence; /* sequence number */
|
||||
__u8 payload[0]; /* space remaining in packet (504 bytes)*/
|
||||
__u8 payload[]; /* space remaining in packet (504 bytes)*/
|
||||
};
|
||||
#define RFC1201_HDR_SIZE 4
|
||||
|
||||
|
|
@ -69,7 +69,7 @@ struct arc_rfc1201 {
|
|||
*/
|
||||
struct arc_rfc1051 {
|
||||
__u8 proto; /* ARC_P_RFC1051_ARP/RFC1051_IP */
|
||||
__u8 payload[0]; /* 507 bytes */
|
||||
__u8 payload[]; /* 507 bytes */
|
||||
};
|
||||
#define RFC1051_HDR_SIZE 1
|
||||
|
||||
|
|
@ -80,7 +80,7 @@ struct arc_rfc1051 {
|
|||
struct arc_eth_encap {
|
||||
__u8 proto; /* Always ARC_P_ETHER */
|
||||
struct ethhdr eth; /* standard ethernet header (yuck!) */
|
||||
__u8 payload[0]; /* 493 bytes */
|
||||
__u8 payload[]; /* 493 bytes */
|
||||
};
|
||||
#define ETH_ENCAP_HDR_SIZE 14
|
||||
|
||||
|
|
|
|||
|
|
@ -174,6 +174,16 @@ struct br_vlan_msg {
|
|||
__u32 ifindex;
|
||||
};
|
||||
|
||||
enum {
|
||||
BRIDGE_VLANDB_DUMP_UNSPEC,
|
||||
BRIDGE_VLANDB_DUMP_FLAGS,
|
||||
__BRIDGE_VLANDB_DUMP_MAX,
|
||||
};
|
||||
#define BRIDGE_VLANDB_DUMP_MAX (__BRIDGE_VLANDB_DUMP_MAX - 1)
|
||||
|
||||
/* flags used in BRIDGE_VLANDB_DUMP_FLAGS attribute to affect dumps */
|
||||
#define BRIDGE_VLANDB_DUMPF_STATS (1 << 0) /* Include stats in the dump */
|
||||
|
||||
/* Bridge vlan RTM attributes
|
||||
* [BRIDGE_VLANDB_ENTRY] = {
|
||||
* [BRIDGE_VLANDB_ENTRY_INFO]
|
||||
|
|
@ -192,10 +202,46 @@ enum {
|
|||
BRIDGE_VLANDB_ENTRY_INFO,
|
||||
BRIDGE_VLANDB_ENTRY_RANGE,
|
||||
BRIDGE_VLANDB_ENTRY_STATE,
|
||||
BRIDGE_VLANDB_ENTRY_TUNNEL_INFO,
|
||||
BRIDGE_VLANDB_ENTRY_STATS,
|
||||
__BRIDGE_VLANDB_ENTRY_MAX,
|
||||
};
|
||||
#define BRIDGE_VLANDB_ENTRY_MAX (__BRIDGE_VLANDB_ENTRY_MAX - 1)
|
||||
|
||||
/* [BRIDGE_VLANDB_ENTRY] = {
|
||||
* [BRIDGE_VLANDB_ENTRY_TUNNEL_INFO] = {
|
||||
* [BRIDGE_VLANDB_TINFO_ID]
|
||||
* ...
|
||||
* }
|
||||
* }
|
||||
*/
|
||||
enum {
|
||||
BRIDGE_VLANDB_TINFO_UNSPEC,
|
||||
BRIDGE_VLANDB_TINFO_ID,
|
||||
BRIDGE_VLANDB_TINFO_CMD,
|
||||
__BRIDGE_VLANDB_TINFO_MAX,
|
||||
};
|
||||
#define BRIDGE_VLANDB_TINFO_MAX (__BRIDGE_VLANDB_TINFO_MAX - 1)
|
||||
|
||||
/* [BRIDGE_VLANDB_ENTRY] = {
|
||||
* [BRIDGE_VLANDB_ENTRY_STATS] = {
|
||||
* [BRIDGE_VLANDB_STATS_RX_BYTES]
|
||||
* ...
|
||||
* }
|
||||
* ...
|
||||
* }
|
||||
*/
|
||||
enum {
|
||||
BRIDGE_VLANDB_STATS_UNSPEC,
|
||||
BRIDGE_VLANDB_STATS_RX_BYTES,
|
||||
BRIDGE_VLANDB_STATS_RX_PACKETS,
|
||||
BRIDGE_VLANDB_STATS_TX_BYTES,
|
||||
BRIDGE_VLANDB_STATS_TX_PACKETS,
|
||||
BRIDGE_VLANDB_STATS_PAD,
|
||||
__BRIDGE_VLANDB_STATS_MAX,
|
||||
};
|
||||
#define BRIDGE_VLANDB_STATS_MAX (__BRIDGE_VLANDB_STATS_MAX - 1)
|
||||
|
||||
/* Bridge multicast database attributes
|
||||
* [MDBA_MDB] = {
|
||||
* [MDBA_MDB_ENTRY] = {
|
||||
|
|
|
|||
|
|
@ -463,6 +463,7 @@ enum {
|
|||
IFLA_MACSEC_REPLAY_PROTECT,
|
||||
IFLA_MACSEC_VALIDATION,
|
||||
IFLA_MACSEC_PAD,
|
||||
IFLA_MACSEC_OFFLOAD,
|
||||
__IFLA_MACSEC_MAX,
|
||||
};
|
||||
|
||||
|
|
@ -489,6 +490,7 @@ enum macsec_validation_type {
|
|||
enum macsec_offload {
|
||||
MACSEC_OFFLOAD_OFF = 0,
|
||||
MACSEC_OFFLOAD_PHY = 1,
|
||||
MACSEC_OFFLOAD_MAC = 2,
|
||||
__MACSEC_OFFLOAD_END,
|
||||
MACSEC_OFFLOAD_MAX = __MACSEC_OFFLOAD_END - 1,
|
||||
};
|
||||
|
|
@ -590,6 +592,18 @@ enum ifla_geneve_df {
|
|||
GENEVE_DF_MAX = __GENEVE_DF_END - 1,
|
||||
};
|
||||
|
||||
/* Bareudp section */
|
||||
enum {
|
||||
IFLA_BAREUDP_UNSPEC,
|
||||
IFLA_BAREUDP_PORT,
|
||||
IFLA_BAREUDP_ETHERTYPE,
|
||||
IFLA_BAREUDP_SRCPORT_MIN,
|
||||
IFLA_BAREUDP_MULTIPROTO_MODE,
|
||||
__IFLA_BAREUDP_MAX
|
||||
};
|
||||
|
||||
#define IFLA_BAREUDP_MAX (__IFLA_BAREUDP_MAX - 1)
|
||||
|
||||
/* PPP section */
|
||||
enum {
|
||||
IFLA_PPP_UNSPEC,
|
||||
|
|
@ -960,11 +974,12 @@ enum {
|
|||
#define XDP_FLAGS_SKB_MODE (1U << 1)
|
||||
#define XDP_FLAGS_DRV_MODE (1U << 2)
|
||||
#define XDP_FLAGS_HW_MODE (1U << 3)
|
||||
#define XDP_FLAGS_REPLACE (1U << 4)
|
||||
#define XDP_FLAGS_MODES (XDP_FLAGS_SKB_MODE | \
|
||||
XDP_FLAGS_DRV_MODE | \
|
||||
XDP_FLAGS_HW_MODE)
|
||||
#define XDP_FLAGS_MASK (XDP_FLAGS_UPDATE_IF_NOEXIST | \
|
||||
XDP_FLAGS_MODES)
|
||||
XDP_FLAGS_MODES | XDP_FLAGS_REPLACE)
|
||||
|
||||
/* These are stored into IFLA_XDP_ATTACHED on dump. */
|
||||
enum {
|
||||
|
|
@ -984,6 +999,7 @@ enum {
|
|||
IFLA_XDP_DRV_PROG_ID,
|
||||
IFLA_XDP_SKB_PROG_ID,
|
||||
IFLA_XDP_HW_PROG_ID,
|
||||
IFLA_XDP_EXPECTED_FD,
|
||||
__IFLA_XDP_MAX,
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -22,9 +22,11 @@
|
|||
|
||||
#define MACSEC_KEYID_LEN 16
|
||||
|
||||
/* cipher IDs as per IEEE802.1AEbn-2011 */
|
||||
/* cipher IDs as per IEEE802.1AE-2018 (Table 14-1) */
|
||||
#define MACSEC_CIPHER_ID_GCM_AES_128 0x0080C20001000001ULL
|
||||
#define MACSEC_CIPHER_ID_GCM_AES_256 0x0080C20001000002ULL
|
||||
#define MACSEC_CIPHER_ID_GCM_AES_XPN_128 0x0080C20001000003ULL
|
||||
#define MACSEC_CIPHER_ID_GCM_AES_XPN_256 0x0080C20001000004ULL
|
||||
|
||||
/* deprecated cipher ID for GCM-AES-128 */
|
||||
#define MACSEC_DEFAULT_CIPHER_ID 0x0080020001000001ULL
|
||||
|
|
@ -88,11 +90,13 @@ enum macsec_sa_attrs {
|
|||
MACSEC_SA_ATTR_UNSPEC,
|
||||
MACSEC_SA_ATTR_AN, /* config/dump, u8 0..3 */
|
||||
MACSEC_SA_ATTR_ACTIVE, /* config/dump, u8 0..1 */
|
||||
MACSEC_SA_ATTR_PN, /* config/dump, u32 */
|
||||
MACSEC_SA_ATTR_PN, /* config/dump, u32/u64 (u64 if XPN) */
|
||||
MACSEC_SA_ATTR_KEY, /* config, data */
|
||||
MACSEC_SA_ATTR_KEYID, /* config/dump, 128-bit */
|
||||
MACSEC_SA_ATTR_STATS, /* dump, nested, macsec_sa_stats_attr */
|
||||
MACSEC_SA_ATTR_PAD,
|
||||
MACSEC_SA_ATTR_SSCI, /* config/dump, u32 - XPN only */
|
||||
MACSEC_SA_ATTR_SALT, /* config, 96-bit - XPN only */
|
||||
__MACSEC_SA_ATTR_END,
|
||||
NUM_MACSEC_SA_ATTR = __MACSEC_SA_ATTR_END,
|
||||
MACSEC_SA_ATTR_MAX = __MACSEC_SA_ATTR_END - 1,
|
||||
|
|
|
|||
|
|
@ -74,6 +74,8 @@ enum {
|
|||
#define IPPROTO_UDPLITE IPPROTO_UDPLITE
|
||||
IPPROTO_MPLS = 137, /* MPLS in IP (RFC 4023) */
|
||||
#define IPPROTO_MPLS IPPROTO_MPLS
|
||||
IPPROTO_ETHERNET = 143, /* Ethernet-within-IPv6 Encapsulation */
|
||||
#define IPPROTO_ETHERNET IPPROTO_ETHERNET
|
||||
IPPROTO_RAW = 255, /* Raw IP packets */
|
||||
#define IPPROTO_RAW IPPROTO_RAW
|
||||
IPPROTO_MPTCP = 262, /* Multipath TCP connection */
|
||||
|
|
|
|||
|
|
@ -64,9 +64,11 @@ struct inet_diag_req_raw {
|
|||
enum {
|
||||
INET_DIAG_REQ_NONE,
|
||||
INET_DIAG_REQ_BYTECODE,
|
||||
INET_DIAG_REQ_SK_BPF_STORAGES,
|
||||
__INET_DIAG_REQ_MAX,
|
||||
};
|
||||
|
||||
#define INET_DIAG_REQ_MAX INET_DIAG_REQ_BYTECODE
|
||||
#define INET_DIAG_REQ_MAX (__INET_DIAG_REQ_MAX - 1)
|
||||
|
||||
/* Bytecode is sequence of 4 byte commands followed by variable arguments.
|
||||
* All the commands identified by "code" are conditional jumps forward:
|
||||
|
|
@ -154,6 +156,7 @@ enum {
|
|||
INET_DIAG_CLASS_ID, /* request as INET_DIAG_TCLASS */
|
||||
INET_DIAG_MD5SIG,
|
||||
INET_DIAG_ULP_INFO,
|
||||
INET_DIAG_SK_BPF_STORAGES,
|
||||
__INET_DIAG_MAX,
|
||||
};
|
||||
|
||||
|
|
@ -163,6 +166,7 @@ enum {
|
|||
INET_ULP_INFO_UNSPEC,
|
||||
INET_ULP_INFO_NAME,
|
||||
INET_ULP_INFO_TLS,
|
||||
INET_ULP_INFO_MPTCP,
|
||||
__INET_ULP_INFO_MAX,
|
||||
};
|
||||
#define INET_ULP_INFO_MAX (__INET_ULP_INFO_MAX - 1)
|
||||
|
|
|
|||
|
|
@ -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 */
|
||||
/*
|
||||
* Input event codes
|
||||
*
|
||||
|
|
@ -652,6 +652,9 @@
|
|||
/* Electronic privacy screen control */
|
||||
#define KEY_PRIVACY_SCREEN_TOGGLE 0x279
|
||||
|
||||
/* Select an area of screen to be copied */
|
||||
#define KEY_SELECTIVE_SCREENSHOT 0x27a
|
||||
|
||||
/*
|
||||
* 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
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
|
||||
/* SPDX-License-Identifier: (GPL-2.0 WITH Linux-syscall-note) OR MIT */
|
||||
/*
|
||||
* Header file for the io_uring interface.
|
||||
*
|
||||
|
|
@ -23,7 +23,10 @@ struct io_uring_sqe {
|
|||
__u64 off; /* offset into file */
|
||||
__u64 addr2;
|
||||
};
|
||||
__u64 addr; /* pointer to buffer or iovecs */
|
||||
union {
|
||||
__u64 addr; /* pointer to buffer or iovecs */
|
||||
__u64 splice_off_in;
|
||||
};
|
||||
__u32 len; /* buffer size or number of iovecs */
|
||||
union {
|
||||
__kernel_rwf_t rw_flags;
|
||||
|
|
@ -37,14 +40,21 @@ struct io_uring_sqe {
|
|||
__u32 open_flags;
|
||||
__u32 statx_flags;
|
||||
__u32 fadvise_advice;
|
||||
__u32 splice_flags;
|
||||
};
|
||||
__u64 user_data; /* data to be passed back at completion time */
|
||||
union {
|
||||
struct {
|
||||
/* index into fixed buffers, if used */
|
||||
__u16 buf_index;
|
||||
/* pack this to avoid bogus arm OABI complaints */
|
||||
union {
|
||||
/* index into fixed buffers, if used */
|
||||
__u16 buf_index;
|
||||
/* for grouped buffer selection */
|
||||
__u16 buf_group;
|
||||
} __attribute__((packed));
|
||||
/* personality to use, if used */
|
||||
__u16 personality;
|
||||
__s32 splice_fd_in;
|
||||
};
|
||||
__u64 __pad2[3];
|
||||
};
|
||||
|
|
@ -56,6 +66,7 @@ enum {
|
|||
IOSQE_IO_LINK_BIT,
|
||||
IOSQE_IO_HARDLINK_BIT,
|
||||
IOSQE_ASYNC_BIT,
|
||||
IOSQE_BUFFER_SELECT_BIT,
|
||||
};
|
||||
|
||||
/*
|
||||
|
|
@ -71,6 +82,8 @@ enum {
|
|||
#define IOSQE_IO_HARDLINK (1U << IOSQE_IO_HARDLINK_BIT)
|
||||
/* always go async */
|
||||
#define IOSQE_ASYNC (1U << IOSQE_ASYNC_BIT)
|
||||
/* select buffer from sqe->buf_group */
|
||||
#define IOSQE_BUFFER_SELECT (1U << IOSQE_BUFFER_SELECT_BIT)
|
||||
|
||||
/*
|
||||
* io_uring_setup() flags
|
||||
|
|
@ -113,6 +126,9 @@ enum {
|
|||
IORING_OP_RECV,
|
||||
IORING_OP_OPENAT2,
|
||||
IORING_OP_EPOLL_CTL,
|
||||
IORING_OP_SPLICE,
|
||||
IORING_OP_PROVIDE_BUFFERS,
|
||||
IORING_OP_REMOVE_BUFFERS,
|
||||
|
||||
/* this goes last, obviously */
|
||||
IORING_OP_LAST,
|
||||
|
|
@ -128,6 +144,12 @@ enum {
|
|||
*/
|
||||
#define IORING_TIMEOUT_ABS (1U << 0)
|
||||
|
||||
/*
|
||||
* sqe->splice_flags
|
||||
* extends splice(2) flags
|
||||
*/
|
||||
#define SPLICE_F_FD_IN_FIXED (1U << 31) /* the last bit of __u32 */
|
||||
|
||||
/*
|
||||
* IO completion data structure (Completion Queue Entry)
|
||||
*/
|
||||
|
|
@ -137,6 +159,17 @@ struct io_uring_cqe {
|
|||
__u32 flags;
|
||||
};
|
||||
|
||||
/*
|
||||
* cqe->flags
|
||||
*
|
||||
* IORING_CQE_F_BUFFER If set, the upper 16 bits are the buffer ID
|
||||
*/
|
||||
#define IORING_CQE_F_BUFFER (1U << 0)
|
||||
|
||||
enum {
|
||||
IORING_CQE_BUFFER_SHIFT = 16,
|
||||
};
|
||||
|
||||
/*
|
||||
* Magic offsets for the application to mmap the data it needs
|
||||
*/
|
||||
|
|
@ -204,6 +237,7 @@ struct io_uring_params {
|
|||
#define IORING_FEAT_SUBMIT_STABLE (1U << 2)
|
||||
#define IORING_FEAT_RW_CUR_POS (1U << 3)
|
||||
#define IORING_FEAT_CUR_PERSONALITY (1U << 4)
|
||||
#define IORING_FEAT_FAST_POLL (1U << 5)
|
||||
|
||||
/*
|
||||
* io_uring_register(2) opcodes and arguments
|
||||
|
|
|
|||
|
|
@ -40,6 +40,7 @@ struct in6_ifreq {
|
|||
#define IPV6_SRCRT_STRICT 0x01 /* Deprecated; will be removed */
|
||||
#define IPV6_SRCRT_TYPE_0 0 /* Deprecated; will be removed */
|
||||
#define IPV6_SRCRT_TYPE_2 2 /* IPv6 type 2 Routing Header */
|
||||
#define IPV6_SRCRT_TYPE_3 3 /* RPL Segment Routing with IPv6 */
|
||||
#define IPV6_SRCRT_TYPE_4 4 /* Segment Routing with IPv6 */
|
||||
|
||||
/*
|
||||
|
|
@ -187,6 +188,7 @@ enum {
|
|||
DEVCONF_DISABLE_POLICY,
|
||||
DEVCONF_ACCEPT_RA_RT_INFO_MIN_PLEN,
|
||||
DEVCONF_NDISC_TCLASS,
|
||||
DEVCONF_RPL_SEG_ENABLED,
|
||||
DEVCONF_MAX
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -474,12 +474,17 @@ struct kvm_s390_mem_op {
|
|||
__u32 size; /* amount of bytes */
|
||||
__u32 op; /* type of operation */
|
||||
__u64 buf; /* buffer in userspace */
|
||||
__u8 ar; /* the access register number */
|
||||
__u8 reserved[31]; /* should be set to 0 */
|
||||
union {
|
||||
__u8 ar; /* the access register number */
|
||||
__u32 sida_offset; /* offset into the sida */
|
||||
__u8 reserved[32]; /* should be set to 0 */
|
||||
};
|
||||
};
|
||||
/* types for kvm_s390_mem_op->op */
|
||||
#define KVM_S390_MEMOP_LOGICAL_READ 0
|
||||
#define KVM_S390_MEMOP_LOGICAL_WRITE 1
|
||||
#define KVM_S390_MEMOP_SIDA_READ 2
|
||||
#define KVM_S390_MEMOP_SIDA_WRITE 3
|
||||
/* flags for kvm_s390_mem_op->flags */
|
||||
#define KVM_S390_MEMOP_F_CHECK_ONLY (1ULL << 0)
|
||||
#define KVM_S390_MEMOP_F_INJECT_EXCEPTION (1ULL << 1)
|
||||
|
|
@ -1010,6 +1015,8 @@ struct kvm_ppc_resize_hpt {
|
|||
#define KVM_CAP_ARM_NISV_TO_USER 177
|
||||
#define KVM_CAP_ARM_INJECT_EXT_DABT 178
|
||||
#define KVM_CAP_S390_VCPU_RESETS 179
|
||||
#define KVM_CAP_S390_PROTECTED 180
|
||||
#define KVM_CAP_PPC_SECURE_GUEST 181
|
||||
|
||||
#ifdef KVM_CAP_IRQ_ROUTING
|
||||
|
||||
|
|
@ -1478,6 +1485,39 @@ struct kvm_enc_region {
|
|||
#define KVM_S390_NORMAL_RESET _IO(KVMIO, 0xc3)
|
||||
#define KVM_S390_CLEAR_RESET _IO(KVMIO, 0xc4)
|
||||
|
||||
struct kvm_s390_pv_sec_parm {
|
||||
__u64 origin;
|
||||
__u64 length;
|
||||
};
|
||||
|
||||
struct kvm_s390_pv_unp {
|
||||
__u64 addr;
|
||||
__u64 size;
|
||||
__u64 tweak;
|
||||
};
|
||||
|
||||
enum pv_cmd_id {
|
||||
KVM_PV_ENABLE,
|
||||
KVM_PV_DISABLE,
|
||||
KVM_PV_SET_SEC_PARMS,
|
||||
KVM_PV_UNPACK,
|
||||
KVM_PV_VERIFY,
|
||||
KVM_PV_PREP_RESET,
|
||||
KVM_PV_UNSHARE_ALL,
|
||||
};
|
||||
|
||||
struct kvm_pv_cmd {
|
||||
__u32 cmd; /* Command to be executed */
|
||||
__u16 rc; /* Ultravisor return code */
|
||||
__u16 rrc; /* Ultravisor return reason code */
|
||||
__u64 data; /* Data or address */
|
||||
__u32 flags; /* flags for future extensions. Must be 0 for now */
|
||||
__u32 reserved[3];
|
||||
};
|
||||
|
||||
/* Available with KVM_CAP_S390_PROTECTED */
|
||||
#define KVM_S390_PV_COMMAND _IOWR(KVMIO, 0xc5, struct kvm_pv_cmd)
|
||||
|
||||
/* Secure Encrypted Virtualization command */
|
||||
enum sev_cmd_id {
|
||||
/* Guest initialization commands */
|
||||
|
|
@ -1628,4 +1668,7 @@ struct kvm_hyperv_eventfd {
|
|||
#define KVM_HYPERV_CONN_ID_MASK 0x00ffffff
|
||||
#define KVM_HYPERV_EVENTFD_DEASSIGN (1 << 0)
|
||||
|
||||
#define KVM_DIRTY_LOG_MANUAL_PROTECT_ENABLE (1 << 0)
|
||||
#define KVM_DIRTY_LOG_INITIALLY_SET (1 << 1)
|
||||
|
||||
#endif /* __LINUX_KVM_H */
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@ enum lwtunnel_encap_types {
|
|||
LWTUNNEL_ENCAP_SEG6,
|
||||
LWTUNNEL_ENCAP_BPF,
|
||||
LWTUNNEL_ENCAP_SEG6_LOCAL,
|
||||
LWTUNNEL_ENCAP_RPL,
|
||||
__LWTUNNEL_ENCAP_MAX,
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -64,7 +64,7 @@
|
|||
#define MEDIA_BUS_FMT_RGB121212_1X36 0x1019
|
||||
#define MEDIA_BUS_FMT_RGB161616_1X48 0x101a
|
||||
|
||||
/* YUV (including grey) - next is 0x202d */
|
||||
/* YUV (including grey) - next is 0x202e */
|
||||
#define MEDIA_BUS_FMT_Y8_1X8 0x2001
|
||||
#define MEDIA_BUS_FMT_UV8_1X8 0x2015
|
||||
#define MEDIA_BUS_FMT_UYVY8_1_5X8 0x2002
|
||||
|
|
@ -86,6 +86,7 @@
|
|||
#define MEDIA_BUS_FMT_VYUY12_2X12 0x201d
|
||||
#define MEDIA_BUS_FMT_YUYV12_2X12 0x201e
|
||||
#define MEDIA_BUS_FMT_YVYU12_2X12 0x201f
|
||||
#define MEDIA_BUS_FMT_Y14_1X14 0x202d
|
||||
#define MEDIA_BUS_FMT_UYVY8_1X16 0x200f
|
||||
#define MEDIA_BUS_FMT_VYUY8_1X16 0x2010
|
||||
#define MEDIA_BUS_FMT_YUYV8_1X16 0x2011
|
||||
|
|
|
|||
|
|
@ -134,11 +134,16 @@
|
|||
/* MAC and PHY tx_config_Reg[15:0] for SGMII in-band auto-negotiation.*/
|
||||
#define ADVERTISE_SGMII 0x0001 /* MAC can do SGMII */
|
||||
#define LPA_SGMII 0x0001 /* PHY can do SGMII */
|
||||
#define LPA_SGMII_SPD_MASK 0x0c00 /* SGMII speed mask */
|
||||
#define LPA_SGMII_FULL_DUPLEX 0x1000 /* SGMII full duplex */
|
||||
#define LPA_SGMII_DPX_SPD_MASK 0x1C00 /* SGMII duplex and speed bits */
|
||||
#define LPA_SGMII_10 0x0000 /* 10Mbps */
|
||||
#define LPA_SGMII_10HALF 0x0000 /* Can do 10mbps half-duplex */
|
||||
#define LPA_SGMII_10FULL 0x1000 /* Can do 10mbps full-duplex */
|
||||
#define LPA_SGMII_100 0x0400 /* 100Mbps */
|
||||
#define LPA_SGMII_100HALF 0x0400 /* Can do 100mbps half-duplex */
|
||||
#define LPA_SGMII_100FULL 0x1400 /* Can do 100mbps full-duplex */
|
||||
#define LPA_SGMII_1000 0x0800 /* 1000Mbps */
|
||||
#define LPA_SGMII_1000HALF 0x0800 /* Can do 1000mbps half-duplex */
|
||||
#define LPA_SGMII_1000FULL 0x1800 /* Can do 1000mbps full-duplex */
|
||||
#define LPA_SGMII_LINK 0x8000 /* PHY link with copper-side partner */
|
||||
|
|
|
|||
|
|
@ -5,8 +5,9 @@
|
|||
#include <asm/mman.h>
|
||||
#include <asm-generic/hugetlb_encode.h>
|
||||
|
||||
#define MREMAP_MAYMOVE 1
|
||||
#define MREMAP_FIXED 2
|
||||
#define MREMAP_MAYMOVE 1
|
||||
#define MREMAP_FIXED 2
|
||||
#define MREMAP_DONTUNMAP 4
|
||||
|
||||
#define OVERCOMMIT_GUESS 0
|
||||
#define OVERCOMMIT_ALWAYS 1
|
||||
|
|
|
|||
|
|
@ -57,7 +57,7 @@ struct mmc_ioc_cmd {
|
|||
*/
|
||||
struct mmc_ioc_multi_cmd {
|
||||
__u64 num_of_cmds;
|
||||
struct mmc_ioc_cmd cmds[0];
|
||||
struct mmc_ioc_cmd cmds[];
|
||||
};
|
||||
|
||||
#define MMC_IOC_CMD _IOWR(MMC_BLOCK_MAJOR, 0, struct mmc_ioc_cmd)
|
||||
|
|
|
|||
89
include/uapi/linux/mptcp.h
Normal file
89
include/uapi/linux/mptcp.h
Normal file
|
|
@ -0,0 +1,89 @@
|
|||
/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */
|
||||
#ifndef _UAPI_MPTCP_H
|
||||
#define _UAPI_MPTCP_H
|
||||
|
||||
#include <linux/const.h>
|
||||
#include <linux/types.h>
|
||||
|
||||
#define MPTCP_SUBFLOW_FLAG_MCAP_REM _BITUL(0)
|
||||
#define MPTCP_SUBFLOW_FLAG_MCAP_LOC _BITUL(1)
|
||||
#define MPTCP_SUBFLOW_FLAG_JOIN_REM _BITUL(2)
|
||||
#define MPTCP_SUBFLOW_FLAG_JOIN_LOC _BITUL(3)
|
||||
#define MPTCP_SUBFLOW_FLAG_BKUP_REM _BITUL(4)
|
||||
#define MPTCP_SUBFLOW_FLAG_BKUP_LOC _BITUL(5)
|
||||
#define MPTCP_SUBFLOW_FLAG_FULLY_ESTABLISHED _BITUL(6)
|
||||
#define MPTCP_SUBFLOW_FLAG_CONNECTED _BITUL(7)
|
||||
#define MPTCP_SUBFLOW_FLAG_MAPVALID _BITUL(8)
|
||||
|
||||
enum {
|
||||
MPTCP_SUBFLOW_ATTR_UNSPEC,
|
||||
MPTCP_SUBFLOW_ATTR_TOKEN_REM,
|
||||
MPTCP_SUBFLOW_ATTR_TOKEN_LOC,
|
||||
MPTCP_SUBFLOW_ATTR_RELWRITE_SEQ,
|
||||
MPTCP_SUBFLOW_ATTR_MAP_SEQ,
|
||||
MPTCP_SUBFLOW_ATTR_MAP_SFSEQ,
|
||||
MPTCP_SUBFLOW_ATTR_SSN_OFFSET,
|
||||
MPTCP_SUBFLOW_ATTR_MAP_DATALEN,
|
||||
MPTCP_SUBFLOW_ATTR_FLAGS,
|
||||
MPTCP_SUBFLOW_ATTR_ID_REM,
|
||||
MPTCP_SUBFLOW_ATTR_ID_LOC,
|
||||
MPTCP_SUBFLOW_ATTR_PAD,
|
||||
__MPTCP_SUBFLOW_ATTR_MAX
|
||||
};
|
||||
|
||||
#define MPTCP_SUBFLOW_ATTR_MAX (__MPTCP_SUBFLOW_ATTR_MAX - 1)
|
||||
|
||||
/* netlink interface */
|
||||
#define MPTCP_PM_NAME "mptcp_pm"
|
||||
#define MPTCP_PM_CMD_GRP_NAME "mptcp_pm_cmds"
|
||||
#define MPTCP_PM_VER 0x1
|
||||
|
||||
/*
|
||||
* ATTR types defined for MPTCP
|
||||
*/
|
||||
enum {
|
||||
MPTCP_PM_ATTR_UNSPEC,
|
||||
|
||||
MPTCP_PM_ATTR_ADDR, /* nested address */
|
||||
MPTCP_PM_ATTR_RCV_ADD_ADDRS, /* u32 */
|
||||
MPTCP_PM_ATTR_SUBFLOWS, /* u32 */
|
||||
|
||||
__MPTCP_PM_ATTR_MAX
|
||||
};
|
||||
|
||||
#define MPTCP_PM_ATTR_MAX (__MPTCP_PM_ATTR_MAX - 1)
|
||||
|
||||
enum {
|
||||
MPTCP_PM_ADDR_ATTR_UNSPEC,
|
||||
|
||||
MPTCP_PM_ADDR_ATTR_FAMILY, /* u16 */
|
||||
MPTCP_PM_ADDR_ATTR_ID, /* u8 */
|
||||
MPTCP_PM_ADDR_ATTR_ADDR4, /* struct in_addr */
|
||||
MPTCP_PM_ADDR_ATTR_ADDR6, /* struct in6_addr */
|
||||
MPTCP_PM_ADDR_ATTR_PORT, /* u16 */
|
||||
MPTCP_PM_ADDR_ATTR_FLAGS, /* u32 */
|
||||
MPTCP_PM_ADDR_ATTR_IF_IDX, /* s32 */
|
||||
|
||||
__MPTCP_PM_ADDR_ATTR_MAX
|
||||
};
|
||||
|
||||
#define MPTCP_PM_ADDR_ATTR_MAX (__MPTCP_PM_ADDR_ATTR_MAX - 1)
|
||||
|
||||
#define MPTCP_PM_ADDR_FLAG_SIGNAL (1 << 0)
|
||||
#define MPTCP_PM_ADDR_FLAG_SUBFLOW (1 << 1)
|
||||
#define MPTCP_PM_ADDR_FLAG_BACKUP (1 << 2)
|
||||
|
||||
enum {
|
||||
MPTCP_PM_CMD_UNSPEC,
|
||||
|
||||
MPTCP_PM_CMD_ADD_ADDR,
|
||||
MPTCP_PM_CMD_DEL_ADDR,
|
||||
MPTCP_PM_CMD_GET_ADDR,
|
||||
MPTCP_PM_CMD_FLUSH_ADDRS,
|
||||
MPTCP_PM_CMD_SET_LIMITS,
|
||||
MPTCP_PM_CMD_GET_LIMITS,
|
||||
|
||||
__MPTCP_PM_CMD_AFTER_LAST
|
||||
};
|
||||
|
||||
#endif /* _UAPI_MPTCP_H */
|
||||
|
|
@ -29,12 +29,12 @@ struct net_dm_config_entry {
|
|||
|
||||
struct net_dm_config_msg {
|
||||
__u32 entries;
|
||||
struct net_dm_config_entry options[0];
|
||||
struct net_dm_config_entry options[];
|
||||
};
|
||||
|
||||
struct net_dm_alert_msg {
|
||||
__u32 entries;
|
||||
struct net_dm_drop_point points[0];
|
||||
struct net_dm_drop_point points[];
|
||||
};
|
||||
|
||||
struct net_dm_user_msg {
|
||||
|
|
@ -92,6 +92,7 @@ enum net_dm_attr {
|
|||
NET_DM_ATTR_HW_TRAP_COUNT, /* u32 */
|
||||
NET_DM_ATTR_SW_DROPS, /* flag */
|
||||
NET_DM_ATTR_HW_DROPS, /* flag */
|
||||
NET_DM_ATTR_FLOW_ACTION_COOKIE, /* binary */
|
||||
|
||||
__NET_DM_ATTR_MAX,
|
||||
NET_DM_ATTR_MAX = __NET_DM_ATTR_MAX - 1
|
||||
|
|
|
|||
|
|
@ -98,6 +98,9 @@ enum hwtstamp_tx_types {
|
|||
* receive a time stamp via the socket error queue.
|
||||
*/
|
||||
HWTSTAMP_TX_ONESTEP_P2P,
|
||||
|
||||
/* add new constants above here */
|
||||
__HWTSTAMP_TX_CNT
|
||||
};
|
||||
|
||||
/* possible values for hwtstamp_config->rx_filter */
|
||||
|
|
@ -140,6 +143,9 @@ enum hwtstamp_rx_filters {
|
|||
|
||||
/* NTP, UDP, all versions and packet modes */
|
||||
HWTSTAMP_FILTER_NTP_ALL,
|
||||
|
||||
/* add new constants above here */
|
||||
__HWTSTAMP_FILTER_CNT
|
||||
};
|
||||
|
||||
/* SCM_TIMESTAMPING_PKTINFO control message */
|
||||
|
|
|
|||
|
|
@ -97,6 +97,15 @@ enum ip_conntrack_status {
|
|||
IPS_UNTRACKED_BIT = 12,
|
||||
IPS_UNTRACKED = (1 << IPS_UNTRACKED_BIT),
|
||||
|
||||
#ifdef __KERNEL__
|
||||
/* Re-purposed for in-kernel use:
|
||||
* Tags a conntrack entry that clashed with an existing entry
|
||||
* on insert.
|
||||
*/
|
||||
IPS_NAT_CLASH_BIT = IPS_UNTRACKED_BIT,
|
||||
IPS_NAT_CLASH = IPS_UNTRACKED,
|
||||
#endif
|
||||
|
||||
/* Conntrack got a helper explicitly attached via CT target. */
|
||||
IPS_HELPER_BIT = 13,
|
||||
IPS_HELPER = (1 << IPS_HELPER_BIT),
|
||||
|
|
@ -110,7 +119,8 @@ enum ip_conntrack_status {
|
|||
*/
|
||||
IPS_UNCHANGEABLE_MASK = (IPS_NAT_DONE_MASK | IPS_NAT_MASK |
|
||||
IPS_EXPECTED | IPS_CONFIRMED | IPS_DYING |
|
||||
IPS_SEQ_ADJUST | IPS_TEMPLATE | IPS_OFFLOAD),
|
||||
IPS_SEQ_ADJUST | IPS_TEMPLATE | IPS_UNTRACKED |
|
||||
IPS_OFFLOAD),
|
||||
|
||||
__IPS_MAX_BIT = 15,
|
||||
};
|
||||
|
|
|
|||
|
|
@ -342,6 +342,7 @@ enum nft_set_field_attributes {
|
|||
* @NFTA_SET_USERDATA: user data (NLA_BINARY)
|
||||
* @NFTA_SET_OBJ_TYPE: stateful object type (NLA_U32: NFT_OBJECT_*)
|
||||
* @NFTA_SET_HANDLE: set handle (NLA_U64)
|
||||
* @NFTA_SET_EXPR: set expression (NLA_NESTED: nft_expr_attributes)
|
||||
*/
|
||||
enum nft_set_attributes {
|
||||
NFTA_SET_UNSPEC,
|
||||
|
|
@ -361,6 +362,7 @@ enum nft_set_attributes {
|
|||
NFTA_SET_PAD,
|
||||
NFTA_SET_OBJ_TYPE,
|
||||
NFTA_SET_HANDLE,
|
||||
NFTA_SET_EXPR,
|
||||
__NFTA_SET_MAX
|
||||
};
|
||||
#define NFTA_SET_MAX (__NFTA_SET_MAX - 1)
|
||||
|
|
@ -1551,6 +1553,19 @@ enum nft_object_attributes {
|
|||
};
|
||||
#define NFTA_OBJ_MAX (__NFTA_OBJ_MAX - 1)
|
||||
|
||||
/**
|
||||
* enum nft_flowtable_flags - nf_tables flowtable flags
|
||||
*
|
||||
* @NFT_FLOWTABLE_HW_OFFLOAD: flowtable hardware offload is enabled
|
||||
* @NFT_FLOWTABLE_COUNTER: enable flow counters
|
||||
*/
|
||||
enum nft_flowtable_flags {
|
||||
NFT_FLOWTABLE_HW_OFFLOAD = 0x1,
|
||||
NFT_FLOWTABLE_COUNTER = 0x2,
|
||||
NFT_FLOWTABLE_MASK = (NFT_FLOWTABLE_HW_OFFLOAD |
|
||||
NFT_FLOWTABLE_COUNTER)
|
||||
};
|
||||
|
||||
/**
|
||||
* enum nft_flowtable_attributes - nf_tables flow table netlink attributes
|
||||
*
|
||||
|
|
@ -1770,6 +1785,7 @@ enum nft_tunnel_opts_attributes {
|
|||
NFTA_TUNNEL_KEY_OPTS_UNSPEC,
|
||||
NFTA_TUNNEL_KEY_OPTS_VXLAN,
|
||||
NFTA_TUNNEL_KEY_OPTS_ERSPAN,
|
||||
NFTA_TUNNEL_KEY_OPTS_GENEVE,
|
||||
__NFTA_TUNNEL_KEY_OPTS_MAX
|
||||
};
|
||||
#define NFTA_TUNNEL_KEY_OPTS_MAX (__NFTA_TUNNEL_KEY_OPTS_MAX - 1)
|
||||
|
|
@ -1791,6 +1807,15 @@ enum nft_tunnel_opts_erspan_attributes {
|
|||
};
|
||||
#define NFTA_TUNNEL_KEY_ERSPAN_MAX (__NFTA_TUNNEL_KEY_ERSPAN_MAX - 1)
|
||||
|
||||
enum nft_tunnel_opts_geneve_attributes {
|
||||
NFTA_TUNNEL_KEY_GENEVE_UNSPEC,
|
||||
NFTA_TUNNEL_KEY_GENEVE_CLASS,
|
||||
NFTA_TUNNEL_KEY_GENEVE_TYPE,
|
||||
NFTA_TUNNEL_KEY_GENEVE_DATA,
|
||||
__NFTA_TUNNEL_KEY_GENEVE_MAX
|
||||
};
|
||||
#define NFTA_TUNNEL_KEY_GENEVE_MAX (__NFTA_TUNNEL_KEY_GENEVE_MAX - 1)
|
||||
|
||||
enum nft_tunnel_flags {
|
||||
NFT_TUNNEL_F_ZERO_CSUM_TX = (1 << 0),
|
||||
NFT_TUNNEL_F_DONT_FRAGMENT = (1 << 1),
|
||||
|
|
|
|||
|
|
@ -1,4 +1,3 @@
|
|||
/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
|
||||
/*
|
||||
* linux/include/linux/netfilter/xt_IDLETIMER.h
|
||||
*
|
||||
|
|
@ -33,6 +32,7 @@
|
|||
#include <linux/types.h>
|
||||
|
||||
#define MAX_IDLETIMER_LABEL_SIZE 28
|
||||
#define XT_IDLETIMER_ALARM 0x01
|
||||
|
||||
struct idletimer_tg_info {
|
||||
__u32 timeout;
|
||||
|
|
@ -43,4 +43,14 @@ struct idletimer_tg_info {
|
|||
struct idletimer_tg *timer __attribute__((aligned(8)));
|
||||
};
|
||||
|
||||
struct idletimer_tg_info_v1 {
|
||||
__u32 timeout;
|
||||
|
||||
char label[MAX_IDLETIMER_LABEL_SIZE];
|
||||
|
||||
__u8 timer_type;
|
||||
|
||||
/* for kernel module internal use only */
|
||||
struct idletimer_tg *timer __attribute__((aligned(8)));
|
||||
};
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -40,7 +40,7 @@ struct ebt_mac_wormhash_tuple {
|
|||
struct ebt_mac_wormhash {
|
||||
int table[257];
|
||||
int poolsize;
|
||||
struct ebt_mac_wormhash_tuple pool[0];
|
||||
struct ebt_mac_wormhash_tuple pool[];
|
||||
};
|
||||
|
||||
#define ebt_mac_wormhash_size(x) ((x) ? sizeof(struct ebt_mac_wormhash) \
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@
|
|||
* Copyright 2008 Jouni Malinen <jouni.malinen@atheros.com>
|
||||
* Copyright 2008 Colin McCabe <colin@cozybit.com>
|
||||
* Copyright 2015-2017 Intel Deutschland GmbH
|
||||
* Copyright (C) 2018-2019 Intel Corporation
|
||||
* Copyright (C) 2018-2020 Intel Corporation
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
|
|
@ -264,6 +264,29 @@
|
|||
* %NL80211_ATTR_VLAN_ID.
|
||||
*/
|
||||
|
||||
/**
|
||||
* DOC: TID configuration
|
||||
*
|
||||
* TID config support can be checked in the %NL80211_ATTR_TID_CONFIG
|
||||
* attribute given in wiphy capabilities.
|
||||
*
|
||||
* The necessary configuration parameters are mentioned in
|
||||
* &enum nl80211_tid_config_attr and it will be passed to the
|
||||
* %NL80211_CMD_SET_TID_CONFIG command in %NL80211_ATTR_TID_CONFIG.
|
||||
*
|
||||
* If the configuration needs to be applied for specific peer then the MAC
|
||||
* address of the peer needs to be passed in %NL80211_ATTR_MAC, otherwise the
|
||||
* configuration will be applied for all the connected peers in the vif except
|
||||
* any peers that have peer specific configuration for the TID by default; if
|
||||
* the %NL80211_TID_CONFIG_ATTR_OVERRIDE flag is set, peer specific values
|
||||
* will be overwritten.
|
||||
*
|
||||
* All this configuration is valid only for STA's current connection
|
||||
* i.e. the configuration will be reset to default when the STA connects back
|
||||
* after disconnection/roaming, and this configuration will be cleared when
|
||||
* the interface goes down.
|
||||
*/
|
||||
|
||||
/**
|
||||
* enum nl80211_commands - supported nl80211 commands
|
||||
*
|
||||
|
|
@ -1125,6 +1148,9 @@
|
|||
* peer MAC address and %NL80211_ATTR_FRAME is used to specify the frame
|
||||
* content. The frame is ethernet data.
|
||||
*
|
||||
* @NL80211_CMD_SET_TID_CONFIG: Data frame TID specific configuration
|
||||
* is passed using %NL80211_ATTR_TID_CONFIG attribute.
|
||||
*
|
||||
* @NL80211_CMD_MAX: highest used command number
|
||||
* @__NL80211_CMD_AFTER_LAST: internal use
|
||||
*/
|
||||
|
|
@ -1349,6 +1375,8 @@ enum nl80211_commands {
|
|||
|
||||
NL80211_CMD_PROBE_MESH_LINK,
|
||||
|
||||
NL80211_CMD_SET_TID_CONFIG,
|
||||
|
||||
/* add new commands above here */
|
||||
|
||||
/* used to define NL80211_CMD_MAX below */
|
||||
|
|
@ -1604,7 +1632,8 @@ enum nl80211_commands {
|
|||
* flag is included, then control port frames are sent over NL80211 instead
|
||||
* using %CMD_CONTROL_PORT_FRAME. If control port routing over NL80211 is
|
||||
* to be used then userspace must also use the %NL80211_ATTR_SOCKET_OWNER
|
||||
* flag.
|
||||
* flag. When used with %NL80211_ATTR_CONTROL_PORT_NO_PREAUTH, pre-auth
|
||||
* frames are not forwared over the control port.
|
||||
*
|
||||
* @NL80211_ATTR_TESTDATA: Testmode data blob, passed through to the driver.
|
||||
* We recommend using nested, driver-specific attributes within this.
|
||||
|
|
@ -2400,6 +2429,47 @@ enum nl80211_commands {
|
|||
* @NL80211_ATTR_VLAN_ID: VLAN ID (1..4094) for the station and VLAN group key
|
||||
* (u16).
|
||||
*
|
||||
* @NL80211_ATTR_HE_BSS_COLOR: nested attribute for BSS Color Settings.
|
||||
*
|
||||
* @NL80211_ATTR_IFTYPE_AKM_SUITES: nested array attribute, with each entry
|
||||
* using attributes from &enum nl80211_iftype_akm_attributes. This
|
||||
* attribute is sent in a response to %NL80211_CMD_GET_WIPHY indicating
|
||||
* supported AKM suites capability per interface. AKMs advertised in
|
||||
* %NL80211_ATTR_AKM_SUITES are default capabilities if AKM suites not
|
||||
* advertised for a specific interface type.
|
||||
*
|
||||
* @NL80211_ATTR_TID_CONFIG: TID specific configuration in a
|
||||
* nested attribute with &enum nl80211_tid_config_attr sub-attributes;
|
||||
* on output (in wiphy attributes) it contains only the feature sub-
|
||||
* attributes.
|
||||
*
|
||||
* @NL80211_ATTR_CONTROL_PORT_NO_PREAUTH: disable preauth frame rx on control
|
||||
* port in order to forward/receive them as ordinary data frames.
|
||||
*
|
||||
* @NL80211_ATTR_PMK_LIFETIME: Maximum lifetime for PMKSA in seconds (u32,
|
||||
* dot11RSNAConfigPMKReauthThreshold; 0 is not a valid value).
|
||||
* An optional parameter configured through %NL80211_CMD_SET_PMKSA.
|
||||
* Drivers that trigger roaming need to know the lifetime of the
|
||||
* configured PMKSA for triggering the full vs. PMKSA caching based
|
||||
* authentication. This timeout helps authentication methods like SAE,
|
||||
* where PMK gets updated only by going through a full (new SAE)
|
||||
* authentication instead of getting updated during an association for EAP
|
||||
* authentication. No new full authentication within the PMK expiry shall
|
||||
* result in a disassociation at the end of the lifetime.
|
||||
*
|
||||
* @NL80211_ATTR_PMK_REAUTH_THRESHOLD: Reauthentication threshold time, in
|
||||
* terms of percentage of %NL80211_ATTR_PMK_LIFETIME
|
||||
* (u8, dot11RSNAConfigPMKReauthThreshold, 1..100). This is an optional
|
||||
* parameter configured through %NL80211_CMD_SET_PMKSA. Requests the
|
||||
* driver to trigger a full authentication roam (without PMKSA caching)
|
||||
* after the reauthentication threshold time, but before the PMK lifetime
|
||||
* has expired.
|
||||
*
|
||||
* Authentication methods like SAE need to be able to generate a new PMKSA
|
||||
* entry without having to force a disconnection after the PMK timeout. If
|
||||
* no roaming occurs between the reauth threshold and PMK expiration,
|
||||
* disassociation is still forced.
|
||||
*
|
||||
* @NUM_NL80211_ATTR: total number of nl80211_attrs available
|
||||
* @NL80211_ATTR_MAX: highest attribute number currently defined
|
||||
* @__NL80211_ATTR_AFTER_LAST: internal use
|
||||
|
|
@ -2864,6 +2934,17 @@ enum nl80211_attrs {
|
|||
|
||||
NL80211_ATTR_VLAN_ID,
|
||||
|
||||
NL80211_ATTR_HE_BSS_COLOR,
|
||||
|
||||
NL80211_ATTR_IFTYPE_AKM_SUITES,
|
||||
|
||||
NL80211_ATTR_TID_CONFIG,
|
||||
|
||||
NL80211_ATTR_CONTROL_PORT_NO_PREAUTH,
|
||||
|
||||
NL80211_ATTR_PMK_LIFETIME,
|
||||
NL80211_ATTR_PMK_REAUTH_THRESHOLD,
|
||||
|
||||
/* add attributes here, update the policy in nl80211.c */
|
||||
|
||||
__NL80211_ATTR_AFTER_LAST,
|
||||
|
|
@ -3583,6 +3664,8 @@ enum nl80211_wmm_rule {
|
|||
* @NL80211_FREQUENCY_ATTR_WMM: this channel has wmm limitations.
|
||||
* This is a nested attribute that contains the wmm limitation per AC.
|
||||
* (see &enum nl80211_wmm_rule)
|
||||
* @NL80211_FREQUENCY_ATTR_NO_HE: HE operation is not allowed on this channel
|
||||
* in current regulatory domain.
|
||||
* @NL80211_FREQUENCY_ATTR_MAX: highest frequency attribute number
|
||||
* currently defined
|
||||
* @__NL80211_FREQUENCY_ATTR_AFTER_LAST: internal use
|
||||
|
|
@ -3612,6 +3695,7 @@ enum nl80211_frequency_attr {
|
|||
NL80211_FREQUENCY_ATTR_NO_20MHZ,
|
||||
NL80211_FREQUENCY_ATTR_NO_10MHZ,
|
||||
NL80211_FREQUENCY_ATTR_WMM,
|
||||
NL80211_FREQUENCY_ATTR_NO_HE,
|
||||
|
||||
/* keep last */
|
||||
__NL80211_FREQUENCY_ATTR_AFTER_LAST,
|
||||
|
|
@ -3809,6 +3893,7 @@ enum nl80211_sched_scan_match_attr {
|
|||
* @NL80211_RRF_NO_HT40PLUS: channels can't be used in HT40+ operation
|
||||
* @NL80211_RRF_NO_80MHZ: 80MHz operation not allowed
|
||||
* @NL80211_RRF_NO_160MHZ: 160MHz operation not allowed
|
||||
* @NL80211_RRF_NO_HE: HE operation not allowed
|
||||
*/
|
||||
enum nl80211_reg_rule_flags {
|
||||
NL80211_RRF_NO_OFDM = 1<<0,
|
||||
|
|
@ -3826,6 +3911,7 @@ enum nl80211_reg_rule_flags {
|
|||
NL80211_RRF_NO_HT40PLUS = 1<<14,
|
||||
NL80211_RRF_NO_80MHZ = 1<<15,
|
||||
NL80211_RRF_NO_160MHZ = 1<<16,
|
||||
NL80211_RRF_NO_HE = 1<<17,
|
||||
};
|
||||
|
||||
#define NL80211_RRF_PASSIVE_SCAN NL80211_RRF_NO_IR
|
||||
|
|
@ -4532,6 +4618,7 @@ enum nl80211_key_default_types {
|
|||
* See &enum nl80211_key_default_types.
|
||||
* @NL80211_KEY_MODE: the mode from enum nl80211_key_mode.
|
||||
* Defaults to @NL80211_KEY_RX_TX.
|
||||
* @NL80211_KEY_DEFAULT_BEACON: flag indicating default Beacon frame key
|
||||
*
|
||||
* @__NL80211_KEY_AFTER_LAST: internal
|
||||
* @NL80211_KEY_MAX: highest key attribute
|
||||
|
|
@ -4547,6 +4634,7 @@ enum nl80211_key_attributes {
|
|||
NL80211_KEY_TYPE,
|
||||
NL80211_KEY_DEFAULT_TYPES,
|
||||
NL80211_KEY_MODE,
|
||||
NL80211_KEY_DEFAULT_BEACON,
|
||||
|
||||
/* keep last */
|
||||
__NL80211_KEY_AFTER_LAST,
|
||||
|
|
@ -4702,6 +4790,69 @@ enum nl80211_tx_power_setting {
|
|||
NL80211_TX_POWER_FIXED,
|
||||
};
|
||||
|
||||
/**
|
||||
* enum nl80211_tid_config - TID config state
|
||||
* @NL80211_TID_CONFIG_ENABLE: Enable config for the TID
|
||||
* @NL80211_TID_CONFIG_DISABLE: Disable config for the TID
|
||||
*/
|
||||
enum nl80211_tid_config {
|
||||
NL80211_TID_CONFIG_ENABLE,
|
||||
NL80211_TID_CONFIG_DISABLE,
|
||||
};
|
||||
|
||||
/* enum nl80211_tid_config_attr - TID specific configuration.
|
||||
* @NL80211_TID_CONFIG_ATTR_PAD: pad attribute for 64-bit values
|
||||
* @NL80211_TID_CONFIG_ATTR_VIF_SUPP: a bitmap (u64) of attributes supported
|
||||
* for per-vif configuration; doesn't list the ones that are generic
|
||||
* (%NL80211_TID_CONFIG_ATTR_TIDS, %NL80211_TID_CONFIG_ATTR_OVERRIDE).
|
||||
* @NL80211_TID_CONFIG_ATTR_PEER_SUPP: same as the previous per-vif one, but
|
||||
* per peer instead.
|
||||
* @NL80211_TID_CONFIG_ATTR_OVERRIDE: flag attribue, if no peer
|
||||
* is selected, if set indicates that the new configuration overrides
|
||||
* all previous peer configurations, otherwise previous peer specific
|
||||
* configurations should be left untouched. If peer is selected then
|
||||
* it will reset particular TID configuration of that peer and it will
|
||||
* not accept other TID config attributes along with peer.
|
||||
* @NL80211_TID_CONFIG_ATTR_TIDS: a bitmask value of TIDs (bit 0 to 7)
|
||||
* Its type is u16.
|
||||
* @NL80211_TID_CONFIG_ATTR_NOACK: Configure ack policy for the TID.
|
||||
* specified in %NL80211_TID_CONFIG_ATTR_TID. see %enum nl80211_tid_config.
|
||||
* Its type is u8.
|
||||
* @NL80211_TID_CONFIG_ATTR_RETRY_SHORT: Number of retries used with data frame
|
||||
* transmission, user-space sets this configuration in
|
||||
* &NL80211_CMD_SET_TID_CONFIG. It is u8 type, min value is 1 and
|
||||
* the max value is advertised by the driver in this attribute on
|
||||
* output in wiphy capabilities.
|
||||
* @NL80211_TID_CONFIG_ATTR_RETRY_LONG: Number of retries used with data frame
|
||||
* transmission, user-space sets this configuration in
|
||||
* &NL80211_CMD_SET_TID_CONFIG. Its type is u8, min value is 1 and
|
||||
* the max value is advertised by the driver in this attribute on
|
||||
* output in wiphy capabilities.
|
||||
* @NL80211_TID_CONFIG_ATTR_AMPDU_CTRL: Enable/Disable aggregation for the TIDs
|
||||
* specified in %NL80211_TID_CONFIG_ATTR_TIDS. Its type is u8, using
|
||||
* the values from &nl80211_tid_config.
|
||||
* @NL80211_TID_CONFIG_ATTR_RTSCTS_CTRL: Enable/Disable RTS_CTS for the TIDs
|
||||
* specified in %NL80211_TID_CONFIG_ATTR_TIDS. It is u8 type, using
|
||||
* the values from &nl80211_tid_config.
|
||||
*/
|
||||
enum nl80211_tid_config_attr {
|
||||
__NL80211_TID_CONFIG_ATTR_INVALID,
|
||||
NL80211_TID_CONFIG_ATTR_PAD,
|
||||
NL80211_TID_CONFIG_ATTR_VIF_SUPP,
|
||||
NL80211_TID_CONFIG_ATTR_PEER_SUPP,
|
||||
NL80211_TID_CONFIG_ATTR_OVERRIDE,
|
||||
NL80211_TID_CONFIG_ATTR_TIDS,
|
||||
NL80211_TID_CONFIG_ATTR_NOACK,
|
||||
NL80211_TID_CONFIG_ATTR_RETRY_SHORT,
|
||||
NL80211_TID_CONFIG_ATTR_RETRY_LONG,
|
||||
NL80211_TID_CONFIG_ATTR_AMPDU_CTRL,
|
||||
NL80211_TID_CONFIG_ATTR_RTSCTS_CTRL,
|
||||
|
||||
/* keep last */
|
||||
__NL80211_TID_CONFIG_ATTR_AFTER_LAST,
|
||||
NL80211_TID_CONFIG_ATTR_MAX = __NL80211_TID_CONFIG_ATTR_AFTER_LAST - 1
|
||||
};
|
||||
|
||||
/**
|
||||
* enum nl80211_packet_pattern_attr - packet pattern attribute
|
||||
* @__NL80211_PKTPAT_INVALID: invalid number for nested attribute
|
||||
|
|
@ -5521,6 +5672,18 @@ enum nl80211_feature_flags {
|
|||
* feature, which prevents bufferbloat by using the expected transmission
|
||||
* time to limit the amount of data buffered in the hardware.
|
||||
*
|
||||
* @NL80211_EXT_FEATURE_BEACON_PROTECTION: The driver supports Beacon protection
|
||||
* and can receive key configuration for BIGTK using key indexes 6 and 7.
|
||||
*
|
||||
* @NL80211_EXT_FEATURE_CONTROL_PORT_NO_PREAUTH: The driver can disable the
|
||||
* forwarding of preauth frames over the control port. They are then
|
||||
* handled as ordinary data frames.
|
||||
*
|
||||
* @NL80211_EXT_FEATURE_PROTECTED_TWT: Driver supports protected TWT frames
|
||||
*
|
||||
* @NL80211_EXT_FEATURE_DEL_IBSS_STA: The driver supports removing stations
|
||||
* in IBSS mode, essentially by dropping their state.
|
||||
*
|
||||
* @NUM_NL80211_EXT_FEATURES: number of extended features.
|
||||
* @MAX_NL80211_EXT_FEATURES: highest extended feature index.
|
||||
*/
|
||||
|
|
@ -5568,6 +5731,10 @@ enum nl80211_ext_feature_index {
|
|||
NL80211_EXT_FEATURE_SAE_OFFLOAD,
|
||||
NL80211_EXT_FEATURE_VLAN_OFFLOAD,
|
||||
NL80211_EXT_FEATURE_AQL,
|
||||
NL80211_EXT_FEATURE_BEACON_PROTECTION,
|
||||
NL80211_EXT_FEATURE_CONTROL_PORT_NO_PREAUTH,
|
||||
NL80211_EXT_FEATURE_PROTECTED_TWT,
|
||||
NL80211_EXT_FEATURE_DEL_IBSS_STA,
|
||||
|
||||
/* add new features before the definition below */
|
||||
NUM_NL80211_EXT_FEATURES,
|
||||
|
|
@ -6190,12 +6357,14 @@ enum nl80211_ftm_responder_stats {
|
|||
* @NL80211_PREAMBLE_HT: HT preamble
|
||||
* @NL80211_PREAMBLE_VHT: VHT preamble
|
||||
* @NL80211_PREAMBLE_DMG: DMG preamble
|
||||
* @NL80211_PREAMBLE_HE: HE preamble
|
||||
*/
|
||||
enum nl80211_preamble {
|
||||
NL80211_PREAMBLE_LEGACY,
|
||||
NL80211_PREAMBLE_HT,
|
||||
NL80211_PREAMBLE_VHT,
|
||||
NL80211_PREAMBLE_DMG,
|
||||
NL80211_PREAMBLE_HE,
|
||||
};
|
||||
|
||||
/**
|
||||
|
|
@ -6388,6 +6557,10 @@ enum nl80211_peer_measurement_attrs {
|
|||
* is valid)
|
||||
* @NL80211_PMSR_FTM_CAPA_ATTR_MAX_FTMS_PER_BURST: u32 attribute indicating
|
||||
* the maximum FTMs per burst (if not present anything is valid)
|
||||
* @NL80211_PMSR_FTM_CAPA_ATTR_TRIGGER_BASED: flag attribute indicating if
|
||||
* trigger based ranging measurement is supported
|
||||
* @NL80211_PMSR_FTM_CAPA_ATTR_NON_TRIGGER_BASED: flag attribute indicating
|
||||
* if non trigger based ranging measurement is supported
|
||||
*
|
||||
* @NUM_NL80211_PMSR_FTM_CAPA_ATTR: internal
|
||||
* @NL80211_PMSR_FTM_CAPA_ATTR_MAX: highest attribute number
|
||||
|
|
@ -6403,6 +6576,8 @@ enum nl80211_peer_measurement_ftm_capa {
|
|||
NL80211_PMSR_FTM_CAPA_ATTR_BANDWIDTHS,
|
||||
NL80211_PMSR_FTM_CAPA_ATTR_MAX_BURSTS_EXPONENT,
|
||||
NL80211_PMSR_FTM_CAPA_ATTR_MAX_FTMS_PER_BURST,
|
||||
NL80211_PMSR_FTM_CAPA_ATTR_TRIGGER_BASED,
|
||||
NL80211_PMSR_FTM_CAPA_ATTR_NON_TRIGGER_BASED,
|
||||
|
||||
/* keep last */
|
||||
NUM_NL80211_PMSR_FTM_CAPA_ATTR,
|
||||
|
|
@ -6432,6 +6607,20 @@ enum nl80211_peer_measurement_ftm_capa {
|
|||
* @NL80211_PMSR_FTM_REQ_ATTR_REQUEST_LCI: request LCI data (flag)
|
||||
* @NL80211_PMSR_FTM_REQ_ATTR_REQUEST_CIVICLOC: request civic location data
|
||||
* (flag)
|
||||
* @NL80211_PMSR_FTM_REQ_ATTR_TRIGGER_BASED: request trigger based ranging
|
||||
* measurement (flag).
|
||||
* This attribute and %NL80211_PMSR_FTM_REQ_ATTR_NON_TRIGGER_BASED are
|
||||
* mutually exclusive.
|
||||
* if neither %NL80211_PMSR_FTM_REQ_ATTR_TRIGGER_BASED nor
|
||||
* %NL80211_PMSR_FTM_REQ_ATTR_NON_TRIGGER_BASED is set, EDCA based
|
||||
* ranging will be used.
|
||||
* @NL80211_PMSR_FTM_REQ_ATTR_NON_TRIGGER_BASED: request non trigger based
|
||||
* ranging measurement (flag)
|
||||
* This attribute and %NL80211_PMSR_FTM_REQ_ATTR_TRIGGER_BASED are
|
||||
* mutually exclusive.
|
||||
* if neither %NL80211_PMSR_FTM_REQ_ATTR_TRIGGER_BASED nor
|
||||
* %NL80211_PMSR_FTM_REQ_ATTR_NON_TRIGGER_BASED is set, EDCA based
|
||||
* ranging will be used.
|
||||
*
|
||||
* @NUM_NL80211_PMSR_FTM_REQ_ATTR: internal
|
||||
* @NL80211_PMSR_FTM_REQ_ATTR_MAX: highest attribute number
|
||||
|
|
@ -6448,6 +6637,8 @@ enum nl80211_peer_measurement_ftm_req {
|
|||
NL80211_PMSR_FTM_REQ_ATTR_NUM_FTMR_RETRIES,
|
||||
NL80211_PMSR_FTM_REQ_ATTR_REQUEST_LCI,
|
||||
NL80211_PMSR_FTM_REQ_ATTR_REQUEST_CIVICLOC,
|
||||
NL80211_PMSR_FTM_REQ_ATTR_TRIGGER_BASED,
|
||||
NL80211_PMSR_FTM_REQ_ATTR_NON_TRIGGER_BASED,
|
||||
|
||||
/* keep last */
|
||||
NUM_NL80211_PMSR_FTM_REQ_ATTR,
|
||||
|
|
@ -6587,5 +6778,51 @@ enum nl80211_obss_pd_attributes {
|
|||
NL80211_HE_OBSS_PD_ATTR_MAX = __NL80211_HE_OBSS_PD_ATTR_LAST - 1,
|
||||
};
|
||||
|
||||
/**
|
||||
* enum nl80211_bss_color_attributes - BSS Color attributes
|
||||
* @__NL80211_HE_BSS_COLOR_ATTR_INVALID: Invalid
|
||||
*
|
||||
* @NL80211_HE_BSS_COLOR_ATTR_COLOR: the current BSS Color.
|
||||
* @NL80211_HE_BSS_COLOR_ATTR_DISABLED: is BSS coloring disabled.
|
||||
* @NL80211_HE_BSS_COLOR_ATTR_PARTIAL: the AID equation to be used..
|
||||
*
|
||||
* @__NL80211_HE_BSS_COLOR_ATTR_LAST: Internal
|
||||
* @NL80211_HE_BSS_COLOR_ATTR_MAX: highest BSS Color attribute.
|
||||
*/
|
||||
enum nl80211_bss_color_attributes {
|
||||
__NL80211_HE_BSS_COLOR_ATTR_INVALID,
|
||||
|
||||
NL80211_HE_BSS_COLOR_ATTR_COLOR,
|
||||
NL80211_HE_BSS_COLOR_ATTR_DISABLED,
|
||||
NL80211_HE_BSS_COLOR_ATTR_PARTIAL,
|
||||
|
||||
/* keep last */
|
||||
__NL80211_HE_BSS_COLOR_ATTR_LAST,
|
||||
NL80211_HE_BSS_COLOR_ATTR_MAX = __NL80211_HE_BSS_COLOR_ATTR_LAST - 1,
|
||||
};
|
||||
|
||||
/**
|
||||
* enum nl80211_iftype_akm_attributes - interface type AKM attributes
|
||||
* @__NL80211_IFTYPE_AKM_ATTR_INVALID: Invalid
|
||||
*
|
||||
* @NL80211_IFTYPE_AKM_ATTR_IFTYPES: nested attribute containing a flag
|
||||
* attribute for each interface type that supports AKM suites specified in
|
||||
* %NL80211_IFTYPE_AKM_ATTR_SUITES
|
||||
* @NL80211_IFTYPE_AKM_ATTR_SUITES: an array of u32. Used to indicate supported
|
||||
* AKM suites for the specified interface types.
|
||||
*
|
||||
* @__NL80211_IFTYPE_AKM_ATTR_LAST: Internal
|
||||
* @NL80211_IFTYPE_AKM_ATTR_MAX: highest interface type AKM attribute.
|
||||
*/
|
||||
enum nl80211_iftype_akm_attributes {
|
||||
__NL80211_IFTYPE_AKM_ATTR_INVALID,
|
||||
|
||||
NL80211_IFTYPE_AKM_ATTR_IFTYPES,
|
||||
NL80211_IFTYPE_AKM_ATTR_SUITES,
|
||||
|
||||
/* keep last */
|
||||
__NL80211_IFTYPE_AKM_ATTR_LAST,
|
||||
NL80211_IFTYPE_AKM_ATTR_MAX = __NL80211_IFTYPE_AKM_ATTR_LAST - 1,
|
||||
};
|
||||
|
||||
#endif /* __LINUX_NL80211_H */
|
||||
|
|
|
|||
|
|
@ -958,6 +958,7 @@ enum ovs_action_attr {
|
|||
OVS_ACTION_ATTR_CLONE, /* Nested OVS_CLONE_ATTR_*. */
|
||||
OVS_ACTION_ATTR_CHECK_PKT_LEN, /* Nested OVS_CHECK_PKT_LEN_ATTR_*. */
|
||||
OVS_ACTION_ATTR_ADD_MPLS, /* struct ovs_action_add_mpls. */
|
||||
OVS_ACTION_ATTR_DEC_TTL, /* Nested OVS_DEC_TTL_ATTR_*. */
|
||||
|
||||
__OVS_ACTION_ATTR_MAX, /* Nothing past this will be accepted
|
||||
* from userspace. */
|
||||
|
|
@ -1050,4 +1051,10 @@ struct ovs_zone_limit {
|
|||
__u32 count;
|
||||
};
|
||||
|
||||
enum ovs_dec_ttl_attr {
|
||||
OVS_DEC_TTL_ATTR_UNSPEC,
|
||||
OVS_DEC_TTL_ATTR_ACTION, /* Nested struct nlattr */
|
||||
__OVS_DEC_TTL_ATTR_MAX
|
||||
};
|
||||
|
||||
#endif /* _LINUX_OPENVSWITCH_H */
|
||||
|
|
|
|||
|
|
@ -605,6 +605,7 @@
|
|||
#define PCI_EXP_SLTCTL_PWR_OFF 0x0400 /* Power Off */
|
||||
#define PCI_EXP_SLTCTL_EIC 0x0800 /* Electromechanical Interlock Control */
|
||||
#define PCI_EXP_SLTCTL_DLLSCE 0x1000 /* Data Link Layer State Changed Enable */
|
||||
#define PCI_EXP_SLTCTL_IBPD_DISABLE 0x4000 /* In-band PD disable */
|
||||
#define PCI_EXP_SLTSTA 26 /* Slot Status */
|
||||
#define PCI_EXP_SLTSTA_ABP 0x0001 /* Attention Button Pressed */
|
||||
#define PCI_EXP_SLTSTA_PFD 0x0002 /* Power Fault Detected */
|
||||
|
|
@ -680,6 +681,7 @@
|
|||
#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 */
|
||||
#define PCI_EXP_SLTCAP2_IBPD 0x00000001 /* In-band PD Disable Supported */
|
||||
#define PCI_EXP_SLTCTL2 56 /* Slot Control 2 */
|
||||
#define PCI_EXP_SLTSTA2 58 /* Slot Status 2 */
|
||||
|
||||
|
|
|
|||
|
|
@ -19,5 +19,13 @@
|
|||
#define PCITEST_MSIX _IOW('P', 0x7, int)
|
||||
#define PCITEST_SET_IRQTYPE _IOW('P', 0x8, int)
|
||||
#define PCITEST_GET_IRQTYPE _IO('P', 0x9)
|
||||
#define PCITEST_CLEAR_IRQ _IO('P', 0x10)
|
||||
|
||||
#define PCITEST_FLAGS_USE_DMA 0x00000001
|
||||
|
||||
struct pci_endpoint_test_xfer_param {
|
||||
unsigned long size;
|
||||
unsigned char flags;
|
||||
};
|
||||
|
||||
#endif /* __UAPI_LINUX_PCITEST_H */
|
||||
|
|
|
|||
|
|
@ -142,8 +142,9 @@ enum perf_event_sample_format {
|
|||
PERF_SAMPLE_REGS_INTR = 1U << 18,
|
||||
PERF_SAMPLE_PHYS_ADDR = 1U << 19,
|
||||
PERF_SAMPLE_AUX = 1U << 20,
|
||||
PERF_SAMPLE_CGROUP = 1U << 21,
|
||||
|
||||
PERF_SAMPLE_MAX = 1U << 21, /* non-ABI */
|
||||
PERF_SAMPLE_MAX = 1U << 22, /* non-ABI */
|
||||
|
||||
__PERF_SAMPLE_CALLCHAIN_EARLY = 1ULL << 63, /* non-ABI; internal use */
|
||||
};
|
||||
|
|
@ -181,6 +182,8 @@ enum perf_branch_sample_type_shift {
|
|||
|
||||
PERF_SAMPLE_BRANCH_TYPE_SAVE_SHIFT = 16, /* save branch type */
|
||||
|
||||
PERF_SAMPLE_BRANCH_HW_INDEX_SHIFT = 17, /* save low level index of raw branch records */
|
||||
|
||||
PERF_SAMPLE_BRANCH_MAX_SHIFT /* non-ABI */
|
||||
};
|
||||
|
||||
|
|
@ -208,6 +211,8 @@ enum perf_branch_sample_type {
|
|||
PERF_SAMPLE_BRANCH_TYPE_SAVE =
|
||||
1U << PERF_SAMPLE_BRANCH_TYPE_SAVE_SHIFT,
|
||||
|
||||
PERF_SAMPLE_BRANCH_HW_INDEX = 1U << PERF_SAMPLE_BRANCH_HW_INDEX_SHIFT,
|
||||
|
||||
PERF_SAMPLE_BRANCH_MAX = 1U << PERF_SAMPLE_BRANCH_MAX_SHIFT,
|
||||
};
|
||||
|
||||
|
|
@ -377,7 +382,8 @@ struct perf_event_attr {
|
|||
ksymbol : 1, /* include ksymbol events */
|
||||
bpf_event : 1, /* include bpf events */
|
||||
aux_output : 1, /* generate AUX records instead of events */
|
||||
__reserved_1 : 32;
|
||||
cgroup : 1, /* include cgroup events */
|
||||
__reserved_1 : 31;
|
||||
|
||||
union {
|
||||
__u32 wakeup_events; /* wakeup every n events */
|
||||
|
|
@ -853,7 +859,9 @@ enum perf_event_type {
|
|||
* char data[size];}&& PERF_SAMPLE_RAW
|
||||
*
|
||||
* { u64 nr;
|
||||
* { u64 from, to, flags } lbr[nr];} && PERF_SAMPLE_BRANCH_STACK
|
||||
* { u64 hw_idx; } && PERF_SAMPLE_BRANCH_HW_INDEX
|
||||
* { u64 from, to, flags } lbr[nr];
|
||||
* } && PERF_SAMPLE_BRANCH_STACK
|
||||
*
|
||||
* { u64 abi; # enum perf_sample_regs_abi
|
||||
* u64 regs[weight(mask)]; } && PERF_SAMPLE_REGS_USER
|
||||
|
|
@ -1006,6 +1014,16 @@ enum perf_event_type {
|
|||
*/
|
||||
PERF_RECORD_BPF_EVENT = 18,
|
||||
|
||||
/*
|
||||
* struct {
|
||||
* struct perf_event_header header;
|
||||
* u64 id;
|
||||
* char path[];
|
||||
* struct sample_id sample_id;
|
||||
* };
|
||||
*/
|
||||
PERF_RECORD_CGROUP = 19,
|
||||
|
||||
PERF_RECORD_MAX, /* non-ABI */
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -17,6 +17,8 @@ enum {
|
|||
TCA_ACT_PAD,
|
||||
TCA_ACT_COOKIE,
|
||||
TCA_ACT_FLAGS,
|
||||
TCA_ACT_HW_STATS,
|
||||
TCA_ACT_USED_HW_STATS,
|
||||
__TCA_ACT_MAX
|
||||
};
|
||||
|
||||
|
|
@ -24,6 +26,26 @@ enum {
|
|||
* actions stats.
|
||||
*/
|
||||
|
||||
/* tca HW stats type
|
||||
* When user does not pass the attribute, he does not care.
|
||||
* It is the same as if he would pass the attribute with
|
||||
* all supported bits set.
|
||||
* In case no bits are set, user is not interested in getting any HW statistics.
|
||||
*/
|
||||
#define TCA_ACT_HW_STATS_IMMEDIATE (1 << 0) /* Means that in dump, user
|
||||
* gets the current HW stats
|
||||
* state from the device
|
||||
* queried at the dump time.
|
||||
*/
|
||||
#define TCA_ACT_HW_STATS_DELAYED (1 << 1) /* Means that in dump, user gets
|
||||
* HW stats that might be out of date
|
||||
* for some time, maybe couple of
|
||||
* seconds. This is the case when
|
||||
* driver polls stats updates
|
||||
* periodically or when it gets async
|
||||
* stats update from the device.
|
||||
*/
|
||||
|
||||
#define TCA_ACT_MAX __TCA_ACT_MAX
|
||||
#define TCA_OLD_COMPAT (TCA_ACT_MAX+1)
|
||||
#define TCA_ACT_MAX_PRIO 32
|
||||
|
|
|
|||
|
|
@ -256,6 +256,7 @@ enum {
|
|||
TCA_RED_PARMS,
|
||||
TCA_RED_STAB,
|
||||
TCA_RED_MAX_P,
|
||||
TCA_RED_FLAGS, /* bitfield32 */
|
||||
__TCA_RED_MAX,
|
||||
};
|
||||
|
||||
|
|
@ -268,12 +269,28 @@ struct tc_red_qopt {
|
|||
unsigned char Wlog; /* log(W) */
|
||||
unsigned char Plog; /* log(P_max/(qth_max-qth_min)) */
|
||||
unsigned char Scell_log; /* cell size for idle damping */
|
||||
|
||||
/* This field can be used for flags that a RED-like qdisc has
|
||||
* historically supported. E.g. when configuring RED, it can be used for
|
||||
* ECN, HARDDROP and ADAPTATIVE. For SFQ it can be used for ECN,
|
||||
* HARDDROP. Etc. Because this field has not been validated, and is
|
||||
* copied back on dump, any bits besides those to which a given qdisc
|
||||
* has assigned a historical meaning need to be considered for free use
|
||||
* by userspace tools.
|
||||
*
|
||||
* Any further flags need to be passed differently, e.g. through an
|
||||
* attribute (such as TCA_RED_FLAGS above). Such attribute should allow
|
||||
* passing both recent and historic flags in one value.
|
||||
*/
|
||||
unsigned char flags;
|
||||
#define TC_RED_ECN 1
|
||||
#define TC_RED_HARDDROP 2
|
||||
#define TC_RED_ADAPTATIVE 4
|
||||
#define TC_RED_NODROP 8
|
||||
};
|
||||
|
||||
#define TC_RED_HISTORIC_FLAGS (TC_RED_ECN | TC_RED_HARDDROP | TC_RED_ADAPTATIVE)
|
||||
|
||||
struct tc_red_xstats {
|
||||
__u32 early; /* Early drops */
|
||||
__u32 pdrop; /* Drops due to queue limits */
|
||||
|
|
@ -894,6 +911,8 @@ enum {
|
|||
|
||||
TCA_FQ_CE_THRESHOLD, /* DCTCP-like CE-marking threshold */
|
||||
|
||||
TCA_FQ_TIMER_SLACK, /* timer slack */
|
||||
|
||||
__TCA_FQ_MAX
|
||||
};
|
||||
|
||||
|
|
@ -1197,8 +1216,8 @@ enum {
|
|||
* [TCA_TAPRIO_ATTR_SCHED_ENTRY_INTERVAL]
|
||||
*/
|
||||
|
||||
#define TCA_TAPRIO_ATTR_FLAG_TXTIME_ASSIST BIT(0)
|
||||
#define TCA_TAPRIO_ATTR_FLAG_FULL_OFFLOAD BIT(1)
|
||||
#define TCA_TAPRIO_ATTR_FLAG_TXTIME_ASSIST _BITUL(0)
|
||||
#define TCA_TAPRIO_ATTR_FLAG_FULL_OFFLOAD _BITUL(1)
|
||||
|
||||
enum {
|
||||
TCA_TAPRIO_ATTR_UNSPEC,
|
||||
|
|
|
|||
48
include/uapi/linux/rpl.h
Normal file
48
include/uapi/linux/rpl.h
Normal file
|
|
@ -0,0 +1,48 @@
|
|||
/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */
|
||||
/*
|
||||
* IPv6 RPL-SR implementation
|
||||
*
|
||||
* Author:
|
||||
* (C) 2020 Alexander Aring <alex.aring@gmail.com>
|
||||
*/
|
||||
|
||||
#ifndef _UAPI_LINUX_RPL_H
|
||||
#define _UAPI_LINUX_RPL_H
|
||||
|
||||
#include <asm/byteorder.h>
|
||||
#include <linux/types.h>
|
||||
#include <linux/in6.h>
|
||||
|
||||
/*
|
||||
* RPL SR Header
|
||||
*/
|
||||
struct ipv6_rpl_sr_hdr {
|
||||
__u8 nexthdr;
|
||||
__u8 hdrlen;
|
||||
__u8 type;
|
||||
__u8 segments_left;
|
||||
#if defined(__LITTLE_ENDIAN_BITFIELD)
|
||||
__u32 cmpre:4,
|
||||
cmpri:4,
|
||||
reserved:4,
|
||||
pad:4,
|
||||
reserved1:16;
|
||||
#elif defined(__BIG_ENDIAN_BITFIELD)
|
||||
__u32 reserved:20,
|
||||
pad:4,
|
||||
cmpri:4,
|
||||
cmpre:4;
|
||||
#else
|
||||
#error "Please fix <asm/byteorder.h>"
|
||||
#endif
|
||||
|
||||
union {
|
||||
struct in6_addr addr[0];
|
||||
__u8 data[0];
|
||||
} segments;
|
||||
} __attribute__((packed));
|
||||
|
||||
#define rpl_segaddr segments.addr
|
||||
#define rpl_segdata segments.data
|
||||
|
||||
#endif
|
||||
21
include/uapi/linux/rpl_iptunnel.h
Normal file
21
include/uapi/linux/rpl_iptunnel.h
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */
|
||||
/*
|
||||
* IPv6 RPL-SR implementation
|
||||
*
|
||||
* Author:
|
||||
* (C) 2020 Alexander Aring <alex.aring@gmail.com>
|
||||
*/
|
||||
|
||||
#ifndef _UAPI_LINUX_RPL_IPTUNNEL_H
|
||||
#define _UAPI_LINUX_RPL_IPTUNNEL_H
|
||||
|
||||
enum {
|
||||
RPL_IPTUNNEL_UNSPEC,
|
||||
RPL_IPTUNNEL_SRH,
|
||||
__RPL_IPTUNNEL_MAX,
|
||||
};
|
||||
#define RPL_IPTUNNEL_MAX (__RPL_IPTUNNEL_MAX - 1)
|
||||
|
||||
#define RPL_IPTUNNEL_SRH_SIZE(srh) (((srh)->hdrlen + 1) << 3)
|
||||
|
||||
#endif
|
||||
|
|
@ -12,6 +12,9 @@
|
|||
#ifndef _UAPI_LINUX_RTC_H_
|
||||
#define _UAPI_LINUX_RTC_H_
|
||||
|
||||
#include <linux/const.h>
|
||||
#include <linux/ioctl.h>
|
||||
|
||||
/*
|
||||
* The struct used to pass data via the following ioctl. Similar to the
|
||||
* struct tm in <time.h>, but it needs to be here so that the kernel
|
||||
|
|
@ -92,10 +95,10 @@ struct rtc_pll_info {
|
|||
#define RTC_PLL_GET _IOR('p', 0x11, struct rtc_pll_info) /* Get PLL correction */
|
||||
#define RTC_PLL_SET _IOW('p', 0x12, struct rtc_pll_info) /* Set PLL correction */
|
||||
|
||||
#define RTC_VL_DATA_INVALID BIT(0) /* Voltage too low, RTC data is invalid */
|
||||
#define RTC_VL_BACKUP_LOW BIT(1) /* Backup voltage is low */
|
||||
#define RTC_VL_BACKUP_EMPTY BIT(2) /* Backup empty or not present */
|
||||
#define RTC_VL_ACCURACY_LOW BIT(3) /* Voltage is low, RTC accuracy is reduced */
|
||||
#define RTC_VL_DATA_INVALID _BITUL(0) /* Voltage too low, RTC data is invalid */
|
||||
#define RTC_VL_BACKUP_LOW _BITUL(1) /* Backup voltage is low */
|
||||
#define RTC_VL_BACKUP_EMPTY _BITUL(2) /* Backup empty or not present */
|
||||
#define RTC_VL_ACCURACY_LOW _BITUL(3) /* Voltage is low, RTC accuracy is reduced */
|
||||
|
||||
#define RTC_VL_READ _IOR('p', 0x13, unsigned int) /* Voltage low detection */
|
||||
#define RTC_VL_CLR _IO('p', 0x14) /* Clear voltage low information */
|
||||
|
|
|
|||
|
|
@ -35,6 +35,7 @@
|
|||
|
||||
/* Flags for the clone3() syscall. */
|
||||
#define CLONE_CLEAR_SIGHAND 0x100000000ULL /* Clear any signal handler and reset to SIG_DFL. */
|
||||
#define CLONE_INTO_CGROUP 0x200000000ULL /* Clone into a specific cgroup given the right permissions. */
|
||||
|
||||
/*
|
||||
* cloning flags intersect with CSIGNAL so can be used with unshare and clone3
|
||||
|
|
@ -81,6 +82,8 @@
|
|||
* @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.
|
||||
* @cgroup: If CLONE_INTO_CGROUP is specified set this to
|
||||
* a file descriptor for the cgroup.
|
||||
*
|
||||
* The structure is versioned by size and thus extensible.
|
||||
* New struct members must go at the end of the struct and
|
||||
|
|
@ -97,11 +100,13 @@ struct clone_args {
|
|||
__aligned_u64 tls;
|
||||
__aligned_u64 set_tid;
|
||||
__aligned_u64 set_tid_size;
|
||||
__aligned_u64 cgroup;
|
||||
};
|
||||
#endif
|
||||
|
||||
#define CLONE_ARGS_SIZE_VER0 64 /* sizeof first published struct */
|
||||
#define CLONE_ARGS_SIZE_VER1 80 /* sizeof second published struct */
|
||||
#define CLONE_ARGS_SIZE_VER2 88 /* sizeof third published struct */
|
||||
|
||||
/*
|
||||
* Scheduling policies
|
||||
|
|
|
|||
|
|
@ -22,6 +22,7 @@
|
|||
#define SECCOMP_FILTER_FLAG_LOG (1UL << 1)
|
||||
#define SECCOMP_FILTER_FLAG_SPEC_ALLOW (1UL << 2)
|
||||
#define SECCOMP_FILTER_FLAG_NEW_LISTENER (1UL << 3)
|
||||
#define SECCOMP_FILTER_FLAG_TSYNC_ESRCH (1UL << 4)
|
||||
|
||||
/*
|
||||
* All BPF programs must return a 32-bit value.
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@
|
|||
#ifndef _UAPI_SERIO_H
|
||||
#define _UAPI_SERIO_H
|
||||
|
||||
|
||||
#include <linux/const.h>
|
||||
#include <linux/ioctl.h>
|
||||
|
||||
#define SPIOCSTYPE _IOW('q', 0x01, unsigned long)
|
||||
|
|
@ -18,10 +18,10 @@
|
|||
/*
|
||||
* bit masks for use in "interrupt" flags (3rd argument)
|
||||
*/
|
||||
#define SERIO_TIMEOUT BIT(0)
|
||||
#define SERIO_PARITY BIT(1)
|
||||
#define SERIO_FRAME BIT(2)
|
||||
#define SERIO_OOB_DATA BIT(3)
|
||||
#define SERIO_TIMEOUT _BITUL(0)
|
||||
#define SERIO_PARITY _BITUL(1)
|
||||
#define SERIO_FRAME _BITUL(2)
|
||||
#define SERIO_OOB_DATA _BITUL(3)
|
||||
|
||||
/*
|
||||
* Serio types
|
||||
|
|
|
|||
|
|
@ -36,4 +36,30 @@ enum sknetlink_groups {
|
|||
};
|
||||
#define SKNLGRP_MAX (__SKNLGRP_MAX - 1)
|
||||
|
||||
enum {
|
||||
SK_DIAG_BPF_STORAGE_REQ_NONE,
|
||||
SK_DIAG_BPF_STORAGE_REQ_MAP_FD,
|
||||
__SK_DIAG_BPF_STORAGE_REQ_MAX,
|
||||
};
|
||||
|
||||
#define SK_DIAG_BPF_STORAGE_REQ_MAX (__SK_DIAG_BPF_STORAGE_REQ_MAX - 1)
|
||||
|
||||
enum {
|
||||
SK_DIAG_BPF_STORAGE_REP_NONE,
|
||||
SK_DIAG_BPF_STORAGE,
|
||||
__SK_DIAG_BPF_STORAGE_REP_MAX,
|
||||
};
|
||||
|
||||
#define SK_DIAB_BPF_STORAGE_REP_MAX (__SK_DIAG_BPF_STORAGE_REP_MAX - 1)
|
||||
|
||||
enum {
|
||||
SK_DIAG_BPF_STORAGE_NONE,
|
||||
SK_DIAG_BPF_STORAGE_PAD,
|
||||
SK_DIAG_BPF_STORAGE_MAP_ID,
|
||||
SK_DIAG_BPF_STORAGE_MAP_VALUE,
|
||||
__SK_DIAG_BPF_STORAGE_MAX,
|
||||
};
|
||||
|
||||
#define SK_DIAG_BPF_STORAGE_MAX (__SK_DIAG_BPF_STORAGE_MAX - 1)
|
||||
|
||||
#endif /* _UAPI__SOCK_DIAG_H__ */
|
||||
|
|
|
|||
|
|
@ -135,9 +135,9 @@ static inline __attribute_const__ __u32 __fswahb32(__u32 val)
|
|||
|
||||
static __always_inline unsigned long __swab(const unsigned long y)
|
||||
{
|
||||
#if BITS_PER_LONG == 64
|
||||
#if __BITS_PER_LONG == 64
|
||||
return __swab64(y);
|
||||
#else /* BITS_PER_LONG == 32 */
|
||||
#else /* __BITS_PER_LONG == 32 */
|
||||
return __swab32(y);
|
||||
#endif
|
||||
}
|
||||
|
|
|
|||
|
|
@ -312,6 +312,7 @@ enum {
|
|||
TCP_NLA_REORD_SEEN, /* reordering events seen */
|
||||
TCP_NLA_SRTT, /* smoothed RTT in usecs */
|
||||
TCP_NLA_TIMEOUT_REHASH, /* Timeout-triggered rehash attempts */
|
||||
TCP_NLA_BYTES_NOTSENT, /* Bytes in write queue not yet sent */
|
||||
};
|
||||
|
||||
/* for TCP_MD5SIG socket option */
|
||||
|
|
@ -345,5 +346,7 @@ struct tcp_zerocopy_receive {
|
|||
__u64 address; /* in: address of mapping */
|
||||
__u32 length; /* in/out: number of bytes to map/mapped */
|
||||
__u32 recv_skip_hint; /* out: amount of bytes to skip */
|
||||
__u32 inq; /* out: amount of bytes in read queue */
|
||||
__s32 err; /* out: socket error */
|
||||
};
|
||||
#endif /* _UAPI_LINUX_TCP_H */
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@
|
|||
#include <linux/types.h>
|
||||
#include <linux/time_types.h>
|
||||
|
||||
#ifndef __KERNEL__
|
||||
#ifndef _STRUCT_TIMESPEC
|
||||
#define _STRUCT_TIMESPEC
|
||||
struct timespec {
|
||||
|
|
@ -18,6 +19,17 @@ struct timeval {
|
|||
__kernel_suseconds_t tv_usec; /* microseconds */
|
||||
};
|
||||
|
||||
struct itimerspec {
|
||||
struct timespec it_interval;/* timer period */
|
||||
struct timespec it_value; /* timer expiration */
|
||||
};
|
||||
|
||||
struct itimerval {
|
||||
struct timeval it_interval;/* timer interval */
|
||||
struct timeval it_value; /* current value */
|
||||
};
|
||||
#endif
|
||||
|
||||
struct timezone {
|
||||
int tz_minuteswest; /* minutes west of Greenwich */
|
||||
int tz_dsttime; /* type of dst correction */
|
||||
|
|
@ -31,16 +43,6 @@ struct timezone {
|
|||
#define ITIMER_VIRTUAL 1
|
||||
#define ITIMER_PROF 2
|
||||
|
||||
struct itimerspec {
|
||||
struct timespec it_interval; /* timer period */
|
||||
struct timespec it_value; /* timer expiration */
|
||||
};
|
||||
|
||||
struct itimerval {
|
||||
struct timeval it_interval; /* timer interval */
|
||||
struct timeval it_value; /* current value */
|
||||
};
|
||||
|
||||
/*
|
||||
* The IDs of the various system clocks (for POSIX.1b interval timers):
|
||||
*/
|
||||
|
|
|
|||
128
include/uapi/linux/um_timetravel.h
Normal file
128
include/uapi/linux/um_timetravel.h
Normal file
|
|
@ -0,0 +1,128 @@
|
|||
/*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*
|
||||
* Copyright (C) 2019 Intel Corporation
|
||||
*/
|
||||
#ifndef _UAPI_LINUX_UM_TIMETRAVEL_H
|
||||
#define _UAPI_LINUX_UM_TIMETRAVEL_H
|
||||
#include <linux/types.h>
|
||||
|
||||
/**
|
||||
* struct um_timetravel_msg - UM time travel message
|
||||
*
|
||||
* This is the basic message type, going in both directions.
|
||||
*
|
||||
* This is the message passed between the host (user-mode Linux instance)
|
||||
* and the calendar (the application on the other side of the socket) in
|
||||
* order to implement common scheduling.
|
||||
*
|
||||
* Whenever UML has an event it will request runtime for it from the
|
||||
* calendar, and then wait for its turn until it can run, etc. Note
|
||||
* that it will only ever request the single next runtime, i.e. multiple
|
||||
* REQUEST messages override each other.
|
||||
*/
|
||||
struct um_timetravel_msg {
|
||||
/**
|
||||
* @op: operation value from &enum um_timetravel_ops
|
||||
*/
|
||||
__u32 op;
|
||||
|
||||
/**
|
||||
* @seq: sequence number for the message - shall be reflected in
|
||||
* the ACK response, and should be checked while processing
|
||||
* the response to see if it matches
|
||||
*/
|
||||
__u32 seq;
|
||||
|
||||
/**
|
||||
* @time: time in nanoseconds
|
||||
*/
|
||||
__u64 time;
|
||||
};
|
||||
|
||||
/**
|
||||
* enum um_timetravel_ops - Operation codes
|
||||
*/
|
||||
enum um_timetravel_ops {
|
||||
/**
|
||||
* @UM_TIMETRAVEL_ACK: response (ACK) to any previous message,
|
||||
* this usually doesn't carry any data in the 'time' field
|
||||
* unless otherwise specified below
|
||||
*/
|
||||
UM_TIMETRAVEL_ACK = 0,
|
||||
|
||||
/**
|
||||
* @UM_TIMETRAVEL_START: initialize the connection, the time
|
||||
* field contains an (arbitrary) ID to possibly be able
|
||||
* to distinguish the connections.
|
||||
*/
|
||||
UM_TIMETRAVEL_START = 1,
|
||||
|
||||
/**
|
||||
* @UM_TIMETRAVEL_REQUEST: request to run at the given time
|
||||
* (host -> calendar)
|
||||
*/
|
||||
UM_TIMETRAVEL_REQUEST = 2,
|
||||
|
||||
/**
|
||||
* @UM_TIMETRAVEL_WAIT: Indicate waiting for the previously requested
|
||||
* runtime, new requests may be made while waiting (e.g. due to
|
||||
* interrupts); the time field is ignored. The calendar must process
|
||||
* this message and later send a %UM_TIMETRAVEL_RUN message when
|
||||
* the host can run again.
|
||||
* (host -> calendar)
|
||||
*/
|
||||
UM_TIMETRAVEL_WAIT = 3,
|
||||
|
||||
/**
|
||||
* @UM_TIMETRAVEL_GET: return the current time from the calendar in the
|
||||
* ACK message, the time in the request message is ignored
|
||||
* (host -> calendar)
|
||||
*/
|
||||
UM_TIMETRAVEL_GET = 4,
|
||||
|
||||
/**
|
||||
* @UM_TIMETRAVEL_UPDATE: time update to the calendar, must be sent e.g.
|
||||
* before kicking an interrupt to another calendar
|
||||
* (host -> calendar)
|
||||
*/
|
||||
UM_TIMETRAVEL_UPDATE = 5,
|
||||
|
||||
/**
|
||||
* @UM_TIMETRAVEL_RUN: run time request granted, current time is in
|
||||
* the time field
|
||||
* (calendar -> host)
|
||||
*/
|
||||
UM_TIMETRAVEL_RUN = 6,
|
||||
|
||||
/**
|
||||
* @UM_TIMETRAVEL_FREE_UNTIL: Enable free-running until the given time,
|
||||
* this is a message from the calendar telling the host that it can
|
||||
* freely do its own scheduling for anything before the indicated
|
||||
* time.
|
||||
* Note that if a calendar sends this message once, the host may
|
||||
* assume that it will also do so in the future, if it implements
|
||||
* wraparound semantics for the time field.
|
||||
* (calendar -> host)
|
||||
*/
|
||||
UM_TIMETRAVEL_FREE_UNTIL = 7,
|
||||
|
||||
/**
|
||||
* @UM_TIMETRAVEL_GET_TOD: Return time of day, typically used once at
|
||||
* boot by the virtual machines to get a synchronized time from
|
||||
* the simulation.
|
||||
*/
|
||||
UM_TIMETRAVEL_GET_TOD = 8,
|
||||
};
|
||||
|
||||
#endif /* _UAPI_LINUX_UM_TIMETRAVEL_H */
|
||||
|
|
@ -14,18 +14,18 @@
|
|||
* ACA (Accessory Charger Adapters)
|
||||
*/
|
||||
enum usb_charger_type {
|
||||
UNKNOWN_TYPE,
|
||||
SDP_TYPE,
|
||||
DCP_TYPE,
|
||||
CDP_TYPE,
|
||||
ACA_TYPE,
|
||||
UNKNOWN_TYPE = 0,
|
||||
SDP_TYPE = 1,
|
||||
DCP_TYPE = 2,
|
||||
CDP_TYPE = 3,
|
||||
ACA_TYPE = 4,
|
||||
};
|
||||
|
||||
/* USB charger state */
|
||||
enum usb_charger_state {
|
||||
USB_CHARGER_DEFAULT,
|
||||
USB_CHARGER_PRESENT,
|
||||
USB_CHARGER_ABSENT,
|
||||
USB_CHARGER_DEFAULT = 0,
|
||||
USB_CHARGER_PRESENT = 1,
|
||||
USB_CHARGER_ABSENT = 2,
|
||||
};
|
||||
|
||||
#endif /* _UAPI__LINUX_USB_CHARGER_H */
|
||||
|
|
|
|||
167
include/uapi/linux/usb/raw_gadget.h
Normal file
167
include/uapi/linux/usb/raw_gadget.h
Normal file
|
|
@ -0,0 +1,167 @@
|
|||
/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
|
||||
/*
|
||||
* USB Raw Gadget driver.
|
||||
*
|
||||
* See Documentation/usb/raw-gadget.rst for more details.
|
||||
*/
|
||||
|
||||
#ifndef _UAPI__LINUX_USB_RAW_GADGET_H
|
||||
#define _UAPI__LINUX_USB_RAW_GADGET_H
|
||||
|
||||
#include <asm/ioctl.h>
|
||||
#include <linux/types.h>
|
||||
#include <linux/usb/ch9.h>
|
||||
|
||||
/* Maximum length of driver_name/device_name in the usb_raw_init struct. */
|
||||
#define UDC_NAME_LENGTH_MAX 128
|
||||
|
||||
/*
|
||||
* struct usb_raw_init - argument for USB_RAW_IOCTL_INIT ioctl.
|
||||
* @speed: The speed of the emulated USB device, takes the same values as
|
||||
* the usb_device_speed enum: USB_SPEED_FULL, USB_SPEED_HIGH, etc.
|
||||
* @driver_name: The name of the UDC driver.
|
||||
* @device_name: The name of a UDC instance.
|
||||
*
|
||||
* The last two fields identify a UDC the gadget driver should bind to.
|
||||
* For example, Dummy UDC has "dummy_udc" as its driver_name and "dummy_udc.N"
|
||||
* as its device_name, where N in the index of the Dummy UDC instance.
|
||||
* At the same time the dwc2 driver that is used on Raspberry Pi Zero, has
|
||||
* "20980000.usb" as both driver_name and device_name.
|
||||
*/
|
||||
struct usb_raw_init {
|
||||
__u8 driver_name[UDC_NAME_LENGTH_MAX];
|
||||
__u8 device_name[UDC_NAME_LENGTH_MAX];
|
||||
__u8 speed;
|
||||
};
|
||||
|
||||
/* The type of event fetched with the USB_RAW_IOCTL_EVENT_FETCH ioctl. */
|
||||
enum usb_raw_event_type {
|
||||
USB_RAW_EVENT_INVALID = 0,
|
||||
|
||||
/* This event is queued when the driver has bound to a UDC. */
|
||||
USB_RAW_EVENT_CONNECT = 1,
|
||||
|
||||
/* This event is queued when a new control request arrived to ep0. */
|
||||
USB_RAW_EVENT_CONTROL = 2,
|
||||
|
||||
/* The list might grow in the future. */
|
||||
};
|
||||
|
||||
/*
|
||||
* struct usb_raw_event - argument for USB_RAW_IOCTL_EVENT_FETCH ioctl.
|
||||
* @type: The type of the fetched event.
|
||||
* @length: Length of the data buffer. Updated by the driver and set to the
|
||||
* actual length of the fetched event data.
|
||||
* @data: A buffer to store the fetched event data.
|
||||
*
|
||||
* Currently the fetched data buffer is empty for USB_RAW_EVENT_CONNECT,
|
||||
* and contains struct usb_ctrlrequest for USB_RAW_EVENT_CONTROL.
|
||||
*/
|
||||
struct usb_raw_event {
|
||||
__u32 type;
|
||||
__u32 length;
|
||||
__u8 data[0];
|
||||
};
|
||||
|
||||
#define USB_RAW_IO_FLAGS_ZERO 0x0001
|
||||
#define USB_RAW_IO_FLAGS_MASK 0x0001
|
||||
|
||||
static inline int usb_raw_io_flags_valid(__u16 flags)
|
||||
{
|
||||
return (flags & ~USB_RAW_IO_FLAGS_MASK) == 0;
|
||||
}
|
||||
|
||||
static inline int usb_raw_io_flags_zero(__u16 flags)
|
||||
{
|
||||
return (flags & USB_RAW_IO_FLAGS_ZERO);
|
||||
}
|
||||
|
||||
/*
|
||||
* struct usb_raw_ep_io - argument for USB_RAW_IOCTL_EP0/EP_WRITE/READ ioctls.
|
||||
* @ep: Endpoint handle as returned by USB_RAW_IOCTL_EP_ENABLE for
|
||||
* USB_RAW_IOCTL_EP_WRITE/READ. Ignored for USB_RAW_IOCTL_EP0_WRITE/READ.
|
||||
* @flags: When USB_RAW_IO_FLAGS_ZERO is specified, the zero flag is set on
|
||||
* the submitted USB request, see include/linux/usb/gadget.h for details.
|
||||
* @length: Length of data.
|
||||
* @data: Data to send for USB_RAW_IOCTL_EP0/EP_WRITE. Buffer to store received
|
||||
* data for USB_RAW_IOCTL_EP0/EP_READ.
|
||||
*/
|
||||
struct usb_raw_ep_io {
|
||||
__u16 ep;
|
||||
__u16 flags;
|
||||
__u32 length;
|
||||
__u8 data[0];
|
||||
};
|
||||
|
||||
/*
|
||||
* Initializes a Raw Gadget instance.
|
||||
* Accepts a pointer to the usb_raw_init struct as an argument.
|
||||
* Returns 0 on success or negative error code on failure.
|
||||
*/
|
||||
#define USB_RAW_IOCTL_INIT _IOW('U', 0, struct usb_raw_init)
|
||||
|
||||
/*
|
||||
* Instructs Raw Gadget to bind to a UDC and start emulating a USB device.
|
||||
* Returns 0 on success or negative error code on failure.
|
||||
*/
|
||||
#define USB_RAW_IOCTL_RUN _IO('U', 1)
|
||||
|
||||
/*
|
||||
* A blocking ioctl that waits for an event and returns fetched event data to
|
||||
* the user.
|
||||
* Accepts a pointer to the usb_raw_event struct.
|
||||
* Returns 0 on success or negative error code on failure.
|
||||
*/
|
||||
#define USB_RAW_IOCTL_EVENT_FETCH _IOR('U', 2, struct usb_raw_event)
|
||||
|
||||
/*
|
||||
* Queues an IN (OUT for READ) urb as a response to the last control request
|
||||
* received on endpoint 0, provided that was an IN (OUT for READ) request and
|
||||
* waits until the urb is completed. Copies received data to user for READ.
|
||||
* Accepts a pointer to the usb_raw_ep_io struct as an argument.
|
||||
* Returns length of trasferred data on success or negative error code on
|
||||
* failure.
|
||||
*/
|
||||
#define USB_RAW_IOCTL_EP0_WRITE _IOW('U', 3, struct usb_raw_ep_io)
|
||||
#define USB_RAW_IOCTL_EP0_READ _IOWR('U', 4, struct usb_raw_ep_io)
|
||||
|
||||
/*
|
||||
* Finds an endpoint that supports the transfer type specified in the
|
||||
* descriptor and enables it.
|
||||
* Accepts a pointer to the usb_endpoint_descriptor struct as an argument.
|
||||
* Returns enabled endpoint handle on success or negative error code on failure.
|
||||
*/
|
||||
#define USB_RAW_IOCTL_EP_ENABLE _IOW('U', 5, struct usb_endpoint_descriptor)
|
||||
|
||||
/* Disables specified endpoint.
|
||||
* Accepts endpoint handle as an argument.
|
||||
* Returns 0 on success or negative error code on failure.
|
||||
*/
|
||||
#define USB_RAW_IOCTL_EP_DISABLE _IOW('U', 6, __u32)
|
||||
|
||||
/*
|
||||
* Queues an IN (OUT for READ) urb as a response to the last control request
|
||||
* received on endpoint usb_raw_ep_io.ep, provided that was an IN (OUT for READ)
|
||||
* request and waits until the urb is completed. Copies received data to user
|
||||
* for READ.
|
||||
* Accepts a pointer to the usb_raw_ep_io struct as an argument.
|
||||
* Returns length of trasferred data on success or negative error code on
|
||||
* failure.
|
||||
*/
|
||||
#define USB_RAW_IOCTL_EP_WRITE _IOW('U', 7, struct usb_raw_ep_io)
|
||||
#define USB_RAW_IOCTL_EP_READ _IOWR('U', 8, struct usb_raw_ep_io)
|
||||
|
||||
/*
|
||||
* Switches the gadget into the configured state.
|
||||
* Returns 0 on success or negative error code on failure.
|
||||
*/
|
||||
#define USB_RAW_IOCTL_CONFIGURE _IO('U', 9)
|
||||
|
||||
/*
|
||||
* Constrains UDC VBUS power usage.
|
||||
* Accepts current limit in 2 mA units as an argument.
|
||||
* Returns 0 on success or negative error code on failure.
|
||||
*/
|
||||
#define USB_RAW_IOCTL_VBUS_DRAW _IOW('U', 10, __u32)
|
||||
|
||||
#endif /* _UAPI__LINUX_USB_RAW_GADGET_H */
|
||||
|
|
@ -19,7 +19,8 @@
|
|||
* means the userland is reading).
|
||||
*/
|
||||
#define UFFD_API ((__u64)0xAA)
|
||||
#define UFFD_API_FEATURES (UFFD_FEATURE_EVENT_FORK | \
|
||||
#define UFFD_API_FEATURES (UFFD_FEATURE_PAGEFAULT_FLAG_WP | \
|
||||
UFFD_FEATURE_EVENT_FORK | \
|
||||
UFFD_FEATURE_EVENT_REMAP | \
|
||||
UFFD_FEATURE_EVENT_REMOVE | \
|
||||
UFFD_FEATURE_EVENT_UNMAP | \
|
||||
|
|
@ -34,7 +35,8 @@
|
|||
#define UFFD_API_RANGE_IOCTLS \
|
||||
((__u64)1 << _UFFDIO_WAKE | \
|
||||
(__u64)1 << _UFFDIO_COPY | \
|
||||
(__u64)1 << _UFFDIO_ZEROPAGE)
|
||||
(__u64)1 << _UFFDIO_ZEROPAGE | \
|
||||
(__u64)1 << _UFFDIO_WRITEPROTECT)
|
||||
#define UFFD_API_RANGE_IOCTLS_BASIC \
|
||||
((__u64)1 << _UFFDIO_WAKE | \
|
||||
(__u64)1 << _UFFDIO_COPY)
|
||||
|
|
@ -52,6 +54,7 @@
|
|||
#define _UFFDIO_WAKE (0x02)
|
||||
#define _UFFDIO_COPY (0x03)
|
||||
#define _UFFDIO_ZEROPAGE (0x04)
|
||||
#define _UFFDIO_WRITEPROTECT (0x06)
|
||||
#define _UFFDIO_API (0x3F)
|
||||
|
||||
/* userfaultfd ioctl ids */
|
||||
|
|
@ -68,6 +71,8 @@
|
|||
struct uffdio_copy)
|
||||
#define UFFDIO_ZEROPAGE _IOWR(UFFDIO, _UFFDIO_ZEROPAGE, \
|
||||
struct uffdio_zeropage)
|
||||
#define UFFDIO_WRITEPROTECT _IOWR(UFFDIO, _UFFDIO_WRITEPROTECT, \
|
||||
struct uffdio_writeprotect)
|
||||
|
||||
/* read() structure */
|
||||
struct uffd_msg {
|
||||
|
|
@ -203,13 +208,14 @@ struct uffdio_copy {
|
|||
__u64 dst;
|
||||
__u64 src;
|
||||
__u64 len;
|
||||
/*
|
||||
* There will be a wrprotection flag later that allows to map
|
||||
* pages wrprotected on the fly. And such a flag will be
|
||||
* available if the wrprotection ioctl are implemented for the
|
||||
* range according to the uffdio_register.ioctls.
|
||||
*/
|
||||
#define UFFDIO_COPY_MODE_DONTWAKE ((__u64)1<<0)
|
||||
/*
|
||||
* UFFDIO_COPY_MODE_WP will map the page write protected on
|
||||
* the fly. UFFDIO_COPY_MODE_WP is available only if the
|
||||
* write protected ioctl is implemented for the range
|
||||
* according to the uffdio_register.ioctls.
|
||||
*/
|
||||
#define UFFDIO_COPY_MODE_WP ((__u64)1<<1)
|
||||
__u64 mode;
|
||||
|
||||
/*
|
||||
|
|
@ -231,4 +237,24 @@ struct uffdio_zeropage {
|
|||
__s64 zeropage;
|
||||
};
|
||||
|
||||
struct uffdio_writeprotect {
|
||||
struct uffdio_range range;
|
||||
/*
|
||||
* UFFDIO_WRITEPROTECT_MODE_WP: set the flag to write protect a range,
|
||||
* unset the flag to undo protection of a range which was previously
|
||||
* write protected.
|
||||
*
|
||||
* UFFDIO_WRITEPROTECT_MODE_DONTWAKE: set the flag to avoid waking up
|
||||
* any wait thread after the operation succeeds.
|
||||
*
|
||||
* NOTE: Write protecting a region (WP=1) is unrelated to page faults,
|
||||
* therefore DONTWAKE flag is meaningless with WP=1. Removing write
|
||||
* protection (WP=0) in response to a page fault wakes the faulting
|
||||
* task unless DONTWAKE is set.
|
||||
*/
|
||||
#define UFFDIO_WRITEPROTECT_MODE_WP ((__u64)1<<0)
|
||||
#define UFFDIO_WRITEPROTECT_MODE_DONTWAKE ((__u64)1<<1)
|
||||
__u64 mode;
|
||||
};
|
||||
|
||||
#endif /* _LINUX_USERFAULTFD_H */
|
||||
|
|
|
|||
|
|
@ -192,6 +192,12 @@ enum v4l2_colorfx {
|
|||
* We reserve 16 controls for this driver. */
|
||||
#define V4L2_CID_USER_IMX_BASE (V4L2_CID_USER_BASE + 0x10b0)
|
||||
|
||||
/*
|
||||
* The base for the atmel isc driver controls.
|
||||
* We reserve 32 controls for this driver.
|
||||
*/
|
||||
#define V4L2_CID_USER_ATMEL_ISC_BASE (V4L2_CID_USER_BASE + 0x10c0)
|
||||
|
||||
/* MPEG-class control IDs */
|
||||
/* The MPEG controls are applicable to all codec controls
|
||||
* and the 'MPEG' part of the define is historical */
|
||||
|
|
|
|||
|
|
@ -707,6 +707,43 @@ struct vfio_device_ioeventfd {
|
|||
|
||||
#define VFIO_DEVICE_IOEVENTFD _IO(VFIO_TYPE, VFIO_BASE + 16)
|
||||
|
||||
/**
|
||||
* VFIO_DEVICE_FEATURE - _IORW(VFIO_TYPE, VFIO_BASE + 17,
|
||||
* struct vfio_device_feature)
|
||||
*
|
||||
* Get, set, or probe feature data of the device. The feature is selected
|
||||
* using the FEATURE_MASK portion of the flags field. Support for a feature
|
||||
* can be probed by setting both the FEATURE_MASK and PROBE bits. A probe
|
||||
* may optionally include the GET and/or SET bits to determine read vs write
|
||||
* access of the feature respectively. Probing a feature will return success
|
||||
* if the feature is supported and all of the optionally indicated GET/SET
|
||||
* methods are supported. The format of the data portion of the structure is
|
||||
* specific to the given feature. The data portion is not required for
|
||||
* probing. GET and SET are mutually exclusive, except for use with PROBE.
|
||||
*
|
||||
* Return 0 on success, -errno on failure.
|
||||
*/
|
||||
struct vfio_device_feature {
|
||||
__u32 argsz;
|
||||
__u32 flags;
|
||||
#define VFIO_DEVICE_FEATURE_MASK (0xffff) /* 16-bit feature index */
|
||||
#define VFIO_DEVICE_FEATURE_GET (1 << 16) /* Get feature into data[] */
|
||||
#define VFIO_DEVICE_FEATURE_SET (1 << 17) /* Set feature from data[] */
|
||||
#define VFIO_DEVICE_FEATURE_PROBE (1 << 18) /* Probe feature support */
|
||||
__u8 data[];
|
||||
};
|
||||
|
||||
#define VFIO_DEVICE_FEATURE _IO(VFIO_TYPE, VFIO_BASE + 17)
|
||||
|
||||
/*
|
||||
* Provide support for setting a PCI VF Token, which is used as a shared
|
||||
* secret between PF and VF drivers. This feature may only be set on a
|
||||
* PCI SR-IOV PF when SR-IOV is enabled on the PF and there are no existing
|
||||
* open VFs. Data provided when setting this feature is a 16-byte array
|
||||
* (__u8 b[16]), representing a UUID.
|
||||
*/
|
||||
#define VFIO_DEVICE_FEATURE_PCI_VF_TOKEN (0)
|
||||
|
||||
/* -------- API for Type1 VFIO IOMMU -------- */
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -116,4 +116,28 @@
|
|||
#define VHOST_VSOCK_SET_GUEST_CID _IOW(VHOST_VIRTIO, 0x60, __u64)
|
||||
#define VHOST_VSOCK_SET_RUNNING _IOW(VHOST_VIRTIO, 0x61, int)
|
||||
|
||||
/* VHOST_VDPA specific defines */
|
||||
|
||||
/* Get the device id. The device ids follow the same definition of
|
||||
* the device id defined in virtio-spec.
|
||||
*/
|
||||
#define VHOST_VDPA_GET_DEVICE_ID _IOR(VHOST_VIRTIO, 0x70, __u32)
|
||||
/* Get and set the status. The status bits follow the same definition
|
||||
* of the device status defined in virtio-spec.
|
||||
*/
|
||||
#define VHOST_VDPA_GET_STATUS _IOR(VHOST_VIRTIO, 0x71, __u8)
|
||||
#define VHOST_VDPA_SET_STATUS _IOW(VHOST_VIRTIO, 0x72, __u8)
|
||||
/* Get and set the device config. The device config follows the same
|
||||
* definition of the device config defined in virtio-spec.
|
||||
*/
|
||||
#define VHOST_VDPA_GET_CONFIG _IOR(VHOST_VIRTIO, 0x73, \
|
||||
struct vhost_vdpa_config)
|
||||
#define VHOST_VDPA_SET_CONFIG _IOW(VHOST_VIRTIO, 0x74, \
|
||||
struct vhost_vdpa_config)
|
||||
/* Enable/disable the ring. */
|
||||
#define VHOST_VDPA_SET_VRING_ENABLE _IOW(VHOST_VIRTIO, 0x75, \
|
||||
struct vhost_vring_state)
|
||||
/* Get the max ring size. */
|
||||
#define VHOST_VDPA_GET_VRING_NUM _IOR(VHOST_VIRTIO, 0x76, __u16)
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -119,6 +119,14 @@ struct vhost_scsi_target {
|
|||
unsigned short reserved;
|
||||
};
|
||||
|
||||
/* VHOST_VDPA specific definitions */
|
||||
|
||||
struct vhost_vdpa_config {
|
||||
__u32 off;
|
||||
__u32 len;
|
||||
__u8 buf[0];
|
||||
};
|
||||
|
||||
/* Feature bits */
|
||||
/* Log all write descriptors. Can be changed while device is active. */
|
||||
#define VHOST_F_LOG_ALL 26
|
||||
|
|
|
|||
|
|
@ -565,6 +565,7 @@ struct v4l2_pix_format {
|
|||
#define V4L2_PIX_FMT_Y6 v4l2_fourcc('Y', '0', '6', ' ') /* 6 Greyscale */
|
||||
#define V4L2_PIX_FMT_Y10 v4l2_fourcc('Y', '1', '0', ' ') /* 10 Greyscale */
|
||||
#define V4L2_PIX_FMT_Y12 v4l2_fourcc('Y', '1', '2', ' ') /* 12 Greyscale */
|
||||
#define V4L2_PIX_FMT_Y14 v4l2_fourcc('Y', '1', '4', ' ') /* 14 Greyscale */
|
||||
#define V4L2_PIX_FMT_Y16 v4l2_fourcc('Y', '1', '6', ' ') /* 16 Greyscale */
|
||||
#define V4L2_PIX_FMT_Y16_BE v4l2_fourcc_be('Y', '1', '6', ' ') /* 16 Greyscale BE */
|
||||
|
||||
|
|
@ -662,6 +663,10 @@ struct v4l2_pix_format {
|
|||
#define V4L2_PIX_FMT_SGBRG12P v4l2_fourcc('p', 'G', 'C', 'C')
|
||||
#define V4L2_PIX_FMT_SGRBG12P v4l2_fourcc('p', 'g', 'C', 'C')
|
||||
#define V4L2_PIX_FMT_SRGGB12P v4l2_fourcc('p', 'R', 'C', 'C')
|
||||
#define V4L2_PIX_FMT_SBGGR14 v4l2_fourcc('B', 'G', '1', '4') /* 14 BGBG.. GRGR.. */
|
||||
#define V4L2_PIX_FMT_SGBRG14 v4l2_fourcc('G', 'B', '1', '4') /* 14 GBGB.. RGRG.. */
|
||||
#define V4L2_PIX_FMT_SGRBG14 v4l2_fourcc('G', 'R', '1', '4') /* 14 GRGR.. BGBG.. */
|
||||
#define V4L2_PIX_FMT_SRGGB14 v4l2_fourcc('R', 'G', '1', '4') /* 14 RGRG.. GBGB.. */
|
||||
/* 14bit raw bayer packed, 7 bytes for every 4 pixels */
|
||||
#define V4L2_PIX_FMT_SBGGR14P v4l2_fourcc('p', 'B', 'E', 'E')
|
||||
#define V4L2_PIX_FMT_SGBRG14P v4l2_fourcc('p', 'G', 'E', 'E')
|
||||
|
|
@ -1242,6 +1247,10 @@ struct v4l2_selection {
|
|||
|
||||
typedef __u64 v4l2_std_id;
|
||||
|
||||
/*
|
||||
* Attention: Keep the V4L2_STD_* bit definitions in sync with
|
||||
* include/dt-bindings/display/sdtv-standards.h SDTV_STD_* bit definitions.
|
||||
*/
|
||||
/* one bit for each */
|
||||
#define V4L2_STD_PAL_B ((v4l2_std_id)0x00000001)
|
||||
#define V4L2_STD_PAL_B1 ((v4l2_std_id)0x00000002)
|
||||
|
|
|
|||
|
|
@ -36,6 +36,7 @@
|
|||
#define VIRTIO_BALLOON_F_DEFLATE_ON_OOM 2 /* Deflate balloon on OOM */
|
||||
#define VIRTIO_BALLOON_F_FREE_PAGE_HINT 3 /* VQ to report free pages */
|
||||
#define VIRTIO_BALLOON_F_PAGE_POISON 4 /* Guest is using page poisoning */
|
||||
#define VIRTIO_BALLOON_F_REPORTING 5 /* Page reporting virtqueue */
|
||||
|
||||
/* Size of a PFN in the balloon interface. */
|
||||
#define VIRTIO_BALLOON_PFN_SHIFT 12
|
||||
|
|
|
|||
|
|
@ -46,5 +46,6 @@
|
|||
#define VIRTIO_ID_IOMMU 23 /* virtio IOMMU */
|
||||
#define VIRTIO_ID_FS 26 /* virtio filesystem */
|
||||
#define VIRTIO_ID_PMEM 27 /* virtio pmem */
|
||||
#define VIRTIO_ID_MAC80211_HWSIM 29 /* virtio mac80211-hwsim */
|
||||
|
||||
#endif /* _LINUX_VIRTIO_IDS_H */
|
||||
|
|
|
|||
|
|
@ -18,24 +18,24 @@
|
|||
#define VIRTIO_IOMMU_F_MMIO 5
|
||||
|
||||
struct virtio_iommu_range_64 {
|
||||
__le64 start;
|
||||
__le64 end;
|
||||
__u64 start;
|
||||
__u64 end;
|
||||
};
|
||||
|
||||
struct virtio_iommu_range_32 {
|
||||
__le32 start;
|
||||
__le32 end;
|
||||
__u32 start;
|
||||
__u32 end;
|
||||
};
|
||||
|
||||
struct virtio_iommu_config {
|
||||
/* Supported page sizes */
|
||||
__le64 page_size_mask;
|
||||
__u64 page_size_mask;
|
||||
/* Supported IOVA range */
|
||||
struct virtio_iommu_range_64 input_range;
|
||||
/* Max domain ID size */
|
||||
struct virtio_iommu_range_32 domain_range;
|
||||
/* Probe buffer size */
|
||||
__le32 probe_size;
|
||||
__u32 probe_size;
|
||||
};
|
||||
|
||||
/* Request types */
|
||||
|
|
|
|||
|
|
@ -57,6 +57,9 @@
|
|||
* Steering */
|
||||
#define VIRTIO_NET_F_CTRL_MAC_ADDR 23 /* Set MAC address */
|
||||
|
||||
#define VIRTIO_NET_F_HASH_REPORT 57 /* Supports hash report */
|
||||
#define VIRTIO_NET_F_RSS 60 /* Supports RSS RX steering */
|
||||
#define VIRTIO_NET_F_RSC_EXT 61 /* extended coalescing info */
|
||||
#define VIRTIO_NET_F_STANDBY 62 /* Act as standby for another device
|
||||
* with the same MAC.
|
||||
*/
|
||||
|
|
@ -69,6 +72,17 @@
|
|||
#define VIRTIO_NET_S_LINK_UP 1 /* Link is up */
|
||||
#define VIRTIO_NET_S_ANNOUNCE 2 /* Announcement is needed */
|
||||
|
||||
/* supported/enabled hash types */
|
||||
#define VIRTIO_NET_RSS_HASH_TYPE_IPv4 (1 << 0)
|
||||
#define VIRTIO_NET_RSS_HASH_TYPE_TCPv4 (1 << 1)
|
||||
#define VIRTIO_NET_RSS_HASH_TYPE_UDPv4 (1 << 2)
|
||||
#define VIRTIO_NET_RSS_HASH_TYPE_IPv6 (1 << 3)
|
||||
#define VIRTIO_NET_RSS_HASH_TYPE_TCPv6 (1 << 4)
|
||||
#define VIRTIO_NET_RSS_HASH_TYPE_UDPv6 (1 << 5)
|
||||
#define VIRTIO_NET_RSS_HASH_TYPE_IP_EX (1 << 6)
|
||||
#define VIRTIO_NET_RSS_HASH_TYPE_TCP_EX (1 << 7)
|
||||
#define VIRTIO_NET_RSS_HASH_TYPE_UDP_EX (1 << 8)
|
||||
|
||||
struct virtio_net_config {
|
||||
/* The config defining mac address (if VIRTIO_NET_F_MAC) */
|
||||
__u8 mac[ETH_ALEN];
|
||||
|
|
@ -92,6 +106,12 @@ struct virtio_net_config {
|
|||
* Any other value stands for unknown.
|
||||
*/
|
||||
__u8 duplex;
|
||||
/* maximum size of RSS key */
|
||||
__u8 rss_max_key_size;
|
||||
/* maximum number of indirection table entries */
|
||||
__le16 rss_max_indirection_table_length;
|
||||
/* bitmask of supported VIRTIO_NET_RSS_HASH_ types */
|
||||
__le32 supported_hash_types;
|
||||
} __attribute__((packed));
|
||||
|
||||
/*
|
||||
|
|
@ -104,6 +124,7 @@ struct virtio_net_config {
|
|||
struct virtio_net_hdr_v1 {
|
||||
#define VIRTIO_NET_HDR_F_NEEDS_CSUM 1 /* Use csum_start, csum_offset */
|
||||
#define VIRTIO_NET_HDR_F_DATA_VALID 2 /* Csum is valid */
|
||||
#define VIRTIO_NET_HDR_F_RSC_INFO 4 /* rsc info in csum_ fields */
|
||||
__u8 flags;
|
||||
#define VIRTIO_NET_HDR_GSO_NONE 0 /* Not a GSO frame */
|
||||
#define VIRTIO_NET_HDR_GSO_TCPV4 1 /* GSO frame, IPv4 TCP (TSO) */
|
||||
|
|
@ -113,11 +134,46 @@ struct virtio_net_hdr_v1 {
|
|||
__u8 gso_type;
|
||||
__virtio16 hdr_len; /* Ethernet + IP + tcp/udp hdrs */
|
||||
__virtio16 gso_size; /* Bytes to append to hdr_len per frame */
|
||||
__virtio16 csum_start; /* Position to start checksumming from */
|
||||
__virtio16 csum_offset; /* Offset after that to place checksum */
|
||||
union {
|
||||
struct {
|
||||
__virtio16 csum_start;
|
||||
__virtio16 csum_offset;
|
||||
};
|
||||
/* Checksum calculation */
|
||||
struct {
|
||||
/* Position to start checksumming from */
|
||||
__virtio16 start;
|
||||
/* Offset after that to place checksum */
|
||||
__virtio16 offset;
|
||||
} csum;
|
||||
/* Receive Segment Coalescing */
|
||||
struct {
|
||||
/* Number of coalesced segments */
|
||||
__le16 segments;
|
||||
/* Number of duplicated acks */
|
||||
__le16 dup_acks;
|
||||
} rsc;
|
||||
};
|
||||
__virtio16 num_buffers; /* Number of merged rx buffers */
|
||||
};
|
||||
|
||||
struct virtio_net_hdr_v1_hash {
|
||||
struct virtio_net_hdr_v1 hdr;
|
||||
__le32 hash_value;
|
||||
#define VIRTIO_NET_HASH_REPORT_NONE 0
|
||||
#define VIRTIO_NET_HASH_REPORT_IPv4 1
|
||||
#define VIRTIO_NET_HASH_REPORT_TCPv4 2
|
||||
#define VIRTIO_NET_HASH_REPORT_UDPv4 3
|
||||
#define VIRTIO_NET_HASH_REPORT_IPv6 4
|
||||
#define VIRTIO_NET_HASH_REPORT_TCPv6 5
|
||||
#define VIRTIO_NET_HASH_REPORT_UDPv6 6
|
||||
#define VIRTIO_NET_HASH_REPORT_IPv6_EX 7
|
||||
#define VIRTIO_NET_HASH_REPORT_TCPv6_EX 8
|
||||
#define VIRTIO_NET_HASH_REPORT_UDPv6_EX 9
|
||||
__le16 hash_report;
|
||||
__le16 padding;
|
||||
};
|
||||
|
||||
#ifndef VIRTIO_NET_NO_LEGACY
|
||||
/* This header comes first in the scatter-gather list.
|
||||
* For legacy virtio, if VIRTIO_F_ANY_LAYOUT is not negotiated, it must
|
||||
|
|
@ -228,7 +284,9 @@ struct virtio_net_ctrl_mac {
|
|||
|
||||
/*
|
||||
* Control Receive Flow Steering
|
||||
*
|
||||
*/
|
||||
#define VIRTIO_NET_CTRL_MQ 4
|
||||
/*
|
||||
* The command VIRTIO_NET_CTRL_MQ_VQ_PAIRS_SET
|
||||
* enables Receive Flow Steering, specifying the number of the transmit and
|
||||
* receive queues that will be used. After the command is consumed and acked by
|
||||
|
|
@ -241,11 +299,47 @@ struct virtio_net_ctrl_mq {
|
|||
__virtio16 virtqueue_pairs;
|
||||
};
|
||||
|
||||
#define VIRTIO_NET_CTRL_MQ 4
|
||||
#define VIRTIO_NET_CTRL_MQ_VQ_PAIRS_SET 0
|
||||
#define VIRTIO_NET_CTRL_MQ_VQ_PAIRS_MIN 1
|
||||
#define VIRTIO_NET_CTRL_MQ_VQ_PAIRS_MAX 0x8000
|
||||
|
||||
/*
|
||||
* The command VIRTIO_NET_CTRL_MQ_RSS_CONFIG has the same effect as
|
||||
* VIRTIO_NET_CTRL_MQ_VQ_PAIRS_SET does and additionally configures
|
||||
* the receive steering to use a hash calculated for incoming packet
|
||||
* to decide on receive virtqueue to place the packet. The command
|
||||
* also provides parameters to calculate a hash and receive virtqueue.
|
||||
*/
|
||||
struct virtio_net_rss_config {
|
||||
__le32 hash_types;
|
||||
__le16 indirection_table_mask;
|
||||
__le16 unclassified_queue;
|
||||
__le16 indirection_table[1/* + indirection_table_mask */];
|
||||
__le16 max_tx_vq;
|
||||
__u8 hash_key_length;
|
||||
__u8 hash_key_data[/* hash_key_length */];
|
||||
};
|
||||
|
||||
#define VIRTIO_NET_CTRL_MQ_RSS_CONFIG 1
|
||||
|
||||
/*
|
||||
* The command VIRTIO_NET_CTRL_MQ_HASH_CONFIG requests the device
|
||||
* to include in the virtio header of the packet the value of the
|
||||
* calculated hash and the report type of hash. It also provides
|
||||
* parameters for hash calculation. The command requires feature
|
||||
* VIRTIO_NET_F_HASH_REPORT to be negotiated to extend the
|
||||
* layout of virtio header as defined in virtio_net_hdr_v1_hash.
|
||||
*/
|
||||
struct virtio_net_hash_config {
|
||||
__le32 hash_types;
|
||||
/* for compatibility with virtio_net_rss_config */
|
||||
__le16 reserved[4];
|
||||
__u8 hash_key_length;
|
||||
__u8 hash_key_data[/* hash_key_length */];
|
||||
};
|
||||
|
||||
#define VIRTIO_NET_CTRL_MQ_HASH_CONFIG 2
|
||||
|
||||
/*
|
||||
* Control network offloads
|
||||
*
|
||||
|
|
|
|||
|
|
@ -74,6 +74,8 @@
|
|||
#include <linux/socket.h> /* for "struct sockaddr" et al */
|
||||
#include <linux/if.h> /* for IFNAMSIZ and co... */
|
||||
|
||||
#include <stddef.h> /* for offsetof */
|
||||
|
||||
/***************************** VERSION *****************************/
|
||||
/*
|
||||
* This constant is used to know the availability of the wireless
|
||||
|
|
@ -1090,8 +1092,7 @@ struct iw_event {
|
|||
/* iw_point events are special. First, the payload (extra data) come at
|
||||
* the end of the event, so they are bigger than IW_EV_POINT_LEN. Second,
|
||||
* we omit the pointer, so start at an offset. */
|
||||
#define IW_EV_POINT_OFF (((char *) &(((struct iw_point *) NULL)->length)) - \
|
||||
(char *) NULL)
|
||||
#define IW_EV_POINT_OFF offsetof(struct iw_point, length)
|
||||
#define IW_EV_POINT_LEN (IW_EV_LCP_LEN + sizeof(struct iw_point) - \
|
||||
IW_EV_POINT_OFF)
|
||||
|
||||
|
|
|
|||
23
include/uapi/misc/uacce/hisi_qm.h
Normal file
23
include/uapi/misc/uacce/hisi_qm.h
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */
|
||||
#ifndef _UAPI_HISI_QM_H
|
||||
#define _UAPI_HISI_QM_H
|
||||
|
||||
#include <linux/types.h>
|
||||
|
||||
/**
|
||||
* struct hisi_qp_ctx - User data for hisi qp.
|
||||
* @id: qp_index return to user space
|
||||
* @qc_type: Accelerator algorithm type
|
||||
*/
|
||||
struct hisi_qp_ctx {
|
||||
__u16 id;
|
||||
__u16 qc_type;
|
||||
};
|
||||
|
||||
#define HISI_QM_API_VER_BASE "hisi_qm_v1"
|
||||
#define HISI_QM_API_VER2_BASE "hisi_qm_v2"
|
||||
|
||||
/* UACCE_CMD_QM_SET_QP_CTX: Set qp algorithm type */
|
||||
#define UACCE_CMD_QM_SET_QP_CTX _IOWR('H', 10, struct hisi_qp_ctx)
|
||||
|
||||
#endif
|
||||
38
include/uapi/misc/uacce/uacce.h
Normal file
38
include/uapi/misc/uacce/uacce.h
Normal file
|
|
@ -0,0 +1,38 @@
|
|||
/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */
|
||||
#ifndef _UAPIUUACCE_H
|
||||
#define _UAPIUUACCE_H
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <linux/ioctl.h>
|
||||
|
||||
/*
|
||||
* UACCE_CMD_START_Q: Start queue
|
||||
*/
|
||||
#define UACCE_CMD_START_Q _IO('W', 0)
|
||||
|
||||
/*
|
||||
* UACCE_CMD_PUT_Q:
|
||||
* User actively stop queue and free queue resource immediately
|
||||
* Optimization method since close fd may delay
|
||||
*/
|
||||
#define UACCE_CMD_PUT_Q _IO('W', 1)
|
||||
|
||||
/*
|
||||
* UACCE Device flags:
|
||||
* UACCE_DEV_SVA: Shared Virtual Addresses
|
||||
* Support PASID
|
||||
* Support device page faults (PCI PRI or SMMU Stall)
|
||||
*/
|
||||
#define UACCE_DEV_SVA BIT(0)
|
||||
|
||||
/**
|
||||
* enum uacce_qfrt: queue file region type
|
||||
* @UACCE_QFRT_MMIO: device mmio region
|
||||
* @UACCE_QFRT_DUS: device user share region
|
||||
*/
|
||||
enum uacce_qfrt {
|
||||
UACCE_QFRT_MMIO = 0,
|
||||
UACCE_QFRT_DUS = 1,
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
@ -49,6 +49,7 @@ enum {
|
|||
MLX5_QP_FLAG_TIR_ALLOW_SELF_LB_MC = 1 << 7,
|
||||
MLX5_QP_FLAG_ALLOW_SCATTER_CQE = 1 << 8,
|
||||
MLX5_QP_FLAG_PACKET_BASED_CREDIT_MODE = 1 << 9,
|
||||
MLX5_QP_FLAG_UAR_PAGE_INDEX = 1 << 10,
|
||||
};
|
||||
|
||||
enum {
|
||||
|
|
@ -78,6 +79,7 @@ struct mlx5_ib_alloc_ucontext_req {
|
|||
|
||||
enum mlx5_lib_caps {
|
||||
MLX5_LIB_CAP_4K_UAR = (__u64)1 << 0,
|
||||
MLX5_LIB_CAP_DYN_UAR = (__u64)1 << 1,
|
||||
};
|
||||
|
||||
enum mlx5_ib_alloc_uctx_v2_flags {
|
||||
|
|
@ -266,6 +268,7 @@ struct mlx5_ib_query_device_resp {
|
|||
|
||||
enum mlx5_ib_create_cq_flags {
|
||||
MLX5_IB_CREATE_CQ_FLAGS_CQE_128B_PAD = 1 << 0,
|
||||
MLX5_IB_CREATE_CQ_FLAGS_UAR_PAGE_INDEX = 1 << 1,
|
||||
};
|
||||
|
||||
struct mlx5_ib_create_cq {
|
||||
|
|
@ -275,6 +278,9 @@ struct mlx5_ib_create_cq {
|
|||
__u8 cqe_comp_en;
|
||||
__u8 cqe_comp_res_format;
|
||||
__u16 flags;
|
||||
__u16 uar_page_index;
|
||||
__u16 reserved0;
|
||||
__u32 reserved1;
|
||||
};
|
||||
|
||||
struct mlx5_ib_create_cq_resp {
|
||||
|
|
|
|||
|
|
@ -131,6 +131,23 @@ enum mlx5_ib_var_obj_methods {
|
|||
MLX5_IB_METHOD_VAR_OBJ_DESTROY,
|
||||
};
|
||||
|
||||
enum mlx5_ib_uar_alloc_attrs {
|
||||
MLX5_IB_ATTR_UAR_OBJ_ALLOC_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
|
||||
MLX5_IB_ATTR_UAR_OBJ_ALLOC_TYPE,
|
||||
MLX5_IB_ATTR_UAR_OBJ_ALLOC_MMAP_OFFSET,
|
||||
MLX5_IB_ATTR_UAR_OBJ_ALLOC_MMAP_LENGTH,
|
||||
MLX5_IB_ATTR_UAR_OBJ_ALLOC_PAGE_ID,
|
||||
};
|
||||
|
||||
enum mlx5_ib_uar_obj_destroy_attrs {
|
||||
MLX5_IB_ATTR_UAR_OBJ_DESTROY_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
|
||||
};
|
||||
|
||||
enum mlx5_ib_uar_obj_methods {
|
||||
MLX5_IB_METHOD_UAR_OBJ_ALLOC = (1U << UVERBS_ID_NS_SHIFT),
|
||||
MLX5_IB_METHOD_UAR_OBJ_DESTROY,
|
||||
};
|
||||
|
||||
enum mlx5_ib_devx_umem_reg_attrs {
|
||||
MLX5_IB_ATTR_DEVX_UMEM_REG_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
|
||||
MLX5_IB_ATTR_DEVX_UMEM_REG_ADDR,
|
||||
|
|
@ -143,6 +160,22 @@ enum mlx5_ib_devx_umem_dereg_attrs {
|
|||
MLX5_IB_ATTR_DEVX_UMEM_DEREG_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
|
||||
};
|
||||
|
||||
enum mlx5_ib_pp_obj_methods {
|
||||
MLX5_IB_METHOD_PP_OBJ_ALLOC = (1U << UVERBS_ID_NS_SHIFT),
|
||||
MLX5_IB_METHOD_PP_OBJ_DESTROY,
|
||||
};
|
||||
|
||||
enum mlx5_ib_pp_alloc_attrs {
|
||||
MLX5_IB_ATTR_PP_OBJ_ALLOC_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
|
||||
MLX5_IB_ATTR_PP_OBJ_ALLOC_CTX,
|
||||
MLX5_IB_ATTR_PP_OBJ_ALLOC_FLAGS,
|
||||
MLX5_IB_ATTR_PP_OBJ_ALLOC_INDEX,
|
||||
};
|
||||
|
||||
enum mlx5_ib_pp_obj_destroy_attrs {
|
||||
MLX5_IB_ATTR_PP_OBJ_DESTROY_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
|
||||
};
|
||||
|
||||
enum mlx5_ib_devx_umem_methods {
|
||||
MLX5_IB_METHOD_DEVX_UMEM_REG = (1U << UVERBS_ID_NS_SHIFT),
|
||||
MLX5_IB_METHOD_DEVX_UMEM_DEREG,
|
||||
|
|
@ -173,6 +206,8 @@ enum mlx5_ib_objects {
|
|||
MLX5_IB_OBJECT_DEVX_ASYNC_CMD_FD,
|
||||
MLX5_IB_OBJECT_DEVX_ASYNC_EVENT_FD,
|
||||
MLX5_IB_OBJECT_VAR,
|
||||
MLX5_IB_OBJECT_PP,
|
||||
MLX5_IB_OBJECT_UAR,
|
||||
};
|
||||
|
||||
enum mlx5_ib_flow_matcher_create_attrs {
|
||||
|
|
|
|||
|
|
@ -44,6 +44,7 @@ enum mlx5_ib_uapi_flow_table_type {
|
|||
MLX5_IB_UAPI_FLOW_TABLE_TYPE_NIC_TX = 0x1,
|
||||
MLX5_IB_UAPI_FLOW_TABLE_TYPE_FDB = 0x2,
|
||||
MLX5_IB_UAPI_FLOW_TABLE_TYPE_RDMA_RX = 0x3,
|
||||
MLX5_IB_UAPI_FLOW_TABLE_TYPE_RDMA_TX = 0x4,
|
||||
};
|
||||
|
||||
enum mlx5_ib_uapi_flow_action_packet_reformat_type {
|
||||
|
|
@ -73,5 +74,14 @@ struct mlx5_ib_uapi_devx_async_event_hdr {
|
|||
__u8 out_data[];
|
||||
};
|
||||
|
||||
enum mlx5_ib_uapi_pp_alloc_flags {
|
||||
MLX5_IB_UAPI_PP_ALLOC_FLAGS_DEDICATED_INDEX = 1 << 0,
|
||||
};
|
||||
|
||||
enum mlx5_ib_uapi_uar_alloc_type {
|
||||
MLX5_IB_UAPI_UAR_ALLOC_TYPE_BF = 0x0,
|
||||
MLX5_IB_UAPI_UAR_ALLOC_TYPE_NC = 0x1,
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@
|
|||
#define _FC_ELS_H_
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <asm/byteorder.h>
|
||||
|
||||
/*
|
||||
* Fibre Channel Switch - Enhanced Link Services definitions.
|
||||
|
|
@ -40,6 +41,7 @@ enum fc_els_cmd {
|
|||
ELS_REC = 0x13, /* read exchange concise */
|
||||
ELS_SRR = 0x14, /* sequence retransmission request */
|
||||
ELS_FPIN = 0x16, /* Fabric Performance Impact Notification */
|
||||
ELS_RDF = 0x19, /* Register Diagnostic Functions */
|
||||
ELS_PRLI = 0x20, /* process login */
|
||||
ELS_PRLO = 0x21, /* process logout */
|
||||
ELS_SCN = 0x22, /* state change notification */
|
||||
|
|
@ -108,6 +110,7 @@ enum fc_els_cmd {
|
|||
[ELS_REC] = "REC", \
|
||||
[ELS_SRR] = "SRR", \
|
||||
[ELS_FPIN] = "FPIN", \
|
||||
[ELS_RDF] = "RDF", \
|
||||
[ELS_PRLI] = "PRLI", \
|
||||
[ELS_PRLO] = "PRLO", \
|
||||
[ELS_SCN] = "SCN", \
|
||||
|
|
@ -207,6 +210,99 @@ enum fc_els_rjt_explan {
|
|||
/* TBD - above definitions incomplete */
|
||||
};
|
||||
|
||||
/*
|
||||
* Link Service TLV Descriptor Tag Values
|
||||
*/
|
||||
enum fc_ls_tlv_dtag {
|
||||
ELS_DTAG_LS_REQ_INFO = 0x00000001,
|
||||
/* Link Service Request Information Descriptor */
|
||||
ELS_DTAG_LNK_INTEGRITY = 0x00020001,
|
||||
/* Link Integrity Notification Descriptor */
|
||||
ELS_DTAG_DELIVERY = 0x00020002,
|
||||
/* Delivery Notification Descriptor */
|
||||
ELS_DTAG_PEER_CONGEST = 0x00020003,
|
||||
/* Peer Congestion Notification Descriptor */
|
||||
ELS_DTAG_CONGESTION = 0x00020004,
|
||||
/* Congestion Notification Descriptor */
|
||||
ELS_DTAG_FPIN_REGISTER = 0x00030001,
|
||||
/* FPIN Registration Descriptor */
|
||||
};
|
||||
|
||||
/*
|
||||
* Initializer useful for decoding table.
|
||||
* Please keep this in sync with the above definitions.
|
||||
*/
|
||||
#define FC_LS_TLV_DTAG_INIT { \
|
||||
{ ELS_DTAG_LS_REQ_INFO, "Link Service Request Information" }, \
|
||||
{ ELS_DTAG_LNK_INTEGRITY, "Link Integrity Notification" }, \
|
||||
{ ELS_DTAG_DELIVERY, "Delivery Notification Present" }, \
|
||||
{ ELS_DTAG_PEER_CONGEST, "Peer Congestion Notification" }, \
|
||||
{ ELS_DTAG_CONGESTION, "Congestion Notification" }, \
|
||||
{ ELS_DTAG_FPIN_REGISTER, "FPIN Registration" }, \
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Generic Link Service TLV Descriptor format
|
||||
*
|
||||
* This structure, as it defines no payload, will also be referred to
|
||||
* as the "tlv header" - which contains the tag and len fields.
|
||||
*/
|
||||
struct fc_tlv_desc {
|
||||
__be32 desc_tag; /* Notification Descriptor Tag */
|
||||
__be32 desc_len; /* Length of Descriptor (in bytes).
|
||||
* Size of descriptor excluding
|
||||
* desc_tag and desc_len fields.
|
||||
*/
|
||||
__u8 desc_value[0]; /* Descriptor Value */
|
||||
};
|
||||
|
||||
/* Descriptor tag and len fields are considered the mandatory header
|
||||
* for a descriptor
|
||||
*/
|
||||
#define FC_TLV_DESC_HDR_SZ sizeof(struct fc_tlv_desc)
|
||||
|
||||
/*
|
||||
* Macro, used when initializing payloads, to return the descriptor length.
|
||||
* Length is size of descriptor minus the tag and len fields.
|
||||
*/
|
||||
#define FC_TLV_DESC_LENGTH_FROM_SZ(desc) \
|
||||
(sizeof(desc) - FC_TLV_DESC_HDR_SZ)
|
||||
|
||||
/* Macro, used on received payloads, to return the descriptor length */
|
||||
#define FC_TLV_DESC_SZ_FROM_LENGTH(tlv) \
|
||||
(__be32_to_cpu((tlv)->desc_len) + FC_TLV_DESC_HDR_SZ)
|
||||
|
||||
/*
|
||||
* This helper is used to walk descriptors in a descriptor list.
|
||||
* Given the address of the current descriptor, which minimally contains a
|
||||
* tag and len field, calculate the address of the next descriptor based
|
||||
* on the len field.
|
||||
*/
|
||||
static inline void *fc_tlv_next_desc(void *desc)
|
||||
{
|
||||
struct fc_tlv_desc *tlv = desc;
|
||||
|
||||
return (desc + FC_TLV_DESC_SZ_FROM_LENGTH(tlv));
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Link Service Request Information Descriptor
|
||||
*/
|
||||
struct fc_els_lsri_desc {
|
||||
__be32 desc_tag; /* descriptor tag (0x0000 0001) */
|
||||
__be32 desc_len; /* Length of Descriptor (in bytes) (4).
|
||||
* Size of descriptor excluding
|
||||
* desc_tag and desc_len fields.
|
||||
*/
|
||||
struct {
|
||||
__u8 cmd; /* ELS cmd byte */
|
||||
__u8 bytes[3]; /* bytes 1..3 */
|
||||
} rqst_w0; /* Request word 0 */
|
||||
};
|
||||
|
||||
|
||||
/*
|
||||
* Common service parameters (N ports).
|
||||
*/
|
||||
|
|
@ -819,24 +915,61 @@ enum fc_els_clid_ic {
|
|||
};
|
||||
|
||||
|
||||
/*
|
||||
* Fabric Notification Descriptor Tag values
|
||||
*/
|
||||
enum fc_fn_dtag {
|
||||
ELS_FN_DTAG_LNK_INTEGRITY = 0x00020001, /* Link Integrity */
|
||||
ELS_FN_DTAG_PEER_CONGEST = 0x00020003, /* Peer Congestion */
|
||||
ELS_FN_DTAG_CONGESTION = 0x00020004, /* Congestion */
|
||||
enum fc_fpin_li_event_types {
|
||||
FPIN_LI_UNKNOWN = 0x0,
|
||||
FPIN_LI_LINK_FAILURE = 0x1,
|
||||
FPIN_LI_LOSS_OF_SYNC = 0x2,
|
||||
FPIN_LI_LOSS_OF_SIG = 0x3,
|
||||
FPIN_LI_PRIM_SEQ_ERR = 0x4,
|
||||
FPIN_LI_INVALID_TX_WD = 0x5,
|
||||
FPIN_LI_INVALID_CRC = 0x6,
|
||||
FPIN_LI_DEVICE_SPEC = 0xF,
|
||||
};
|
||||
|
||||
/*
|
||||
* Fabric Notification Descriptor
|
||||
* Initializer useful for decoding table.
|
||||
* Please keep this in sync with the above definitions.
|
||||
*/
|
||||
struct fc_fn_desc {
|
||||
__be32 fn_desc_tag; /* Notification Descriptor Tag */
|
||||
__be32 fn_desc_value_len; /* Length of Descriptor Value field
|
||||
* (in bytes)
|
||||
*/
|
||||
__u8 fn_desc_value[0]; /* Descriptor Value */
|
||||
#define FC_FPIN_LI_EVT_TYPES_INIT { \
|
||||
{ FPIN_LI_UNKNOWN, "Unknown" }, \
|
||||
{ FPIN_LI_LINK_FAILURE, "Link Failure" }, \
|
||||
{ FPIN_LI_LOSS_OF_SYNC, "Loss of Synchronization" }, \
|
||||
{ FPIN_LI_LOSS_OF_SIG, "Loss of Signal" }, \
|
||||
{ FPIN_LI_PRIM_SEQ_ERR, "Primitive Sequence Protocol Error" }, \
|
||||
{ FPIN_LI_INVALID_TX_WD, "Invalid Transmission Word" }, \
|
||||
{ FPIN_LI_INVALID_CRC, "Invalid CRC" }, \
|
||||
{ FPIN_LI_DEVICE_SPEC, "Device Specific" }, \
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Link Integrity Notification Descriptor
|
||||
*/
|
||||
struct fc_fn_li_desc {
|
||||
__be32 desc_tag; /* Descriptor Tag (0x00020001) */
|
||||
__be32 desc_len; /* Length of Descriptor (in bytes).
|
||||
* Size of descriptor excluding
|
||||
* desc_tag and desc_len fields.
|
||||
*/
|
||||
__be64 detecting_wwpn; /* Port Name that detected event */
|
||||
__be64 attached_wwpn; /* Port Name of device attached to
|
||||
* detecting Port Name
|
||||
*/
|
||||
__be16 event_type; /* see enum fc_fpin_li_event_types */
|
||||
__be16 event_modifier; /* Implementation specific value
|
||||
* describing the event type
|
||||
*/
|
||||
__be32 event_threshold;/* duration in ms of the link
|
||||
* integrity detection cycle
|
||||
*/
|
||||
__be32 event_count; /* minimum number of event
|
||||
* occurrences during the event
|
||||
* threshold to caause the LI event
|
||||
*/
|
||||
__be32 pname_count; /* number of portname_list elements */
|
||||
__be64 pname_list[0]; /* list of N_Port_Names accessible
|
||||
* through the attached port
|
||||
*/
|
||||
};
|
||||
|
||||
/*
|
||||
|
|
@ -845,8 +978,56 @@ struct fc_fn_desc {
|
|||
struct fc_els_fpin {
|
||||
__u8 fpin_cmd; /* command (0x16) */
|
||||
__u8 fpin_zero[3]; /* specified as zero - part of cmd */
|
||||
__be32 fpin_desc_cnt; /* count of descriptors */
|
||||
struct fc_fn_desc fpin_desc[0]; /* Descriptor list */
|
||||
__be32 desc_len; /* Length of Descriptor List (in bytes).
|
||||
* Size of ELS excluding fpin_cmd,
|
||||
* fpin_zero and desc_len fields.
|
||||
*/
|
||||
struct fc_tlv_desc fpin_desc[0]; /* Descriptor list */
|
||||
};
|
||||
|
||||
/* Diagnostic Function Descriptor - FPIN Registration */
|
||||
struct fc_df_desc_fpin_reg {
|
||||
__be32 desc_tag; /* FPIN Registration (0x00030001) */
|
||||
__be32 desc_len; /* Length of Descriptor (in bytes).
|
||||
* Size of descriptor excluding
|
||||
* desc_tag and desc_len fields.
|
||||
*/
|
||||
__be32 count; /* Number of desc_tags elements */
|
||||
__be32 desc_tags[0]; /* Array of Descriptor Tags.
|
||||
* Each tag indicates a function
|
||||
* supported by the N_Port (request)
|
||||
* or by the N_Port and Fabric
|
||||
* Controller (reply; may be a subset
|
||||
* of the request).
|
||||
* See ELS_FN_DTAG_xxx for tag values.
|
||||
*/
|
||||
};
|
||||
|
||||
/*
|
||||
* ELS_RDF - Register Diagnostic Functions
|
||||
*/
|
||||
struct fc_els_rdf {
|
||||
__u8 fpin_cmd; /* command (0x19) */
|
||||
__u8 fpin_zero[3]; /* specified as zero - part of cmd */
|
||||
__be32 desc_len; /* Length of Descriptor List (in bytes).
|
||||
* Size of ELS excluding fpin_cmd,
|
||||
* fpin_zero and desc_len fields.
|
||||
*/
|
||||
struct fc_tlv_desc desc[0]; /* Descriptor list */
|
||||
};
|
||||
|
||||
/*
|
||||
* ELS RDF LS_ACC Response.
|
||||
*/
|
||||
struct fc_els_rdf_resp {
|
||||
struct fc_els_ls_acc acc_hdr;
|
||||
__be32 desc_list_len; /* Length of response (in
|
||||
* bytes). Excludes acc_hdr
|
||||
* and desc_list_len fields.
|
||||
*/
|
||||
struct fc_els_lsri_desc lsri;
|
||||
struct fc_tlv_desc desc[0]; /* Supported Descriptor list */
|
||||
};
|
||||
|
||||
|
||||
#endif /* _FC_ELS_H_ */
|
||||
|
|
|
|||
|
|
@ -209,7 +209,7 @@ struct fc_bsg_host_vendor {
|
|||
__u64 vendor_id;
|
||||
|
||||
/* start of vendor command area */
|
||||
__u32 vendor_cmd[0];
|
||||
__u32 vendor_cmd[];
|
||||
};
|
||||
|
||||
/* Response:
|
||||
|
|
|
|||
|
|
@ -17,6 +17,7 @@
|
|||
#define __LINUX_UAPI_SND_ASOC_H
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <sound/asound.h>
|
||||
|
||||
/*
|
||||
* Maximum number of channels topology kcontrol can represent.
|
||||
|
|
|
|||
|
|
@ -31,7 +31,7 @@
|
|||
#include <sound/compress_params.h>
|
||||
|
||||
|
||||
#define SNDRV_COMPRESS_VERSION SNDRV_PROTOCOL_VERSION(0, 1, 2)
|
||||
#define SNDRV_COMPRESS_VERSION SNDRV_PROTOCOL_VERSION(0, 2, 0)
|
||||
/**
|
||||
* struct snd_compressed_buffer - compressed buffer
|
||||
* @fragment_size: size of buffer fragment in bytes
|
||||
|
|
|
|||
|
|
@ -75,7 +75,9 @@
|
|||
#define SND_AUDIOCODEC_G723_1 ((__u32) 0x0000000C)
|
||||
#define SND_AUDIOCODEC_G729 ((__u32) 0x0000000D)
|
||||
#define SND_AUDIOCODEC_BESPOKE ((__u32) 0x0000000E)
|
||||
#define SND_AUDIOCODEC_MAX SND_AUDIOCODEC_BESPOKE
|
||||
#define SND_AUDIOCODEC_ALAC ((__u32) 0x0000000F)
|
||||
#define SND_AUDIOCODEC_APE ((__u32) 0x00000010)
|
||||
#define SND_AUDIOCODEC_MAX SND_AUDIOCODEC_APE
|
||||
|
||||
/*
|
||||
* Profile and modes are listed with bit masks. This allows for a
|
||||
|
|
@ -142,6 +144,9 @@
|
|||
#define SND_AUDIOPROFILE_WMA8 ((__u32) 0x00000002)
|
||||
#define SND_AUDIOPROFILE_WMA9 ((__u32) 0x00000004)
|
||||
#define SND_AUDIOPROFILE_WMA10 ((__u32) 0x00000008)
|
||||
#define SND_AUDIOPROFILE_WMA9_PRO ((__u32) 0x00000010)
|
||||
#define SND_AUDIOPROFILE_WMA9_LOSSLESS ((__u32) 0x00000020)
|
||||
#define SND_AUDIOPROFILE_WMA10_LOSSLESS ((__u32) 0x00000040)
|
||||
|
||||
#define SND_AUDIOMODE_WMA_LEVEL1 ((__u32) 0x00000001)
|
||||
#define SND_AUDIOMODE_WMA_LEVEL2 ((__u32) 0x00000002)
|
||||
|
|
@ -326,6 +331,33 @@ struct snd_dec_flac {
|
|||
__u16 reserved;
|
||||
} __attribute__((packed, aligned(4)));
|
||||
|
||||
struct snd_dec_wma {
|
||||
__u32 encoder_option;
|
||||
__u32 adv_encoder_option;
|
||||
__u32 adv_encoder_option2;
|
||||
__u32 reserved;
|
||||
} __attribute__((packed, aligned(4)));
|
||||
|
||||
struct snd_dec_alac {
|
||||
__u32 frame_length;
|
||||
__u8 compatible_version;
|
||||
__u8 pb;
|
||||
__u8 mb;
|
||||
__u8 kb;
|
||||
__u32 max_run;
|
||||
__u32 max_frame_bytes;
|
||||
} __attribute__((packed, aligned(4)));
|
||||
|
||||
struct snd_dec_ape {
|
||||
__u16 compatible_version;
|
||||
__u16 compression_level;
|
||||
__u32 format_flags;
|
||||
__u32 blocks_per_frame;
|
||||
__u32 final_frame_blocks;
|
||||
__u32 total_frames;
|
||||
__u32 seek_table_present;
|
||||
} __attribute__((packed, aligned(4)));
|
||||
|
||||
union snd_codec_options {
|
||||
struct snd_enc_wma wma;
|
||||
struct snd_enc_vorbis vorbis;
|
||||
|
|
@ -333,6 +365,9 @@ union snd_codec_options {
|
|||
struct snd_enc_flac flac;
|
||||
struct snd_enc_generic generic;
|
||||
struct snd_dec_flac flac_d;
|
||||
struct snd_dec_wma wma_d;
|
||||
struct snd_dec_alac alac_d;
|
||||
struct snd_dec_ape ape_d;
|
||||
} __attribute__((packed, aligned(4)));
|
||||
|
||||
/** struct snd_codec_desc - description of codec capabilities
|
||||
|
|
|
|||
|
|
@ -26,7 +26,7 @@
|
|||
|
||||
/* SOF ABI version major, minor and patch numbers */
|
||||
#define SOF_ABI_MAJOR 3
|
||||
#define SOF_ABI_MINOR 12
|
||||
#define SOF_ABI_MINOR 13
|
||||
#define SOF_ABI_PATCH 0
|
||||
|
||||
/* SOF ABI version number. Format within 32bit word is MMmmmppp */
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue