Merge branch 'linus' into perf/core, to refresh the branch
Signed-off-by: Ingo Molnar <mingo@kernel.org>
This commit is contained in:
@@ -141,6 +141,7 @@ header-y += gfs2_ondisk.h
|
||||
header-y += gigaset_dev.h
|
||||
header-y += gpio.h
|
||||
header-y += gsmmux.h
|
||||
header-y += gtp.h
|
||||
header-y += hdlcdrv.h
|
||||
header-y += hdlc.h
|
||||
header-y += hdreg.h
|
||||
|
@@ -92,6 +92,7 @@ enum bpf_prog_type {
|
||||
BPF_PROG_TYPE_KPROBE,
|
||||
BPF_PROG_TYPE_SCHED_CLS,
|
||||
BPF_PROG_TYPE_SCHED_ACT,
|
||||
BPF_PROG_TYPE_TRACEPOINT,
|
||||
};
|
||||
|
||||
#define BPF_PSEUDO_MAP_FD 1
|
||||
@@ -346,6 +347,10 @@ enum bpf_func_id {
|
||||
#define BPF_F_ZERO_CSUM_TX (1ULL << 1)
|
||||
#define BPF_F_DONT_FRAGMENT (1ULL << 2)
|
||||
|
||||
/* BPF_FUNC_perf_event_output flags. */
|
||||
#define BPF_F_INDEX_MASK 0xffffffffULL
|
||||
#define BPF_F_CURRENT_CPU BPF_F_INDEX_MASK
|
||||
|
||||
/* user accessible mirror of in-kernel sk_buff.
|
||||
* new fields can only be added to the end of this structure
|
||||
*/
|
||||
@@ -365,6 +370,8 @@ struct __sk_buff {
|
||||
__u32 cb[5];
|
||||
__u32 hash;
|
||||
__u32 tc_classid;
|
||||
__u32 data;
|
||||
__u32 data_end;
|
||||
};
|
||||
|
||||
struct bpf_tunnel_key {
|
||||
|
@@ -23,6 +23,7 @@
|
||||
|
||||
#define BTRFS_IOCTL_MAGIC 0x94
|
||||
#define BTRFS_VOL_NAME_MAX 255
|
||||
#define BTRFS_LABEL_SIZE 256
|
||||
|
||||
/* this should be 4k */
|
||||
#define BTRFS_PATH_NAME_MAX 4087
|
||||
@@ -33,14 +34,31 @@ struct btrfs_ioctl_vol_args {
|
||||
|
||||
#define BTRFS_DEVICE_PATH_NAME_MAX 1024
|
||||
|
||||
#define 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_VOL_ARG_V2_FLAGS_SUPPORTED \
|
||||
(BTRFS_SUBVOL_CREATE_ASYNC | \
|
||||
BTRFS_SUBVOL_RDONLY | \
|
||||
BTRFS_SUBVOL_QGROUP_INHERIT | \
|
||||
BTRFS_DEVICE_SPEC_BY_ID)
|
||||
|
||||
#define BTRFS_FSID_SIZE 16
|
||||
#define BTRFS_UUID_SIZE 16
|
||||
#define BTRFS_UUID_UNPARSED_SIZE 37
|
||||
|
||||
#define BTRFS_QGROUP_INHERIT_SET_LIMITS (1ULL << 0)
|
||||
/*
|
||||
* flags definition for qgroup limits
|
||||
*
|
||||
* Used by:
|
||||
* struct btrfs_qgroup_limit.flags
|
||||
* struct btrfs_qgroup_limit_item.flags
|
||||
*/
|
||||
#define BTRFS_QGROUP_LIMIT_MAX_RFER (1ULL << 0)
|
||||
#define BTRFS_QGROUP_LIMIT_MAX_EXCL (1ULL << 1)
|
||||
#define BTRFS_QGROUP_LIMIT_RSV_RFER (1ULL << 2)
|
||||
#define BTRFS_QGROUP_LIMIT_RSV_EXCL (1ULL << 3)
|
||||
#define BTRFS_QGROUP_LIMIT_RFER_CMPR (1ULL << 4)
|
||||
#define BTRFS_QGROUP_LIMIT_EXCL_CMPR (1ULL << 5)
|
||||
|
||||
struct btrfs_qgroup_limit {
|
||||
__u64 flags;
|
||||
@@ -50,6 +68,14 @@ struct btrfs_qgroup_limit {
|
||||
__u64 rsv_excl;
|
||||
};
|
||||
|
||||
/*
|
||||
* flags definition for qgroup inheritance
|
||||
*
|
||||
* Used by:
|
||||
* struct btrfs_qgroup_inherit.flags
|
||||
*/
|
||||
#define BTRFS_QGROUP_INHERIT_SET_LIMITS (1ULL << 0)
|
||||
|
||||
struct btrfs_qgroup_inherit {
|
||||
__u64 flags;
|
||||
__u64 num_qgroups;
|
||||
@@ -64,6 +90,20 @@ struct btrfs_ioctl_qgroup_limit_args {
|
||||
struct btrfs_qgroup_limit lim;
|
||||
};
|
||||
|
||||
/*
|
||||
* flags for subvolumes
|
||||
*
|
||||
* Used by:
|
||||
* struct btrfs_ioctl_vol_args_v2.flags
|
||||
*
|
||||
* BTRFS_SUBVOL_RDONLY is also provided/consumed by the following ioctls:
|
||||
* - BTRFS_IOC_SUBVOL_GETFLAGS
|
||||
* - BTRFS_IOC_SUBVOL_SETFLAGS
|
||||
*/
|
||||
#define BTRFS_SUBVOL_CREATE_ASYNC (1ULL << 0)
|
||||
#define BTRFS_SUBVOL_RDONLY (1ULL << 1)
|
||||
#define BTRFS_SUBVOL_QGROUP_INHERIT (1ULL << 2)
|
||||
|
||||
#define BTRFS_SUBVOL_NAME_MAX 4039
|
||||
struct btrfs_ioctl_vol_args_v2 {
|
||||
__s64 fd;
|
||||
@@ -76,7 +116,10 @@ struct btrfs_ioctl_vol_args_v2 {
|
||||
};
|
||||
__u64 unused[4];
|
||||
};
|
||||
char name[BTRFS_SUBVOL_NAME_MAX + 1];
|
||||
union {
|
||||
char name[BTRFS_SUBVOL_NAME_MAX + 1];
|
||||
u64 devid;
|
||||
};
|
||||
};
|
||||
|
||||
/*
|
||||
@@ -190,6 +233,37 @@ struct btrfs_ioctl_fs_info_args {
|
||||
__u64 reserved[122]; /* pad to 1k */
|
||||
};
|
||||
|
||||
/*
|
||||
* feature flags
|
||||
*
|
||||
* Used by:
|
||||
* struct btrfs_ioctl_feature_flags
|
||||
*/
|
||||
#define BTRFS_FEATURE_COMPAT_RO_FREE_SPACE_TREE (1ULL << 0)
|
||||
|
||||
#define BTRFS_FEATURE_INCOMPAT_MIXED_BACKREF (1ULL << 0)
|
||||
#define BTRFS_FEATURE_INCOMPAT_DEFAULT_SUBVOL (1ULL << 1)
|
||||
#define BTRFS_FEATURE_INCOMPAT_MIXED_GROUPS (1ULL << 2)
|
||||
#define BTRFS_FEATURE_INCOMPAT_COMPRESS_LZO (1ULL << 3)
|
||||
/*
|
||||
* some patches floated around with a second compression method
|
||||
* lets save that incompat here for when they do get in
|
||||
* Note we don't actually support it, we're just reserving the
|
||||
* number
|
||||
*/
|
||||
#define BTRFS_FEATURE_INCOMPAT_COMPRESS_LZOv2 (1ULL << 4)
|
||||
|
||||
/*
|
||||
* older kernels tried to do bigger metadata blocks, but the
|
||||
* code was pretty buggy. Lets not let them try anymore.
|
||||
*/
|
||||
#define BTRFS_FEATURE_INCOMPAT_BIG_METADATA (1ULL << 5)
|
||||
|
||||
#define BTRFS_FEATURE_INCOMPAT_EXTENDED_IREF (1ULL << 6)
|
||||
#define BTRFS_FEATURE_INCOMPAT_RAID56 (1ULL << 7)
|
||||
#define BTRFS_FEATURE_INCOMPAT_SKINNY_METADATA (1ULL << 8)
|
||||
#define BTRFS_FEATURE_INCOMPAT_NO_HOLES (1ULL << 9)
|
||||
|
||||
struct btrfs_ioctl_feature_flags {
|
||||
__u64 compat_flags;
|
||||
__u64 compat_ro_flags;
|
||||
@@ -254,6 +328,70 @@ struct btrfs_balance_progress {
|
||||
__u64 completed; /* # of chunks relocated so far */
|
||||
};
|
||||
|
||||
/*
|
||||
* flags definition for balance
|
||||
*
|
||||
* Restriper's general type filter
|
||||
*
|
||||
* Used by:
|
||||
* btrfs_ioctl_balance_args.flags
|
||||
* btrfs_balance_control.flags (internal)
|
||||
*/
|
||||
#define BTRFS_BALANCE_DATA (1ULL << 0)
|
||||
#define BTRFS_BALANCE_SYSTEM (1ULL << 1)
|
||||
#define BTRFS_BALANCE_METADATA (1ULL << 2)
|
||||
|
||||
#define BTRFS_BALANCE_TYPE_MASK (BTRFS_BALANCE_DATA | \
|
||||
BTRFS_BALANCE_SYSTEM | \
|
||||
BTRFS_BALANCE_METADATA)
|
||||
|
||||
#define BTRFS_BALANCE_FORCE (1ULL << 3)
|
||||
#define BTRFS_BALANCE_RESUME (1ULL << 4)
|
||||
|
||||
/*
|
||||
* flags definitions for per-type balance args
|
||||
*
|
||||
* Balance filters
|
||||
*
|
||||
* Used by:
|
||||
* struct btrfs_balance_args
|
||||
*/
|
||||
#define BTRFS_BALANCE_ARGS_PROFILES (1ULL << 0)
|
||||
#define BTRFS_BALANCE_ARGS_USAGE (1ULL << 1)
|
||||
#define BTRFS_BALANCE_ARGS_DEVID (1ULL << 2)
|
||||
#define BTRFS_BALANCE_ARGS_DRANGE (1ULL << 3)
|
||||
#define BTRFS_BALANCE_ARGS_VRANGE (1ULL << 4)
|
||||
#define BTRFS_BALANCE_ARGS_LIMIT (1ULL << 5)
|
||||
#define BTRFS_BALANCE_ARGS_LIMIT_RANGE (1ULL << 6)
|
||||
#define BTRFS_BALANCE_ARGS_STRIPES_RANGE (1ULL << 7)
|
||||
#define BTRFS_BALANCE_ARGS_USAGE_RANGE (1ULL << 10)
|
||||
|
||||
#define BTRFS_BALANCE_ARGS_MASK \
|
||||
(BTRFS_BALANCE_ARGS_PROFILES | \
|
||||
BTRFS_BALANCE_ARGS_USAGE | \
|
||||
BTRFS_BALANCE_ARGS_DEVID | \
|
||||
BTRFS_BALANCE_ARGS_DRANGE | \
|
||||
BTRFS_BALANCE_ARGS_VRANGE | \
|
||||
BTRFS_BALANCE_ARGS_LIMIT | \
|
||||
BTRFS_BALANCE_ARGS_LIMIT_RANGE | \
|
||||
BTRFS_BALANCE_ARGS_STRIPES_RANGE | \
|
||||
BTRFS_BALANCE_ARGS_USAGE_RANGE)
|
||||
|
||||
/*
|
||||
* Profile changing flags. When SOFT is set we won't relocate chunk if
|
||||
* it already has the target profile (even though it may be
|
||||
* half-filled).
|
||||
*/
|
||||
#define BTRFS_BALANCE_ARGS_CONVERT (1ULL << 8)
|
||||
#define BTRFS_BALANCE_ARGS_SOFT (1ULL << 9)
|
||||
|
||||
|
||||
/*
|
||||
* flags definition for balance state
|
||||
*
|
||||
* Used by:
|
||||
* struct btrfs_ioctl_balance_args.state
|
||||
*/
|
||||
#define BTRFS_BALANCE_STATE_RUNNING (1ULL << 0)
|
||||
#define BTRFS_BALANCE_STATE_PAUSE_REQ (1ULL << 1)
|
||||
#define BTRFS_BALANCE_STATE_CANCEL_REQ (1ULL << 2)
|
||||
@@ -347,9 +485,45 @@ struct btrfs_ioctl_clone_range_args {
|
||||
__u64 dest_offset;
|
||||
};
|
||||
|
||||
/* flags for the defrag range ioctl */
|
||||
/*
|
||||
* flags definition for the defrag range ioctl
|
||||
*
|
||||
* Used by:
|
||||
* struct btrfs_ioctl_defrag_range_args.flags
|
||||
*/
|
||||
#define BTRFS_DEFRAG_RANGE_COMPRESS 1
|
||||
#define BTRFS_DEFRAG_RANGE_START_IO 2
|
||||
struct btrfs_ioctl_defrag_range_args {
|
||||
/* start of the defrag operation */
|
||||
__u64 start;
|
||||
|
||||
/* number of bytes to defrag, use (u64)-1 to say all */
|
||||
__u64 len;
|
||||
|
||||
/*
|
||||
* flags for the operation, which can include turning
|
||||
* on compression for this one defrag
|
||||
*/
|
||||
__u64 flags;
|
||||
|
||||
/*
|
||||
* any extent bigger than this will be considered
|
||||
* already defragged. Use 0 to take the kernel default
|
||||
* Use 1 to say every single extent must be rewritten
|
||||
*/
|
||||
__u32 extent_thresh;
|
||||
|
||||
/*
|
||||
* which compression method to use if turning on compression
|
||||
* for this defrag operation. If unspecified, zlib will
|
||||
* be used
|
||||
*/
|
||||
__u32 compress_type;
|
||||
|
||||
/* spare for later */
|
||||
__u32 unused[4];
|
||||
};
|
||||
|
||||
|
||||
#define BTRFS_SAME_DATA_DIFFERS 1
|
||||
/* For extent-same ioctl */
|
||||
@@ -659,5 +833,7 @@ static inline char *btrfs_err_str(enum btrfs_err_code err_code)
|
||||
struct btrfs_ioctl_feature_flags[2])
|
||||
#define BTRFS_IOC_GET_SUPPORTED_FEATURES _IOR(BTRFS_IOCTL_MAGIC, 57, \
|
||||
struct btrfs_ioctl_feature_flags[3])
|
||||
#define BTRFS_IOC_RM_DEV_V2 _IOW(BTRFS_IOCTL_MAGIC, 58, \
|
||||
struct btrfs_ioctl_vol_args_v2)
|
||||
|
||||
#endif /* _UAPI_LINUX_BTRFS_H */
|
||||
|
966
include/uapi/linux/btrfs_tree.h
Normal file
966
include/uapi/linux/btrfs_tree.h
Normal file
@@ -0,0 +1,966 @@
|
||||
#ifndef _BTRFS_CTREE_H_
|
||||
#define _BTRFS_CTREE_H_
|
||||
|
||||
/*
|
||||
* This header contains the structure definitions and constants used
|
||||
* by file system objects that can be retrieved using
|
||||
* the BTRFS_IOC_SEARCH_TREE ioctl. That means basically anything that
|
||||
* is needed to describe a leaf node's key or item contents.
|
||||
*/
|
||||
|
||||
/* holds pointers to all of the tree roots */
|
||||
#define BTRFS_ROOT_TREE_OBJECTID 1ULL
|
||||
|
||||
/* stores information about which extents are in use, and reference counts */
|
||||
#define BTRFS_EXTENT_TREE_OBJECTID 2ULL
|
||||
|
||||
/*
|
||||
* chunk tree stores translations from logical -> physical block numbering
|
||||
* the super block points to the chunk tree
|
||||
*/
|
||||
#define BTRFS_CHUNK_TREE_OBJECTID 3ULL
|
||||
|
||||
/*
|
||||
* stores information about which areas of a given device are in use.
|
||||
* one per device. The tree of tree roots points to the device tree
|
||||
*/
|
||||
#define BTRFS_DEV_TREE_OBJECTID 4ULL
|
||||
|
||||
/* one per subvolume, storing files and directories */
|
||||
#define BTRFS_FS_TREE_OBJECTID 5ULL
|
||||
|
||||
/* directory objectid inside the root tree */
|
||||
#define BTRFS_ROOT_TREE_DIR_OBJECTID 6ULL
|
||||
|
||||
/* holds checksums of all the data extents */
|
||||
#define BTRFS_CSUM_TREE_OBJECTID 7ULL
|
||||
|
||||
/* holds quota configuration and tracking */
|
||||
#define BTRFS_QUOTA_TREE_OBJECTID 8ULL
|
||||
|
||||
/* for storing items that use the BTRFS_UUID_KEY* types */
|
||||
#define BTRFS_UUID_TREE_OBJECTID 9ULL
|
||||
|
||||
/* tracks free space in block groups. */
|
||||
#define BTRFS_FREE_SPACE_TREE_OBJECTID 10ULL
|
||||
|
||||
/* device stats in the device tree */
|
||||
#define BTRFS_DEV_STATS_OBJECTID 0ULL
|
||||
|
||||
/* for storing balance parameters in the root tree */
|
||||
#define BTRFS_BALANCE_OBJECTID -4ULL
|
||||
|
||||
/* orhpan objectid for tracking unlinked/truncated files */
|
||||
#define BTRFS_ORPHAN_OBJECTID -5ULL
|
||||
|
||||
/* does write ahead logging to speed up fsyncs */
|
||||
#define BTRFS_TREE_LOG_OBJECTID -6ULL
|
||||
#define BTRFS_TREE_LOG_FIXUP_OBJECTID -7ULL
|
||||
|
||||
/* for space balancing */
|
||||
#define BTRFS_TREE_RELOC_OBJECTID -8ULL
|
||||
#define BTRFS_DATA_RELOC_TREE_OBJECTID -9ULL
|
||||
|
||||
/*
|
||||
* extent checksums all have this objectid
|
||||
* this allows them to share the logging tree
|
||||
* for fsyncs
|
||||
*/
|
||||
#define BTRFS_EXTENT_CSUM_OBJECTID -10ULL
|
||||
|
||||
/* For storing free space cache */
|
||||
#define BTRFS_FREE_SPACE_OBJECTID -11ULL
|
||||
|
||||
/*
|
||||
* The inode number assigned to the special inode for storing
|
||||
* free ino cache
|
||||
*/
|
||||
#define BTRFS_FREE_INO_OBJECTID -12ULL
|
||||
|
||||
/* dummy objectid represents multiple objectids */
|
||||
#define BTRFS_MULTIPLE_OBJECTIDS -255ULL
|
||||
|
||||
/*
|
||||
* All files have objectids in this range.
|
||||
*/
|
||||
#define BTRFS_FIRST_FREE_OBJECTID 256ULL
|
||||
#define BTRFS_LAST_FREE_OBJECTID -256ULL
|
||||
#define BTRFS_FIRST_CHUNK_TREE_OBJECTID 256ULL
|
||||
|
||||
|
||||
/*
|
||||
* the device items go into the chunk tree. The key is in the form
|
||||
* [ 1 BTRFS_DEV_ITEM_KEY device_id ]
|
||||
*/
|
||||
#define BTRFS_DEV_ITEMS_OBJECTID 1ULL
|
||||
|
||||
#define BTRFS_BTREE_INODE_OBJECTID 1
|
||||
|
||||
#define BTRFS_EMPTY_SUBVOL_DIR_OBJECTID 2
|
||||
|
||||
#define BTRFS_DEV_REPLACE_DEVID 0ULL
|
||||
|
||||
/*
|
||||
* inode items have the data typically returned from stat and store other
|
||||
* info about object characteristics. There is one for every file and dir in
|
||||
* the FS
|
||||
*/
|
||||
#define BTRFS_INODE_ITEM_KEY 1
|
||||
#define BTRFS_INODE_REF_KEY 12
|
||||
#define BTRFS_INODE_EXTREF_KEY 13
|
||||
#define BTRFS_XATTR_ITEM_KEY 24
|
||||
#define BTRFS_ORPHAN_ITEM_KEY 48
|
||||
/* reserve 2-15 close to the inode for later flexibility */
|
||||
|
||||
/*
|
||||
* dir items are the name -> inode pointers in a directory. There is one
|
||||
* for every name in a directory.
|
||||
*/
|
||||
#define BTRFS_DIR_LOG_ITEM_KEY 60
|
||||
#define BTRFS_DIR_LOG_INDEX_KEY 72
|
||||
#define BTRFS_DIR_ITEM_KEY 84
|
||||
#define BTRFS_DIR_INDEX_KEY 96
|
||||
/*
|
||||
* extent data is for file data
|
||||
*/
|
||||
#define BTRFS_EXTENT_DATA_KEY 108
|
||||
|
||||
/*
|
||||
* extent csums are stored in a separate tree and hold csums for
|
||||
* an entire extent on disk.
|
||||
*/
|
||||
#define BTRFS_EXTENT_CSUM_KEY 128
|
||||
|
||||
/*
|
||||
* root items point to tree roots. They are typically in the root
|
||||
* tree used by the super block to find all the other trees
|
||||
*/
|
||||
#define BTRFS_ROOT_ITEM_KEY 132
|
||||
|
||||
/*
|
||||
* root backrefs tie subvols and snapshots to the directory entries that
|
||||
* reference them
|
||||
*/
|
||||
#define BTRFS_ROOT_BACKREF_KEY 144
|
||||
|
||||
/*
|
||||
* root refs make a fast index for listing all of the snapshots and
|
||||
* subvolumes referenced by a given root. They point directly to the
|
||||
* directory item in the root that references the subvol
|
||||
*/
|
||||
#define BTRFS_ROOT_REF_KEY 156
|
||||
|
||||
/*
|
||||
* extent items are in the extent map tree. These record which blocks
|
||||
* are used, and how many references there are to each block
|
||||
*/
|
||||
#define BTRFS_EXTENT_ITEM_KEY 168
|
||||
|
||||
/*
|
||||
* The same as the BTRFS_EXTENT_ITEM_KEY, except it's metadata we already know
|
||||
* the length, so we save the level in key->offset instead of the length.
|
||||
*/
|
||||
#define BTRFS_METADATA_ITEM_KEY 169
|
||||
|
||||
#define BTRFS_TREE_BLOCK_REF_KEY 176
|
||||
|
||||
#define BTRFS_EXTENT_DATA_REF_KEY 178
|
||||
|
||||
#define BTRFS_EXTENT_REF_V0_KEY 180
|
||||
|
||||
#define BTRFS_SHARED_BLOCK_REF_KEY 182
|
||||
|
||||
#define BTRFS_SHARED_DATA_REF_KEY 184
|
||||
|
||||
/*
|
||||
* block groups give us hints into the extent allocation trees. Which
|
||||
* blocks are free etc etc
|
||||
*/
|
||||
#define BTRFS_BLOCK_GROUP_ITEM_KEY 192
|
||||
|
||||
/*
|
||||
* Every block group is represented in the free space tree by a free space info
|
||||
* item, which stores some accounting information. It is keyed on
|
||||
* (block_group_start, FREE_SPACE_INFO, block_group_length).
|
||||
*/
|
||||
#define BTRFS_FREE_SPACE_INFO_KEY 198
|
||||
|
||||
/*
|
||||
* A free space extent tracks an extent of space that is free in a block group.
|
||||
* It is keyed on (start, FREE_SPACE_EXTENT, length).
|
||||
*/
|
||||
#define BTRFS_FREE_SPACE_EXTENT_KEY 199
|
||||
|
||||
/*
|
||||
* When a block group becomes very fragmented, we convert it to use bitmaps
|
||||
* instead of extents. A free space bitmap is keyed on
|
||||
* (start, FREE_SPACE_BITMAP, length); the corresponding item is a bitmap with
|
||||
* (length / sectorsize) bits.
|
||||
*/
|
||||
#define BTRFS_FREE_SPACE_BITMAP_KEY 200
|
||||
|
||||
#define BTRFS_DEV_EXTENT_KEY 204
|
||||
#define BTRFS_DEV_ITEM_KEY 216
|
||||
#define BTRFS_CHUNK_ITEM_KEY 228
|
||||
|
||||
/*
|
||||
* Records the overall state of the qgroups.
|
||||
* There's only one instance of this key present,
|
||||
* (0, BTRFS_QGROUP_STATUS_KEY, 0)
|
||||
*/
|
||||
#define BTRFS_QGROUP_STATUS_KEY 240
|
||||
/*
|
||||
* Records the currently used space of the qgroup.
|
||||
* One key per qgroup, (0, BTRFS_QGROUP_INFO_KEY, qgroupid).
|
||||
*/
|
||||
#define BTRFS_QGROUP_INFO_KEY 242
|
||||
/*
|
||||
* Contains the user configured limits for the qgroup.
|
||||
* One key per qgroup, (0, BTRFS_QGROUP_LIMIT_KEY, qgroupid).
|
||||
*/
|
||||
#define BTRFS_QGROUP_LIMIT_KEY 244
|
||||
/*
|
||||
* Records the child-parent relationship of qgroups. For
|
||||
* each relation, 2 keys are present:
|
||||
* (childid, BTRFS_QGROUP_RELATION_KEY, parentid)
|
||||
* (parentid, BTRFS_QGROUP_RELATION_KEY, childid)
|
||||
*/
|
||||
#define BTRFS_QGROUP_RELATION_KEY 246
|
||||
|
||||
/*
|
||||
* Obsolete name, see BTRFS_TEMPORARY_ITEM_KEY.
|
||||
*/
|
||||
#define BTRFS_BALANCE_ITEM_KEY 248
|
||||
|
||||
/*
|
||||
* The key type for tree items that are stored persistently, but do not need to
|
||||
* exist for extended period of time. The items can exist in any tree.
|
||||
*
|
||||
* [subtype, BTRFS_TEMPORARY_ITEM_KEY, data]
|
||||
*
|
||||
* Existing items:
|
||||
*
|
||||
* - balance status item
|
||||
* (BTRFS_BALANCE_OBJECTID, BTRFS_TEMPORARY_ITEM_KEY, 0)
|
||||
*/
|
||||
#define BTRFS_TEMPORARY_ITEM_KEY 248
|
||||
|
||||
/*
|
||||
* Obsolete name, see BTRFS_PERSISTENT_ITEM_KEY
|
||||
*/
|
||||
#define BTRFS_DEV_STATS_KEY 249
|
||||
|
||||
/*
|
||||
* The key type for tree items that are stored persistently and usually exist
|
||||
* for a long period, eg. filesystem lifetime. The item kinds can be status
|
||||
* information, stats or preference values. The item can exist in any tree.
|
||||
*
|
||||
* [subtype, BTRFS_PERSISTENT_ITEM_KEY, data]
|
||||
*
|
||||
* Existing items:
|
||||
*
|
||||
* - device statistics, store IO stats in the device tree, one key for all
|
||||
* stats
|
||||
* (BTRFS_DEV_STATS_OBJECTID, BTRFS_DEV_STATS_KEY, 0)
|
||||
*/
|
||||
#define BTRFS_PERSISTENT_ITEM_KEY 249
|
||||
|
||||
/*
|
||||
* Persistantly stores the device replace state in the device tree.
|
||||
* The key is built like this: (0, BTRFS_DEV_REPLACE_KEY, 0).
|
||||
*/
|
||||
#define BTRFS_DEV_REPLACE_KEY 250
|
||||
|
||||
/*
|
||||
* Stores items that allow to quickly map UUIDs to something else.
|
||||
* These items are part of the filesystem UUID tree.
|
||||
* The key is built like this:
|
||||
* (UUID_upper_64_bits, BTRFS_UUID_KEY*, UUID_lower_64_bits).
|
||||
*/
|
||||
#if BTRFS_UUID_SIZE != 16
|
||||
#error "UUID items require BTRFS_UUID_SIZE == 16!"
|
||||
#endif
|
||||
#define BTRFS_UUID_KEY_SUBVOL 251 /* for UUIDs assigned to subvols */
|
||||
#define BTRFS_UUID_KEY_RECEIVED_SUBVOL 252 /* for UUIDs assigned to
|
||||
* received subvols */
|
||||
|
||||
/*
|
||||
* string items are for debugging. They just store a short string of
|
||||
* data in the FS
|
||||
*/
|
||||
#define BTRFS_STRING_ITEM_KEY 253
|
||||
|
||||
|
||||
|
||||
/* 32 bytes in various csum fields */
|
||||
#define BTRFS_CSUM_SIZE 32
|
||||
|
||||
/* csum types */
|
||||
#define BTRFS_CSUM_TYPE_CRC32 0
|
||||
|
||||
/*
|
||||
* flags definitions for directory entry item type
|
||||
*
|
||||
* Used by:
|
||||
* struct btrfs_dir_item.type
|
||||
*/
|
||||
#define BTRFS_FT_UNKNOWN 0
|
||||
#define BTRFS_FT_REG_FILE 1
|
||||
#define BTRFS_FT_DIR 2
|
||||
#define BTRFS_FT_CHRDEV 3
|
||||
#define BTRFS_FT_BLKDEV 4
|
||||
#define BTRFS_FT_FIFO 5
|
||||
#define BTRFS_FT_SOCK 6
|
||||
#define BTRFS_FT_SYMLINK 7
|
||||
#define BTRFS_FT_XATTR 8
|
||||
#define BTRFS_FT_MAX 9
|
||||
|
||||
/*
|
||||
* The key defines the order in the tree, and so it also defines (optimal)
|
||||
* block layout.
|
||||
*
|
||||
* objectid corresponds to the inode number.
|
||||
*
|
||||
* type tells us things about the object, and is a kind of stream selector.
|
||||
* so for a given inode, keys with type of 1 might refer to the inode data,
|
||||
* type of 2 may point to file data in the btree and type == 3 may point to
|
||||
* extents.
|
||||
*
|
||||
* offset is the starting byte offset for this key in the stream.
|
||||
*
|
||||
* btrfs_disk_key is in disk byte order. struct btrfs_key is always
|
||||
* in cpu native order. Otherwise they are identical and their sizes
|
||||
* should be the same (ie both packed)
|
||||
*/
|
||||
struct btrfs_disk_key {
|
||||
__le64 objectid;
|
||||
__u8 type;
|
||||
__le64 offset;
|
||||
} __attribute__ ((__packed__));
|
||||
|
||||
struct btrfs_key {
|
||||
__u64 objectid;
|
||||
__u8 type;
|
||||
__u64 offset;
|
||||
} __attribute__ ((__packed__));
|
||||
|
||||
struct btrfs_dev_item {
|
||||
/* the internal btrfs device id */
|
||||
__le64 devid;
|
||||
|
||||
/* size of the device */
|
||||
__le64 total_bytes;
|
||||
|
||||
/* bytes used */
|
||||
__le64 bytes_used;
|
||||
|
||||
/* optimal io alignment for this device */
|
||||
__le32 io_align;
|
||||
|
||||
/* optimal io width for this device */
|
||||
__le32 io_width;
|
||||
|
||||
/* minimal io size for this device */
|
||||
__le32 sector_size;
|
||||
|
||||
/* type and info about this device */
|
||||
__le64 type;
|
||||
|
||||
/* expected generation for this device */
|
||||
__le64 generation;
|
||||
|
||||
/*
|
||||
* starting byte of this partition on the device,
|
||||
* to allow for stripe alignment in the future
|
||||
*/
|
||||
__le64 start_offset;
|
||||
|
||||
/* grouping information for allocation decisions */
|
||||
__le32 dev_group;
|
||||
|
||||
/* seek speed 0-100 where 100 is fastest */
|
||||
__u8 seek_speed;
|
||||
|
||||
/* bandwidth 0-100 where 100 is fastest */
|
||||
__u8 bandwidth;
|
||||
|
||||
/* btrfs generated uuid for this device */
|
||||
__u8 uuid[BTRFS_UUID_SIZE];
|
||||
|
||||
/* uuid of FS who owns this device */
|
||||
__u8 fsid[BTRFS_UUID_SIZE];
|
||||
} __attribute__ ((__packed__));
|
||||
|
||||
struct btrfs_stripe {
|
||||
__le64 devid;
|
||||
__le64 offset;
|
||||
__u8 dev_uuid[BTRFS_UUID_SIZE];
|
||||
} __attribute__ ((__packed__));
|
||||
|
||||
struct btrfs_chunk {
|
||||
/* size of this chunk in bytes */
|
||||
__le64 length;
|
||||
|
||||
/* objectid of the root referencing this chunk */
|
||||
__le64 owner;
|
||||
|
||||
__le64 stripe_len;
|
||||
__le64 type;
|
||||
|
||||
/* optimal io alignment for this chunk */
|
||||
__le32 io_align;
|
||||
|
||||
/* optimal io width for this chunk */
|
||||
__le32 io_width;
|
||||
|
||||
/* minimal io size for this chunk */
|
||||
__le32 sector_size;
|
||||
|
||||
/* 2^16 stripes is quite a lot, a second limit is the size of a single
|
||||
* item in the btree
|
||||
*/
|
||||
__le16 num_stripes;
|
||||
|
||||
/* sub stripes only matter for raid10 */
|
||||
__le16 sub_stripes;
|
||||
struct btrfs_stripe stripe;
|
||||
/* additional stripes go here */
|
||||
} __attribute__ ((__packed__));
|
||||
|
||||
#define BTRFS_FREE_SPACE_EXTENT 1
|
||||
#define BTRFS_FREE_SPACE_BITMAP 2
|
||||
|
||||
struct btrfs_free_space_entry {
|
||||
__le64 offset;
|
||||
__le64 bytes;
|
||||
__u8 type;
|
||||
} __attribute__ ((__packed__));
|
||||
|
||||
struct btrfs_free_space_header {
|
||||
struct btrfs_disk_key location;
|
||||
__le64 generation;
|
||||
__le64 num_entries;
|
||||
__le64 num_bitmaps;
|
||||
} __attribute__ ((__packed__));
|
||||
|
||||
#define BTRFS_HEADER_FLAG_WRITTEN (1ULL << 0)
|
||||
#define BTRFS_HEADER_FLAG_RELOC (1ULL << 1)
|
||||
|
||||
/* Super block flags */
|
||||
/* Errors detected */
|
||||
#define BTRFS_SUPER_FLAG_ERROR (1ULL << 2)
|
||||
|
||||
#define BTRFS_SUPER_FLAG_SEEDING (1ULL << 32)
|
||||
#define BTRFS_SUPER_FLAG_METADUMP (1ULL << 33)
|
||||
|
||||
|
||||
/*
|
||||
* items in the extent btree are used to record the objectid of the
|
||||
* owner of the block and the number of references
|
||||
*/
|
||||
|
||||
struct btrfs_extent_item {
|
||||
__le64 refs;
|
||||
__le64 generation;
|
||||
__le64 flags;
|
||||
} __attribute__ ((__packed__));
|
||||
|
||||
struct btrfs_extent_item_v0 {
|
||||
__le32 refs;
|
||||
} __attribute__ ((__packed__));
|
||||
|
||||
|
||||
#define BTRFS_EXTENT_FLAG_DATA (1ULL << 0)
|
||||
#define BTRFS_EXTENT_FLAG_TREE_BLOCK (1ULL << 1)
|
||||
|
||||
/* following flags only apply to tree blocks */
|
||||
|
||||
/* use full backrefs for extent pointers in the block */
|
||||
#define BTRFS_BLOCK_FLAG_FULL_BACKREF (1ULL << 8)
|
||||
|
||||
/*
|
||||
* this flag is only used internally by scrub and may be changed at any time
|
||||
* it is only declared here to avoid collisions
|
||||
*/
|
||||
#define BTRFS_EXTENT_FLAG_SUPER (1ULL << 48)
|
||||
|
||||
struct btrfs_tree_block_info {
|
||||
struct btrfs_disk_key key;
|
||||
__u8 level;
|
||||
} __attribute__ ((__packed__));
|
||||
|
||||
struct btrfs_extent_data_ref {
|
||||
__le64 root;
|
||||
__le64 objectid;
|
||||
__le64 offset;
|
||||
__le32 count;
|
||||
} __attribute__ ((__packed__));
|
||||
|
||||
struct btrfs_shared_data_ref {
|
||||
__le32 count;
|
||||
} __attribute__ ((__packed__));
|
||||
|
||||
struct btrfs_extent_inline_ref {
|
||||
__u8 type;
|
||||
__le64 offset;
|
||||
} __attribute__ ((__packed__));
|
||||
|
||||
/* old style backrefs item */
|
||||
struct btrfs_extent_ref_v0 {
|
||||
__le64 root;
|
||||
__le64 generation;
|
||||
__le64 objectid;
|
||||
__le32 count;
|
||||
} __attribute__ ((__packed__));
|
||||
|
||||
|
||||
/* dev extents record free space on individual devices. The owner
|
||||
* field points back to the chunk allocation mapping tree that allocated
|
||||
* the extent. The chunk tree uuid field is a way to double check the owner
|
||||
*/
|
||||
struct btrfs_dev_extent {
|
||||
__le64 chunk_tree;
|
||||
__le64 chunk_objectid;
|
||||
__le64 chunk_offset;
|
||||
__le64 length;
|
||||
__u8 chunk_tree_uuid[BTRFS_UUID_SIZE];
|
||||
} __attribute__ ((__packed__));
|
||||
|
||||
struct btrfs_inode_ref {
|
||||
__le64 index;
|
||||
__le16 name_len;
|
||||
/* name goes here */
|
||||
} __attribute__ ((__packed__));
|
||||
|
||||
struct btrfs_inode_extref {
|
||||
__le64 parent_objectid;
|
||||
__le64 index;
|
||||
__le16 name_len;
|
||||
__u8 name[0];
|
||||
/* name goes here */
|
||||
} __attribute__ ((__packed__));
|
||||
|
||||
struct btrfs_timespec {
|
||||
__le64 sec;
|
||||
__le32 nsec;
|
||||
} __attribute__ ((__packed__));
|
||||
|
||||
struct btrfs_inode_item {
|
||||
/* nfs style generation number */
|
||||
__le64 generation;
|
||||
/* transid that last touched this inode */
|
||||
__le64 transid;
|
||||
__le64 size;
|
||||
__le64 nbytes;
|
||||
__le64 block_group;
|
||||
__le32 nlink;
|
||||
__le32 uid;
|
||||
__le32 gid;
|
||||
__le32 mode;
|
||||
__le64 rdev;
|
||||
__le64 flags;
|
||||
|
||||
/* modification sequence number for NFS */
|
||||
__le64 sequence;
|
||||
|
||||
/*
|
||||
* a little future expansion, for more than this we can
|
||||
* just grow the inode item and version it
|
||||
*/
|
||||
__le64 reserved[4];
|
||||
struct btrfs_timespec atime;
|
||||
struct btrfs_timespec ctime;
|
||||
struct btrfs_timespec mtime;
|
||||
struct btrfs_timespec otime;
|
||||
} __attribute__ ((__packed__));
|
||||
|
||||
struct btrfs_dir_log_item {
|
||||
__le64 end;
|
||||
} __attribute__ ((__packed__));
|
||||
|
||||
struct btrfs_dir_item {
|
||||
struct btrfs_disk_key location;
|
||||
__le64 transid;
|
||||
__le16 data_len;
|
||||
__le16 name_len;
|
||||
__u8 type;
|
||||
} __attribute__ ((__packed__));
|
||||
|
||||
#define BTRFS_ROOT_SUBVOL_RDONLY (1ULL << 0)
|
||||
|
||||
/*
|
||||
* Internal in-memory flag that a subvolume has been marked for deletion but
|
||||
* still visible as a directory
|
||||
*/
|
||||
#define BTRFS_ROOT_SUBVOL_DEAD (1ULL << 48)
|
||||
|
||||
struct btrfs_root_item {
|
||||
struct btrfs_inode_item inode;
|
||||
__le64 generation;
|
||||
__le64 root_dirid;
|
||||
__le64 bytenr;
|
||||
__le64 byte_limit;
|
||||
__le64 bytes_used;
|
||||
__le64 last_snapshot;
|
||||
__le64 flags;
|
||||
__le32 refs;
|
||||
struct btrfs_disk_key drop_progress;
|
||||
__u8 drop_level;
|
||||
__u8 level;
|
||||
|
||||
/*
|
||||
* The following fields appear after subvol_uuids+subvol_times
|
||||
* were introduced.
|
||||
*/
|
||||
|
||||
/*
|
||||
* This generation number is used to test if the new fields are valid
|
||||
* and up to date while reading the root item. Every time the root item
|
||||
* is written out, the "generation" field is copied into this field. If
|
||||
* anyone ever mounted the fs with an older kernel, we will have
|
||||
* mismatching generation values here and thus must invalidate the
|
||||
* new fields. See btrfs_update_root and btrfs_find_last_root for
|
||||
* details.
|
||||
* the offset of generation_v2 is also used as the start for the memset
|
||||
* when invalidating the fields.
|
||||
*/
|
||||
__le64 generation_v2;
|
||||
__u8 uuid[BTRFS_UUID_SIZE];
|
||||
__u8 parent_uuid[BTRFS_UUID_SIZE];
|
||||
__u8 received_uuid[BTRFS_UUID_SIZE];
|
||||
__le64 ctransid; /* updated when an inode changes */
|
||||
__le64 otransid; /* trans when created */
|
||||
__le64 stransid; /* trans when sent. non-zero for received subvol */
|
||||
__le64 rtransid; /* trans when received. non-zero for received subvol */
|
||||
struct btrfs_timespec ctime;
|
||||
struct btrfs_timespec otime;
|
||||
struct btrfs_timespec stime;
|
||||
struct btrfs_timespec rtime;
|
||||
__le64 reserved[8]; /* for future */
|
||||
} __attribute__ ((__packed__));
|
||||
|
||||
/*
|
||||
* this is used for both forward and backward root refs
|
||||
*/
|
||||
struct btrfs_root_ref {
|
||||
__le64 dirid;
|
||||
__le64 sequence;
|
||||
__le16 name_len;
|
||||
} __attribute__ ((__packed__));
|
||||
|
||||
struct btrfs_disk_balance_args {
|
||||
/*
|
||||
* profiles to operate on, single is denoted by
|
||||
* BTRFS_AVAIL_ALLOC_BIT_SINGLE
|
||||
*/
|
||||
__le64 profiles;
|
||||
|
||||
/*
|
||||
* usage filter
|
||||
* BTRFS_BALANCE_ARGS_USAGE with a single value means '0..N'
|
||||
* BTRFS_BALANCE_ARGS_USAGE_RANGE - range syntax, min..max
|
||||
*/
|
||||
union {
|
||||
__le64 usage;
|
||||
struct {
|
||||
__le32 usage_min;
|
||||
__le32 usage_max;
|
||||
};
|
||||
};
|
||||
|
||||
/* devid filter */
|
||||
__le64 devid;
|
||||
|
||||
/* devid subset filter [pstart..pend) */
|
||||
__le64 pstart;
|
||||
__le64 pend;
|
||||
|
||||
/* btrfs virtual address space subset filter [vstart..vend) */
|
||||
__le64 vstart;
|
||||
__le64 vend;
|
||||
|
||||
/*
|
||||
* profile to convert to, single is denoted by
|
||||
* BTRFS_AVAIL_ALLOC_BIT_SINGLE
|
||||
*/
|
||||
__le64 target;
|
||||
|
||||
/* BTRFS_BALANCE_ARGS_* */
|
||||
__le64 flags;
|
||||
|
||||
/*
|
||||
* BTRFS_BALANCE_ARGS_LIMIT with value 'limit'
|
||||
* BTRFS_BALANCE_ARGS_LIMIT_RANGE - the extend version can use minimum
|
||||
* and maximum
|
||||
*/
|
||||
union {
|
||||
__le64 limit;
|
||||
struct {
|
||||
__le32 limit_min;
|
||||
__le32 limit_max;
|
||||
};
|
||||
};
|
||||
|
||||
/*
|
||||
* Process chunks that cross stripes_min..stripes_max devices,
|
||||
* BTRFS_BALANCE_ARGS_STRIPES_RANGE
|
||||
*/
|
||||
__le32 stripes_min;
|
||||
__le32 stripes_max;
|
||||
|
||||
__le64 unused[6];
|
||||
} __attribute__ ((__packed__));
|
||||
|
||||
/*
|
||||
* store balance parameters to disk so that balance can be properly
|
||||
* resumed after crash or unmount
|
||||
*/
|
||||
struct btrfs_balance_item {
|
||||
/* BTRFS_BALANCE_* */
|
||||
__le64 flags;
|
||||
|
||||
struct btrfs_disk_balance_args data;
|
||||
struct btrfs_disk_balance_args meta;
|
||||
struct btrfs_disk_balance_args sys;
|
||||
|
||||
__le64 unused[4];
|
||||
} __attribute__ ((__packed__));
|
||||
|
||||
#define BTRFS_FILE_EXTENT_INLINE 0
|
||||
#define BTRFS_FILE_EXTENT_REG 1
|
||||
#define BTRFS_FILE_EXTENT_PREALLOC 2
|
||||
|
||||
struct btrfs_file_extent_item {
|
||||
/*
|
||||
* transaction id that created this extent
|
||||
*/
|
||||
__le64 generation;
|
||||
/*
|
||||
* max number of bytes to hold this extent in ram
|
||||
* when we split a compressed extent we can't know how big
|
||||
* each of the resulting pieces will be. So, this is
|
||||
* an upper limit on the size of the extent in ram instead of
|
||||
* an exact limit.
|
||||
*/
|
||||
__le64 ram_bytes;
|
||||
|
||||
/*
|
||||
* 32 bits for the various ways we might encode the data,
|
||||
* including compression and encryption. If any of these
|
||||
* are set to something a given disk format doesn't understand
|
||||
* it is treated like an incompat flag for reading and writing,
|
||||
* but not for stat.
|
||||
*/
|
||||
__u8 compression;
|
||||
__u8 encryption;
|
||||
__le16 other_encoding; /* spare for later use */
|
||||
|
||||
/* are we inline data or a real extent? */
|
||||
__u8 type;
|
||||
|
||||
/*
|
||||
* disk space consumed by the extent, checksum blocks are included
|
||||
* in these numbers
|
||||
*
|
||||
* At this offset in the structure, the inline extent data start.
|
||||
*/
|
||||
__le64 disk_bytenr;
|
||||
__le64 disk_num_bytes;
|
||||
/*
|
||||
* the logical offset in file blocks (no csums)
|
||||
* this extent record is for. This allows a file extent to point
|
||||
* into the middle of an existing extent on disk, sharing it
|
||||
* between two snapshots (useful if some bytes in the middle of the
|
||||
* extent have changed
|
||||
*/
|
||||
__le64 offset;
|
||||
/*
|
||||
* the logical number of file blocks (no csums included). This
|
||||
* always reflects the size uncompressed and without encoding.
|
||||
*/
|
||||
__le64 num_bytes;
|
||||
|
||||
} __attribute__ ((__packed__));
|
||||
|
||||
struct btrfs_csum_item {
|
||||
__u8 csum;
|
||||
} __attribute__ ((__packed__));
|
||||
|
||||
struct btrfs_dev_stats_item {
|
||||
/*
|
||||
* grow this item struct at the end for future enhancements and keep
|
||||
* the existing values unchanged
|
||||
*/
|
||||
__le64 values[BTRFS_DEV_STAT_VALUES_MAX];
|
||||
} __attribute__ ((__packed__));
|
||||
|
||||
#define BTRFS_DEV_REPLACE_ITEM_CONT_READING_FROM_SRCDEV_MODE_ALWAYS 0
|
||||
#define BTRFS_DEV_REPLACE_ITEM_CONT_READING_FROM_SRCDEV_MODE_AVOID 1
|
||||
#define BTRFS_DEV_REPLACE_ITEM_STATE_NEVER_STARTED 0
|
||||
#define BTRFS_DEV_REPLACE_ITEM_STATE_STARTED 1
|
||||
#define BTRFS_DEV_REPLACE_ITEM_STATE_SUSPENDED 2
|
||||
#define BTRFS_DEV_REPLACE_ITEM_STATE_FINISHED 3
|
||||
#define BTRFS_DEV_REPLACE_ITEM_STATE_CANCELED 4
|
||||
|
||||
struct btrfs_dev_replace_item {
|
||||
/*
|
||||
* grow this item struct at the end for future enhancements and keep
|
||||
* the existing values unchanged
|
||||
*/
|
||||
__le64 src_devid;
|
||||
__le64 cursor_left;
|
||||
__le64 cursor_right;
|
||||
__le64 cont_reading_from_srcdev_mode;
|
||||
|
||||
__le64 replace_state;
|
||||
__le64 time_started;
|
||||
__le64 time_stopped;
|
||||
__le64 num_write_errors;
|
||||
__le64 num_uncorrectable_read_errors;
|
||||
} __attribute__ ((__packed__));
|
||||
|
||||
/* different types of block groups (and chunks) */
|
||||
#define BTRFS_BLOCK_GROUP_DATA (1ULL << 0)
|
||||
#define BTRFS_BLOCK_GROUP_SYSTEM (1ULL << 1)
|
||||
#define BTRFS_BLOCK_GROUP_METADATA (1ULL << 2)
|
||||
#define BTRFS_BLOCK_GROUP_RAID0 (1ULL << 3)
|
||||
#define BTRFS_BLOCK_GROUP_RAID1 (1ULL << 4)
|
||||
#define BTRFS_BLOCK_GROUP_DUP (1ULL << 5)
|
||||
#define BTRFS_BLOCK_GROUP_RAID10 (1ULL << 6)
|
||||
#define BTRFS_BLOCK_GROUP_RAID5 (1ULL << 7)
|
||||
#define BTRFS_BLOCK_GROUP_RAID6 (1ULL << 8)
|
||||
#define BTRFS_BLOCK_GROUP_RESERVED (BTRFS_AVAIL_ALLOC_BIT_SINGLE | \
|
||||
BTRFS_SPACE_INFO_GLOBAL_RSV)
|
||||
|
||||
enum btrfs_raid_types {
|
||||
BTRFS_RAID_RAID10,
|
||||
BTRFS_RAID_RAID1,
|
||||
BTRFS_RAID_DUP,
|
||||
BTRFS_RAID_RAID0,
|
||||
BTRFS_RAID_SINGLE,
|
||||
BTRFS_RAID_RAID5,
|
||||
BTRFS_RAID_RAID6,
|
||||
BTRFS_NR_RAID_TYPES
|
||||
};
|
||||
|
||||
#define BTRFS_BLOCK_GROUP_TYPE_MASK (BTRFS_BLOCK_GROUP_DATA | \
|
||||
BTRFS_BLOCK_GROUP_SYSTEM | \
|
||||
BTRFS_BLOCK_GROUP_METADATA)
|
||||
|
||||
#define BTRFS_BLOCK_GROUP_PROFILE_MASK (BTRFS_BLOCK_GROUP_RAID0 | \
|
||||
BTRFS_BLOCK_GROUP_RAID1 | \
|
||||
BTRFS_BLOCK_GROUP_RAID5 | \
|
||||
BTRFS_BLOCK_GROUP_RAID6 | \
|
||||
BTRFS_BLOCK_GROUP_DUP | \
|
||||
BTRFS_BLOCK_GROUP_RAID10)
|
||||
#define BTRFS_BLOCK_GROUP_RAID56_MASK (BTRFS_BLOCK_GROUP_RAID5 | \
|
||||
BTRFS_BLOCK_GROUP_RAID6)
|
||||
|
||||
/*
|
||||
* We need a bit for restriper to be able to tell when chunks of type
|
||||
* SINGLE are available. This "extended" profile format is used in
|
||||
* fs_info->avail_*_alloc_bits (in-memory) and balance item fields
|
||||
* (on-disk). The corresponding on-disk bit in chunk.type is reserved
|
||||
* to avoid remappings between two formats in future.
|
||||
*/
|
||||
#define BTRFS_AVAIL_ALLOC_BIT_SINGLE (1ULL << 48)
|
||||
|
||||
/*
|
||||
* A fake block group type that is used to communicate global block reserve
|
||||
* size to userspace via the SPACE_INFO ioctl.
|
||||
*/
|
||||
#define BTRFS_SPACE_INFO_GLOBAL_RSV (1ULL << 49)
|
||||
|
||||
#define BTRFS_EXTENDED_PROFILE_MASK (BTRFS_BLOCK_GROUP_PROFILE_MASK | \
|
||||
BTRFS_AVAIL_ALLOC_BIT_SINGLE)
|
||||
|
||||
static inline __u64 chunk_to_extended(__u64 flags)
|
||||
{
|
||||
if ((flags & BTRFS_BLOCK_GROUP_PROFILE_MASK) == 0)
|
||||
flags |= BTRFS_AVAIL_ALLOC_BIT_SINGLE;
|
||||
|
||||
return flags;
|
||||
}
|
||||
static inline __u64 extended_to_chunk(__u64 flags)
|
||||
{
|
||||
return flags & ~BTRFS_AVAIL_ALLOC_BIT_SINGLE;
|
||||
}
|
||||
|
||||
struct btrfs_block_group_item {
|
||||
__le64 used;
|
||||
__le64 chunk_objectid;
|
||||
__le64 flags;
|
||||
} __attribute__ ((__packed__));
|
||||
|
||||
struct btrfs_free_space_info {
|
||||
__le32 extent_count;
|
||||
__le32 flags;
|
||||
} __attribute__ ((__packed__));
|
||||
|
||||
#define BTRFS_FREE_SPACE_USING_BITMAPS (1ULL << 0)
|
||||
|
||||
#define BTRFS_QGROUP_LEVEL_SHIFT 48
|
||||
static inline __u64 btrfs_qgroup_level(__u64 qgroupid)
|
||||
{
|
||||
return qgroupid >> BTRFS_QGROUP_LEVEL_SHIFT;
|
||||
}
|
||||
|
||||
/*
|
||||
* is subvolume quota turned on?
|
||||
*/
|
||||
#define BTRFS_QGROUP_STATUS_FLAG_ON (1ULL << 0)
|
||||
/*
|
||||
* RESCAN is set during the initialization phase
|
||||
*/
|
||||
#define BTRFS_QGROUP_STATUS_FLAG_RESCAN (1ULL << 1)
|
||||
/*
|
||||
* Some qgroup entries are known to be out of date,
|
||||
* either because the configuration has changed in a way that
|
||||
* makes a rescan necessary, or because the fs has been mounted
|
||||
* with a non-qgroup-aware version.
|
||||
* Turning qouta off and on again makes it inconsistent, too.
|
||||
*/
|
||||
#define BTRFS_QGROUP_STATUS_FLAG_INCONSISTENT (1ULL << 2)
|
||||
|
||||
#define BTRFS_QGROUP_STATUS_VERSION 1
|
||||
|
||||
struct btrfs_qgroup_status_item {
|
||||
__le64 version;
|
||||
/*
|
||||
* the generation is updated during every commit. As older
|
||||
* versions of btrfs are not aware of qgroups, it will be
|
||||
* possible to detect inconsistencies by checking the
|
||||
* generation on mount time
|
||||
*/
|
||||
__le64 generation;
|
||||
|
||||
/* flag definitions see above */
|
||||
__le64 flags;
|
||||
|
||||
/*
|
||||
* only used during scanning to record the progress
|
||||
* of the scan. It contains a logical address
|
||||
*/
|
||||
__le64 rescan;
|
||||
} __attribute__ ((__packed__));
|
||||
|
||||
struct btrfs_qgroup_info_item {
|
||||
__le64 generation;
|
||||
__le64 rfer;
|
||||
__le64 rfer_cmpr;
|
||||
__le64 excl;
|
||||
__le64 excl_cmpr;
|
||||
} __attribute__ ((__packed__));
|
||||
|
||||
struct btrfs_qgroup_limit_item {
|
||||
/*
|
||||
* only updated when any of the other values change
|
||||
*/
|
||||
__le64 flags;
|
||||
__le64 max_rfer;
|
||||
__le64 max_excl;
|
||||
__le64 rsv_rfer;
|
||||
__le64 rsv_excl;
|
||||
} __attribute__ ((__packed__));
|
||||
|
||||
#endif /* _BTRFS_CTREE_H_ */
|
21
include/uapi/linux/coresight-stm.h
Normal file
21
include/uapi/linux/coresight-stm.h
Normal file
@@ -0,0 +1,21 @@
|
||||
#ifndef __UAPI_CORESIGHT_STM_H_
|
||||
#define __UAPI_CORESIGHT_STM_H_
|
||||
|
||||
#define STM_FLAG_TIMESTAMPED BIT(3)
|
||||
#define STM_FLAG_GUARANTEED BIT(7)
|
||||
|
||||
/*
|
||||
* The CoreSight STM supports guaranteed and invariant timing
|
||||
* transactions. Guaranteed transactions are guaranteed to be
|
||||
* traced, this might involve stalling the bus or system to
|
||||
* ensure the transaction is accepted by the STM. While invariant
|
||||
* timing transactions are not guaranteed to be traced, they
|
||||
* will take an invariant amount of time regardless of the
|
||||
* state of the STM.
|
||||
*/
|
||||
enum {
|
||||
STM_OPTION_GUARANTEED = 0,
|
||||
STM_OPTION_INVARIANT,
|
||||
};
|
||||
|
||||
#endif
|
@@ -33,6 +33,30 @@ enum devlink_command {
|
||||
DEVLINK_CMD_PORT_SPLIT,
|
||||
DEVLINK_CMD_PORT_UNSPLIT,
|
||||
|
||||
DEVLINK_CMD_SB_GET, /* can dump */
|
||||
DEVLINK_CMD_SB_SET,
|
||||
DEVLINK_CMD_SB_NEW,
|
||||
DEVLINK_CMD_SB_DEL,
|
||||
|
||||
DEVLINK_CMD_SB_POOL_GET, /* can dump */
|
||||
DEVLINK_CMD_SB_POOL_SET,
|
||||
DEVLINK_CMD_SB_POOL_NEW,
|
||||
DEVLINK_CMD_SB_POOL_DEL,
|
||||
|
||||
DEVLINK_CMD_SB_PORT_POOL_GET, /* can dump */
|
||||
DEVLINK_CMD_SB_PORT_POOL_SET,
|
||||
DEVLINK_CMD_SB_PORT_POOL_NEW,
|
||||
DEVLINK_CMD_SB_PORT_POOL_DEL,
|
||||
|
||||
DEVLINK_CMD_SB_TC_POOL_BIND_GET, /* can dump */
|
||||
DEVLINK_CMD_SB_TC_POOL_BIND_SET,
|
||||
DEVLINK_CMD_SB_TC_POOL_BIND_NEW,
|
||||
DEVLINK_CMD_SB_TC_POOL_BIND_DEL,
|
||||
|
||||
/* Shared buffer occupancy monitoring commands */
|
||||
DEVLINK_CMD_SB_OCC_SNAPSHOT,
|
||||
DEVLINK_CMD_SB_OCC_MAX_CLEAR,
|
||||
|
||||
/* add new commands above here */
|
||||
|
||||
__DEVLINK_CMD_MAX,
|
||||
@@ -46,6 +70,31 @@ enum devlink_port_type {
|
||||
DEVLINK_PORT_TYPE_IB,
|
||||
};
|
||||
|
||||
enum devlink_sb_pool_type {
|
||||
DEVLINK_SB_POOL_TYPE_INGRESS,
|
||||
DEVLINK_SB_POOL_TYPE_EGRESS,
|
||||
};
|
||||
|
||||
/* static threshold - limiting the maximum number of bytes.
|
||||
* dynamic threshold - limiting the maximum number of bytes
|
||||
* based on the currently available free space in the shared buffer pool.
|
||||
* In this mode, the maximum quota is calculated based
|
||||
* on the following formula:
|
||||
* max_quota = alpha / (1 + alpha) * Free_Buffer
|
||||
* While Free_Buffer is the amount of none-occupied buffer associated to
|
||||
* the relevant pool.
|
||||
* The value range which can be passed is 0-20 and serves
|
||||
* for computation of alpha by following formula:
|
||||
* alpha = 2 ^ (passed_value - 10)
|
||||
*/
|
||||
|
||||
enum devlink_sb_threshold_type {
|
||||
DEVLINK_SB_THRESHOLD_TYPE_STATIC,
|
||||
DEVLINK_SB_THRESHOLD_TYPE_DYNAMIC,
|
||||
};
|
||||
|
||||
#define DEVLINK_SB_THRESHOLD_TO_ALPHA_MAX 20
|
||||
|
||||
enum devlink_attr {
|
||||
/* don't change the order or add anything between, this is ABI! */
|
||||
DEVLINK_ATTR_UNSPEC,
|
||||
@@ -62,6 +111,20 @@ enum devlink_attr {
|
||||
DEVLINK_ATTR_PORT_IBDEV_NAME, /* string */
|
||||
DEVLINK_ATTR_PORT_SPLIT_COUNT, /* u32 */
|
||||
DEVLINK_ATTR_PORT_SPLIT_GROUP, /* u32 */
|
||||
DEVLINK_ATTR_SB_INDEX, /* u32 */
|
||||
DEVLINK_ATTR_SB_SIZE, /* u32 */
|
||||
DEVLINK_ATTR_SB_INGRESS_POOL_COUNT, /* u16 */
|
||||
DEVLINK_ATTR_SB_EGRESS_POOL_COUNT, /* u16 */
|
||||
DEVLINK_ATTR_SB_INGRESS_TC_COUNT, /* u16 */
|
||||
DEVLINK_ATTR_SB_EGRESS_TC_COUNT, /* u16 */
|
||||
DEVLINK_ATTR_SB_POOL_INDEX, /* u16 */
|
||||
DEVLINK_ATTR_SB_POOL_TYPE, /* u8 */
|
||||
DEVLINK_ATTR_SB_POOL_SIZE, /* u32 */
|
||||
DEVLINK_ATTR_SB_POOL_THRESHOLD_TYPE, /* u8 */
|
||||
DEVLINK_ATTR_SB_THRESHOLD, /* u32 */
|
||||
DEVLINK_ATTR_SB_TC_INDEX, /* u16 */
|
||||
DEVLINK_ATTR_SB_OCC_CUR, /* u32 */
|
||||
DEVLINK_ATTR_SB_OCC_MAX, /* u32 */
|
||||
|
||||
/* add new attributes above here, update the policy in devlink.c */
|
||||
|
||||
|
@@ -282,16 +282,18 @@ typedef struct elf64_phdr {
|
||||
#define SHT_HIUSER 0xffffffff
|
||||
|
||||
/* sh_flags */
|
||||
#define SHF_WRITE 0x1
|
||||
#define SHF_ALLOC 0x2
|
||||
#define SHF_EXECINSTR 0x4
|
||||
#define SHF_MASKPROC 0xf0000000
|
||||
#define SHF_WRITE 0x1
|
||||
#define SHF_ALLOC 0x2
|
||||
#define SHF_EXECINSTR 0x4
|
||||
#define SHF_RELA_LIVEPATCH 0x00100000
|
||||
#define SHF_MASKPROC 0xf0000000
|
||||
|
||||
/* special section indexes */
|
||||
#define SHN_UNDEF 0
|
||||
#define SHN_LORESERVE 0xff00
|
||||
#define SHN_LOPROC 0xff00
|
||||
#define SHN_HIPROC 0xff1f
|
||||
#define SHN_LIVEPATCH 0xff20
|
||||
#define SHN_ABS 0xfff1
|
||||
#define SHN_COMMON 0xfff2
|
||||
#define SHN_HIRESERVE 0xffff
|
||||
|
@@ -1353,6 +1353,15 @@ enum ethtool_link_mode_bit_indices {
|
||||
ETHTOOL_LINK_MODE_56000baseCR4_Full_BIT = 28,
|
||||
ETHTOOL_LINK_MODE_56000baseSR4_Full_BIT = 29,
|
||||
ETHTOOL_LINK_MODE_56000baseLR4_Full_BIT = 30,
|
||||
ETHTOOL_LINK_MODE_25000baseCR_Full_BIT = 31,
|
||||
ETHTOOL_LINK_MODE_25000baseKR_Full_BIT = 32,
|
||||
ETHTOOL_LINK_MODE_25000baseSR_Full_BIT = 33,
|
||||
ETHTOOL_LINK_MODE_50000baseCR2_Full_BIT = 34,
|
||||
ETHTOOL_LINK_MODE_50000baseKR2_Full_BIT = 35,
|
||||
ETHTOOL_LINK_MODE_100000baseKR4_Full_BIT = 36,
|
||||
ETHTOOL_LINK_MODE_100000baseSR4_Full_BIT = 37,
|
||||
ETHTOOL_LINK_MODE_100000baseCR4_Full_BIT = 38,
|
||||
ETHTOOL_LINK_MODE_100000baseLR4_ER4_Full_BIT = 39,
|
||||
|
||||
/* Last allowed bit for __ETHTOOL_LINK_MODE_LEGACY_MASK is bit
|
||||
* 31. Please do NOT define any SUPPORTED_* or ADVERTISED_*
|
||||
@@ -1361,7 +1370,7 @@ enum ethtool_link_mode_bit_indices {
|
||||
*/
|
||||
|
||||
__ETHTOOL_LINK_MODE_LAST
|
||||
= ETHTOOL_LINK_MODE_56000baseLR4_Full_BIT,
|
||||
= ETHTOOL_LINK_MODE_100000baseLR4_ER4_Full_BIT,
|
||||
};
|
||||
|
||||
#define __ETHTOOL_LINK_MODE_LEGACY_MASK(base_name) \
|
||||
|
@@ -49,6 +49,7 @@ enum {
|
||||
FRA_TABLE, /* Extended table id */
|
||||
FRA_FWMASK, /* mask for netfilter mark */
|
||||
FRA_OIFNAME,
|
||||
FRA_PAD,
|
||||
__FRA_MAX
|
||||
};
|
||||
|
||||
|
@@ -222,7 +222,6 @@ struct fsxattr {
|
||||
#define BLKSECDISCARD _IO(0x12,125)
|
||||
#define BLKROTATIONAL _IO(0x12,126)
|
||||
#define BLKZEROOUT _IO(0x12,127)
|
||||
#define BLKDAXGET _IO(0x12,129)
|
||||
|
||||
#define BMAP_IOCTL 1 /* obsolete - kept for compatibility */
|
||||
#define FIBMAP _IO(0x00,1) /* bmap access */
|
||||
@@ -324,5 +323,7 @@ struct fscrypt_policy {
|
||||
|
||||
/* flags for preadv2/pwritev2: */
|
||||
#define RWF_HIPRI 0x00000001 /* high priority request, poll if possible */
|
||||
#define RWF_DSYNC 0x00000002 /* per-IO O_DSYNC */
|
||||
#define RWF_SYNC 0x00000004 /* per-IO O_SYNC */
|
||||
|
||||
#endif /* _UAPI_LINUX_FS_H */
|
||||
|
@@ -10,6 +10,7 @@ enum {
|
||||
TCA_STATS_QUEUE,
|
||||
TCA_STATS_APP,
|
||||
TCA_STATS_RATE_EST64,
|
||||
TCA_STATS_PAD,
|
||||
__TCA_STATS_MAX,
|
||||
};
|
||||
#define TCA_STATS_MAX (__TCA_STATS_MAX - 1)
|
||||
|
33
include/uapi/linux/gtp.h
Normal file
33
include/uapi/linux/gtp.h
Normal file
@@ -0,0 +1,33 @@
|
||||
#ifndef _UAPI_LINUX_GTP_H_
|
||||
#define _UAPI_LINUX_GTP_H__
|
||||
|
||||
enum gtp_genl_cmds {
|
||||
GTP_CMD_NEWPDP,
|
||||
GTP_CMD_DELPDP,
|
||||
GTP_CMD_GETPDP,
|
||||
|
||||
GTP_CMD_MAX,
|
||||
};
|
||||
|
||||
enum gtp_version {
|
||||
GTP_V0 = 0,
|
||||
GTP_V1,
|
||||
};
|
||||
|
||||
enum gtp_attrs {
|
||||
GTPA_UNSPEC = 0,
|
||||
GTPA_LINK,
|
||||
GTPA_VERSION,
|
||||
GTPA_TID, /* for GTPv0 only */
|
||||
GTPA_SGSN_ADDRESS,
|
||||
GTPA_MS_ADDRESS,
|
||||
GTPA_FLOW,
|
||||
GTPA_NET_NS_FD,
|
||||
GTPA_I_TEI, /* for GTPv1 only */
|
||||
GTPA_O_TEI, /* for GTPv1 only */
|
||||
GTPA_PAD,
|
||||
__GTPA_MAX,
|
||||
};
|
||||
#define GTPA_MAX (__GTPA_MAX + 1)
|
||||
|
||||
#endif /* _UAPI_LINUX_GTP_H_ */
|
@@ -68,14 +68,15 @@
|
||||
struct i2c_msg {
|
||||
__u16 addr; /* slave address */
|
||||
__u16 flags;
|
||||
#define I2C_M_TEN 0x0010 /* this is a ten bit chip address */
|
||||
#define I2C_M_RD 0x0001 /* read data, from slave to master */
|
||||
#define I2C_M_STOP 0x8000 /* if I2C_FUNC_PROTOCOL_MANGLING */
|
||||
#define I2C_M_NOSTART 0x4000 /* if I2C_FUNC_NOSTART */
|
||||
#define I2C_M_REV_DIR_ADDR 0x2000 /* if I2C_FUNC_PROTOCOL_MANGLING */
|
||||
#define I2C_M_IGNORE_NAK 0x1000 /* if I2C_FUNC_PROTOCOL_MANGLING */
|
||||
#define I2C_M_NO_RD_ACK 0x0800 /* if I2C_FUNC_PROTOCOL_MANGLING */
|
||||
/* I2C_M_RD is guaranteed to be 0x0001! */
|
||||
#define I2C_M_TEN 0x0010 /* this is a ten bit chip address */
|
||||
#define I2C_M_RECV_LEN 0x0400 /* length will be first received byte */
|
||||
#define I2C_M_NO_RD_ACK 0x0800 /* if I2C_FUNC_PROTOCOL_MANGLING */
|
||||
#define I2C_M_IGNORE_NAK 0x1000 /* if I2C_FUNC_PROTOCOL_MANGLING */
|
||||
#define I2C_M_REV_DIR_ADDR 0x2000 /* if I2C_FUNC_PROTOCOL_MANGLING */
|
||||
#define I2C_M_NOSTART 0x4000 /* if I2C_FUNC_NOSTART */
|
||||
#define I2C_M_STOP 0x8000 /* if I2C_FUNC_PROTOCOL_MANGLING */
|
||||
__u16 len; /* msg length */
|
||||
__u8 *buf; /* pointer to msg data */
|
||||
};
|
||||
|
@@ -134,6 +134,16 @@ struct bridge_vlan_info {
|
||||
__u16 vid;
|
||||
};
|
||||
|
||||
struct bridge_vlan_xstats {
|
||||
__u64 rx_bytes;
|
||||
__u64 rx_packets;
|
||||
__u64 tx_bytes;
|
||||
__u64 tx_packets;
|
||||
__u16 vid;
|
||||
__u16 pad1;
|
||||
__u32 pad2;
|
||||
};
|
||||
|
||||
/* Bridge multicast database attributes
|
||||
* [MDBA_MDB] = {
|
||||
* [MDBA_MDB_ENTRY] = {
|
||||
@@ -233,4 +243,12 @@ enum {
|
||||
};
|
||||
#define MDBA_SET_ENTRY_MAX (__MDBA_SET_ENTRY_MAX - 1)
|
||||
|
||||
/* Embedded inside LINK_XSTATS_TYPE_BRIDGE */
|
||||
enum {
|
||||
BRIDGE_XSTATS_UNSPEC,
|
||||
BRIDGE_XSTATS_VLAN,
|
||||
__BRIDGE_XSTATS_MAX
|
||||
};
|
||||
#define BRIDGE_XSTATS_MAX (__BRIDGE_XSTATS_MAX - 1)
|
||||
|
||||
#endif /* _UAPI_LINUX_IF_BRIDGE_H */
|
||||
|
@@ -92,6 +92,7 @@
|
||||
#define ETH_P_TDLS 0x890D /* TDLS */
|
||||
#define ETH_P_FIP 0x8914 /* FCoE Initialization Protocol */
|
||||
#define ETH_P_80221 0x8917 /* IEEE 802.21 Media Independent Handover Protocol */
|
||||
#define ETH_P_HSR 0x892F /* IEC 62439-3 HSRv1 */
|
||||
#define ETH_P_LOOPBACK 0x9000 /* Ethernet loopback packet, per IEEE 802.3 */
|
||||
#define ETH_P_QINQ1 0x9100 /* deprecated QinQ VLAN [ NOT AN OFFICIALLY REGISTERED ID ] */
|
||||
#define ETH_P_QINQ2 0x9200 /* deprecated QinQ VLAN [ NOT AN OFFICIALLY REGISTERED ID ] */
|
||||
|
@@ -155,6 +155,7 @@ enum {
|
||||
IFLA_PROTO_DOWN,
|
||||
IFLA_GSO_MAX_SEGS,
|
||||
IFLA_GSO_MAX_SIZE,
|
||||
IFLA_PAD,
|
||||
__IFLA_MAX
|
||||
};
|
||||
|
||||
@@ -270,6 +271,8 @@ enum {
|
||||
IFLA_BR_NF_CALL_IP6TABLES,
|
||||
IFLA_BR_NF_CALL_ARPTABLES,
|
||||
IFLA_BR_VLAN_DEFAULT_PVID,
|
||||
IFLA_BR_PAD,
|
||||
IFLA_BR_VLAN_STATS_ENABLED,
|
||||
__IFLA_BR_MAX,
|
||||
};
|
||||
|
||||
@@ -312,6 +315,7 @@ enum {
|
||||
IFLA_BRPORT_HOLD_TIMER,
|
||||
IFLA_BRPORT_FLUSH,
|
||||
IFLA_BRPORT_MULTICAST_ROUTER,
|
||||
IFLA_BRPORT_PAD,
|
||||
__IFLA_BRPORT_MAX
|
||||
};
|
||||
#define IFLA_BRPORT_MAX (__IFLA_BRPORT_MAX - 1)
|
||||
@@ -431,6 +435,7 @@ enum {
|
||||
IFLA_MACSEC_SCB,
|
||||
IFLA_MACSEC_REPLAY_PROTECT,
|
||||
IFLA_MACSEC_VALIDATION,
|
||||
IFLA_MACSEC_PAD,
|
||||
__IFLA_MACSEC_MAX,
|
||||
};
|
||||
|
||||
@@ -488,6 +493,7 @@ enum {
|
||||
IFLA_VXLAN_REMCSUM_NOPARTIAL,
|
||||
IFLA_VXLAN_COLLECT_METADATA,
|
||||
IFLA_VXLAN_LABEL,
|
||||
IFLA_VXLAN_GPE,
|
||||
__IFLA_VXLAN_MAX
|
||||
};
|
||||
#define IFLA_VXLAN_MAX (__IFLA_VXLAN_MAX - 1)
|
||||
@@ -515,6 +521,24 @@ enum {
|
||||
};
|
||||
#define IFLA_GENEVE_MAX (__IFLA_GENEVE_MAX - 1)
|
||||
|
||||
/* PPP section */
|
||||
enum {
|
||||
IFLA_PPP_UNSPEC,
|
||||
IFLA_PPP_DEV_FD,
|
||||
__IFLA_PPP_MAX
|
||||
};
|
||||
#define IFLA_PPP_MAX (__IFLA_PPP_MAX - 1)
|
||||
|
||||
/* GTP section */
|
||||
enum {
|
||||
IFLA_GTP_UNSPEC,
|
||||
IFLA_GTP_FD0,
|
||||
IFLA_GTP_FD1,
|
||||
IFLA_GTP_PDP_HASHSIZE,
|
||||
__IFLA_GTP_MAX,
|
||||
};
|
||||
#define IFLA_GTP_MAX (__IFLA_GTP_MAX - 1)
|
||||
|
||||
/* Bonding section */
|
||||
|
||||
enum {
|
||||
@@ -664,6 +688,7 @@ enum {
|
||||
IFLA_VF_STATS_TX_BYTES,
|
||||
IFLA_VF_STATS_BROADCAST,
|
||||
IFLA_VF_STATS_MULTICAST,
|
||||
IFLA_VF_STATS_PAD,
|
||||
__IFLA_VF_STATS_MAX,
|
||||
};
|
||||
|
||||
@@ -774,9 +799,46 @@ enum {
|
||||
IFLA_HSR_MULTICAST_SPEC, /* Last byte of supervision addr */
|
||||
IFLA_HSR_SUPERVISION_ADDR, /* Supervision frame multicast addr */
|
||||
IFLA_HSR_SEQ_NR,
|
||||
IFLA_HSR_VERSION, /* HSR version */
|
||||
__IFLA_HSR_MAX,
|
||||
};
|
||||
|
||||
#define IFLA_HSR_MAX (__IFLA_HSR_MAX - 1)
|
||||
|
||||
/* STATS section */
|
||||
|
||||
struct if_stats_msg {
|
||||
__u8 family;
|
||||
__u8 pad1;
|
||||
__u16 pad2;
|
||||
__u32 ifindex;
|
||||
__u32 filter_mask;
|
||||
};
|
||||
|
||||
/* A stats attribute can be netdev specific or a global stat.
|
||||
* For netdev stats, lets use the prefix IFLA_STATS_LINK_*
|
||||
*/
|
||||
enum {
|
||||
IFLA_STATS_UNSPEC, /* also used as 64bit pad attribute */
|
||||
IFLA_STATS_LINK_64,
|
||||
IFLA_STATS_LINK_XSTATS,
|
||||
__IFLA_STATS_MAX,
|
||||
};
|
||||
|
||||
#define IFLA_STATS_MAX (__IFLA_STATS_MAX - 1)
|
||||
|
||||
#define IFLA_STATS_FILTER_BIT(ATTR) (1 << (ATTR - 1))
|
||||
|
||||
/* These are embedded into IFLA_STATS_LINK_XSTATS:
|
||||
* [IFLA_STATS_LINK_XSTATS]
|
||||
* -> [LINK_XSTATS_TYPE_xxx]
|
||||
* -> [rtnl link type specific attributes]
|
||||
*/
|
||||
enum {
|
||||
LINK_XSTATS_TYPE_UNSPEC,
|
||||
LINK_XSTATS_TYPE_BRIDGE,
|
||||
__LINK_XSTATS_TYPE_MAX
|
||||
};
|
||||
#define LINK_XSTATS_TYPE_MAX (__LINK_XSTATS_TYPE_MAX - 1)
|
||||
|
||||
#endif /* _UAPI_LINUX_IF_LINK_H */
|
||||
|
@@ -57,6 +57,7 @@ enum macsec_secy_attrs {
|
||||
MACSEC_SECY_ATTR_INC_SCI,
|
||||
MACSEC_SECY_ATTR_ES,
|
||||
MACSEC_SECY_ATTR_SCB,
|
||||
MACSEC_SECY_ATTR_PAD,
|
||||
__MACSEC_SECY_ATTR_END,
|
||||
NUM_MACSEC_SECY_ATTR = __MACSEC_SECY_ATTR_END,
|
||||
MACSEC_SECY_ATTR_MAX = __MACSEC_SECY_ATTR_END - 1,
|
||||
@@ -68,6 +69,7 @@ enum macsec_rxsc_attrs {
|
||||
MACSEC_RXSC_ATTR_ACTIVE, /* config/dump, u8 0..1 */
|
||||
MACSEC_RXSC_ATTR_SA_LIST, /* dump, nested */
|
||||
MACSEC_RXSC_ATTR_STATS, /* dump, nested, macsec_rxsc_stats_attr */
|
||||
MACSEC_RXSC_ATTR_PAD,
|
||||
__MACSEC_RXSC_ATTR_END,
|
||||
NUM_MACSEC_RXSC_ATTR = __MACSEC_RXSC_ATTR_END,
|
||||
MACSEC_RXSC_ATTR_MAX = __MACSEC_RXSC_ATTR_END - 1,
|
||||
@@ -81,6 +83,7 @@ enum macsec_sa_attrs {
|
||||
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_END,
|
||||
NUM_MACSEC_SA_ATTR = __MACSEC_SA_ATTR_END,
|
||||
MACSEC_SA_ATTR_MAX = __MACSEC_SA_ATTR_END - 1,
|
||||
@@ -112,6 +115,7 @@ enum macsec_rxsc_stats_attr {
|
||||
MACSEC_RXSC_STATS_ATTR_IN_PKTS_NOT_VALID,
|
||||
MACSEC_RXSC_STATS_ATTR_IN_PKTS_NOT_USING_SA,
|
||||
MACSEC_RXSC_STATS_ATTR_IN_PKTS_UNUSED_SA,
|
||||
MACSEC_RXSC_STATS_ATTR_PAD,
|
||||
__MACSEC_RXSC_STATS_ATTR_END,
|
||||
NUM_MACSEC_RXSC_STATS_ATTR = __MACSEC_RXSC_STATS_ATTR_END,
|
||||
MACSEC_RXSC_STATS_ATTR_MAX = __MACSEC_RXSC_STATS_ATTR_END - 1,
|
||||
@@ -139,6 +143,7 @@ enum macsec_txsc_stats_attr {
|
||||
MACSEC_TXSC_STATS_ATTR_OUT_PKTS_ENCRYPTED,
|
||||
MACSEC_TXSC_STATS_ATTR_OUT_OCTETS_PROTECTED,
|
||||
MACSEC_TXSC_STATS_ATTR_OUT_OCTETS_ENCRYPTED,
|
||||
MACSEC_TXSC_STATS_ATTR_PAD,
|
||||
__MACSEC_TXSC_STATS_ATTR_END,
|
||||
NUM_MACSEC_TXSC_STATS_ATTR = __MACSEC_TXSC_STATS_ATTR_END,
|
||||
MACSEC_TXSC_STATS_ATTR_MAX = __MACSEC_TXSC_STATS_ATTR_END - 1,
|
||||
@@ -155,6 +160,7 @@ enum macsec_secy_stats_attr {
|
||||
MACSEC_SECY_STATS_ATTR_IN_PKTS_UNKNOWN_SCI,
|
||||
MACSEC_SECY_STATS_ATTR_IN_PKTS_NO_SCI,
|
||||
MACSEC_SECY_STATS_ATTR_IN_PKTS_OVERRUN,
|
||||
MACSEC_SECY_STATS_ATTR_PAD,
|
||||
__MACSEC_SECY_STATS_ATTR_END,
|
||||
NUM_MACSEC_SECY_STATS_ATTR = __MACSEC_SECY_STATS_ATTR_END,
|
||||
MACSEC_SECY_STATS_ATTR_MAX = __MACSEC_SECY_STATS_ATTR_END - 1,
|
||||
|
@@ -38,6 +38,7 @@ enum iio_chan_type {
|
||||
IIO_CONCENTRATION,
|
||||
IIO_RESISTANCE,
|
||||
IIO_PH,
|
||||
IIO_UVINDEX,
|
||||
};
|
||||
|
||||
enum iio_modifier {
|
||||
@@ -77,6 +78,7 @@ enum iio_modifier {
|
||||
IIO_MOD_Q,
|
||||
IIO_MOD_CO2,
|
||||
IIO_MOD_VOC,
|
||||
IIO_MOD_LIGHT_UV,
|
||||
};
|
||||
|
||||
enum iio_event_type {
|
||||
|
@@ -14,6 +14,8 @@ enum {
|
||||
ILA_ATTR_LOCATOR_MATCH, /* u64 */
|
||||
ILA_ATTR_IFINDEX, /* s32 */
|
||||
ILA_ATTR_DIR, /* u32 */
|
||||
ILA_ATTR_PAD,
|
||||
ILA_ATTR_CSUM_MODE, /* u8 */
|
||||
|
||||
__ILA_ATTR_MAX,
|
||||
};
|
||||
@@ -34,4 +36,10 @@ enum {
|
||||
#define ILA_DIR_IN (1 << 0)
|
||||
#define ILA_DIR_OUT (1 << 1)
|
||||
|
||||
enum {
|
||||
ILA_CSUM_ADJUST_TRANSPORT,
|
||||
ILA_CSUM_NEUTRAL_MAP,
|
||||
ILA_CSUM_NO_ACTION,
|
||||
};
|
||||
|
||||
#endif /* _UAPI_LINUX_ILA_H */
|
||||
|
@@ -113,9 +113,13 @@ enum {
|
||||
INET_DIAG_DCTCPINFO,
|
||||
INET_DIAG_PROTOCOL, /* response attribute only */
|
||||
INET_DIAG_SKV6ONLY,
|
||||
INET_DIAG_LOCALS,
|
||||
INET_DIAG_PEERS,
|
||||
INET_DIAG_PAD,
|
||||
__INET_DIAG_MAX,
|
||||
};
|
||||
|
||||
#define INET_DIAG_MAX INET_DIAG_SKV6ONLY
|
||||
#define INET_DIAG_MAX (__INET_DIAG_MAX - 1)
|
||||
|
||||
/* INET_DIAG_MEM */
|
||||
|
||||
|
@@ -435,6 +435,7 @@ enum {
|
||||
IPVS_STATS_ATTR_OUTPPS, /* current out packet rate */
|
||||
IPVS_STATS_ATTR_INBPS, /* current in byte rate */
|
||||
IPVS_STATS_ATTR_OUTBPS, /* current out byte rate */
|
||||
IPVS_STATS_ATTR_PAD,
|
||||
__IPVS_STATS_ATTR_MAX,
|
||||
};
|
||||
|
||||
|
@@ -12,6 +12,8 @@
|
||||
#ifndef _LINUX_KEYCTL_H
|
||||
#define _LINUX_KEYCTL_H
|
||||
|
||||
#include <linux/types.h>
|
||||
|
||||
/* special process keyring shortcut IDs */
|
||||
#define KEY_SPEC_THREAD_KEYRING -1 /* - key ID for thread-specific keyring */
|
||||
#define KEY_SPEC_PROCESS_KEYRING -2 /* - key ID for process-specific keyring */
|
||||
@@ -57,5 +59,13 @@
|
||||
#define KEYCTL_INSTANTIATE_IOV 20 /* instantiate a partially constructed key */
|
||||
#define KEYCTL_INVALIDATE 21 /* invalidate a key */
|
||||
#define KEYCTL_GET_PERSISTENT 22 /* get a user's persistent keyring */
|
||||
#define KEYCTL_DH_COMPUTE 23 /* Compute Diffie-Hellman values */
|
||||
|
||||
/* keyctl structures */
|
||||
struct keyctl_dh_params {
|
||||
__s32 private;
|
||||
__s32 prime;
|
||||
__s32 base;
|
||||
};
|
||||
|
||||
#endif /* _LINUX_KEYCTL_H */
|
||||
|
@@ -865,6 +865,7 @@ struct kvm_ppc_smmu_info {
|
||||
#define KVM_CAP_SPAPR_TCE_64 125
|
||||
#define KVM_CAP_ARM_PMU_V3 126
|
||||
#define KVM_CAP_VCPU_ATTRIBUTES 127
|
||||
#define KVM_CAP_MAX_VCPU_ID 128
|
||||
|
||||
#ifdef KVM_CAP_IRQ_ROUTING
|
||||
|
||||
|
@@ -126,6 +126,7 @@ enum {
|
||||
L2TP_ATTR_IP6_DADDR, /* struct in6_addr */
|
||||
L2TP_ATTR_UDP_ZERO_CSUM6_TX, /* u8 */
|
||||
L2TP_ATTR_UDP_ZERO_CSUM6_RX, /* u8 */
|
||||
L2TP_ATTR_PAD,
|
||||
__L2TP_ATTR_MAX,
|
||||
};
|
||||
|
||||
@@ -142,6 +143,7 @@ enum {
|
||||
L2TP_ATTR_RX_SEQ_DISCARDS, /* u64 */
|
||||
L2TP_ATTR_RX_OOS_PACKETS, /* u64 */
|
||||
L2TP_ATTR_RX_ERRORS, /* u64 */
|
||||
L2TP_ATTR_STATS_PAD,
|
||||
__L2TP_ATTR_STATS_MAX,
|
||||
};
|
||||
|
||||
|
@@ -52,7 +52,7 @@
|
||||
#if defined(__GLIBC__)
|
||||
|
||||
/* Coordinate with glibc net/if.h header. */
|
||||
#if defined(_NET_IF_H)
|
||||
#if defined(_NET_IF_H) && defined(__USE_MISC)
|
||||
|
||||
/* GLIBC headers included first so don't define anything
|
||||
* that would already be defined. */
|
||||
|
@@ -22,6 +22,7 @@ enum lwtunnel_ip_t {
|
||||
LWTUNNEL_IP_TTL,
|
||||
LWTUNNEL_IP_TOS,
|
||||
LWTUNNEL_IP_FLAGS,
|
||||
LWTUNNEL_IP_PAD,
|
||||
__LWTUNNEL_IP_MAX,
|
||||
};
|
||||
|
||||
@@ -35,6 +36,7 @@ enum lwtunnel_ip6_t {
|
||||
LWTUNNEL_IP6_HOPLIMIT,
|
||||
LWTUNNEL_IP6_TC,
|
||||
LWTUNNEL_IP6_FLAGS,
|
||||
LWTUNNEL_IP6_PAD,
|
||||
__LWTUNNEL_IP6_MAX,
|
||||
};
|
||||
|
||||
|
@@ -78,5 +78,7 @@
|
||||
#define BTRFS_TEST_MAGIC 0x73727279
|
||||
#define NSFS_MAGIC 0x6e736673
|
||||
#define BPF_FS_MAGIC 0xcafe4a11
|
||||
/* Since UDF 2.01 is ISO 13346 based... */
|
||||
#define UDF_SUPER_MAGIC 0x15013346
|
||||
|
||||
#endif /* __LINUX_MAGIC_H__ */
|
||||
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2014-2015, Intel Corporation.
|
||||
* Copyright (c) 2014-2016, Intel Corporation.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify it
|
||||
* under the terms and conditions of the GNU Lesser General Public License,
|
||||
@@ -20,11 +20,45 @@ struct nd_cmd_smart {
|
||||
__u8 data[128];
|
||||
} __packed;
|
||||
|
||||
#define ND_SMART_HEALTH_VALID (1 << 0)
|
||||
#define ND_SMART_TEMP_VALID (1 << 1)
|
||||
#define ND_SMART_SPARES_VALID (1 << 2)
|
||||
#define ND_SMART_ALARM_VALID (1 << 3)
|
||||
#define ND_SMART_USED_VALID (1 << 4)
|
||||
#define ND_SMART_SHUTDOWN_VALID (1 << 5)
|
||||
#define ND_SMART_VENDOR_VALID (1 << 6)
|
||||
#define ND_SMART_TEMP_TRIP (1 << 0)
|
||||
#define ND_SMART_SPARE_TRIP (1 << 1)
|
||||
#define ND_SMART_NON_CRITICAL_HEALTH (1 << 0)
|
||||
#define ND_SMART_CRITICAL_HEALTH (1 << 1)
|
||||
#define ND_SMART_FATAL_HEALTH (1 << 2)
|
||||
|
||||
struct nd_smart_payload {
|
||||
__u32 flags;
|
||||
__u8 reserved0[4];
|
||||
__u8 health;
|
||||
__u16 temperature;
|
||||
__u8 spares;
|
||||
__u8 alarm_flags;
|
||||
__u8 life_used;
|
||||
__u8 shutdown_state;
|
||||
__u8 reserved1;
|
||||
__u32 vendor_size;
|
||||
__u8 vendor_data[108];
|
||||
} __packed;
|
||||
|
||||
struct nd_cmd_smart_threshold {
|
||||
__u32 status;
|
||||
__u8 data[8];
|
||||
} __packed;
|
||||
|
||||
struct nd_smart_threshold_payload {
|
||||
__u16 alarm_control;
|
||||
__u16 temperature;
|
||||
__u8 spares;
|
||||
__u8 reserved[3];
|
||||
} __packed;
|
||||
|
||||
struct nd_cmd_dimm_flags {
|
||||
__u32 status;
|
||||
__u32 flags;
|
||||
@@ -125,6 +159,7 @@ enum {
|
||||
ND_CMD_VENDOR_EFFECT_LOG_SIZE = 7,
|
||||
ND_CMD_VENDOR_EFFECT_LOG = 8,
|
||||
ND_CMD_VENDOR = 9,
|
||||
ND_CMD_CALL = 10,
|
||||
};
|
||||
|
||||
enum {
|
||||
@@ -158,6 +193,7 @@ static inline const char *nvdimm_cmd_name(unsigned cmd)
|
||||
[ND_CMD_VENDOR_EFFECT_LOG_SIZE] = "effect_size",
|
||||
[ND_CMD_VENDOR_EFFECT_LOG] = "effect_log",
|
||||
[ND_CMD_VENDOR] = "vendor",
|
||||
[ND_CMD_CALL] = "cmd_call",
|
||||
};
|
||||
|
||||
if (cmd < ARRAY_SIZE(names) && names[cmd])
|
||||
@@ -206,6 +242,7 @@ static inline const char *nvdimm_cmd_name(unsigned cmd)
|
||||
#define ND_DEVICE_NAMESPACE_IO 4 /* legacy persistent memory */
|
||||
#define ND_DEVICE_NAMESPACE_PMEM 5 /* PMEM namespace (may alias with BLK) */
|
||||
#define ND_DEVICE_NAMESPACE_BLK 6 /* BLK namespace (may alias with PMEM) */
|
||||
#define ND_DEVICE_DAX_PMEM 7 /* Device DAX interface to pmem */
|
||||
|
||||
enum nd_driver_flags {
|
||||
ND_DRIVER_DIMM = 1 << ND_DEVICE_DIMM,
|
||||
@@ -214,6 +251,7 @@ enum nd_driver_flags {
|
||||
ND_DRIVER_NAMESPACE_IO = 1 << ND_DEVICE_NAMESPACE_IO,
|
||||
ND_DRIVER_NAMESPACE_PMEM = 1 << ND_DEVICE_NAMESPACE_PMEM,
|
||||
ND_DRIVER_NAMESPACE_BLK = 1 << ND_DEVICE_NAMESPACE_BLK,
|
||||
ND_DRIVER_DAX_PMEM = 1 << ND_DEVICE_DAX_PMEM,
|
||||
};
|
||||
|
||||
enum {
|
||||
@@ -224,4 +262,44 @@ enum ars_masks {
|
||||
ARS_STATUS_MASK = 0x0000FFFF,
|
||||
ARS_EXT_STATUS_SHIFT = 16,
|
||||
};
|
||||
|
||||
/*
|
||||
* struct nd_cmd_pkg
|
||||
*
|
||||
* is a wrapper to a quasi pass thru interface for invoking firmware
|
||||
* associated with nvdimms.
|
||||
*
|
||||
* INPUT PARAMETERS
|
||||
*
|
||||
* nd_family corresponds to the firmware (e.g. DSM) interface.
|
||||
*
|
||||
* nd_command are the function index advertised by the firmware.
|
||||
*
|
||||
* nd_size_in is the size of the input parameters being passed to firmware
|
||||
*
|
||||
* OUTPUT PARAMETERS
|
||||
*
|
||||
* nd_fw_size is the size of the data firmware wants to return for
|
||||
* the call. If nd_fw_size is greater than size of nd_size_out, only
|
||||
* the first nd_size_out bytes are returned.
|
||||
*/
|
||||
|
||||
struct nd_cmd_pkg {
|
||||
__u64 nd_family; /* family of commands */
|
||||
__u64 nd_command;
|
||||
__u32 nd_size_in; /* INPUT: size of input args */
|
||||
__u32 nd_size_out; /* INPUT: size of payload */
|
||||
__u32 nd_reserved2[9]; /* reserved must be zero */
|
||||
__u32 nd_fw_size; /* OUTPUT: size fw wants to return */
|
||||
unsigned char nd_payload[]; /* Contents of call */
|
||||
};
|
||||
|
||||
/* These NVDIMM families represent pre-standardization command sets */
|
||||
#define NVDIMM_FAMILY_INTEL 0
|
||||
#define NVDIMM_FAMILY_HPE1 1
|
||||
#define NVDIMM_FAMILY_HPE2 2
|
||||
|
||||
#define ND_IOCTL_CALL _IOWR(ND_IOCTL, ND_CMD_CALL,\
|
||||
struct nd_cmd_pkg)
|
||||
|
||||
#endif /* __NDCTL_H__ */
|
||||
|
@@ -128,6 +128,7 @@ enum {
|
||||
NDTPA_LOCKTIME, /* u64, msecs */
|
||||
NDTPA_QUEUE_LENBYTES, /* u32 */
|
||||
NDTPA_MCAST_REPROBES, /* u32 */
|
||||
NDTPA_PAD,
|
||||
__NDTPA_MAX
|
||||
};
|
||||
#define NDTPA_MAX (__NDTPA_MAX - 1)
|
||||
@@ -160,6 +161,7 @@ enum {
|
||||
NDTA_PARMS, /* nested TLV NDTPA_* */
|
||||
NDTA_STATS, /* struct ndt_stats, read-only */
|
||||
NDTA_GC_INTERVAL, /* u64, msecs */
|
||||
NDTA_PAD,
|
||||
__NDTA_MAX
|
||||
};
|
||||
#define NDTA_MAX (__NDTA_MAX - 1)
|
||||
|
@@ -31,6 +31,16 @@ enum {
|
||||
SOF_TIMESTAMPING_LAST
|
||||
};
|
||||
|
||||
/*
|
||||
* SO_TIMESTAMPING flags are either for recording a packet timestamp or for
|
||||
* reporting the timestamp to user space.
|
||||
* Recording flags can be set both via socket options and control messages.
|
||||
*/
|
||||
#define SOF_TIMESTAMPING_TX_RECORD_MASK (SOF_TIMESTAMPING_TX_HARDWARE | \
|
||||
SOF_TIMESTAMPING_TX_SOFTWARE | \
|
||||
SOF_TIMESTAMPING_TX_SCHED | \
|
||||
SOF_TIMESTAMPING_TX_ACK)
|
||||
|
||||
/**
|
||||
* struct hwtstamp_config - %SIOCGHWTSTAMP and %SIOCSHWTSTAMP parameter
|
||||
*
|
||||
|
@@ -118,6 +118,7 @@ enum {
|
||||
IPSET_ATTR_SKBMARK,
|
||||
IPSET_ATTR_SKBPRIO,
|
||||
IPSET_ATTR_SKBQUEUE,
|
||||
IPSET_ATTR_PAD,
|
||||
__IPSET_ATTR_ADT_MAX,
|
||||
};
|
||||
#define IPSET_ATTR_ADT_MAX (__IPSET_ATTR_ADT_MAX - 1)
|
||||
|
@@ -3,6 +3,7 @@
|
||||
|
||||
#define NFT_TABLE_MAXNAMELEN 32
|
||||
#define NFT_CHAIN_MAXNAMELEN 32
|
||||
#define NFT_SET_MAXNAMELEN 32
|
||||
#define NFT_USERDATA_MAXLEN 256
|
||||
|
||||
/**
|
||||
@@ -182,6 +183,7 @@ enum nft_chain_attributes {
|
||||
NFTA_CHAIN_USE,
|
||||
NFTA_CHAIN_TYPE,
|
||||
NFTA_CHAIN_COUNTERS,
|
||||
NFTA_CHAIN_PAD,
|
||||
__NFTA_CHAIN_MAX
|
||||
};
|
||||
#define NFTA_CHAIN_MAX (__NFTA_CHAIN_MAX - 1)
|
||||
@@ -206,6 +208,7 @@ enum nft_rule_attributes {
|
||||
NFTA_RULE_COMPAT,
|
||||
NFTA_RULE_POSITION,
|
||||
NFTA_RULE_USERDATA,
|
||||
NFTA_RULE_PAD,
|
||||
__NFTA_RULE_MAX
|
||||
};
|
||||
#define NFTA_RULE_MAX (__NFTA_RULE_MAX - 1)
|
||||
@@ -308,6 +311,7 @@ enum nft_set_attributes {
|
||||
NFTA_SET_TIMEOUT,
|
||||
NFTA_SET_GC_INTERVAL,
|
||||
NFTA_SET_USERDATA,
|
||||
NFTA_SET_PAD,
|
||||
__NFTA_SET_MAX
|
||||
};
|
||||
#define NFTA_SET_MAX (__NFTA_SET_MAX - 1)
|
||||
@@ -341,6 +345,7 @@ enum nft_set_elem_attributes {
|
||||
NFTA_SET_ELEM_EXPIRATION,
|
||||
NFTA_SET_ELEM_USERDATA,
|
||||
NFTA_SET_ELEM_EXPR,
|
||||
NFTA_SET_ELEM_PAD,
|
||||
__NFTA_SET_ELEM_MAX
|
||||
};
|
||||
#define NFTA_SET_ELEM_MAX (__NFTA_SET_ELEM_MAX - 1)
|
||||
@@ -584,6 +589,7 @@ enum nft_dynset_attributes {
|
||||
NFTA_DYNSET_SREG_DATA,
|
||||
NFTA_DYNSET_TIMEOUT,
|
||||
NFTA_DYNSET_EXPR,
|
||||
NFTA_DYNSET_PAD,
|
||||
__NFTA_DYNSET_MAX,
|
||||
};
|
||||
#define NFTA_DYNSET_MAX (__NFTA_DYNSET_MAX - 1)
|
||||
@@ -806,6 +812,7 @@ enum nft_limit_attributes {
|
||||
NFTA_LIMIT_BURST,
|
||||
NFTA_LIMIT_TYPE,
|
||||
NFTA_LIMIT_FLAGS,
|
||||
NFTA_LIMIT_PAD,
|
||||
__NFTA_LIMIT_MAX
|
||||
};
|
||||
#define NFTA_LIMIT_MAX (__NFTA_LIMIT_MAX - 1)
|
||||
@@ -820,6 +827,7 @@ enum nft_counter_attributes {
|
||||
NFTA_COUNTER_UNSPEC,
|
||||
NFTA_COUNTER_BYTES,
|
||||
NFTA_COUNTER_PACKETS,
|
||||
NFTA_COUNTER_PAD,
|
||||
__NFTA_COUNTER_MAX
|
||||
};
|
||||
#define NFTA_COUNTER_MAX (__NFTA_COUNTER_MAX - 1)
|
||||
@@ -1055,6 +1063,7 @@ enum nft_trace_attibutes {
|
||||
NFTA_TRACE_MARK,
|
||||
NFTA_TRACE_NFPROTO,
|
||||
NFTA_TRACE_POLICY,
|
||||
NFTA_TRACE_PAD,
|
||||
__NFTA_TRACE_MAX
|
||||
};
|
||||
#define NFTA_TRACE_MAX (__NFTA_TRACE_MAX - 1)
|
||||
|
@@ -29,6 +29,7 @@ enum nfnl_acct_type {
|
||||
NFACCT_FLAGS,
|
||||
NFACCT_QUOTA,
|
||||
NFACCT_FILTER,
|
||||
NFACCT_PAD,
|
||||
__NFACCT_MAX
|
||||
};
|
||||
#define NFACCT_MAX (__NFACCT_MAX - 1)
|
||||
|
@@ -116,6 +116,7 @@ enum ctattr_protoinfo_dccp {
|
||||
CTA_PROTOINFO_DCCP_STATE,
|
||||
CTA_PROTOINFO_DCCP_ROLE,
|
||||
CTA_PROTOINFO_DCCP_HANDSHAKE_SEQ,
|
||||
CTA_PROTOINFO_DCCP_PAD,
|
||||
__CTA_PROTOINFO_DCCP_MAX,
|
||||
};
|
||||
#define CTA_PROTOINFO_DCCP_MAX (__CTA_PROTOINFO_DCCP_MAX - 1)
|
||||
@@ -135,6 +136,7 @@ enum ctattr_counters {
|
||||
CTA_COUNTERS_BYTES, /* 64bit counters */
|
||||
CTA_COUNTERS32_PACKETS, /* old 32bit counters, unused */
|
||||
CTA_COUNTERS32_BYTES, /* old 32bit counters, unused */
|
||||
CTA_COUNTERS_PAD,
|
||||
__CTA_COUNTERS_MAX
|
||||
};
|
||||
#define CTA_COUNTERS_MAX (__CTA_COUNTERS_MAX - 1)
|
||||
@@ -143,6 +145,7 @@ enum ctattr_tstamp {
|
||||
CTA_TIMESTAMP_UNSPEC,
|
||||
CTA_TIMESTAMP_START,
|
||||
CTA_TIMESTAMP_STOP,
|
||||
CTA_TIMESTAMP_PAD,
|
||||
__CTA_TIMESTAMP_MAX
|
||||
};
|
||||
#define CTA_TIMESTAMP_MAX (__CTA_TIMESTAMP_MAX - 1)
|
||||
|
@@ -30,6 +30,14 @@ struct nfqnl_msg_packet_timestamp {
|
||||
__aligned_be64 usec;
|
||||
};
|
||||
|
||||
enum nfqnl_vlan_attr {
|
||||
NFQA_VLAN_UNSPEC,
|
||||
NFQA_VLAN_PROTO, /* __be16 skb vlan_proto */
|
||||
NFQA_VLAN_TCI, /* __be16 skb htons(vlan_tci) */
|
||||
__NFQA_VLAN_MAX,
|
||||
};
|
||||
#define NFQA_VLAN_MAX (__NFQA_VLAN_MAX + 1)
|
||||
|
||||
enum nfqnl_attr_type {
|
||||
NFQA_UNSPEC,
|
||||
NFQA_PACKET_HDR,
|
||||
@@ -50,6 +58,8 @@ enum nfqnl_attr_type {
|
||||
NFQA_UID, /* __u32 sk uid */
|
||||
NFQA_GID, /* __u32 sk gid */
|
||||
NFQA_SECCTX, /* security context string */
|
||||
NFQA_VLAN, /* nested attribute: packet vlan info */
|
||||
NFQA_L2HDR, /* full L2 header */
|
||||
|
||||
__NFQA_MAX
|
||||
};
|
||||
|
@@ -322,7 +322,9 @@
|
||||
* @NL80211_CMD_GET_SCAN: get scan results
|
||||
* @NL80211_CMD_TRIGGER_SCAN: trigger a new scan with the given parameters
|
||||
* %NL80211_ATTR_TX_NO_CCK_RATE is used to decide whether to send the
|
||||
* probe requests at CCK rate or not.
|
||||
* probe requests at CCK rate or not. %NL80211_ATTR_MAC can be used to
|
||||
* specify a BSSID to scan for; if not included, the wildcard BSSID will
|
||||
* be used.
|
||||
* @NL80211_CMD_NEW_SCAN_RESULTS: scan notification (as a reply to
|
||||
* NL80211_CMD_GET_SCAN and on the "scan" multicast group)
|
||||
* @NL80211_CMD_SCAN_ABORTED: scan was aborted, for unspecified reasons,
|
||||
@@ -427,7 +429,11 @@
|
||||
* @NL80211_CMD_ASSOCIATE: association request and notification; like
|
||||
* NL80211_CMD_AUTHENTICATE but for Association and Reassociation
|
||||
* (similar to MLME-ASSOCIATE.request, MLME-REASSOCIATE.request,
|
||||
* MLME-ASSOCIATE.confirm or MLME-REASSOCIATE.confirm primitives).
|
||||
* MLME-ASSOCIATE.confirm or MLME-REASSOCIATE.confirm primitives). The
|
||||
* %NL80211_ATTR_PREV_BSSID attribute is used to specify whether the
|
||||
* request is for the initial association to an ESS (that attribute not
|
||||
* included) or for reassociation within the ESS (that attribute is
|
||||
* included).
|
||||
* @NL80211_CMD_DEAUTHENTICATE: deauthentication request and notification; like
|
||||
* NL80211_CMD_AUTHENTICATE but for Deauthentication frames (similar to
|
||||
* MLME-DEAUTHENTICATION.request and MLME-DEAUTHENTICATE.indication
|
||||
@@ -477,6 +483,9 @@
|
||||
* set of BSSID,frequency parameters is used (i.e., either the enforcing
|
||||
* %NL80211_ATTR_MAC,%NL80211_ATTR_WIPHY_FREQ or the less strict
|
||||
* %NL80211_ATTR_MAC_HINT and %NL80211_ATTR_WIPHY_FREQ_HINT).
|
||||
* %NL80211_ATTR_PREV_BSSID can be used to request a reassociation within
|
||||
* the ESS in case the device is already associated and an association with
|
||||
* a different BSS is desired.
|
||||
* Background scan period can optionally be
|
||||
* specified in %NL80211_ATTR_BG_SCAN_PERIOD,
|
||||
* if not specified default background scan configuration
|
||||
@@ -1285,8 +1294,11 @@ enum nl80211_commands {
|
||||
* @NL80211_ATTR_RESP_IE: (Re)association response information elements as
|
||||
* sent by peer, for ROAM and successful CONNECT events.
|
||||
*
|
||||
* @NL80211_ATTR_PREV_BSSID: previous BSSID, to be used by in ASSOCIATE
|
||||
* commands to specify using a reassociate frame
|
||||
* @NL80211_ATTR_PREV_BSSID: previous BSSID, to be used in ASSOCIATE and CONNECT
|
||||
* commands to specify a request to reassociate within an ESS, i.e., to use
|
||||
* Reassociate Request frame (with the value of this attribute in the
|
||||
* Current AP address field) instead of Association Request frame which is
|
||||
* used for the initial association to an ESS.
|
||||
*
|
||||
* @NL80211_ATTR_KEY: key information in a nested attribute with
|
||||
* %NL80211_KEY_* sub-attributes
|
||||
@@ -1795,6 +1807,17 @@ enum nl80211_commands {
|
||||
* in a PBSS. Specified in %NL80211_CMD_CONNECT to request
|
||||
* connecting to a PCP, and in %NL80211_CMD_START_AP to start
|
||||
* a PCP instead of AP. Relevant for DMG networks only.
|
||||
* @NL80211_ATTR_BSS_SELECT: nested attribute for driver supporting the
|
||||
* BSS selection feature. When used with %NL80211_CMD_GET_WIPHY it contains
|
||||
* attributes according &enum nl80211_bss_select_attr to indicate what
|
||||
* BSS selection behaviours are supported. When used with %NL80211_CMD_CONNECT
|
||||
* it contains the behaviour-specific attribute containing the parameters for
|
||||
* BSS selection to be done by driver and/or firmware.
|
||||
*
|
||||
* @NL80211_ATTR_STA_SUPPORT_P2P_PS: whether P2P PS mechanism supported
|
||||
* or not. u8, one of the values of &enum nl80211_sta_p2p_ps_status
|
||||
*
|
||||
* @NL80211_ATTR_PAD: attribute used for padding for 64-bit alignment
|
||||
*
|
||||
* @NUM_NL80211_ATTR: total number of nl80211_attrs available
|
||||
* @NL80211_ATTR_MAX: highest attribute number currently defined
|
||||
@@ -2172,6 +2195,12 @@ enum nl80211_attrs {
|
||||
|
||||
NL80211_ATTR_PBSS,
|
||||
|
||||
NL80211_ATTR_BSS_SELECT,
|
||||
|
||||
NL80211_ATTR_STA_SUPPORT_P2P_PS,
|
||||
|
||||
NL80211_ATTR_PAD,
|
||||
|
||||
/* add attributes here, update the policy in nl80211.c */
|
||||
|
||||
__NL80211_ATTR_AFTER_LAST,
|
||||
@@ -2315,6 +2344,20 @@ enum nl80211_sta_flags {
|
||||
NL80211_STA_FLAG_MAX = __NL80211_STA_FLAG_AFTER_LAST - 1
|
||||
};
|
||||
|
||||
/**
|
||||
* enum nl80211_sta_p2p_ps_status - station support of P2P PS
|
||||
*
|
||||
* @NL80211_P2P_PS_UNSUPPORTED: station doesn't support P2P PS mechanism
|
||||
* @@NL80211_P2P_PS_SUPPORTED: station supports P2P PS mechanism
|
||||
* @NUM_NL80211_P2P_PS_STATUS: number of values
|
||||
*/
|
||||
enum nl80211_sta_p2p_ps_status {
|
||||
NL80211_P2P_PS_UNSUPPORTED = 0,
|
||||
NL80211_P2P_PS_SUPPORTED,
|
||||
|
||||
NUM_NL80211_P2P_PS_STATUS,
|
||||
};
|
||||
|
||||
#define NL80211_STA_FLAG_MAX_OLD_API NL80211_STA_FLAG_TDLS_PEER
|
||||
|
||||
/**
|
||||
@@ -2472,6 +2515,9 @@ enum nl80211_sta_bss_param {
|
||||
* TID+1 and the special TID 16 (i.e. value 17) is used for non-QoS frames;
|
||||
* each one of those is again nested with &enum nl80211_tid_stats
|
||||
* attributes carrying the actual values.
|
||||
* @NL80211_STA_INFO_RX_DURATION: aggregate PPDU duration for all frames
|
||||
* received from the station (u64, usec)
|
||||
* @NL80211_STA_INFO_PAD: attribute used for padding for 64-bit alignment
|
||||
* @__NL80211_STA_INFO_AFTER_LAST: internal
|
||||
* @NL80211_STA_INFO_MAX: highest possible station info attribute
|
||||
*/
|
||||
@@ -2508,6 +2554,8 @@ enum nl80211_sta_info {
|
||||
NL80211_STA_INFO_BEACON_RX,
|
||||
NL80211_STA_INFO_BEACON_SIGNAL_AVG,
|
||||
NL80211_STA_INFO_TID_STATS,
|
||||
NL80211_STA_INFO_RX_DURATION,
|
||||
NL80211_STA_INFO_PAD,
|
||||
|
||||
/* keep last */
|
||||
__NL80211_STA_INFO_AFTER_LAST,
|
||||
@@ -2524,6 +2572,7 @@ enum nl80211_sta_info {
|
||||
* transmitted MSDUs (not counting the first attempt; u64)
|
||||
* @NL80211_TID_STATS_TX_MSDU_FAILED: number of failed transmitted
|
||||
* MSDUs (u64)
|
||||
* @NL80211_TID_STATS_PAD: attribute used for padding for 64-bit alignment
|
||||
* @NUM_NL80211_TID_STATS: number of attributes here
|
||||
* @NL80211_TID_STATS_MAX: highest numbered attribute here
|
||||
*/
|
||||
@@ -2533,6 +2582,7 @@ enum nl80211_tid_stats {
|
||||
NL80211_TID_STATS_TX_MSDU,
|
||||
NL80211_TID_STATS_TX_MSDU_RETRIES,
|
||||
NL80211_TID_STATS_TX_MSDU_FAILED,
|
||||
NL80211_TID_STATS_PAD,
|
||||
|
||||
/* keep last */
|
||||
NUM_NL80211_TID_STATS,
|
||||
@@ -2969,6 +3019,7 @@ enum nl80211_user_reg_hint_type {
|
||||
* transmitting data (on channel or globally)
|
||||
* @NL80211_SURVEY_INFO_TIME_SCAN: time the radio spent for scan
|
||||
* (on this channel or globally)
|
||||
* @NL80211_SURVEY_INFO_PAD: attribute used for padding for 64-bit alignment
|
||||
* @NL80211_SURVEY_INFO_MAX: highest survey info attribute number
|
||||
* currently defined
|
||||
* @__NL80211_SURVEY_INFO_AFTER_LAST: internal use
|
||||
@@ -2984,6 +3035,7 @@ enum nl80211_survey_info {
|
||||
NL80211_SURVEY_INFO_TIME_RX,
|
||||
NL80211_SURVEY_INFO_TIME_TX,
|
||||
NL80211_SURVEY_INFO_TIME_SCAN,
|
||||
NL80211_SURVEY_INFO_PAD,
|
||||
|
||||
/* keep last */
|
||||
__NL80211_SURVEY_INFO_AFTER_LAST,
|
||||
@@ -3409,6 +3461,7 @@ enum nl80211_bss_scan_width {
|
||||
* @NL80211_BSS_LAST_SEEN_BOOTTIME: CLOCK_BOOTTIME timestamp when this entry
|
||||
* was last updated by a received frame. The value is expected to be
|
||||
* accurate to about 10ms. (u64, nanoseconds)
|
||||
* @NL80211_BSS_PAD: attribute used for padding for 64-bit alignment
|
||||
* @__NL80211_BSS_AFTER_LAST: internal
|
||||
* @NL80211_BSS_MAX: highest BSS attribute
|
||||
*/
|
||||
@@ -3429,6 +3482,7 @@ enum nl80211_bss {
|
||||
NL80211_BSS_BEACON_TSF,
|
||||
NL80211_BSS_PRESP_DATA,
|
||||
NL80211_BSS_LAST_SEEN_BOOTTIME,
|
||||
NL80211_BSS_PAD,
|
||||
|
||||
/* keep last */
|
||||
__NL80211_BSS_AFTER_LAST,
|
||||
@@ -3614,11 +3668,15 @@ enum nl80211_txrate_gi {
|
||||
* @NL80211_BAND_2GHZ: 2.4 GHz ISM band
|
||||
* @NL80211_BAND_5GHZ: around 5 GHz band (4.9 - 5.7 GHz)
|
||||
* @NL80211_BAND_60GHZ: around 60 GHz band (58.32 - 64.80 GHz)
|
||||
* @NUM_NL80211_BANDS: number of bands, avoid using this in userspace
|
||||
* since newer kernel versions may support more bands
|
||||
*/
|
||||
enum nl80211_band {
|
||||
NL80211_BAND_2GHZ,
|
||||
NL80211_BAND_5GHZ,
|
||||
NL80211_BAND_60GHZ,
|
||||
|
||||
NUM_NL80211_BANDS,
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -4665,4 +4723,48 @@ enum nl80211_sched_scan_plan {
|
||||
__NL80211_SCHED_SCAN_PLAN_AFTER_LAST - 1
|
||||
};
|
||||
|
||||
/**
|
||||
* struct nl80211_bss_select_rssi_adjust - RSSI adjustment parameters.
|
||||
*
|
||||
* @band: band of BSS that must match for RSSI value adjustment.
|
||||
* @delta: value used to adjust the RSSI value of matching BSS.
|
||||
*/
|
||||
struct nl80211_bss_select_rssi_adjust {
|
||||
__u8 band;
|
||||
__s8 delta;
|
||||
} __attribute__((packed));
|
||||
|
||||
/**
|
||||
* enum nl80211_bss_select_attr - attributes for bss selection.
|
||||
*
|
||||
* @__NL80211_BSS_SELECT_ATTR_INVALID: reserved.
|
||||
* @NL80211_BSS_SELECT_ATTR_RSSI: Flag indicating only RSSI-based BSS selection
|
||||
* is requested.
|
||||
* @NL80211_BSS_SELECT_ATTR_BAND_PREF: attribute indicating BSS
|
||||
* selection should be done such that the specified band is preferred.
|
||||
* When there are multiple BSS-es in the preferred band, the driver
|
||||
* shall use RSSI-based BSS selection as a second step. The value of
|
||||
* this attribute is according to &enum nl80211_band (u32).
|
||||
* @NL80211_BSS_SELECT_ATTR_RSSI_ADJUST: When present the RSSI level for
|
||||
* BSS-es in the specified band is to be adjusted before doing
|
||||
* RSSI-based BSS selection. The attribute value is a packed structure
|
||||
* value as specified by &struct nl80211_bss_select_rssi_adjust.
|
||||
* @NL80211_BSS_SELECT_ATTR_MAX: highest bss select attribute number.
|
||||
* @__NL80211_BSS_SELECT_ATTR_AFTER_LAST: internal use.
|
||||
*
|
||||
* One and only one of these attributes are found within %NL80211_ATTR_BSS_SELECT
|
||||
* for %NL80211_CMD_CONNECT. It specifies the required BSS selection behaviour
|
||||
* which the driver shall use.
|
||||
*/
|
||||
enum nl80211_bss_select_attr {
|
||||
__NL80211_BSS_SELECT_ATTR_INVALID,
|
||||
NL80211_BSS_SELECT_ATTR_RSSI,
|
||||
NL80211_BSS_SELECT_ATTR_BAND_PREF,
|
||||
NL80211_BSS_SELECT_ATTR_RSSI_ADJUST,
|
||||
|
||||
/* keep last */
|
||||
__NL80211_BSS_SELECT_ATTR_AFTER_LAST,
|
||||
NL80211_BSS_SELECT_ATTR_MAX = __NL80211_BSS_SELECT_ATTR_AFTER_LAST - 1
|
||||
};
|
||||
|
||||
#endif /* __LINUX_NL80211_H */
|
||||
|
@@ -61,5 +61,6 @@ struct nvme_passthru_cmd {
|
||||
#define NVME_IOCTL_IO_CMD _IOWR('N', 0x43, struct nvme_passthru_cmd)
|
||||
#define NVME_IOCTL_RESET _IO('N', 0x44)
|
||||
#define NVME_IOCTL_SUBSYS_RESET _IO('N', 0x45)
|
||||
#define NVME_IOCTL_RESCAN _IO('N', 0x46)
|
||||
|
||||
#endif /* _UAPI_LINUX_NVME_IOCTL_H */
|
||||
|
@@ -84,6 +84,7 @@ enum ovs_datapath_attr {
|
||||
OVS_DP_ATTR_STATS, /* struct ovs_dp_stats */
|
||||
OVS_DP_ATTR_MEGAFLOW_STATS, /* struct ovs_dp_megaflow_stats */
|
||||
OVS_DP_ATTR_USER_FEATURES, /* OVS_DP_F_* */
|
||||
OVS_DP_ATTR_PAD,
|
||||
__OVS_DP_ATTR_MAX
|
||||
};
|
||||
|
||||
@@ -253,6 +254,7 @@ enum ovs_vport_attr {
|
||||
OVS_VPORT_ATTR_UPCALL_PID, /* array of u32 Netlink socket PIDs for */
|
||||
/* receiving upcalls */
|
||||
OVS_VPORT_ATTR_STATS, /* struct ovs_vport_stats */
|
||||
OVS_VPORT_ATTR_PAD,
|
||||
__OVS_VPORT_ATTR_MAX
|
||||
};
|
||||
|
||||
@@ -351,6 +353,7 @@ enum ovs_tunnel_key_attr {
|
||||
OVS_TUNNEL_KEY_ATTR_VXLAN_OPTS, /* Nested OVS_VXLAN_EXT_* */
|
||||
OVS_TUNNEL_KEY_ATTR_IPV6_SRC, /* struct in6_addr src IPv6 address. */
|
||||
OVS_TUNNEL_KEY_ATTR_IPV6_DST, /* struct in6_addr dst IPv6 address. */
|
||||
OVS_TUNNEL_KEY_ATTR_PAD,
|
||||
__OVS_TUNNEL_KEY_ATTR_MAX
|
||||
};
|
||||
|
||||
@@ -518,6 +521,7 @@ enum ovs_flow_attr {
|
||||
* logging should be suppressed. */
|
||||
OVS_FLOW_ATTR_UFID, /* Variable length unique flow identifier. */
|
||||
OVS_FLOW_ATTR_UFID_FLAGS,/* u32 of OVS_UFID_F_*. */
|
||||
OVS_FLOW_ATTR_PAD,
|
||||
__OVS_FLOW_ATTR_MAX
|
||||
};
|
||||
|
||||
|
@@ -670,7 +670,8 @@
|
||||
#define PCI_EXT_CAP_ID_SECPCI 0x19 /* Secondary PCIe Capability */
|
||||
#define PCI_EXT_CAP_ID_PMUX 0x1A /* Protocol Multiplexing */
|
||||
#define PCI_EXT_CAP_ID_PASID 0x1B /* Process Address Space ID */
|
||||
#define PCI_EXT_CAP_ID_MAX PCI_EXT_CAP_ID_PASID
|
||||
#define PCI_EXT_CAP_ID_DPC 0x1D /* Downstream Port Containment */
|
||||
#define PCI_EXT_CAP_ID_MAX PCI_EXT_CAP_ID_DPC
|
||||
|
||||
#define PCI_EXT_CAP_DSN_SIZEOF 12
|
||||
#define PCI_EXT_CAP_MCAST_ENDPOINT_SIZEOF 40
|
||||
@@ -946,4 +947,21 @@
|
||||
#define PCI_TPH_CAP_ST_SHIFT 16 /* st table shift */
|
||||
#define PCI_TPH_BASE_SIZEOF 12 /* size with no st table */
|
||||
|
||||
/* Downstream Port Containment */
|
||||
#define PCI_EXP_DPC_CAP 4 /* DPC Capability */
|
||||
#define PCI_EXP_DPC_CAP_RP_EXT 0x20 /* Root Port Extensions for DPC */
|
||||
#define PCI_EXP_DPC_CAP_POISONED_TLP 0x40 /* Poisoned TLP Egress Blocking Supported */
|
||||
#define PCI_EXP_DPC_CAP_SW_TRIGGER 0x80 /* Software Triggering Supported */
|
||||
#define PCI_EXP_DPC_CAP_DL_ACTIVE 0x1000 /* ERR_COR signal on DL_Active supported */
|
||||
|
||||
#define PCI_EXP_DPC_CTL 6 /* DPC control */
|
||||
#define PCI_EXP_DPC_CTL_EN_NONFATAL 0x02 /* Enable trigger on ERR_NONFATAL message */
|
||||
#define PCI_EXP_DPC_CTL_INT_EN 0x08 /* DPC Interrupt Enable */
|
||||
|
||||
#define PCI_EXP_DPC_STATUS 8 /* DPC Status */
|
||||
#define PCI_EXP_DPC_STATUS_TRIGGER 0x01 /* Trigger Status */
|
||||
#define PCI_EXP_DPC_STATUS_INTERRUPT 0x08 /* Interrupt Status */
|
||||
|
||||
#define PCI_EXP_DPC_SOURCE_ID 10 /* DPC Source Identifier */
|
||||
|
||||
#endif /* LINUX_PCI_REGS_H */
|
||||
|
@@ -66,6 +66,7 @@ enum {
|
||||
TCA_ACT_OPTIONS,
|
||||
TCA_ACT_INDEX,
|
||||
TCA_ACT_STATS,
|
||||
TCA_ACT_PAD,
|
||||
__TCA_ACT_MAX
|
||||
};
|
||||
|
||||
@@ -144,12 +145,18 @@ enum {
|
||||
TCA_POLICE_PEAKRATE,
|
||||
TCA_POLICE_AVRATE,
|
||||
TCA_POLICE_RESULT,
|
||||
TCA_POLICE_TM,
|
||||
TCA_POLICE_PAD,
|
||||
__TCA_POLICE_MAX
|
||||
#define TCA_POLICE_RESULT TCA_POLICE_RESULT
|
||||
};
|
||||
|
||||
#define TCA_POLICE_MAX (__TCA_POLICE_MAX - 1)
|
||||
|
||||
/* tca flags definitions */
|
||||
#define TCA_CLS_FLAGS_SKIP_HW (1 << 0)
|
||||
#define TCA_CLS_FLAGS_SKIP_SW (1 << 1)
|
||||
|
||||
/* U32 filters */
|
||||
|
||||
#define TC_U32_HTID(h) ((h)&0xFFF00000)
|
||||
@@ -168,11 +175,12 @@ enum {
|
||||
TCA_U32_DIVISOR,
|
||||
TCA_U32_SEL,
|
||||
TCA_U32_POLICE,
|
||||
TCA_U32_ACT,
|
||||
TCA_U32_ACT,
|
||||
TCA_U32_INDEV,
|
||||
TCA_U32_PCNT,
|
||||
TCA_U32_MARK,
|
||||
TCA_U32_FLAGS,
|
||||
TCA_U32_PAD,
|
||||
__TCA_U32_MAX
|
||||
};
|
||||
|
||||
|
@@ -179,6 +179,7 @@ enum {
|
||||
TCA_TBF_PRATE64,
|
||||
TCA_TBF_BURST,
|
||||
TCA_TBF_PBURST,
|
||||
TCA_TBF_PAD,
|
||||
__TCA_TBF_MAX,
|
||||
};
|
||||
|
||||
@@ -368,6 +369,7 @@ enum {
|
||||
TCA_HTB_DIRECT_QLEN,
|
||||
TCA_HTB_RATE64,
|
||||
TCA_HTB_CEIL64,
|
||||
TCA_HTB_PAD,
|
||||
__TCA_HTB_MAX,
|
||||
};
|
||||
|
||||
@@ -531,6 +533,7 @@ enum {
|
||||
TCA_NETEM_RATE,
|
||||
TCA_NETEM_ECN,
|
||||
TCA_NETEM_RATE64,
|
||||
TCA_NETEM_PAD,
|
||||
__TCA_NETEM_MAX,
|
||||
};
|
||||
|
||||
@@ -715,6 +718,8 @@ enum {
|
||||
TCA_FQ_CODEL_FLOWS,
|
||||
TCA_FQ_CODEL_QUANTUM,
|
||||
TCA_FQ_CODEL_CE_THRESHOLD,
|
||||
TCA_FQ_CODEL_DROP_BATCH_SIZE,
|
||||
TCA_FQ_CODEL_MEMORY_LIMIT,
|
||||
__TCA_FQ_CODEL_MAX
|
||||
};
|
||||
|
||||
@@ -739,6 +744,8 @@ struct tc_fq_codel_qd_stats {
|
||||
__u32 new_flows_len; /* count of flows in new list */
|
||||
__u32 old_flows_len; /* count of flows in old list */
|
||||
__u32 ce_mark; /* packets above ce_threshold */
|
||||
__u32 memory_usage; /* in bytes */
|
||||
__u32 drop_overmemory;
|
||||
};
|
||||
|
||||
struct tc_fq_codel_cl_stats {
|
||||
|
12
include/uapi/linux/qrtr.h
Normal file
12
include/uapi/linux/qrtr.h
Normal file
@@ -0,0 +1,12 @@
|
||||
#ifndef _LINUX_QRTR_H
|
||||
#define _LINUX_QRTR_H
|
||||
|
||||
#include <linux/socket.h>
|
||||
|
||||
struct sockaddr_qrtr {
|
||||
__kernel_sa_family_t sq_family;
|
||||
__u32 sq_node;
|
||||
__u32 sq_port;
|
||||
};
|
||||
|
||||
#endif /* _LINUX_QRTR_H */
|
@@ -191,6 +191,7 @@ enum {
|
||||
QUOTA_NL_A_DEV_MAJOR,
|
||||
QUOTA_NL_A_DEV_MINOR,
|
||||
QUOTA_NL_A_CAUSED_ID,
|
||||
QUOTA_NL_A_PAD,
|
||||
__QUOTA_NL_A_MAX,
|
||||
};
|
||||
#define QUOTA_NL_A_MAX (__QUOTA_NL_A_MAX - 1)
|
||||
|
@@ -139,6 +139,11 @@ enum {
|
||||
RTM_GETNSID = 90,
|
||||
#define RTM_GETNSID RTM_GETNSID
|
||||
|
||||
RTM_NEWSTATS = 92,
|
||||
#define RTM_NEWSTATS RTM_NEWSTATS
|
||||
RTM_GETSTATS = 94,
|
||||
#define RTM_GETSTATS RTM_GETSTATS
|
||||
|
||||
__RTM_MAX,
|
||||
#define RTM_MAX (((__RTM_MAX + 3) & ~3) - 1)
|
||||
};
|
||||
@@ -312,6 +317,7 @@ enum rtattr_type_t {
|
||||
RTA_ENCAP_TYPE,
|
||||
RTA_ENCAP,
|
||||
RTA_EXPIRES,
|
||||
RTA_PAD,
|
||||
__RTA_MAX
|
||||
};
|
||||
|
||||
@@ -536,6 +542,7 @@ enum {
|
||||
TCA_FCNT,
|
||||
TCA_STATS2,
|
||||
TCA_STAB,
|
||||
TCA_PAD,
|
||||
__TCA_MAX
|
||||
};
|
||||
|
||||
|
@@ -264,4 +264,10 @@
|
||||
/* MVEBU UART */
|
||||
#define PORT_MVEBU 114
|
||||
|
||||
/* Microchip PIC32 UART */
|
||||
#define PORT_PIC32 115
|
||||
|
||||
/* MPS2 UART */
|
||||
#define PORT_MPS2UART 116
|
||||
|
||||
#endif /* _UAPILINUX_SERIAL_CORE_H */
|
||||
|
@@ -20,6 +20,7 @@ enum {
|
||||
SK_MEMINFO_WMEM_QUEUED,
|
||||
SK_MEMINFO_OPTMEM,
|
||||
SK_MEMINFO_BACKLOG,
|
||||
SK_MEMINFO_DROPS,
|
||||
|
||||
SK_MEMINFO_VARS,
|
||||
};
|
||||
|
100
include/uapi/linux/sync_file.h
Normal file
100
include/uapi/linux/sync_file.h
Normal file
@@ -0,0 +1,100 @@
|
||||
/*
|
||||
* Copyright (C) 2012 Google, Inc.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef _UAPI_LINUX_SYNC_H
|
||||
#define _UAPI_LINUX_SYNC_H
|
||||
|
||||
#include <linux/ioctl.h>
|
||||
#include <linux/types.h>
|
||||
|
||||
/**
|
||||
* struct sync_merge_data - data passed to merge ioctl
|
||||
* @name: name of new fence
|
||||
* @fd2: file descriptor of second fence
|
||||
* @fence: returns the fd of the new fence to userspace
|
||||
* @flags: merge_data flags
|
||||
* @pad: padding for 64-bit alignment, should always be zero
|
||||
*/
|
||||
struct sync_merge_data {
|
||||
char name[32];
|
||||
__s32 fd2;
|
||||
__s32 fence;
|
||||
__u32 flags;
|
||||
__u32 pad;
|
||||
};
|
||||
|
||||
/**
|
||||
* struct sync_fence_info - detailed fence information
|
||||
* @obj_name: name of parent sync_timeline
|
||||
* @driver_name: name of driver implementing the parent
|
||||
* @status: status of the fence 0:active 1:signaled <0:error
|
||||
* @flags: fence_info flags
|
||||
* @timestamp_ns: timestamp of status change in nanoseconds
|
||||
*/
|
||||
struct sync_fence_info {
|
||||
char obj_name[32];
|
||||
char driver_name[32];
|
||||
__s32 status;
|
||||
__u32 flags;
|
||||
__u64 timestamp_ns;
|
||||
};
|
||||
|
||||
/**
|
||||
* struct sync_file_info - data returned from fence info ioctl
|
||||
* @name: name of fence
|
||||
* @status: status of fence. 1: signaled 0:active <0:error
|
||||
* @flags: sync_file_info flags
|
||||
* @num_fences number of fences in the sync_file
|
||||
* @pad: padding for 64-bit alignment, should always be zero
|
||||
* @sync_fence_info: pointer to array of structs sync_fence_info with all
|
||||
* fences in the sync_file
|
||||
*/
|
||||
struct sync_file_info {
|
||||
char name[32];
|
||||
__s32 status;
|
||||
__u32 flags;
|
||||
__u32 num_fences;
|
||||
__u32 pad;
|
||||
|
||||
__u64 sync_fence_info;
|
||||
};
|
||||
|
||||
#define SYNC_IOC_MAGIC '>'
|
||||
|
||||
/**
|
||||
* Opcodes 0, 1 and 2 were burned during a API change to avoid users of the
|
||||
* old API to get weird errors when trying to handling sync_files. The API
|
||||
* change happened during the de-stage of the Sync Framework when there was
|
||||
* no upstream users available.
|
||||
*/
|
||||
|
||||
/**
|
||||
* DOC: SYNC_IOC_MERGE - merge two fences
|
||||
*
|
||||
* Takes a struct sync_merge_data. Creates a new fence containing copies of
|
||||
* the sync_pts in both the calling fd and sync_merge_data.fd2. Returns the
|
||||
* new fence's fd in sync_merge_data.fence
|
||||
*/
|
||||
#define SYNC_IOC_MERGE _IOWR(SYNC_IOC_MAGIC, 3, struct sync_merge_data)
|
||||
|
||||
/**
|
||||
* DOC: SYNC_IOC_FENCE_INFO - get detailed information on a fence
|
||||
*
|
||||
* Takes a struct sync_file_info_data with extra space allocated for pt_info.
|
||||
* Caller should write the size of the buffer into len. On return, len is
|
||||
* updated to reflect the total size of the sync_file_info_data including
|
||||
* pt_info.
|
||||
*
|
||||
* pt_info is a buffer containing sync_pt_infos for every sync_pt in the fence.
|
||||
* To iterate over the sync_pt_infos, use the sync_pt_info.len field.
|
||||
*/
|
||||
#define SYNC_IOC_FILE_INFO _IOWR(SYNC_IOC_MAGIC, 4, struct sync_file_info)
|
||||
|
||||
#endif /* _UAPI_LINUX_SYNC_H */
|
@@ -26,6 +26,7 @@ enum {
|
||||
TCA_ACT_BPF_OPS,
|
||||
TCA_ACT_BPF_FD,
|
||||
TCA_ACT_BPF_NAME,
|
||||
TCA_ACT_BPF_PAD,
|
||||
__TCA_ACT_BPF_MAX,
|
||||
};
|
||||
#define TCA_ACT_BPF_MAX (__TCA_ACT_BPF_MAX - 1)
|
||||
|
@@ -15,6 +15,7 @@ enum {
|
||||
TCA_CONNMARK_UNSPEC,
|
||||
TCA_CONNMARK_PARMS,
|
||||
TCA_CONNMARK_TM,
|
||||
TCA_CONNMARK_PAD,
|
||||
__TCA_CONNMARK_MAX
|
||||
};
|
||||
#define TCA_CONNMARK_MAX (__TCA_CONNMARK_MAX - 1)
|
||||
|
@@ -10,6 +10,7 @@ enum {
|
||||
TCA_CSUM_UNSPEC,
|
||||
TCA_CSUM_PARMS,
|
||||
TCA_CSUM_TM,
|
||||
TCA_CSUM_PAD,
|
||||
__TCA_CSUM_MAX
|
||||
};
|
||||
#define TCA_CSUM_MAX (__TCA_CSUM_MAX - 1)
|
||||
|
@@ -12,6 +12,7 @@ enum {
|
||||
TCA_DEF_TM,
|
||||
TCA_DEF_PARMS,
|
||||
TCA_DEF_DATA,
|
||||
TCA_DEF_PAD,
|
||||
__TCA_DEF_MAX
|
||||
};
|
||||
#define TCA_DEF_MAX (__TCA_DEF_MAX - 1)
|
||||
|
@@ -25,6 +25,7 @@ enum {
|
||||
TCA_GACT_TM,
|
||||
TCA_GACT_PARMS,
|
||||
TCA_GACT_PROB,
|
||||
TCA_GACT_PAD,
|
||||
__TCA_GACT_MAX
|
||||
};
|
||||
#define TCA_GACT_MAX (__TCA_GACT_MAX - 1)
|
||||
|
@@ -23,6 +23,7 @@ enum {
|
||||
TCA_IFE_SMAC,
|
||||
TCA_IFE_TYPE,
|
||||
TCA_IFE_METALST,
|
||||
TCA_IFE_PAD,
|
||||
__TCA_IFE_MAX
|
||||
};
|
||||
#define TCA_IFE_MAX (__TCA_IFE_MAX - 1)
|
||||
|
@@ -14,6 +14,7 @@ enum {
|
||||
TCA_IPT_CNT,
|
||||
TCA_IPT_TM,
|
||||
TCA_IPT_TARG,
|
||||
TCA_IPT_PAD,
|
||||
__TCA_IPT_MAX
|
||||
};
|
||||
#define TCA_IPT_MAX (__TCA_IPT_MAX - 1)
|
||||
|
@@ -20,6 +20,7 @@ enum {
|
||||
TCA_MIRRED_UNSPEC,
|
||||
TCA_MIRRED_TM,
|
||||
TCA_MIRRED_PARMS,
|
||||
TCA_MIRRED_PAD,
|
||||
__TCA_MIRRED_MAX
|
||||
};
|
||||
#define TCA_MIRRED_MAX (__TCA_MIRRED_MAX - 1)
|
||||
|
@@ -10,6 +10,7 @@ enum {
|
||||
TCA_NAT_UNSPEC,
|
||||
TCA_NAT_PARMS,
|
||||
TCA_NAT_TM,
|
||||
TCA_NAT_PAD,
|
||||
__TCA_NAT_MAX
|
||||
};
|
||||
#define TCA_NAT_MAX (__TCA_NAT_MAX - 1)
|
||||
|
@@ -10,6 +10,7 @@ enum {
|
||||
TCA_PEDIT_UNSPEC,
|
||||
TCA_PEDIT_TM,
|
||||
TCA_PEDIT_PARMS,
|
||||
TCA_PEDIT_PAD,
|
||||
__TCA_PEDIT_MAX
|
||||
};
|
||||
#define TCA_PEDIT_MAX (__TCA_PEDIT_MAX - 1)
|
||||
|
@@ -39,6 +39,7 @@ enum {
|
||||
TCA_SKBEDIT_PRIORITY,
|
||||
TCA_SKBEDIT_QUEUE_MAPPING,
|
||||
TCA_SKBEDIT_MARK,
|
||||
TCA_SKBEDIT_PAD,
|
||||
__TCA_SKBEDIT_MAX
|
||||
};
|
||||
#define TCA_SKBEDIT_MAX (__TCA_SKBEDIT_MAX - 1)
|
||||
|
@@ -28,6 +28,7 @@ enum {
|
||||
TCA_VLAN_PARMS,
|
||||
TCA_VLAN_PUSH_VLAN_ID,
|
||||
TCA_VLAN_PUSH_VLAN_PROTOCOL,
|
||||
TCA_VLAN_PAD,
|
||||
__TCA_VLAN_MAX,
|
||||
};
|
||||
#define TCA_VLAN_MAX (__TCA_VLAN_MAX - 1)
|
||||
|
@@ -40,6 +40,7 @@ enum {
|
||||
TCP_METRICS_ATTR_FOPEN_COOKIE, /* binary */
|
||||
TCP_METRICS_ATTR_SADDR_IPV4, /* u32 */
|
||||
TCP_METRICS_ATTR_SADDR_IPV6, /* binary */
|
||||
TCP_METRICS_ATTR_PAD,
|
||||
|
||||
__TCP_METRICS_ATTR_MAX,
|
||||
};
|
||||
|
@@ -32,7 +32,13 @@
|
||||
#define ASYNCB_MAGIC_MULTIPLIER 16 /* Use special CLK or divisor */
|
||||
#define ASYNCB_LAST_USER 16
|
||||
|
||||
/* Internal flags used only by kernel */
|
||||
/*
|
||||
* Internal flags used only by kernel (read-only)
|
||||
*
|
||||
* WARNING: These flags are no longer used and have been superceded by the
|
||||
* TTY_PORT_ flags in the iflags field (and not userspace-visible)
|
||||
*/
|
||||
#ifndef _KERNEL_
|
||||
#define ASYNCB_INITIALIZED 31 /* Serial port was initialized */
|
||||
#define ASYNCB_SUSPENDED 30 /* Serial port is suspended */
|
||||
#define ASYNCB_NORMAL_ACTIVE 29 /* Normal device is active */
|
||||
@@ -43,7 +49,9 @@
|
||||
#define ASYNCB_SHARE_IRQ 24 /* for multifunction cards, no longer used */
|
||||
#define ASYNCB_CONS_FLOW 23 /* flow control for console */
|
||||
#define ASYNCB_FIRST_KERNEL 22
|
||||
#endif
|
||||
|
||||
/* Masks */
|
||||
#define ASYNC_HUP_NOTIFY (1U << ASYNCB_HUP_NOTIFY)
|
||||
#define ASYNC_SUSPENDED (1U << ASYNCB_SUSPENDED)
|
||||
#define ASYNC_FOURPORT (1U << ASYNCB_FOURPORT)
|
||||
@@ -72,6 +80,8 @@
|
||||
#define ASYNC_SPD_WARP (ASYNC_SPD_HI|ASYNC_SPD_SHI)
|
||||
#define ASYNC_SPD_MASK (ASYNC_SPD_HI|ASYNC_SPD_VHI|ASYNC_SPD_SHI)
|
||||
|
||||
#ifndef _KERNEL_
|
||||
/* These flags are no longer used (and were always masked from userspace) */
|
||||
#define ASYNC_INITIALIZED (1U << ASYNCB_INITIALIZED)
|
||||
#define ASYNC_NORMAL_ACTIVE (1U << ASYNCB_NORMAL_ACTIVE)
|
||||
#define ASYNC_BOOT_AUTOCONF (1U << ASYNCB_BOOT_AUTOCONF)
|
||||
@@ -81,5 +91,6 @@
|
||||
#define ASYNC_SHARE_IRQ (1U << ASYNCB_SHARE_IRQ)
|
||||
#define ASYNC_CONS_FLOW (1U << ASYNCB_CONS_FLOW)
|
||||
#define ASYNC_INTERNAL_FLAGS (~((1U << ASYNCB_FIRST_KERNEL) - 1))
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
@@ -36,6 +36,7 @@ struct udphdr {
|
||||
#define UDP_ENCAP_ESPINUDP_NON_IKE 1 /* draft-ietf-ipsec-nat-t-ike-00/01 */
|
||||
#define UDP_ENCAP_ESPINUDP 2 /* draft-ietf-ipsec-udp-encaps-06 */
|
||||
#define UDP_ENCAP_L2TPINUDP 3 /* rfc2661 */
|
||||
|
||||
#define UDP_ENCAP_GTP0 4 /* GSM TS 09.60 */
|
||||
#define UDP_ENCAP_GTP1U 5 /* 3GPP TS 29.060 */
|
||||
|
||||
#endif /* _UAPI_LINUX_UDP_H */
|
||||
|
@@ -105,6 +105,13 @@
|
||||
#define USB_REQ_LOOPBACK_DATA_READ 0x16
|
||||
#define USB_REQ_SET_INTERFACE_DS 0x17
|
||||
|
||||
/* specific requests for USB Power Delivery */
|
||||
#define USB_REQ_GET_PARTNER_PDO 20
|
||||
#define USB_REQ_GET_BATTERY_STATUS 21
|
||||
#define USB_REQ_SET_PDO 22
|
||||
#define USB_REQ_GET_VDM 23
|
||||
#define USB_REQ_SEND_VDM 24
|
||||
|
||||
/* The Link Power Management (LPM) ECN defines USB_REQ_TEST_AND_SET command,
|
||||
* used by hubs to put ports into a new L1 suspend state, except that it
|
||||
* forgot to define its number ...
|
||||
@@ -165,6 +172,22 @@
|
||||
#define USB_DEV_STAT_U2_ENABLED 3 /* transition into U2 state */
|
||||
#define USB_DEV_STAT_LTM_ENABLED 4 /* Latency tolerance messages */
|
||||
|
||||
/*
|
||||
* Feature selectors from Table 9-8 USB Power Delivery spec
|
||||
*/
|
||||
#define USB_DEVICE_BATTERY_WAKE_MASK 40
|
||||
#define USB_DEVICE_OS_IS_PD_AWARE 41
|
||||
#define USB_DEVICE_POLICY_MODE 42
|
||||
#define USB_PORT_PR_SWAP 43
|
||||
#define USB_PORT_GOTO_MIN 44
|
||||
#define USB_PORT_RETURN_POWER 45
|
||||
#define USB_PORT_ACCEPT_PD_REQUEST 46
|
||||
#define USB_PORT_REJECT_PD_REQUEST 47
|
||||
#define USB_PORT_PORT_PD_RESET 48
|
||||
#define USB_PORT_C_PORT_PD_CHANGE 49
|
||||
#define USB_PORT_CABLE_PD_RESET 50
|
||||
#define USB_DEVICE_CHARGING_POLICY 54
|
||||
|
||||
/**
|
||||
* struct usb_ctrlrequest - SETUP data for a USB device control request
|
||||
* @bRequestType: matches the USB bmRequestType field
|
||||
@@ -913,6 +936,104 @@ struct usb_ssp_cap_descriptor {
|
||||
#define USB_SSP_SUBLINK_SPEED_LSM (0xff << 16) /* Lanespeed mantissa */
|
||||
} __attribute__((packed));
|
||||
|
||||
/*
|
||||
* USB Power Delivery Capability Descriptor:
|
||||
* Defines capabilities for PD
|
||||
*/
|
||||
/* Defines the various PD Capabilities of this device */
|
||||
#define USB_PD_POWER_DELIVERY_CAPABILITY 0x06
|
||||
/* Provides information on each battery supported by the device */
|
||||
#define USB_PD_BATTERY_INFO_CAPABILITY 0x07
|
||||
/* The Consumer characteristics of a Port on the device */
|
||||
#define USB_PD_PD_CONSUMER_PORT_CAPABILITY 0x08
|
||||
/* The provider characteristics of a Port on the device */
|
||||
#define USB_PD_PD_PROVIDER_PORT_CAPABILITY 0x09
|
||||
|
||||
struct usb_pd_cap_descriptor {
|
||||
__u8 bLength;
|
||||
__u8 bDescriptorType;
|
||||
__u8 bDevCapabilityType; /* set to USB_PD_POWER_DELIVERY_CAPABILITY */
|
||||
__u8 bReserved;
|
||||
__le32 bmAttributes;
|
||||
#define USB_PD_CAP_BATTERY_CHARGING (1 << 1) /* supports Battery Charging specification */
|
||||
#define USB_PD_CAP_USB_PD (1 << 2) /* supports USB Power Delivery specification */
|
||||
#define USB_PD_CAP_PROVIDER (1 << 3) /* can provide power */
|
||||
#define USB_PD_CAP_CONSUMER (1 << 4) /* can consume power */
|
||||
#define USB_PD_CAP_CHARGING_POLICY (1 << 5) /* supports CHARGING_POLICY feature */
|
||||
#define USB_PD_CAP_TYPE_C_CURRENT (1 << 6) /* supports power capabilities defined in the USB Type-C Specification */
|
||||
|
||||
#define USB_PD_CAP_PWR_AC (1 << 8)
|
||||
#define USB_PD_CAP_PWR_BAT (1 << 9)
|
||||
#define USB_PD_CAP_PWR_USE_V_BUS (1 << 14)
|
||||
|
||||
__le16 bmProviderPorts; /* Bit zero refers to the UFP of the device */
|
||||
__le16 bmConsumerPorts;
|
||||
__le16 bcdBCVersion;
|
||||
__le16 bcdPDVersion;
|
||||
__le16 bcdUSBTypeCVersion;
|
||||
} __attribute__((packed));
|
||||
|
||||
struct usb_pd_cap_battery_info_descriptor {
|
||||
__u8 bLength;
|
||||
__u8 bDescriptorType;
|
||||
__u8 bDevCapabilityType;
|
||||
/* Index of string descriptor shall contain the user friendly name for this battery */
|
||||
__u8 iBattery;
|
||||
/* Index of string descriptor shall contain the Serial Number String for this battery */
|
||||
__u8 iSerial;
|
||||
__u8 iManufacturer;
|
||||
__u8 bBatteryId; /* uniquely identifies this battery in status Messages */
|
||||
__u8 bReserved;
|
||||
/*
|
||||
* Shall contain the Battery Charge value above which this
|
||||
* battery is considered to be fully charged but not necessarily
|
||||
* “topped off.”
|
||||
*/
|
||||
__le32 dwChargedThreshold; /* in mWh */
|
||||
/*
|
||||
* Shall contain the minimum charge level of this battery such
|
||||
* that above this threshold, a device can be assured of being
|
||||
* able to power up successfully (see Battery Charging 1.2).
|
||||
*/
|
||||
__le32 dwWeakThreshold; /* in mWh */
|
||||
__le32 dwBatteryDesignCapacity; /* in mWh */
|
||||
__le32 dwBatteryLastFullchargeCapacity; /* in mWh */
|
||||
} __attribute__((packed));
|
||||
|
||||
struct usb_pd_cap_consumer_port_descriptor {
|
||||
__u8 bLength;
|
||||
__u8 bDescriptorType;
|
||||
__u8 bDevCapabilityType;
|
||||
__u8 bReserved;
|
||||
__u8 bmCapabilities;
|
||||
/* port will oerate under: */
|
||||
#define USB_PD_CAP_CONSUMER_BC (1 << 0) /* BC */
|
||||
#define USB_PD_CAP_CONSUMER_PD (1 << 1) /* PD */
|
||||
#define USB_PD_CAP_CONSUMER_TYPE_C (1 << 2) /* USB Type-C Current */
|
||||
__le16 wMinVoltage; /* in 50mV units */
|
||||
__le16 wMaxVoltage; /* in 50mV units */
|
||||
__u16 wReserved;
|
||||
__le32 dwMaxOperatingPower; /* in 10 mW - operating at steady state */
|
||||
__le32 dwMaxPeakPower; /* in 10mW units - operating at peak power */
|
||||
__le32 dwMaxPeakPowerTime; /* in 100ms units - duration of peak */
|
||||
#define USB_PD_CAP_CONSUMER_UNKNOWN_PEAK_POWER_TIME 0xffff
|
||||
} __attribute__((packed));
|
||||
|
||||
struct usb_pd_cap_provider_port_descriptor {
|
||||
__u8 bLength;
|
||||
__u8 bDescriptorType;
|
||||
__u8 bDevCapabilityType;
|
||||
__u8 bReserved1;
|
||||
__u8 bmCapabilities;
|
||||
/* port will oerate under: */
|
||||
#define USB_PD_CAP_PROVIDER_BC (1 << 0) /* BC */
|
||||
#define USB_PD_CAP_PROVIDER_PD (1 << 1) /* PD */
|
||||
#define USB_PD_CAP_PROVIDER_TYPE_C (1 << 2) /* USB Type-C Current */
|
||||
__u8 bNumOfPDObjects;
|
||||
__u8 bReserved2;
|
||||
__le32 wPowerDataObject[];
|
||||
} __attribute__((packed));
|
||||
|
||||
/*
|
||||
* Precision time measurement capability descriptor: advertised by devices and
|
||||
* hubs that support PTM
|
||||
|
@@ -12,10 +12,6 @@
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
#ifndef _UAPI_LINUX_UUID_H_
|
||||
|
@@ -138,10 +138,7 @@ enum v4l2_buf_type {
|
||||
V4L2_BUF_TYPE_VBI_OUTPUT = 5,
|
||||
V4L2_BUF_TYPE_SLICED_VBI_CAPTURE = 6,
|
||||
V4L2_BUF_TYPE_SLICED_VBI_OUTPUT = 7,
|
||||
#if 1
|
||||
/* Experimental */
|
||||
V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY = 8,
|
||||
#endif
|
||||
V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE = 9,
|
||||
V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE = 10,
|
||||
V4L2_BUF_TYPE_SDR_CAPTURE = 11,
|
||||
@@ -657,8 +654,7 @@ struct v4l2_fmtdesc {
|
||||
#define V4L2_FMT_FLAG_COMPRESSED 0x0001
|
||||
#define V4L2_FMT_FLAG_EMULATED 0x0002
|
||||
|
||||
#if 1
|
||||
/* Experimental Frame Size and frame rate enumeration */
|
||||
/* Frame Size and frame rate enumeration */
|
||||
/*
|
||||
* F R A M E S I Z E E N U M E R A T I O N
|
||||
*/
|
||||
@@ -724,7 +720,6 @@ struct v4l2_frmivalenum {
|
||||
|
||||
__u32 reserved[2]; /* Reserved space for future use */
|
||||
};
|
||||
#endif
|
||||
|
||||
/*
|
||||
* T I M E C O D E
|
||||
@@ -1728,8 +1723,6 @@ struct v4l2_audioout {
|
||||
|
||||
/*
|
||||
* M P E G S E R V I C E S
|
||||
*
|
||||
* NOTE: EXPERIMENTAL API
|
||||
*/
|
||||
#if 1
|
||||
#define V4L2_ENC_IDX_FRAME_I (0)
|
||||
@@ -2259,46 +2252,35 @@ struct v4l2_create_buffers {
|
||||
#define VIDIOC_ENCODER_CMD _IOWR('V', 77, struct v4l2_encoder_cmd)
|
||||
#define VIDIOC_TRY_ENCODER_CMD _IOWR('V', 78, struct v4l2_encoder_cmd)
|
||||
|
||||
/* Experimental, meant for debugging, testing and internal use.
|
||||
Only implemented if CONFIG_VIDEO_ADV_DEBUG is defined.
|
||||
You must be root to use these ioctls. Never use these in applications! */
|
||||
/*
|
||||
* Experimental, meant for debugging, testing and internal use.
|
||||
* Only implemented if CONFIG_VIDEO_ADV_DEBUG is defined.
|
||||
* You must be root to use these ioctls. Never use these in applications!
|
||||
*/
|
||||
#define VIDIOC_DBG_S_REGISTER _IOW('V', 79, struct v4l2_dbg_register)
|
||||
#define VIDIOC_DBG_G_REGISTER _IOWR('V', 80, struct v4l2_dbg_register)
|
||||
|
||||
#define VIDIOC_S_HW_FREQ_SEEK _IOW('V', 82, struct v4l2_hw_freq_seek)
|
||||
|
||||
#define VIDIOC_S_DV_TIMINGS _IOWR('V', 87, struct v4l2_dv_timings)
|
||||
#define VIDIOC_G_DV_TIMINGS _IOWR('V', 88, struct v4l2_dv_timings)
|
||||
#define VIDIOC_DQEVENT _IOR('V', 89, struct v4l2_event)
|
||||
#define VIDIOC_SUBSCRIBE_EVENT _IOW('V', 90, struct v4l2_event_subscription)
|
||||
#define VIDIOC_UNSUBSCRIBE_EVENT _IOW('V', 91, struct v4l2_event_subscription)
|
||||
|
||||
/* Experimental, the below two ioctls may change over the next couple of kernel
|
||||
versions */
|
||||
#define VIDIOC_CREATE_BUFS _IOWR('V', 92, struct v4l2_create_buffers)
|
||||
#define VIDIOC_PREPARE_BUF _IOWR('V', 93, struct v4l2_buffer)
|
||||
|
||||
/* Experimental selection API */
|
||||
#define VIDIOC_G_SELECTION _IOWR('V', 94, struct v4l2_selection)
|
||||
#define VIDIOC_S_SELECTION _IOWR('V', 95, struct v4l2_selection)
|
||||
|
||||
/* Experimental, these two ioctls may change over the next couple of kernel
|
||||
versions. */
|
||||
#define VIDIOC_DECODER_CMD _IOWR('V', 96, struct v4l2_decoder_cmd)
|
||||
#define VIDIOC_TRY_DECODER_CMD _IOWR('V', 97, struct v4l2_decoder_cmd)
|
||||
|
||||
/* Experimental, these three ioctls may change over the next couple of kernel
|
||||
versions. */
|
||||
#define VIDIOC_ENUM_DV_TIMINGS _IOWR('V', 98, struct v4l2_enum_dv_timings)
|
||||
#define VIDIOC_QUERY_DV_TIMINGS _IOR('V', 99, struct v4l2_dv_timings)
|
||||
#define VIDIOC_DV_TIMINGS_CAP _IOWR('V', 100, struct v4l2_dv_timings_cap)
|
||||
|
||||
/* Experimental, this ioctl may change over the next couple of kernel
|
||||
versions. */
|
||||
#define VIDIOC_ENUM_FREQ_BANDS _IOWR('V', 101, struct v4l2_frequency_band)
|
||||
|
||||
/* Experimental, meant for debugging, testing and internal use.
|
||||
Never use these in applications! */
|
||||
/*
|
||||
* Experimental, meant for debugging, testing and internal use.
|
||||
* Never use this in applications!
|
||||
*/
|
||||
#define VIDIOC_DBG_G_CHIP_INFO _IOWR('V', 102, struct v4l2_dbg_chip_info)
|
||||
|
||||
#define VIDIOC_QUERY_EXT_CTRL _IOWR('V', 103, struct v4l2_query_ext_ctrl)
|
||||
|
@@ -8,7 +8,6 @@
|
||||
*/
|
||||
#define MIN_NR_CONSOLES 1 /* must be at least 1 */
|
||||
#define MAX_NR_CONSOLES 63 /* serial lines start at 64 */
|
||||
#define MAX_NR_USER_CONSOLES 63 /* must be root to allocate above this */
|
||||
/* Note: the ioctl VT_GETSTATE does not work for
|
||||
consoles 16 and higher (since it returns a short) */
|
||||
|
||||
|
@@ -302,6 +302,7 @@ enum xfrm_attr_type_t {
|
||||
XFRMA_SA_EXTRA_FLAGS, /* __u32 */
|
||||
XFRMA_PROTO, /* __u8 */
|
||||
XFRMA_ADDRESS_FILTER, /* struct xfrm_address_filter */
|
||||
XFRMA_PAD,
|
||||
__XFRMA_MAX
|
||||
|
||||
#define XFRMA_MAX (__XFRMA_MAX - 1)
|
||||
|
Reference in New Issue
Block a user