History

Merge drm/drm-next into drm-misc-next

Backmerging to get v6.15-rc1 into drm-misc-next. Also fixes a build issue when enabling CONFIG_DRM_SCHED_KUNIT_TEST.

Thomas Zimmermann committed 1 year ago

Commit 1afba392 parents fbe4381 0af2f6b12658 files · +666610 −259887Browse files

Showing the changes to include/uapi/linux (58 of 12658 files). Show all

Unified · Split

58 files
  1. include/uapi/linux/audit.h +3 −1
  2. include/uapi/linux/batman_adv.h +9 −9
  3. include/uapi/linux/bits.h +2 −6
  4. include/uapi/linux/blk-crypto.h +44 −0
  5. include/uapi/linux/bpf.h +39 −1
  6. include/uapi/linux/btf.h +2 −1
  7. include/uapi/linux/btrfs.h +13 −3
  8. include/uapi/linux/can.h +2 −1
  9. include/uapi/linux/capability.h +1 −0
  10. include/uapi/linux/const.h +1 −1
  11. include/uapi/linux/counter.h +2 −0
  12. include/uapi/linux/counter/microchip-tcb-capture.h +40 −0
  13. include/uapi/linux/elf.h +132 −5
  14. include/uapi/linux/errqueue.h +1 −0
  15. include/uapi/linux/ethtool.h +22 −0
  16. include/uapi/linux/f2fs.h +7 −0
  17. include/uapi/linux/fanotify.h +10 −0
  18. include/uapi/linux/fib_rules.h +3 −0
  19. include/uapi/linux/firewire-cdev.h +2 −1
  20. include/uapi/linux/fs.h +2 −4
  21. include/uapi/linux/fuse.h +9 −3
  22. include/uapi/linux/if_cablemodem.h +0 −23
  23. include/uapi/linux/if_link.h +7 −0
  24. include/uapi/linux/if_xdp.h +10 −0
  25. include/uapi/linux/iio/types.h +2 −0
  26. include/uapi/linux/io_uring.h +58 −1
  27. include/uapi/linux/iommufd.h +128 −1
  28. include/uapi/linux/kfd_ioctl.h +8 −2
  29. include/uapi/linux/kfd_sysfs.h +3 −0
  30. include/uapi/linux/kvm.h +1 −0
  31. include/uapi/linux/landlock.h +41 −2
  32. include/uapi/linux/lockd_netlink.h +29 −0
  33. include/uapi/linux/mount.h +9 −1
  34. include/uapi/linux/mshv.h +291 −0
  35. include/uapi/linux/net_tstamp.h +4 −2
  36. include/uapi/linux/netdev.h +16 −0
  37. include/uapi/linux/nilfs2_ondisk.h +2 −1
  38. include/uapi/linux/nl80211.h +43 −29
  39. include/uapi/linux/pci_regs.h +10 −3
  40. include/uapi/linux/pcitest.h +6 −0
  41. include/uapi/linux/perf_event.h +2 −0
  42. include/uapi/linux/pidfd.h +30 −1
  43. include/uapi/linux/prctl.h +11 −0
  44. include/uapi/linux/psp-sev.h +14 −7
  45. include/uapi/linux/rkisp1-config.h +1 −1
  46. include/uapi/linux/rtnetlink.h +1 −0
  47. include/uapi/linux/snmp.h +7 −6
  48. include/uapi/linux/stddef.h +6 −0
  49. include/uapi/linux/tcp.h +9 −3
  50. include/uapi/linux/ublk_cmd.h +36 −0
  51. include/uapi/linux/usb/ch9.h +16 −0
  52. include/uapi/linux/usb/video.h +1 −0
  53. include/uapi/linux/uvcvideo.h +13 −0
  54. include/uapi/linux/v4l2-controls.h +7 −0
  55. include/uapi/linux/vfio.h +20 −10
  56. include/uapi/linux/videodev2.h +5 −0
  57. include/uapi/linux/virtio_net.h +13 −0
  58. include/uapi/linux/xattr.h +4 −0
