Backmerging to get v6.15-rc1 into drm-misc-next. Also fixes a build issue when enabling CONFIG_DRM_SCHED_KUNIT_TEST.
Showing the changes to include/uapi/linux (58 of 12658 files). Show all
Unified · Split
| @@ -33,7 +33,7 @@ · 32 unmodified lines | ||
| 33 | 33 | * 1100 - 1199 user space trusted application messages |
| 34 | 34 | * 1200 - 1299 messages internal to the audit daemon |
| 35 | 35 | * 1300 - 1399 audit event messages |
| 36 | − * 1400 - 1499 SE Linux use | |
| 36 | + * 1400 - 1499 access control messages | |
| 37 | 37 | * 1500 - 1599 kernel LSPP events |
| 38 | 38 | * 1600 - 1699 kernel crypto events |
| 39 | 39 | * 1700 - 1799 kernel anomaly records |
| @@ -146,6 +146,8 @@ · 106 unmodified lines | ||
| 146 | 146 | #define AUDIT_IPE_ACCESS 1420 /* IPE denial or grant */ |
| 147 | 147 | #define AUDIT_IPE_CONFIG_CHANGE 1421 /* IPE config change */ |
| 148 | 148 | #define AUDIT_IPE_POLICY_LOAD 1422 /* IPE policy load */ |
| 149 | +#define AUDIT_LANDLOCK_ACCESS 1423 /* Landlock denial */ | |
| 150 | +#define AUDIT_LANDLOCK_DOMAIN 1424 /* Landlock domain status */ | |
| 149 | 151 | |
| 150 | 152 | #define AUDIT_FIRST_KERN_ANOM_MSG 1700 |
| 151 | 153 | #define AUDIT_LAST_KERN_ANOM_MSG 1799 |
| @@ -342,7 +342,7 @@ enum batadv_nl_attrs { · 341 unmodified lines | ||
| 342 | 342 | BATADV_ATTR_MCAST_FLAGS_PRIV, |
| 343 | 343 | |
| 344 | 344 | /** |
| 345 | − * @BATADV_ATTR_VLANID: VLAN id on top of soft interface | |
| 345 | + * @BATADV_ATTR_VLANID: VLAN id on top of mesh interface | |
| 346 | 346 | */ |
| 347 | 347 | BATADV_ATTR_VLANID, |
| 348 | 348 | |
| @@ -380,7 +380,7 @@ enum batadv_nl_attrs { · 31 unmodified lines | ||
| 380 | 380 | /** |
| 381 | 381 | * @BATADV_ATTR_BRIDGE_LOOP_AVOIDANCE_ENABLED: whether the bridge loop |
| 382 | 382 | * avoidance feature is enabled. This feature detects and avoids loops |
| 383 | − * between the mesh and devices bridged with the soft interface | |
| 383 | + * between the mesh and devices bridged with the mesh interface | |
| 384 | 384 | */ |
| 385 | 385 | BATADV_ATTR_BRIDGE_LOOP_AVOIDANCE_ENABLED, |
| 386 | 386 | |
| @@ -509,7 +509,7 @@ enum batadv_nl_commands { · 122 unmodified lines | ||
| 509 | 509 | BATADV_CMD_UNSPEC, |
| 510 | 510 | |
| 511 | 511 | /** |
| 512 | − * @BATADV_CMD_GET_MESH: Get attributes from softif/mesh | |
| 512 | + * @BATADV_CMD_GET_MESH: Get attributes from mesh(if) | |
| 513 | 513 | */ |
| 514 | 514 | BATADV_CMD_GET_MESH, |
| 515 | 515 | |
| @@ -535,7 +535,7 @@ enum batadv_nl_commands { · 19 unmodified lines | ||
| 535 | 535 | |
| 536 | 536 | /** |
| 537 | 537 | * @BATADV_CMD_GET_HARDIF: Get attributes from a hardif of the |
| 538 | − * current softif | |
| 538 | + * current mesh(if) | |
| 539 | 539 | */ |
| 540 | 540 | BATADV_CMD_GET_HARDIF, |
| 541 | 541 | |
| @@ -591,25 +591,25 @@ enum batadv_nl_commands { · 49 unmodified lines | ||
| 591 | 591 | BATADV_CMD_GET_MCAST_FLAGS, |
| 592 | 592 | |
| 593 | 593 | /** |
| 594 | − * @BATADV_CMD_SET_MESH: Set attributes for softif/mesh | |
| 594 | + * @BATADV_CMD_SET_MESH: Set attributes for mesh(if) | |
| 595 | 595 | */ |
| 596 | 596 | BATADV_CMD_SET_MESH, |
| 597 | 597 | |
| 598 | 598 | /** |
| 599 | 599 | * @BATADV_CMD_SET_HARDIF: Set attributes for hardif of the |
| 600 | − * current softif | |
| 600 | + * current mesh(if) | |
| 601 | 601 | */ |
| 602 | 602 | BATADV_CMD_SET_HARDIF, |
| 603 | 603 | |
| 604 | 604 | /** |
| 605 | 605 | * @BATADV_CMD_GET_VLAN: Get attributes from a VLAN of the |
| 606 | − * current softif | |
| 606 | + * current mesh(if) | |
| 607 | 607 | */ |
| 608 | 608 | BATADV_CMD_GET_VLAN, |
| 609 | 609 | |
| 610 | 610 | /** |
| 611 | 611 | * @BATADV_CMD_SET_VLAN: Set attributes for VLAN of the |
| 612 | − * current softif | |
| 612 | + * current mesh(if) | |
| 613 | 613 | */ |
| 614 | 614 | BATADV_CMD_SET_VLAN, |
| 615 | 615 | |
| @@ -691,7 +691,7 @@ enum batadv_ifla_attrs { · 75 unmodified lines | ||
| 691 | 691 | */ |
| 692 | 692 | IFLA_BATADV_ALGO_NAME, |
| 693 | 693 | |
| 694 | − /* add attributes above here, update the policy in soft-interface.c */ | |
| 694 | + /* add attributes above here, update the policy in mesh-interface.c */ | |
| 695 | 695 | |
| 696 | 696 | /** |
| 697 | 697 | * @__IFLA_BATADV_MAX: internal use |
| @@ -4,13 +4,9 @@ · 3 unmodified lines | ||
| 4 | 4 | #ifndef _UAPI_LINUX_BITS_H |
| 5 | 5 | #define _UAPI_LINUX_BITS_H |
| 6 | 6 | |
| 7 | −#define __GENMASK(h, l) \ | |
| 8 | − (((~_UL(0)) - (_UL(1) << (l)) + 1) & \ | |
| 9 | − (~_UL(0) >> (__BITS_PER_LONG - 1 - (h)))) | |
| 7 | +#define __GENMASK(h, l) (((~_UL(0)) << (l)) & (~_UL(0) >> (BITS_PER_LONG - 1 - (h)))) | |
| 10 | 8 | |
| 11 | −#define __GENMASK_ULL(h, l) \ | |
| 12 | − (((~_ULL(0)) - (_ULL(1) << (l)) + 1) & \ | |
| 13 | − (~_ULL(0) >> (__BITS_PER_LONG_LONG - 1 - (h)))) | |
| 9 | +#define __GENMASK_ULL(h, l) (((~_ULL(0)) << (l)) & (~_ULL(0) >> (BITS_PER_LONG_LONG - 1 - (h)))) | |
| 14 | 10 | |
| 15 | 11 | #define __GENMASK_U128(h, l) \ |
| 16 | 12 | ((_BIT128((h)) << 1) - (_BIT128(l))) |
| @@ -0,0 +1,44 @@ | ||
| 1 | +/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ | |
| 2 | +#ifndef _UAPI_LINUX_BLK_CRYPTO_H | |
| 3 | +#define _UAPI_LINUX_BLK_CRYPTO_H | |
| 4 | + | |
| 5 | +#include <linux/ioctl.h> | |
| 6 | +#include <linux/types.h> | |
| 7 | + | |
| 8 | +struct blk_crypto_import_key_arg { | |
| 9 | + /* Raw key (input) */ | |
| 10 | + __u64 raw_key_ptr; | |
| 11 | + __u64 raw_key_size; | |
| 12 | + /* Long-term wrapped key blob (output) */ | |
| 13 | + __u64 lt_key_ptr; | |
| 14 | + __u64 lt_key_size; | |
| 15 | + __u64 reserved[4]; | |
| 16 | +}; | |
| 17 | + | |
| 18 | +struct blk_crypto_generate_key_arg { | |
| 19 | + /* Long-term wrapped key blob (output) */ | |
| 20 | + __u64 lt_key_ptr; | |
| 21 | + __u64 lt_key_size; | |
| 22 | + __u64 reserved[4]; | |
| 23 | +}; | |
| 24 | + | |
| 25 | +struct blk_crypto_prepare_key_arg { | |
| 26 | + /* Long-term wrapped key blob (input) */ | |
| 27 | + __u64 lt_key_ptr; | |
| 28 | + __u64 lt_key_size; | |
| 29 | + /* Ephemerally-wrapped key blob (output) */ | |
| 30 | + __u64 eph_key_ptr; | |
| 31 | + __u64 eph_key_size; | |
| 32 | + __u64 reserved[4]; | |
| 33 | +}; | |
| 34 | + | |
| 35 | +/* | |
| 36 | + * These ioctls share the block device ioctl space; see uapi/linux/fs.h. | |
| 37 | + * 140-141 are reserved for future blk-crypto ioctls; any more than that would | |
| 38 | + * require an additional allocation from the block device ioctl space. | |
| 39 | + */ | |
| 40 | +#define BLKCRYPTOIMPORTKEY _IOWR(0x12, 137, struct blk_crypto_import_key_arg) | |
| 41 | +#define BLKCRYPTOGENERATEKEY _IOWR(0x12, 138, struct blk_crypto_generate_key_arg) | |
| 42 | +#define BLKCRYPTOPREPAREKEY _IOWR(0x12, 139, struct blk_crypto_prepare_key_arg) | |
| 43 | + | |
| 44 | +#endif /* _UAPI_LINUX_BLK_CRYPTO_H */ | |
| @@ -51,6 +51,9 @@ · 50 unmodified lines | ||
| 51 | 51 | #define BPF_XCHG (0xe0 | BPF_FETCH) /* atomic exchange */ |
| 52 | 52 | #define BPF_CMPXCHG (0xf0 | BPF_FETCH) /* atomic compare-and-write */ |
| 53 | 53 | |
| 54 | +#define BPF_LOAD_ACQ 0x100 /* load-acquire */ | |
| 55 | +#define BPF_STORE_REL 0x110 /* store-release */ | |
| 56 | + | |
| 54 | 57 | enum bpf_cond_pseudo_jmp { |
| 55 | 58 | BPF_MAY_GOTO = 0, |
| 56 | 59 | }; |
| @@ -1207,6 +1210,7 @@ enum bpf_perf_event_type { · 1150 unmodified lines | ||
| 1207 | 1210 | #define BPF_F_BEFORE (1U << 3) |
| 1208 | 1211 | #define BPF_F_AFTER (1U << 4) |
| 1209 | 1212 | #define BPF_F_ID (1U << 5) |
| 1213 | +#define BPF_F_PREORDER (1U << 6) | |
| 1210 | 1214 | #define BPF_F_LINK BPF_F_LINK /* 1 << 13 */ |
| 1211 | 1215 | |
| 1212 | 1216 | /* If BPF_F_STRICT_ALIGNMENT is used in BPF_PROG_LOAD command, the |
| @@ -1648,6 +1652,7 @@ union bpf_attr { · 435 unmodified lines | ||
| 1648 | 1652 | }; |
| 1649 | 1653 | __u32 next_id; |
| 1650 | 1654 | __u32 open_flags; |
| 1655 | + __s32 fd_by_id_token_fd; | |
| 1651 | 1656 | }; |
| 1652 | 1657 | |
| 1653 | 1658 | struct { /* anonymous struct used by BPF_OBJ_GET_INFO_BY_FD */ |
| @@ -6019,7 +6024,10 @@ union bpf_attr { · 4365 unmodified lines | ||
| 6019 | 6024 | FN(user_ringbuf_drain, 209, ##ctx) \ |
| 6020 | 6025 | FN(cgrp_storage_get, 210, ##ctx) \ |
| 6021 | 6026 | FN(cgrp_storage_delete, 211, ##ctx) \ |
| 6022 | − /* */ | |
| 6027 | + /* This helper list is effectively frozen. If you are trying to \ | |
| 6028 | + * add a new helper, you should add a kfunc instead which has \ | |
| 6029 | + * less stability guarantees. See Documentation/bpf/kfuncs.rst \ | |
| 6030 | + */ | |
| 6023 | 6031 | |
| 6024 | 6032 | /* backwards-compatibility macros for users of __BPF_FUNC_MAPPER that don't |
| 6025 | 6033 | * know or care about integer value that is now passed as second argument |
| @@ -6913,6 +6921,12 @@ enum { · 887 unmodified lines | ||
| 6913 | 6921 | BPF_SOCK_OPS_ALL_CB_FLAGS = 0x7F, |
| 6914 | 6922 | }; |
| 6915 | 6923 | |
| 6924 | +enum { | |
| 6925 | + SK_BPF_CB_TX_TIMESTAMPING = 1<<0, | |
| 6926 | + SK_BPF_CB_MASK = (SK_BPF_CB_TX_TIMESTAMPING - 1) | | |
| 6927 | + SK_BPF_CB_TX_TIMESTAMPING | |
| 6928 | +}; | |
| 6929 | + | |
| 6916 | 6930 | /* List of known BPF sock_ops operators. |
| 6917 | 6931 | * New entries can only be added at the end |
| 6918 | 6932 | */ |
| @@ -7025,6 +7039,29 @@ enum { · 106 unmodified lines | ||
| 7025 | 7039 | * by the kernel or the |
| 7026 | 7040 | * earlier bpf-progs. |
| 7027 | 7041 | */ |
| 7042 | + BPF_SOCK_OPS_TSTAMP_SCHED_CB, /* Called when skb is passing | |
| 7043 | + * through dev layer when | |
| 7044 | + * SK_BPF_CB_TX_TIMESTAMPING | |
| 7045 | + * feature is on. | |
| 7046 | + */ | |
| 7047 | + BPF_SOCK_OPS_TSTAMP_SND_SW_CB, /* Called when skb is about to send | |
| 7048 | + * to the nic when SK_BPF_CB_TX_TIMESTAMPING | |
| 7049 | + * feature is on. | |
| 7050 | + */ | |
| 7051 | + BPF_SOCK_OPS_TSTAMP_SND_HW_CB, /* Called in hardware phase when | |
| 7052 | + * SK_BPF_CB_TX_TIMESTAMPING feature | |
| 7053 | + * is on. | |
| 7054 | + */ | |
| 7055 | + BPF_SOCK_OPS_TSTAMP_ACK_CB, /* Called when all the skbs in the | |
| 7056 | + * same sendmsg call are acked | |
| 7057 | + * when SK_BPF_CB_TX_TIMESTAMPING | |
| 7058 | + * feature is on. | |
| 7059 | + */ | |
| 7060 | + BPF_SOCK_OPS_TSTAMP_SENDMSG_CB, /* Called when every sendmsg syscall | |
| 7061 | + * is triggered. It's used to correlate | |
| 7062 | + * sendmsg timestamp with corresponding | |
| 7063 | + * tskey. | |
| 7064 | + */ | |
| 7028 | 7065 | }; |
| 7029 | 7066 | |
| 7030 | 7067 | /* List of TCP states. There is a build check in net/ipv4/tcp.c to detect |
| @@ -7091,6 +7128,7 @@ enum { · 60 unmodified lines | ||
| 7091 | 7128 | TCP_BPF_SYN_IP = 1006, /* Copy the IP[46] and TCP header */ |
| 7092 | 7129 | TCP_BPF_SYN_MAC = 1007, /* Copy the MAC, IP[46], and TCP header */ |
| 7093 | 7130 | TCP_BPF_SOCK_OPS_CB_FLAGS = 1008, /* Get or Set TCP sock ops flags */ |
| 7131 | + SK_BPF_CB_FLAGS = 1009, /* Get or set sock ops flags in socket */ | |
| 7094 | 7132 | }; |
| 7095 | 7133 | |
| 7096 | 7134 | enum { |
| @@ -36,7 +36,8 @@ struct btf_type { · 35 unmodified lines | ||
| 36 | 36 | * bits 24-28: kind (e.g. int, ptr, array...etc) |
| 37 | 37 | * bits 29-30: unused |
| 38 | 38 | * bit 31: kind_flag, currently used by |
| 39 | − * struct, union, enum, fwd and enum64 | |
| 39 | + * struct, union, enum, fwd, enum64, | |
| 40 | + * decl_tag and type_tag | |
| 40 | 41 | */ |
| 41 | 42 | __u32 info; |
| 42 | 43 | /* "size" is used by INT, ENUM, STRUCT, UNION, DATASEC and ENUM64. |
| @@ -615,7 +615,9 @@ struct btrfs_ioctl_clone_range_args { · 614 unmodified lines | ||
| 615 | 615 | */ |
| 616 | 616 | #define BTRFS_DEFRAG_RANGE_COMPRESS 1 |
| 617 | 617 | #define BTRFS_DEFRAG_RANGE_START_IO 2 |
| 618 | +#define BTRFS_DEFRAG_RANGE_COMPRESS_LEVEL 4 | |
| 618 | 619 | #define BTRFS_DEFRAG_RANGE_FLAGS_SUPP (BTRFS_DEFRAG_RANGE_COMPRESS | \ |
| 620 | + BTRFS_DEFRAG_RANGE_COMPRESS_LEVEL | \ | |
| 619 | 621 | BTRFS_DEFRAG_RANGE_START_IO) |
| 620 | 622 | |
| 621 | 623 | struct btrfs_ioctl_defrag_range_args { |
| @@ -640,10 +642,18 @@ struct btrfs_ioctl_defrag_range_args { · 18 unmodified lines | ||
| 640 | 642 | |
| 641 | 643 | /* |
| 642 | 644 | * which compression method to use if turning on compression |
| 643 | − * for this defrag operation. If unspecified, zlib will | |
| 644 | − * be used | |
| 645 | + * for this defrag operation. If unspecified, zlib will be | |
| 646 | + * used. If compression level is also being specified, set the | |
| 647 | + * BTRFS_DEFRAG_RANGE_COMPRESS_LEVEL flag and fill the compress | |
| 648 | + * member structure instead of the compress_type field. | |
| 645 | 649 | */ |
| 646 | − __u32 compress_type; | |
| 650 | + union { | |
| 651 | + __u32 compress_type; | |
| 652 | + struct { | |
| 653 | + __u8 type; | |
| 654 | + __s8 level; | |
| 655 | + } compress; | |
| 656 | + }; | |
| 647 | 657 | |
| 648 | 658 | /* spare for later */ |
| 649 | 659 | __u32 unused[4]; |
| @@ -182,7 +182,7 @@ struct canfd_frame { · 181 unmodified lines | ||
| 182 | 182 | /* |
| 183 | 183 | * defined bits for canxl_frame.flags |
| 184 | 184 | * |
| 185 | − * The canxl_frame.flags element contains two bits CANXL_XLF and CANXL_SEC | |
| 185 | + * The canxl_frame.flags element contains three bits CANXL_[XLF|SEC|RRS] | |
| 186 | 186 | * and shares the relative position of the struct can[fd]_frame.len element. |
| 187 | 187 | * The CANXL_XLF bit ALWAYS needs to be set to indicate a valid CAN XL frame. |
| 188 | 188 | * As a side effect setting this bit intentionally breaks the length checks |
| @@ -192,6 +192,7 @@ struct canfd_frame { · 3 unmodified lines | ||
| 192 | 192 | */ |
| 193 | 193 | #define CANXL_XLF 0x80 /* mandatory CAN XL frame flag (must always be set!) */ |
| 194 | 194 | #define CANXL_SEC 0x01 /* Simple Extended Content (security/segmentation) */ |
| 195 | +#define CANXL_RRS 0x02 /* Remote Request Substitution */ | |
| 195 | 196 | |
| 196 | 197 | /* the 8-bit VCID is optionally placed in the canxl_frame.prio element */ |
| 197 | 198 | #define CANXL_VCID_OFFSET 16 /* bit offset of VCID in prio element */ |
| @@ -275,6 +275,7 @@ struct vfs_ns_cap_data { · 274 unmodified lines | ||
| 275 | 275 | /* Allow setting encryption key on loopback filesystem */ |
| 276 | 276 | /* Allow setting zone reclaim policy */ |
| 277 | 277 | /* Allow everything under CAP_BPF and CAP_PERFMON for backward compatibility */ |
| 278 | +/* Allow setting hardware protection emergency action */ | |
| 278 | 279 | |
| 279 | 280 | #define CAP_SYS_ADMIN 21 |
| 280 | 281 | |
| @@ -33,7 +33,7 @@ · 32 unmodified lines | ||
| 33 | 33 | * Missing asm support |
| 34 | 34 | * |
| 35 | 35 | * __BIT128() would not work in the asm code, as it shifts an |
| 36 | − * 'unsigned __init128' data type as direct representation of | |
| 36 | + * 'unsigned __int128' data type as direct representation of | |
| 37 | 37 | * 128 bit constants is not supported in the gcc compiler, as |
| 38 | 38 | * they get silently truncated. |
| 39 | 39 | * |
| @@ -65,6 +65,8 @@ enum counter_event_type { · 64 unmodified lines | ||
| 65 | 65 | COUNTER_EVENT_CHANGE_OF_STATE, |
| 66 | 66 | /* Count value captured */ |
| 67 | 67 | COUNTER_EVENT_CAPTURE, |
| 68 | + /* Direction change detected */ | |
| 69 | + COUNTER_EVENT_DIRECTION_CHANGE, | |
| 68 | 70 | }; |
| 69 | 71 | |
| 70 | 72 | /** |
| @@ -0,0 +1,40 @@ | ||
| 1 | +/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ | |
| 2 | +/* | |
| 3 | + * Channel numbers used by the microchip-tcb-capture driver | |
| 4 | + * Copyright (C) 2025 Bence Csókás | |
| 5 | + */ | |
| 6 | +#ifndef _UAPI_COUNTER_MCHP_TCB_H_ | |
| 7 | +#define _UAPI_COUNTER_MCHP_TCB_H_ | |
| 8 | + | |
| 9 | +/* | |
| 10 | + * The driver defines the following components: | |
| 11 | + * | |
| 12 | + * Count 0 | |
| 13 | + * \__ Synapse 0 -- Signal 0 (Channel A, i.e. TIOA) | |
| 14 | + * \__ Synapse 1 -- Signal 1 (Channel B, i.e. TIOB) | |
| 15 | + * \__ Extension capture0 (RA register) | |
| 16 | + * \__ Extension capture1 (RB register) | |
| 17 | + * | |
| 18 | + * It also supports the following events: | |
| 19 | + * | |
| 20 | + * Channel 0: | |
| 21 | + * - CV register changed | |
| 22 | + * - CV overflowed | |
| 23 | + * - RA captured | |
| 24 | + * Channel 1: | |
| 25 | + * - RB captured | |
| 26 | + * Channel 2: | |
| 27 | + * - RC compare triggered | |
| 28 | + */ | |
| 29 | + | |
| 30 | +/* Capture extensions */ | |
| 31 | +#define COUNTER_MCHP_EXCAP_RA 0 | |
| 32 | +#define COUNTER_MCHP_EXCAP_RB 1 | |
| 33 | + | |
| 34 | +/* Event channels */ | |
| 35 | +#define COUNTER_MCHP_EVCHN_CV 0 | |
| 36 | +#define COUNTER_MCHP_EVCHN_RA 0 | |
| 37 | +#define COUNTER_MCHP_EVCHN_RB 1 | |
| 38 | +#define COUNTER_MCHP_EVCHN_RC 2 | |
| 39 | + | |
| 40 | +#endif /* _UAPI_COUNTER_MCHP_TCB_H_ */ | |
| @@ -11,6 +11,7 @@ typedef __u16 Elf32_Half; · 10 unmodified lines | ||
| 11 | 11 | typedef __u32 Elf32_Off; |
| 12 | 12 | typedef __s32 Elf32_Sword; |
| 13 | 13 | typedef __u32 Elf32_Word; |
| 14 | +typedef __u16 Elf32_Versym; | |
| 14 | 15 | |
| 15 | 16 | /* 64-bit ELF base types. */ |
| 16 | 17 | typedef __u64 Elf64_Addr; |
| @@ -21,6 +22,7 @@ typedef __s32 Elf64_Sword; · 4 unmodified lines | ||
| 21 | 22 | typedef __u32 Elf64_Word; |
| 22 | 23 | typedef __u64 Elf64_Xword; |
| 23 | 24 | typedef __s64 Elf64_Sxword; |
| 25 | +typedef __u16 Elf64_Versym; | |
| 24 | 26 | |
| 25 | 27 | /* These constants are for the segment types stored in the image headers */ |
| 26 | 28 | #define PT_NULL 0 |
| @@ -107,6 +109,7 @@ typedef __s64 Elf64_Sxword; · 80 unmodified lines | ||
| 107 | 109 | #define DT_VALRNGLO 0x6ffffd00 |
| 108 | 110 | #define DT_VALRNGHI 0x6ffffdff |
| 109 | 111 | #define DT_ADDRRNGLO 0x6ffffe00 |
| 112 | +#define DT_GNU_HASH 0x6ffffef5 | |
| 110 | 113 | #define DT_ADDRRNGHI 0x6ffffeff |
| 111 | 114 | #define DT_VERSYM 0x6ffffff0 |
| 112 | 115 | #define DT_RELACOUNT 0x6ffffff9 |
| @@ -125,6 +128,8 @@ typedef __s64 Elf64_Sxword; · 12 unmodified lines | ||
| 125 | 128 | #define STB_GLOBAL 1 |
| 126 | 129 | #define STB_WEAK 2 |
| 127 | 130 | |
| 131 | +#define STN_UNDEF 0 | |
| 132 | + | |
| 128 | 133 | #define STT_NOTYPE 0 |
| 129 | 134 | #define STT_OBJECT 1 |
| 130 | 135 | #define STT_FUNC 2 |
| @@ -133,6 +138,9 @@ typedef __s64 Elf64_Sxword; · 2 unmodified lines | ||
| 133 | 138 | #define STT_COMMON 5 |
| 134 | 139 | #define STT_TLS 6 |
| 135 | 140 | |
| 141 | +#define VER_FLG_BASE 0x1 | |
| 142 | +#define VER_FLG_WEAK 0x2 | |
| 143 | + | |
| 136 | 144 | #define ELF_ST_BIND(x) ((x) >> 4) |
| 137 | 145 | #define ELF_ST_TYPE(x) ((x) & 0xf) |
| 138 | 146 | #define ELF32_ST_BIND(x) ELF_ST_BIND(x) |
| @@ -291,8 +299,18 @@ typedef struct elf64_phdr { · 152 unmodified lines | ||
| 291 | 299 | #define SHF_WRITE 0x1 |
| 292 | 300 | #define SHF_ALLOC 0x2 |
| 293 | 301 | #define SHF_EXECINSTR 0x4 |
| 302 | +#define SHF_MERGE 0x10 | |
| 303 | +#define SHF_STRINGS 0x20 | |
| 304 | +#define SHF_INFO_LINK 0x40 | |
| 305 | +#define SHF_LINK_ORDER 0x80 | |
| 306 | +#define SHF_OS_NONCONFORMING 0x100 | |
| 307 | +#define SHF_GROUP 0x200 | |
| 308 | +#define SHF_TLS 0x400 | |
| 294 | 309 | #define SHF_RELA_LIVEPATCH 0x00100000 |
| 295 | 310 | #define SHF_RO_AFTER_INIT 0x00200000 |
| 311 | +#define SHF_ORDERED 0x04000000 | |
| 312 | +#define SHF_EXCLUDE 0x08000000 | |
| 313 | +#define SHF_MASKOS 0x0ff00000 | |
| 296 | 314 | #define SHF_MASKPROC 0xf0000000 |
| 297 | 315 | |
| 298 | 316 | /* special section indexes */ |
| @@ -368,101 +386,180 @@ typedef struct elf64_shdr { · 69 unmodified lines | ||
| 368 | 386 | #define ELF_OSABI ELFOSABI_NONE |
| 369 | 387 | #endif |
| 370 | 388 | |
| 389 | +/* Note definitions: NN_ defines names. NT_ defines types. */ | |
| 390 | + | |
| 391 | +#define NN_GNU_PROPERTY_TYPE_0 "GNU" | |
| 392 | +#define NT_GNU_PROPERTY_TYPE_0 5 | |
| 393 | + | |
| 371 | 394 | /* |
| 372 | 395 | * Notes used in ET_CORE. Architectures export some of the arch register sets |
| 373 | 396 | * using the corresponding note types via the PTRACE_GETREGSET and |
| 374 | 397 | * PTRACE_SETREGSET requests. |
| 375 | − * The note name for these types is "LINUX", except NT_PRFPREG that is named | |
| 376 | − * "CORE". | |
| 377 | 398 | */ |
| 399 | +#define NN_PRSTATUS "CORE" | |
| 378 | 400 | #define NT_PRSTATUS 1 |
| 401 | +#define NN_PRFPREG "CORE" | |
| 379 | 402 | #define NT_PRFPREG 2 |
| 403 | +#define NN_PRPSINFO "CORE" | |
| 380 | 404 | #define NT_PRPSINFO 3 |
| 405 | +#define NN_TASKSTRUCT "CORE" | |
| 381 | 406 | #define NT_TASKSTRUCT 4 |
| 407 | +#define NN_AUXV "CORE" | |
| 382 | 408 | #define NT_AUXV 6 |
| 383 | 409 | /* |
| 384 | 410 | * Note to userspace developers: size of NT_SIGINFO note may increase |
| 385 | 411 | * in the future to accomodate more fields, don't assume it is fixed! |
| 386 | 412 | */ |
| 413 | +#define NN_SIGINFO "CORE" | |
| 387 | 414 | #define NT_SIGINFO 0x53494749 |
| 415 | +#define NN_FILE "CORE" | |
| 388 | 416 | #define NT_FILE 0x46494c45 |
| 417 | +#define NN_PRXFPREG "LINUX" | |
| 389 | 418 | #define NT_PRXFPREG 0x46e62b7f /* copied from gdb5.1/include/elf/common.h */ |
| 419 | +#define NN_PPC_VMX "LINUX" | |
| 390 | 420 | #define NT_PPC_VMX 0x100 /* PowerPC Altivec/VMX registers */ |
| 421 | +#define NN_PPC_SPE "LINUX" | |
| 391 | 422 | #define NT_PPC_SPE 0x101 /* PowerPC SPE/EVR registers */ |
| 423 | +#define NN_PPC_VSX "LINUX" | |
| 392 | 424 | #define NT_PPC_VSX 0x102 /* PowerPC VSX registers */ |
| 425 | +#define NN_PPC_TAR "LINUX" | |
| 393 | 426 | #define NT_PPC_TAR 0x103 /* Target Address Register */ |
| 427 | +#define NN_PPC_PPR "LINUX" | |
| 394 | 428 | #define NT_PPC_PPR 0x104 /* Program Priority Register */ |
| 429 | +#define NN_PPC_DSCR "LINUX" | |
| 395 | 430 | #define NT_PPC_DSCR 0x105 /* Data Stream Control Register */ |
| 431 | +#define NN_PPC_EBB "LINUX" | |
| 396 | 432 | #define NT_PPC_EBB 0x106 /* Event Based Branch Registers */ |
| 433 | +#define NN_PPC_PMU "LINUX" | |
| 397 | 434 | #define NT_PPC_PMU 0x107 /* Performance Monitor Registers */ |
| 435 | +#define NN_PPC_TM_CGPR "LINUX" | |
| 398 | 436 | #define NT_PPC_TM_CGPR 0x108 /* TM checkpointed GPR Registers */ |
| 437 | +#define NN_PPC_TM_CFPR "LINUX" | |
| 399 | 438 | #define NT_PPC_TM_CFPR 0x109 /* TM checkpointed FPR Registers */ |
| 439 | +#define NN_PPC_TM_CVMX "LINUX" | |
| 400 | 440 | #define NT_PPC_TM_CVMX 0x10a /* TM checkpointed VMX Registers */ |
| 441 | +#define NN_PPC_TM_CVSX "LINUX" | |
| 401 | 442 | #define NT_PPC_TM_CVSX 0x10b /* TM checkpointed VSX Registers */ |
| 443 | +#define NN_PPC_TM_SPR "LINUX" | |
| 402 | 444 | #define NT_PPC_TM_SPR 0x10c /* TM Special Purpose Registers */ |
| 445 | +#define NN_PPC_TM_CTAR "LINUX" | |
| 403 | 446 | #define NT_PPC_TM_CTAR 0x10d /* TM checkpointed Target Address Register */ |
| 447 | +#define NN_PPC_TM_CPPR "LINUX" | |
| 404 | 448 | #define NT_PPC_TM_CPPR 0x10e /* TM checkpointed Program Priority Register */ |
| 449 | +#define NN_PPC_TM_CDSCR "LINUX" | |
| 405 | 450 | #define NT_PPC_TM_CDSCR 0x10f /* TM checkpointed Data Stream Control Register */ |
| 451 | +#define NN_PPC_PKEY "LINUX" | |
| 406 | 452 | #define NT_PPC_PKEY 0x110 /* Memory Protection Keys registers */ |
| 453 | +#define NN_PPC_DEXCR "LINUX" | |
| 407 | 454 | #define NT_PPC_DEXCR 0x111 /* PowerPC DEXCR registers */ |
| 455 | +#define NN_PPC_HASHKEYR "LINUX" | |
| 408 | 456 | #define NT_PPC_HASHKEYR 0x112 /* PowerPC HASHKEYR register */ |
| 457 | +#define NN_386_TLS "LINUX" | |
| 409 | 458 | #define NT_386_TLS 0x200 /* i386 TLS slots (struct user_desc) */ |
| 459 | +#define NN_386_IOPERM "LINUX" | |
| 410 | 460 | #define NT_386_IOPERM 0x201 /* x86 io permission bitmap (1=deny) */ |
| 461 | +#define NN_X86_XSTATE "LINUX" | |
| 411 | 462 | #define NT_X86_XSTATE 0x202 /* x86 extended state using xsave */ |
| 412 | 463 | /* Old binutils treats 0x203 as a CET state */ |
| 464 | +#define NN_X86_SHSTK "LINUX" | |
| 413 | 465 | #define NT_X86_SHSTK 0x204 /* x86 SHSTK state */ |
| 466 | +#define NN_X86_XSAVE_LAYOUT "LINUX" | |
| 414 | 467 | #define NT_X86_XSAVE_LAYOUT 0x205 /* XSAVE layout description */ |
| 468 | +#define NN_S390_HIGH_GPRS "LINUX" | |
| 415 | 469 | #define NT_S390_HIGH_GPRS 0x300 /* s390 upper register halves */ |
| 470 | +#define NN_S390_TIMER "LINUX" | |
| 416 | 471 | #define NT_S390_TIMER 0x301 /* s390 timer register */ |
| 472 | +#define NN_S390_TODCMP "LINUX" | |
| 417 | 473 | #define NT_S390_TODCMP 0x302 /* s390 TOD clock comparator register */ |
| 474 | +#define NN_S390_TODPREG "LINUX" | |
| 418 | 475 | #define NT_S390_TODPREG 0x303 /* s390 TOD programmable register */ |
| 476 | +#define NN_S390_CTRS "LINUX" | |
| 419 | 477 | #define NT_S390_CTRS 0x304 /* s390 control registers */ |
| 478 | +#define NN_S390_PREFIX "LINUX" | |
| 420 | 479 | #define NT_S390_PREFIX 0x305 /* s390 prefix register */ |
| 480 | +#define NN_S390_LAST_BREAK "LINUX" | |
| 421 | 481 | #define NT_S390_LAST_BREAK 0x306 /* s390 breaking event address */ |
| 482 | +#define NN_S390_SYSTEM_CALL "LINUX" | |
| 422 | 483 | #define NT_S390_SYSTEM_CALL 0x307 /* s390 system call restart data */ |
| 484 | +#define NN_S390_TDB "LINUX" | |
| 423 | 485 | #define NT_S390_TDB 0x308 /* s390 transaction diagnostic block */ |
| 486 | +#define NN_S390_VXRS_LOW "LINUX" | |
| 424 | 487 | #define NT_S390_VXRS_LOW 0x309 /* s390 vector registers 0-15 upper half */ |
| 488 | +#define NN_S390_VXRS_HIGH "LINUX" | |
| 425 | 489 | #define NT_S390_VXRS_HIGH 0x30a /* s390 vector registers 16-31 */ |
| 490 | +#define NN_S390_GS_CB "LINUX" | |
| 426 | 491 | #define NT_S390_GS_CB 0x30b /* s390 guarded storage registers */ |
| 492 | +#define NN_S390_GS_BC "LINUX" | |
| 427 | 493 | #define NT_S390_GS_BC 0x30c /* s390 guarded storage broadcast control block */ |
| 494 | +#define NN_S390_RI_CB "LINUX" | |
| 428 | 495 | #define NT_S390_RI_CB 0x30d /* s390 runtime instrumentation */ |
| 496 | +#define NN_S390_PV_CPU_DATA "LINUX" | |
| 429 | 497 | #define NT_S390_PV_CPU_DATA 0x30e /* s390 protvirt cpu dump data */ |
| 498 | +#define NN_ARM_VFP "LINUX" | |
| 430 | 499 | #define NT_ARM_VFP 0x400 /* ARM VFP/NEON registers */ |
| 500 | +#define NN_ARM_TLS "LINUX" | |
| 431 | 501 | #define NT_ARM_TLS 0x401 /* ARM TLS register */ |
| 502 | +#define NN_ARM_HW_BREAK "LINUX" | |
| 432 | 503 | #define NT_ARM_HW_BREAK 0x402 /* ARM hardware breakpoint registers */ |
| 504 | +#define NN_ARM_HW_WATCH "LINUX" | |
| 433 | 505 | #define NT_ARM_HW_WATCH 0x403 /* ARM hardware watchpoint registers */ |
| 506 | +#define NN_ARM_SYSTEM_CALL "LINUX" | |
| 434 | 507 | #define NT_ARM_SYSTEM_CALL 0x404 /* ARM system call number */ |
| 508 | +#define NN_ARM_SVE "LINUX" | |
| 435 | 509 | #define NT_ARM_SVE 0x405 /* ARM Scalable Vector Extension registers */ |
| 510 | +#define NN_ARM_PAC_MASK "LINUX" | |
| 436 | 511 | #define NT_ARM_PAC_MASK 0x406 /* ARM pointer authentication code masks */ |
| 512 | +#define NN_ARM_PACA_KEYS "LINUX" | |
| 437 | 513 | #define NT_ARM_PACA_KEYS 0x407 /* ARM pointer authentication address keys */ |
| 514 | +#define NN_ARM_PACG_KEYS "LINUX" | |
| 438 | 515 | #define NT_ARM_PACG_KEYS 0x408 /* ARM pointer authentication generic key */ |
| 516 | +#define NN_ARM_TAGGED_ADDR_CTRL "LINUX" | |
| 439 | 517 | #define NT_ARM_TAGGED_ADDR_CTRL 0x409 /* arm64 tagged address control (prctl()) */ |
| 518 | +#define NN_ARM_PAC_ENABLED_KEYS "LINUX" | |
| 440 | 519 | #define NT_ARM_PAC_ENABLED_KEYS 0x40a /* arm64 ptr auth enabled keys (prctl()) */ |
| 520 | +#define NN_ARM_SSVE "LINUX" | |
| 441 | 521 | #define NT_ARM_SSVE 0x40b /* ARM Streaming SVE registers */ |
| 522 | +#define NN_ARM_ZA "LINUX" | |
| 442 | 523 | #define NT_ARM_ZA 0x40c /* ARM SME ZA registers */ |
| 524 | +#define NN_ARM_ZT "LINUX" | |
| 443 | 525 | #define NT_ARM_ZT 0x40d /* ARM SME ZT registers */ |
| 526 | +#define NN_ARM_FPMR "LINUX" | |
| 444 | 527 | #define NT_ARM_FPMR 0x40e /* ARM floating point mode register */ |
| 528 | +#define NN_ARM_POE "LINUX" | |
| 445 | 529 | #define NT_ARM_POE 0x40f /* ARM POE registers */ |
| 530 | +#define NN_ARM_GCS "LINUX" | |
| 446 | 531 | #define NT_ARM_GCS 0x410 /* ARM GCS state */ |
| 532 | +#define NN_ARC_V2 "LINUX" | |
| 447 | 533 | #define NT_ARC_V2 0x600 /* ARCv2 accumulator/extra registers */ |
| 534 | +#define NN_VMCOREDD "LINUX" | |
| 448 | 535 | #define NT_VMCOREDD 0x700 /* Vmcore Device Dump Note */ |
| 536 | +#define NN_MIPS_DSP "LINUX" | |
| 449 | 537 | #define NT_MIPS_DSP 0x800 /* MIPS DSP ASE registers */ |
| 538 | +#define NN_MIPS_FP_MODE "LINUX" | |
| 450 | 539 | #define NT_MIPS_FP_MODE 0x801 /* MIPS floating-point mode */ |
| 540 | +#define NN_MIPS_MSA "LINUX" | |
| 451 | 541 | #define NT_MIPS_MSA 0x802 /* MIPS SIMD registers */ |
| 542 | +#define NN_RISCV_CSR "LINUX" | |
| 452 | 543 | #define NT_RISCV_CSR 0x900 /* RISC-V Control and Status Registers */ |
| 544 | +#define NN_RISCV_VECTOR "LINUX" | |
| 453 | 545 | #define NT_RISCV_VECTOR 0x901 /* RISC-V vector registers */ |
| 546 | +#define NN_RISCV_TAGGED_ADDR_CTRL "LINUX" | |
| 454 | 547 | #define NT_RISCV_TAGGED_ADDR_CTRL 0x902 /* RISC-V tagged address control (prctl()) */ |
| 548 | +#define NN_LOONGARCH_CPUCFG "LINUX" | |
| 455 | 549 | #define NT_LOONGARCH_CPUCFG 0xa00 /* LoongArch CPU config registers */ |
| 550 | +#define NN_LOONGARCH_CSR "LINUX" | |
| 456 | 551 | #define NT_LOONGARCH_CSR 0xa01 /* LoongArch control and status registers */ |
| 552 | +#define NN_LOONGARCH_LSX "LINUX" | |
| 457 | 553 | #define NT_LOONGARCH_LSX 0xa02 /* LoongArch Loongson SIMD Extension registers */ |
| 554 | +#define NN_LOONGARCH_LASX "LINUX" | |
| 458 | 555 | #define NT_LOONGARCH_LASX 0xa03 /* LoongArch Loongson Advanced SIMD Extension registers */ |
| 556 | +#define NN_LOONGARCH_LBT "LINUX" | |
| 459 | 557 | #define NT_LOONGARCH_LBT 0xa04 /* LoongArch Loongson Binary Translation registers */ |
| 558 | +#define NN_LOONGARCH_HW_BREAK "LINUX" | |
| 460 | 559 | #define NT_LOONGARCH_HW_BREAK 0xa05 /* LoongArch hardware breakpoint registers */ |
| 560 | +#define NN_LOONGARCH_HW_WATCH "LINUX" | |
| 461 | 561 | #define NT_LOONGARCH_HW_WATCH 0xa06 /* LoongArch hardware watchpoint registers */ |
| 462 | 562 | |
| 463 | −/* Note types with note name "GNU" */ | |
| 464 | −#define NT_GNU_PROPERTY_TYPE_0 5 | |
| 465 | − | |
| 466 | 563 | /* Note header in a PT_NOTE section */ |
| 467 | 564 | typedef struct elf32_note { |
| 468 | 565 | Elf32_Word n_namesz; /* Name size */ |
| @@ -483,4 +580,34 @@ typedef struct elf64_note { · 14 unmodified lines | ||
| 483 | 580 | /* Bits for GNU_PROPERTY_AARCH64_FEATURE_1_BTI */ |
| 484 | 581 | #define GNU_PROPERTY_AARCH64_FEATURE_1_BTI (1U << 0) |
| 485 | 582 | |
| 583 | +typedef struct { | |
| 584 | + Elf32_Half vd_version; | |
| 585 | + Elf32_Half vd_flags; | |
| 586 | + Elf32_Half vd_ndx; | |
| 587 | + Elf32_Half vd_cnt; | |
| 588 | + Elf32_Word vd_hash; | |
| 589 | + Elf32_Word vd_aux; | |
| 590 | + Elf32_Word vd_next; | |
| 591 | +} Elf32_Verdef; | |
| 592 | + | |
| 593 | +typedef struct { | |
| 594 | + Elf64_Half vd_version; | |
| 595 | + Elf64_Half vd_flags; | |
| 596 | + Elf64_Half vd_ndx; | |
| 597 | + Elf64_Half vd_cnt; | |
| 598 | + Elf64_Word vd_hash; | |
| 599 | + Elf64_Word vd_aux; | |
| 600 | + Elf64_Word vd_next; | |
| 601 | +} Elf64_Verdef; | |
| 602 | + | |
| 603 | +typedef struct { | |
| 604 | + Elf32_Word vda_name; | |
| 605 | + Elf32_Word vda_next; | |
| 606 | +} Elf32_Verdaux; | |
| 607 | + | |
| 608 | +typedef struct { | |
| 609 | + Elf64_Word vda_name; | |
| 610 | + Elf64_Word vda_next; | |
| 611 | +} Elf64_Verdaux; | |
| 612 | + | |
| 486 | 613 | #endif /* _UAPI_LINUX_ELF_H */ |
| @@ -73,6 +73,7 @@ enum { · 72 unmodified lines | ||
| 73 | 73 | SCM_TSTAMP_SND, /* driver passed skb to NIC, or HW */ |
| 74 | 74 | SCM_TSTAMP_SCHED, /* data entered the packet scheduler */ |
| 75 | 75 | SCM_TSTAMP_ACK, /* data acknowledged by peer */ |
| 76 | + SCM_TSTAMP_COMPLETION, /* packet tx completion */ | |
| 76 | 77 | }; |
| 77 | 78 | |
| 78 | 79 | #endif /* _UAPI_LINUX_ERRQUEUE_H */ |
| @@ -2059,6 +2059,24 @@ enum ethtool_link_mode_bit_indices { · 2058 unmodified lines | ||
| 2059 | 2059 | ETHTOOL_LINK_MODE_10baseT1S_Half_BIT = 100, |
| 2060 | 2060 | ETHTOOL_LINK_MODE_10baseT1S_P2MP_Half_BIT = 101, |
| 2061 | 2061 | ETHTOOL_LINK_MODE_10baseT1BRR_Full_BIT = 102, |
| 2062 | + ETHTOOL_LINK_MODE_200000baseCR_Full_BIT = 103, | |
| 2063 | + ETHTOOL_LINK_MODE_200000baseKR_Full_BIT = 104, | |
| 2064 | + ETHTOOL_LINK_MODE_200000baseDR_Full_BIT = 105, | |
| 2065 | + ETHTOOL_LINK_MODE_200000baseDR_2_Full_BIT = 106, | |
| 2066 | + ETHTOOL_LINK_MODE_200000baseSR_Full_BIT = 107, | |
| 2067 | + ETHTOOL_LINK_MODE_200000baseVR_Full_BIT = 108, | |
| 2068 | + ETHTOOL_LINK_MODE_400000baseCR2_Full_BIT = 109, | |
| 2069 | + ETHTOOL_LINK_MODE_400000baseKR2_Full_BIT = 110, | |
| 2070 | + ETHTOOL_LINK_MODE_400000baseDR2_Full_BIT = 111, | |
| 2071 | + ETHTOOL_LINK_MODE_400000baseDR2_2_Full_BIT = 112, | |
| 2072 | + ETHTOOL_LINK_MODE_400000baseSR2_Full_BIT = 113, | |
| 2073 | + ETHTOOL_LINK_MODE_400000baseVR2_Full_BIT = 114, | |
| 2074 | + ETHTOOL_LINK_MODE_800000baseCR4_Full_BIT = 115, | |
| 2075 | + ETHTOOL_LINK_MODE_800000baseKR4_Full_BIT = 116, | |
| 2076 | + ETHTOOL_LINK_MODE_800000baseDR4_Full_BIT = 117, | |
| 2077 | + ETHTOOL_LINK_MODE_800000baseDR4_2_Full_BIT = 118, | |
| 2078 | + ETHTOOL_LINK_MODE_800000baseSR4_Full_BIT = 119, | |
| 2079 | + ETHTOOL_LINK_MODE_800000baseVR4_Full_BIT = 120, | |
| 2062 | 2080 | |
| 2063 | 2081 | /* must be last entry */ |
| 2064 | 2082 | __ETHTOOL_LINK_MODE_MASK_NBITS |
| @@ -2271,6 +2289,10 @@ static inline int ethtool_validate_duplex(__u8 duplex) · 206 unmodified lines | ||
| 2271 | 2289 | * be exploited to reduce the RSS queue spread. |
| 2272 | 2290 | */ |
| 2273 | 2291 | #define RXH_XFRM_SYM_XOR (1 << 0) |
| 2292 | +/* Similar to SYM_XOR, except that one copy of the XOR'ed fields is replaced by | |
| 2293 | + * an OR of the same fields | |
| 2294 | + */ | |
| 2295 | +#define RXH_XFRM_SYM_OR_XOR (1 << 1) | |
| 2274 | 2296 | #define RXH_XFRM_NO_CHANGE 0xff |
| 2275 | 2297 | |
| 2276 | 2298 | /* L2-L4 network traffic flow types */ |
| @@ -44,6 +44,7 @@ · 43 unmodified lines | ||
| 44 | 44 | #define F2FS_IOC_COMPRESS_FILE _IO(F2FS_IOCTL_MAGIC, 24) |
| 45 | 45 | #define F2FS_IOC_START_ATOMIC_REPLACE _IO(F2FS_IOCTL_MAGIC, 25) |
| 46 | 46 | #define F2FS_IOC_GET_DEV_ALIAS_FILE _IOR(F2FS_IOCTL_MAGIC, 26, __u32) |
| 47 | +#define F2FS_IOC_IO_PRIO _IOW(F2FS_IOCTL_MAGIC, 27, __u32) | |
| 47 | 48 | |
| 48 | 49 | /* |
| 49 | 50 | * should be same as XFS_IOC_GOINGDOWN. |
| @@ -63,6 +64,12 @@ · 13 unmodified lines | ||
| 63 | 64 | #define F2FS_TRIM_FILE_ZEROOUT 0x2 /* zero out */ |
| 64 | 65 | #define F2FS_TRIM_FILE_MASK 0x3 |
| 65 | 66 | |
| 67 | +/* for F2FS_IOC_IO_PRIO */ | |
| 68 | +enum { | |
| 69 | + F2FS_IOPRIO_WRITE = 1, /* high write priority */ | |
| 70 | + F2FS_IOPRIO_MAX, | |
| 71 | +}; | |
| 72 | + | |
| 66 | 73 | struct f2fs_gc_range { |
| 67 | 74 | __u32 sync; |
| 68 | 75 | __u64 start; |
| @@ -28,6 +28,8 @@ · 27 unmodified lines | ||
| 28 | 28 | /* #define FAN_DIR_MODIFY 0x00080000 */ /* Deprecated (reserved) */ |
| 29 | 29 | |
| 30 | 30 | #define FAN_PRE_ACCESS 0x00100000 /* Pre-content access hook */ |
| 31 | +#define FAN_MNT_ATTACH 0x01000000 /* Mount was attached */ | |
| 32 | +#define FAN_MNT_DETACH 0x02000000 /* Mount was detached */ | |
| 31 | 33 | |
| 32 | 34 | #define FAN_EVENT_ON_CHILD 0x08000000 /* Interested in child events */ |
| 33 | 35 | |
| @@ -64,6 +66,7 @@ · 30 unmodified lines | ||
| 64 | 66 | #define FAN_REPORT_NAME 0x00000800 /* Report events with name */ |
| 65 | 67 | #define FAN_REPORT_TARGET_FID 0x00001000 /* Report dirent target id */ |
| 66 | 68 | #define FAN_REPORT_FD_ERROR 0x00002000 /* event->fd can report error */ |
| 69 | +#define FAN_REPORT_MNT 0x00004000 /* Report mount events */ | |
| 67 | 70 | |
| 68 | 71 | /* Convenience macro - FAN_REPORT_NAME requires FAN_REPORT_DIR_FID */ |
| 69 | 72 | #define FAN_REPORT_DFID_NAME (FAN_REPORT_DIR_FID | FAN_REPORT_NAME) |
| @@ -94,6 +97,7 @@ · 24 unmodified lines | ||
| 94 | 97 | #define FAN_MARK_INODE 0x00000000 |
| 95 | 98 | #define FAN_MARK_MOUNT 0x00000010 |
| 96 | 99 | #define FAN_MARK_FILESYSTEM 0x00000100 |
| 100 | +#define FAN_MARK_MNTNS 0x00000110 | |
| 97 | 101 | |
| 98 | 102 | /* |
| 99 | 103 | * Convenience macro - FAN_MARK_IGNORE requires FAN_MARK_IGNORED_SURV_MODIFY |
| @@ -147,6 +151,7 @@ struct fanotify_event_metadata { · 47 unmodified lines | ||
| 147 | 151 | #define FAN_EVENT_INFO_TYPE_PIDFD 4 |
| 148 | 152 | #define FAN_EVENT_INFO_TYPE_ERROR 5 |
| 149 | 153 | #define FAN_EVENT_INFO_TYPE_RANGE 6 |
| 154 | +#define FAN_EVENT_INFO_TYPE_MNT 7 | |
| 150 | 155 | |
| 151 | 156 | /* Special info types for FAN_RENAME */ |
| 152 | 157 | #define FAN_EVENT_INFO_TYPE_OLD_DFID_NAME 10 |
| @@ -200,6 +205,11 @@ struct fanotify_event_info_range { · 47 unmodified lines | ||
| 200 | 205 | __u64 count; |
| 201 | 206 | }; |
| 202 | 207 | |
| 208 | +struct fanotify_event_info_mnt { | |
| 209 | + struct fanotify_event_info_header hdr; | |
| 210 | + __u64 mnt_id; | |
| 211 | +}; | |
| 212 | + | |
| 203 | 213 | /* |
| 204 | 214 | * User space may need to record additional information about its decision. |
| 205 | 215 | * The extra information type records what kind of information is included. |
| @@ -70,6 +70,9 @@ enum { · 69 unmodified lines | ||
| 70 | 70 | FRA_DSCP, /* dscp */ |
| 71 | 71 | FRA_FLOWLABEL, /* flowlabel */ |
| 72 | 72 | FRA_FLOWLABEL_MASK, /* flowlabel mask */ |
| 73 | + FRA_SPORT_MASK, /* sport mask */ | |
| 74 | + FRA_DPORT_MASK, /* dport mask */ | |
| 75 | + FRA_DSCP_MASK, /* dscp mask */ | |
| 73 | 76 | __FRA_MAX |
| 74 | 77 | }; |
| 75 | 78 | |
| @@ -449,7 +449,8 @@ struct fw_cdev_event_phy_packet { · 448 unmodified lines | ||
| 449 | 449 | * which the packet arrived. For %FW_CDEV_EVENT_PHY_PACKET_SENT2 and non-ping packet, |
| 450 | 450 | * the time stamp of isochronous cycle at which the packet was sent. For ping packet, |
| 451 | 451 | * the tick count for round-trip time measured by 1394 OHCI controller. |
| 452 | − * The time stamp of isochronous cycle at which either the response was sent for | |
| 452 | + * | |
| 453 | + * The time stamp of isochronous cycle at which either the response was sent for | |
| 453 | 454 | * %FW_CDEV_EVENT_PHY_PACKET_SENT2 or the request arrived for |
| 454 | 455 | * %FW_CDEV_EVENT_PHY_PACKET_RECEIVED2. |
| 455 | 456 | * @data: Incoming data |
| @@ -212,10 +212,8 @@ struct fsxattr { · 211 unmodified lines | ||
| 212 | 212 | #define BLKROTATIONAL _IO(0x12,126) |
| 213 | 213 | #define BLKZEROOUT _IO(0x12,127) |
| 214 | 214 | #define BLKGETDISKSEQ _IOR(0x12,128,__u64) |
| 215 | −/* | |
| 216 | − * A jump here: 130-136 are reserved for zoned block devices | |
| 217 | − * (see uapi/linux/blkzoned.h) | |
| 218 | − */ | |
| 215 | +/* 130-136 are used by zoned block device ioctls (uapi/linux/blkzoned.h) */ | |
| 216 | +/* 137-141 are used by blk-crypto ioctls (uapi/linux/blk-crypto.h) */ | |
| 219 | 217 | |
| 220 | 218 | #define BMAP_IOCTL 1 /* obsolete - kept for compatibility */ |
| 221 | 219 | #define FIBMAP _IO(0x00,1) /* bmap access */ |
| @@ -229,6 +229,9 @@ · 228 unmodified lines | ||
| 229 | 229 | * - FUSE_URING_IN_OUT_HEADER_SZ |
| 230 | 230 | * - FUSE_URING_OP_IN_OUT_SZ |
| 231 | 231 | * - enum fuse_uring_cmd |
| 232 | + * | |
| 233 | + * 7.43 | |
| 234 | + * - add FUSE_REQUEST_TIMEOUT | |
| 232 | 235 | */ |
| 233 | 236 | |
| 234 | 237 | #ifndef _LINUX_FUSE_H |
| @@ -264,7 +267,7 @@ · 29 unmodified lines | ||
| 264 | 267 | #define FUSE_KERNEL_VERSION 7 |
| 265 | 268 | |
| 266 | 269 | /** Minor version number of this interface */ |
| 267 | −#define FUSE_KERNEL_MINOR_VERSION 42 | |
| 270 | +#define FUSE_KERNEL_MINOR_VERSION 43 | |
| 268 | 271 | |
| 269 | 272 | /** The node ID of the root inode */ |
| 270 | 273 | #define FUSE_ROOT_ID 1 |
| @@ -435,6 +438,8 @@ struct fuse_file_lock { · 164 unmodified lines | ||
| 435 | 438 | * of the request ID indicates resend requests |
| 436 | 439 | * FUSE_ALLOW_IDMAP: allow creation of idmapped mounts |
| 437 | 440 | * FUSE_OVER_IO_URING: Indicate that client supports io-uring |
| 441 | + * FUSE_REQUEST_TIMEOUT: kernel supports timing out requests. | |
| 442 | + * init_out.request_timeout contains the timeout (in secs) | |
| 438 | 443 | */ |
| 439 | 444 | #define FUSE_ASYNC_READ (1 << 0) |
| 440 | 445 | #define FUSE_POSIX_LOCKS (1 << 1) |
| @@ -477,11 +482,11 @@ struct fuse_file_lock { · 36 unmodified lines | ||
| 477 | 482 | #define FUSE_PASSTHROUGH (1ULL << 37) |
| 478 | 483 | #define FUSE_NO_EXPORT_SUPPORT (1ULL << 38) |
| 479 | 484 | #define FUSE_HAS_RESEND (1ULL << 39) |
| 480 | − | |
| 481 | 485 | /* Obsolete alias for FUSE_DIRECT_IO_ALLOW_MMAP */ |
| 482 | 486 | #define FUSE_DIRECT_IO_RELAX FUSE_DIRECT_IO_ALLOW_MMAP |
| 483 | 487 | #define FUSE_ALLOW_IDMAP (1ULL << 40) |
| 484 | 488 | #define FUSE_OVER_IO_URING (1ULL << 41) |
| 489 | +#define FUSE_REQUEST_TIMEOUT (1ULL << 42) | |
| 485 | 490 | |
| 486 | 491 | /** |
| 487 | 492 | * CUSE INIT request/reply flags |
| @@ -909,7 +914,8 @@ struct fuse_init_out { · 421 unmodified lines | ||
| 909 | 914 | uint16_t map_alignment; |
| 910 | 915 | uint32_t flags2; |
| 911 | 916 | uint32_t max_stack_depth; |
| 912 | − uint32_t unused[6]; | |
| 917 | + uint16_t request_timeout; | |
| 918 | + uint16_t unused[11]; | |
| 913 | 919 | }; |
| 914 | 920 | |
| 915 | 921 | #define CUSE_INIT_INFO_MAX 4096 |
| @@ -1,23 +0,0 @@ | ||
| 1 | −/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */ | |
| 2 | −#ifndef _LINUX_CABLEMODEM_H_ | |
| 3 | −#define _LINUX_CABLEMODEM_H_ | |
| 4 | −/* | |
| 5 | − * Author: Franco Venturi <fventuri@mediaone.net> | |
| 6 | − * Copyright 1998 Franco Venturi | |
| 7 | − * | |
| 8 | − * This program is free software; you can redistribute it | |
| 9 | − * and/or modify it under the terms of the GNU General | |
| 10 | − * Public License as published by the Free Software | |
| 11 | − * Foundation; either version 2 of the License, or (at | |
| 12 | − * your option) any later version. | |
| 13 | − */ | |
| 14 | − | |
| 15 | −/* some useful defines for sb1000.c e cmconfig.c - fv */ | |
| 16 | −#define SIOCGCMSTATS (SIOCDEVPRIVATE+0) /* get cable modem stats */ | |
| 17 | −#define SIOCGCMFIRMWARE (SIOCDEVPRIVATE+1) /* get cm firmware version */ | |
| 18 | −#define SIOCGCMFREQUENCY (SIOCDEVPRIVATE+2) /* get cable modem frequency */ | |
| 19 | −#define SIOCSCMFREQUENCY (SIOCDEVPRIVATE+3) /* set cable modem frequency */ | |
| 20 | −#define SIOCGCMPIDS (SIOCDEVPRIVATE+4) /* get cable modem PIDs */ | |
| 21 | −#define SIOCSCMPIDS (SIOCDEVPRIVATE+5) /* set cable modem PIDs */ | |
| 22 | − | |
| 23 | −#endif | |
| @@ -378,6 +378,7 @@ enum { · 377 unmodified lines | ||
| 378 | 378 | IFLA_GRO_IPV4_MAX_SIZE, |
| 379 | 379 | IFLA_DPLL_PIN, |
| 380 | 380 | IFLA_MAX_PACING_OFFLOAD_HORIZON, |
| 381 | + IFLA_NETNS_IMMUTABLE, | |
| 381 | 382 | __IFLA_MAX |
| 382 | 383 | }; |
| 383 | 384 | |
| @@ -1438,6 +1439,7 @@ enum { · 1054 unmodified lines | ||
| 1438 | 1439 | IFLA_GENEVE_TTL_INHERIT, |
| 1439 | 1440 | IFLA_GENEVE_DF, |
| 1440 | 1441 | IFLA_GENEVE_INNER_PROTO_INHERIT, |
| 1442 | + IFLA_GENEVE_PORT_RANGE, | |
| 1441 | 1443 | __IFLA_GENEVE_MAX |
| 1442 | 1444 | }; |
| 1443 | 1445 | #define IFLA_GENEVE_MAX (__IFLA_GENEVE_MAX - 1) |
| @@ -1450,6 +1452,11 @@ enum ifla_geneve_df { · 6 unmodified lines | ||
| 1450 | 1452 | GENEVE_DF_MAX = __GENEVE_DF_END - 1, |
| 1451 | 1453 | }; |
| 1452 | 1454 | |
| 1455 | +struct ifla_geneve_port_range { | |
| 1456 | + __be16 low; | |
| 1457 | + __be16 high; | |
| 1458 | +}; | |
| 1459 | + | |
| 1453 | 1460 | /* Bareudp section */ |
| 1454 | 1461 | enum { |
| 1455 | 1462 | IFLA_BAREUDP_UNSPEC, |
| @@ -127,6 +127,12 @@ struct xdp_options { · 126 unmodified lines | ||
| 127 | 127 | */ |
| 128 | 128 | #define XDP_TXMD_FLAGS_CHECKSUM (1 << 1) |
| 129 | 129 | |
| 130 | +/* Request launch time hardware offload. The device will schedule the packet for | |
| 131 | + * transmission at a pre-determined time called launch time. The value of | |
| 132 | + * launch time is communicated via launch_time field of struct xsk_tx_metadata. | |
| 133 | + */ | |
| 134 | +#define XDP_TXMD_FLAGS_LAUNCH_TIME (1 << 2) | |
| 135 | + | |
| 130 | 136 | /* AF_XDP offloads request. 'request' union member is consumed by the driver |
| 131 | 137 | * when the packet is being transmitted. 'completion' union member is |
| 132 | 138 | * filled by the driver when the transmit completion arrives. |
| @@ -142,6 +148,10 @@ struct xsk_tx_metadata { · 9 unmodified lines | ||
| 142 | 148 | __u16 csum_start; |
| 143 | 149 | /* Offset from csum_start where checksum should be stored. */ |
| 144 | 150 | __u16 csum_offset; |
| 151 | + | |
| 152 | + /* XDP_TXMD_FLAGS_LAUNCH_TIME */ | |
| 153 | + /* Launch time in nanosecond against the PTP HW Clock */ | |
| 154 | + __u64 launch_time; | |
| 145 | 155 | } request; |
| 146 | 156 | |
| 147 | 157 | struct { |
| @@ -119,6 +119,7 @@ enum iio_event_type { · 118 unmodified lines | ||
| 119 | 119 | IIO_EV_TYPE_CHANGE, |
| 120 | 120 | IIO_EV_TYPE_MAG_REFERENCED, |
| 121 | 121 | IIO_EV_TYPE_GESTURE, |
| 122 | + IIO_EV_TYPE_FAULT, | |
| 122 | 123 | }; |
| 123 | 124 | |
| 124 | 125 | enum iio_event_direction { |
| @@ -128,6 +129,7 @@ enum iio_event_direction { · 3 unmodified lines | ||
| 128 | 129 | IIO_EV_DIR_NONE, |
| 129 | 130 | IIO_EV_DIR_SINGLETAP, |
| 130 | 131 | IIO_EV_DIR_DOUBLETAP, |
| 132 | + IIO_EV_DIR_FAULT_OPENWIRE, | |
| 131 | 133 | }; |
| 132 | 134 | |
| 133 | 135 | #endif /* _UAPI_IIO_TYPES_H_ */ |
| @@ -87,6 +87,7 @@ struct io_uring_sqe { · 86 unmodified lines | ||
| 87 | 87 | union { |
| 88 | 88 | __s32 splice_fd_in; |
| 89 | 89 | __u32 file_index; |
| 90 | + __u32 zcrx_ifq_idx; | |
| 90 | 91 | __u32 optlen; |
| 91 | 92 | struct { |
| 92 | 93 | __u16 addr_len; |
| @@ -278,6 +279,10 @@ enum io_uring_op { · 185 unmodified lines | ||
| 278 | 279 | IORING_OP_FTRUNCATE, |
| 279 | 280 | IORING_OP_BIND, |
| 280 | 281 | IORING_OP_LISTEN, |
| 282 | + IORING_OP_RECV_ZC, | |
| 283 | + IORING_OP_EPOLL_WAIT, | |
| 284 | + IORING_OP_READV_FIXED, | |
| 285 | + IORING_OP_WRITEV_FIXED, | |
| 281 | 286 | |
| 282 | 287 | /* this goes last, obviously */ |
| 283 | 288 | IORING_OP_LAST, |
| @@ -541,6 +546,7 @@ struct io_cqring_offsets { · 257 unmodified lines | ||
| 541 | 546 | #define IORING_ENTER_REGISTERED_RING (1U << 4) |
| 542 | 547 | #define IORING_ENTER_ABS_TIMER (1U << 5) |
| 543 | 548 | #define IORING_ENTER_EXT_ARG_REG (1U << 6) |
| 549 | +#define IORING_ENTER_NO_IOWAIT (1U << 7) | |
| 544 | 550 | |
| 545 | 551 | /* |
| 546 | 552 | * Passed in for io_uring_setup(2). Copied back with updated info on success |
| @@ -578,6 +584,7 @@ struct io_uring_params { · 31 unmodified lines | ||
| 578 | 584 | #define IORING_FEAT_RECVSEND_BUNDLE (1U << 14) |
| 579 | 585 | #define IORING_FEAT_MIN_TIMEOUT (1U << 15) |
| 580 | 586 | #define IORING_FEAT_RW_ATTR (1U << 16) |
| 587 | +#define IORING_FEAT_NO_IOWAIT (1U << 17) | |
| 581 | 588 | |
| 582 | 589 | /* |
| 583 | 590 | * io_uring_register(2) opcodes and arguments |
| @@ -639,7 +646,8 @@ enum io_uring_register_op { · 55 unmodified lines | ||
| 639 | 646 | /* send MSG_RING without having a ring */ |
| 640 | 647 | IORING_REGISTER_SEND_MSG_RING = 31, |
| 641 | 648 | |
| 642 | − /* 32 reserved for zc rx */ | |
| 649 | + /* register a netdev hw rx queue for zerocopy */ | |
| 650 | + IORING_REGISTER_ZCRX_IFQ = 32, | |
| 643 | 651 | |
| 644 | 652 | /* resize CQ ring */ |
| 645 | 653 | IORING_REGISTER_RESIZE_RINGS = 33, |
| @@ -956,6 +964,55 @@ enum io_uring_socket_op { · 310 unmodified lines | ||
| 956 | 964 | SOCKET_URING_OP_SETSOCKOPT, |
| 957 | 965 | }; |
| 958 | 966 | |
| 967 | +/* Zero copy receive refill queue entry */ | |
| 968 | +struct io_uring_zcrx_rqe { | |
| 969 | + __u64 off; | |
| 970 | + __u32 len; | |
| 971 | + __u32 __pad; | |
| 972 | +}; | |
| 973 | + | |
| 974 | +struct io_uring_zcrx_cqe { | |
| 975 | + __u64 off; | |
| 976 | + __u64 __pad; | |
| 977 | +}; | |
| 978 | + | |
| 979 | +/* The bit from which area id is encoded into offsets */ | |
| 980 | +#define IORING_ZCRX_AREA_SHIFT 48 | |
| 981 | +#define IORING_ZCRX_AREA_MASK (~(((__u64)1 << IORING_ZCRX_AREA_SHIFT) - 1)) | |
| 982 | + | |
| 983 | +struct io_uring_zcrx_offsets { | |
| 984 | + __u32 head; | |
| 985 | + __u32 tail; | |
| 986 | + __u32 rqes; | |
| 987 | + __u32 __resv2; | |
| 988 | + __u64 __resv[2]; | |
| 989 | +}; | |
| 990 | + | |
| 991 | +struct io_uring_zcrx_area_reg { | |
| 992 | + __u64 addr; | |
| 993 | + __u64 len; | |
| 994 | + __u64 rq_area_token; | |
| 995 | + __u32 flags; | |
| 996 | + __u32 __resv1; | |
| 997 | + __u64 __resv2[2]; | |
| 998 | +}; | |
| 999 | + | |
| 1000 | +/* | |
| 1001 | + * Argument for IORING_REGISTER_ZCRX_IFQ | |
| 1002 | + */ | |
| 1003 | +struct io_uring_zcrx_ifq_reg { | |
| 1004 | + __u32 if_idx; | |
| 1005 | + __u32 if_rxq; | |
| 1006 | + __u32 rq_entries; | |
| 1007 | + __u32 flags; | |
| 1008 | + | |
| 1009 | + __u64 area_ptr; /* pointer to struct io_uring_zcrx_area_reg */ | |
| 1010 | + __u64 region_ptr; /* struct io_uring_region_desc * */ | |
| 1011 | + | |
| 1012 | + struct io_uring_zcrx_offsets offsets; | |
| 1013 | + __u64 __resv[4]; | |
| 1014 | +}; | |
| 1015 | + | |
| 959 | 1016 | #ifdef __cplusplus |
| 960 | 1017 | } |
| 961 | 1018 | #endif |
| @@ -55,6 +55,7 @@ enum { · 54 unmodified lines | ||
| 55 | 55 | IOMMUFD_CMD_VIOMMU_ALLOC = 0x90, |
| 56 | 56 | IOMMUFD_CMD_VDEVICE_ALLOC = 0x91, |
| 57 | 57 | IOMMUFD_CMD_IOAS_CHANGE_PROCESS = 0x92, |
| 58 | + IOMMUFD_CMD_VEVENTQ_ALLOC = 0x93, | |
| 58 | 59 | }; |
| 59 | 60 | |
| 60 | 61 | /** |
| @@ -392,6 +393,9 @@ struct iommu_vfio_ioas { · 331 unmodified lines | ||
| 392 | 393 | * Any domain attached to the non-PASID part of the |
| 393 | 394 | * device must also be flagged, otherwise attaching a |
| 394 | 395 | * PASID will blocked. |
| 396 | + * For the user that wants to attach PASID, ioas is | |
| 397 | + * not recommended for both the non-PASID part | |
| 398 | + * and PASID part of the device. | |
| 395 | 399 | * If IOMMU does not support PASID it will return |
| 396 | 400 | * error (-EOPNOTSUPP). |
| 397 | 401 | */ |
| @@ -608,9 +612,17 @@ enum iommu_hw_info_type { · 210 unmodified lines | ||
| 608 | 612 | * IOMMU_HWPT_GET_DIRTY_BITMAP |
| 609 | 613 | * IOMMU_HWPT_SET_DIRTY_TRACKING |
| 610 | 614 | * |
| 615 | + * @IOMMU_HW_CAP_PCI_PASID_EXEC: Execute Permission Supported, user ignores it | |
| 616 | + * when the struct | |
| 617 | + * iommu_hw_info::out_max_pasid_log2 is zero. | |
| 618 | + * @IOMMU_HW_CAP_PCI_PASID_PRIV: Privileged Mode Supported, user ignores it | |
| 619 | + * when the struct | |
| 620 | + * iommu_hw_info::out_max_pasid_log2 is zero. | |
| 611 | 621 | */ |
| 612 | 622 | enum iommufd_hw_capabilities { |
| 613 | 623 | IOMMU_HW_CAP_DIRTY_TRACKING = 1 << 0, |
| 624 | + IOMMU_HW_CAP_PCI_PASID_EXEC = 1 << 1, | |
| 625 | + IOMMU_HW_CAP_PCI_PASID_PRIV = 1 << 2, | |
| 614 | 626 | }; |
| 615 | 627 | |
| 616 | 628 | /** |
| @@ -626,6 +638,9 @@ enum iommufd_hw_capabilities { · 9 unmodified lines | ||
| 626 | 638 | * iommu_hw_info_type. |
| 627 | 639 | * @out_capabilities: Output the generic iommu capability info type as defined |
| 628 | 640 | * in the enum iommu_hw_capabilities. |
| 641 | + * @out_max_pasid_log2: Output the width of PASIDs. 0 means no PASID support. | |
| 642 | + * PCI devices turn to out_capabilities to check if the | |
| 643 | + * specific capabilities is supported or not. | |
| 629 | 644 | * @__reserved: Must be 0 |
| 630 | 645 | * |
| 631 | 646 | * Query an iommu type specific hardware information data from an iommu behind |
| @@ -649,7 +664,8 @@ struct iommu_hw_info { · 17 unmodified lines | ||
| 649 | 664 | __u32 data_len; |
| 650 | 665 | __aligned_u64 data_uptr; |
| 651 | 666 | __u32 out_data_type; |
| 652 | − __u32 __reserved; | |
| 667 | + __u8 out_max_pasid_log2; | |
| 668 | + __u8 __reserved[3]; | |
| 653 | 669 | __aligned_u64 out_capabilities; |
| 654 | 670 | }; |
| 655 | 671 | #define IOMMU_GET_HW_INFO _IO(IOMMUFD_TYPE, IOMMUFD_CMD_GET_HW_INFO) |
| @@ -1014,4 +1030,115 @@ struct iommu_ioas_change_process { · 358 unmodified lines | ||
| 1014 | 1030 | #define IOMMU_IOAS_CHANGE_PROCESS \ |
| 1015 | 1031 | _IO(IOMMUFD_TYPE, IOMMUFD_CMD_IOAS_CHANGE_PROCESS) |
| 1016 | 1032 | |
| 1033 | +/** | |
| 1034 | + * enum iommu_veventq_flag - flag for struct iommufd_vevent_header | |
| 1035 | + * @IOMMU_VEVENTQ_FLAG_LOST_EVENTS: vEVENTQ has lost vEVENTs | |
| 1036 | + */ | |
| 1037 | +enum iommu_veventq_flag { | |
| 1038 | + IOMMU_VEVENTQ_FLAG_LOST_EVENTS = (1U << 0), | |
| 1039 | +}; | |
| 1040 | + | |
| 1041 | +/** | |
| 1042 | + * struct iommufd_vevent_header - Virtual Event Header for a vEVENTQ Status | |
| 1043 | + * @flags: Combination of enum iommu_veventq_flag | |
| 1044 | + * @sequence: The sequence index of a vEVENT in the vEVENTQ, with a range of | |
| 1045 | + * [0, INT_MAX] where the following index of INT_MAX is 0 | |
| 1046 | + * | |
| 1047 | + * Each iommufd_vevent_header reports a sequence index of the following vEVENT: | |
| 1048 | + * | |
| 1049 | + * +----------------------+-------+----------------------+-------+---+-------+ | |
| 1050 | + * | header0 {sequence=0} | data0 | header1 {sequence=1} | data1 |...| dataN | | |
| 1051 | + * +----------------------+-------+----------------------+-------+---+-------+ | |
| 1052 | + * | |
| 1053 | + * And this sequence index is expected to be monotonic to the sequence index of | |
| 1054 | + * the previous vEVENT. If two adjacent sequence indexes has a delta larger than | |
| 1055 | + * 1, it means that delta - 1 number of vEVENTs has lost, e.g. two lost vEVENTs: | |
| 1056 | + * | |
| 1057 | + * +-----+----------------------+-------+----------------------+-------+-----+ | |
| 1058 | + * | ... | header3 {sequence=3} | data3 | header6 {sequence=6} | data6 | ... | | |
| 1059 | + * +-----+----------------------+-------+----------------------+-------+-----+ | |
| 1060 | + * | |
| 1061 | + * If a vEVENT lost at the tail of the vEVENTQ and there is no following vEVENT | |
| 1062 | + * providing the next sequence index, an IOMMU_VEVENTQ_FLAG_LOST_EVENTS header | |
| 1063 | + * would be added to the tail, and no data would follow this header: | |
| 1064 | + * | |
| 1065 | + * +--+----------------------+-------+-----------------------------------------+ | |
| 1066 | + * |..| header3 {sequence=3} | data3 | header4 {flags=LOST_EVENTS, sequence=4} | | |
| 1067 | + * +--+----------------------+-------+-----------------------------------------+ | |
| 1068 | + */ | |
| 1069 | +struct iommufd_vevent_header { | |
| 1070 | + __u32 flags; | |
| 1071 | + __u32 sequence; | |
| 1072 | +}; | |
| 1073 | + | |
| 1074 | +/** | |
| 1075 | + * enum iommu_veventq_type - Virtual Event Queue Type | |
| 1076 | + * @IOMMU_VEVENTQ_TYPE_DEFAULT: Reserved for future use | |
| 1077 | + * @IOMMU_VEVENTQ_TYPE_ARM_SMMUV3: ARM SMMUv3 Virtual Event Queue | |
| 1078 | + */ | |
| 1079 | +enum iommu_veventq_type { | |
| 1080 | + IOMMU_VEVENTQ_TYPE_DEFAULT = 0, | |
| 1081 | + IOMMU_VEVENTQ_TYPE_ARM_SMMUV3 = 1, | |
| 1082 | +}; | |
| 1083 | + | |
| 1084 | +/** | |
| 1085 | + * struct iommu_vevent_arm_smmuv3 - ARM SMMUv3 Virtual Event | |
| 1086 | + * (IOMMU_VEVENTQ_TYPE_ARM_SMMUV3) | |
| 1087 | + * @evt: 256-bit ARM SMMUv3 Event record, little-endian. | |
| 1088 | + * Reported event records: (Refer to "7.3 Event records" in SMMUv3 HW Spec) | |
| 1089 | + * - 0x04 C_BAD_STE | |
| 1090 | + * - 0x06 F_STREAM_DISABLED | |
| 1091 | + * - 0x08 C_BAD_SUBSTREAMID | |
| 1092 | + * - 0x0a C_BAD_CD | |
| 1093 | + * - 0x10 F_TRANSLATION | |
| 1094 | + * - 0x11 F_ADDR_SIZE | |
| 1095 | + * - 0x12 F_ACCESS | |
| 1096 | + * - 0x13 F_PERMISSION | |
| 1097 | + * | |
| 1098 | + * StreamID field reports a virtual device ID. To receive a virtual event for a | |
| 1099 | + * device, a vDEVICE must be allocated via IOMMU_VDEVICE_ALLOC. | |
| 1100 | + */ | |
| 1101 | +struct iommu_vevent_arm_smmuv3 { | |
| 1102 | + __aligned_le64 evt[4]; | |
| 1103 | +}; | |
| 1104 | + | |
| 1105 | +/** | |
| 1106 | + * struct iommu_veventq_alloc - ioctl(IOMMU_VEVENTQ_ALLOC) | |
| 1107 | + * @size: sizeof(struct iommu_veventq_alloc) | |
| 1108 | + * @flags: Must be 0 | |
| 1109 | + * @viommu_id: virtual IOMMU ID to associate the vEVENTQ with | |
| 1110 | + * @type: Type of the vEVENTQ. Must be defined in enum iommu_veventq_type | |
| 1111 | + * @veventq_depth: Maximum number of events in the vEVENTQ | |
| 1112 | + * @out_veventq_id: The ID of the new vEVENTQ | |
| 1113 | + * @out_veventq_fd: The fd of the new vEVENTQ. User space must close the | |
| 1114 | + * successfully returned fd after using it | |
| 1115 | + * @__reserved: Must be 0 | |
| 1116 | + * | |
| 1117 | + * Explicitly allocate a virtual event queue interface for a vIOMMU. A vIOMMU | |
| 1118 | + * can have multiple FDs for different types, but is confined to one per @type. | |
| 1119 | + * User space should open the @out_veventq_fd to read vEVENTs out of a vEVENTQ, | |
| 1120 | + * if there are vEVENTs available. A vEVENTQ will lose events due to overflow, | |
| 1121 | + * if the number of the vEVENTs hits @veventq_depth. | |
| 1122 | + * | |
| 1123 | + * Each vEVENT in a vEVENTQ encloses a struct iommufd_vevent_header followed by | |
| 1124 | + * a type-specific data structure, in a normal case: | |
| 1125 | + * | |
| 1126 | + * +-+---------+-------+---------+-------+-----+---------+-------+-+ | |
| 1127 | + * | | header0 | data0 | header1 | data1 | ... | headerN | dataN | | | |
| 1128 | + * +-+---------+-------+---------+-------+-----+---------+-------+-+ | |
| 1129 | + * | |
| 1130 | + * unless a tailing IOMMU_VEVENTQ_FLAG_LOST_EVENTS header is logged (refer to | |
| 1131 | + * struct iommufd_vevent_header). | |
| 1132 | + */ | |
| 1133 | +struct iommu_veventq_alloc { | |
| 1134 | + __u32 size; | |
| 1135 | + __u32 flags; | |
| 1136 | + __u32 viommu_id; | |
| 1137 | + __u32 type; | |
| 1138 | + __u32 veventq_depth; | |
| 1139 | + __u32 out_veventq_id; | |
| 1140 | + __u32 out_veventq_fd; | |
| 1141 | + __u32 __reserved; | |
| 1142 | +}; | |
| 1143 | +#define IOMMU_VEVENTQ_ALLOC _IO(IOMMUFD_TYPE, IOMMUFD_CMD_VEVENTQ_ALLOC) | |
| 1017 | 1144 | #endif |
| @@ -43,9 +43,10 @@ · 42 unmodified lines | ||
| 43 | 43 | * - 1.15 - Enable managing mappings in compute VMs with GEM_VA ioctl |
| 44 | 44 | * - 1.16 - Add contiguous VRAM allocation flag |
| 45 | 45 | * - 1.17 - Add SDMA queue creation with target SDMA engine ID |
| 46 | + * - 1.18 - Rename pad in set_memory_policy_args to misc_process_flag | |
| 46 | 47 | */ |
| 47 | 48 | #define KFD_IOCTL_MAJOR_VERSION 1 |
| 48 | −#define KFD_IOCTL_MINOR_VERSION 17 | |
| 49 | +#define KFD_IOCTL_MINOR_VERSION 18 | |
| 49 | 50 | |
| 50 | 51 | struct kfd_ioctl_get_version_args { |
| 51 | 52 | __u32 major_version; /* from KFD */ |
| @@ -62,6 +63,8 @@ struct kfd_ioctl_get_version_args { · 10 unmodified lines | ||
| 62 | 63 | #define KFD_MAX_QUEUE_PERCENTAGE 100 |
| 63 | 64 | #define KFD_MAX_QUEUE_PRIORITY 15 |
| 64 | 65 | |
| 66 | +#define KFD_MIN_QUEUE_RING_SIZE 1024 | |
| 67 | + | |
| 65 | 68 | struct kfd_ioctl_create_queue_args { |
| 66 | 69 | __u64 ring_base_address; /* to KFD */ |
| 67 | 70 | __u64 write_pointer_address; /* from KFD */ |
| @@ -148,6 +151,9 @@ struct kfd_dbg_device_info_entry { · 80 unmodified lines | ||
| 148 | 151 | #define KFD_IOC_CACHE_POLICY_COHERENT 0 |
| 149 | 152 | #define KFD_IOC_CACHE_POLICY_NONCOHERENT 1 |
| 150 | 153 | |
| 154 | +/* Misc. per process flags */ | |
| 155 | +#define KFD_PROC_FLAG_MFMA_HIGH_PRECISION (1 << 0) | |
| 156 | + | |
| 151 | 157 | struct kfd_ioctl_set_memory_policy_args { |
| 152 | 158 | __u64 alternate_aperture_base; /* to KFD */ |
| 153 | 159 | __u64 alternate_aperture_size; /* to KFD */ |
| @@ -155,7 +161,7 @@ struct kfd_ioctl_set_memory_policy_args { · 1 unmodified line | ||
| 155 | 161 | __u32 gpu_id; /* to KFD */ |
| 156 | 162 | __u32 default_policy; /* to KFD */ |
| 157 | 163 | __u32 alternate_policy; /* to KFD */ |
| 158 | − __u32 pad; | |
| 164 | + __u32 misc_process_flag; /* to KFD */ | |
| 159 | 165 | }; |
| 160 | 166 | |
| 161 | 167 | /* |
| @@ -63,6 +63,9 @@ · 62 unmodified lines | ||
| 63 | 63 | #define HSA_CAP_PER_QUEUE_RESET_SUPPORTED 0x80000000 |
| 64 | 64 | #define HSA_CAP_RESERVED 0x000f8000 |
| 65 | 65 | |
| 66 | +#define HSA_CAP2_PER_SDMA_QUEUE_RESET_SUPPORTED 0x00000001 | |
| 67 | +#define HSA_CAP2_RESERVED 0xfffffffe | |
| 68 | + | |
| 66 | 69 | /* debug_prop bits in node properties */ |
| 67 | 70 | #define HSA_DBG_WATCH_ADDR_MASK_LO_BIT_MASK 0x0000000f |
| 68 | 71 | #define HSA_DBG_WATCH_ADDR_MASK_LO_BIT_SHIFT 0 |
| @@ -929,6 +929,7 @@ struct kvm_enable_cap { · 928 unmodified lines | ||
| 929 | 929 | #define KVM_CAP_PRE_FAULT_MEMORY 236 |
| 930 | 930 | #define KVM_CAP_X86_APIC_BUS_CYCLES_NS 237 |
| 931 | 931 | #define KVM_CAP_X86_GUEST_MODE 238 |
| 932 | +#define KVM_CAP_ARM_WRITABLE_IMP_ID_REGS 239 | |
| 932 | 933 | |
| 933 | 934 | struct kvm_irq_routing_irqchip { |
| 934 | 935 | __u32 irqchip; |
| @@ -4,6 +4,7 @@ · 3 unmodified lines | ||
| 4 | 4 | * |
| 5 | 5 | * Copyright © 2017-2020 Mickaël Salaün <mic@digikod.net> |
| 6 | 6 | * Copyright © 2018-2020 ANSSI |
| 7 | + * Copyright © 2021-2025 Microsoft Corporation | |
| 7 | 8 | */ |
| 8 | 9 | |
| 9 | 10 | #ifndef _UAPI_LINUX_LANDLOCK_H |
| @@ -57,9 +58,43 @@ struct landlock_ruleset_attr { · 47 unmodified lines | ||
| 57 | 58 | * |
| 58 | 59 | * - %LANDLOCK_CREATE_RULESET_VERSION: Get the highest supported Landlock ABI |
| 59 | 60 | * version. |
| 61 | + * - %LANDLOCK_CREATE_RULESET_ERRATA: Get a bitmask of fixed issues. | |
| 60 | 62 | */ |
| 61 | 63 | /* clang-format off */ |
| 62 | 64 | #define LANDLOCK_CREATE_RULESET_VERSION (1U << 0) |
| 65 | +#define LANDLOCK_CREATE_RULESET_ERRATA (1U << 1) | |
| 66 | +/* clang-format on */ | |
| 67 | + | |
| 68 | +/* | |
| 69 | + * sys_landlock_restrict_self() flags: | |
| 70 | + * | |
| 71 | + * - %LANDLOCK_RESTRICT_SELF_LOG_SAME_EXEC_OFF: Do not create any log related to the | |
| 72 | + * enforced restrictions. This should only be set by tools launching unknown | |
| 73 | + * or untrusted programs (e.g. a sandbox tool, container runtime, system | |
| 74 | + * service manager). Because programs sandboxing themselves should fix any | |
| 75 | + * denied access, they should not set this flag to be aware of potential | |
| 76 | + * issues reported by system's logs (i.e. audit). | |
| 77 | + * - %LANDLOCK_RESTRICT_SELF_LOG_NEW_EXEC_ON: Explicitly ask to continue | |
| 78 | + * logging denied access requests even after an :manpage:`execve(2)` call. | |
| 79 | + * This flag should only be set if all the programs than can legitimately be | |
| 80 | + * executed will not try to request a denied access (which could spam audit | |
| 81 | + * logs). | |
| 82 | + * - %LANDLOCK_RESTRICT_SELF_LOG_SUBDOMAINS_OFF: Do not create any log related | |
| 83 | + * to the enforced restrictions coming from future nested domains created by | |
| 84 | + * the caller or its descendants. This should only be set according to a | |
| 85 | + * runtime configuration (i.e. not hardcoded) by programs launching other | |
| 86 | + * unknown or untrusted programs that may create their own Landlock domains | |
| 87 | + * and spam logs. The main use case is for container runtimes to enable users | |
| 88 | + * to mute buggy sandboxed programs for a specific container image. Other use | |
| 89 | + * cases include sandboxer tools and init systems. Unlike | |
| 90 | + * %LANDLOCK_RESTRICT_SELF_LOG_SAME_EXEC_OFF, | |
| 91 | + * %LANDLOCK_RESTRICT_SELF_LOG_SUBDOMAINS_OFF does not impact the requested | |
| 92 | + * restriction (if any) but only the future nested domains. | |
| 93 | + */ | |
| 94 | +/* clang-format off */ | |
| 95 | +#define LANDLOCK_RESTRICT_SELF_LOG_SAME_EXEC_OFF (1U << 0) | |
| 96 | +#define LANDLOCK_RESTRICT_SELF_LOG_NEW_EXEC_ON (1U << 1) | |
| 97 | +#define LANDLOCK_RESTRICT_SELF_LOG_SUBDOMAINS_OFF (1U << 2) | |
| 63 | 98 | /* clang-format on */ |
| 64 | 99 | |
| 65 | 100 | /** |
| @@ -268,7 +303,9 @@ struct landlock_net_port_attr { · 202 unmodified lines | ||
| 268 | 303 | * ~~~~~~~~~~~~~~~~ |
| 269 | 304 | * |
| 270 | 305 | * These flags enable to restrict a sandboxed process to a set of network |
| 271 | − * actions. This is supported since the Landlock ABI version 4. | |
| 306 | + * actions. | |
| 307 | + * | |
| 308 | + * This is supported since Landlock ABI version 4. | |
| 272 | 309 | * |
| 273 | 310 | * The following access rights apply to TCP port numbers: |
| 274 | 311 | * |
| @@ -291,11 +328,13 @@ struct landlock_net_port_attr { · 16 unmodified lines | ||
| 291 | 328 | * Setting a flag for a ruleset will isolate the Landlock domain to forbid |
| 292 | 329 | * connections to resources outside the domain. |
| 293 | 330 | * |
| 331 | + * This is supported since Landlock ABI version 6. | |
| 332 | + * | |
| 294 | 333 | * Scopes: |
| 295 | 334 | * |
| 296 | 335 | * - %LANDLOCK_SCOPE_ABSTRACT_UNIX_SOCKET: Restrict a sandboxed process from |
| 297 | 336 | * connecting to an abstract UNIX socket created by a process outside the |
| 298 | − * related Landlock domain (e.g. a parent domain or a non-sandboxed process). | |
| 337 | + * related Landlock domain (e.g., a parent domain or a non-sandboxed process). | |
| 299 | 338 | * - %LANDLOCK_SCOPE_SIGNAL: Restrict a sandboxed process from sending a signal |
| 300 | 339 | * to another process outside the domain. |
| 301 | 340 | */ |
| @@ -0,0 +1,29 @@ | ||
| 1 | +/* SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause) */ | |
| 2 | +/* Do not edit directly, auto-generated from: */ | |
| 3 | +/* Documentation/netlink/specs/lockd.yaml */ | |
| 4 | +/* YNL-GEN uapi header */ | |
| 5 | + | |
| 6 | +#ifndef _UAPI_LINUX_LOCKD_NETLINK_H | |
| 7 | +#define _UAPI_LINUX_LOCKD_NETLINK_H | |
| 8 | + | |
| 9 | +#define LOCKD_FAMILY_NAME "lockd" | |
| 10 | +#define LOCKD_FAMILY_VERSION 1 | |
| 11 | + | |
| 12 | +enum { | |
| 13 | + LOCKD_A_SERVER_GRACETIME = 1, | |
| 14 | + LOCKD_A_SERVER_TCP_PORT, | |
| 15 | + LOCKD_A_SERVER_UDP_PORT, | |
| 16 | + | |
| 17 | + __LOCKD_A_SERVER_MAX, | |
| 18 | + LOCKD_A_SERVER_MAX = (__LOCKD_A_SERVER_MAX - 1) | |
| 19 | +}; | |
| 20 | + | |
| 21 | +enum { | |
| 22 | + LOCKD_CMD_SERVER_SET = 1, | |
| 23 | + LOCKD_CMD_SERVER_GET, | |
| 24 | + | |
| 25 | + __LOCKD_CMD_MAX, | |
| 26 | + LOCKD_CMD_MAX = (__LOCKD_CMD_MAX - 1) | |
| 27 | +}; | |
| 28 | + | |
| 29 | +#endif /* _UAPI_LINUX_LOCKD_NETLINK_H */ | |
| @@ -179,7 +179,12 @@ struct statmount { · 178 unmodified lines | ||
| 179 | 179 | __u32 opt_array; /* [str] Array of nul terminated fs options */ |
| 180 | 180 | __u32 opt_sec_num; /* Number of security options */ |
| 181 | 181 | __u32 opt_sec_array; /* [str] Array of nul terminated security options */ |
| 182 | − __u64 __spare2[46]; | |
| 182 | + __u64 supported_mask; /* Mask flags that this kernel supports */ | |
| 183 | + __u32 mnt_uidmap_num; /* Number of uid mappings */ | |
| 184 | + __u32 mnt_uidmap; /* [str] Array of uid mappings (as seen from callers namespace) */ | |
| 185 | + __u32 mnt_gidmap_num; /* Number of gid mappings */ | |
| 186 | + __u32 mnt_gidmap; /* [str] Array of gid mappings (as seen from callers namespace) */ | |
| 187 | + __u64 __spare2[43]; | |
| 183 | 188 | char str[]; /* Variable size part containing strings */ |
| 184 | 189 | }; |
| 185 | 190 | |
| @@ -217,6 +222,9 @@ struct mnt_id_req { · 31 unmodified lines | ||
| 217 | 222 | #define STATMOUNT_SB_SOURCE 0x00000200U /* Want/got sb_source */ |
| 218 | 223 | #define STATMOUNT_OPT_ARRAY 0x00000400U /* Want/got opt_... */ |
| 219 | 224 | #define STATMOUNT_OPT_SEC_ARRAY 0x00000800U /* Want/got opt_sec... */ |
| 225 | +#define STATMOUNT_SUPPORTED_MASK 0x00001000U /* Want/got supported mask flags */ | |
| 226 | +#define STATMOUNT_MNT_UIDMAP 0x00002000U /* Want/got uidmap... */ | |
| 227 | +#define STATMOUNT_MNT_GIDMAP 0x00004000U /* Want/got gidmap... */ | |
| 220 | 228 | |
| 221 | 229 | /* |
| 222 | 230 | * Special @mnt_id values that can be passed to listmount |
| @@ -0,0 +1,291 @@ | ||
| 1 | +/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ | |
| 2 | +/* | |
| 3 | + * Userspace interfaces for /dev/mshv* devices and derived fds | |
| 4 | + * | |
| 5 | + * This file is divided into sections containing data structures and IOCTLs for | |
| 6 | + * a particular set of related devices or derived file descriptors. | |
| 7 | + * | |
| 8 | + * The IOCTL definitions are at the end of each section. They are grouped by | |
| 9 | + * device/fd, so that new IOCTLs can easily be added with a monotonically | |
| 10 | + * increasing number. | |
| 11 | + */ | |
| 12 | +#ifndef _UAPI_LINUX_MSHV_H | |
| 13 | +#define _UAPI_LINUX_MSHV_H | |
| 14 | + | |
| 15 | +#include <linux/types.h> | |
| 16 | + | |
| 17 | +#define MSHV_IOCTL 0xB8 | |
| 18 | + | |
| 19 | +/* | |
| 20 | + ******************************************* | |
| 21 | + * Entry point to main VMM APIs: /dev/mshv * | |
| 22 | + ******************************************* | |
| 23 | + */ | |
| 24 | + | |
| 25 | +enum { | |
| 26 | + MSHV_PT_BIT_LAPIC, | |
| 27 | + MSHV_PT_BIT_X2APIC, | |
| 28 | + MSHV_PT_BIT_GPA_SUPER_PAGES, | |
| 29 | + MSHV_PT_BIT_COUNT, | |
| 30 | +}; | |
| 31 | + | |
| 32 | +#define MSHV_PT_FLAGS_MASK ((1 << MSHV_PT_BIT_COUNT) - 1) | |
| 33 | + | |
| 34 | +enum { | |
| 35 | + MSHV_PT_ISOLATION_NONE, | |
| 36 | + MSHV_PT_ISOLATION_COUNT, | |
| 37 | +}; | |
| 38 | + | |
| 39 | +/** | |
| 40 | + * struct mshv_create_partition - arguments for MSHV_CREATE_PARTITION | |
| 41 | + * @pt_flags: Bitmask of 1 << MSHV_PT_BIT_* | |
| 42 | + * @pt_isolation: MSHV_PT_ISOLATION_* | |
| 43 | + * | |
| 44 | + * Returns a file descriptor to act as a handle to a guest partition. | |
| 45 | + * At this point the partition is not yet initialized in the hypervisor. | |
| 46 | + * Some operations must be done with the partition in this state, e.g. setting | |
| 47 | + * so-called "early" partition properties. The partition can then be | |
| 48 | + * initialized with MSHV_INITIALIZE_PARTITION. | |
| 49 | + */ | |
| 50 | +struct mshv_create_partition { | |
| 51 | + __u64 pt_flags; | |
| 52 | + __u64 pt_isolation; | |
| 53 | +}; | |
| 54 | + | |
| 55 | +/* /dev/mshv */ | |
| 56 | +#define MSHV_CREATE_PARTITION _IOW(MSHV_IOCTL, 0x00, struct mshv_create_partition) | |
| 57 | + | |
| 58 | +/* | |
| 59 | + ************************ | |
| 60 | + * Child partition APIs * | |
| 61 | + ************************ | |
| 62 | + */ | |
| 63 | + | |
| 64 | +struct mshv_create_vp { | |
| 65 | + __u32 vp_index; | |
| 66 | +}; | |
| 67 | + | |
| 68 | +enum { | |
| 69 | + MSHV_SET_MEM_BIT_WRITABLE, | |
| 70 | + MSHV_SET_MEM_BIT_EXECUTABLE, | |
| 71 | + MSHV_SET_MEM_BIT_UNMAP, | |
| 72 | + MSHV_SET_MEM_BIT_COUNT | |
| 73 | +}; | |
| 74 | + | |
| 75 | +#define MSHV_SET_MEM_FLAGS_MASK ((1 << MSHV_SET_MEM_BIT_COUNT) - 1) | |
| 76 | + | |
| 77 | +/* The hypervisor's "native" page size */ | |
| 78 | +#define MSHV_HV_PAGE_SIZE 0x1000 | |
| 79 | + | |
| 80 | +/** | |
| 81 | + * struct mshv_user_mem_region - arguments for MSHV_SET_GUEST_MEMORY | |
| 82 | + * @size: Size of the memory region (bytes). Must be aligned to | |
| 83 | + * MSHV_HV_PAGE_SIZE | |
| 84 | + * @guest_pfn: Base guest page number to map | |
| 85 | + * @userspace_addr: Base address of userspace memory. Must be aligned to | |
| 86 | + * MSHV_HV_PAGE_SIZE | |
| 87 | + * @flags: Bitmask of 1 << MSHV_SET_MEM_BIT_*. If (1 << MSHV_SET_MEM_BIT_UNMAP) | |
| 88 | + * is set, ignore other bits. | |
| 89 | + * @rsvd: MBZ | |
| 90 | + * | |
| 91 | + * Map or unmap a region of userspace memory to Guest Physical Addresses (GPA). | |
| 92 | + * Mappings can't overlap in GPA space or userspace. | |
| 93 | + * To unmap, these fields must match an existing mapping. | |
| 94 | + */ | |
| 95 | +struct mshv_user_mem_region { | |
| 96 | + __u64 size; | |
| 97 | + __u64 guest_pfn; | |
| 98 | + __u64 userspace_addr; | |
| 99 | + __u8 flags; | |
| 100 | + __u8 rsvd[7]; | |
| 101 | +}; | |
| 102 | + | |
| 103 | +enum { | |
| 104 | + MSHV_IRQFD_BIT_DEASSIGN, | |
| 105 | + MSHV_IRQFD_BIT_RESAMPLE, | |
| 106 | + MSHV_IRQFD_BIT_COUNT, | |
| 107 | +}; | |
| 108 | + | |
| 109 | +#define MSHV_IRQFD_FLAGS_MASK ((1 << MSHV_IRQFD_BIT_COUNT) - 1) | |
| 110 | + | |
| 111 | +struct mshv_user_irqfd { | |
| 112 | + __s32 fd; | |
| 113 | + __s32 resamplefd; | |
| 114 | + __u32 gsi; | |
| 115 | + __u32 flags; | |
| 116 | +}; | |
| 117 | + | |
| 118 | +enum { | |
| 119 | + MSHV_IOEVENTFD_BIT_DATAMATCH, | |
| 120 | + MSHV_IOEVENTFD_BIT_PIO, | |
| 121 | + MSHV_IOEVENTFD_BIT_DEASSIGN, | |
| 122 | + MSHV_IOEVENTFD_BIT_COUNT, | |
| 123 | +}; | |
| 124 | + | |
| 125 | +#define MSHV_IOEVENTFD_FLAGS_MASK ((1 << MSHV_IOEVENTFD_BIT_COUNT) - 1) | |
| 126 | + | |
| 127 | +struct mshv_user_ioeventfd { | |
| 128 | + __u64 datamatch; | |
| 129 | + __u64 addr; /* legal pio/mmio address */ | |
| 130 | + __u32 len; /* 1, 2, 4, or 8 bytes */ | |
| 131 | + __s32 fd; | |
| 132 | + __u32 flags; | |
| 133 | + __u8 rsvd[4]; | |
| 134 | +}; | |
| 135 | + | |
| 136 | +struct mshv_user_irq_entry { | |
| 137 | + __u32 gsi; | |
| 138 | + __u32 address_lo; | |
| 139 | + __u32 address_hi; | |
| 140 | + __u32 data; | |
| 141 | +}; | |
| 142 | + | |
| 143 | +struct mshv_user_irq_table { | |
| 144 | + __u32 nr; | |
| 145 | + __u32 rsvd; /* MBZ */ | |
| 146 | + struct mshv_user_irq_entry entries[]; | |
| 147 | +}; | |
| 148 | + | |
| 149 | +enum { | |
| 150 | + MSHV_GPAP_ACCESS_TYPE_ACCESSED, | |
| 151 | + MSHV_GPAP_ACCESS_TYPE_DIRTY, | |
| 152 | + MSHV_GPAP_ACCESS_TYPE_COUNT /* Count of enum members */ | |
| 153 | +}; | |
| 154 | + | |
| 155 | +enum { | |
| 156 | + MSHV_GPAP_ACCESS_OP_NOOP, | |
| 157 | + MSHV_GPAP_ACCESS_OP_CLEAR, | |
| 158 | + MSHV_GPAP_ACCESS_OP_SET, | |
| 159 | + MSHV_GPAP_ACCESS_OP_COUNT /* Count of enum members */ | |
| 160 | +}; | |
| 161 | + | |
| 162 | +/** | |
| 163 | + * struct mshv_gpap_access_bitmap - arguments for MSHV_GET_GPAP_ACCESS_BITMAP | |
| 164 | + * @access_type: MSHV_GPAP_ACCESS_TYPE_* - The type of access to record in the | |
| 165 | + * bitmap | |
| 166 | + * @access_op: MSHV_GPAP_ACCESS_OP_* - Allows an optional clear or set of all | |
| 167 | + * the access states in the range, after retrieving the current | |
| 168 | + * states. | |
| 169 | + * @rsvd: MBZ | |
| 170 | + * @page_count: Number of pages | |
| 171 | + * @gpap_base: Base gpa page number | |
| 172 | + * @bitmap_ptr: Output buffer for bitmap, at least (page_count + 7) / 8 bytes | |
| 173 | + * | |
| 174 | + * Retrieve a bitmap of either ACCESSED or DIRTY bits for a given range of guest | |
| 175 | + * memory, and optionally clear or set the bits. | |
| 176 | + */ | |
| 177 | +struct mshv_gpap_access_bitmap { | |
| 178 | + __u8 access_type; | |
| 179 | + __u8 access_op; | |
| 180 | + __u8 rsvd[6]; | |
| 181 | + __u64 page_count; | |
| 182 | + __u64 gpap_base; | |
| 183 | + __u64 bitmap_ptr; | |
| 184 | +}; | |
| 185 | + | |
| 186 | +/** | |
| 187 | + * struct mshv_root_hvcall - arguments for MSHV_ROOT_HVCALL | |
| 188 | + * @code: Hypercall code (HVCALL_*) | |
| 189 | + * @reps: in: Rep count ('repcount') | |
| 190 | + * out: Reps completed ('repcomp'). MBZ unless rep hvcall | |
| 191 | + * @in_sz: Size of input incl rep data. <= MSHV_HV_PAGE_SIZE | |
| 192 | + * @out_sz: Size of output buffer. <= MSHV_HV_PAGE_SIZE. MBZ if out_ptr is 0 | |
| 193 | + * @status: in: MBZ | |
| 194 | + * out: HV_STATUS_* from hypercall | |
| 195 | + * @rsvd: MBZ | |
| 196 | + * @in_ptr: Input data buffer (struct hv_input_*). If used with partition or | |
| 197 | + * vp fd, partition id field is populated by kernel. | |
| 198 | + * @out_ptr: Output data buffer (optional) | |
| 199 | + */ | |
| 200 | +struct mshv_root_hvcall { | |
| 201 | + __u16 code; | |
| 202 | + __u16 reps; | |
| 203 | + __u16 in_sz; | |
| 204 | + __u16 out_sz; | |
| 205 | + __u16 status; | |
| 206 | + __u8 rsvd[6]; | |
| 207 | + __u64 in_ptr; | |
| 208 | + __u64 out_ptr; | |
| 209 | +}; | |
| 210 | + | |
| 211 | +/* Partition fds created with MSHV_CREATE_PARTITION */ | |
| 212 | +#define MSHV_INITIALIZE_PARTITION _IO(MSHV_IOCTL, 0x00) | |
| 213 | +#define MSHV_CREATE_VP _IOW(MSHV_IOCTL, 0x01, struct mshv_create_vp) | |
| 214 | +#define MSHV_SET_GUEST_MEMORY _IOW(MSHV_IOCTL, 0x02, struct mshv_user_mem_region) | |
| 215 | +#define MSHV_IRQFD _IOW(MSHV_IOCTL, 0x03, struct mshv_user_irqfd) | |
| 216 | +#define MSHV_IOEVENTFD _IOW(MSHV_IOCTL, 0x04, struct mshv_user_ioeventfd) | |
| 217 | +#define MSHV_SET_MSI_ROUTING _IOW(MSHV_IOCTL, 0x05, struct mshv_user_irq_table) | |
| 218 | +#define MSHV_GET_GPAP_ACCESS_BITMAP _IOWR(MSHV_IOCTL, 0x06, struct mshv_gpap_access_bitmap) | |
| 219 | +/* Generic hypercall */ | |
| 220 | +#define MSHV_ROOT_HVCALL _IOWR(MSHV_IOCTL, 0x07, struct mshv_root_hvcall) | |
| 221 | + | |
| 222 | +/* | |
| 223 | + ******************************** | |
| 224 | + * VP APIs for child partitions * | |
| 225 | + ******************************** | |
| 226 | + */ | |
| 227 | + | |
| 228 | +#define MSHV_RUN_VP_BUF_SZ 256 | |
| 229 | + | |
| 230 | +/* | |
| 231 | + * VP state pages may be mapped to userspace via mmap(). | |
| 232 | + * To specify which state page, use MSHV_VP_MMAP_OFFSET_ values multiplied by | |
| 233 | + * the system page size. | |
| 234 | + * e.g. | |
| 235 | + * long page_size = sysconf(_SC_PAGE_SIZE); | |
| 236 | + * void *reg_page = mmap(NULL, MSHV_HV_PAGE_SIZE, PROT_READ|PROT_WRITE, | |
| 237 | + * MAP_SHARED, vp_fd, | |
| 238 | + * MSHV_VP_MMAP_OFFSET_REGISTERS * page_size); | |
| 239 | + */ | |
| 240 | +enum { | |
| 241 | + MSHV_VP_MMAP_OFFSET_REGISTERS, | |
| 242 | + MSHV_VP_MMAP_OFFSET_INTERCEPT_MESSAGE, | |
| 243 | + MSHV_VP_MMAP_OFFSET_GHCB, | |
| 244 | + MSHV_VP_MMAP_OFFSET_COUNT | |
| 245 | +}; | |
| 246 | + | |
| 247 | +/** | |
| 248 | + * struct mshv_run_vp - argument for MSHV_RUN_VP | |
| 249 | + * @msg_buf: On success, the intercept message is copied here. It can be | |
| 250 | + * interpreted using the relevant hypervisor definitions. | |
| 251 | + */ | |
| 252 | +struct mshv_run_vp { | |
| 253 | + __u8 msg_buf[MSHV_RUN_VP_BUF_SZ]; | |
| 254 | +}; | |
| 255 | + | |
| 256 | +enum { | |
| 257 | + MSHV_VP_STATE_LAPIC, /* Local interrupt controller state (either arch) */ | |
| 258 | + MSHV_VP_STATE_XSAVE, /* XSAVE data in compacted form (x86_64) */ | |
| 259 | + MSHV_VP_STATE_SIMP, | |
| 260 | + MSHV_VP_STATE_SIEFP, | |
| 261 | + MSHV_VP_STATE_SYNTHETIC_TIMERS, | |
| 262 | + MSHV_VP_STATE_COUNT, | |
| 263 | +}; | |
| 264 | + | |
| 265 | +/** | |
| 266 | + * struct mshv_get_set_vp_state - arguments for MSHV_[GET,SET]_VP_STATE | |
| 267 | + * @type: MSHV_VP_STATE_* | |
| 268 | + * @rsvd: MBZ | |
| 269 | + * @buf_sz: in: 4k page-aligned size of buffer | |
| 270 | + * out: Actual size of data (on EINVAL, check this to see if buffer | |
| 271 | + * was too small) | |
| 272 | + * @buf_ptr: 4k page-aligned data buffer | |
| 273 | + */ | |
| 274 | +struct mshv_get_set_vp_state { | |
| 275 | + __u8 type; | |
| 276 | + __u8 rsvd[3]; | |
| 277 | + __u32 buf_sz; | |
| 278 | + __u64 buf_ptr; | |
| 279 | +}; | |
| 280 | + | |
| 281 | +/* VP fds created with MSHV_CREATE_VP */ | |
| 282 | +#define MSHV_RUN_VP _IOR(MSHV_IOCTL, 0x00, struct mshv_run_vp) | |
| 283 | +#define MSHV_GET_VP_STATE _IOWR(MSHV_IOCTL, 0x01, struct mshv_get_set_vp_state) | |
| 284 | +#define MSHV_SET_VP_STATE _IOWR(MSHV_IOCTL, 0x02, struct mshv_get_set_vp_state) | |
| 285 | +/* | |
| 286 | + * Generic hypercall | |
| 287 | + * Defined above in partition IOCTLs, avoid redefining it here | |
| 288 | + * #define MSHV_ROOT_HVCALL _IOWR(MSHV_IOCTL, 0x07, struct mshv_root_hvcall) | |
| 289 | + */ | |
| 290 | + | |
| 291 | +#endif | |
| @@ -44,8 +44,9 @@ enum { · 43 unmodified lines | ||
| 44 | 44 | SOF_TIMESTAMPING_BIND_PHC = (1 << 15), |
| 45 | 45 | SOF_TIMESTAMPING_OPT_ID_TCP = (1 << 16), |
| 46 | 46 | SOF_TIMESTAMPING_OPT_RX_FILTER = (1 << 17), |
| 47 | + SOF_TIMESTAMPING_TX_COMPLETION = (1 << 18), | |
| 47 | 48 | |
| 48 | − SOF_TIMESTAMPING_LAST = SOF_TIMESTAMPING_OPT_RX_FILTER, | |
| 49 | + SOF_TIMESTAMPING_LAST = SOF_TIMESTAMPING_TX_COMPLETION, | |
| 49 | 50 | SOF_TIMESTAMPING_MASK = (SOF_TIMESTAMPING_LAST - 1) | |
| 50 | 51 | SOF_TIMESTAMPING_LAST |
| 51 | 52 | }; |
| @@ -58,7 +59,8 @@ enum { · 6 unmodified lines | ||
| 58 | 59 | #define SOF_TIMESTAMPING_TX_RECORD_MASK (SOF_TIMESTAMPING_TX_HARDWARE | \ |
| 59 | 60 | SOF_TIMESTAMPING_TX_SOFTWARE | \ |
| 60 | 61 | SOF_TIMESTAMPING_TX_SCHED | \ |
| 61 | − SOF_TIMESTAMPING_TX_ACK) | |
| 62 | + SOF_TIMESTAMPING_TX_ACK | \ | |
| 63 | + SOF_TIMESTAMPING_TX_COMPLETION) | |
| 62 | 64 | |
| 63 | 65 | /** |
| 64 | 66 | * struct so_timestamping - SO_TIMESTAMPING parameter |
| @@ -59,10 +59,13 @@ enum netdev_xdp_rx_metadata { · 58 unmodified lines | ||
| 59 | 59 | * by the driver. |
| 60 | 60 | * @NETDEV_XSK_FLAGS_TX_CHECKSUM: L3 checksum HW offload is supported by the |
| 61 | 61 | * driver. |
| 62 | + * @NETDEV_XSK_FLAGS_TX_LAUNCH_TIME_FIFO: Launch time HW offload is supported | |
| 63 | + * by the driver. | |
| 62 | 64 | */ |
| 63 | 65 | enum netdev_xsk_flags { |
| 64 | 66 | NETDEV_XSK_FLAGS_TX_TIMESTAMP = 1, |
| 65 | 67 | NETDEV_XSK_FLAGS_TX_CHECKSUM = 2, |
| 68 | + NETDEV_XSK_FLAGS_TX_LAUNCH_TIME_FIFO = 4, | |
| 66 | 69 | }; |
| 67 | 70 | |
| 68 | 71 | enum netdev_queue_type { |
| @@ -86,6 +89,11 @@ enum { · 17 unmodified lines | ||
| 86 | 89 | NETDEV_A_DEV_MAX = (__NETDEV_A_DEV_MAX - 1) |
| 87 | 90 | }; |
| 88 | 91 | |
| 92 | +enum { | |
| 93 | + __NETDEV_A_IO_URING_PROVIDER_INFO_MAX, | |
| 94 | + NETDEV_A_IO_URING_PROVIDER_INFO_MAX = (__NETDEV_A_IO_URING_PROVIDER_INFO_MAX - 1) | |
| 95 | +}; | |
| 96 | + | |
| 89 | 97 | enum { |
| 90 | 98 | NETDEV_A_PAGE_POOL_ID = 1, |
| 91 | 99 | NETDEV_A_PAGE_POOL_IFINDEX, |
| @@ -94,6 +102,7 @@ enum { · 2 unmodified lines | ||
| 94 | 102 | NETDEV_A_PAGE_POOL_INFLIGHT_MEM, |
| 95 | 103 | NETDEV_A_PAGE_POOL_DETACH_TIME, |
| 96 | 104 | NETDEV_A_PAGE_POOL_DMABUF, |
| 105 | + NETDEV_A_PAGE_POOL_IO_URING, | |
| 97 | 106 | |
| 98 | 107 | __NETDEV_A_PAGE_POOL_MAX, |
| 99 | 108 | NETDEV_A_PAGE_POOL_MAX = (__NETDEV_A_PAGE_POOL_MAX - 1) |
| @@ -130,12 +139,19 @@ enum { · 30 unmodified lines | ||
| 130 | 139 | NETDEV_A_NAPI_MAX = (__NETDEV_A_NAPI_MAX - 1) |
| 131 | 140 | }; |
| 132 | 141 | |
| 142 | +enum { | |
| 143 | + __NETDEV_A_XSK_INFO_MAX, | |
| 144 | + NETDEV_A_XSK_INFO_MAX = (__NETDEV_A_XSK_INFO_MAX - 1) | |
| 145 | +}; | |
| 146 | + | |
| 133 | 147 | enum { |
| 134 | 148 | NETDEV_A_QUEUE_ID = 1, |
| 135 | 149 | NETDEV_A_QUEUE_IFINDEX, |
| 136 | 150 | NETDEV_A_QUEUE_TYPE, |
| 137 | 151 | NETDEV_A_QUEUE_NAPI_ID, |
| 138 | 152 | NETDEV_A_QUEUE_DMABUF, |
| 153 | + NETDEV_A_QUEUE_IO_URING, | |
| 154 | + NETDEV_A_QUEUE_XSK, | |
| 139 | 155 | |
| 140 | 156 | __NETDEV_A_QUEUE_MAX, |
| 141 | 157 | NETDEV_A_QUEUE_MAX = (__NETDEV_A_QUEUE_MAX - 1) |
| @@ -188,7 +188,8 @@ struct nilfs_super_block { · 187 unmodified lines | ||
| 188 | 188 | __le16 s_segment_usage_size; /* Size of a segment usage */ |
| 189 | 189 | |
| 190 | 190 | /*98*/ __u8 s_uuid[16]; /* 128-bit uuid for volume */ |
| 191 | −/*A8*/ char s_volume_name[80]; /* volume name */ | |
| 191 | +/*A8*/ char s_volume_name[80] /* volume name */ | |
| 192 | + __kernel_nonstring; | |
| 192 | 193 | |
| 193 | 194 | /*F8*/ __le32 s_c_interval; /* Commit interval of segment */ |
| 194 | 195 | __le32 s_c_block_max; /* |
| @@ -11,7 +11,7 @@ · 10 unmodified lines | ||
| 11 | 11 | * Copyright 2008 Jouni Malinen <jouni.malinen@atheros.com> |
| 12 | 12 | * Copyright 2008 Colin McCabe <colin@cozybit.com> |
| 13 | 13 | * Copyright 2015-2017 Intel Deutschland GmbH |
| 14 | − * Copyright (C) 2018-2024 Intel Corporation | |
| 14 | + * Copyright (C) 2018-2025 Intel Corporation | |
| 15 | 15 | * |
| 16 | 16 | * Permission to use, copy, modify, and/or distribute this software for any |
| 17 | 17 | * purpose with or without fee is hereby granted, provided that the above |
| @@ -2881,9 +2881,9 @@ enum nl80211_commands { · 2863 unmodified lines | ||
| 2881 | 2881 | * @NL80211_ATTR_VIF_RADIO_MASK: Bitmask of allowed radios (u32). |
| 2882 | 2882 | * A value of 0 means all radios. |
| 2883 | 2883 | * |
| 2884 | − * @NL80211_ATTR_SUPPORTED_SELECTORS: supported selectors, array of | |
| 2885 | − * supported selectors as defined by IEEE 802.11 7.3.2.2 but without the | |
| 2886 | − * length restriction (at most %NL80211_MAX_SUPP_SELECTORS). | |
| 2884 | + * @NL80211_ATTR_SUPPORTED_SELECTORS: supported BSS Membership Selectors, array | |
| 2885 | + * of supported selectors as defined by IEEE Std 802.11-2020 9.4.2.3 but | |
| 2886 | + * without the length restriction (at most %NL80211_MAX_SUPP_SELECTORS). | |
| 2887 | 2887 | * This can be used to provide a list of selectors that are implemented |
| 2888 | 2888 | * by the supplicant. If not given, support for SAE_H2E is assumed. |
| 2889 | 2889 | * |
| @@ -2893,6 +2893,12 @@ enum nl80211_commands { · 3 unmodified lines | ||
| 2893 | 2893 | * @NL80211_ATTR_EPCS: Flag attribute indicating that EPCS is enabled for a |
| 2894 | 2894 | * station interface. |
| 2895 | 2895 | * |
| 2896 | + * @NL80211_ATTR_ASSOC_MLD_EXT_CAPA_OPS: Extended MLD capabilities and | |
| 2897 | + * operations that userspace implements to use during association/ML | |
| 2898 | + * link reconfig, currently only "BTM MLD Recommendation For Multiple | |
| 2899 | + * APs Support". Drivers may set additional flags that they support | |
| 2900 | + * in the kernel or device. | |
| 2901 | + * | |
| 2896 | 2902 | * @NUM_NL80211_ATTR: total number of nl80211_attrs available |
| 2897 | 2903 | * @NL80211_ATTR_MAX: highest attribute number currently defined |
| 2898 | 2904 | * @__NL80211_ATTR_AFTER_LAST: internal use |
| @@ -3448,6 +3454,8 @@ enum nl80211_attrs { · 549 unmodified lines | ||
| 3448 | 3454 | NL80211_ATTR_MLO_RECONF_REM_LINKS, |
| 3449 | 3455 | NL80211_ATTR_EPCS, |
| 3450 | 3456 | |
| 3457 | + NL80211_ATTR_ASSOC_MLD_EXT_CAPA_OPS, | |
| 3458 | + | |
| 3451 | 3459 | /* add attributes here, update the policy in nl80211.c */ |
| 3452 | 3460 | |
| 3453 | 3461 | __NL80211_ATTR_AFTER_LAST, |
| @@ -4327,6 +4335,8 @@ enum nl80211_wmm_rule { · 873 unmodified lines | ||
| 4327 | 4335 | * otherwise completely disabled. |
| 4328 | 4336 | * @NL80211_FREQUENCY_ATTR_ALLOW_6GHZ_VLP_AP: This channel can be used for a |
| 4329 | 4337 | * very low power (VLP) AP, despite being NO_IR. |
| 4338 | + * @NL80211_FREQUENCY_ATTR_ALLOW_20MHZ_ACTIVITY: This channel can be active in | |
| 4339 | + * 20 MHz bandwidth, despite being NO_IR. | |
| 4330 | 4340 | * @NL80211_FREQUENCY_ATTR_MAX: highest frequency attribute number |
| 4331 | 4341 | * currently defined |
| 4332 | 4342 | * @__NL80211_FREQUENCY_ATTR_AFTER_LAST: internal use |
| @@ -4371,6 +4381,7 @@ enum nl80211_frequency_attr { · 38 unmodified lines | ||
| 4371 | 4381 | NL80211_FREQUENCY_ATTR_NO_6GHZ_AFC_CLIENT, |
| 4372 | 4382 | NL80211_FREQUENCY_ATTR_CAN_MONITOR, |
| 4373 | 4383 | NL80211_FREQUENCY_ATTR_ALLOW_6GHZ_VLP_AP, |
| 4384 | + NL80211_FREQUENCY_ATTR_ALLOW_20MHZ_ACTIVITY, | |
| 4374 | 4385 | |
| 4375 | 4386 | /* keep last */ |
| 4376 | 4387 | __NL80211_FREQUENCY_ATTR_AFTER_LAST, |
| @@ -4582,31 +4593,34 @@ enum nl80211_sched_scan_match_attr { · 205 unmodified lines | ||
| 4582 | 4593 | * @NL80211_RRF_NO_6GHZ_AFC_CLIENT: Client connection to AFC AP not allowed |
| 4583 | 4594 | * @NL80211_RRF_ALLOW_6GHZ_VLP_AP: Very low power (VLP) AP can be permitted |
| 4584 | 4595 | * despite NO_IR configuration. |
| 4596 | + * @NL80211_RRF_ALLOW_20MHZ_ACTIVITY: Allow activity in 20 MHz bandwidth, | |
| 4597 | + * despite NO_IR configuration. | |
| 4585 | 4598 | */ |
| 4586 | 4599 | enum nl80211_reg_rule_flags { |
| 4587 | − NL80211_RRF_NO_OFDM = 1<<0, | |
| 4588 | − NL80211_RRF_NO_CCK = 1<<1, | |
| 4589 | − NL80211_RRF_NO_INDOOR = 1<<2, | |
| 4590 | − NL80211_RRF_NO_OUTDOOR = 1<<3, | |
| 4591 | − NL80211_RRF_DFS = 1<<4, | |
| 4592 | − NL80211_RRF_PTP_ONLY = 1<<5, | |
| 4593 | − NL80211_RRF_PTMP_ONLY = 1<<6, | |
| 4594 | − NL80211_RRF_NO_IR = 1<<7, | |
| 4595 | − __NL80211_RRF_NO_IBSS = 1<<8, | |
| 4596 | − NL80211_RRF_AUTO_BW = 1<<11, | |
| 4597 | − NL80211_RRF_IR_CONCURRENT = 1<<12, | |
| 4598 | − NL80211_RRF_NO_HT40MINUS = 1<<13, | |
| 4599 | − NL80211_RRF_NO_HT40PLUS = 1<<14, | |
| 4600 | − NL80211_RRF_NO_80MHZ = 1<<15, | |
| 4601 | − NL80211_RRF_NO_160MHZ = 1<<16, | |
| 4602 | − NL80211_RRF_NO_HE = 1<<17, | |
| 4603 | − NL80211_RRF_NO_320MHZ = 1<<18, | |
| 4604 | − NL80211_RRF_NO_EHT = 1<<19, | |
| 4605 | − NL80211_RRF_PSD = 1<<20, | |
| 4606 | − NL80211_RRF_DFS_CONCURRENT = 1<<21, | |
| 4607 | − NL80211_RRF_NO_6GHZ_VLP_CLIENT = 1<<22, | |
| 4608 | − NL80211_RRF_NO_6GHZ_AFC_CLIENT = 1<<23, | |
| 4609 | − NL80211_RRF_ALLOW_6GHZ_VLP_AP = 1<<24, | |
| 4600 | + NL80211_RRF_NO_OFDM = 1 << 0, | |
| 4601 | + NL80211_RRF_NO_CCK = 1 << 1, | |
| 4602 | + NL80211_RRF_NO_INDOOR = 1 << 2, | |
| 4603 | + NL80211_RRF_NO_OUTDOOR = 1 << 3, | |
| 4604 | + NL80211_RRF_DFS = 1 << 4, | |
| 4605 | + NL80211_RRF_PTP_ONLY = 1 << 5, | |
| 4606 | + NL80211_RRF_PTMP_ONLY = 1 << 6, | |
| 4607 | + NL80211_RRF_NO_IR = 1 << 7, | |
| 4608 | + __NL80211_RRF_NO_IBSS = 1 << 8, | |
| 4609 | + NL80211_RRF_AUTO_BW = 1 << 11, | |
| 4610 | + NL80211_RRF_IR_CONCURRENT = 1 << 12, | |
| 4611 | + NL80211_RRF_NO_HT40MINUS = 1 << 13, | |
| 4612 | + NL80211_RRF_NO_HT40PLUS = 1 << 14, | |
| 4613 | + NL80211_RRF_NO_80MHZ = 1 << 15, | |
| 4614 | + NL80211_RRF_NO_160MHZ = 1 << 16, | |
| 4615 | + NL80211_RRF_NO_HE = 1 << 17, | |
| 4616 | + NL80211_RRF_NO_320MHZ = 1 << 18, | |
| 4617 | + NL80211_RRF_NO_EHT = 1 << 19, | |
| 4618 | + NL80211_RRF_PSD = 1 << 20, | |
| 4619 | + NL80211_RRF_DFS_CONCURRENT = 1 << 21, | |
| 4620 | + NL80211_RRF_NO_6GHZ_VLP_CLIENT = 1 << 22, | |
| 4621 | + NL80211_RRF_NO_6GHZ_AFC_CLIENT = 1 << 23, | |
| 4622 | + NL80211_RRF_ALLOW_6GHZ_VLP_AP = 1 << 24, | |
| 4623 | + NL80211_RRF_ALLOW_20MHZ_ACTIVITY = 1 << 25, | |
| 4610 | 4624 | }; |
| 4611 | 4625 | |
| 4612 | 4626 | #define NL80211_RRF_PASSIVE_SCAN NL80211_RRF_NO_IR |
| @@ -4727,8 +4741,8 @@ enum nl80211_survey_info { · 114 unmodified lines | ||
| 4727 | 4741 | * @NL80211_MNTR_FLAG_PLCPFAIL: pass frames with bad PLCP |
| 4728 | 4742 | * @NL80211_MNTR_FLAG_CONTROL: pass control frames |
| 4729 | 4743 | * @NL80211_MNTR_FLAG_OTHER_BSS: disable BSSID filtering |
| 4730 | − * @NL80211_MNTR_FLAG_COOK_FRAMES: report frames after processing. | |
| 4731 | − * overrides all other flags. | |
| 4744 | + * @NL80211_MNTR_FLAG_COOK_FRAMES: deprecated | |
| 4745 | + * will unconditionally be refused | |
| 4732 | 4746 | * @NL80211_MNTR_FLAG_ACTIVE: use the configured MAC address |
| 4733 | 4747 | * and ACK incoming unicast packets. |
| 4734 | 4748 | * @NL80211_MNTR_FLAG_SKIP_TX: do not pass local tx packets |
| @@ -486,6 +486,7 @@ · 485 unmodified lines | ||
| 486 | 486 | #define PCI_EXP_TYPE_RC_EC 0xa /* Root Complex Event Collector */ |
| 487 | 487 | #define PCI_EXP_FLAGS_SLOT 0x0100 /* Slot implemented */ |
| 488 | 488 | #define PCI_EXP_FLAGS_IRQ 0x3e00 /* Interrupt message number */ |
| 489 | +#define PCI_EXP_FLAGS_FLIT 0x8000 /* Flit Mode Supported */ | |
| 489 | 490 | #define PCI_EXP_DEVCAP 0x04 /* Device capabilities */ |
| 490 | 491 | #define PCI_EXP_DEVCAP_PAYLOAD 0x00000007 /* Max_Payload_Size */ |
| 491 | 492 | #define PCI_EXP_DEVCAP_PHANTOM 0x00000018 /* Phantom functions */ |
| @@ -795,6 +796,8 @@ · 303 unmodified lines | ||
| 795 | 796 | #define PCI_ERR_CAP_ECRC_CHKC 0x00000080 /* ECRC Check Capable */ |
| 796 | 797 | #define PCI_ERR_CAP_ECRC_CHKE 0x00000100 /* ECRC Check Enable */ |
| 797 | 798 | #define PCI_ERR_CAP_PREFIX_LOG_PRESENT 0x00000800 /* TLP Prefix Log Present */ |
| 799 | +#define PCI_ERR_CAP_TLP_LOG_FLIT 0x00040000 /* TLP was logged in Flit Mode */ | |
| 800 | +#define PCI_ERR_CAP_TLP_LOG_SIZE 0x00f80000 /* Logged TLP Size (only in Flit mode) */ | |
| 798 | 801 | #define PCI_ERR_HEADER_LOG 0x1c /* Header Log Register (16 bytes) */ |
| 799 | 802 | #define PCI_ERR_ROOT_COMMAND 0x2c /* Root Error Command */ |
| 800 | 803 | #define PCI_ERR_ROOT_CMD_COR_EN 0x00000001 /* Correctable Err Reporting Enable */ |
| @@ -1013,7 +1016,7 @@ · 212 unmodified lines | ||
| 1013 | 1016 | |
| 1014 | 1017 | /* Resizable BARs */ |
| 1015 | 1018 | #define PCI_REBAR_CAP 4 /* capability register */ |
| 1016 | −#define PCI_REBAR_CAP_SIZES 0x00FFFFF0 /* supported BAR sizes */ | |
| 1019 | +#define PCI_REBAR_CAP_SIZES 0xFFFFFFF0 /* supported BAR sizes */ | |
| 1017 | 1020 | #define PCI_REBAR_CTRL 8 /* control register */ |
| 1018 | 1021 | #define PCI_REBAR_CTRL_BAR_IDX 0x00000007 /* BAR index */ |
| 1019 | 1022 | #define PCI_REBAR_CTRL_NBAR_MASK 0x000000E0 /* # of resizable BARs */ |
| @@ -1061,8 +1064,9 @@ · 41 unmodified lines | ||
| 1061 | 1064 | #define PCI_EXP_DPC_CAP_RP_EXT 0x0020 /* Root Port Extensions */ |
| 1062 | 1065 | #define PCI_EXP_DPC_CAP_POISONED_TLP 0x0040 /* Poisoned TLP Egress Blocking Supported */ |
| 1063 | 1066 | #define PCI_EXP_DPC_CAP_SW_TRIGGER 0x0080 /* Software Triggering Supported */ |
| 1064 | −#define PCI_EXP_DPC_RP_PIO_LOG_SIZE 0x0F00 /* RP PIO Log Size */ | |
| 1067 | +#define PCI_EXP_DPC_RP_PIO_LOG_SIZE 0x0F00 /* RP PIO Log Size [3:0] */ | |
| 1065 | 1068 | #define PCI_EXP_DPC_CAP_DL_ACTIVE 0x1000 /* ERR_COR signal on DL_Active supported */ |
| 1069 | +#define PCI_EXP_DPC_RP_PIO_LOG_SIZE4 0x2000 /* RP PIO Log Size [4] */ | |
| 1066 | 1070 | |
| 1067 | 1071 | #define PCI_EXP_DPC_CTL 0x06 /* DPC control */ |
| 1068 | 1072 | #define PCI_EXP_DPC_CTL_EN_FATAL 0x0001 /* Enable trigger on ERR_FATAL message */ |
| @@ -1205,9 +1209,12 @@ · 136 unmodified lines | ||
| 1205 | 1209 | #define PCI_DOE_DATA_OBJECT_DISC_REQ_3_INDEX 0x000000ff |
| 1206 | 1210 | #define PCI_DOE_DATA_OBJECT_DISC_REQ_3_VER 0x0000ff00 |
| 1207 | 1211 | #define PCI_DOE_DATA_OBJECT_DISC_RSP_3_VID 0x0000ffff |
| 1208 | −#define PCI_DOE_DATA_OBJECT_DISC_RSP_3_PROTOCOL 0x00ff0000 | |
| 1212 | +#define PCI_DOE_DATA_OBJECT_DISC_RSP_3_TYPE 0x00ff0000 | |
| 1209 | 1213 | #define PCI_DOE_DATA_OBJECT_DISC_RSP_3_NEXT_INDEX 0xff000000 |
| 1210 | 1214 | |
| 1215 | +/* Deprecated old name, replaced with PCI_DOE_DATA_OBJECT_DISC_RSP_3_TYPE */ | |
| 1216 | +#define PCI_DOE_DATA_OBJECT_DISC_RSP_3_PROTOCOL PCI_DOE_DATA_OBJECT_DISC_RSP_3_TYPE | |
| 1217 | + | |
| 1211 | 1218 | /* Compute Express Link (CXL r3.1, sec 8.1.5) */ |
| 1212 | 1219 | #define PCI_DVSEC_CXL_PORT 3 |
| 1213 | 1220 | #define PCI_DVSEC_CXL_PORT_CTL 0x0c |
| @@ -23,6 +23,12 @@ · 22 unmodified lines | ||
| 23 | 23 | #define PCITEST_BARS _IO('P', 0xa) |
| 24 | 24 | #define PCITEST_CLEAR_IRQ _IO('P', 0x10) |
| 25 | 25 | |
| 26 | +#define PCITEST_IRQ_TYPE_UNDEFINED -1 | |
| 27 | +#define PCITEST_IRQ_TYPE_INTX 0 | |
| 28 | +#define PCITEST_IRQ_TYPE_MSI 1 | |
| 29 | +#define PCITEST_IRQ_TYPE_MSIX 2 | |
| 30 | +#define PCITEST_IRQ_TYPE_AUTO 3 | |
| 31 | + | |
| 26 | 32 | #define PCITEST_FLAGS_USE_DMA 0x00000001 |
| 27 | 33 | |
| 28 | 34 | struct pci_endpoint_test_xfer_param { |
| @@ -385,6 +385,8 @@ enum perf_event_read_format { · 384 unmodified lines | ||
| 385 | 385 | * |
| 386 | 386 | * @sample_max_stack: Max number of frame pointers in a callchain, |
| 387 | 387 | * should be < /proc/sys/kernel/perf_event_max_stack |
| 388 | + * Max number of entries of branch stack | |
| 389 | + * should be < hardware limit | |
| 388 | 390 | */ |
| 389 | 391 | struct perf_event_attr { |
| 390 | 392 | |
| @@ -10,6 +10,10 @@ · 9 unmodified lines | ||
| 10 | 10 | /* Flags for pidfd_open(). */ |
| 11 | 11 | #define PIDFD_NONBLOCK O_NONBLOCK |
| 12 | 12 | #define PIDFD_THREAD O_EXCL |
| 13 | +#ifdef __KERNEL__ | |
| 14 | +#include <linux/sched.h> | |
| 15 | +#define PIDFD_CLONE CLONE_PIDFD | |
| 16 | +#endif | |
| 13 | 17 | |
| 14 | 18 | /* Flags for pidfd_send_signal(). */ |
| 15 | 19 | #define PIDFD_SIGNAL_THREAD (1UL << 0) |
| @@ -20,9 +24,34 @@ · 4 unmodified lines | ||
| 20 | 24 | #define PIDFD_INFO_PID (1UL << 0) /* Always returned, even if not requested */ |
| 21 | 25 | #define PIDFD_INFO_CREDS (1UL << 1) /* Always returned, even if not requested */ |
| 22 | 26 | #define PIDFD_INFO_CGROUPID (1UL << 2) /* Always returned if available, even if not requested */ |
| 27 | +#define PIDFD_INFO_EXIT (1UL << 3) /* Only returned if requested. */ | |
| 23 | 28 | |
| 24 | 29 | #define PIDFD_INFO_SIZE_VER0 64 /* sizeof first published struct */ |
| 25 | 30 | |
| 31 | +/* | |
| 32 | + * The concept of process and threads in userland and the kernel is a confusing | |
| 33 | + * one - within the kernel every thread is a 'task' with its own individual PID, | |
| 34 | + * however from userland's point of view threads are grouped by a single PID, | |
| 35 | + * which is that of the 'thread group leader', typically the first thread | |
| 36 | + * spawned. | |
| 37 | + * | |
| 38 | + * To cut the Gideon knot, for internal kernel usage, we refer to | |
| 39 | + * PIDFD_SELF_THREAD to refer to the current thread (or task from a kernel | |
| 40 | + * perspective), and PIDFD_SELF_THREAD_GROUP to refer to the current thread | |
| 41 | + * group leader... | |
| 42 | + */ | |
| 43 | +#define PIDFD_SELF_THREAD -10000 /* Current thread. */ | |
| 44 | +#define PIDFD_SELF_THREAD_GROUP -20000 /* Current thread group leader. */ | |
| 45 | + | |
| 46 | +/* | |
| 47 | + * ...and for userland we make life simpler - PIDFD_SELF refers to the current | |
| 48 | + * thread, PIDFD_SELF_PROCESS refers to the process thread group leader. | |
| 49 | + * | |
| 50 | + * For nearly all practical uses, a user will want to use PIDFD_SELF. | |
| 51 | + */ | |
| 52 | +#define PIDFD_SELF PIDFD_SELF_THREAD | |
| 53 | +#define PIDFD_SELF_PROCESS PIDFD_SELF_THREAD_GROUP | |
| 54 | + | |
| 26 | 55 | struct pidfd_info { |
| 27 | 56 | /* |
| 28 | 57 | * This mask is similar to the request_mask in statx(2). |
| @@ -62,7 +91,7 @@ struct pidfd_info { · 33 unmodified lines | ||
| 62 | 91 | __u32 sgid; |
| 63 | 92 | __u32 fsuid; |
| 64 | 93 | __u32 fsgid; |
| 65 | − __u32 spare0[1]; | |
| 94 | + __s32 exit_code; | |
| 66 | 95 | }; |
| 67 | 96 | |
| 68 | 97 | #define PIDFS_IOCTL_MAGIC 0xFF |
| @@ -353,4 +353,15 @@ struct prctl_mm_map { · 352 unmodified lines | ||
| 353 | 353 | */ |
| 354 | 354 | #define PR_LOCK_SHADOW_STACK_STATUS 76 |
| 355 | 355 | |
| 356 | +/* | |
| 357 | + * Controls the mode of timer_create() for CRIU restore operations. | |
| 358 | + * Enabling this allows CRIU to restore timers with explicit IDs. | |
| 359 | + * | |
| 360 | + * Don't use for normal operations as the result might be undefined. | |
| 361 | + */ | |
| 362 | +#define PR_TIMER_CREATE_RESTORE_IDS 77 | |
| 363 | +# define PR_TIMER_CREATE_RESTORE_IDS_OFF 0 | |
| 364 | +# define PR_TIMER_CREATE_RESTORE_IDS_ON 1 | |
| 365 | +# define PR_TIMER_CREATE_RESTORE_IDS_GET 2 | |
| 366 | + | |
| 356 | 367 | #endif /* _LINUX_PRCTL_H */ |
| @@ -73,13 +73,20 @@ typedef enum { · 72 unmodified lines | ||
| 73 | 73 | SEV_RET_INVALID_PARAM, |
| 74 | 74 | SEV_RET_RESOURCE_LIMIT, |
| 75 | 75 | SEV_RET_SECURE_DATA_INVALID, |
| 76 | − SEV_RET_INVALID_KEY = 0x27, | |
| 77 | − SEV_RET_INVALID_PAGE_SIZE, | |
| 78 | − SEV_RET_INVALID_PAGE_STATE, | |
| 79 | − SEV_RET_INVALID_MDATA_ENTRY, | |
| 80 | − SEV_RET_INVALID_PAGE_OWNER, | |
| 81 | − SEV_RET_INVALID_PAGE_AEAD_OFLOW, | |
| 82 | − SEV_RET_RMP_INIT_REQUIRED, | |
| 76 | + SEV_RET_INVALID_PAGE_SIZE = 0x0019, | |
| 77 | + SEV_RET_INVALID_PAGE_STATE = 0x001A, | |
| 78 | + SEV_RET_INVALID_MDATA_ENTRY = 0x001B, | |
| 79 | + SEV_RET_INVALID_PAGE_OWNER = 0x001C, | |
| 80 | + SEV_RET_AEAD_OFLOW = 0x001D, | |
| 81 | + SEV_RET_EXIT_RING_BUFFER = 0x001F, | |
| 82 | + SEV_RET_RMP_INIT_REQUIRED = 0x0020, | |
| 83 | + SEV_RET_BAD_SVN = 0x0021, | |
| 84 | + SEV_RET_BAD_VERSION = 0x0022, | |
| 85 | + SEV_RET_SHUTDOWN_REQUIRED = 0x0023, | |
| 86 | + SEV_RET_UPDATE_FAILED = 0x0024, | |
| 87 | + SEV_RET_RESTORE_REQUIRED = 0x0025, | |
| 88 | + SEV_RET_RMP_INITIALIZATION_FAILED = 0x0026, | |
| 89 | + SEV_RET_INVALID_KEY = 0x0027, | |
| 83 | 90 | SEV_RET_MAX, |
| 84 | 91 | } sev_ret_code; |
| 85 | 92 | |
| @@ -1528,7 +1528,7 @@ enum rksip1_ext_param_buffer_version { · 1527 unmodified lines | ||
| 1528 | 1528 | * The expected memory layout of the parameters buffer is:: |
| 1529 | 1529 | * |
| 1530 | 1530 | * +-------------------- struct rkisp1_ext_params_cfg -------------------+ |
| 1531 | − * | version = RKISP_EXT_PARAMS_BUFFER_V1; | | |
| 1531 | + * | version = RKISP1_EXT_PARAM_BUFFER_V1; | | |
| 1532 | 1532 | * | data_size = sizeof(struct rkisp1_ext_params_bls_config) | |
| 1533 | 1533 | * | + sizeof(struct rkisp1_ext_params_dpcc_config); | |
| 1534 | 1534 | * | +------------------------- data ---------------------------------+ | |
| @@ -307,6 +307,7 @@ enum { · 306 unmodified lines | ||
| 307 | 307 | #define RTPROT_MROUTED 17 /* Multicast daemon */ |
| 308 | 308 | #define RTPROT_KEEPALIVED 18 /* Keepalived daemon */ |
| 309 | 309 | #define RTPROT_BABEL 42 /* Babel daemon */ |
| 310 | +#define RTPROT_OVN 84 /* OVN daemon */ | |
| 310 | 311 | #define RTPROT_OPENR 99 /* Open Routing (Open/R) Routes */ |
| 311 | 312 | #define RTPROT_BGP 186 /* BGP Routes */ |
| 312 | 313 | #define RTPROT_ISIS 187 /* ISIS Routes */ |
| @@ -23,9 +23,14 @@ enum · 22 unmodified lines | ||
| 23 | 23 | IPSTATS_MIB_INPKTS, /* InReceives */ |
| 24 | 24 | IPSTATS_MIB_INOCTETS, /* InOctets */ |
| 25 | 25 | IPSTATS_MIB_INDELIVERS, /* InDelivers */ |
| 26 | − IPSTATS_MIB_OUTFORWDATAGRAMS, /* OutForwDatagrams */ | |
| 26 | + IPSTATS_MIB_NOECTPKTS, /* InNoECTPkts */ | |
| 27 | + IPSTATS_MIB_ECT1PKTS, /* InECT1Pkts */ | |
| 28 | + IPSTATS_MIB_ECT0PKTS, /* InECT0Pkts */ | |
| 29 | + IPSTATS_MIB_CEPKTS, /* InCEPkts */ | |
| 27 | 30 | IPSTATS_MIB_OUTREQUESTS, /* OutRequests */ |
| 31 | + IPSTATS_MIB_OUTPKTS, /* OutTransmits */ | |
| 28 | 32 | IPSTATS_MIB_OUTOCTETS, /* OutOctets */ |
| 33 | + IPSTATS_MIB_OUTFORWDATAGRAMS, /* OutForwDatagrams */ | |
| 29 | 34 | /* other fields */ |
| 30 | 35 | IPSTATS_MIB_INHDRERRORS, /* InHdrErrors */ |
| 31 | 36 | IPSTATS_MIB_INTOOBIGERRORS, /* InTooBigErrors */ |
| @@ -52,12 +57,7 @@ enum · 20 unmodified lines | ||
| 52 | 57 | IPSTATS_MIB_INBCASTOCTETS, /* InBcastOctets */ |
| 53 | 58 | IPSTATS_MIB_OUTBCASTOCTETS, /* OutBcastOctets */ |
| 54 | 59 | IPSTATS_MIB_CSUMERRORS, /* InCsumErrors */ |
| 55 | − IPSTATS_MIB_NOECTPKTS, /* InNoECTPkts */ | |
| 56 | − IPSTATS_MIB_ECT1PKTS, /* InECT1Pkts */ | |
| 57 | − IPSTATS_MIB_ECT0PKTS, /* InECT0Pkts */ | |
| 58 | − IPSTATS_MIB_CEPKTS, /* InCEPkts */ | |
| 59 | 60 | IPSTATS_MIB_REASM_OVERLAPS, /* ReasmOverlaps */ |
| 60 | − IPSTATS_MIB_OUTPKTS, /* OutTransmits */ | |
| 61 | 61 | __IPSTATS_MIB_MAX |
| 62 | 62 | }; |
| 63 | 63 | |
| @@ -186,6 +186,7 @@ enum · 122 unmodified lines | ||
| 186 | 186 | LINUX_MIB_TIMEWAITKILLED, /* TimeWaitKilled */ |
| 187 | 187 | LINUX_MIB_PAWSACTIVEREJECTED, /* PAWSActiveRejected */ |
| 188 | 188 | LINUX_MIB_PAWSESTABREJECTED, /* PAWSEstabRejected */ |
| 189 | + LINUX_MIB_TSECRREJECTED, /* TSEcrRejected */ | |
| 189 | 190 | LINUX_MIB_PAWS_OLD_ACK, /* PAWSOldAck */ |
| 190 | 191 | LINUX_MIB_DELAYEDACKS, /* DelayedACKs */ |
| 191 | 192 | LINUX_MIB_DELAYEDACKLOCKED, /* DelayedACKLocked */ |
| @@ -70,4 +70,10 @@ · 69 unmodified lines | ||
| 70 | 70 | #define __counted_by_be(m) |
| 71 | 71 | #endif |
| 72 | 72 | |
| 73 | +#ifdef __KERNEL__ | |
| 74 | +#define __kernel_nonstring __nonstring | |
| 75 | +#else | |
| 76 | +#define __kernel_nonstring | |
| 77 | +#endif | |
| 78 | + | |
| 73 | 79 | #endif /* _UAPI_LINUX_STDDEF_H */ |
| @@ -28,7 +28,8 @@ struct tcphdr { · 27 unmodified lines | ||
| 28 | 28 | __be32 seq; |
| 29 | 29 | __be32 ack_seq; |
| 30 | 30 | #if defined(__LITTLE_ENDIAN_BITFIELD) |
| 31 | − __u16 res1:4, | |
| 31 | + __u16 ae:1, | |
| 32 | + res1:3, | |
| 32 | 33 | doff:4, |
| 33 | 34 | fin:1, |
| 34 | 35 | syn:1, |
| @@ -40,7 +41,8 @@ struct tcphdr { · 5 unmodified lines | ||
| 40 | 41 | cwr:1; |
| 41 | 42 | #elif defined(__BIG_ENDIAN_BITFIELD) |
| 42 | 43 | __u16 doff:4, |
| 43 | − res1:4, | |
| 44 | + res1:3, | |
| 45 | + ae:1, | |
| 44 | 46 | cwr:1, |
| 45 | 47 | ece:1, |
| 46 | 48 | urg:1, |
| @@ -70,6 +72,7 @@ union tcp_word_hdr { · 23 unmodified lines | ||
| 70 | 72 | #define tcp_flag_word(tp) (((union tcp_word_hdr *)(tp))->words[3]) |
| 71 | 73 | |
| 72 | 74 | enum { |
| 75 | + TCP_FLAG_AE = __constant_cpu_to_be32(0x01000000), | |
| 73 | 76 | TCP_FLAG_CWR = __constant_cpu_to_be32(0x00800000), |
| 74 | 77 | TCP_FLAG_ECE = __constant_cpu_to_be32(0x00400000), |
| 75 | 78 | TCP_FLAG_URG = __constant_cpu_to_be32(0x00200000), |
| @@ -78,7 +81,7 @@ enum { · 2 unmodified lines | ||
| 78 | 81 | TCP_FLAG_RST = __constant_cpu_to_be32(0x00040000), |
| 79 | 82 | TCP_FLAG_SYN = __constant_cpu_to_be32(0x00020000), |
| 80 | 83 | TCP_FLAG_FIN = __constant_cpu_to_be32(0x00010000), |
| 81 | − TCP_RESERVED_BITS = __constant_cpu_to_be32(0x0F000000), | |
| 84 | + TCP_RESERVED_BITS = __constant_cpu_to_be32(0x0E000000), | |
| 82 | 85 | TCP_DATA_OFFSET = __constant_cpu_to_be32(0xF0000000) |
| 83 | 86 | }; |
| 84 | 87 | |
| @@ -136,6 +139,9 @@ enum { · 51 unmodified lines | ||
| 136 | 139 | #define TCP_AO_REPAIR 42 /* Get/Set SNEs and ISNs */ |
| 137 | 140 | |
| 138 | 141 | #define TCP_IS_MPTCP 43 /* Is MPTCP being used? */ |
| 142 | +#define TCP_RTO_MAX_MS 44 /* max rto time in ms */ | |
| 143 | +#define TCP_RTO_MIN_US 45 /* min rto time in us */ | |
| 144 | +#define TCP_DELACK_MAX_US 46 /* max delayed ack time in us */ | |
| 139 | 145 | |
| 140 | 146 | #define TCP_REPAIR_ON 1 |
| 141 | 147 | #define TCP_REPAIR_OFF 0 |
| @@ -94,6 +94,10 @@ · 93 unmodified lines | ||
| 94 | 94 | _IOWR('u', UBLK_IO_COMMIT_AND_FETCH_REQ, struct ublksrv_io_cmd) |
| 95 | 95 | #define UBLK_U_IO_NEED_GET_DATA \ |
| 96 | 96 | _IOWR('u', UBLK_IO_NEED_GET_DATA, struct ublksrv_io_cmd) |
| 97 | +#define UBLK_U_IO_REGISTER_IO_BUF \ | |
| 98 | + _IOWR('u', 0x23, struct ublksrv_io_cmd) | |
| 99 | +#define UBLK_U_IO_UNREGISTER_IO_BUF \ | |
| 100 | + _IOWR('u', 0x24, struct ublksrv_io_cmd) | |
| 97 | 101 | |
| 98 | 102 | /* only ABORT means that no re-fetch */ |
| 99 | 103 | #define UBLK_IO_RES_OK 0 |
| @@ -401,6 +405,34 @@ struct ublk_param_zoned { · 301 unmodified lines | ||
| 401 | 405 | __u8 reserved[20]; |
| 402 | 406 | }; |
| 403 | 407 | |
| 408 | +struct ublk_param_dma_align { | |
| 409 | + __u32 alignment; | |
| 410 | + __u8 pad[4]; | |
| 411 | +}; | |
| 412 | + | |
| 413 | +#define UBLK_MIN_SEGMENT_SIZE 4096 | |
| 414 | +/* | |
| 415 | + * If any one of the three segment parameter is set as 0, the behavior is | |
| 416 | + * undefined. | |
| 417 | + */ | |
| 418 | +struct ublk_param_segment { | |
| 419 | + /* | |
| 420 | + * seg_boundary_mask + 1 needs to be power_of_2(), and the sum has | |
| 421 | + * to be >= UBLK_MIN_SEGMENT_SIZE(4096) | |
| 422 | + */ | |
| 423 | + __u64 seg_boundary_mask; | |
| 424 | + | |
| 425 | + /* | |
| 426 | + * max_segment_size could be override by virt_boundary_mask, so be | |
| 427 | + * careful when setting both. | |
| 428 | + * | |
| 429 | + * max_segment_size has to be >= UBLK_MIN_SEGMENT_SIZE(4096) | |
| 430 | + */ | |
| 431 | + __u32 max_segment_size; | |
| 432 | + __u16 max_segments; | |
| 433 | + __u8 pad[2]; | |
| 434 | +}; | |
| 435 | + | |
| 404 | 436 | struct ublk_params { |
| 405 | 437 | /* |
| 406 | 438 | * Total length of parameters, userspace has to set 'len' for both |
| @@ -413,12 +445,16 @@ struct ublk_params { · 6 unmodified lines | ||
| 413 | 445 | #define UBLK_PARAM_TYPE_DISCARD (1 << 1) |
| 414 | 446 | #define UBLK_PARAM_TYPE_DEVT (1 << 2) |
| 415 | 447 | #define UBLK_PARAM_TYPE_ZONED (1 << 3) |
| 448 | +#define UBLK_PARAM_TYPE_DMA_ALIGN (1 << 4) | |
| 449 | +#define UBLK_PARAM_TYPE_SEGMENT (1 << 5) | |
| 416 | 450 | __u32 types; /* types of parameter included */ |
| 417 | 451 | |
| 418 | 452 | struct ublk_param_basic basic; |
| 419 | 453 | struct ublk_param_discard discard; |
| 420 | 454 | struct ublk_param_devt devt; |
| 421 | 455 | struct ublk_param_zoned zoned; |
| 456 | + struct ublk_param_dma_align dma; | |
| 457 | + struct ublk_param_segment seg; | |
| 422 | 458 | }; |
| 423 | 459 | |
| 424 | 460 | #endif |
| @@ -253,6 +253,9 @@ struct usb_ctrlrequest { · 252 unmodified lines | ||
| 253 | 253 | #define USB_DT_BOS 0x0f |
| 254 | 254 | #define USB_DT_DEVICE_CAPABILITY 0x10 |
| 255 | 255 | #define USB_DT_WIRELESS_ENDPOINT_COMP 0x11 |
| 256 | +/* From the eUSB2 spec */ | |
| 257 | +#define USB_DT_EUSB2_ISOC_ENDPOINT_COMP 0x12 | |
| 258 | +/* From Wireless USB spec */ | |
| 256 | 259 | #define USB_DT_WIRE_ADAPTER 0x21 |
| 257 | 260 | /* From USB Device Firmware Upgrade Specification, Revision 1.1 */ |
| 258 | 261 | #define USB_DT_DFU_FUNCTIONAL 0x21 |
| @@ -330,6 +333,7 @@ struct usb_device_descriptor { · 71 unmodified lines | ||
| 330 | 333 | #define USB_CLASS_AUDIO_VIDEO 0x10 |
| 331 | 334 | #define USB_CLASS_BILLBOARD 0x11 |
| 332 | 335 | #define USB_CLASS_USB_TYPE_C_BRIDGE 0x12 |
| 336 | +#define USB_CLASS_MCTP 0x14 | |
| 333 | 337 | #define USB_CLASS_MISC 0xef |
| 334 | 338 | #define USB_CLASS_APP_SPEC 0xfe |
| 335 | 339 | #define USB_SUBCLASS_DFU 0x01 |
| @@ -675,6 +679,18 @@ static inline int usb_endpoint_interrupt_type( · 339 unmodified lines | ||
| 675 | 679 | |
| 676 | 680 | /*-------------------------------------------------------------------------*/ |
| 677 | 681 | |
| 682 | +/* USB_DT_EUSB2_ISOC_ENDPOINT_COMP: eUSB2 Isoch Endpoint Companion descriptor */ | |
| 683 | +struct usb_eusb2_isoc_ep_comp_descriptor { | |
| 684 | + __u8 bLength; | |
| 685 | + __u8 bDescriptorType; | |
| 686 | + __le16 wMaxPacketSize; | |
| 687 | + __le32 dwBytesPerInterval; | |
| 688 | +} __attribute__ ((packed)); | |
| 689 | + | |
| 690 | +#define USB_DT_EUSB2_ISOC_EP_COMP_SIZE 8 | |
| 691 | + | |
| 692 | +/*-------------------------------------------------------------------------*/ | |
| 693 | + | |
| 678 | 694 | /* USB_DT_SSP_ISOC_ENDPOINT_COMP: SuperSpeedPlus Isochronous Endpoint Companion |
| 679 | 695 | * descriptor |
| 680 | 696 | */ |
| @@ -104,6 +104,7 @@ · 103 unmodified lines | ||
| 104 | 104 | #define UVC_CT_ROLL_ABSOLUTE_CONTROL 0x0f |
| 105 | 105 | #define UVC_CT_ROLL_RELATIVE_CONTROL 0x10 |
| 106 | 106 | #define UVC_CT_PRIVACY_CONTROL 0x11 |
| 107 | +#define UVC_CT_REGION_OF_INTEREST_CONTROL 0x14 | |
| 107 | 108 | |
| 108 | 109 | /* A.9.5. Processing Unit Control Selectors */ |
| 109 | 110 | #define UVC_PU_CONTROL_UNDEFINED 0x00 |
| @@ -16,6 +16,7 @@ · 15 unmodified lines | ||
| 16 | 16 | #define UVC_CTRL_DATA_TYPE_BOOLEAN 3 |
| 17 | 17 | #define UVC_CTRL_DATA_TYPE_ENUM 4 |
| 18 | 18 | #define UVC_CTRL_DATA_TYPE_BITMASK 5 |
| 19 | +#define UVC_CTRL_DATA_TYPE_RECT 6 | |
| 19 | 20 | |
| 20 | 21 | /* Control flags */ |
| 21 | 22 | #define UVC_CTRL_FLAG_SET_CUR (1 << 0) |
| @@ -38,6 +39,18 @@ · 16 unmodified lines | ||
| 38 | 39 | |
| 39 | 40 | #define UVC_MENU_NAME_LEN 32 |
| 40 | 41 | |
| 42 | +/* V4L2 driver-specific controls */ | |
| 43 | +#define V4L2_CID_UVC_REGION_OF_INTEREST_RECT (V4L2_CID_USER_UVC_BASE + 1) | |
| 44 | +#define V4L2_CID_UVC_REGION_OF_INTEREST_AUTO (V4L2_CID_USER_UVC_BASE + 2) | |
| 45 | +#define V4L2_UVC_REGION_OF_INTEREST_AUTO_EXPOSURE (1 << 0) | |
| 46 | +#define V4L2_UVC_REGION_OF_INTEREST_AUTO_IRIS (1 << 1) | |
| 47 | +#define V4L2_UVC_REGION_OF_INTEREST_AUTO_WHITE_BALANCE (1 << 2) | |
| 48 | +#define V4L2_UVC_REGION_OF_INTEREST_AUTO_FOCUS (1 << 3) | |
| 49 | +#define V4L2_UVC_REGION_OF_INTEREST_AUTO_FACE_DETECT (1 << 4) | |
| 50 | +#define V4L2_UVC_REGION_OF_INTEREST_AUTO_DETECT_AND_TRACK (1 << 5) | |
| 51 | +#define V4L2_UVC_REGION_OF_INTEREST_AUTO_IMAGE_STABILIZATION (1 << 6) | |
| 52 | +#define V4L2_UVC_REGION_OF_INTEREST_AUTO_HIGHER_QUALITY (1 << 7) | |
| 53 | + | |
| 41 | 54 | struct uvc_menu_info { |
| 42 | 55 | __u32 value; |
| 43 | 56 | __u8 name[UVC_MENU_NAME_LEN]; |
| @@ -215,6 +215,13 @@ enum v4l2_colorfx { · 214 unmodified lines | ||
| 215 | 215 | */ |
| 216 | 216 | #define V4L2_CID_USER_THP7312_BASE (V4L2_CID_USER_BASE + 0x11c0) |
| 217 | 217 | |
| 218 | +/* | |
| 219 | + * The base for the uvc driver controls. | |
| 220 | + * See linux/uvcvideo.h for the list of controls. | |
| 221 | + * We reserve 64 controls for this driver. | |
| 222 | + */ | |
| 223 | +#define V4L2_CID_USER_UVC_BASE (V4L2_CID_USER_BASE + 0x11e0) | |
| 224 | + | |
| 218 | 225 | /* MPEG-class control IDs */ |
| 219 | 226 | /* The MPEG controls are applicable to all codec controls |
| 220 | 227 | * and the 'MPEG' part of the define is historical */ |
| @@ -671,6 +671,7 @@ enum { · 670 unmodified lines | ||
| 671 | 671 | */ |
| 672 | 672 | enum { |
| 673 | 673 | VFIO_AP_REQ_IRQ_INDEX, |
| 674 | + VFIO_AP_CFG_CHG_IRQ_INDEX, | |
| 674 | 675 | VFIO_AP_NUM_IRQS |
| 675 | 676 | }; |
| 676 | 677 | |
| @@ -931,29 +932,34 @@ struct vfio_device_bind_iommufd { · 254 unmodified lines | ||
| 931 | 932 | * VFIO_DEVICE_ATTACH_IOMMUFD_PT - _IOW(VFIO_TYPE, VFIO_BASE + 19, |
| 932 | 933 | * struct vfio_device_attach_iommufd_pt) |
| 933 | 934 | * @argsz: User filled size of this data. |
| 934 | − * @flags: Must be 0. | |
| 935 | + * @flags: Flags for attach. | |
| 935 | 936 | * @pt_id: Input the target id which can represent an ioas or a hwpt |
| 936 | 937 | * allocated via iommufd subsystem. |
| 937 | 938 | * Output the input ioas id or the attached hwpt id which could |
| 938 | 939 | * be the specified hwpt itself or a hwpt automatically created |
| 939 | 940 | * for the specified ioas by kernel during the attachment. |
| 941 | + * @pasid: The pasid to be attached, only meaningful when | |
| 942 | + * VFIO_DEVICE_ATTACH_PASID is set in @flags | |
| 940 | 943 | * |
| 941 | 944 | * Associate the device with an address space within the bound iommufd. |
| 942 | 945 | * Undo by VFIO_DEVICE_DETACH_IOMMUFD_PT or device fd close. This is only |
| 943 | 946 | * allowed on cdev fds. |
| 944 | 947 | * |
| 945 | − * If a vfio device is currently attached to a valid hw_pagetable, without doing | |
| 946 | − * a VFIO_DEVICE_DETACH_IOMMUFD_PT, a second VFIO_DEVICE_ATTACH_IOMMUFD_PT ioctl | |
| 947 | − * passing in another hw_pagetable (hwpt) id is allowed. This action, also known | |
| 948 | − * as a hw_pagetable replacement, will replace the device's currently attached | |
| 949 | − * hw_pagetable with a new hw_pagetable corresponding to the given pt_id. | |
| 948 | + * If a vfio device or a pasid of this device is currently attached to a valid | |
| 949 | + * hw_pagetable (hwpt), without doing a VFIO_DEVICE_DETACH_IOMMUFD_PT, a second | |
| 950 | + * VFIO_DEVICE_ATTACH_IOMMUFD_PT ioctl passing in another hwpt id is allowed. | |
| 951 | + * This action, also known as a hw_pagetable replacement, will replace the | |
| 952 | + * currently attached hwpt of the device or the pasid of this device with a new | |
| 953 | + * hwpt corresponding to the given pt_id. | |
| 950 | 954 | * |
| 951 | 955 | * Return: 0 on success, -errno on failure. |
| 952 | 956 | */ |
| 953 | 957 | struct vfio_device_attach_iommufd_pt { |
| 954 | 958 | __u32 argsz; |
| 955 | 959 | __u32 flags; |
| 960 | +#define VFIO_DEVICE_ATTACH_PASID (1 << 0) | |
| 956 | 961 | __u32 pt_id; |
| 962 | + __u32 pasid; | |
| 957 | 963 | }; |
| 958 | 964 | |
| 959 | 965 | #define VFIO_DEVICE_ATTACH_IOMMUFD_PT _IO(VFIO_TYPE, VFIO_BASE + 19) |
| @@ -962,17 +968,21 @@ struct vfio_device_attach_iommufd_pt { · 2 unmodified lines | ||
| 962 | 968 | * VFIO_DEVICE_DETACH_IOMMUFD_PT - _IOW(VFIO_TYPE, VFIO_BASE + 20, |
| 963 | 969 | * struct vfio_device_detach_iommufd_pt) |
| 964 | 970 | * @argsz: User filled size of this data. |
| 965 | − * @flags: Must be 0. | |
| 971 | + * @flags: Flags for detach. | |
| 972 | + * @pasid: The pasid to be detached, only meaningful when | |
| 973 | + * VFIO_DEVICE_DETACH_PASID is set in @flags | |
| 966 | 974 | * |
| 967 | − * Remove the association of the device and its current associated address | |
| 968 | − * space. After it, the device should be in a blocking DMA state. This is only | |
| 969 | − * allowed on cdev fds. | |
| 975 | + * Remove the association of the device or a pasid of the device and its current | |
| 976 | + * associated address space. After it, the device or the pasid should be in a | |
| 977 | + * blocking DMA state. This is only allowed on cdev fds. | |
| 970 | 978 | * |
| 971 | 979 | * Return: 0 on success, -errno on failure. |
| 972 | 980 | */ |
| 973 | 981 | struct vfio_device_detach_iommufd_pt { |
| 974 | 982 | __u32 argsz; |
| 975 | 983 | __u32 flags; |
| 984 | +#define VFIO_DEVICE_DETACH_PASID (1 << 0) | |
| 985 | + __u32 pasid; | |
| 976 | 986 | }; |
| 977 | 987 | |
| 978 | 988 | #define VFIO_DEVICE_DETACH_IOMMUFD_PT _IO(VFIO_TYPE, VFIO_BASE + 20) |
| @@ -1859,6 +1859,7 @@ struct v4l2_ext_control { · 1858 unmodified lines | ||
| 1859 | 1859 | __s32 __user *p_s32; |
| 1860 | 1860 | __s64 __user *p_s64; |
| 1861 | 1861 | struct v4l2_area __user *p_area; |
| 1862 | + struct v4l2_rect __user *p_rect; | |
| 1862 | 1863 | struct v4l2_ctrl_h264_sps __user *p_h264_sps; |
| 1863 | 1864 | struct v4l2_ctrl_h264_pps __user *p_h264_pps; |
| 1864 | 1865 | struct v4l2_ctrl_h264_scaling_matrix __user *p_h264_scaling_matrix; |
| @@ -1911,6 +1912,8 @@ struct v4l2_ext_controls { · 46 unmodified lines | ||
| 1911 | 1912 | #define V4L2_CTRL_WHICH_CUR_VAL 0 |
| 1912 | 1913 | #define V4L2_CTRL_WHICH_DEF_VAL 0x0f000000 |
| 1913 | 1914 | #define V4L2_CTRL_WHICH_REQUEST_VAL 0x0f010000 |
| 1915 | +#define V4L2_CTRL_WHICH_MIN_VAL 0x0f020000 | |
| 1916 | +#define V4L2_CTRL_WHICH_MAX_VAL 0x0f030000 | |
| 1914 | 1917 | |
| 1915 | 1918 | enum v4l2_ctrl_type { |
| 1916 | 1919 | V4L2_CTRL_TYPE_INTEGER = 1, |
| @@ -1929,6 +1932,7 @@ enum v4l2_ctrl_type { · 12 unmodified lines | ||
| 1929 | 1932 | V4L2_CTRL_TYPE_U16 = 0x0101, |
| 1930 | 1933 | V4L2_CTRL_TYPE_U32 = 0x0102, |
| 1931 | 1934 | V4L2_CTRL_TYPE_AREA = 0x0106, |
| 1935 | + V4L2_CTRL_TYPE_RECT = 0x0107, | |
| 1932 | 1936 | |
| 1933 | 1937 | V4L2_CTRL_TYPE_HDR10_CLL_INFO = 0x0110, |
| 1934 | 1938 | V4L2_CTRL_TYPE_HDR10_MASTERING_DISPLAY = 0x0111, |
| @@ -2017,6 +2021,7 @@ struct v4l2_querymenu { · 82 unmodified lines | ||
| 2017 | 2021 | #define V4L2_CTRL_FLAG_EXECUTE_ON_WRITE 0x0200 |
| 2018 | 2022 | #define V4L2_CTRL_FLAG_MODIFY_LAYOUT 0x0400 |
| 2019 | 2023 | #define V4L2_CTRL_FLAG_DYNAMIC_ARRAY 0x0800 |
| 2024 | +#define V4L2_CTRL_FLAG_HAS_WHICH_MIN_MAX 0x1000 | |
| 2020 | 2025 | |
| 2021 | 2026 | /* Query flags, to be ORed with the control ID */ |
| 2022 | 2027 | #define V4L2_CTRL_FLAG_NEXT_CTRL 0x80000000 |
| @@ -327,6 +327,19 @@ struct virtio_net_rss_config { · 326 unmodified lines | ||
| 327 | 327 | __u8 hash_key_data[/* hash_key_length */]; |
| 328 | 328 | }; |
| 329 | 329 | |
| 330 | +struct virtio_net_rss_config_hdr { | |
| 331 | + __le32 hash_types; | |
| 332 | + __le16 indirection_table_mask; | |
| 333 | + __le16 unclassified_queue; | |
| 334 | + __le16 indirection_table[/* 1 + indirection_table_mask */]; | |
| 335 | +}; | |
| 336 | + | |
| 337 | +struct virtio_net_rss_config_trailer { | |
| 338 | + __le16 max_tx_vq; | |
| 339 | + __u8 hash_key_length; | |
| 340 | + __u8 hash_key_data[/* hash_key_length */]; | |
| 341 | +}; | |
| 342 | + | |
| 330 | 343 | #define VIRTIO_NET_CTRL_MQ_RSS_CONFIG 1 |
| 331 | 344 | |
| 332 | 345 | /* |
| @@ -83,6 +83,10 @@ struct xattr_args { · 82 unmodified lines | ||
| 83 | 83 | #define XATTR_CAPS_SUFFIX "capability" |
| 84 | 84 | #define XATTR_NAME_CAPS XATTR_SECURITY_PREFIX XATTR_CAPS_SUFFIX |
| 85 | 85 | |
| 86 | +#define XATTR_BPF_LSM_SUFFIX "bpf." | |
| 87 | +#define XATTR_NAME_BPF_LSM (XATTR_SECURITY_PREFIX XATTR_BPF_LSM_SUFFIX) | |
| 88 | +#define XATTR_NAME_BPF_LSM_LEN (sizeof(XATTR_NAME_BPF_LSM) - 1) | |
| 89 | + | |
| 86 | 90 | #define XATTR_POSIX_ACL_ACCESS "posix_acl_access" |
| 87 | 91 | #define XATTR_NAME_POSIX_ACL_ACCESS XATTR_SYSTEM_PREFIX XATTR_POSIX_ACL_ACCESS |
| 88 | 92 | #define XATTR_POSIX_ACL_DEFAULT "posix_acl_default" |