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 | * 1100 - 1199 user space trusted application messages | 33 | * 1100 - 1199 user space trusted application messages |
| 34 | * 1200 - 1299 messages internal to the audit daemon | 34 | * 1200 - 1299 messages internal to the audit daemon |
| 35 | * 1300 - 1399 audit event messages | 35 | * 1300 - 1399 audit event messages |
| 36 | * 1400 - 1499 SE Linux use | 36 | * 1400 - 1499 access control messages |
| 37 | * 1500 - 1599 kernel LSPP events | 37 | * 1500 - 1599 kernel LSPP events |
| 38 | * 1600 - 1699 kernel crypto events | 38 | * 1600 - 1699 kernel crypto events |
| 39 | * 1700 - 1799 kernel anomaly records | 39 | * 1700 - 1799 kernel anomaly records |
| @@ -146,6 +146,8 @@ · 106 unmodified lines | |||
| 146 | #define AUDIT_IPE_ACCESS 1420 /* IPE denial or grant */ | 146 | #define AUDIT_IPE_ACCESS 1420 /* IPE denial or grant */ |
| 147 | #define AUDIT_IPE_CONFIG_CHANGE 1421 /* IPE config change */ | 147 | #define AUDIT_IPE_CONFIG_CHANGE 1421 /* IPE config change */ |
| 148 | #define AUDIT_IPE_POLICY_LOAD 1422 /* IPE policy load */ | 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 | #define AUDIT_FIRST_KERN_ANOM_MSG 1700 | 152 | #define AUDIT_FIRST_KERN_ANOM_MSG 1700 |
| 151 | #define AUDIT_LAST_KERN_ANOM_MSG 1799 | 153 | #define AUDIT_LAST_KERN_ANOM_MSG 1799 |
| @@ -342,7 +342,7 @@ enum batadv_nl_attrs { · 341 unmodified lines | |||
| 342 | BATADV_ATTR_MCAST_FLAGS_PRIV, | 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 | BATADV_ATTR_VLANID, | 347 | BATADV_ATTR_VLANID, |
| 348 | 348 | ||
| @@ -380,7 +380,7 @@ enum batadv_nl_attrs { · 31 unmodified lines | |||
| 380 | /** | 380 | /** |
| 381 | * @BATADV_ATTR_BRIDGE_LOOP_AVOIDANCE_ENABLED: whether the bridge loop | 381 | * @BATADV_ATTR_BRIDGE_LOOP_AVOIDANCE_ENABLED: whether the bridge loop |
| 382 | * avoidance feature is enabled. This feature detects and avoids loops | 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 | BATADV_ATTR_BRIDGE_LOOP_AVOIDANCE_ENABLED, | 385 | BATADV_ATTR_BRIDGE_LOOP_AVOIDANCE_ENABLED, |
| 386 | 386 | ||
| @@ -509,7 +509,7 @@ enum batadv_nl_commands { · 122 unmodified lines | |||
| 509 | BATADV_CMD_UNSPEC, | 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 | BATADV_CMD_GET_MESH, | 514 | BATADV_CMD_GET_MESH, |
| 515 | 515 | ||
| @@ -535,7 +535,7 @@ enum batadv_nl_commands { · 19 unmodified lines | |||
| 535 | 535 | ||
| 536 | /** | 536 | /** |
| 537 | * @BATADV_CMD_GET_HARDIF: Get attributes from a hardif of the | 537 | * @BATADV_CMD_GET_HARDIF: Get attributes from a hardif of the |
| 538 | * current softif | 538 | * current mesh(if) |
| 539 | */ | 539 | */ |
| 540 | BATADV_CMD_GET_HARDIF, | 540 | BATADV_CMD_GET_HARDIF, |
| 541 | 541 | ||
| @@ -591,25 +591,25 @@ enum batadv_nl_commands { · 49 unmodified lines | |||
| 591 | BATADV_CMD_GET_MCAST_FLAGS, | 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 | BATADV_CMD_SET_MESH, | 596 | BATADV_CMD_SET_MESH, |
| 597 | 597 | ||
| 598 | /** | 598 | /** |
| 599 | * @BATADV_CMD_SET_HARDIF: Set attributes for hardif of the | 599 | * @BATADV_CMD_SET_HARDIF: Set attributes for hardif of the |
| 600 | * current softif | 600 | * current mesh(if) |
| 601 | */ | 601 | */ |
| 602 | BATADV_CMD_SET_HARDIF, | 602 | BATADV_CMD_SET_HARDIF, |
| 603 | 603 | ||
| 604 | /** | 604 | /** |
| 605 | * @BATADV_CMD_GET_VLAN: Get attributes from a VLAN of the | 605 | * @BATADV_CMD_GET_VLAN: Get attributes from a VLAN of the |
| 606 | * current softif | 606 | * current mesh(if) |
| 607 | */ | 607 | */ |
| 608 | BATADV_CMD_GET_VLAN, | 608 | BATADV_CMD_GET_VLAN, |
| 609 | 609 | ||
| 610 | /** | 610 | /** |
| 611 | * @BATADV_CMD_SET_VLAN: Set attributes for VLAN of the | 611 | * @BATADV_CMD_SET_VLAN: Set attributes for VLAN of the |
| 612 | * current softif | 612 | * current mesh(if) |
| 613 | */ | 613 | */ |
| 614 | BATADV_CMD_SET_VLAN, | 614 | BATADV_CMD_SET_VLAN, |
| 615 | 615 | ||
| @@ -691,7 +691,7 @@ enum batadv_ifla_attrs { · 75 unmodified lines | |||
| 691 | */ | 691 | */ |
| 692 | IFLA_BATADV_ALGO_NAME, | 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 | * @__IFLA_BATADV_MAX: internal use | 697 | * @__IFLA_BATADV_MAX: internal use |
| @@ -4,13 +4,9 @@ · 3 unmodified lines | |||
| 4 | #ifndef _UAPI_LINUX_BITS_H | 4 | #ifndef _UAPI_LINUX_BITS_H |
| 5 | #define _UAPI_LINUX_BITS_H | 5 | #define _UAPI_LINUX_BITS_H |
| 6 | 6 | ||
| 7 | #define __GENMASK(h, l) \ | 7 | #define __GENMASK(h, l) (((~_UL(0)) << (l)) & (~_UL(0) >> (BITS_PER_LONG - 1 - (h)))) |
| 8 | (((~_UL(0)) - (_UL(1) << (l)) + 1) & \ | ||
| 9 | (~_UL(0) >> (__BITS_PER_LONG - 1 - (h)))) | ||
| 10 | 8 | ||
| 11 | #define __GENMASK_ULL(h, l) \ | 9 | #define __GENMASK_ULL(h, l) (((~_ULL(0)) << (l)) & (~_ULL(0) >> (BITS_PER_LONG_LONG - 1 - (h)))) |
| 12 | (((~_ULL(0)) - (_ULL(1) << (l)) + 1) & \ | ||
| 13 | (~_ULL(0) >> (__BITS_PER_LONG_LONG - 1 - (h)))) | ||
| 14 | 10 | ||
| 15 | #define __GENMASK_U128(h, l) \ | 11 | #define __GENMASK_U128(h, l) \ |
| 16 | ((_BIT128((h)) << 1) - (_BIT128(l))) | 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 | #define BPF_XCHG (0xe0 | BPF_FETCH) /* atomic exchange */ | 51 | #define BPF_XCHG (0xe0 | BPF_FETCH) /* atomic exchange */ |
| 52 | #define BPF_CMPXCHG (0xf0 | BPF_FETCH) /* atomic compare-and-write */ | 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 | enum bpf_cond_pseudo_jmp { | 57 | enum bpf_cond_pseudo_jmp { |
| 55 | BPF_MAY_GOTO = 0, | 58 | BPF_MAY_GOTO = 0, |
| 56 | }; | 59 | }; |
| @@ -1207,6 +1210,7 @@ enum bpf_perf_event_type { · 1150 unmodified lines | |||
| 1207 | #define BPF_F_BEFORE (1U << 3) | 1210 | #define BPF_F_BEFORE (1U << 3) |
| 1208 | #define BPF_F_AFTER (1U << 4) | 1211 | #define BPF_F_AFTER (1U << 4) |
| 1209 | #define BPF_F_ID (1U << 5) | 1212 | #define BPF_F_ID (1U << 5) |
| 1213 | #define BPF_F_PREORDER (1U << 6) | ||
| 1210 | #define BPF_F_LINK BPF_F_LINK /* 1 << 13 */ | 1214 | #define BPF_F_LINK BPF_F_LINK /* 1 << 13 */ |
| 1211 | 1215 | ||
| 1212 | /* If BPF_F_STRICT_ALIGNMENT is used in BPF_PROG_LOAD command, the | 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 | __u32 next_id; | 1653 | __u32 next_id; |
| 1650 | __u32 open_flags; | 1654 | __u32 open_flags; |
| 1655 | __s32 fd_by_id_token_fd; | ||
| 1651 | }; | 1656 | }; |
| 1652 | 1657 | ||
| 1653 | struct { /* anonymous struct used by BPF_OBJ_GET_INFO_BY_FD */ | 1658 | struct { /* anonymous struct used by BPF_OBJ_GET_INFO_BY_FD */ |
| @@ -6019,7 +6024,10 @@ union bpf_attr { · 4365 unmodified lines | |||
| 6019 | FN(user_ringbuf_drain, 209, ##ctx) \ | 6024 | FN(user_ringbuf_drain, 209, ##ctx) \ |
| 6020 | FN(cgrp_storage_get, 210, ##ctx) \ | 6025 | FN(cgrp_storage_get, 210, ##ctx) \ |
| 6021 | FN(cgrp_storage_delete, 211, ##ctx) \ | 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 | /* backwards-compatibility macros for users of __BPF_FUNC_MAPPER that don't | 6032 | /* backwards-compatibility macros for users of __BPF_FUNC_MAPPER that don't |
| 6025 | * know or care about integer value that is now passed as second argument | 6033 | * know or care about integer value that is now passed as second argument |
| @@ -6913,6 +6921,12 @@ enum { · 887 unmodified lines | |||
| 6913 | BPF_SOCK_OPS_ALL_CB_FLAGS = 0x7F, | 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 | /* List of known BPF sock_ops operators. | 6930 | /* List of known BPF sock_ops operators. |
| 6917 | * New entries can only be added at the end | 6931 | * New entries can only be added at the end |
| 6918 | */ | 6932 | */ |
| @@ -7025,6 +7039,29 @@ enum { · 106 unmodified lines | |||
| 7025 | * by the kernel or the | 7039 | * by the kernel or the |
| 7026 | * earlier bpf-progs. | 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 | /* List of TCP states. There is a build check in net/ipv4/tcp.c to detect | 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 | TCP_BPF_SYN_IP = 1006, /* Copy the IP[46] and TCP header */ | 7128 | TCP_BPF_SYN_IP = 1006, /* Copy the IP[46] and TCP header */ |
| 7092 | TCP_BPF_SYN_MAC = 1007, /* Copy the MAC, IP[46], and TCP header */ | 7129 | TCP_BPF_SYN_MAC = 1007, /* Copy the MAC, IP[46], and TCP header */ |
| 7093 | TCP_BPF_SOCK_OPS_CB_FLAGS = 1008, /* Get or Set TCP sock ops flags */ | 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 | enum { | 7134 | enum { |
| @@ -36,7 +36,8 @@ struct btf_type { · 35 unmodified lines | |||
| 36 | * bits 24-28: kind (e.g. int, ptr, array...etc) | 36 | * bits 24-28: kind (e.g. int, ptr, array...etc) |
| 37 | * bits 29-30: unused | 37 | * bits 29-30: unused |
| 38 | * bit 31: kind_flag, currently used by | 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 | __u32 info; | 42 | __u32 info; |
| 42 | /* "size" is used by INT, ENUM, STRUCT, UNION, DATASEC and ENUM64. | 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 | #define BTRFS_DEFRAG_RANGE_COMPRESS 1 | 616 | #define BTRFS_DEFRAG_RANGE_COMPRESS 1 |
| 617 | #define BTRFS_DEFRAG_RANGE_START_IO 2 | 617 | #define BTRFS_DEFRAG_RANGE_START_IO 2 |
| 618 | #define BTRFS_DEFRAG_RANGE_COMPRESS_LEVEL 4 | ||
| 618 | #define BTRFS_DEFRAG_RANGE_FLAGS_SUPP (BTRFS_DEFRAG_RANGE_COMPRESS | \ | 619 | #define BTRFS_DEFRAG_RANGE_FLAGS_SUPP (BTRFS_DEFRAG_RANGE_COMPRESS | \ |
| 620 | BTRFS_DEFRAG_RANGE_COMPRESS_LEVEL | \ | ||
| 619 | BTRFS_DEFRAG_RANGE_START_IO) | 621 | BTRFS_DEFRAG_RANGE_START_IO) |
| 620 | 622 | ||
| 621 | struct btrfs_ioctl_defrag_range_args { | 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 | * which compression method to use if turning on compression | 644 | * which compression method to use if turning on compression |
| 643 | * for this defrag operation. If unspecified, zlib will | 645 | * for this defrag operation. If unspecified, zlib will be |
| 644 | * be used | 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 | /* spare for later */ | 658 | /* spare for later */ |
| 649 | __u32 unused[4]; | 659 | __u32 unused[4]; |
| @@ -182,7 +182,7 @@ struct canfd_frame { · 181 unmodified lines | |||
| 182 | /* | 182 | /* |
| 183 | * defined bits for canxl_frame.flags | 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 | * and shares the relative position of the struct can[fd]_frame.len element. | 186 | * and shares the relative position of the struct can[fd]_frame.len element. |
| 187 | * The CANXL_XLF bit ALWAYS needs to be set to indicate a valid CAN XL frame. | 187 | * The CANXL_XLF bit ALWAYS needs to be set to indicate a valid CAN XL frame. |
| 188 | * As a side effect setting this bit intentionally breaks the length checks | 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 | #define CANXL_XLF 0x80 /* mandatory CAN XL frame flag (must always be set!) */ | 193 | #define CANXL_XLF 0x80 /* mandatory CAN XL frame flag (must always be set!) */ |
| 194 | #define CANXL_SEC 0x01 /* Simple Extended Content (security/segmentation) */ | 194 | #define CANXL_SEC 0x01 /* Simple Extended Content (security/segmentation) */ |
| 195 | #define CANXL_RRS 0x02 /* Remote Request Substitution */ | ||
| 195 | 196 | ||
| 196 | /* the 8-bit VCID is optionally placed in the canxl_frame.prio element */ | 197 | /* the 8-bit VCID is optionally placed in the canxl_frame.prio element */ |
| 197 | #define CANXL_VCID_OFFSET 16 /* bit offset of VCID in prio element */ | 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 | /* Allow setting encryption key on loopback filesystem */ | 275 | /* Allow setting encryption key on loopback filesystem */ |
| 276 | /* Allow setting zone reclaim policy */ | 276 | /* Allow setting zone reclaim policy */ |
| 277 | /* Allow everything under CAP_BPF and CAP_PERFMON for backward compatibility */ | 277 | /* Allow everything under CAP_BPF and CAP_PERFMON for backward compatibility */ |
| 278 | /* Allow setting hardware protection emergency action */ | ||
| 278 | 279 | ||
| 279 | #define CAP_SYS_ADMIN 21 | 280 | #define CAP_SYS_ADMIN 21 |
| 280 | 281 | ||
| @@ -33,7 +33,7 @@ · 32 unmodified lines | |||
| 33 | * Missing asm support | 33 | * Missing asm support |
| 34 | * | 34 | * |
| 35 | * __BIT128() would not work in the asm code, as it shifts an | 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 | * 128 bit constants is not supported in the gcc compiler, as | 37 | * 128 bit constants is not supported in the gcc compiler, as |
| 38 | * they get silently truncated. | 38 | * they get silently truncated. |
| 39 | * | 39 | * |
| @@ -65,6 +65,8 @@ enum counter_event_type { · 64 unmodified lines | |||
| 65 | COUNTER_EVENT_CHANGE_OF_STATE, | 65 | COUNTER_EVENT_CHANGE_OF_STATE, |
| 66 | /* Count value captured */ | 66 | /* Count value captured */ |
| 67 | COUNTER_EVENT_CAPTURE, | 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 | typedef __u32 Elf32_Off; | 11 | typedef __u32 Elf32_Off; |
| 12 | typedef __s32 Elf32_Sword; | 12 | typedef __s32 Elf32_Sword; |
| 13 | typedef __u32 Elf32_Word; | 13 | typedef __u32 Elf32_Word; |
| 14 | typedef __u16 Elf32_Versym; | ||
| 14 | 15 | ||
| 15 | /* 64-bit ELF base types. */ | 16 | /* 64-bit ELF base types. */ |
| 16 | typedef __u64 Elf64_Addr; | 17 | typedef __u64 Elf64_Addr; |
| @@ -21,6 +22,7 @@ typedef __s32 Elf64_Sword; · 4 unmodified lines | |||
| 21 | typedef __u32 Elf64_Word; | 22 | typedef __u32 Elf64_Word; |
| 22 | typedef __u64 Elf64_Xword; | 23 | typedef __u64 Elf64_Xword; |
| 23 | typedef __s64 Elf64_Sxword; | 24 | typedef __s64 Elf64_Sxword; |
| 25 | typedef __u16 Elf64_Versym; | ||
| 24 | 26 | ||
| 25 | /* These constants are for the segment types stored in the image headers */ | 27 | /* These constants are for the segment types stored in the image headers */ |
| 26 | #define PT_NULL 0 | 28 | #define PT_NULL 0 |
| @@ -107,6 +109,7 @@ typedef __s64 Elf64_Sxword; · 80 unmodified lines | |||
| 107 | #define DT_VALRNGLO 0x6ffffd00 | 109 | #define DT_VALRNGLO 0x6ffffd00 |
| 108 | #define DT_VALRNGHI 0x6ffffdff | 110 | #define DT_VALRNGHI 0x6ffffdff |
| 109 | #define DT_ADDRRNGLO 0x6ffffe00 | 111 | #define DT_ADDRRNGLO 0x6ffffe00 |
| 112 | #define DT_GNU_HASH 0x6ffffef5 | ||
| 110 | #define DT_ADDRRNGHI 0x6ffffeff | 113 | #define DT_ADDRRNGHI 0x6ffffeff |
| 111 | #define DT_VERSYM 0x6ffffff0 | 114 | #define DT_VERSYM 0x6ffffff0 |
| 112 | #define DT_RELACOUNT 0x6ffffff9 | 115 | #define DT_RELACOUNT 0x6ffffff9 |
| @@ -125,6 +128,8 @@ typedef __s64 Elf64_Sxword; · 12 unmodified lines | |||
| 125 | #define STB_GLOBAL 1 | 128 | #define STB_GLOBAL 1 |
| 126 | #define STB_WEAK 2 | 129 | #define STB_WEAK 2 |
| 127 | 130 | ||
| 131 | #define STN_UNDEF 0 | ||
| 132 | |||
| 128 | #define STT_NOTYPE 0 | 133 | #define STT_NOTYPE 0 |
| 129 | #define STT_OBJECT 1 | 134 | #define STT_OBJECT 1 |
| 130 | #define STT_FUNC 2 | 135 | #define STT_FUNC 2 |
| @@ -133,6 +138,9 @@ typedef __s64 Elf64_Sxword; · 2 unmodified lines | |||
| 133 | #define STT_COMMON 5 | 138 | #define STT_COMMON 5 |
| 134 | #define STT_TLS 6 | 139 | #define STT_TLS 6 |
| 135 | 140 | ||
| 141 | #define VER_FLG_BASE 0x1 | ||
| 142 | #define VER_FLG_WEAK 0x2 | ||
| 143 | |||
| 136 | #define ELF_ST_BIND(x) ((x) >> 4) | 144 | #define ELF_ST_BIND(x) ((x) >> 4) |
| 137 | #define ELF_ST_TYPE(x) ((x) & 0xf) | 145 | #define ELF_ST_TYPE(x) ((x) & 0xf) |
| 138 | #define ELF32_ST_BIND(x) ELF_ST_BIND(x) | 146 | #define ELF32_ST_BIND(x) ELF_ST_BIND(x) |
| @@ -291,8 +299,18 @@ typedef struct elf64_phdr { · 152 unmodified lines | |||
| 291 | #define SHF_WRITE 0x1 | 299 | #define SHF_WRITE 0x1 |
| 292 | #define SHF_ALLOC 0x2 | 300 | #define SHF_ALLOC 0x2 |
| 293 | #define SHF_EXECINSTR 0x4 | 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 | #define SHF_RELA_LIVEPATCH 0x00100000 | 309 | #define SHF_RELA_LIVEPATCH 0x00100000 |
| 295 | #define SHF_RO_AFTER_INIT 0x00200000 | 310 | #define SHF_RO_AFTER_INIT 0x00200000 |
| 311 | #define SHF_ORDERED 0x04000000 | ||
| 312 | #define SHF_EXCLUDE 0x08000000 | ||
| 313 | #define SHF_MASKOS 0x0ff00000 | ||
| 296 | #define SHF_MASKPROC 0xf0000000 | 314 | #define SHF_MASKPROC 0xf0000000 |
| 297 | 315 | ||
| 298 | /* special section indexes */ | 316 | /* special section indexes */ |
| @@ -368,101 +386,180 @@ typedef struct elf64_shdr { · 69 unmodified lines | |||
| 368 | #define ELF_OSABI ELFOSABI_NONE | 386 | #define ELF_OSABI ELFOSABI_NONE |
| 369 | #endif | 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 | * Notes used in ET_CORE. Architectures export some of the arch register sets | 395 | * Notes used in ET_CORE. Architectures export some of the arch register sets |
| 373 | * using the corresponding note types via the PTRACE_GETREGSET and | 396 | * using the corresponding note types via the PTRACE_GETREGSET and |
| 374 | * PTRACE_SETREGSET requests. | 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 | #define NT_PRSTATUS 1 | 400 | #define NT_PRSTATUS 1 |
| 401 | #define NN_PRFPREG "CORE" | ||
| 379 | #define NT_PRFPREG 2 | 402 | #define NT_PRFPREG 2 |
| 403 | #define NN_PRPSINFO "CORE" | ||
| 380 | #define NT_PRPSINFO 3 | 404 | #define NT_PRPSINFO 3 |
| 405 | #define NN_TASKSTRUCT "CORE" | ||
| 381 | #define NT_TASKSTRUCT 4 | 406 | #define NT_TASKSTRUCT 4 |
| 407 | #define NN_AUXV "CORE" | ||
| 382 | #define NT_AUXV 6 | 408 | #define NT_AUXV 6 |
| 383 | /* | 409 | /* |
| 384 | * Note to userspace developers: size of NT_SIGINFO note may increase | 410 | * Note to userspace developers: size of NT_SIGINFO note may increase |
| 385 | * in the future to accomodate more fields, don't assume it is fixed! | 411 | * in the future to accomodate more fields, don't assume it is fixed! |
| 386 | */ | 412 | */ |
| 413 | #define NN_SIGINFO "CORE" | ||
| 387 | #define NT_SIGINFO 0x53494749 | 414 | #define NT_SIGINFO 0x53494749 |
| 415 | #define NN_FILE "CORE" | ||
| 388 | #define NT_FILE 0x46494c45 | 416 | #define NT_FILE 0x46494c45 |
| 417 | #define NN_PRXFPREG "LINUX" | ||
| 389 | #define NT_PRXFPREG 0x46e62b7f /* copied from gdb5.1/include/elf/common.h */ | 418 | #define NT_PRXFPREG 0x46e62b7f /* copied from gdb5.1/include/elf/common.h */ |
| 419 | #define NN_PPC_VMX "LINUX" | ||
| 390 | #define NT_PPC_VMX 0x100 /* PowerPC Altivec/VMX registers */ | 420 | #define NT_PPC_VMX 0x100 /* PowerPC Altivec/VMX registers */ |
| 421 | #define NN_PPC_SPE "LINUX" | ||
| 391 | #define NT_PPC_SPE 0x101 /* PowerPC SPE/EVR registers */ | 422 | #define NT_PPC_SPE 0x101 /* PowerPC SPE/EVR registers */ |
| 423 | #define NN_PPC_VSX "LINUX" | ||
| 392 | #define NT_PPC_VSX 0x102 /* PowerPC VSX registers */ | 424 | #define NT_PPC_VSX 0x102 /* PowerPC VSX registers */ |
| 425 | #define NN_PPC_TAR "LINUX" | ||
| 393 | #define NT_PPC_TAR 0x103 /* Target Address Register */ | 426 | #define NT_PPC_TAR 0x103 /* Target Address Register */ |
| 427 | #define NN_PPC_PPR "LINUX" | ||
| 394 | #define NT_PPC_PPR 0x104 /* Program Priority Register */ | 428 | #define NT_PPC_PPR 0x104 /* Program Priority Register */ |
| 429 | #define NN_PPC_DSCR "LINUX" | ||
| 395 | #define NT_PPC_DSCR 0x105 /* Data Stream Control Register */ | 430 | #define NT_PPC_DSCR 0x105 /* Data Stream Control Register */ |
| 431 | #define NN_PPC_EBB "LINUX" | ||
| 396 | #define NT_PPC_EBB 0x106 /* Event Based Branch Registers */ | 432 | #define NT_PPC_EBB 0x106 /* Event Based Branch Registers */ |
| 433 | #define NN_PPC_PMU "LINUX" | ||
| 397 | #define NT_PPC_PMU 0x107 /* Performance Monitor Registers */ | 434 | #define NT_PPC_PMU 0x107 /* Performance Monitor Registers */ |
| 435 | #define NN_PPC_TM_CGPR "LINUX" | ||
| 398 | #define NT_PPC_TM_CGPR 0x108 /* TM checkpointed GPR Registers */ | 436 | #define NT_PPC_TM_CGPR 0x108 /* TM checkpointed GPR Registers */ |
| 437 | #define NN_PPC_TM_CFPR "LINUX" | ||
| 399 | #define NT_PPC_TM_CFPR 0x109 /* TM checkpointed FPR Registers */ | 438 | #define NT_PPC_TM_CFPR 0x109 /* TM checkpointed FPR Registers */ |
| 439 | #define NN_PPC_TM_CVMX "LINUX" | ||
| 400 | #define NT_PPC_TM_CVMX 0x10a /* TM checkpointed VMX Registers */ | 440 | #define NT_PPC_TM_CVMX 0x10a /* TM checkpointed VMX Registers */ |
| 441 | #define NN_PPC_TM_CVSX "LINUX" | ||
| 401 | #define NT_PPC_TM_CVSX 0x10b /* TM checkpointed VSX Registers */ | 442 | #define NT_PPC_TM_CVSX 0x10b /* TM checkpointed VSX Registers */ |
| 443 | #define NN_PPC_TM_SPR "LINUX" | ||
| 402 | #define NT_PPC_TM_SPR 0x10c /* TM Special Purpose Registers */ | 444 | #define NT_PPC_TM_SPR 0x10c /* TM Special Purpose Registers */ |
| 445 | #define NN_PPC_TM_CTAR "LINUX" | ||
| 403 | #define NT_PPC_TM_CTAR 0x10d /* TM checkpointed Target Address Register */ | 446 | #define NT_PPC_TM_CTAR 0x10d /* TM checkpointed Target Address Register */ |
| 447 | #define NN_PPC_TM_CPPR "LINUX" | ||
| 404 | #define NT_PPC_TM_CPPR 0x10e /* TM checkpointed Program Priority Register */ | 448 | #define NT_PPC_TM_CPPR 0x10e /* TM checkpointed Program Priority Register */ |
| 449 | #define NN_PPC_TM_CDSCR "LINUX" | ||
| 405 | #define NT_PPC_TM_CDSCR 0x10f /* TM checkpointed Data Stream Control Register */ | 450 | #define NT_PPC_TM_CDSCR 0x10f /* TM checkpointed Data Stream Control Register */ |
| 451 | #define NN_PPC_PKEY "LINUX" | ||
| 406 | #define NT_PPC_PKEY 0x110 /* Memory Protection Keys registers */ | 452 | #define NT_PPC_PKEY 0x110 /* Memory Protection Keys registers */ |
| 453 | #define NN_PPC_DEXCR "LINUX" | ||
| 407 | #define NT_PPC_DEXCR 0x111 /* PowerPC DEXCR registers */ | 454 | #define NT_PPC_DEXCR 0x111 /* PowerPC DEXCR registers */ |
| 455 | #define NN_PPC_HASHKEYR "LINUX" | ||
| 408 | #define NT_PPC_HASHKEYR 0x112 /* PowerPC HASHKEYR register */ | 456 | #define NT_PPC_HASHKEYR 0x112 /* PowerPC HASHKEYR register */ |
| 457 | #define NN_386_TLS "LINUX" | ||
| 409 | #define NT_386_TLS 0x200 /* i386 TLS slots (struct user_desc) */ | 458 | #define NT_386_TLS 0x200 /* i386 TLS slots (struct user_desc) */ |
| 459 | #define NN_386_IOPERM "LINUX" | ||
| 410 | #define NT_386_IOPERM 0x201 /* x86 io permission bitmap (1=deny) */ | 460 | #define NT_386_IOPERM 0x201 /* x86 io permission bitmap (1=deny) */ |
| 461 | #define NN_X86_XSTATE "LINUX" | ||
| 411 | #define NT_X86_XSTATE 0x202 /* x86 extended state using xsave */ | 462 | #define NT_X86_XSTATE 0x202 /* x86 extended state using xsave */ |
| 412 | /* Old binutils treats 0x203 as a CET state */ | 463 | /* Old binutils treats 0x203 as a CET state */ |
| 464 | #define NN_X86_SHSTK "LINUX" | ||
| 413 | #define NT_X86_SHSTK 0x204 /* x86 SHSTK state */ | 465 | #define NT_X86_SHSTK 0x204 /* x86 SHSTK state */ |
| 466 | #define NN_X86_XSAVE_LAYOUT "LINUX" | ||
| 414 | #define NT_X86_XSAVE_LAYOUT 0x205 /* XSAVE layout description */ | 467 | #define NT_X86_XSAVE_LAYOUT 0x205 /* XSAVE layout description */ |
| 468 | #define NN_S390_HIGH_GPRS "LINUX" | ||
| 415 | #define NT_S390_HIGH_GPRS 0x300 /* s390 upper register halves */ | 469 | #define NT_S390_HIGH_GPRS 0x300 /* s390 upper register halves */ |
| 470 | #define NN_S390_TIMER "LINUX" | ||
| 416 | #define NT_S390_TIMER 0x301 /* s390 timer register */ | 471 | #define NT_S390_TIMER 0x301 /* s390 timer register */ |
| 472 | #define NN_S390_TODCMP "LINUX" | ||
| 417 | #define NT_S390_TODCMP 0x302 /* s390 TOD clock comparator register */ | 473 | #define NT_S390_TODCMP 0x302 /* s390 TOD clock comparator register */ |
| 474 | #define NN_S390_TODPREG "LINUX" | ||
| 418 | #define NT_S390_TODPREG 0x303 /* s390 TOD programmable register */ | 475 | #define NT_S390_TODPREG 0x303 /* s390 TOD programmable register */ |
| 476 | #define NN_S390_CTRS "LINUX" | ||
| 419 | #define NT_S390_CTRS 0x304 /* s390 control registers */ | 477 | #define NT_S390_CTRS 0x304 /* s390 control registers */ |
| 478 | #define NN_S390_PREFIX "LINUX" | ||
| 420 | #define NT_S390_PREFIX 0x305 /* s390 prefix register */ | 479 | #define NT_S390_PREFIX 0x305 /* s390 prefix register */ |
| 480 | #define NN_S390_LAST_BREAK "LINUX" | ||
| 421 | #define NT_S390_LAST_BREAK 0x306 /* s390 breaking event address */ | 481 | #define NT_S390_LAST_BREAK 0x306 /* s390 breaking event address */ |
| 482 | #define NN_S390_SYSTEM_CALL "LINUX" | ||
| 422 | #define NT_S390_SYSTEM_CALL 0x307 /* s390 system call restart data */ | 483 | #define NT_S390_SYSTEM_CALL 0x307 /* s390 system call restart data */ |
| 484 | #define NN_S390_TDB "LINUX" | ||
| 423 | #define NT_S390_TDB 0x308 /* s390 transaction diagnostic block */ | 485 | #define NT_S390_TDB 0x308 /* s390 transaction diagnostic block */ |
| 486 | #define NN_S390_VXRS_LOW "LINUX" | ||
| 424 | #define NT_S390_VXRS_LOW 0x309 /* s390 vector registers 0-15 upper half */ | 487 | #define NT_S390_VXRS_LOW 0x309 /* s390 vector registers 0-15 upper half */ |
| 488 | #define NN_S390_VXRS_HIGH "LINUX" | ||
| 425 | #define NT_S390_VXRS_HIGH 0x30a /* s390 vector registers 16-31 */ | 489 | #define NT_S390_VXRS_HIGH 0x30a /* s390 vector registers 16-31 */ |
| 490 | #define NN_S390_GS_CB "LINUX" | ||
| 426 | #define NT_S390_GS_CB 0x30b /* s390 guarded storage registers */ | 491 | #define NT_S390_GS_CB 0x30b /* s390 guarded storage registers */ |
| 492 | #define NN_S390_GS_BC "LINUX" | ||
| 427 | #define NT_S390_GS_BC 0x30c /* s390 guarded storage broadcast control block */ | 493 | #define NT_S390_GS_BC 0x30c /* s390 guarded storage broadcast control block */ |
| 494 | #define NN_S390_RI_CB "LINUX" | ||
| 428 | #define NT_S390_RI_CB 0x30d /* s390 runtime instrumentation */ | 495 | #define NT_S390_RI_CB 0x30d /* s390 runtime instrumentation */ |
| 496 | #define NN_S390_PV_CPU_DATA "LINUX" | ||
| 429 | #define NT_S390_PV_CPU_DATA 0x30e /* s390 protvirt cpu dump data */ | 497 | #define NT_S390_PV_CPU_DATA 0x30e /* s390 protvirt cpu dump data */ |
| 498 | #define NN_ARM_VFP "LINUX" | ||
| 430 | #define NT_ARM_VFP 0x400 /* ARM VFP/NEON registers */ | 499 | #define NT_ARM_VFP 0x400 /* ARM VFP/NEON registers */ |
| 500 | #define NN_ARM_TLS "LINUX" | ||
| 431 | #define NT_ARM_TLS 0x401 /* ARM TLS register */ | 501 | #define NT_ARM_TLS 0x401 /* ARM TLS register */ |
| 502 | #define NN_ARM_HW_BREAK "LINUX" | ||
| 432 | #define NT_ARM_HW_BREAK 0x402 /* ARM hardware breakpoint registers */ | 503 | #define NT_ARM_HW_BREAK 0x402 /* ARM hardware breakpoint registers */ |
| 504 | #define NN_ARM_HW_WATCH "LINUX" | ||
| 433 | #define NT_ARM_HW_WATCH 0x403 /* ARM hardware watchpoint registers */ | 505 | #define NT_ARM_HW_WATCH 0x403 /* ARM hardware watchpoint registers */ |
| 506 | #define NN_ARM_SYSTEM_CALL "LINUX" | ||
| 434 | #define NT_ARM_SYSTEM_CALL 0x404 /* ARM system call number */ | 507 | #define NT_ARM_SYSTEM_CALL 0x404 /* ARM system call number */ |
| 508 | #define NN_ARM_SVE "LINUX" | ||
| 435 | #define NT_ARM_SVE 0x405 /* ARM Scalable Vector Extension registers */ | 509 | #define NT_ARM_SVE 0x405 /* ARM Scalable Vector Extension registers */ |
| 510 | #define NN_ARM_PAC_MASK "LINUX" | ||
| 436 | #define NT_ARM_PAC_MASK 0x406 /* ARM pointer authentication code masks */ | 511 | #define NT_ARM_PAC_MASK 0x406 /* ARM pointer authentication code masks */ |
| 512 | #define NN_ARM_PACA_KEYS "LINUX" | ||
| 437 | #define NT_ARM_PACA_KEYS 0x407 /* ARM pointer authentication address keys */ | 513 | #define NT_ARM_PACA_KEYS 0x407 /* ARM pointer authentication address keys */ |
| 514 | #define NN_ARM_PACG_KEYS "LINUX" | ||
| 438 | #define NT_ARM_PACG_KEYS 0x408 /* ARM pointer authentication generic key */ | 515 | #define NT_ARM_PACG_KEYS 0x408 /* ARM pointer authentication generic key */ |
| 516 | #define NN_ARM_TAGGED_ADDR_CTRL "LINUX" | ||
| 439 | #define NT_ARM_TAGGED_ADDR_CTRL 0x409 /* arm64 tagged address control (prctl()) */ | 517 | #define NT_ARM_TAGGED_ADDR_CTRL 0x409 /* arm64 tagged address control (prctl()) */ |
| 518 | #define NN_ARM_PAC_ENABLED_KEYS "LINUX" | ||
| 440 | #define NT_ARM_PAC_ENABLED_KEYS 0x40a /* arm64 ptr auth enabled keys (prctl()) */ | 519 | #define NT_ARM_PAC_ENABLED_KEYS 0x40a /* arm64 ptr auth enabled keys (prctl()) */ |
| 520 | #define NN_ARM_SSVE "LINUX" | ||
| 441 | #define NT_ARM_SSVE 0x40b /* ARM Streaming SVE registers */ | 521 | #define NT_ARM_SSVE 0x40b /* ARM Streaming SVE registers */ |
| 522 | #define NN_ARM_ZA "LINUX" | ||
| 442 | #define NT_ARM_ZA 0x40c /* ARM SME ZA registers */ | 523 | #define NT_ARM_ZA 0x40c /* ARM SME ZA registers */ |
| 524 | #define NN_ARM_ZT "LINUX" | ||
| 443 | #define NT_ARM_ZT 0x40d /* ARM SME ZT registers */ | 525 | #define NT_ARM_ZT 0x40d /* ARM SME ZT registers */ |
| 526 | #define NN_ARM_FPMR "LINUX" | ||
| 444 | #define NT_ARM_FPMR 0x40e /* ARM floating point mode register */ | 527 | #define NT_ARM_FPMR 0x40e /* ARM floating point mode register */ |
| 528 | #define NN_ARM_POE "LINUX" | ||
| 445 | #define NT_ARM_POE 0x40f /* ARM POE registers */ | 529 | #define NT_ARM_POE 0x40f /* ARM POE registers */ |
| 530 | #define NN_ARM_GCS "LINUX" | ||
| 446 | #define NT_ARM_GCS 0x410 /* ARM GCS state */ | 531 | #define NT_ARM_GCS 0x410 /* ARM GCS state */ |
| 532 | #define NN_ARC_V2 "LINUX" | ||
| 447 | #define NT_ARC_V2 0x600 /* ARCv2 accumulator/extra registers */ | 533 | #define NT_ARC_V2 0x600 /* ARCv2 accumulator/extra registers */ |
| 534 | #define NN_VMCOREDD "LINUX" | ||
| 448 | #define NT_VMCOREDD 0x700 /* Vmcore Device Dump Note */ | 535 | #define NT_VMCOREDD 0x700 /* Vmcore Device Dump Note */ |
| 536 | #define NN_MIPS_DSP "LINUX" | ||
| 449 | #define NT_MIPS_DSP 0x800 /* MIPS DSP ASE registers */ | 537 | #define NT_MIPS_DSP 0x800 /* MIPS DSP ASE registers */ |
| 538 | #define NN_MIPS_FP_MODE "LINUX" | ||
| 450 | #define NT_MIPS_FP_MODE 0x801 /* MIPS floating-point mode */ | 539 | #define NT_MIPS_FP_MODE 0x801 /* MIPS floating-point mode */ |
| 540 | #define NN_MIPS_MSA "LINUX" | ||
| 451 | #define NT_MIPS_MSA 0x802 /* MIPS SIMD registers */ | 541 | #define NT_MIPS_MSA 0x802 /* MIPS SIMD registers */ |
| 542 | #define NN_RISCV_CSR "LINUX" | ||
| 452 | #define NT_RISCV_CSR 0x900 /* RISC-V Control and Status Registers */ | 543 | #define NT_RISCV_CSR 0x900 /* RISC-V Control and Status Registers */ |
| 544 | #define NN_RISCV_VECTOR "LINUX" | ||
| 453 | #define NT_RISCV_VECTOR 0x901 /* RISC-V vector registers */ | 545 | #define NT_RISCV_VECTOR 0x901 /* RISC-V vector registers */ |
| 546 | #define NN_RISCV_TAGGED_ADDR_CTRL "LINUX" | ||
| 454 | #define NT_RISCV_TAGGED_ADDR_CTRL 0x902 /* RISC-V tagged address control (prctl()) */ | 547 | #define NT_RISCV_TAGGED_ADDR_CTRL 0x902 /* RISC-V tagged address control (prctl()) */ |
| 548 | #define NN_LOONGARCH_CPUCFG "LINUX" | ||
| 455 | #define NT_LOONGARCH_CPUCFG 0xa00 /* LoongArch CPU config registers */ | 549 | #define NT_LOONGARCH_CPUCFG 0xa00 /* LoongArch CPU config registers */ |
| 550 | #define NN_LOONGARCH_CSR "LINUX" | ||
| 456 | #define NT_LOONGARCH_CSR 0xa01 /* LoongArch control and status registers */ | 551 | #define NT_LOONGARCH_CSR 0xa01 /* LoongArch control and status registers */ |
| 552 | #define NN_LOONGARCH_LSX "LINUX" | ||
| 457 | #define NT_LOONGARCH_LSX 0xa02 /* LoongArch Loongson SIMD Extension registers */ | 553 | #define NT_LOONGARCH_LSX 0xa02 /* LoongArch Loongson SIMD Extension registers */ |
| 554 | #define NN_LOONGARCH_LASX "LINUX" | ||
| 458 | #define NT_LOONGARCH_LASX 0xa03 /* LoongArch Loongson Advanced SIMD Extension registers */ | 555 | #define NT_LOONGARCH_LASX 0xa03 /* LoongArch Loongson Advanced SIMD Extension registers */ |
| 556 | #define NN_LOONGARCH_LBT "LINUX" | ||
| 459 | #define NT_LOONGARCH_LBT 0xa04 /* LoongArch Loongson Binary Translation registers */ | 557 | #define NT_LOONGARCH_LBT 0xa04 /* LoongArch Loongson Binary Translation registers */ |
| 558 | #define NN_LOONGARCH_HW_BREAK "LINUX" | ||
| 460 | #define NT_LOONGARCH_HW_BREAK 0xa05 /* LoongArch hardware breakpoint registers */ | 559 | #define NT_LOONGARCH_HW_BREAK 0xa05 /* LoongArch hardware breakpoint registers */ |
| 560 | #define NN_LOONGARCH_HW_WATCH "LINUX" | ||
| 461 | #define NT_LOONGARCH_HW_WATCH 0xa06 /* LoongArch hardware watchpoint registers */ | 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 | /* Note header in a PT_NOTE section */ | 563 | /* Note header in a PT_NOTE section */ |
| 467 | typedef struct elf32_note { | 564 | typedef struct elf32_note { |
| 468 | Elf32_Word n_namesz; /* Name size */ | 565 | Elf32_Word n_namesz; /* Name size */ |
| @@ -483,4 +580,34 @@ typedef struct elf64_note { · 14 unmodified lines | |||
| 483 | /* Bits for GNU_PROPERTY_AARCH64_FEATURE_1_BTI */ | 580 | /* Bits for GNU_PROPERTY_AARCH64_FEATURE_1_BTI */ |
| 484 | #define GNU_PROPERTY_AARCH64_FEATURE_1_BTI (1U << 0) | 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 | #endif /* _UAPI_LINUX_ELF_H */ | 613 | #endif /* _UAPI_LINUX_ELF_H */ |
| @@ -73,6 +73,7 @@ enum { · 72 unmodified lines | |||
| 73 | SCM_TSTAMP_SND, /* driver passed skb to NIC, or HW */ | 73 | SCM_TSTAMP_SND, /* driver passed skb to NIC, or HW */ |
| 74 | SCM_TSTAMP_SCHED, /* data entered the packet scheduler */ | 74 | SCM_TSTAMP_SCHED, /* data entered the packet scheduler */ |
| 75 | SCM_TSTAMP_ACK, /* data acknowledged by peer */ | 75 | SCM_TSTAMP_ACK, /* data acknowledged by peer */ |
| 76 | SCM_TSTAMP_COMPLETION, /* packet tx completion */ | ||
| 76 | }; | 77 | }; |
| 77 | 78 | ||
| 78 | #endif /* _UAPI_LINUX_ERRQUEUE_H */ | 79 | #endif /* _UAPI_LINUX_ERRQUEUE_H */ |
| @@ -2059,6 +2059,24 @@ enum ethtool_link_mode_bit_indices { · 2058 unmodified lines | |||
| 2059 | ETHTOOL_LINK_MODE_10baseT1S_Half_BIT = 100, | 2059 | ETHTOOL_LINK_MODE_10baseT1S_Half_BIT = 100, |
| 2060 | ETHTOOL_LINK_MODE_10baseT1S_P2MP_Half_BIT = 101, | 2060 | ETHTOOL_LINK_MODE_10baseT1S_P2MP_Half_BIT = 101, |
| 2061 | ETHTOOL_LINK_MODE_10baseT1BRR_Full_BIT = 102, | 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 | /* must be last entry */ | 2081 | /* must be last entry */ |
| 2064 | __ETHTOOL_LINK_MODE_MASK_NBITS | 2082 | __ETHTOOL_LINK_MODE_MASK_NBITS |
| @@ -2271,6 +2289,10 @@ static inline int ethtool_validate_duplex(__u8 duplex) · 206 unmodified lines | |||
| 2271 | * be exploited to reduce the RSS queue spread. | 2289 | * be exploited to reduce the RSS queue spread. |
| 2272 | */ | 2290 | */ |
| 2273 | #define RXH_XFRM_SYM_XOR (1 << 0) | 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 | #define RXH_XFRM_NO_CHANGE 0xff | 2296 | #define RXH_XFRM_NO_CHANGE 0xff |
| 2275 | 2297 | ||
| 2276 | /* L2-L4 network traffic flow types */ | 2298 | /* L2-L4 network traffic flow types */ |
| @@ -44,6 +44,7 @@ · 43 unmodified lines | |||
| 44 | #define F2FS_IOC_COMPRESS_FILE _IO(F2FS_IOCTL_MAGIC, 24) | 44 | #define F2FS_IOC_COMPRESS_FILE _IO(F2FS_IOCTL_MAGIC, 24) |
| 45 | #define F2FS_IOC_START_ATOMIC_REPLACE _IO(F2FS_IOCTL_MAGIC, 25) | 45 | #define F2FS_IOC_START_ATOMIC_REPLACE _IO(F2FS_IOCTL_MAGIC, 25) |
| 46 | #define F2FS_IOC_GET_DEV_ALIAS_FILE _IOR(F2FS_IOCTL_MAGIC, 26, __u32) | 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 | * should be same as XFS_IOC_GOINGDOWN. | 50 | * should be same as XFS_IOC_GOINGDOWN. |
| @@ -63,6 +64,12 @@ · 13 unmodified lines | |||
| 63 | #define F2FS_TRIM_FILE_ZEROOUT 0x2 /* zero out */ | 64 | #define F2FS_TRIM_FILE_ZEROOUT 0x2 /* zero out */ |
| 64 | #define F2FS_TRIM_FILE_MASK 0x3 | 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 | struct f2fs_gc_range { | 73 | struct f2fs_gc_range { |
| 67 | __u32 sync; | 74 | __u32 sync; |
| 68 | __u64 start; | 75 | __u64 start; |
| @@ -28,6 +28,8 @@ · 27 unmodified lines | |||
| 28 | /* #define FAN_DIR_MODIFY 0x00080000 */ /* Deprecated (reserved) */ | 28 | /* #define FAN_DIR_MODIFY 0x00080000 */ /* Deprecated (reserved) */ |
| 29 | 29 | ||
| 30 | #define FAN_PRE_ACCESS 0x00100000 /* Pre-content access hook */ | 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 | #define FAN_EVENT_ON_CHILD 0x08000000 /* Interested in child events */ | 34 | #define FAN_EVENT_ON_CHILD 0x08000000 /* Interested in child events */ |
| 33 | 35 | ||
| @@ -64,6 +66,7 @@ · 30 unmodified lines | |||
| 64 | #define FAN_REPORT_NAME 0x00000800 /* Report events with name */ | 66 | #define FAN_REPORT_NAME 0x00000800 /* Report events with name */ |
| 65 | #define FAN_REPORT_TARGET_FID 0x00001000 /* Report dirent target id */ | 67 | #define FAN_REPORT_TARGET_FID 0x00001000 /* Report dirent target id */ |
| 66 | #define FAN_REPORT_FD_ERROR 0x00002000 /* event->fd can report error */ | 68 | #define FAN_REPORT_FD_ERROR 0x00002000 /* event->fd can report error */ |
| 69 | #define FAN_REPORT_MNT 0x00004000 /* Report mount events */ | ||
| 67 | 70 | ||
| 68 | /* Convenience macro - FAN_REPORT_NAME requires FAN_REPORT_DIR_FID */ | 71 | /* Convenience macro - FAN_REPORT_NAME requires FAN_REPORT_DIR_FID */ |
| 69 | #define FAN_REPORT_DFID_NAME (FAN_REPORT_DIR_FID | FAN_REPORT_NAME) | 72 | #define FAN_REPORT_DFID_NAME (FAN_REPORT_DIR_FID | FAN_REPORT_NAME) |
| @@ -94,6 +97,7 @@ · 24 unmodified lines | |||
| 94 | #define FAN_MARK_INODE 0x00000000 | 97 | #define FAN_MARK_INODE 0x00000000 |
| 95 | #define FAN_MARK_MOUNT 0x00000010 | 98 | #define FAN_MARK_MOUNT 0x00000010 |
| 96 | #define FAN_MARK_FILESYSTEM 0x00000100 | 99 | #define FAN_MARK_FILESYSTEM 0x00000100 |
| 100 | #define FAN_MARK_MNTNS 0x00000110 | ||
| 97 | 101 | ||
| 98 | /* | 102 | /* |
| 99 | * Convenience macro - FAN_MARK_IGNORE requires FAN_MARK_IGNORED_SURV_MODIFY | 103 | * Convenience macro - FAN_MARK_IGNORE requires FAN_MARK_IGNORED_SURV_MODIFY |
| @@ -147,6 +151,7 @@ struct fanotify_event_metadata { · 47 unmodified lines | |||
| 147 | #define FAN_EVENT_INFO_TYPE_PIDFD 4 | 151 | #define FAN_EVENT_INFO_TYPE_PIDFD 4 |
| 148 | #define FAN_EVENT_INFO_TYPE_ERROR 5 | 152 | #define FAN_EVENT_INFO_TYPE_ERROR 5 |
| 149 | #define FAN_EVENT_INFO_TYPE_RANGE 6 | 153 | #define FAN_EVENT_INFO_TYPE_RANGE 6 |
| 154 | #define FAN_EVENT_INFO_TYPE_MNT 7 | ||
| 150 | 155 | ||
| 151 | /* Special info types for FAN_RENAME */ | 156 | /* Special info types for FAN_RENAME */ |
| 152 | #define FAN_EVENT_INFO_TYPE_OLD_DFID_NAME 10 | 157 | #define FAN_EVENT_INFO_TYPE_OLD_DFID_NAME 10 |
| @@ -200,6 +205,11 @@ struct fanotify_event_info_range { · 47 unmodified lines | |||
| 200 | __u64 count; | 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 | * User space may need to record additional information about its decision. | 214 | * User space may need to record additional information about its decision. |
| 205 | * The extra information type records what kind of information is included. | 215 | * The extra information type records what kind of information is included. |
| @@ -70,6 +70,9 @@ enum { · 69 unmodified lines | |||
| 70 | FRA_DSCP, /* dscp */ | 70 | FRA_DSCP, /* dscp */ |
| 71 | FRA_FLOWLABEL, /* flowlabel */ | 71 | FRA_FLOWLABEL, /* flowlabel */ |
| 72 | FRA_FLOWLABEL_MASK, /* flowlabel mask */ | 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 | __FRA_MAX | 76 | __FRA_MAX |
| 74 | }; | 77 | }; |
| 75 | 78 | ||
| @@ -449,7 +449,8 @@ struct fw_cdev_event_phy_packet { · 448 unmodified lines | |||
| 449 | * which the packet arrived. For %FW_CDEV_EVENT_PHY_PACKET_SENT2 and non-ping packet, | 449 | * which the packet arrived. For %FW_CDEV_EVENT_PHY_PACKET_SENT2 and non-ping packet, |
| 450 | * the time stamp of isochronous cycle at which the packet was sent. For ping packet, | 450 | * the time stamp of isochronous cycle at which the packet was sent. For ping packet, |
| 451 | * the tick count for round-trip time measured by 1394 OHCI controller. | 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 | * %FW_CDEV_EVENT_PHY_PACKET_SENT2 or the request arrived for | 454 | * %FW_CDEV_EVENT_PHY_PACKET_SENT2 or the request arrived for |
| 454 | * %FW_CDEV_EVENT_PHY_PACKET_RECEIVED2. | 455 | * %FW_CDEV_EVENT_PHY_PACKET_RECEIVED2. |
| 455 | * @data: Incoming data | 456 | * @data: Incoming data |
| @@ -212,10 +212,8 @@ struct fsxattr { · 211 unmodified lines | |||
| 212 | #define BLKROTATIONAL _IO(0x12,126) | 212 | #define BLKROTATIONAL _IO(0x12,126) |
| 213 | #define BLKZEROOUT _IO(0x12,127) | 213 | #define BLKZEROOUT _IO(0x12,127) |
| 214 | #define BLKGETDISKSEQ _IOR(0x12,128,__u64) | 214 | #define BLKGETDISKSEQ _IOR(0x12,128,__u64) |
| 215 | /* | 215 | /* 130-136 are used by zoned block device ioctls (uapi/linux/blkzoned.h) */ |
| 216 | * A jump here: 130-136 are reserved for zoned block devices | 216 | /* 137-141 are used by blk-crypto ioctls (uapi/linux/blk-crypto.h) */ |
| 217 | * (see uapi/linux/blkzoned.h) | ||
| 218 | */ | ||
| 219 | 217 | ||
| 220 | #define BMAP_IOCTL 1 /* obsolete - kept for compatibility */ | 218 | #define BMAP_IOCTL 1 /* obsolete - kept for compatibility */ |
| 221 | #define FIBMAP _IO(0x00,1) /* bmap access */ | 219 | #define FIBMAP _IO(0x00,1) /* bmap access */ |
| @@ -229,6 +229,9 @@ · 228 unmodified lines | |||
| 229 | * - FUSE_URING_IN_OUT_HEADER_SZ | 229 | * - FUSE_URING_IN_OUT_HEADER_SZ |
| 230 | * - FUSE_URING_OP_IN_OUT_SZ | 230 | * - FUSE_URING_OP_IN_OUT_SZ |
| 231 | * - enum fuse_uring_cmd | 231 | * - enum fuse_uring_cmd |
| 232 | * | ||
| 233 | * 7.43 | ||
| 234 | * - add FUSE_REQUEST_TIMEOUT | ||
| 232 | */ | 235 | */ |
| 233 | 236 | ||
| 234 | #ifndef _LINUX_FUSE_H | 237 | #ifndef _LINUX_FUSE_H |
| @@ -264,7 +267,7 @@ · 29 unmodified lines | |||
| 264 | #define FUSE_KERNEL_VERSION 7 | 267 | #define FUSE_KERNEL_VERSION 7 |
| 265 | 268 | ||
| 266 | /** Minor version number of this interface */ | 269 | /** Minor version number of this interface */ |
| 267 | #define FUSE_KERNEL_MINOR_VERSION 42 | 270 | #define FUSE_KERNEL_MINOR_VERSION 43 |
| 268 | 271 | ||
| 269 | /** The node ID of the root inode */ | 272 | /** The node ID of the root inode */ |
| 270 | #define FUSE_ROOT_ID 1 | 273 | #define FUSE_ROOT_ID 1 |
| @@ -435,6 +438,8 @@ struct fuse_file_lock { · 164 unmodified lines | |||
| 435 | * of the request ID indicates resend requests | 438 | * of the request ID indicates resend requests |
| 436 | * FUSE_ALLOW_IDMAP: allow creation of idmapped mounts | 439 | * FUSE_ALLOW_IDMAP: allow creation of idmapped mounts |
| 437 | * FUSE_OVER_IO_URING: Indicate that client supports io-uring | 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 | #define FUSE_ASYNC_READ (1 << 0) | 444 | #define FUSE_ASYNC_READ (1 << 0) |
| 440 | #define FUSE_POSIX_LOCKS (1 << 1) | 445 | #define FUSE_POSIX_LOCKS (1 << 1) |
| @@ -477,11 +482,11 @@ struct fuse_file_lock { · 36 unmodified lines | |||
| 477 | #define FUSE_PASSTHROUGH (1ULL << 37) | 482 | #define FUSE_PASSTHROUGH (1ULL << 37) |
| 478 | #define FUSE_NO_EXPORT_SUPPORT (1ULL << 38) | 483 | #define FUSE_NO_EXPORT_SUPPORT (1ULL << 38) |
| 479 | #define FUSE_HAS_RESEND (1ULL << 39) | 484 | #define FUSE_HAS_RESEND (1ULL << 39) |
| 480 | |||
| 481 | /* Obsolete alias for FUSE_DIRECT_IO_ALLOW_MMAP */ | 485 | /* Obsolete alias for FUSE_DIRECT_IO_ALLOW_MMAP */ |
| 482 | #define FUSE_DIRECT_IO_RELAX FUSE_DIRECT_IO_ALLOW_MMAP | 486 | #define FUSE_DIRECT_IO_RELAX FUSE_DIRECT_IO_ALLOW_MMAP |
| 483 | #define FUSE_ALLOW_IDMAP (1ULL << 40) | 487 | #define FUSE_ALLOW_IDMAP (1ULL << 40) |
| 484 | #define FUSE_OVER_IO_URING (1ULL << 41) | 488 | #define FUSE_OVER_IO_URING (1ULL << 41) |
| 489 | #define FUSE_REQUEST_TIMEOUT (1ULL << 42) | ||
| 485 | 490 | ||
| 486 | /** | 491 | /** |
| 487 | * CUSE INIT request/reply flags | 492 | * CUSE INIT request/reply flags |
| @@ -909,7 +914,8 @@ struct fuse_init_out { · 421 unmodified lines | |||
| 909 | uint16_t map_alignment; | 914 | uint16_t map_alignment; |
| 910 | uint32_t flags2; | 915 | uint32_t flags2; |
| 911 | uint32_t max_stack_depth; | 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 | #define CUSE_INIT_INFO_MAX 4096 | 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 | IFLA_GRO_IPV4_MAX_SIZE, | 378 | IFLA_GRO_IPV4_MAX_SIZE, |
| 379 | IFLA_DPLL_PIN, | 379 | IFLA_DPLL_PIN, |
| 380 | IFLA_MAX_PACING_OFFLOAD_HORIZON, | 380 | IFLA_MAX_PACING_OFFLOAD_HORIZON, |
| 381 | IFLA_NETNS_IMMUTABLE, | ||
| 381 | __IFLA_MAX | 382 | __IFLA_MAX |
| 382 | }; | 383 | }; |
| 383 | 384 | ||
| @@ -1438,6 +1439,7 @@ enum { · 1054 unmodified lines | |||
| 1438 | IFLA_GENEVE_TTL_INHERIT, | 1439 | IFLA_GENEVE_TTL_INHERIT, |
| 1439 | IFLA_GENEVE_DF, | 1440 | IFLA_GENEVE_DF, |
| 1440 | IFLA_GENEVE_INNER_PROTO_INHERIT, | 1441 | IFLA_GENEVE_INNER_PROTO_INHERIT, |
| 1442 | IFLA_GENEVE_PORT_RANGE, | ||
| 1441 | __IFLA_GENEVE_MAX | 1443 | __IFLA_GENEVE_MAX |
| 1442 | }; | 1444 | }; |
| 1443 | #define IFLA_GENEVE_MAX (__IFLA_GENEVE_MAX - 1) | 1445 | #define IFLA_GENEVE_MAX (__IFLA_GENEVE_MAX - 1) |
| @@ -1450,6 +1452,11 @@ enum ifla_geneve_df { · 6 unmodified lines | |||
| 1450 | GENEVE_DF_MAX = __GENEVE_DF_END - 1, | 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 | /* Bareudp section */ | 1460 | /* Bareudp section */ |
| 1454 | enum { | 1461 | enum { |
| 1455 | IFLA_BAREUDP_UNSPEC, | 1462 | IFLA_BAREUDP_UNSPEC, |
| @@ -127,6 +127,12 @@ struct xdp_options { · 126 unmodified lines | |||
| 127 | */ | 127 | */ |
| 128 | #define XDP_TXMD_FLAGS_CHECKSUM (1 << 1) | 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 | /* AF_XDP offloads request. 'request' union member is consumed by the driver | 136 | /* AF_XDP offloads request. 'request' union member is consumed by the driver |
| 131 | * when the packet is being transmitted. 'completion' union member is | 137 | * when the packet is being transmitted. 'completion' union member is |
| 132 | * filled by the driver when the transmit completion arrives. | 138 | * filled by the driver when the transmit completion arrives. |
| @@ -142,6 +148,10 @@ struct xsk_tx_metadata { · 9 unmodified lines | |||
| 142 | __u16 csum_start; | 148 | __u16 csum_start; |
| 143 | /* Offset from csum_start where checksum should be stored. */ | 149 | /* Offset from csum_start where checksum should be stored. */ |
| 144 | __u16 csum_offset; | 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 | } request; | 155 | } request; |
| 146 | 156 | ||
| 147 | struct { | 157 | struct { |
| @@ -119,6 +119,7 @@ enum iio_event_type { · 118 unmodified lines | |||
| 119 | IIO_EV_TYPE_CHANGE, | 119 | IIO_EV_TYPE_CHANGE, |
| 120 | IIO_EV_TYPE_MAG_REFERENCED, | 120 | IIO_EV_TYPE_MAG_REFERENCED, |
| 121 | IIO_EV_TYPE_GESTURE, | 121 | IIO_EV_TYPE_GESTURE, |
| 122 | IIO_EV_TYPE_FAULT, | ||
| 122 | }; | 123 | }; |
| 123 | 124 | ||
| 124 | enum iio_event_direction { | 125 | enum iio_event_direction { |
| @@ -128,6 +129,7 @@ enum iio_event_direction { · 3 unmodified lines | |||
| 128 | IIO_EV_DIR_NONE, | 129 | IIO_EV_DIR_NONE, |
| 129 | IIO_EV_DIR_SINGLETAP, | 130 | IIO_EV_DIR_SINGLETAP, |
| 130 | IIO_EV_DIR_DOUBLETAP, | 131 | IIO_EV_DIR_DOUBLETAP, |
| 132 | IIO_EV_DIR_FAULT_OPENWIRE, | ||
| 131 | }; | 133 | }; |
| 132 | 134 | ||
| 133 | #endif /* _UAPI_IIO_TYPES_H_ */ | 135 | #endif /* _UAPI_IIO_TYPES_H_ */ |
| @@ -87,6 +87,7 @@ struct io_uring_sqe { · 86 unmodified lines | |||
| 87 | union { | 87 | union { |
| 88 | __s32 splice_fd_in; | 88 | __s32 splice_fd_in; |
| 89 | __u32 file_index; | 89 | __u32 file_index; |
| 90 | __u32 zcrx_ifq_idx; | ||
| 90 | __u32 optlen; | 91 | __u32 optlen; |
| 91 | struct { | 92 | struct { |
| 92 | __u16 addr_len; | 93 | __u16 addr_len; |
| @@ -278,6 +279,10 @@ enum io_uring_op { · 185 unmodified lines | |||
| 278 | IORING_OP_FTRUNCATE, | 279 | IORING_OP_FTRUNCATE, |
| 279 | IORING_OP_BIND, | 280 | IORING_OP_BIND, |
| 280 | IORING_OP_LISTEN, | 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 | /* this goes last, obviously */ | 287 | /* this goes last, obviously */ |
| 283 | IORING_OP_LAST, | 288 | IORING_OP_LAST, |
| @@ -541,6 +546,7 @@ struct io_cqring_offsets { · 257 unmodified lines | |||
| 541 | #define IORING_ENTER_REGISTERED_RING (1U << 4) | 546 | #define IORING_ENTER_REGISTERED_RING (1U << 4) |
| 542 | #define IORING_ENTER_ABS_TIMER (1U << 5) | 547 | #define IORING_ENTER_ABS_TIMER (1U << 5) |
| 543 | #define IORING_ENTER_EXT_ARG_REG (1U << 6) | 548 | #define IORING_ENTER_EXT_ARG_REG (1U << 6) |
| 549 | #define IORING_ENTER_NO_IOWAIT (1U << 7) | ||
| 544 | 550 | ||
| 545 | /* | 551 | /* |
| 546 | * Passed in for io_uring_setup(2). Copied back with updated info on success | 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 | #define IORING_FEAT_RECVSEND_BUNDLE (1U << 14) | 584 | #define IORING_FEAT_RECVSEND_BUNDLE (1U << 14) |
| 579 | #define IORING_FEAT_MIN_TIMEOUT (1U << 15) | 585 | #define IORING_FEAT_MIN_TIMEOUT (1U << 15) |
| 580 | #define IORING_FEAT_RW_ATTR (1U << 16) | 586 | #define IORING_FEAT_RW_ATTR (1U << 16) |
| 587 | #define IORING_FEAT_NO_IOWAIT (1U << 17) | ||
| 581 | 588 | ||
| 582 | /* | 589 | /* |
| 583 | * io_uring_register(2) opcodes and arguments | 590 | * io_uring_register(2) opcodes and arguments |
| @@ -639,7 +646,8 @@ enum io_uring_register_op { · 55 unmodified lines | |||
| 639 | /* send MSG_RING without having a ring */ | 646 | /* send MSG_RING without having a ring */ |
| 640 | IORING_REGISTER_SEND_MSG_RING = 31, | 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 | /* resize CQ ring */ | 652 | /* resize CQ ring */ |
| 645 | IORING_REGISTER_RESIZE_RINGS = 33, | 653 | IORING_REGISTER_RESIZE_RINGS = 33, |
| @@ -956,6 +964,55 @@ enum io_uring_socket_op { · 310 unmodified lines | |||
| 956 | SOCKET_URING_OP_SETSOCKOPT, | 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 | #ifdef __cplusplus | 1016 | #ifdef __cplusplus |
| 960 | } | 1017 | } |
| 961 | #endif | 1018 | #endif |
| @@ -55,6 +55,7 @@ enum { · 54 unmodified lines | |||
| 55 | IOMMUFD_CMD_VIOMMU_ALLOC = 0x90, | 55 | IOMMUFD_CMD_VIOMMU_ALLOC = 0x90, |
| 56 | IOMMUFD_CMD_VDEVICE_ALLOC = 0x91, | 56 | IOMMUFD_CMD_VDEVICE_ALLOC = 0x91, |
| 57 | IOMMUFD_CMD_IOAS_CHANGE_PROCESS = 0x92, | 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 | * Any domain attached to the non-PASID part of the | 393 | * Any domain attached to the non-PASID part of the |
| 393 | * device must also be flagged, otherwise attaching a | 394 | * device must also be flagged, otherwise attaching a |
| 394 | * PASID will blocked. | 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 | * If IOMMU does not support PASID it will return | 399 | * If IOMMU does not support PASID it will return |
| 396 | * error (-EOPNOTSUPP). | 400 | * error (-EOPNOTSUPP). |
| 397 | */ | 401 | */ |
| @@ -608,9 +612,17 @@ enum iommu_hw_info_type { · 210 unmodified lines | |||
| 608 | * IOMMU_HWPT_GET_DIRTY_BITMAP | 612 | * IOMMU_HWPT_GET_DIRTY_BITMAP |
| 609 | * IOMMU_HWPT_SET_DIRTY_TRACKING | 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 | enum iommufd_hw_capabilities { | 622 | enum iommufd_hw_capabilities { |
| 613 | IOMMU_HW_CAP_DIRTY_TRACKING = 1 << 0, | 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 | * iommu_hw_info_type. | 638 | * iommu_hw_info_type. |
| 627 | * @out_capabilities: Output the generic iommu capability info type as defined | 639 | * @out_capabilities: Output the generic iommu capability info type as defined |
| 628 | * in the enum iommu_hw_capabilities. | 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 | * @__reserved: Must be 0 | 644 | * @__reserved: Must be 0 |
| 630 | * | 645 | * |
| 631 | * Query an iommu type specific hardware information data from an iommu behind | 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 | __u32 data_len; | 664 | __u32 data_len; |
| 650 | __aligned_u64 data_uptr; | 665 | __aligned_u64 data_uptr; |
| 651 | __u32 out_data_type; | 666 | __u32 out_data_type; |
| 652 | __u32 __reserved; | 667 | __u8 out_max_pasid_log2; |
| 668 | __u8 __reserved[3]; | ||
| 653 | __aligned_u64 out_capabilities; | 669 | __aligned_u64 out_capabilities; |
| 654 | }; | 670 | }; |
| 655 | #define IOMMU_GET_HW_INFO _IO(IOMMUFD_TYPE, IOMMUFD_CMD_GET_HW_INFO) | 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 | #define IOMMU_IOAS_CHANGE_PROCESS \ | 1030 | #define IOMMU_IOAS_CHANGE_PROCESS \ |
| 1015 | _IO(IOMMUFD_TYPE, IOMMUFD_CMD_IOAS_CHANGE_PROCESS) | 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 | #endif | 1144 | #endif |
| @@ -43,9 +43,10 @@ · 42 unmodified lines | |||
| 43 | * - 1.15 - Enable managing mappings in compute VMs with GEM_VA ioctl | 43 | * - 1.15 - Enable managing mappings in compute VMs with GEM_VA ioctl |
| 44 | * - 1.16 - Add contiguous VRAM allocation flag | 44 | * - 1.16 - Add contiguous VRAM allocation flag |
| 45 | * - 1.17 - Add SDMA queue creation with target SDMA engine ID | 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 | #define KFD_IOCTL_MAJOR_VERSION 1 | 48 | #define KFD_IOCTL_MAJOR_VERSION 1 |
| 48 | #define KFD_IOCTL_MINOR_VERSION 17 | 49 | #define KFD_IOCTL_MINOR_VERSION 18 |
| 49 | 50 | ||
| 50 | struct kfd_ioctl_get_version_args { | 51 | struct kfd_ioctl_get_version_args { |
| 51 | __u32 major_version; /* from KFD */ | 52 | __u32 major_version; /* from KFD */ |
| @@ -62,6 +63,8 @@ struct kfd_ioctl_get_version_args { · 10 unmodified lines | |||
| 62 | #define KFD_MAX_QUEUE_PERCENTAGE 100 | 63 | #define KFD_MAX_QUEUE_PERCENTAGE 100 |
| 63 | #define KFD_MAX_QUEUE_PRIORITY 15 | 64 | #define KFD_MAX_QUEUE_PRIORITY 15 |
| 64 | 65 | ||
| 66 | #define KFD_MIN_QUEUE_RING_SIZE 1024 | ||
| 67 | |||
| 65 | struct kfd_ioctl_create_queue_args { | 68 | struct kfd_ioctl_create_queue_args { |
| 66 | __u64 ring_base_address; /* to KFD */ | 69 | __u64 ring_base_address; /* to KFD */ |
| 67 | __u64 write_pointer_address; /* from KFD */ | 70 | __u64 write_pointer_address; /* from KFD */ |
| @@ -148,6 +151,9 @@ struct kfd_dbg_device_info_entry { · 80 unmodified lines | |||
| 148 | #define KFD_IOC_CACHE_POLICY_COHERENT 0 | 151 | #define KFD_IOC_CACHE_POLICY_COHERENT 0 |
| 149 | #define KFD_IOC_CACHE_POLICY_NONCOHERENT 1 | 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 | struct kfd_ioctl_set_memory_policy_args { | 157 | struct kfd_ioctl_set_memory_policy_args { |
| 152 | __u64 alternate_aperture_base; /* to KFD */ | 158 | __u64 alternate_aperture_base; /* to KFD */ |
| 153 | __u64 alternate_aperture_size; /* to KFD */ | 159 | __u64 alternate_aperture_size; /* to KFD */ |
| @@ -155,7 +161,7 @@ struct kfd_ioctl_set_memory_policy_args { · 1 unmodified line | |||
| 155 | __u32 gpu_id; /* to KFD */ | 161 | __u32 gpu_id; /* to KFD */ |
| 156 | __u32 default_policy; /* to KFD */ | 162 | __u32 default_policy; /* to KFD */ |
| 157 | __u32 alternate_policy; /* to KFD */ | 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 | #define HSA_CAP_PER_QUEUE_RESET_SUPPORTED 0x80000000 | 63 | #define HSA_CAP_PER_QUEUE_RESET_SUPPORTED 0x80000000 |
| 64 | #define HSA_CAP_RESERVED 0x000f8000 | 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 | /* debug_prop bits in node properties */ | 69 | /* debug_prop bits in node properties */ |
| 67 | #define HSA_DBG_WATCH_ADDR_MASK_LO_BIT_MASK 0x0000000f | 70 | #define HSA_DBG_WATCH_ADDR_MASK_LO_BIT_MASK 0x0000000f |
| 68 | #define HSA_DBG_WATCH_ADDR_MASK_LO_BIT_SHIFT 0 | 71 | #define HSA_DBG_WATCH_ADDR_MASK_LO_BIT_SHIFT 0 |
| @@ -929,6 +929,7 @@ struct kvm_enable_cap { · 928 unmodified lines | |||
| 929 | #define KVM_CAP_PRE_FAULT_MEMORY 236 | 929 | #define KVM_CAP_PRE_FAULT_MEMORY 236 |
| 930 | #define KVM_CAP_X86_APIC_BUS_CYCLES_NS 237 | 930 | #define KVM_CAP_X86_APIC_BUS_CYCLES_NS 237 |
| 931 | #define KVM_CAP_X86_GUEST_MODE 238 | 931 | #define KVM_CAP_X86_GUEST_MODE 238 |
| 932 | #define KVM_CAP_ARM_WRITABLE_IMP_ID_REGS 239 | ||
| 932 | 933 | ||
| 933 | struct kvm_irq_routing_irqchip { | 934 | struct kvm_irq_routing_irqchip { |
| 934 | __u32 irqchip; | 935 | __u32 irqchip; |
| @@ -4,6 +4,7 @@ · 3 unmodified lines | |||
| 4 | * | 4 | * |
| 5 | * Copyright © 2017-2020 Mickaël Salaün <mic@digikod.net> | 5 | * Copyright © 2017-2020 Mickaël Salaün <mic@digikod.net> |
| 6 | * Copyright © 2018-2020 ANSSI | 6 | * Copyright © 2018-2020 ANSSI |
| 7 | * Copyright © 2021-2025 Microsoft Corporation | ||
| 7 | */ | 8 | */ |
| 8 | 9 | ||
| 9 | #ifndef _UAPI_LINUX_LANDLOCK_H | 10 | #ifndef _UAPI_LINUX_LANDLOCK_H |
| @@ -57,9 +58,43 @@ struct landlock_ruleset_attr { · 47 unmodified lines | |||
| 57 | * | 58 | * |
| 58 | * - %LANDLOCK_CREATE_RULESET_VERSION: Get the highest supported Landlock ABI | 59 | * - %LANDLOCK_CREATE_RULESET_VERSION: Get the highest supported Landlock ABI |
| 59 | * version. | 60 | * version. |
| 61 | * - %LANDLOCK_CREATE_RULESET_ERRATA: Get a bitmask of fixed issues. | ||
| 60 | */ | 62 | */ |
| 61 | /* clang-format off */ | 63 | /* clang-format off */ |
| 62 | #define LANDLOCK_CREATE_RULESET_VERSION (1U << 0) | 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 | /* clang-format on */ | 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 | * These flags enable to restrict a sandboxed process to a set of network | 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 | * The following access rights apply to TCP port numbers: | 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 | * Setting a flag for a ruleset will isolate the Landlock domain to forbid | 328 | * Setting a flag for a ruleset will isolate the Landlock domain to forbid |
| 292 | * connections to resources outside the domain. | 329 | * connections to resources outside the domain. |
| 293 | * | 330 | * |
| 331 | * This is supported since Landlock ABI version 6. | ||
| 332 | * | ||
| 294 | * Scopes: | 333 | * Scopes: |
| 295 | * | 334 | * |
| 296 | * - %LANDLOCK_SCOPE_ABSTRACT_UNIX_SOCKET: Restrict a sandboxed process from | 335 | * - %LANDLOCK_SCOPE_ABSTRACT_UNIX_SOCKET: Restrict a sandboxed process from |
| 297 | * connecting to an abstract UNIX socket created by a process outside the | 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 | * - %LANDLOCK_SCOPE_SIGNAL: Restrict a sandboxed process from sending a signal | 338 | * - %LANDLOCK_SCOPE_SIGNAL: Restrict a sandboxed process from sending a signal |
| 300 | * to another process outside the domain. | 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 | __u32 opt_array; /* [str] Array of nul terminated fs options */ | 179 | __u32 opt_array; /* [str] Array of nul terminated fs options */ |
| 180 | __u32 opt_sec_num; /* Number of security options */ | 180 | __u32 opt_sec_num; /* Number of security options */ |
| 181 | __u32 opt_sec_array; /* [str] Array of nul terminated security options */ | 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 | char str[]; /* Variable size part containing strings */ | 188 | char str[]; /* Variable size part containing strings */ |
| 184 | }; | 189 | }; |
| 185 | 190 | ||
| @@ -217,6 +222,9 @@ struct mnt_id_req { · 31 unmodified lines | |||
| 217 | #define STATMOUNT_SB_SOURCE 0x00000200U /* Want/got sb_source */ | 222 | #define STATMOUNT_SB_SOURCE 0x00000200U /* Want/got sb_source */ |
| 218 | #define STATMOUNT_OPT_ARRAY 0x00000400U /* Want/got opt_... */ | 223 | #define STATMOUNT_OPT_ARRAY 0x00000400U /* Want/got opt_... */ |
| 219 | #define STATMOUNT_OPT_SEC_ARRAY 0x00000800U /* Want/got opt_sec... */ | 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 | * Special @mnt_id values that can be passed to listmount | 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 | SOF_TIMESTAMPING_BIND_PHC = (1 << 15), | 44 | SOF_TIMESTAMPING_BIND_PHC = (1 << 15), |
| 45 | SOF_TIMESTAMPING_OPT_ID_TCP = (1 << 16), | 45 | SOF_TIMESTAMPING_OPT_ID_TCP = (1 << 16), |
| 46 | SOF_TIMESTAMPING_OPT_RX_FILTER = (1 << 17), | 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 | SOF_TIMESTAMPING_MASK = (SOF_TIMESTAMPING_LAST - 1) | | 50 | SOF_TIMESTAMPING_MASK = (SOF_TIMESTAMPING_LAST - 1) | |
| 50 | SOF_TIMESTAMPING_LAST | 51 | SOF_TIMESTAMPING_LAST |
| 51 | }; | 52 | }; |
| @@ -58,7 +59,8 @@ enum { · 6 unmodified lines | |||
| 58 | #define SOF_TIMESTAMPING_TX_RECORD_MASK (SOF_TIMESTAMPING_TX_HARDWARE | \ | 59 | #define SOF_TIMESTAMPING_TX_RECORD_MASK (SOF_TIMESTAMPING_TX_HARDWARE | \ |
| 59 | SOF_TIMESTAMPING_TX_SOFTWARE | \ | 60 | SOF_TIMESTAMPING_TX_SOFTWARE | \ |
| 60 | SOF_TIMESTAMPING_TX_SCHED | \ | 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 | * struct so_timestamping - SO_TIMESTAMPING parameter | 66 | * struct so_timestamping - SO_TIMESTAMPING parameter |
| @@ -59,10 +59,13 @@ enum netdev_xdp_rx_metadata { · 58 unmodified lines | |||
| 59 | * by the driver. | 59 | * by the driver. |
| 60 | * @NETDEV_XSK_FLAGS_TX_CHECKSUM: L3 checksum HW offload is supported by the | 60 | * @NETDEV_XSK_FLAGS_TX_CHECKSUM: L3 checksum HW offload is supported by the |
| 61 | * driver. | 61 | * driver. |
| 62 | * @NETDEV_XSK_FLAGS_TX_LAUNCH_TIME_FIFO: Launch time HW offload is supported | ||
| 63 | * by the driver. | ||
| 62 | */ | 64 | */ |
| 63 | enum netdev_xsk_flags { | 65 | enum netdev_xsk_flags { |
| 64 | NETDEV_XSK_FLAGS_TX_TIMESTAMP = 1, | 66 | NETDEV_XSK_FLAGS_TX_TIMESTAMP = 1, |
| 65 | NETDEV_XSK_FLAGS_TX_CHECKSUM = 2, | 67 | NETDEV_XSK_FLAGS_TX_CHECKSUM = 2, |
| 68 | NETDEV_XSK_FLAGS_TX_LAUNCH_TIME_FIFO = 4, | ||
| 66 | }; | 69 | }; |
| 67 | 70 | ||
| 68 | enum netdev_queue_type { | 71 | enum netdev_queue_type { |
| @@ -86,6 +89,11 @@ enum { · 17 unmodified lines | |||
| 86 | NETDEV_A_DEV_MAX = (__NETDEV_A_DEV_MAX - 1) | 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 | enum { | 97 | enum { |
| 90 | NETDEV_A_PAGE_POOL_ID = 1, | 98 | NETDEV_A_PAGE_POOL_ID = 1, |
| 91 | NETDEV_A_PAGE_POOL_IFINDEX, | 99 | NETDEV_A_PAGE_POOL_IFINDEX, |
| @@ -94,6 +102,7 @@ enum { · 2 unmodified lines | |||
| 94 | NETDEV_A_PAGE_POOL_INFLIGHT_MEM, | 102 | NETDEV_A_PAGE_POOL_INFLIGHT_MEM, |
| 95 | NETDEV_A_PAGE_POOL_DETACH_TIME, | 103 | NETDEV_A_PAGE_POOL_DETACH_TIME, |
| 96 | NETDEV_A_PAGE_POOL_DMABUF, | 104 | NETDEV_A_PAGE_POOL_DMABUF, |
| 105 | NETDEV_A_PAGE_POOL_IO_URING, | ||
| 97 | 106 | ||
| 98 | __NETDEV_A_PAGE_POOL_MAX, | 107 | __NETDEV_A_PAGE_POOL_MAX, |
| 99 | NETDEV_A_PAGE_POOL_MAX = (__NETDEV_A_PAGE_POOL_MAX - 1) | 108 | NETDEV_A_PAGE_POOL_MAX = (__NETDEV_A_PAGE_POOL_MAX - 1) |
| @@ -130,12 +139,19 @@ enum { · 30 unmodified lines | |||
| 130 | NETDEV_A_NAPI_MAX = (__NETDEV_A_NAPI_MAX - 1) | 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 | enum { | 147 | enum { |
| 134 | NETDEV_A_QUEUE_ID = 1, | 148 | NETDEV_A_QUEUE_ID = 1, |
| 135 | NETDEV_A_QUEUE_IFINDEX, | 149 | NETDEV_A_QUEUE_IFINDEX, |
| 136 | NETDEV_A_QUEUE_TYPE, | 150 | NETDEV_A_QUEUE_TYPE, |
| 137 | NETDEV_A_QUEUE_NAPI_ID, | 151 | NETDEV_A_QUEUE_NAPI_ID, |
| 138 | NETDEV_A_QUEUE_DMABUF, | 152 | NETDEV_A_QUEUE_DMABUF, |
| 153 | NETDEV_A_QUEUE_IO_URING, | ||
| 154 | NETDEV_A_QUEUE_XSK, | ||
| 139 | 155 | ||
| 140 | __NETDEV_A_QUEUE_MAX, | 156 | __NETDEV_A_QUEUE_MAX, |
| 141 | NETDEV_A_QUEUE_MAX = (__NETDEV_A_QUEUE_MAX - 1) | 157 | NETDEV_A_QUEUE_MAX = (__NETDEV_A_QUEUE_MAX - 1) |
| @@ -188,7 +188,8 @@ struct nilfs_super_block { · 187 unmodified lines | |||
| 188 | __le16 s_segment_usage_size; /* Size of a segment usage */ | 188 | __le16 s_segment_usage_size; /* Size of a segment usage */ |
| 189 | 189 | ||
| 190 | /*98*/ __u8 s_uuid[16]; /* 128-bit uuid for volume */ | 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 | /*F8*/ __le32 s_c_interval; /* Commit interval of segment */ | 194 | /*F8*/ __le32 s_c_interval; /* Commit interval of segment */ |
| 194 | __le32 s_c_block_max; /* | 195 | __le32 s_c_block_max; /* |
| @@ -11,7 +11,7 @@ · 10 unmodified lines | |||
| 11 | * Copyright 2008 Jouni Malinen <jouni.malinen@atheros.com> | 11 | * Copyright 2008 Jouni Malinen <jouni.malinen@atheros.com> |
| 12 | * Copyright 2008 Colin McCabe <colin@cozybit.com> | 12 | * Copyright 2008 Colin McCabe <colin@cozybit.com> |
| 13 | * Copyright 2015-2017 Intel Deutschland GmbH | 13 | * Copyright 2015-2017 Intel Deutschland GmbH |
| 14 | * Copyright (C) 2018-2024 Intel Corporation | 14 | * Copyright (C) 2018-2025 Intel Corporation |
| 15 | * | 15 | * |
| 16 | * Permission to use, copy, modify, and/or distribute this software for any | 16 | * Permission to use, copy, modify, and/or distribute this software for any |
| 17 | * purpose with or without fee is hereby granted, provided that the above | 17 | * purpose with or without fee is hereby granted, provided that the above |
| @@ -2881,9 +2881,9 @@ enum nl80211_commands { · 2863 unmodified lines | |||
| 2881 | * @NL80211_ATTR_VIF_RADIO_MASK: Bitmask of allowed radios (u32). | 2881 | * @NL80211_ATTR_VIF_RADIO_MASK: Bitmask of allowed radios (u32). |
| 2882 | * A value of 0 means all radios. | 2882 | * A value of 0 means all radios. |
| 2883 | * | 2883 | * |
| 2884 | * @NL80211_ATTR_SUPPORTED_SELECTORS: supported selectors, array of | 2884 | * @NL80211_ATTR_SUPPORTED_SELECTORS: supported BSS Membership Selectors, array |
| 2885 | * supported selectors as defined by IEEE 802.11 7.3.2.2 but without the | 2885 | * of supported selectors as defined by IEEE Std 802.11-2020 9.4.2.3 but |
| 2886 | * length restriction (at most %NL80211_MAX_SUPP_SELECTORS). | 2886 | * without the length restriction (at most %NL80211_MAX_SUPP_SELECTORS). |
| 2887 | * This can be used to provide a list of selectors that are implemented | 2887 | * This can be used to provide a list of selectors that are implemented |
| 2888 | * by the supplicant. If not given, support for SAE_H2E is assumed. | 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 | * @NL80211_ATTR_EPCS: Flag attribute indicating that EPCS is enabled for a | 2893 | * @NL80211_ATTR_EPCS: Flag attribute indicating that EPCS is enabled for a |
| 2894 | * station interface. | 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 | * @NUM_NL80211_ATTR: total number of nl80211_attrs available | 2902 | * @NUM_NL80211_ATTR: total number of nl80211_attrs available |
| 2897 | * @NL80211_ATTR_MAX: highest attribute number currently defined | 2903 | * @NL80211_ATTR_MAX: highest attribute number currently defined |
| 2898 | * @__NL80211_ATTR_AFTER_LAST: internal use | 2904 | * @__NL80211_ATTR_AFTER_LAST: internal use |
| @@ -3448,6 +3454,8 @@ enum nl80211_attrs { · 549 unmodified lines | |||
| 3448 | NL80211_ATTR_MLO_RECONF_REM_LINKS, | 3454 | NL80211_ATTR_MLO_RECONF_REM_LINKS, |
| 3449 | NL80211_ATTR_EPCS, | 3455 | NL80211_ATTR_EPCS, |
| 3450 | 3456 | ||
| 3457 | NL80211_ATTR_ASSOC_MLD_EXT_CAPA_OPS, | ||
| 3458 | |||
| 3451 | /* add attributes here, update the policy in nl80211.c */ | 3459 | /* add attributes here, update the policy in nl80211.c */ |
| 3452 | 3460 | ||
| 3453 | __NL80211_ATTR_AFTER_LAST, | 3461 | __NL80211_ATTR_AFTER_LAST, |
| @@ -4327,6 +4335,8 @@ enum nl80211_wmm_rule { · 873 unmodified lines | |||
| 4327 | * otherwise completely disabled. | 4335 | * otherwise completely disabled. |
| 4328 | * @NL80211_FREQUENCY_ATTR_ALLOW_6GHZ_VLP_AP: This channel can be used for a | 4336 | * @NL80211_FREQUENCY_ATTR_ALLOW_6GHZ_VLP_AP: This channel can be used for a |
| 4329 | * very low power (VLP) AP, despite being NO_IR. | 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 | * @NL80211_FREQUENCY_ATTR_MAX: highest frequency attribute number | 4340 | * @NL80211_FREQUENCY_ATTR_MAX: highest frequency attribute number |
| 4331 | * currently defined | 4341 | * currently defined |
| 4332 | * @__NL80211_FREQUENCY_ATTR_AFTER_LAST: internal use | 4342 | * @__NL80211_FREQUENCY_ATTR_AFTER_LAST: internal use |
| @@ -4371,6 +4381,7 @@ enum nl80211_frequency_attr { · 38 unmodified lines | |||
| 4371 | NL80211_FREQUENCY_ATTR_NO_6GHZ_AFC_CLIENT, | 4381 | NL80211_FREQUENCY_ATTR_NO_6GHZ_AFC_CLIENT, |
| 4372 | NL80211_FREQUENCY_ATTR_CAN_MONITOR, | 4382 | NL80211_FREQUENCY_ATTR_CAN_MONITOR, |
| 4373 | NL80211_FREQUENCY_ATTR_ALLOW_6GHZ_VLP_AP, | 4383 | NL80211_FREQUENCY_ATTR_ALLOW_6GHZ_VLP_AP, |
| 4384 | NL80211_FREQUENCY_ATTR_ALLOW_20MHZ_ACTIVITY, | ||
| 4374 | 4385 | ||
| 4375 | /* keep last */ | 4386 | /* keep last */ |
| 4376 | __NL80211_FREQUENCY_ATTR_AFTER_LAST, | 4387 | __NL80211_FREQUENCY_ATTR_AFTER_LAST, |
| @@ -4582,31 +4593,34 @@ enum nl80211_sched_scan_match_attr { · 205 unmodified lines | |||
| 4582 | * @NL80211_RRF_NO_6GHZ_AFC_CLIENT: Client connection to AFC AP not allowed | 4593 | * @NL80211_RRF_NO_6GHZ_AFC_CLIENT: Client connection to AFC AP not allowed |
| 4583 | * @NL80211_RRF_ALLOW_6GHZ_VLP_AP: Very low power (VLP) AP can be permitted | 4594 | * @NL80211_RRF_ALLOW_6GHZ_VLP_AP: Very low power (VLP) AP can be permitted |
| 4584 | * despite NO_IR configuration. | 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 | enum nl80211_reg_rule_flags { | 4599 | enum nl80211_reg_rule_flags { |
| 4587 | NL80211_RRF_NO_OFDM = 1<<0, | 4600 | NL80211_RRF_NO_OFDM = 1 << 0, |
| 4588 | NL80211_RRF_NO_CCK = 1<<1, | 4601 | NL80211_RRF_NO_CCK = 1 << 1, |
| 4589 | NL80211_RRF_NO_INDOOR = 1<<2, | 4602 | NL80211_RRF_NO_INDOOR = 1 << 2, |
| 4590 | NL80211_RRF_NO_OUTDOOR = 1<<3, | 4603 | NL80211_RRF_NO_OUTDOOR = 1 << 3, |
| 4591 | NL80211_RRF_DFS = 1<<4, | 4604 | NL80211_RRF_DFS = 1 << 4, |
| 4592 | NL80211_RRF_PTP_ONLY = 1<<5, | 4605 | NL80211_RRF_PTP_ONLY = 1 << 5, |
| 4593 | NL80211_RRF_PTMP_ONLY = 1<<6, | 4606 | NL80211_RRF_PTMP_ONLY = 1 << 6, |
| 4594 | NL80211_RRF_NO_IR = 1<<7, | 4607 | NL80211_RRF_NO_IR = 1 << 7, |
| 4595 | __NL80211_RRF_NO_IBSS = 1<<8, | 4608 | __NL80211_RRF_NO_IBSS = 1 << 8, |
| 4596 | NL80211_RRF_AUTO_BW = 1<<11, | 4609 | NL80211_RRF_AUTO_BW = 1 << 11, |
| 4597 | NL80211_RRF_IR_CONCURRENT = 1<<12, | 4610 | NL80211_RRF_IR_CONCURRENT = 1 << 12, |
| 4598 | NL80211_RRF_NO_HT40MINUS = 1<<13, | 4611 | NL80211_RRF_NO_HT40MINUS = 1 << 13, |
| 4599 | NL80211_RRF_NO_HT40PLUS = 1<<14, | 4612 | NL80211_RRF_NO_HT40PLUS = 1 << 14, |
| 4600 | NL80211_RRF_NO_80MHZ = 1<<15, | 4613 | NL80211_RRF_NO_80MHZ = 1 << 15, |
| 4601 | NL80211_RRF_NO_160MHZ = 1<<16, | 4614 | NL80211_RRF_NO_160MHZ = 1 << 16, |
| 4602 | NL80211_RRF_NO_HE = 1<<17, | 4615 | NL80211_RRF_NO_HE = 1 << 17, |
| 4603 | NL80211_RRF_NO_320MHZ = 1<<18, | 4616 | NL80211_RRF_NO_320MHZ = 1 << 18, |
| 4604 | NL80211_RRF_NO_EHT = 1<<19, | 4617 | NL80211_RRF_NO_EHT = 1 << 19, |
| 4605 | NL80211_RRF_PSD = 1<<20, | 4618 | NL80211_RRF_PSD = 1 << 20, |
| 4606 | NL80211_RRF_DFS_CONCURRENT = 1<<21, | 4619 | NL80211_RRF_DFS_CONCURRENT = 1 << 21, |
| 4607 | NL80211_RRF_NO_6GHZ_VLP_CLIENT = 1<<22, | 4620 | NL80211_RRF_NO_6GHZ_VLP_CLIENT = 1 << 22, |
| 4608 | NL80211_RRF_NO_6GHZ_AFC_CLIENT = 1<<23, | 4621 | NL80211_RRF_NO_6GHZ_AFC_CLIENT = 1 << 23, |
| 4609 | NL80211_RRF_ALLOW_6GHZ_VLP_AP = 1<<24, | 4622 | NL80211_RRF_ALLOW_6GHZ_VLP_AP = 1 << 24, |
| 4623 | NL80211_RRF_ALLOW_20MHZ_ACTIVITY = 1 << 25, | ||
| 4610 | }; | 4624 | }; |
| 4611 | 4625 | ||
| 4612 | #define NL80211_RRF_PASSIVE_SCAN NL80211_RRF_NO_IR | 4626 | #define NL80211_RRF_PASSIVE_SCAN NL80211_RRF_NO_IR |
| @@ -4727,8 +4741,8 @@ enum nl80211_survey_info { · 114 unmodified lines | |||
| 4727 | * @NL80211_MNTR_FLAG_PLCPFAIL: pass frames with bad PLCP | 4741 | * @NL80211_MNTR_FLAG_PLCPFAIL: pass frames with bad PLCP |
| 4728 | * @NL80211_MNTR_FLAG_CONTROL: pass control frames | 4742 | * @NL80211_MNTR_FLAG_CONTROL: pass control frames |
| 4729 | * @NL80211_MNTR_FLAG_OTHER_BSS: disable BSSID filtering | 4743 | * @NL80211_MNTR_FLAG_OTHER_BSS: disable BSSID filtering |
| 4730 | * @NL80211_MNTR_FLAG_COOK_FRAMES: report frames after processing. | 4744 | * @NL80211_MNTR_FLAG_COOK_FRAMES: deprecated |
| 4731 | * overrides all other flags. | 4745 | * will unconditionally be refused |
| 4732 | * @NL80211_MNTR_FLAG_ACTIVE: use the configured MAC address | 4746 | * @NL80211_MNTR_FLAG_ACTIVE: use the configured MAC address |
| 4733 | * and ACK incoming unicast packets. | 4747 | * and ACK incoming unicast packets. |
| 4734 | * @NL80211_MNTR_FLAG_SKIP_TX: do not pass local tx packets | 4748 | * @NL80211_MNTR_FLAG_SKIP_TX: do not pass local tx packets |
| @@ -486,6 +486,7 @@ · 485 unmodified lines | |||
| 486 | #define PCI_EXP_TYPE_RC_EC 0xa /* Root Complex Event Collector */ | 486 | #define PCI_EXP_TYPE_RC_EC 0xa /* Root Complex Event Collector */ |
| 487 | #define PCI_EXP_FLAGS_SLOT 0x0100 /* Slot implemented */ | 487 | #define PCI_EXP_FLAGS_SLOT 0x0100 /* Slot implemented */ |
| 488 | #define PCI_EXP_FLAGS_IRQ 0x3e00 /* Interrupt message number */ | 488 | #define PCI_EXP_FLAGS_IRQ 0x3e00 /* Interrupt message number */ |
| 489 | #define PCI_EXP_FLAGS_FLIT 0x8000 /* Flit Mode Supported */ | ||
| 489 | #define PCI_EXP_DEVCAP 0x04 /* Device capabilities */ | 490 | #define PCI_EXP_DEVCAP 0x04 /* Device capabilities */ |
| 490 | #define PCI_EXP_DEVCAP_PAYLOAD 0x00000007 /* Max_Payload_Size */ | 491 | #define PCI_EXP_DEVCAP_PAYLOAD 0x00000007 /* Max_Payload_Size */ |
| 491 | #define PCI_EXP_DEVCAP_PHANTOM 0x00000018 /* Phantom functions */ | 492 | #define PCI_EXP_DEVCAP_PHANTOM 0x00000018 /* Phantom functions */ |
| @@ -795,6 +796,8 @@ · 303 unmodified lines | |||
| 795 | #define PCI_ERR_CAP_ECRC_CHKC 0x00000080 /* ECRC Check Capable */ | 796 | #define PCI_ERR_CAP_ECRC_CHKC 0x00000080 /* ECRC Check Capable */ |
| 796 | #define PCI_ERR_CAP_ECRC_CHKE 0x00000100 /* ECRC Check Enable */ | 797 | #define PCI_ERR_CAP_ECRC_CHKE 0x00000100 /* ECRC Check Enable */ |
| 797 | #define PCI_ERR_CAP_PREFIX_LOG_PRESENT 0x00000800 /* TLP Prefix Log Present */ | 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 | #define PCI_ERR_HEADER_LOG 0x1c /* Header Log Register (16 bytes) */ | 801 | #define PCI_ERR_HEADER_LOG 0x1c /* Header Log Register (16 bytes) */ |
| 799 | #define PCI_ERR_ROOT_COMMAND 0x2c /* Root Error Command */ | 802 | #define PCI_ERR_ROOT_COMMAND 0x2c /* Root Error Command */ |
| 800 | #define PCI_ERR_ROOT_CMD_COR_EN 0x00000001 /* Correctable Err Reporting Enable */ | 803 | #define PCI_ERR_ROOT_CMD_COR_EN 0x00000001 /* Correctable Err Reporting Enable */ |
| @@ -1013,7 +1016,7 @@ · 212 unmodified lines | |||
| 1013 | 1016 | ||
| 1014 | /* Resizable BARs */ | 1017 | /* Resizable BARs */ |
| 1015 | #define PCI_REBAR_CAP 4 /* capability register */ | 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 | #define PCI_REBAR_CTRL 8 /* control register */ | 1020 | #define PCI_REBAR_CTRL 8 /* control register */ |
| 1018 | #define PCI_REBAR_CTRL_BAR_IDX 0x00000007 /* BAR index */ | 1021 | #define PCI_REBAR_CTRL_BAR_IDX 0x00000007 /* BAR index */ |
| 1019 | #define PCI_REBAR_CTRL_NBAR_MASK 0x000000E0 /* # of resizable BARs */ | 1022 | #define PCI_REBAR_CTRL_NBAR_MASK 0x000000E0 /* # of resizable BARs */ |
| @@ -1061,8 +1064,9 @@ · 41 unmodified lines | |||
| 1061 | #define PCI_EXP_DPC_CAP_RP_EXT 0x0020 /* Root Port Extensions */ | 1064 | #define PCI_EXP_DPC_CAP_RP_EXT 0x0020 /* Root Port Extensions */ |
| 1062 | #define PCI_EXP_DPC_CAP_POISONED_TLP 0x0040 /* Poisoned TLP Egress Blocking Supported */ | 1065 | #define PCI_EXP_DPC_CAP_POISONED_TLP 0x0040 /* Poisoned TLP Egress Blocking Supported */ |
| 1063 | #define PCI_EXP_DPC_CAP_SW_TRIGGER 0x0080 /* Software Triggering Supported */ | 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 | #define PCI_EXP_DPC_CAP_DL_ACTIVE 0x1000 /* ERR_COR signal on DL_Active supported */ | 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 | #define PCI_EXP_DPC_CTL 0x06 /* DPC control */ | 1071 | #define PCI_EXP_DPC_CTL 0x06 /* DPC control */ |
| 1068 | #define PCI_EXP_DPC_CTL_EN_FATAL 0x0001 /* Enable trigger on ERR_FATAL message */ | 1072 | #define PCI_EXP_DPC_CTL_EN_FATAL 0x0001 /* Enable trigger on ERR_FATAL message */ |
| @@ -1205,9 +1209,12 @@ · 136 unmodified lines | |||
| 1205 | #define PCI_DOE_DATA_OBJECT_DISC_REQ_3_INDEX 0x000000ff | 1209 | #define PCI_DOE_DATA_OBJECT_DISC_REQ_3_INDEX 0x000000ff |
| 1206 | #define PCI_DOE_DATA_OBJECT_DISC_REQ_3_VER 0x0000ff00 | 1210 | #define PCI_DOE_DATA_OBJECT_DISC_REQ_3_VER 0x0000ff00 |
| 1207 | #define PCI_DOE_DATA_OBJECT_DISC_RSP_3_VID 0x0000ffff | 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 | #define PCI_DOE_DATA_OBJECT_DISC_RSP_3_NEXT_INDEX 0xff000000 | 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 | /* Compute Express Link (CXL r3.1, sec 8.1.5) */ | 1218 | /* Compute Express Link (CXL r3.1, sec 8.1.5) */ |
| 1212 | #define PCI_DVSEC_CXL_PORT 3 | 1219 | #define PCI_DVSEC_CXL_PORT 3 |
| 1213 | #define PCI_DVSEC_CXL_PORT_CTL 0x0c | 1220 | #define PCI_DVSEC_CXL_PORT_CTL 0x0c |
| @@ -23,6 +23,12 @@ · 22 unmodified lines | |||
| 23 | #define PCITEST_BARS _IO('P', 0xa) | 23 | #define PCITEST_BARS _IO('P', 0xa) |
| 24 | #define PCITEST_CLEAR_IRQ _IO('P', 0x10) | 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 | #define PCITEST_FLAGS_USE_DMA 0x00000001 | 32 | #define PCITEST_FLAGS_USE_DMA 0x00000001 |
| 27 | 33 | ||
| 28 | struct pci_endpoint_test_xfer_param { | 34 | struct pci_endpoint_test_xfer_param { |
| @@ -385,6 +385,8 @@ enum perf_event_read_format { · 384 unmodified lines | |||
| 385 | * | 385 | * |
| 386 | * @sample_max_stack: Max number of frame pointers in a callchain, | 386 | * @sample_max_stack: Max number of frame pointers in a callchain, |
| 387 | * should be < /proc/sys/kernel/perf_event_max_stack | 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 | struct perf_event_attr { | 391 | struct perf_event_attr { |
| 390 | 392 | ||
| @@ -10,6 +10,10 @@ · 9 unmodified lines | |||
| 10 | /* Flags for pidfd_open(). */ | 10 | /* Flags for pidfd_open(). */ |
| 11 | #define PIDFD_NONBLOCK O_NONBLOCK | 11 | #define PIDFD_NONBLOCK O_NONBLOCK |
| 12 | #define PIDFD_THREAD O_EXCL | 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 | /* Flags for pidfd_send_signal(). */ | 18 | /* Flags for pidfd_send_signal(). */ |
| 15 | #define PIDFD_SIGNAL_THREAD (1UL << 0) | 19 | #define PIDFD_SIGNAL_THREAD (1UL << 0) |
| @@ -20,9 +24,34 @@ · 4 unmodified lines | |||
| 20 | #define PIDFD_INFO_PID (1UL << 0) /* Always returned, even if not requested */ | 24 | #define PIDFD_INFO_PID (1UL << 0) /* Always returned, even if not requested */ |
| 21 | #define PIDFD_INFO_CREDS (1UL << 1) /* Always returned, even if not requested */ | 25 | #define PIDFD_INFO_CREDS (1UL << 1) /* Always returned, even if not requested */ |
| 22 | #define PIDFD_INFO_CGROUPID (1UL << 2) /* Always returned if available, even if not requested */ | 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 | #define PIDFD_INFO_SIZE_VER0 64 /* sizeof first published struct */ | 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 | struct pidfd_info { | 55 | struct pidfd_info { |
| 27 | /* | 56 | /* |
| 28 | * This mask is similar to the request_mask in statx(2). | 57 | * This mask is similar to the request_mask in statx(2). |
| @@ -62,7 +91,7 @@ struct pidfd_info { · 33 unmodified lines | |||
| 62 | __u32 sgid; | 91 | __u32 sgid; |
| 63 | __u32 fsuid; | 92 | __u32 fsuid; |
| 64 | __u32 fsgid; | 93 | __u32 fsgid; |
| 65 | __u32 spare0[1]; | 94 | __s32 exit_code; |
| 66 | }; | 95 | }; |
| 67 | 96 | ||
| 68 | #define PIDFS_IOCTL_MAGIC 0xFF | 97 | #define PIDFS_IOCTL_MAGIC 0xFF |
| @@ -353,4 +353,15 @@ struct prctl_mm_map { · 352 unmodified lines | |||
| 353 | */ | 353 | */ |
| 354 | #define PR_LOCK_SHADOW_STACK_STATUS 76 | 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 | #endif /* _LINUX_PRCTL_H */ | 367 | #endif /* _LINUX_PRCTL_H */ |
| @@ -73,13 +73,20 @@ typedef enum { · 72 unmodified lines | |||
| 73 | SEV_RET_INVALID_PARAM, | 73 | SEV_RET_INVALID_PARAM, |
| 74 | SEV_RET_RESOURCE_LIMIT, | 74 | SEV_RET_RESOURCE_LIMIT, |
| 75 | SEV_RET_SECURE_DATA_INVALID, | 75 | SEV_RET_SECURE_DATA_INVALID, |
| 76 | SEV_RET_INVALID_KEY = 0x27, | 76 | SEV_RET_INVALID_PAGE_SIZE = 0x0019, |
| 77 | SEV_RET_INVALID_PAGE_SIZE, | 77 | SEV_RET_INVALID_PAGE_STATE = 0x001A, |
| 78 | SEV_RET_INVALID_PAGE_STATE, | 78 | SEV_RET_INVALID_MDATA_ENTRY = 0x001B, |
| 79 | SEV_RET_INVALID_MDATA_ENTRY, | 79 | SEV_RET_INVALID_PAGE_OWNER = 0x001C, |
| 80 | SEV_RET_INVALID_PAGE_OWNER, | 80 | SEV_RET_AEAD_OFLOW = 0x001D, |
| 81 | SEV_RET_INVALID_PAGE_AEAD_OFLOW, | 81 | SEV_RET_EXIT_RING_BUFFER = 0x001F, |
| 82 | SEV_RET_RMP_INIT_REQUIRED, | 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 | SEV_RET_MAX, | 90 | SEV_RET_MAX, |
| 84 | } sev_ret_code; | 91 | } sev_ret_code; |
| 85 | 92 | ||
| @@ -1528,7 +1528,7 @@ enum rksip1_ext_param_buffer_version { · 1527 unmodified lines | |||
| 1528 | * The expected memory layout of the parameters buffer is:: | 1528 | * The expected memory layout of the parameters buffer is:: |
| 1529 | * | 1529 | * |
| 1530 | * +-------------------- struct rkisp1_ext_params_cfg -------------------+ | 1530 | * +-------------------- struct rkisp1_ext_params_cfg -------------------+ |
| 1531 | * | version = RKISP_EXT_PARAMS_BUFFER_V1; | | 1531 | * | version = RKISP1_EXT_PARAM_BUFFER_V1; | |
| 1532 | * | data_size = sizeof(struct rkisp1_ext_params_bls_config) | | 1532 | * | data_size = sizeof(struct rkisp1_ext_params_bls_config) | |
| 1533 | * | + sizeof(struct rkisp1_ext_params_dpcc_config); | | 1533 | * | + sizeof(struct rkisp1_ext_params_dpcc_config); | |
| 1534 | * | +------------------------- data ---------------------------------+ | | 1534 | * | +------------------------- data ---------------------------------+ | |
| @@ -307,6 +307,7 @@ enum { · 306 unmodified lines | |||
| 307 | #define RTPROT_MROUTED 17 /* Multicast daemon */ | 307 | #define RTPROT_MROUTED 17 /* Multicast daemon */ |
| 308 | #define RTPROT_KEEPALIVED 18 /* Keepalived daemon */ | 308 | #define RTPROT_KEEPALIVED 18 /* Keepalived daemon */ |
| 309 | #define RTPROT_BABEL 42 /* Babel daemon */ | 309 | #define RTPROT_BABEL 42 /* Babel daemon */ |
| 310 | #define RTPROT_OVN 84 /* OVN daemon */ | ||
| 310 | #define RTPROT_OPENR 99 /* Open Routing (Open/R) Routes */ | 311 | #define RTPROT_OPENR 99 /* Open Routing (Open/R) Routes */ |
| 311 | #define RTPROT_BGP 186 /* BGP Routes */ | 312 | #define RTPROT_BGP 186 /* BGP Routes */ |
| 312 | #define RTPROT_ISIS 187 /* ISIS Routes */ | 313 | #define RTPROT_ISIS 187 /* ISIS Routes */ |
| @@ -23,9 +23,14 @@ enum · 22 unmodified lines | |||
| 23 | IPSTATS_MIB_INPKTS, /* InReceives */ | 23 | IPSTATS_MIB_INPKTS, /* InReceives */ |
| 24 | IPSTATS_MIB_INOCTETS, /* InOctets */ | 24 | IPSTATS_MIB_INOCTETS, /* InOctets */ |
| 25 | IPSTATS_MIB_INDELIVERS, /* InDelivers */ | 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 | IPSTATS_MIB_OUTREQUESTS, /* OutRequests */ | 30 | IPSTATS_MIB_OUTREQUESTS, /* OutRequests */ |
| 31 | IPSTATS_MIB_OUTPKTS, /* OutTransmits */ | ||
| 28 | IPSTATS_MIB_OUTOCTETS, /* OutOctets */ | 32 | IPSTATS_MIB_OUTOCTETS, /* OutOctets */ |
| 33 | IPSTATS_MIB_OUTFORWDATAGRAMS, /* OutForwDatagrams */ | ||
| 29 | /* other fields */ | 34 | /* other fields */ |
| 30 | IPSTATS_MIB_INHDRERRORS, /* InHdrErrors */ | 35 | IPSTATS_MIB_INHDRERRORS, /* InHdrErrors */ |
| 31 | IPSTATS_MIB_INTOOBIGERRORS, /* InTooBigErrors */ | 36 | IPSTATS_MIB_INTOOBIGERRORS, /* InTooBigErrors */ |
| @@ -52,12 +57,7 @@ enum · 20 unmodified lines | |||
| 52 | IPSTATS_MIB_INBCASTOCTETS, /* InBcastOctets */ | 57 | IPSTATS_MIB_INBCASTOCTETS, /* InBcastOctets */ |
| 53 | IPSTATS_MIB_OUTBCASTOCTETS, /* OutBcastOctets */ | 58 | IPSTATS_MIB_OUTBCASTOCTETS, /* OutBcastOctets */ |
| 54 | IPSTATS_MIB_CSUMERRORS, /* InCsumErrors */ | 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 | IPSTATS_MIB_REASM_OVERLAPS, /* ReasmOverlaps */ | 60 | IPSTATS_MIB_REASM_OVERLAPS, /* ReasmOverlaps */ |
| 60 | IPSTATS_MIB_OUTPKTS, /* OutTransmits */ | ||
| 61 | __IPSTATS_MIB_MAX | 61 | __IPSTATS_MIB_MAX |
| 62 | }; | 62 | }; |
| 63 | 63 | ||
| @@ -186,6 +186,7 @@ enum · 122 unmodified lines | |||
| 186 | LINUX_MIB_TIMEWAITKILLED, /* TimeWaitKilled */ | 186 | LINUX_MIB_TIMEWAITKILLED, /* TimeWaitKilled */ |
| 187 | LINUX_MIB_PAWSACTIVEREJECTED, /* PAWSActiveRejected */ | 187 | LINUX_MIB_PAWSACTIVEREJECTED, /* PAWSActiveRejected */ |
| 188 | LINUX_MIB_PAWSESTABREJECTED, /* PAWSEstabRejected */ | 188 | LINUX_MIB_PAWSESTABREJECTED, /* PAWSEstabRejected */ |
| 189 | LINUX_MIB_TSECRREJECTED, /* TSEcrRejected */ | ||
| 189 | LINUX_MIB_PAWS_OLD_ACK, /* PAWSOldAck */ | 190 | LINUX_MIB_PAWS_OLD_ACK, /* PAWSOldAck */ |
| 190 | LINUX_MIB_DELAYEDACKS, /* DelayedACKs */ | 191 | LINUX_MIB_DELAYEDACKS, /* DelayedACKs */ |
| 191 | LINUX_MIB_DELAYEDACKLOCKED, /* DelayedACKLocked */ | 192 | LINUX_MIB_DELAYEDACKLOCKED, /* DelayedACKLocked */ |
| @@ -70,4 +70,10 @@ · 69 unmodified lines | |||
| 70 | #define __counted_by_be(m) | 70 | #define __counted_by_be(m) |
| 71 | #endif | 71 | #endif |
| 72 | 72 | ||
| 73 | #ifdef __KERNEL__ | ||
| 74 | #define __kernel_nonstring __nonstring | ||
| 75 | #else | ||
| 76 | #define __kernel_nonstring | ||
| 77 | #endif | ||
| 78 | |||
| 73 | #endif /* _UAPI_LINUX_STDDEF_H */ | 79 | #endif /* _UAPI_LINUX_STDDEF_H */ |
| @@ -28,7 +28,8 @@ struct tcphdr { · 27 unmodified lines | |||
| 28 | __be32 seq; | 28 | __be32 seq; |
| 29 | __be32 ack_seq; | 29 | __be32 ack_seq; |
| 30 | #if defined(__LITTLE_ENDIAN_BITFIELD) | 30 | #if defined(__LITTLE_ENDIAN_BITFIELD) |
| 31 | __u16 res1:4, | 31 | __u16 ae:1, |
| 32 | res1:3, | ||
| 32 | doff:4, | 33 | doff:4, |
| 33 | fin:1, | 34 | fin:1, |
| 34 | syn:1, | 35 | syn:1, |
| @@ -40,7 +41,8 @@ struct tcphdr { · 5 unmodified lines | |||
| 40 | cwr:1; | 41 | cwr:1; |
| 41 | #elif defined(__BIG_ENDIAN_BITFIELD) | 42 | #elif defined(__BIG_ENDIAN_BITFIELD) |
| 42 | __u16 doff:4, | 43 | __u16 doff:4, |
| 43 | res1:4, | 44 | res1:3, |
| 45 | ae:1, | ||
| 44 | cwr:1, | 46 | cwr:1, |
| 45 | ece:1, | 47 | ece:1, |
| 46 | urg:1, | 48 | urg:1, |
| @@ -70,6 +72,7 @@ union tcp_word_hdr { · 23 unmodified lines | |||
| 70 | #define tcp_flag_word(tp) (((union tcp_word_hdr *)(tp))->words[3]) | 72 | #define tcp_flag_word(tp) (((union tcp_word_hdr *)(tp))->words[3]) |
| 71 | 73 | ||
| 72 | enum { | 74 | enum { |
| 75 | TCP_FLAG_AE = __constant_cpu_to_be32(0x01000000), | ||
| 73 | TCP_FLAG_CWR = __constant_cpu_to_be32(0x00800000), | 76 | TCP_FLAG_CWR = __constant_cpu_to_be32(0x00800000), |
| 74 | TCP_FLAG_ECE = __constant_cpu_to_be32(0x00400000), | 77 | TCP_FLAG_ECE = __constant_cpu_to_be32(0x00400000), |
| 75 | TCP_FLAG_URG = __constant_cpu_to_be32(0x00200000), | 78 | TCP_FLAG_URG = __constant_cpu_to_be32(0x00200000), |
| @@ -78,7 +81,7 @@ enum { · 2 unmodified lines | |||
| 78 | TCP_FLAG_RST = __constant_cpu_to_be32(0x00040000), | 81 | TCP_FLAG_RST = __constant_cpu_to_be32(0x00040000), |
| 79 | TCP_FLAG_SYN = __constant_cpu_to_be32(0x00020000), | 82 | TCP_FLAG_SYN = __constant_cpu_to_be32(0x00020000), |
| 80 | TCP_FLAG_FIN = __constant_cpu_to_be32(0x00010000), | 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 | TCP_DATA_OFFSET = __constant_cpu_to_be32(0xF0000000) | 85 | TCP_DATA_OFFSET = __constant_cpu_to_be32(0xF0000000) |
| 83 | }; | 86 | }; |
| 84 | 87 | ||
| @@ -136,6 +139,9 @@ enum { · 51 unmodified lines | |||
| 136 | #define TCP_AO_REPAIR 42 /* Get/Set SNEs and ISNs */ | 139 | #define TCP_AO_REPAIR 42 /* Get/Set SNEs and ISNs */ |
| 137 | 140 | ||
| 138 | #define TCP_IS_MPTCP 43 /* Is MPTCP being used? */ | 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 | #define TCP_REPAIR_ON 1 | 146 | #define TCP_REPAIR_ON 1 |
| 141 | #define TCP_REPAIR_OFF 0 | 147 | #define TCP_REPAIR_OFF 0 |
| @@ -94,6 +94,10 @@ · 93 unmodified lines | |||
| 94 | _IOWR('u', UBLK_IO_COMMIT_AND_FETCH_REQ, struct ublksrv_io_cmd) | 94 | _IOWR('u', UBLK_IO_COMMIT_AND_FETCH_REQ, struct ublksrv_io_cmd) |
| 95 | #define UBLK_U_IO_NEED_GET_DATA \ | 95 | #define UBLK_U_IO_NEED_GET_DATA \ |
| 96 | _IOWR('u', UBLK_IO_NEED_GET_DATA, struct ublksrv_io_cmd) | 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 | /* only ABORT means that no re-fetch */ | 102 | /* only ABORT means that no re-fetch */ |
| 99 | #define UBLK_IO_RES_OK 0 | 103 | #define UBLK_IO_RES_OK 0 |
| @@ -401,6 +405,34 @@ struct ublk_param_zoned { · 301 unmodified lines | |||
| 401 | __u8 reserved[20]; | 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 | struct ublk_params { | 436 | struct ublk_params { |
| 405 | /* | 437 | /* |
| 406 | * Total length of parameters, userspace has to set 'len' for both | 438 | * Total length of parameters, userspace has to set 'len' for both |
| @@ -413,12 +445,16 @@ struct ublk_params { · 6 unmodified lines | |||
| 413 | #define UBLK_PARAM_TYPE_DISCARD (1 << 1) | 445 | #define UBLK_PARAM_TYPE_DISCARD (1 << 1) |
| 414 | #define UBLK_PARAM_TYPE_DEVT (1 << 2) | 446 | #define UBLK_PARAM_TYPE_DEVT (1 << 2) |
| 415 | #define UBLK_PARAM_TYPE_ZONED (1 << 3) | 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 | __u32 types; /* types of parameter included */ | 450 | __u32 types; /* types of parameter included */ |
| 417 | 451 | ||
| 418 | struct ublk_param_basic basic; | 452 | struct ublk_param_basic basic; |
| 419 | struct ublk_param_discard discard; | 453 | struct ublk_param_discard discard; |
| 420 | struct ublk_param_devt devt; | 454 | struct ublk_param_devt devt; |
| 421 | struct ublk_param_zoned zoned; | 455 | struct ublk_param_zoned zoned; |
| 456 | struct ublk_param_dma_align dma; | ||
| 457 | struct ublk_param_segment seg; | ||
| 422 | }; | 458 | }; |
| 423 | 459 | ||
| 424 | #endif | 460 | #endif |
| @@ -253,6 +253,9 @@ struct usb_ctrlrequest { · 252 unmodified lines | |||
| 253 | #define USB_DT_BOS 0x0f | 253 | #define USB_DT_BOS 0x0f |
| 254 | #define USB_DT_DEVICE_CAPABILITY 0x10 | 254 | #define USB_DT_DEVICE_CAPABILITY 0x10 |
| 255 | #define USB_DT_WIRELESS_ENDPOINT_COMP 0x11 | 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 | #define USB_DT_WIRE_ADAPTER 0x21 | 259 | #define USB_DT_WIRE_ADAPTER 0x21 |
| 257 | /* From USB Device Firmware Upgrade Specification, Revision 1.1 */ | 260 | /* From USB Device Firmware Upgrade Specification, Revision 1.1 */ |
| 258 | #define USB_DT_DFU_FUNCTIONAL 0x21 | 261 | #define USB_DT_DFU_FUNCTIONAL 0x21 |
| @@ -330,6 +333,7 @@ struct usb_device_descriptor { · 71 unmodified lines | |||
| 330 | #define USB_CLASS_AUDIO_VIDEO 0x10 | 333 | #define USB_CLASS_AUDIO_VIDEO 0x10 |
| 331 | #define USB_CLASS_BILLBOARD 0x11 | 334 | #define USB_CLASS_BILLBOARD 0x11 |
| 332 | #define USB_CLASS_USB_TYPE_C_BRIDGE 0x12 | 335 | #define USB_CLASS_USB_TYPE_C_BRIDGE 0x12 |
| 336 | #define USB_CLASS_MCTP 0x14 | ||
| 333 | #define USB_CLASS_MISC 0xef | 337 | #define USB_CLASS_MISC 0xef |
| 334 | #define USB_CLASS_APP_SPEC 0xfe | 338 | #define USB_CLASS_APP_SPEC 0xfe |
| 335 | #define USB_SUBCLASS_DFU 0x01 | 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 | /* USB_DT_SSP_ISOC_ENDPOINT_COMP: SuperSpeedPlus Isochronous Endpoint Companion | 694 | /* USB_DT_SSP_ISOC_ENDPOINT_COMP: SuperSpeedPlus Isochronous Endpoint Companion |
| 679 | * descriptor | 695 | * descriptor |
| 680 | */ | 696 | */ |
| @@ -104,6 +104,7 @@ · 103 unmodified lines | |||
| 104 | #define UVC_CT_ROLL_ABSOLUTE_CONTROL 0x0f | 104 | #define UVC_CT_ROLL_ABSOLUTE_CONTROL 0x0f |
| 105 | #define UVC_CT_ROLL_RELATIVE_CONTROL 0x10 | 105 | #define UVC_CT_ROLL_RELATIVE_CONTROL 0x10 |
| 106 | #define UVC_CT_PRIVACY_CONTROL 0x11 | 106 | #define UVC_CT_PRIVACY_CONTROL 0x11 |
| 107 | #define UVC_CT_REGION_OF_INTEREST_CONTROL 0x14 | ||
| 107 | 108 | ||
| 108 | /* A.9.5. Processing Unit Control Selectors */ | 109 | /* A.9.5. Processing Unit Control Selectors */ |
| 109 | #define UVC_PU_CONTROL_UNDEFINED 0x00 | 110 | #define UVC_PU_CONTROL_UNDEFINED 0x00 |
| @@ -16,6 +16,7 @@ · 15 unmodified lines | |||
| 16 | #define UVC_CTRL_DATA_TYPE_BOOLEAN 3 | 16 | #define UVC_CTRL_DATA_TYPE_BOOLEAN 3 |
| 17 | #define UVC_CTRL_DATA_TYPE_ENUM 4 | 17 | #define UVC_CTRL_DATA_TYPE_ENUM 4 |
| 18 | #define UVC_CTRL_DATA_TYPE_BITMASK 5 | 18 | #define UVC_CTRL_DATA_TYPE_BITMASK 5 |
| 19 | #define UVC_CTRL_DATA_TYPE_RECT 6 | ||
| 19 | 20 | ||
| 20 | /* Control flags */ | 21 | /* Control flags */ |
| 21 | #define UVC_CTRL_FLAG_SET_CUR (1 << 0) | 22 | #define UVC_CTRL_FLAG_SET_CUR (1 << 0) |
| @@ -38,6 +39,18 @@ · 16 unmodified lines | |||
| 38 | 39 | ||
| 39 | #define UVC_MENU_NAME_LEN 32 | 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 | struct uvc_menu_info { | 54 | struct uvc_menu_info { |
| 42 | __u32 value; | 55 | __u32 value; |
| 43 | __u8 name[UVC_MENU_NAME_LEN]; | 56 | __u8 name[UVC_MENU_NAME_LEN]; |
| @@ -215,6 +215,13 @@ enum v4l2_colorfx { · 214 unmodified lines | |||
| 215 | */ | 215 | */ |
| 216 | #define V4L2_CID_USER_THP7312_BASE (V4L2_CID_USER_BASE + 0x11c0) | 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 | /* MPEG-class control IDs */ | 225 | /* MPEG-class control IDs */ |
| 219 | /* The MPEG controls are applicable to all codec controls | 226 | /* The MPEG controls are applicable to all codec controls |
| 220 | * and the 'MPEG' part of the define is historical */ | 227 | * and the 'MPEG' part of the define is historical */ |
| @@ -671,6 +671,7 @@ enum { · 670 unmodified lines | |||
| 671 | */ | 671 | */ |
| 672 | enum { | 672 | enum { |
| 673 | VFIO_AP_REQ_IRQ_INDEX, | 673 | VFIO_AP_REQ_IRQ_INDEX, |
| 674 | VFIO_AP_CFG_CHG_IRQ_INDEX, | ||
| 674 | VFIO_AP_NUM_IRQS | 675 | VFIO_AP_NUM_IRQS |
| 675 | }; | 676 | }; |
| 676 | 677 | ||
| @@ -931,29 +932,34 @@ struct vfio_device_bind_iommufd { · 254 unmodified lines | |||
| 931 | * VFIO_DEVICE_ATTACH_IOMMUFD_PT - _IOW(VFIO_TYPE, VFIO_BASE + 19, | 932 | * VFIO_DEVICE_ATTACH_IOMMUFD_PT - _IOW(VFIO_TYPE, VFIO_BASE + 19, |
| 932 | * struct vfio_device_attach_iommufd_pt) | 933 | * struct vfio_device_attach_iommufd_pt) |
| 933 | * @argsz: User filled size of this data. | 934 | * @argsz: User filled size of this data. |
| 934 | * @flags: Must be 0. | 935 | * @flags: Flags for attach. |
| 935 | * @pt_id: Input the target id which can represent an ioas or a hwpt | 936 | * @pt_id: Input the target id which can represent an ioas or a hwpt |
| 936 | * allocated via iommufd subsystem. | 937 | * allocated via iommufd subsystem. |
| 937 | * Output the input ioas id or the attached hwpt id which could | 938 | * Output the input ioas id or the attached hwpt id which could |
| 938 | * be the specified hwpt itself or a hwpt automatically created | 939 | * be the specified hwpt itself or a hwpt automatically created |
| 939 | * for the specified ioas by kernel during the attachment. | 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 | * Associate the device with an address space within the bound iommufd. | 944 | * Associate the device with an address space within the bound iommufd. |
| 942 | * Undo by VFIO_DEVICE_DETACH_IOMMUFD_PT or device fd close. This is only | 945 | * Undo by VFIO_DEVICE_DETACH_IOMMUFD_PT or device fd close. This is only |
| 943 | * allowed on cdev fds. | 946 | * allowed on cdev fds. |
| 944 | * | 947 | * |
| 945 | * If a vfio device is currently attached to a valid hw_pagetable, without doing | 948 | * If a vfio device or a pasid of this device is currently attached to a valid |
| 946 | * a VFIO_DEVICE_DETACH_IOMMUFD_PT, a second VFIO_DEVICE_ATTACH_IOMMUFD_PT ioctl | 949 | * hw_pagetable (hwpt), without doing a VFIO_DEVICE_DETACH_IOMMUFD_PT, a second |
| 947 | * passing in another hw_pagetable (hwpt) id is allowed. This action, also known | 950 | * VFIO_DEVICE_ATTACH_IOMMUFD_PT ioctl passing in another hwpt id is allowed. |
| 948 | * as a hw_pagetable replacement, will replace the device's currently attached | 951 | * This action, also known as a hw_pagetable replacement, will replace the |
| 949 | * hw_pagetable with a new hw_pagetable corresponding to the given pt_id. | 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 | * Return: 0 on success, -errno on failure. | 955 | * Return: 0 on success, -errno on failure. |
| 952 | */ | 956 | */ |
| 953 | struct vfio_device_attach_iommufd_pt { | 957 | struct vfio_device_attach_iommufd_pt { |
| 954 | __u32 argsz; | 958 | __u32 argsz; |
| 955 | __u32 flags; | 959 | __u32 flags; |
| 960 | #define VFIO_DEVICE_ATTACH_PASID (1 << 0) | ||
| 956 | __u32 pt_id; | 961 | __u32 pt_id; |
| 962 | __u32 pasid; | ||
| 957 | }; | 963 | }; |
| 958 | 964 | ||
| 959 | #define VFIO_DEVICE_ATTACH_IOMMUFD_PT _IO(VFIO_TYPE, VFIO_BASE + 19) | 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 | * VFIO_DEVICE_DETACH_IOMMUFD_PT - _IOW(VFIO_TYPE, VFIO_BASE + 20, | 968 | * VFIO_DEVICE_DETACH_IOMMUFD_PT - _IOW(VFIO_TYPE, VFIO_BASE + 20, |
| 963 | * struct vfio_device_detach_iommufd_pt) | 969 | * struct vfio_device_detach_iommufd_pt) |
| 964 | * @argsz: User filled size of this data. | 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 | 975 | * Remove the association of the device or a pasid of the device and its current |
| 968 | * space. After it, the device should be in a blocking DMA state. This is only | 976 | * associated address space. After it, the device or the pasid should be in a |
| 969 | * allowed on cdev fds. | 977 | * blocking DMA state. This is only allowed on cdev fds. |
| 970 | * | 978 | * |
| 971 | * Return: 0 on success, -errno on failure. | 979 | * Return: 0 on success, -errno on failure. |
| 972 | */ | 980 | */ |
| 973 | struct vfio_device_detach_iommufd_pt { | 981 | struct vfio_device_detach_iommufd_pt { |
| 974 | __u32 argsz; | 982 | __u32 argsz; |
| 975 | __u32 flags; | 983 | __u32 flags; |
| 984 | #define VFIO_DEVICE_DETACH_PASID (1 << 0) | ||
| 985 | __u32 pasid; | ||
| 976 | }; | 986 | }; |
| 977 | 987 | ||
| 978 | #define VFIO_DEVICE_DETACH_IOMMUFD_PT _IO(VFIO_TYPE, VFIO_BASE + 20) | 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 | __s32 __user *p_s32; | 1859 | __s32 __user *p_s32; |
| 1860 | __s64 __user *p_s64; | 1860 | __s64 __user *p_s64; |
| 1861 | struct v4l2_area __user *p_area; | 1861 | struct v4l2_area __user *p_area; |
| 1862 | struct v4l2_rect __user *p_rect; | ||
| 1862 | struct v4l2_ctrl_h264_sps __user *p_h264_sps; | 1863 | struct v4l2_ctrl_h264_sps __user *p_h264_sps; |
| 1863 | struct v4l2_ctrl_h264_pps __user *p_h264_pps; | 1864 | struct v4l2_ctrl_h264_pps __user *p_h264_pps; |
| 1864 | struct v4l2_ctrl_h264_scaling_matrix __user *p_h264_scaling_matrix; | 1865 | struct v4l2_ctrl_h264_scaling_matrix __user *p_h264_scaling_matrix; |
| @@ -1911,6 +1912,8 @@ struct v4l2_ext_controls { · 46 unmodified lines | |||
| 1911 | #define V4L2_CTRL_WHICH_CUR_VAL 0 | 1912 | #define V4L2_CTRL_WHICH_CUR_VAL 0 |
| 1912 | #define V4L2_CTRL_WHICH_DEF_VAL 0x0f000000 | 1913 | #define V4L2_CTRL_WHICH_DEF_VAL 0x0f000000 |
| 1913 | #define V4L2_CTRL_WHICH_REQUEST_VAL 0x0f010000 | 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 | enum v4l2_ctrl_type { | 1918 | enum v4l2_ctrl_type { |
| 1916 | V4L2_CTRL_TYPE_INTEGER = 1, | 1919 | V4L2_CTRL_TYPE_INTEGER = 1, |
| @@ -1929,6 +1932,7 @@ enum v4l2_ctrl_type { · 12 unmodified lines | |||
| 1929 | V4L2_CTRL_TYPE_U16 = 0x0101, | 1932 | V4L2_CTRL_TYPE_U16 = 0x0101, |
| 1930 | V4L2_CTRL_TYPE_U32 = 0x0102, | 1933 | V4L2_CTRL_TYPE_U32 = 0x0102, |
| 1931 | V4L2_CTRL_TYPE_AREA = 0x0106, | 1934 | V4L2_CTRL_TYPE_AREA = 0x0106, |
| 1935 | V4L2_CTRL_TYPE_RECT = 0x0107, | ||
| 1932 | 1936 | ||
| 1933 | V4L2_CTRL_TYPE_HDR10_CLL_INFO = 0x0110, | 1937 | V4L2_CTRL_TYPE_HDR10_CLL_INFO = 0x0110, |
| 1934 | V4L2_CTRL_TYPE_HDR10_MASTERING_DISPLAY = 0x0111, | 1938 | V4L2_CTRL_TYPE_HDR10_MASTERING_DISPLAY = 0x0111, |
| @@ -2017,6 +2021,7 @@ struct v4l2_querymenu { · 82 unmodified lines | |||
| 2017 | #define V4L2_CTRL_FLAG_EXECUTE_ON_WRITE 0x0200 | 2021 | #define V4L2_CTRL_FLAG_EXECUTE_ON_WRITE 0x0200 |
| 2018 | #define V4L2_CTRL_FLAG_MODIFY_LAYOUT 0x0400 | 2022 | #define V4L2_CTRL_FLAG_MODIFY_LAYOUT 0x0400 |
| 2019 | #define V4L2_CTRL_FLAG_DYNAMIC_ARRAY 0x0800 | 2023 | #define V4L2_CTRL_FLAG_DYNAMIC_ARRAY 0x0800 |
| 2024 | #define V4L2_CTRL_FLAG_HAS_WHICH_MIN_MAX 0x1000 | ||
| 2020 | 2025 | ||
| 2021 | /* Query flags, to be ORed with the control ID */ | 2026 | /* Query flags, to be ORed with the control ID */ |
| 2022 | #define V4L2_CTRL_FLAG_NEXT_CTRL 0x80000000 | 2027 | #define V4L2_CTRL_FLAG_NEXT_CTRL 0x80000000 |
| @@ -327,6 +327,19 @@ struct virtio_net_rss_config { · 326 unmodified lines | |||
| 327 | __u8 hash_key_data[/* hash_key_length */]; | 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 | #define VIRTIO_NET_CTRL_MQ_RSS_CONFIG 1 | 343 | #define VIRTIO_NET_CTRL_MQ_RSS_CONFIG 1 |
| 331 | 344 | ||
| 332 | /* | 345 | /* |
| @@ -83,6 +83,10 @@ struct xattr_args { · 82 unmodified lines | |||
| 83 | #define XATTR_CAPS_SUFFIX "capability" | 83 | #define XATTR_CAPS_SUFFIX "capability" |
| 84 | #define XATTR_NAME_CAPS XATTR_SECURITY_PREFIX XATTR_CAPS_SUFFIX | 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 | #define XATTR_POSIX_ACL_ACCESS "posix_acl_access" | 90 | #define XATTR_POSIX_ACL_ACCESS "posix_acl_access" |
| 87 | #define XATTR_NAME_POSIX_ACL_ACCESS XATTR_SYSTEM_PREFIX XATTR_POSIX_ACL_ACCESS | 91 | #define XATTR_NAME_POSIX_ACL_ACCESS XATTR_SYSTEM_PREFIX XATTR_POSIX_ACL_ACCESS |
| 88 | #define XATTR_POSIX_ACL_DEFAULT "posix_acl_default" | 92 | #define XATTR_POSIX_ACL_DEFAULT "posix_acl_default" |