include/uapi/linux/audit.h+3−1
@@ -33,7 +33,7 @@ · 32 unmodified lines
33 * 1100 - 1199 user space trusted application messages33 * 1100 - 1199 user space trusted application messages
34 * 1200 - 1299 messages internal to the audit daemon34 * 1200 - 1299 messages internal to the audit daemon
35 * 1300 - 1399 audit event messages35 * 1300 - 1399 audit event messages
36 * 1400 - 1499 SE Linux use36 * 1400 - 1499 access control messages
37 * 1500 - 1599 kernel LSPP events37 * 1500 - 1599 kernel LSPP events
38 * 1600 - 1699 kernel crypto events38 * 1600 - 1699 kernel crypto events
39 * 1700 - 1799 kernel anomaly records39 * 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 1700152#define AUDIT_FIRST_KERN_ANOM_MSG 1700
151#define AUDIT_LAST_KERN_ANOM_MSG 1799153#define AUDIT_LAST_KERN_ANOM_MSG 1799
include/uapi/linux/batman_adv.h+9−9
@@ -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 interface345 * @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 loop381 * @BATADV_ATTR_BRIDGE_LOOP_AVOIDANCE_ENABLED: whether the bridge loop
382 * avoidance feature is enabled. This feature detects and avoids loops382 * avoidance feature is enabled. This feature detects and avoids loops
383 * between the mesh and devices bridged with the soft interface383 * 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/mesh512 * @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 the537 * @BATADV_CMD_GET_HARDIF: Get attributes from a hardif of the
538 * current softif538 * 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/mesh594 * @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 the599 * @BATADV_CMD_SET_HARDIF: Set attributes for hardif of the
600 * current softif600 * 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 the605 * @BATADV_CMD_GET_VLAN: Get attributes from a VLAN of the
606 * current softif606 * 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 the611 * @BATADV_CMD_SET_VLAN: Set attributes for VLAN of the
612 * current softif612 * 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 use697 * @__IFLA_BATADV_MAX: internal use
include/uapi/linux/bits.h+2−6
@@ -4,13 +4,9 @@ · 3 unmodified lines
4#ifndef _UAPI_LINUX_BITS_H4#ifndef _UAPI_LINUX_BITS_H
5#define _UAPI_LINUX_BITS_H5#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)))
include/uapi/linux/blk-crypto.h+44−0
@@ -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
8struct 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
18struct 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
25struct 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 */
include/uapi/linux/bpf.h+39−1
@@ -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
54enum bpf_cond_pseudo_jmp {57enum 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, the1216/* 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't6032/* 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 argument6033 * 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
6924enum {
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 end6931 * New entries can only be added at the end
6918 */6932 */
@@ -7025,6 +7039,29 @@ enum { · 106 unmodified lines
7025 * by the kernel or the7039 * 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 detect7067/* 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
7096enum {7134enum {
include/uapi/linux/btf.h+2−1
@@ -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: unused37 * bits 29-30: unused
38 * bit 31: kind_flag, currently used by38 * bit 31: kind_flag, currently used by
39 * struct, union, enum, fwd and enum6439 * 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.
include/uapi/linux/btrfs.h+13−3
@@ -615,7 +615,9 @@ struct btrfs_ioctl_clone_range_args { · 614 unmodified lines
615 */615 */
616#define BTRFS_DEFRAG_RANGE_COMPRESS 1616#define BTRFS_DEFRAG_RANGE_COMPRESS 1
617#define BTRFS_DEFRAG_RANGE_START_IO 2617#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
621struct btrfs_ioctl_defrag_range_args {623struct 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 compression644 * which compression method to use if turning on compression
643 * for this defrag operation. If unspecified, zlib will645 * for this defrag operation. If unspecified, zlib will be
644 * be used646 * 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];
include/uapi/linux/can.h+2−1
@@ -182,7 +182,7 @@ struct canfd_frame { · 181 unmodified lines
182/*182/*
183 * defined bits for canxl_frame.flags183 * defined bits for canxl_frame.flags
184 *184 *
185 * The canxl_frame.flags element contains two bits CANXL_XLF and CANXL_SEC185 * 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 checks188 * 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 */
include/uapi/linux/capability.h+1−0
@@ -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 21280#define CAP_SYS_ADMIN 21
280 281
include/uapi/linux/const.h+1−1
@@ -33,7 +33,7 @@ · 32 unmodified lines
33 * Missing asm support33 * Missing asm support
34 *34 *
35 * __BIT128() would not work in the asm code, as it shifts an35 * __BIT128() would not work in the asm code, as it shifts an
36 * 'unsigned __init128' data type as direct representation of36 * 'unsigned __int128' data type as direct representation of
37 * 128 bit constants is not supported in the gcc compiler, as37 * 128 bit constants is not supported in the gcc compiler, as
38 * they get silently truncated.38 * they get silently truncated.
39 *39 *
include/uapi/linux/counter.h+2−0
@@ -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/**
include/uapi/linux/counter/microchip-tcb-capture.h+40−0
@@ -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_ */
include/uapi/linux/elf.h+132−5
@@ -11,6 +11,7 @@ typedef __u16 Elf32_Half; · 10 unmodified lines
11typedef __u32 Elf32_Off;11typedef __u32 Elf32_Off;
12typedef __s32 Elf32_Sword;12typedef __s32 Elf32_Sword;
13typedef __u32 Elf32_Word;13typedef __u32 Elf32_Word;
14typedef __u16 Elf32_Versym;
14 15
15/* 64-bit ELF base types. */16/* 64-bit ELF base types. */
16typedef __u64 Elf64_Addr;17typedef __u64 Elf64_Addr;
@@ -21,6 +22,7 @@ typedef __s32 Elf64_Sword; · 4 unmodified lines
21typedef __u32 Elf64_Word;22typedef __u32 Elf64_Word;
22typedef __u64 Elf64_Xword;23typedef __u64 Elf64_Xword;
23typedef __s64 Elf64_Sxword;24typedef __s64 Elf64_Sxword;
25typedef __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 028#define PT_NULL 0
@@ -107,6 +109,7 @@ typedef __s64 Elf64_Sxword; · 80 unmodified lines
107#define DT_VALRNGLO 0x6ffffd00109#define DT_VALRNGLO 0x6ffffd00
108#define DT_VALRNGHI 0x6ffffdff110#define DT_VALRNGHI 0x6ffffdff
109#define DT_ADDRRNGLO 0x6ffffe00111#define DT_ADDRRNGLO 0x6ffffe00
112#define DT_GNU_HASH 0x6ffffef5
110#define DT_ADDRRNGHI 0x6ffffeff113#define DT_ADDRRNGHI 0x6ffffeff
111#define DT_VERSYM 0x6ffffff0114#define DT_VERSYM 0x6ffffff0
112#define DT_RELACOUNT 0x6ffffff9115#define DT_RELACOUNT 0x6ffffff9
@@ -125,6 +128,8 @@ typedef __s64 Elf64_Sxword; · 12 unmodified lines
125#define STB_GLOBAL 1128#define STB_GLOBAL 1
126#define STB_WEAK 2129#define STB_WEAK 2
127 130
131#define STN_UNDEF 0
132
128#define STT_NOTYPE 0133#define STT_NOTYPE 0
129#define STT_OBJECT 1134#define STT_OBJECT 1
130#define STT_FUNC 2135#define STT_FUNC 2
@@ -133,6 +138,9 @@ typedef __s64 Elf64_Sxword; · 2 unmodified lines
133#define STT_COMMON 5138#define STT_COMMON 5
134#define STT_TLS 6139#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 0x1299#define SHF_WRITE 0x1
292#define SHF_ALLOC 0x2300#define SHF_ALLOC 0x2
293#define SHF_EXECINSTR 0x4301#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 0x00100000309#define SHF_RELA_LIVEPATCH 0x00100000
295#define SHF_RO_AFTER_INIT 0x00200000310#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 0xf0000000314#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_NONE386#define ELF_OSABI ELFOSABI_NONE
369#endif387#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 sets395 * Notes used in ET_CORE. Architectures export some of the arch register sets
373 * using the corresponding note types via the PTRACE_GETREGSET and396 * 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 1400#define NT_PRSTATUS 1
401#define NN_PRFPREG "CORE"
379#define NT_PRFPREG 2402#define NT_PRFPREG 2
403#define NN_PRPSINFO "CORE"
380#define NT_PRPSINFO 3404#define NT_PRPSINFO 3
405#define NN_TASKSTRUCT "CORE"
381#define NT_TASKSTRUCT 4406#define NT_TASKSTRUCT 4
407#define NN_AUXV "CORE"
382#define NT_AUXV 6408#define NT_AUXV 6
383/*409/*
384 * Note to userspace developers: size of NT_SIGINFO note may increase410 * 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 0x53494749414#define NT_SIGINFO 0x53494749
415#define NN_FILE "CORE"
388#define NT_FILE 0x46494c45416#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 */
467typedef struct elf32_note {564typedef 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
583typedef 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
593typedef 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
603typedef struct {
604 Elf32_Word vda_name;
605 Elf32_Word vda_next;
606} Elf32_Verdaux;
607
608typedef 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 */
include/uapi/linux/errqueue.h+1−0
@@ -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 */
include/uapi/linux/ethtool.h+22−0
@@ -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_NBITS2082 __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 0xff2296#define RXH_XFRM_NO_CHANGE 0xff
2275 2297
2276/* L2-L4 network traffic flow types */2298/* L2-L4 network traffic flow types */
include/uapi/linux/f2fs.h+7−0
@@ -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 0x365#define F2FS_TRIM_FILE_MASK 0x3
65 66
67/* for F2FS_IOC_IO_PRIO */
68enum {
69 F2FS_IOPRIO_WRITE = 1, /* high write priority */
70 F2FS_IOPRIO_MAX,
71};
72
66struct f2fs_gc_range {73struct f2fs_gc_range {
67 __u32 sync;74 __u32 sync;
68 __u64 start;75 __u64 start;
include/uapi/linux/fanotify.h+10−0
@@ -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 0x0000000097#define FAN_MARK_INODE 0x00000000
95#define FAN_MARK_MOUNT 0x0000001098#define FAN_MARK_MOUNT 0x00000010
96#define FAN_MARK_FILESYSTEM 0x0000010099#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_MODIFY103 * 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 4151#define FAN_EVENT_INFO_TYPE_PIDFD 4
148#define FAN_EVENT_INFO_TYPE_ERROR 5152#define FAN_EVENT_INFO_TYPE_ERROR 5
149#define FAN_EVENT_INFO_TYPE_RANGE 6153#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 10157#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
208struct 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.
include/uapi/linux/fib_rules.h+3−0
@@ -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_MAX76 __FRA_MAX
74};77};
75 78
include/uapi/linux/firewire-cdev.h+2−1
@@ -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 for452 *
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 for454 * %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 data456 * @data: Incoming data
include/uapi/linux/fs.h+2−4
@@ -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 devices216/* 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 */
include/uapi/linux/fuse.h+9−3
@@ -229,6 +229,9 @@ · 228 unmodified lines
229 * - FUSE_URING_IN_OUT_HEADER_SZ229 * - FUSE_URING_IN_OUT_HEADER_SZ
230 * - FUSE_URING_OP_IN_OUT_SZ230 * - FUSE_URING_OP_IN_OUT_SZ
231 * - enum fuse_uring_cmd231 * - enum fuse_uring_cmd
232 *
233 * 7.43
234 * - add FUSE_REQUEST_TIMEOUT
232 */235 */
233 236
234#ifndef _LINUX_FUSE_H237#ifndef _LINUX_FUSE_H
@@ -264,7 +267,7 @@ · 29 unmodified lines
264#define FUSE_KERNEL_VERSION 7267#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 42270#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 1273#define FUSE_ROOT_ID 1
@@ -435,6 +438,8 @@ struct fuse_file_lock { · 164 unmodified lines
435 * of the request ID indicates resend requests438 * of the request ID indicates resend requests
436 * FUSE_ALLOW_IDMAP: allow creation of idmapped mounts439 * FUSE_ALLOW_IDMAP: allow creation of idmapped mounts
437 * FUSE_OVER_IO_URING: Indicate that client supports io-uring440 * 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_MMAP486#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 flags492 * 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 4096921#define CUSE_INIT_INFO_MAX 4096
include/uapi/linux/if_cablemodem.h+0−23
@@ -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
include/uapi/linux/if_link.h+7−0
@@ -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_MAX382 __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_MAX1443 __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
1455struct ifla_geneve_port_range {
1456 __be16 low;
1457 __be16 high;
1458};
1459
1453/* Bareudp section */1460/* Bareudp section */
1454enum {1461enum {
1455 IFLA_BAREUDP_UNSPEC,1462 IFLA_BAREUDP_UNSPEC,
include/uapi/linux/if_xdp.h+10−0
@@ -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 driver136/* AF_XDP offloads request. 'request' union member is consumed by the driver
131 * when the packet is being transmitted. 'completion' union member is137 * 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 {
include/uapi/linux/iio/types.h+2−0
@@ -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
124enum iio_event_direction {125enum 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_ */
include/uapi/linux/io_uring.h+58−1
@@ -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 success552 * 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 arguments590 * 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 */
968struct io_uring_zcrx_rqe {
969 __u64 off;
970 __u32 len;
971 __u32 __pad;
972};
973
974struct 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
983struct io_uring_zcrx_offsets {
984 __u32 head;
985 __u32 tail;
986 __u32 rqes;
987 __u32 __resv2;
988 __u64 __resv[2];
989};
990
991struct 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 */
1003struct 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 __cplusplus1016#ifdef __cplusplus
960}1017}
961#endif1018#endif
include/uapi/linux/iommufd.h+128−1
@@ -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 the393 * Any domain attached to the non-PASID part of the
393 * device must also be flagged, otherwise attaching a394 * 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 return399 * 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_BITMAP612 * IOMMU_HWPT_GET_DIRTY_BITMAP
609 * IOMMU_HWPT_SET_DIRTY_TRACKING613 * 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 */
612enum iommufd_hw_capabilities {622enum 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 defined639 * @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 0644 * @__reserved: Must be 0
630 *645 *
631 * Query an iommu type specific hardware information data from an iommu behind646 * 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 */
1037enum 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 */
1069struct 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 */
1079enum 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 */
1101struct 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 */
1133struct 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#endif1144#endif
include/uapi/linux/kfd_ioctl.h+8−2
@@ -43,9 +43,10 @@ · 42 unmodified lines
43 * - 1.15 - Enable managing mappings in compute VMs with GEM_VA ioctl43 * - 1.15 - Enable managing mappings in compute VMs with GEM_VA ioctl
44 * - 1.16 - Add contiguous VRAM allocation flag44 * - 1.16 - Add contiguous VRAM allocation flag
45 * - 1.17 - Add SDMA queue creation with target SDMA engine ID45 * - 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 148#define KFD_IOCTL_MAJOR_VERSION 1
48#define KFD_IOCTL_MINOR_VERSION 1749#define KFD_IOCTL_MINOR_VERSION 18
49 50
50struct kfd_ioctl_get_version_args {51struct 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 10063#define KFD_MAX_QUEUE_PERCENTAGE 100
63#define KFD_MAX_QUEUE_PRIORITY 1564#define KFD_MAX_QUEUE_PRIORITY 15
64 65
66#define KFD_MIN_QUEUE_RING_SIZE 1024
67
65struct kfd_ioctl_create_queue_args {68struct 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 0151#define KFD_IOC_CACHE_POLICY_COHERENT 0
149#define KFD_IOC_CACHE_POLICY_NONCOHERENT 1152#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
151struct kfd_ioctl_set_memory_policy_args {157struct 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/*
include/uapi/linux/kfd_sysfs.h+3−0
@@ -63,6 +63,9 @@ · 62 unmodified lines
63#define HSA_CAP_PER_QUEUE_RESET_SUPPORTED 0x8000000063#define HSA_CAP_PER_QUEUE_RESET_SUPPORTED 0x80000000
64#define HSA_CAP_RESERVED 0x000f800064#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 0x0000000f70#define HSA_DBG_WATCH_ADDR_MASK_LO_BIT_MASK 0x0000000f
68#define HSA_DBG_WATCH_ADDR_MASK_LO_BIT_SHIFT 071#define HSA_DBG_WATCH_ADDR_MASK_LO_BIT_SHIFT 0
include/uapi/linux/kvm.h+1−0
@@ -929,6 +929,7 @@ struct kvm_enable_cap { · 928 unmodified lines
929#define KVM_CAP_PRE_FAULT_MEMORY 236929#define KVM_CAP_PRE_FAULT_MEMORY 236
930#define KVM_CAP_X86_APIC_BUS_CYCLES_NS 237930#define KVM_CAP_X86_APIC_BUS_CYCLES_NS 237
931#define KVM_CAP_X86_GUEST_MODE 238931#define KVM_CAP_X86_GUEST_MODE 238
932#define KVM_CAP_ARM_WRITABLE_IMP_ID_REGS 239
932 933
933struct kvm_irq_routing_irqchip {934struct kvm_irq_routing_irqchip {
934 __u32 irqchip;935 __u32 irqchip;
include/uapi/linux/landlock.h+41−2
@@ -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 ANSSI6 * Copyright © 2018-2020 ANSSI
7 * Copyright © 2021-2025 Microsoft Corporation
7 */8 */
8 9
9#ifndef _UAPI_LINUX_LANDLOCK_H10#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 ABI59 * - %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 network305 * 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 forbid328 * 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 from335 * - %LANDLOCK_SCOPE_ABSTRACT_UNIX_SOCKET: Restrict a sandboxed process from
297 * connecting to an abstract UNIX socket created by a process outside the336 * 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 signal338 * - %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 */
include/uapi/linux/lockd_netlink.h+29−0
@@ -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
12enum {
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
21enum {
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 */
include/uapi/linux/mount.h+9−1
@@ -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 listmount230 * Special @mnt_id values that can be passed to listmount
include/uapi/linux/mshv.h+291−0
@@ -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
25enum {
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
34enum {
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 */
50struct 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
64struct mshv_create_vp {
65 __u32 vp_index;
66};
67
68enum {
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 */
95struct mshv_user_mem_region {
96 __u64 size;
97 __u64 guest_pfn;
98 __u64 userspace_addr;
99 __u8 flags;
100 __u8 rsvd[7];
101};
102
103enum {
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
111struct mshv_user_irqfd {
112 __s32 fd;
113 __s32 resamplefd;
114 __u32 gsi;
115 __u32 flags;
116};
117
118enum {
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
127struct 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
136struct mshv_user_irq_entry {
137 __u32 gsi;
138 __u32 address_lo;
139 __u32 address_hi;
140 __u32 data;
141};
142
143struct mshv_user_irq_table {
144 __u32 nr;
145 __u32 rsvd; /* MBZ */
146 struct mshv_user_irq_entry entries[];
147};
148
149enum {
150 MSHV_GPAP_ACCESS_TYPE_ACCESSED,
151 MSHV_GPAP_ACCESS_TYPE_DIRTY,
152 MSHV_GPAP_ACCESS_TYPE_COUNT /* Count of enum members */
153};
154
155enum {
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 */
177struct 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 */
200struct 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 */
240enum {
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 */
252struct mshv_run_vp {
253 __u8 msg_buf[MSHV_RUN_VP_BUF_SZ];
254};
255
256enum {
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 */
274struct 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
include/uapi/linux/net_tstamp.h+4−2
@@ -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_LAST51 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 parameter66 * struct so_timestamping - SO_TIMESTAMPING parameter
include/uapi/linux/netdev.h+16−0
@@ -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 the60 * @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 */
63enum netdev_xsk_flags {65enum 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
68enum netdev_queue_type {71enum 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
92enum {
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
89enum {97enum {
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
142enum {
143 __NETDEV_A_XSK_INFO_MAX,
144 NETDEV_A_XSK_INFO_MAX = (__NETDEV_A_XSK_INFO_MAX - 1)
145};
146
133enum {147enum {
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)
include/uapi/linux/nilfs2_ondisk.h+2−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; /*
include/uapi/linux/nl80211.h+43−29
@@ -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 GmbH13 * Copyright 2015-2017 Intel Deutschland GmbH
14 * Copyright (C) 2018-2024 Intel Corporation14 * Copyright (C) 2018-2025 Intel Corporation
15 *15 *
16 * Permission to use, copy, modify, and/or distribute this software for any16 * Permission to use, copy, modify, and/or distribute this software for any
17 * purpose with or without fee is hereby granted, provided that the above17 * 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 of2884 * @NL80211_ATTR_SUPPORTED_SELECTORS: supported BSS Membership Selectors, array
2885 * supported selectors as defined by IEEE 802.11 7.3.2.2 but without the2885 * 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 implemented2887 * 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 a2893 * @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 available2902 * @NUM_NL80211_ATTR: total number of nl80211_attrs available
2897 * @NL80211_ATTR_MAX: highest attribute number currently defined2903 * @NL80211_ATTR_MAX: highest attribute number currently defined
2898 * @__NL80211_ATTR_AFTER_LAST: internal use2904 * @__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 a4336 * @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 number4340 * @NL80211_FREQUENCY_ATTR_MAX: highest frequency attribute number
4331 * currently defined4341 * currently defined
4332 * @__NL80211_FREQUENCY_ATTR_AFTER_LAST: internal use4342 * @__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 allowed4593 * @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 permitted4594 * @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 */
4586enum nl80211_reg_rule_flags {4599enum 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_IR4626#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 PLCP4741 * @NL80211_MNTR_FLAG_PLCPFAIL: pass frames with bad PLCP
4728 * @NL80211_MNTR_FLAG_CONTROL: pass control frames4742 * @NL80211_MNTR_FLAG_CONTROL: pass control frames
4729 * @NL80211_MNTR_FLAG_OTHER_BSS: disable BSSID filtering4743 * @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 address4746 * @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 packets4748 * @NL80211_MNTR_FLAG_SKIP_TX: do not pass local tx packets
include/uapi/linux/pci_regs.h+10−3
@@ -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 0x000000ff1209#define PCI_DOE_DATA_OBJECT_DISC_REQ_3_INDEX 0x000000ff
1206#define PCI_DOE_DATA_OBJECT_DISC_REQ_3_VER 0x0000ff001210#define PCI_DOE_DATA_OBJECT_DISC_REQ_3_VER 0x0000ff00
1207#define PCI_DOE_DATA_OBJECT_DISC_RSP_3_VID 0x0000ffff1211#define PCI_DOE_DATA_OBJECT_DISC_RSP_3_VID 0x0000ffff
1208#define PCI_DOE_DATA_OBJECT_DISC_RSP_3_PROTOCOL 0x00ff00001212#define PCI_DOE_DATA_OBJECT_DISC_RSP_3_TYPE 0x00ff0000
1209#define PCI_DOE_DATA_OBJECT_DISC_RSP_3_NEXT_INDEX 0xff0000001213#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 31219#define PCI_DVSEC_CXL_PORT 3
1213#define PCI_DVSEC_CXL_PORT_CTL 0x0c1220#define PCI_DVSEC_CXL_PORT_CTL 0x0c
include/uapi/linux/pcitest.h+6−0
@@ -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 0x0000000132#define PCITEST_FLAGS_USE_DMA 0x00000001
27 33
28struct pci_endpoint_test_xfer_param {34struct pci_endpoint_test_xfer_param {
include/uapi/linux/perf_event.h+2−0
@@ -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_stack387 * should be < /proc/sys/kernel/perf_event_max_stack
388 * Max number of entries of branch stack
389 * should be < hardware limit
388 */390 */
389struct perf_event_attr {391struct perf_event_attr {
390 392
include/uapi/linux/pidfd.h+30−1
@@ -10,6 +10,10 @@ · 9 unmodified lines
10/* Flags for pidfd_open(). */10/* Flags for pidfd_open(). */
11#define PIDFD_NONBLOCK O_NONBLOCK11#define PIDFD_NONBLOCK O_NONBLOCK
12#define PIDFD_THREAD O_EXCL12#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
26struct pidfd_info {55struct 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 0xFF97#define PIDFS_IOCTL_MAGIC 0xFF
include/uapi/linux/prctl.h+11−0
@@ -353,4 +353,15 @@ struct prctl_mm_map { · 352 unmodified lines
353 */353 */
354#define PR_LOCK_SHADOW_STACK_STATUS 76354#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 */
include/uapi/linux/psp-sev.h+14−7
@@ -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
include/uapi/linux/rkisp1-config.h+1−1
@@ -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 ---------------------------------+ |
include/uapi/linux/rtnetlink.h+1−0
@@ -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 */
include/uapi/linux/snmp.h+7−6
@@ -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_MAX61 __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 */
include/uapi/linux/stddef.h+6−0
@@ -70,4 +70,10 @@ · 69 unmodified lines
70#define __counted_by_be(m)70#define __counted_by_be(m)
71#endif71#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 */
include/uapi/linux/tcp.h+9−3
@@ -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
72enum {74enum {
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 1146#define TCP_REPAIR_ON 1
141#define TCP_REPAIR_OFF 0147#define TCP_REPAIR_OFF 0
include/uapi/linux/ublk_cmd.h+36−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 0103#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
408struct 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 */
418struct 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
404struct ublk_params {436struct ublk_params {
405 /*437 /*
406 * Total length of parameters, userspace has to set 'len' for both438 * 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#endif460#endif
include/uapi/linux/usb/ch9.h+16−0
@@ -253,6 +253,9 @@ struct usb_ctrlrequest { · 252 unmodified lines
253#define USB_DT_BOS 0x0f253#define USB_DT_BOS 0x0f
254#define USB_DT_DEVICE_CAPABILITY 0x10254#define USB_DT_DEVICE_CAPABILITY 0x10
255#define USB_DT_WIRELESS_ENDPOINT_COMP 0x11255#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 0x21259#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 0x21261#define USB_DT_DFU_FUNCTIONAL 0x21
@@ -330,6 +333,7 @@ struct usb_device_descriptor { · 71 unmodified lines
330#define USB_CLASS_AUDIO_VIDEO 0x10333#define USB_CLASS_AUDIO_VIDEO 0x10
331#define USB_CLASS_BILLBOARD 0x11334#define USB_CLASS_BILLBOARD 0x11
332#define USB_CLASS_USB_TYPE_C_BRIDGE 0x12335#define USB_CLASS_USB_TYPE_C_BRIDGE 0x12
336#define USB_CLASS_MCTP 0x14
333#define USB_CLASS_MISC 0xef337#define USB_CLASS_MISC 0xef
334#define USB_CLASS_APP_SPEC 0xfe338#define USB_CLASS_APP_SPEC 0xfe
335#define USB_SUBCLASS_DFU 0x01339#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 */
683struct 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 Companion694/* USB_DT_SSP_ISOC_ENDPOINT_COMP: SuperSpeedPlus Isochronous Endpoint Companion
679 * descriptor695 * descriptor
680 */696 */
include/uapi/linux/usb/video.h+1−0
@@ -104,6 +104,7 @@ · 103 unmodified lines
104#define UVC_CT_ROLL_ABSOLUTE_CONTROL 0x0f104#define UVC_CT_ROLL_ABSOLUTE_CONTROL 0x0f
105#define UVC_CT_ROLL_RELATIVE_CONTROL 0x10105#define UVC_CT_ROLL_RELATIVE_CONTROL 0x10
106#define UVC_CT_PRIVACY_CONTROL 0x11106#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 0x00110#define UVC_PU_CONTROL_UNDEFINED 0x00
include/uapi/linux/uvcvideo.h+13−0
@@ -16,6 +16,7 @@ · 15 unmodified lines
16#define UVC_CTRL_DATA_TYPE_BOOLEAN 316#define UVC_CTRL_DATA_TYPE_BOOLEAN 3
17#define UVC_CTRL_DATA_TYPE_ENUM 417#define UVC_CTRL_DATA_TYPE_ENUM 4
18#define UVC_CTRL_DATA_TYPE_BITMASK 518#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 3240#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
41struct uvc_menu_info {54struct uvc_menu_info {
42 __u32 value;55 __u32 value;
43 __u8 name[UVC_MENU_NAME_LEN];56 __u8 name[UVC_MENU_NAME_LEN];
include/uapi/linux/v4l2-controls.h+7−0
@@ -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 controls226/* 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 */
include/uapi/linux/vfio.h+20−10
@@ -671,6 +671,7 @@ enum { · 670 unmodified lines
671 */671 */
672enum {672enum {
673 VFIO_AP_REQ_IRQ_INDEX,673 VFIO_AP_REQ_IRQ_INDEX,
674 VFIO_AP_CFG_CHG_IRQ_INDEX,
674 VFIO_AP_NUM_IRQS675 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 hwpt936 * @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 could938 * Output the input ioas id or the attached hwpt id which could
938 * be the specified hwpt itself or a hwpt automatically created939 * 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 only945 * 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 doing948 * 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 ioctl949 * 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 known950 * 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 attached951 * 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 */
953struct vfio_device_attach_iommufd_pt {957struct 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 address975 * 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 only976 * 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 */
973struct vfio_device_detach_iommufd_pt {981struct 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)
include/uapi/linux/videodev2.h+5−0
@@ -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 01912#define V4L2_CTRL_WHICH_CUR_VAL 0
1912#define V4L2_CTRL_WHICH_DEF_VAL 0x0f0000001913#define V4L2_CTRL_WHICH_DEF_VAL 0x0f000000
1913#define V4L2_CTRL_WHICH_REQUEST_VAL 0x0f0100001914#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
1915enum v4l2_ctrl_type {1918enum 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 0x02002021#define V4L2_CTRL_FLAG_EXECUTE_ON_WRITE 0x0200
2018#define V4L2_CTRL_FLAG_MODIFY_LAYOUT 0x04002022#define V4L2_CTRL_FLAG_MODIFY_LAYOUT 0x0400
2019#define V4L2_CTRL_FLAG_DYNAMIC_ARRAY 0x08002023#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 0x800000002027#define V4L2_CTRL_FLAG_NEXT_CTRL 0x80000000
include/uapi/linux/virtio_net.h+13−0
@@ -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
330struct 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
337struct 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 1343 #define VIRTIO_NET_CTRL_MQ_RSS_CONFIG 1
331 344
332/*345/*
include/uapi/linux/xattr.h+4−0
@@ -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_SUFFIX84#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_ACCESS91#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"