History

Merge tag 'v5.3-rc3' into drm-next-5.4

Linux 5.3-rc3

Alex Deucher committed 7 years ago

Commit 3f61fd42 parents 6ca523d e21a71216417 files · +552707 −428013Browse files

Showing the changes to include/uapi (105 of 16417 files). Show all

Unified · Split

105 files
  1. include/uapi/Kbuild +3 −3
  2. include/uapi/asm-generic/mman-common.h +9 −6
  3. include/uapi/asm-generic/mman.h +4 −6
  4. include/uapi/asm-generic/socket.h +2 −0
  5. include/uapi/asm-generic/unistd.h +7 −1
  6. include/uapi/drm/vmwgfx_drm.h +1 −3
  7. include/uapi/linux/adfs_fs.h +3 −3
  8. include/uapi/linux/audit.h +1 −0
  9. include/uapi/linux/batadv_packet.h +8 −0
  10. include/uapi/linux/bpf.h +79 −10
  11. include/uapi/linux/bpfilter.h +1 −1
  12. include/uapi/linux/btrfs_tree.h +2 −0
  13. include/uapi/linux/cec.h +1 −0
  14. include/uapi/linux/coda.h +38 −18
  15. include/uapi/linux/coda_psdev.h +0 −28
  16. include/uapi/linux/devlink.h +16 −0
  17. include/uapi/linux/dvb/audio.h +4 −2
  18. include/uapi/linux/dvb/osd.h +105 −69
  19. include/uapi/linux/dvb/video.h +3 −1
  20. include/uapi/linux/ethtool.h +2 −0
  21. include/uapi/linux/flat.h +0 −59
  22. include/uapi/linux/if_ether.h +1 −0
  23. include/uapi/linux/if_link.h +6 −0
  24. include/uapi/linux/if_packet.h +1 −1
  25. include/uapi/linux/if_xdp.h +8 −0
  26. include/uapi/linux/io_uring.h +4 −0
  27. include/uapi/linux/iommu.h +155 −0
  28. include/uapi/linux/ip_vs.h +8 −0
  29. include/uapi/linux/ipmi_bmc.h +1 −1
  30. include/uapi/linux/isdn.h +0 −144
  31. include/uapi/linux/isdn_divertif.h +0 −31
  32. include/uapi/linux/isdn_ppp.h +0 −68
  33. include/uapi/linux/isdnif.h +0 −57
  34. include/uapi/linux/isst_if.h +172 −0
  35. include/uapi/linux/keyctl.h +19 −0
  36. include/uapi/linux/kvm.h +8 −3
  37. include/uapi/linux/kvm_para.h +1 −0
  38. include/uapi/linux/magic.h +1 −0
  39. include/uapi/linux/media.h +1 −1
  40. include/uapi/linux/mii.h +2 −0
  41. include/uapi/linux/netfilter/ipset/ip_set.h +1 −1
  42. include/uapi/linux/netfilter/nf_synproxy.h +23 −0
  43. include/uapi/linux/netfilter/nf_tables.h +37 −1
  44. include/uapi/linux/netfilter/xt_SYNPROXY.h +7 −11
  45. include/uapi/linux/netfilter/xt_owner.h +9 −3
  46. include/uapi/linux/nexthop.h +56 −0
  47. include/uapi/linux/nilfs2_ondisk.h +12 −12
  48. include/uapi/linux/nl80211.h +26 −2
  49. include/uapi/linux/pci_regs.h +4 −0
  50. include/uapi/linux/pkt_cls.h +20 −1
  51. include/uapi/linux/pkt_sched.h +8 −2
  52. include/uapi/linux/psp-sev.h +1 −4
  53. include/uapi/linux/ptrace.h +35 −0
  54. include/uapi/linux/rds.h +2 −0
  55. include/uapi/linux/rtnetlink.h +10 −0
  56. include/uapi/linux/rxrpc.h +1 −1
  57. include/uapi/linux/sched.h +29 −1
  58. include/uapi/linux/sched/types.h +57 −9
  59. include/uapi/linux/sed-opal.h +21 −0
  60. include/uapi/linux/serial_core.h +1 −4
  61. include/uapi/linux/snmp.h +2 −0
  62. include/uapi/linux/tc_act/tc_ct.h +41 −0
  63. include/uapi/linux/tc_act/tc_ctinfo.h +29 −0
  64. include/uapi/linux/tc_act/tc_mpls.h +33 −0
  65. include/uapi/linux/tcp.h +3 −0
  66. include/uapi/linux/unix_diag.h +2 −0
  67. include/uapi/linux/usb/audio.h +37 −0
  68. include/uapi/linux/usb/g_uvc.h +1 −1
  69. include/uapi/linux/usbdevice_fs.h +26 −0
  70. include/uapi/linux/v4l2-controls.h +23 −0
  71. include/uapi/linux/vbox_vmmdev_types.h +1 −1
  72. include/uapi/linux/vboxguest.h +1 −1
  73. include/uapi/linux/videodev2.h +8 −2
  74. include/uapi/linux/virtio_ids.h +2 −0
  75. include/uapi/linux/virtio_iommu.h +165 −0
  76. include/uapi/linux/virtio_pmem.h +34 −0
  77. include/uapi/linux/vmcore.h +1 −1
  78. include/uapi/linux/wanrouter.h +0 −18
  79. include/uapi/linux/wmi.h +1 −4
  80. include/uapi/misc/fastrpc.h +1 −1
  81. include/uapi/misc/habanalabs.h +29 −1
  82. include/uapi/misc/ocxl.h +7 −7
  83. include/uapi/mtd/mtd-abi.h +5 −5
  84. include/uapi/rdma/ib_user_cm.h +0 −326
  85. include/uapi/rdma/mlx5_user_ioctl_cmds.h +19 −0
  86. include/uapi/rdma/mlx5_user_ioctl_verbs.h +9 −0
  87. include/uapi/rdma/rdma_netlink.h +82 −4
  88. include/uapi/rdma/rdma_user_ioctl_cmds.h +2 −1
  89. include/uapi/rdma/rvt-abi.h +66 −0
  90. include/uapi/rdma/siw-abi.h +185 −0
  91. include/uapi/scsi/fc/fc_els.h +0 −13
  92. include/uapi/scsi/fc/fc_fs.h +0 −13
  93. include/uapi/scsi/fc/fc_gs.h +0 −13
  94. include/uapi/scsi/fc/fc_ns.h +0 −13
  95. include/uapi/scsi/scsi_bsg_fc.h +0 −15
  96. include/uapi/scsi/scsi_bsg_ufs.h +1 −1
  97. include/uapi/scsi/scsi_netlink.h +0 −15
  98. include/uapi/scsi/scsi_netlink_fc.h +0 −15
  99. include/uapi/sound/skl-tplg-interface.h +1 −1
  100. include/uapi/sound/sof/abi.h +1 −1
  101. include/uapi/sound/sof/eq.h +0 −172
  102. include/uapi/sound/sof/manifest.h +0 −188
  103. include/uapi/sound/sof/tokens.h +1 −0
  104. include/uapi/sound/sof/tone.h +0 −21
  105. include/uapi/sound/sof/trace.h +0 −66
include/uapi/Kbuildrenamed from include/uapi/linux/Kbuild+3−3
@@ -1,14 +1,14 @@
11 # SPDX-License-Identifier: GPL-2.0
22 ifeq ($(wildcard $(srctree)/arch/$(SRCARCH)/include/uapi/asm/a.out.h),)
3−no-export-headers += a.out.h
3+no-export-headers += linux/a.out.h
44 endif
55
66 ifeq ($(wildcard $(srctree)/arch/$(SRCARCH)/include/uapi/asm/kvm.h),)
7−no-export-headers += kvm.h
7+no-export-headers += linux/kvm.h
88 endif
99
1010 ifeq ($(wildcard $(srctree)/arch/$(SRCARCH)/include/uapi/asm/kvm_para.h),)
1111 ifeq ($(wildcard $(objtree)/arch/$(SRCARCH)/include/generated/uapi/asm/kvm_para.h),)
12−no-export-headers += kvm_para.h
12+no-export-headers += linux/kvm_para.h
1313 endif
1414 endif
include/uapi/asm-generic/mman-common.h+9−6
@@ -19,15 +19,18 @@ · 18 unmodified lines
1919 #define MAP_TYPE 0x0f /* Mask for type of mapping */
2020 #define MAP_FIXED 0x10 /* Interpret addr exactly */
2121 #define MAP_ANONYMOUS 0x20 /* don't use a file */
22−#ifdef CONFIG_MMAP_ALLOW_UNINITIALIZED
23−# define MAP_UNINITIALIZED 0x4000000 /* For anonymous mmap, memory could be uninitialized */
24−#else
25−# define MAP_UNINITIALIZED 0x0 /* Don't support this flag */
26−#endif
2722
28−/* 0x0100 - 0x80000 flags are defined in asm-generic/mman.h */
23+/* 0x0100 - 0x4000 flags are defined in asm-generic/mman.h */
24+#define MAP_POPULATE 0x008000 /* populate (prefault) pagetables */
25+#define MAP_NONBLOCK 0x010000 /* do not block on IO */
26+#define MAP_STACK 0x020000 /* give out an address that is best suited for process/thread stacks */
27+#define MAP_HUGETLB 0x040000 /* create a huge page mapping */
28+#define MAP_SYNC 0x080000 /* perform synchronous page faults for the mapping */
2929 #define MAP_FIXED_NOREPLACE 0x100000 /* MAP_FIXED which doesn't unmap underlying mapping */
3030
31+#define MAP_UNINITIALIZED 0x4000000 /* For anonymous mmap, memory could be
32+ * uninitialized */
33+
3134 /*
3235 * Flags for mlock
3336 */
include/uapi/asm-generic/mman.h+4−6
@@ -9,13 +9,11 @@ · 8 unmodified lines
99 #define MAP_EXECUTABLE 0x1000 /* mark it as an executable */
1010 #define MAP_LOCKED 0x2000 /* pages are locked */
1111 #define MAP_NORESERVE 0x4000 /* don't check for reservations */
12−#define MAP_POPULATE 0x8000 /* populate (prefault) pagetables */
13−#define MAP_NONBLOCK 0x10000 /* do not block on IO */
14−#define MAP_STACK 0x20000 /* give out an address that is best suited for process/thread stacks */
15−#define MAP_HUGETLB 0x40000 /* create a huge page mapping */
16−#define MAP_SYNC 0x80000 /* perform synchronous page faults for the mapping */
1712
18−/* Bits [26:31] are reserved, see mman-common.h for MAP_HUGETLB usage */
13+/*
14+ * Bits [26:31] are reserved, see asm-generic/hugetlb_encode.h
15+ * for MAP_HUGETLB usage
16+ */
1917
2018 #define MCL_CURRENT 1 /* lock all current mappings */
2119 #define MCL_FUTURE 2 /* lock all future mappings */
include/uapi/asm-generic/socket.h+2−0
@@ -117,6 +117,8 @@ · 116 unmodified lines
117117 #define SO_RCVTIMEO_NEW 66
118118 #define SO_SNDTIMEO_NEW 67
119119
120+#define SO_DETACH_REUSEPORT_BPF 68
121+
120122 #if !defined(__KERNEL__)
121123
122124 #if __BITS_PER_LONG == 64 || (defined(__x86_64__) && defined(__ILP32__))
include/uapi/asm-generic/unistd.h+7−1
@@ -844,9 +844,15 @@ __SYSCALL(__NR_fsconfig, sys_fsconfig) · 843 unmodified lines
844844 __SYSCALL(__NR_fsmount, sys_fsmount)
845845 #define __NR_fspick 433
846846 __SYSCALL(__NR_fspick, sys_fspick)
847+#define __NR_pidfd_open 434
848+__SYSCALL(__NR_pidfd_open, sys_pidfd_open)
849+#ifdef __ARCH_WANT_SYS_CLONE3
850+#define __NR_clone3 435
851+__SYSCALL(__NR_clone3, sys_clone3)
852+#endif
847853
848854 #undef __NR_syscalls
849−#define __NR_syscalls 434
855+#define __NR_syscalls 436
850856
851857 /*
852858 * 32 bit systems traditionally used different
include/uapi/drm/vmwgfx_drm.h+1−3
@@ -891,13 +891,11 @@ struct drm_vmw_shader_arg { · 890 unmodified lines
891891 * surface.
892892 * @drm_vmw_surface_flag_create_buffer: Create a backup buffer if none is
893893 * given.
894− * @drm_vmw_surface_flag_coherent: Back surface with coherent memory.
895894 */
896895 enum drm_vmw_surface_flags {
897896 drm_vmw_surface_flag_shareable = (1 << 0),
898897 drm_vmw_surface_flag_scanout = (1 << 1),
899− drm_vmw_surface_flag_create_buffer = (1 << 2),
900− drm_vmw_surface_flag_coherent = (1 << 3),
898+ drm_vmw_surface_flag_create_buffer = (1 << 2)
901899 };
902900
903901 /**
include/uapi/linux/adfs_fs.h+3−3
@@ -29,17 +29,17 @@ struct adfs_discrecord { · 28 unmodified lines
2929 __u8 log2sharesize:4;
3030 __u8 unused40:4;
3131 __u8 big_flag:1;
32− __u8 unused41:1;
32+ __u8 unused41:7;
3333 __u8 nzones_high;
34+ __u8 reserved43;
3435 __le32 format_version;
3536 __le32 root_size;
3637 __u8 unused52[60 - 52];
37−};
38+} __attribute__((packed, aligned(4)));
3839
3940 #define ADFS_DISCRECORD (0xc00)
4041 #define ADFS_DR_OFFSET (0x1c0)
4142 #define ADFS_DR_SIZE 60
4243 #define ADFS_DR_SIZE_BITS (ADFS_DR_SIZE << 3)
4344
44−
4545 #endif /* _UAPI_ADFS_FS_H */
include/uapi/linux/audit.h+1−0
@@ -281,6 +281,7 @@ · 280 unmodified lines
281281 #define AUDIT_OBJ_GID 110
282282 #define AUDIT_FIELD_COMPARE 111
283283 #define AUDIT_EXE 112
284+#define AUDIT_SADDR_FAM 113
284285
285286 #define AUDIT_ARG0 200
286287 #define AUDIT_ARG1 (AUDIT_ARG0+1)
include/uapi/linux/batadv_packet.h+8−0
@@ -107,12 +107,20 @@ enum batadv_icmp_packettype { · 106 unmodified lines
107107 * @BATADV_MCAST_WANT_ALL_UNSNOOPABLES: we want all packets destined for
108108 * 224.0.0.0/24 or ff02::1
109109 * @BATADV_MCAST_WANT_ALL_IPV4: we want all IPv4 multicast packets
110+ * (both link-local and routable ones)
110111 * @BATADV_MCAST_WANT_ALL_IPV6: we want all IPv6 multicast packets
112+ * (both link-local and routable ones)
113+ * @BATADV_MCAST_WANT_NO_RTR4: we have no IPv4 multicast router and therefore
114+ * only need routable IPv4 multicast packets we signed up for explicitly
115+ * @BATADV_MCAST_WANT_NO_RTR6: we have no IPv6 multicast router and therefore
116+ * only need routable IPv6 multicast packets we signed up for explicitly
111117 */
112118 enum batadv_mcast_flags {
113119 BATADV_MCAST_WANT_ALL_UNSNOOPABLES = 1UL << 0,
114120 BATADV_MCAST_WANT_ALL_IPV4 = 1UL << 1,
115121 BATADV_MCAST_WANT_ALL_IPV6 = 1UL << 2,
122+ BATADV_MCAST_WANT_NO_RTR4 = 1UL << 3,
123+ BATADV_MCAST_WANT_NO_RTR6 = 1UL << 4,
116124 };
117125
118126 /* tt data subtypes */
include/uapi/linux/bpf.h+79−10
@@ -170,6 +170,7 @@ enum bpf_prog_type { · 169 unmodified lines
170170 BPF_PROG_TYPE_FLOW_DISSECTOR,
171171 BPF_PROG_TYPE_CGROUP_SYSCTL,
172172 BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE,
173+ BPF_PROG_TYPE_CGROUP_SOCKOPT,
173174 };
174175
175176 enum bpf_attach_type {
@@ -192,6 +193,10 @@ enum bpf_attach_type { · 16 unmodified lines
192193 BPF_LIRC_MODE2,
193194 BPF_FLOW_DISSECTOR,
194195 BPF_CGROUP_SYSCTL,
196+ BPF_CGROUP_UDP4_RECVMSG,
197+ BPF_CGROUP_UDP6_RECVMSG,
198+ BPF_CGROUP_GETSOCKOPT,
199+ BPF_CGROUP_SETSOCKOPT,
195200 __MAX_BPF_ATTACH_TYPE
196201 };
197202
@@ -260,6 +265,24 @@ enum bpf_attach_type { · 62 unmodified lines
260265 */
261266 #define BPF_F_ANY_ALIGNMENT (1U << 1)
262267
268+/* BPF_F_TEST_RND_HI32 is used in BPF_PROG_LOAD command for testing purpose.
269+ * Verifier does sub-register def/use analysis and identifies instructions whose
270+ * def only matters for low 32-bit, high 32-bit is never referenced later
271+ * through implicit zero extension. Therefore verifier notifies JIT back-ends
272+ * that it is safe to ignore clearing high 32-bit for these instructions. This
273+ * saves some back-ends a lot of code-gen. However such optimization is not
274+ * necessary on some arches, for example x86_64, arm64 etc, whose JIT back-ends
275+ * hence hasn't used verifier's analysis result. But, we really want to have a
276+ * way to be able to verify the correctness of the described optimization on
277+ * x86_64 on which testsuites are frequently exercised.
278+ *
279+ * So, this flag is introduced. Once it is set, verifier will randomize high
280+ * 32-bit for those instructions who has been identified as safe to ignore them.
281+ * Then, if verifier is not doing correct analysis, such randomization will
282+ * regress tests to expose bugs.
283+ */
284+#define BPF_F_TEST_RND_HI32 (1U << 2)
285+
263286 /* When BPF ldimm64's insn[0].src_reg != 0 then this can have
264287 * two extensions:
265288 *
@@ -783,7 +806,7 @@ union bpf_attr { · 517 unmodified lines
783806 * based on a user-provided identifier for all traffic coming from
784807 * the tasks belonging to the related cgroup. See also the related
785808 * kernel documentation, available from the Linux sources in file
786− * *Documentation/cgroup-v1/net_cls.txt*.
809+ * *Documentation/admin-guide/cgroup-v1/net_cls.rst*.
787810 *
788811 * The Linux kernel has two versions for cgroups: there are
789812 * cgroups v1 and cgroups v2. Both are available to users, who can
@@ -1548,8 +1571,11 @@ union bpf_attr { · 758 unmodified lines
15481571 * but this is only implemented for native XDP (with driver
15491572 * support) as of this writing).
15501573 *
1551− * All values for *flags* are reserved for future usage, and must
1552− * be left at zero.
1574+ * The lower two bits of *flags* are used as the return code if
1575+ * the map lookup fails. This is so that the return value can be
1576+ * one of the XDP program return codes up to XDP_TX, as chosen by
1577+ * the caller. Any higher bits in the *flags* argument must be
1578+ * unset.
15531579 *
15541580 * When used to redirect packets to net devices, this helper
15551581 * provides a high performance increase over **bpf_redirect**\ ().
@@ -1744,6 +1770,7 @@ union bpf_attr { · 188 unmodified lines
17441770 * * **BPF_SOCK_OPS_RTO_CB_FLAG** (retransmission time out)
17451771 * * **BPF_SOCK_OPS_RETRANS_CB_FLAG** (retransmission)
17461772 * * **BPF_SOCK_OPS_STATE_CB_FLAG** (TCP state change)
1773+ * * **BPF_SOCK_OPS_RTT_CB_FLAG** (every RTT)
17471774 *
17481775 * Therefore, this function can be used to clear a callback flag by
17491776 * setting the appropriate bit to zero. e.g. to disable the RTO
@@ -2672,6 +2699,20 @@ union bpf_attr { · 922 unmodified lines
26722699 * 0 on success.
26732700 *
26742701 * **-ENOENT** if the bpf-local-storage cannot be found.
2702+ *
2703+ * int bpf_send_signal(u32 sig)
2704+ * Description
2705+ * Send signal *sig* to the current task.
2706+ * Return
2707+ * 0 on success or successfully queued.
2708+ *
2709+ * **-EBUSY** if work queue under nmi is full.
2710+ *
2711+ * **-EINVAL** if *sig* is invalid.
2712+ *
2713+ * **-EPERM** if no permission to send the *sig*.
2714+ *
2715+ * **-EAGAIN** if bpf program can try again.
26752716 */
26762717 #define __BPF_FUNC_MAPPER(FN) \
26772718 FN(unspec), \
@@ -2782,7 +2823,8 @@ union bpf_attr { · 104 unmodified lines
27822823 FN(strtol), \
27832824 FN(strtoul), \
27842825 FN(sk_storage_get), \
2785− FN(sk_storage_delete),
2826+ FN(sk_storage_delete), \
2827+ FN(send_signal),
27862828
27872829 /* integer value in 'imm' field of BPF_CALL instruction selects which helper
27882830 * function eBPF program intends to call
@@ -3031,6 +3073,12 @@ struct bpf_tcp_sock { · 242 unmodified lines
30313073 * sum(delta(snd_una)), or how many bytes
30323074 * were acked.
30333075 */
3076+ __u32 dsack_dups; /* RFC4898 tcpEStatsStackDSACKDups
3077+ * total number of DSACK blocks received
3078+ */
3079+ __u32 delivered; /* Total data packets delivered incl. rexmits */
3080+ __u32 delivered_ce; /* Like the above but only ECE marked packets */
3081+ __u32 icsk_retransmits; /* Number of unrecovered [RTO] timeouts */
30343082 };
30353083
30363084 struct bpf_sock_tuple {
@@ -3050,6 +3098,10 @@ struct bpf_sock_tuple { · 13 unmodified lines
30503098 };
30513099 };
30523100
3101+struct bpf_xdp_sock {
3102+ __u32 queue_id;
3103+};
3104+
30533105 #define XDP_PACKET_HEADROOM 256
30543106
30553107 /* User return codes for XDP prog type.
@@ -3141,6 +3193,7 @@ struct bpf_prog_info { · 85 unmodified lines
31413193 char name[BPF_OBJ_NAME_LEN];
31423194 __u32 ifindex;
31433195 __u32 gpl_compatible:1;
3196+ __u32 :31; /* alignment pad */
31443197 __u64 netns_dev;
31453198 __u64 netns_ino;
31463199 __u32 nr_jited_ksyms;
@@ -3195,7 +3248,7 @@ struct bpf_sock_addr { · 48 unmodified lines
31953248 __u32 user_ip4; /* Allows 1,2,4-byte read and 4-byte write.
31963249 * Stored in network byte order.
31973250 */
3198− __u32 user_ip6[4]; /* Allows 1,2,4-byte read an 4-byte write.
3251+ __u32 user_ip6[4]; /* Allows 1,2,4,8-byte read and 4,8-byte write.
31993252 * Stored in network byte order.
32003253 */
32013254 __u32 user_port; /* Allows 4-byte read and write.
@@ -3204,12 +3257,13 @@ struct bpf_sock_addr { · 2 unmodified lines
32043257 __u32 family; /* Allows 4-byte read, but no write */
32053258 __u32 type; /* Allows 4-byte read, but no write */
32063259 __u32 protocol; /* Allows 4-byte read, but no write */
3207− __u32 msg_src_ip4; /* Allows 1,2,4-byte read an 4-byte write.
3260+ __u32 msg_src_ip4; /* Allows 1,2,4-byte read and 4-byte write.
32083261 * Stored in network byte order.
32093262 */
3210− __u32 msg_src_ip6[4]; /* Allows 1,2,4-byte read an 4-byte write.
3263+ __u32 msg_src_ip6[4]; /* Allows 1,2,4,8-byte read and 4,8-byte write.
32113264 * Stored in network byte order.
32123265 */
3266+ __bpf_md_ptr(struct bpf_sock *, sk);
32133267 };
32143268
32153269 /* User bpf_sock_ops struct to access socket values and specify request ops
@@ -3261,13 +3315,15 @@ struct bpf_sock_ops { · 45 unmodified lines
32613315 __u32 sk_txhash;
32623316 __u64 bytes_received;
32633317 __u64 bytes_acked;
3318+ __bpf_md_ptr(struct bpf_sock *, sk);
32643319 };
32653320
32663321 /* Definitions for bpf_sock_ops_cb_flags */
32673322 #define BPF_SOCK_OPS_RTO_CB_FLAG (1<<0)
32683323 #define BPF_SOCK_OPS_RETRANS_CB_FLAG (1<<1)
32693324 #define BPF_SOCK_OPS_STATE_CB_FLAG (1<<2)
3270−#define BPF_SOCK_OPS_ALL_CB_FLAGS 0x7 /* Mask of all currently
3325+#define BPF_SOCK_OPS_RTT_CB_FLAG (1<<3)
3326+#define BPF_SOCK_OPS_ALL_CB_FLAGS 0xF /* Mask of all currently
32713327 * supported cb flags
32723328 */
32733329
@@ -3322,6 +3378,8 @@ enum { · 48 unmodified lines
33223378 BPF_SOCK_OPS_TCP_LISTEN_CB, /* Called on listen(2), right after
33233379 * socket transition to LISTEN state.
33243380 */
3381+ BPF_SOCK_OPS_RTT_CB, /* Called on every RTT.
3382+ */
33253383 };
33263384
33273385 /* List of TCP states. There is a build check in net/ipv4/tcp.c to detect
@@ -3376,8 +3434,8 @@ struct bpf_raw_tracepoint_args { · 48 unmodified lines
33763434 /* DIRECT: Skip the FIB rules and go to FIB table associated with device
33773435 * OUTPUT: Do lookup from egress perspective; default is ingress
33783436 */
3379−#define BPF_FIB_LOOKUP_DIRECT BIT(0)
3380−#define BPF_FIB_LOOKUP_OUTPUT BIT(1)
3437+#define BPF_FIB_LOOKUP_DIRECT (1U << 0)
3438+#define BPF_FIB_LOOKUP_OUTPUT (1U << 1)
33813439
33823440 enum {
33833441 BPF_FIB_LKUP_RET_SUCCESS, /* lookup successful */
@@ -3500,4 +3558,15 @@ struct bpf_sysctl { · 116 unmodified lines
35003558 */
35013559 };
35023560
3561+struct bpf_sockopt {
3562+ __bpf_md_ptr(struct bpf_sock *, sk);
3563+ __bpf_md_ptr(void *, optval);
3564+ __bpf_md_ptr(void *, optval_end);
3565+
3566+ __s32 level;
3567+ __s32 optname;
3568+ __s32 optlen;
3569+ __s32 retval;
3570+};
3571+
35033572 #endif /* _UAPI__LINUX_BPF_H__ */
include/uapi/linux/bpfilter.h+1−1
@@ -1,4 +1,4 @@
1−/* SPDX-License-Identifier: GPL-2.0 */
1+/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
22 #ifndef _UAPI_LINUX_BPFILTER_H
33 #define _UAPI_LINUX_BPFILTER_H
44
include/uapi/linux/btrfs_tree.h+2−0
@@ -866,6 +866,8 @@ enum btrfs_raid_types { · 865 unmodified lines
866866 #define BTRFS_BLOCK_GROUP_RAID56_MASK (BTRFS_BLOCK_GROUP_RAID5 | \
867867 BTRFS_BLOCK_GROUP_RAID6)
868868
869+#define BTRFS_BLOCK_GROUP_RAID1_MASK (BTRFS_BLOCK_GROUP_RAID1)
870+
869871 /*
870872 * We need a bit for restriper to be able to tell when chunks of type
871873 * SINGLE are available. This "extended" profile format is used in
include/uapi/linux/cec.h+1−0
@@ -144,6 +144,7 @@ static inline void cec_msg_set_reply_to(struct cec_msg *msg, · 143 unmodified lines
144144
145145 /* cec_msg flags field */
146146 #define CEC_MSG_FL_REPLY_TO_FOLLOWERS (1 << 0)
147+#define CEC_MSG_FL_RAW (1 << 1)
147148
148149 /* cec_msg tx/rx_status field */
149150 #define CEC_TX_STATUS_OK (1 << 0)
include/uapi/linux/coda.h+38−18
@@ -86,10 +86,6 @@ typedef unsigned long long u_quad_t; · 85 unmodified lines
8686
8787 #define inline
8888
89−struct timespec {
90− long ts_sec;
91− long ts_nsec;
92−};
9389 #else /* DJGPP but not KERNEL */
9490 #include <sys/time.h>
9591 typedef unsigned long long u_quad_t;
@@ -110,13 +106,6 @@ typedef unsigned long long u_quad_t; · 14 unmodified lines
110106 #define cdev_t dev_t
111107 #endif
112108
113−#ifdef __CYGWIN32__
114−struct timespec {
115− time_t tv_sec; /* seconds */
116− long tv_nsec; /* nanoseconds */
117−};
118−#endif
119−
120109 #ifndef __BIT_TYPES_DEFINED__
121110 #define __BIT_TYPES_DEFINED__
122111 typedef signed char int8_t;
@@ -211,6 +200,11 @@ struct CodaFid { · 88 unmodified lines
211200 */
212201 enum coda_vtype { C_VNON, C_VREG, C_VDIR, C_VBLK, C_VCHR, C_VLNK, C_VSOCK, C_VFIFO, C_VBAD };
213202
203+struct coda_timespec {
204+ int64_t tv_sec; /* seconds */
205+ long tv_nsec; /* nanoseconds */
206+};
207+
214208 struct coda_vattr {
215209 long va_type; /* vnode type (for create) */
216210 u_short va_mode; /* files access mode and type */
@@ -220,9 +214,9 @@ struct coda_vattr { · 3 unmodified lines
220214 long va_fileid; /* file id */
221215 u_quad_t va_size; /* file size in bytes */
222216 long va_blocksize; /* blocksize preferred for i/o */
223− struct timespec va_atime; /* time of last access */
224− struct timespec va_mtime; /* time of last modification */
225− struct timespec va_ctime; /* time file changed */
217+ struct coda_timespec va_atime; /* time of last access */
218+ struct coda_timespec va_mtime; /* time of last modification */
219+ struct coda_timespec va_ctime; /* time file changed */
226220 u_long va_gen; /* generation number of file */
227221 u_long va_flags; /* flags defined for file */
228222 cdev_t va_rdev; /* device special file represents */
@@ -277,7 +271,8 @@ struct coda_statfs { · 48 unmodified lines
277271 #define CODA_STATFS 34
278272 #define CODA_STORE 35
279273 #define CODA_RELEASE 36
280−#define CODA_NCALLS 37
274+#define CODA_ACCESS_INTENT 37
275+#define CODA_NCALLS 38
281276
282277 #define DOWNCALL(opcode) (opcode >= CODA_REPLACE && opcode <= CODA_PURGEFID)
283278
@@ -287,7 +282,12 @@ struct coda_statfs { · 3 unmodified lines
287282
288283 #define CIOC_KERNEL_VERSION _IOWR('c', 10, size_t)
289284
290−#define CODA_KERNEL_VERSION 3 /* 128-bit file identifiers */
285+// CODA_KERNEL_VERSION 0 /* don't care about kernel version number */
286+// CODA_KERNEL_VERSION 1 /* The old venus 4.6 compatible interface */
287+// CODA_KERNEL_VERSION 2 /* venus_lookup gets an extra parameter */
288+// CODA_KERNEL_VERSION 3 /* 128-bit file identifiers */
289+// CODA_KERNEL_VERSION 4 /* 64-bit timespec */
290+#define CODA_KERNEL_VERSION 5 /* access intent support */
291291
292292 /*
293293 * Venus <-> Coda RPC arguments
@@ -295,8 +295,8 @@ struct coda_statfs { · 1 unmodified line
295295 struct coda_in_hdr {
296296 u_int32_t opcode;
297297 u_int32_t unique; /* Keep multiple outstanding msgs distinct */
298− pid_t pid;
299− pid_t pgid;
298+ __kernel_pid_t pid;
299+ __kernel_pid_t pgid;
300300 vuid_t uid;
301301 };
302302
@@ -642,6 +642,25 @@ struct coda_statfs_out { · 339 unmodified lines
642642 struct coda_statfs stat;
643643 };
644644
645+#define CODA_ACCESS_TYPE_READ 1
646+#define CODA_ACCESS_TYPE_WRITE 2
647+#define CODA_ACCESS_TYPE_MMAP 3
648+#define CODA_ACCESS_TYPE_READ_FINISH 4
649+#define CODA_ACCESS_TYPE_WRITE_FINISH 5
650+
651+/* coda_access_intent: NO_OUT */
652+struct coda_access_intent_in {
653+ struct coda_in_hdr ih;
654+ struct CodaFid VFid;
655+ int count;
656+ int pos;
657+ int type;
658+};
659+
660+struct coda_access_intent_out {
661+ struct coda_out_hdr out;
662+};
663+
645664 /*
646665 * Occasionally, we don't cache the fid returned by CODA_LOOKUP.
647666 * For instance, if the fid is inconsistent.
@@ -673,6 +692,7 @@ union inputArgs { · 25 unmodified lines
673692 struct coda_open_by_fd_in coda_open_by_fd;
674693 struct coda_open_by_path_in coda_open_by_path;
675694 struct coda_statfs_in coda_statfs;
695+ struct coda_access_intent_in coda_access_intent;
676696 };
677697
678698 union outputArgs {
include/uapi/linux/coda_psdev.h+0−28
@@ -1,28 +0,0 @@
1−/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
2−#ifndef _UAPI__CODA_PSDEV_H
3−#define _UAPI__CODA_PSDEV_H
4−
5−#include <linux/magic.h>
6−
7−#define CODA_PSDEV_MAJOR 67
8−#define MAX_CODADEVS 5 /* how many do we allow */
9−
10−
11−/* messages between coda filesystem in kernel and Venus */
12−struct upc_req {
13− struct list_head uc_chain;
14− caddr_t uc_data;
15− u_short uc_flags;
16− u_short uc_inSize; /* Size is at most 5000 bytes */
17− u_short uc_outSize;
18− u_short uc_opcode; /* copied from data to save lookup */
19− int uc_unique;
20− wait_queue_head_t uc_sleep; /* process' wait queue */
21−};
22−
23−#define CODA_REQ_ASYNC 0x1
24−#define CODA_REQ_READ 0x2
25−#define CODA_REQ_WRITE 0x4
26−#define CODA_REQ_ABORT 0x8
27−
28−#endif /* _UAPI__CODA_PSDEV_H */
include/uapi/linux/devlink.h+16−0
@@ -104,6 +104,8 @@ enum devlink_command { · 103 unmodified lines
104104 DEVLINK_CMD_HEALTH_REPORTER_DUMP_CLEAR,
105105
106106 DEVLINK_CMD_FLASH_UPDATE,
107+ DEVLINK_CMD_FLASH_UPDATE_END, /* notification only */
108+ DEVLINK_CMD_FLASH_UPDATE_STATUS, /* notification only */
107109
108110 /* add new commands above here */
109111 __DEVLINK_CMD_MAX,
@@ -167,6 +169,14 @@ enum devlink_port_flavour { · 57 unmodified lines
167169 DEVLINK_PORT_FLAVOUR_DSA, /* Distributed switch architecture
168170 * interconnect port.
169171 */
172+ DEVLINK_PORT_FLAVOUR_PCI_PF, /* Represents eswitch port for
173+ * the PCI PF. It is an internal
174+ * port that faces the PCI PF.
175+ */
176+ DEVLINK_PORT_FLAVOUR_PCI_VF, /* Represents eswitch port
177+ * for the PCI VF. It is an internal
178+ * port that faces the PCI VF.
179+ */
170180 };
171181
172182 enum devlink_param_cmode {
@@ -331,6 +341,12 @@ enum devlink_attr { · 158 unmodified lines
331341
332342 DEVLINK_ATTR_FLASH_UPDATE_FILE_NAME, /* string */
333343 DEVLINK_ATTR_FLASH_UPDATE_COMPONENT, /* string */
344+ DEVLINK_ATTR_FLASH_UPDATE_STATUS_MSG, /* string */
345+ DEVLINK_ATTR_FLASH_UPDATE_STATUS_DONE, /* u64 */
346+ DEVLINK_ATTR_FLASH_UPDATE_STATUS_TOTAL, /* u64 */
347+
348+ DEVLINK_ATTR_PORT_PCI_PF_NUMBER, /* u16 */
349+ DEVLINK_ATTR_PORT_PCI_VF_NUMBER, /* u16 */
334350
335351 /* add new attributes above here, update the policy in devlink.c */
336352
include/uapi/linux/dvb/audio.h+4−2
@@ -1,6 +1,8 @@
11 /* SPDX-License-Identifier: LGPL-2.1+ WITH Linux-syscall-note */
22 /*
3− * audio.h
3+ * audio.h - DEPRECATED MPEG-TS audio decoder API
4+ *
5+ * NOTE: should not be used on future drivers
46 *
57 * Copyright (C) 2000 Ralph Metzler <ralph@convergence.de>
68 * & Marcus Metzler <marcus@convergence.de>
@@ -52,7 +54,7 @@ typedef enum { · 45 unmodified lines
5254 typedef struct audio_mixer {
5355 unsigned int volume_left;
5456 unsigned int volume_right;
55− // what else do we need? bass, pass-through, ...
57+ /* what else do we need? bass, pass-through, ... */
5658 } audio_mixer_t;
5759
5860
include/uapi/linux/dvb/osd.h+105−69
@@ -1,6 +1,8 @@
11 /* SPDX-License-Identifier: LGPL-2.1+ WITH Linux-syscall-note */
22 /*
3− * osd.h
3+ * osd.h - DEPRECATED On Screen Display API
4+ *
5+ * NOTE: should not be used on future drivers
46 *
57 * Copyright (C) 2001 Ralph Metzler <ralph@convergence.de>
68 * & Marcus Metzler <marcus@convergence.de>
@@ -28,74 +30,108 @@ · 21 unmodified lines
2830 #include <linux/compiler.h>
2931
3032 typedef enum {
31− // All functions return -2 on "not open"
32− OSD_Close=1, // ()
33− // Disables OSD and releases the buffers
34− // returns 0 on success
35− OSD_Open, // (x0,y0,x1,y1,BitPerPixel[2/4/8](color&0x0F),mix[0..15](color&0xF0))
36− // Opens OSD with this size and bit depth
37− // returns 0 on success, -1 on DRAM allocation error, -2 on "already open"
38− OSD_Show, // ()
39− // enables OSD mode
40− // returns 0 on success
41− OSD_Hide, // ()
42− // disables OSD mode
43− // returns 0 on success
44− OSD_Clear, // ()
45− // Sets all pixel to color 0
46− // returns 0 on success
47− OSD_Fill, // (color)
48− // Sets all pixel to color <col>
49− // returns 0 on success
50− OSD_SetColor, // (color,R{x0},G{y0},B{x1},opacity{y1})
51− // set palette entry <num> to <r,g,b>, <mix> and <trans> apply
52− // R,G,B: 0..255
53− // R=Red, G=Green, B=Blue
54− // opacity=0: pixel opacity 0% (only video pixel shows)
55− // opacity=1..254: pixel opacity as specified in header
56− // opacity=255: pixel opacity 100% (only OSD pixel shows)
57− // returns 0 on success, -1 on error
58− OSD_SetPalette, // (firstcolor{color},lastcolor{x0},data)
59− // Set a number of entries in the palette
60− // sets the entries "firstcolor" through "lastcolor" from the array "data"
61− // data has 4 byte for each color:
62− // R,G,B, and a opacity value: 0->transparent, 1..254->mix, 255->pixel
63− OSD_SetTrans, // (transparency{color})
64− // Sets transparency of mixed pixel (0..15)
65− // returns 0 on success
66− OSD_SetPixel, // (x0,y0,color)
67− // sets pixel <x>,<y> to color number <col>
68− // returns 0 on success, -1 on error
69− OSD_GetPixel, // (x0,y0)
70− // returns color number of pixel <x>,<y>, or -1
71− OSD_SetRow, // (x0,y0,x1,data)
72− // fills pixels x0,y through x1,y with the content of data[]
73− // returns 0 on success, -1 on clipping all pixel (no pixel drawn)
74− OSD_SetBlock, // (x0,y0,x1,y1,increment{color},data)
75− // fills pixels x0,y0 through x1,y1 with the content of data[]
76− // inc contains the width of one line in the data block,
77− // inc<=0 uses blockwidth as linewidth
78− // returns 0 on success, -1 on clipping all pixel
79− OSD_FillRow, // (x0,y0,x1,color)
80− // fills pixels x0,y through x1,y with the color <col>
81− // returns 0 on success, -1 on clipping all pixel
82− OSD_FillBlock, // (x0,y0,x1,y1,color)
83− // fills pixels x0,y0 through x1,y1 with the color <col>
84− // returns 0 on success, -1 on clipping all pixel
85− OSD_Line, // (x0,y0,x1,y1,color)
86− // draw a line from x0,y0 to x1,y1 with the color <col>
87− // returns 0 on success
88− OSD_Query, // (x0,y0,x1,y1,xasp{color}}), yasp=11
89− // fills parameters with the picture dimensions and the pixel aspect ratio
90− // returns 0 on success
91− OSD_Test, // ()
92− // draws a test picture. for debugging purposes only
93− // returns 0 on success
94−// TODO: remove "test" in final version
95− OSD_Text, // (x0,y0,size,color,text)
96− OSD_SetWindow, // (x0) set window with number 0<x0<8 as current
97− OSD_MoveWindow, // move current window to (x0, y0)
98− OSD_OpenRaw, // Open other types of OSD windows
33+ /* All functions return -2 on "not open" */
34+ OSD_Close = 1, /* () */
35+ /*
36+ * Disables OSD and releases the buffers
37+ * returns 0 on success
38+ */
39+ OSD_Open, /* (x0,y0,x1,y1,BitPerPixel[2/4/8](color&0x0F),mix[0..15](color&0xF0)) */
40+ /*
41+ * Opens OSD with this size and bit depth
42+ * returns 0 on success, -1 on DRAM allocation error, -2 on "already open"
43+ */
44+ OSD_Show, /* () */
45+ /*
46+ * enables OSD mode
47+ * returns 0 on success
48+ */
49+ OSD_Hide, /* () */
50+ /*
51+ * disables OSD mode
52+ * returns 0 on success
53+ */
54+ OSD_Clear, /* () */
55+ /*
56+ * Sets all pixel to color 0
57+ * returns 0 on success
58+ */
59+ OSD_Fill, /* (color) */
60+ /*
61+ * Sets all pixel to color <col>
62+ * returns 0 on success
63+ */
64+ OSD_SetColor, /* (color,R{x0},G{y0},B{x1},opacity{y1}) */
65+ /*
66+ * set palette entry <num> to <r,g,b>, <mix> and <trans> apply
67+ * R,G,B: 0..255
68+ * R=Red, G=Green, B=Blue
69+ * opacity=0: pixel opacity 0% (only video pixel shows)
70+ * opacity=1..254: pixel opacity as specified in header
71+ * opacity=255: pixel opacity 100% (only OSD pixel shows)
72+ * returns 0 on success, -1 on error
73+ */
74+ OSD_SetPalette, /* (firstcolor{color},lastcolor{x0},data) */
75+ /*
76+ * Set a number of entries in the palette
77+ * sets the entries "firstcolor" through "lastcolor" from the array "data"
78+ * data has 4 byte for each color:
79+ * R,G,B, and a opacity value: 0->transparent, 1..254->mix, 255->pixel
80+ */
81+ OSD_SetTrans, /* (transparency{color}) */
82+ /*
83+ * Sets transparency of mixed pixel (0..15)
84+ * returns 0 on success
85+ */
86+ OSD_SetPixel, /* (x0,y0,color) */
87+ /*
88+ * sets pixel <x>,<y> to color number <col>
89+ * returns 0 on success, -1 on error
90+ */
91+ OSD_GetPixel, /* (x0,y0) */
92+ /* returns color number of pixel <x>,<y>, or -1 */
93+ OSD_SetRow, /* (x0,y0,x1,data) */
94+ /*
95+ * fills pixels x0,y through x1,y with the content of data[]
96+ * returns 0 on success, -1 on clipping all pixel (no pixel drawn)
97+ */
98+ OSD_SetBlock, /* (x0,y0,x1,y1,increment{color},data) */
99+ /*
100+ * fills pixels x0,y0 through x1,y1 with the content of data[]
101+ * inc contains the width of one line in the data block,
102+ * inc<=0 uses blockwidth as linewidth
103+ * returns 0 on success, -1 on clipping all pixel
104+ */
105+ OSD_FillRow, /* (x0,y0,x1,color) */
106+ /*
107+ * fills pixels x0,y through x1,y with the color <col>
108+ * returns 0 on success, -1 on clipping all pixel
109+ */
110+ OSD_FillBlock, /* (x0,y0,x1,y1,color) */
111+ /*
112+ * fills pixels x0,y0 through x1,y1 with the color <col>
113+ * returns 0 on success, -1 on clipping all pixel
114+ */
115+ OSD_Line, /* (x0,y0,x1,y1,color) */
116+ /*
117+ * draw a line from x0,y0 to x1,y1 with the color <col>
118+ * returns 0 on success
119+ */
120+ OSD_Query, /* (x0,y0,x1,y1,xasp{color}}), yasp=11 */
121+ /*
122+ * fills parameters with the picture dimensions and the pixel aspect ratio
123+ * returns 0 on success
124+ */
125+ OSD_Test, /* () */
126+ /*
127+ * draws a test picture. for debugging purposes only
128+ * returns 0 on success
129+ * TODO: remove "test" in final version
130+ */
131+ OSD_Text, /* (x0,y0,size,color,text) */
132+ OSD_SetWindow, /* (x0) set window with number 0<x0<8 as current */
133+ OSD_MoveWindow, /* move current window to (x0, y0) */
134+ OSD_OpenRaw, /* Open other types of OSD windows */
99135 } OSD_Command;
100136
101137 typedef struct osd_cmd_s {
include/uapi/linux/dvb/video.h+3−1
@@ -1,6 +1,8 @@
11 /* SPDX-License-Identifier: LGPL-2.1+ WITH Linux-syscall-note */
22 /*
3− * video.h
3+ * video.h - DEPRECATED MPEG-TS video decoder API
4+ *
5+ * NOTE: should not be used on future drivers
46 *
57 * Copyright (C) 2000 Marcus Metzler <marcus@convergence.de>
68 * & Ralph Metzler <ralph@convergence.de>
include/uapi/linux/ethtool.h+2−0
@@ -1483,6 +1483,8 @@ enum ethtool_link_mode_bit_indices { · 1482 unmodified lines
14831483 ETHTOOL_LINK_MODE_200000baseLR4_ER4_FR4_Full_BIT = 64,
14841484 ETHTOOL_LINK_MODE_200000baseDR4_Full_BIT = 65,
14851485 ETHTOOL_LINK_MODE_200000baseCR4_Full_BIT = 66,
1486+ ETHTOOL_LINK_MODE_100baseT1_Full_BIT = 67,
1487+ ETHTOOL_LINK_MODE_1000baseT1_Full_BIT = 68,
14861488
14871489 /* must be last entry */
14881490 __ETHTOOL_LINK_MODE_MASK_NBITS
include/uapi/linux/flat.h+0−59
@@ -1,59 +0,0 @@
1−/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
2−/*
3− * Copyright (C) 2002-2003 David McCullough <davidm@snapgear.com>
4− * Copyright (C) 1998 Kenneth Albanowski <kjahds@kjahds.com>
5− * The Silver Hammer Group, Ltd.
6− *
7− * This file provides the definitions and structures needed to
8− * support uClinux flat-format executables.
9− */
10−
11−#ifndef _UAPI_LINUX_FLAT_H
12−#define _UAPI_LINUX_FLAT_H
13−
14−
15−#define FLAT_VERSION 0x00000004L
16−
17−#ifdef CONFIG_BINFMT_SHARED_FLAT
18−#define MAX_SHARED_LIBS (4)
19−#else
20−#define MAX_SHARED_LIBS (1)
21−#endif
22−
23−/*
24− * To make everything easier to port and manage cross platform
25− * development, all fields are in network byte order.
26− */
27−
28−struct flat_hdr {
29− char magic[4];
30− unsigned long rev; /* version (as above) */
31− unsigned long entry; /* Offset of first executable instruction
32− with text segment from beginning of file */
33− unsigned long data_start; /* Offset of data segment from beginning of
34− file */
35− unsigned long data_end; /* Offset of end of data segment
36− from beginning of file */
37− unsigned long bss_end; /* Offset of end of bss segment from beginning
38− of file */
39−
40− /* (It is assumed that data_end through bss_end forms the bss segment.) */
41−
42− unsigned long stack_size; /* Size of stack, in bytes */
43− unsigned long reloc_start; /* Offset of relocation records from
44− beginning of file */
45− unsigned long reloc_count; /* Number of relocation records */
46− unsigned long flags;
47− unsigned long build_date; /* When the program/library was built */
48− unsigned long filler[5]; /* Reservered, set to zero */
49−};
50−
51−#define FLAT_FLAG_RAM 0x0001 /* load program entirely into RAM */
52−#define FLAT_FLAG_GOTPIC 0x0002 /* program is PIC with GOT */
53−#define FLAT_FLAG_GZIP 0x0004 /* all but the header is compressed */
54−#define FLAT_FLAG_GZDATA 0x0008 /* only data/relocs are compressed (for XIP) */
55−#define FLAT_FLAG_KTRACE 0x0010 /* output useful kernel trace for debugging */
56−
57−
58−
59−#endif /* _UAPI_LINUX_FLAT_H */
include/uapi/linux/if_ether.h+1−0
@@ -91,6 +91,7 @@ · 90 unmodified lines
9191 #define ETH_P_802_EX1 0x88B5 /* 802.1 Local Experimental 1. */
9292 #define ETH_P_PREAUTH 0x88C7 /* 802.11 Preauthentication */
9393 #define ETH_P_TIPC 0x88CA /* TIPC */
94+#define ETH_P_LLDP 0x88CC /* Link Layer Discovery Protocol */
9495 #define ETH_P_MACSEC 0x88E5 /* 802.1ae MACsec */
9596 #define ETH_P_8021AH 0x88E7 /* 802.1ah Backbone Service Tag */
9697 #define ETH_P_MVRP 0x88F5 /* 802.1Q MVRP */
include/uapi/linux/if_link.h+6−0
@@ -636,6 +636,7 @@ enum { · 635 unmodified lines
636636 IFLA_BOND_AD_USER_PORT_KEY,
637637 IFLA_BOND_AD_ACTOR_SYSTEM,
638638 IFLA_BOND_TLB_DYNAMIC_LB,
639+ IFLA_BOND_PEER_NOTIF_DELAY,
639640 __IFLA_BOND_MAX,
640641 };
641642
@@ -694,6 +695,7 @@ enum { · 52 unmodified lines
694695 IFLA_VF_IB_NODE_GUID, /* VF Infiniband node GUID */
695696 IFLA_VF_IB_PORT_GUID, /* VF Infiniband port GUID */
696697 IFLA_VF_VLAN_LIST, /* nested list of vlans, option for QinQ */
698+ IFLA_VF_BROADCAST, /* VF broadcast */
697699 __IFLA_VF_MAX,
698700 };
699701
@@ -704,6 +706,10 @@ struct ifla_vf_mac { · 4 unmodified lines
704706 __u8 mac[32]; /* MAX_ADDR_LEN */
705707 };
706708
709+struct ifla_vf_broadcast {
710+ __u8 broadcast[32];
711+};
712+
707713 struct ifla_vf_vlan {
708714 __u32 vf;
709715 __u32 vlan; /* 0 - 4095, 0 disables VLAN filter */
include/uapi/linux/if_packet.h+1−1
@@ -123,7 +123,7 @@ struct tpacket_auxdata { · 122 unmodified lines
123123 /* Rx and Tx ring - header status */
124124 #define TP_STATUS_TS_SOFTWARE (1 << 29)
125125 #define TP_STATUS_TS_SYS_HARDWARE (1 << 30) /* deprecated, never set */
126−#define TP_STATUS_TS_RAW_HARDWARE (1 << 31)
126+#define TP_STATUS_TS_RAW_HARDWARE (1U << 31)
127127
128128 /* Rx ring - feature request bits */
129129 #define TP_FT_REQ_FILL_RXHASH 0x1
include/uapi/linux/if_xdp.h+8−0
@@ -46,6 +46,7 @@ struct xdp_mmap_offsets { · 45 unmodified lines
4646 #define XDP_UMEM_FILL_RING 5
4747 #define XDP_UMEM_COMPLETION_RING 6
4848 #define XDP_STATISTICS 7
49+#define XDP_OPTIONS 8
4950
5051 struct xdp_umem_reg {
5152 __u64 addr; /* Start of packet data area */
@@ -60,6 +61,13 @@ struct xdp_statistics { · 8 unmodified lines
6061 __u64 tx_invalid_descs; /* Dropped due to invalid descriptor */
6162 };
6263
64+struct xdp_options {
65+ __u32 flags;
66+};
67+
68+/* Flags for the flags field of struct xdp_options */
69+#define XDP_OPTIONS_ZEROCOPY (1 << 0)
70+
6371 /* Pgoff for mmaping the rings */
6472 #define XDP_PGOFF_RX_RING 0
6573 #define XDP_PGOFF_TX_RING 0x80000000
include/uapi/linux/io_uring.h+4−0
@@ -27,6 +27,7 @@ struct io_uring_sqe { · 26 unmodified lines
2727 __u32 fsync_flags;
2828 __u16 poll_events;
2929 __u32 sync_range_flags;
30+ __u32 msg_flags;
3031 };
3132 __u64 user_data; /* data to be passed back at completion time */
3233 union {
@@ -40,6 +41,7 @@ struct io_uring_sqe { · 7 unmodified lines
4041 */
4142 #define IOSQE_FIXED_FILE (1U << 0) /* use fixed fileset */
4243 #define IOSQE_IO_DRAIN (1U << 1) /* issue after inflight IO */
44+#define IOSQE_IO_LINK (1U << 2) /* links next sqe */
4345
4446 /*
4547 * io_uring_setup() flags
@@ -57,6 +59,8 @@ struct io_uring_sqe { · 11 unmodified lines
5759 #define IORING_OP_POLL_ADD 6
5860 #define IORING_OP_POLL_REMOVE 7
5961 #define IORING_OP_SYNC_FILE_RANGE 8
62+#define IORING_OP_SENDMSG 9
63+#define IORING_OP_RECVMSG 10
6064
6165 /*
6266 * sqe->fsync_flags
include/uapi/linux/iommu.h+155−0
@@ -0,0 +1,155 @@
1+/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
2+/*
3+ * IOMMU user API definitions
4+ */
5+
6+#ifndef _UAPI_IOMMU_H
7+#define _UAPI_IOMMU_H
8+
9+#include <linux/types.h>
10+
11+#define IOMMU_FAULT_PERM_READ (1 << 0) /* read */
12+#define IOMMU_FAULT_PERM_WRITE (1 << 1) /* write */
13+#define IOMMU_FAULT_PERM_EXEC (1 << 2) /* exec */
14+#define IOMMU_FAULT_PERM_PRIV (1 << 3) /* privileged */
15+
16+/* Generic fault types, can be expanded IRQ remapping fault */
17+enum iommu_fault_type {
18+ IOMMU_FAULT_DMA_UNRECOV = 1, /* unrecoverable fault */
19+ IOMMU_FAULT_PAGE_REQ, /* page request fault */
20+};
21+
22+enum iommu_fault_reason {
23+ IOMMU_FAULT_REASON_UNKNOWN = 0,
24+
25+ /* Could not access the PASID table (fetch caused external abort) */
26+ IOMMU_FAULT_REASON_PASID_FETCH,
27+
28+ /* PASID entry is invalid or has configuration errors */
29+ IOMMU_FAULT_REASON_BAD_PASID_ENTRY,
30+
31+ /*
32+ * PASID is out of range (e.g. exceeds the maximum PASID
33+ * supported by the IOMMU) or disabled.
34+ */
35+ IOMMU_FAULT_REASON_PASID_INVALID,
36+
37+ /*
38+ * An external abort occurred fetching (or updating) a translation
39+ * table descriptor
40+ */
41+ IOMMU_FAULT_REASON_WALK_EABT,
42+
43+ /*
44+ * Could not access the page table entry (Bad address),
45+ * actual translation fault
46+ */
47+ IOMMU_FAULT_REASON_PTE_FETCH,
48+
49+ /* Protection flag check failed */
50+ IOMMU_FAULT_REASON_PERMISSION,
51+
52+ /* access flag check failed */
53+ IOMMU_FAULT_REASON_ACCESS,
54+
55+ /* Output address of a translation stage caused Address Size fault */
56+ IOMMU_FAULT_REASON_OOR_ADDRESS,
57+};
58+
59+/**
60+ * struct iommu_fault_unrecoverable - Unrecoverable fault data
61+ * @reason: reason of the fault, from &enum iommu_fault_reason
62+ * @flags: parameters of this fault (IOMMU_FAULT_UNRECOV_* values)
63+ * @pasid: Process Address Space ID
64+ * @perm: requested permission access using by the incoming transaction
65+ * (IOMMU_FAULT_PERM_* values)
66+ * @addr: offending page address
67+ * @fetch_addr: address that caused a fetch abort, if any
68+ */
69+struct iommu_fault_unrecoverable {
70+ __u32 reason;
71+#define IOMMU_FAULT_UNRECOV_PASID_VALID (1 << 0)
72+#define IOMMU_FAULT_UNRECOV_ADDR_VALID (1 << 1)
73+#define IOMMU_FAULT_UNRECOV_FETCH_ADDR_VALID (1 << 2)
74+ __u32 flags;
75+ __u32 pasid;
76+ __u32 perm;
77+ __u64 addr;
78+ __u64 fetch_addr;
79+};
80+
81+/**
82+ * struct iommu_fault_page_request - Page Request data
83+ * @flags: encodes whether the corresponding fields are valid and whether this
84+ * is the last page in group (IOMMU_FAULT_PAGE_REQUEST_* values)
85+ * @pasid: Process Address Space ID
86+ * @grpid: Page Request Group Index
87+ * @perm: requested page permissions (IOMMU_FAULT_PERM_* values)
88+ * @addr: page address
89+ * @private_data: device-specific private information
90+ */
91+struct iommu_fault_page_request {
92+#define IOMMU_FAULT_PAGE_REQUEST_PASID_VALID (1 << 0)
93+#define IOMMU_FAULT_PAGE_REQUEST_LAST_PAGE (1 << 1)
94+#define IOMMU_FAULT_PAGE_REQUEST_PRIV_DATA (1 << 2)
95+ __u32 flags;
96+ __u32 pasid;
97+ __u32 grpid;
98+ __u32 perm;
99+ __u64 addr;
100+ __u64 private_data[2];
101+};
102+
103+/**
104+ * struct iommu_fault - Generic fault data
105+ * @type: fault type from &enum iommu_fault_type
106+ * @padding: reserved for future use (should be zero)
107+ * @event: fault event, when @type is %IOMMU_FAULT_DMA_UNRECOV
108+ * @prm: Page Request message, when @type is %IOMMU_FAULT_PAGE_REQ
109+ * @padding2: sets the fault size to allow for future extensions
110+ */
111+struct iommu_fault {
112+ __u32 type;
113+ __u32 padding;
114+ union {
115+ struct iommu_fault_unrecoverable event;
116+ struct iommu_fault_page_request prm;
117+ __u8 padding2[56];
118+ };
119+};
120+
121+/**
122+ * enum iommu_page_response_code - Return status of fault handlers
123+ * @IOMMU_PAGE_RESP_SUCCESS: Fault has been handled and the page tables
124+ * populated, retry the access. This is "Success" in PCI PRI.
125+ * @IOMMU_PAGE_RESP_FAILURE: General error. Drop all subsequent faults from
126+ * this device if possible. This is "Response Failure" in PCI PRI.
127+ * @IOMMU_PAGE_RESP_INVALID: Could not handle this fault, don't retry the
128+ * access. This is "Invalid Request" in PCI PRI.
129+ */
130+enum iommu_page_response_code {
131+ IOMMU_PAGE_RESP_SUCCESS = 0,
132+ IOMMU_PAGE_RESP_INVALID,
133+ IOMMU_PAGE_RESP_FAILURE,
134+};
135+
136+/**
137+ * struct iommu_page_response - Generic page response information
138+ * @version: API version of this structure
139+ * @flags: encodes whether the corresponding fields are valid
140+ * (IOMMU_FAULT_PAGE_RESPONSE_* values)
141+ * @pasid: Process Address Space ID
142+ * @grpid: Page Request Group Index
143+ * @code: response code from &enum iommu_page_response_code
144+ */
145+struct iommu_page_response {
146+#define IOMMU_PAGE_RESP_VERSION_1 1
147+ __u32 version;
148+#define IOMMU_PAGE_RESP_PASID_VALID (1 << 0)
149+ __u32 flags;
150+ __u32 pasid;
151+ __u32 grpid;
152+ __u32 code;
153+};
154+
155+#endif /* _UAPI_IOMMU_H */
include/uapi/linux/ip_vs.h+8−0
@@ -128,9 +128,15 @@ · 127 unmodified lines
128128 enum {
129129 IP_VS_CONN_F_TUNNEL_TYPE_IPIP = 0, /* IPIP */
130130 IP_VS_CONN_F_TUNNEL_TYPE_GUE, /* GUE */
131+ IP_VS_CONN_F_TUNNEL_TYPE_GRE, /* GRE */
131132 IP_VS_CONN_F_TUNNEL_TYPE_MAX,
132133 };
133134
135+/* Tunnel encapsulation flags */
136+#define IP_VS_TUNNEL_ENCAP_FLAG_NOCSUM (0)
137+#define IP_VS_TUNNEL_ENCAP_FLAG_CSUM (1 << 0)
138+#define IP_VS_TUNNEL_ENCAP_FLAG_REMCSUM (1 << 1)
139+
134140 /*
135141 * The struct ip_vs_service_user and struct ip_vs_dest_user are
136142 * used to set IPVS rules through setsockopt.
@@ -403,6 +409,8 @@ enum { · 266 unmodified lines
403409
404410 IPVS_DEST_ATTR_TUN_PORT, /* tunnel port */
405411
412+ IPVS_DEST_ATTR_TUN_FLAGS, /* tunnel flags */
413+
406414 __IPVS_DEST_ATTR_MAX,
407415 };
408416
include/uapi/linux/ipmi_bmc.h+1−1
@@ -1,4 +1,4 @@
1−/* SPDX-License-Identifier: GPL-2.0 */
1+/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
22 /*
33 * Copyright (c) 2015-2018, Intel Corporation.
44 */
include/uapi/linux/isdn.h+0−144
@@ -1,144 +0,0 @@
1−/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
2−/* $Id: isdn.h,v 1.125.2.3 2004/02/10 01:07:14 keil Exp $
3− *
4− * Main header for the Linux ISDN subsystem (linklevel).
5− *
6− * Copyright 1994,95,96 by Fritz Elfert (fritz@isdn4linux.de)
7− * Copyright 1995,96 by Thinking Objects Software GmbH Wuerzburg
8− * Copyright 1995,96 by Michael Hipp (Michael.Hipp@student.uni-tuebingen.de)
9− *
10− * This software may be used and distributed according to the terms
11− * of the GNU General Public License, incorporated herein by reference.
12− *
13− */
14−
15−#ifndef _UAPI__ISDN_H__
16−#define _UAPI__ISDN_H__
17−
18−#include <linux/ioctl.h>
19−#include <linux/tty.h>
20−
21−#define ISDN_MAX_DRIVERS 32
22−#define ISDN_MAX_CHANNELS 64
23−
24−/* New ioctl-codes */
25−#define IIOCNETAIF _IO('I',1)
26−#define IIOCNETDIF _IO('I',2)
27−#define IIOCNETSCF _IO('I',3)
28−#define IIOCNETGCF _IO('I',4)
29−#define IIOCNETANM _IO('I',5)
30−#define IIOCNETDNM _IO('I',6)
31−#define IIOCNETGNM _IO('I',7)
32−#define IIOCGETSET _IO('I',8) /* no longer supported */
33−#define IIOCSETSET _IO('I',9) /* no longer supported */
34−#define IIOCSETVER _IO('I',10)
35−#define IIOCNETHUP _IO('I',11)
36−#define IIOCSETGST _IO('I',12)
37−#define IIOCSETBRJ _IO('I',13)
38−#define IIOCSIGPRF _IO('I',14)
39−#define IIOCGETPRF _IO('I',15)
40−#define IIOCSETPRF _IO('I',16)
41−#define IIOCGETMAP _IO('I',17)
42−#define IIOCSETMAP _IO('I',18)
43−#define IIOCNETASL _IO('I',19)
44−#define IIOCNETDIL _IO('I',20)
45−#define IIOCGETCPS _IO('I',21)
46−#define IIOCGETDVR _IO('I',22)
47−#define IIOCNETLCR _IO('I',23) /* dwabc ioctl for LCR from isdnlog */
48−#define IIOCNETDWRSET _IO('I',24) /* dwabc ioctl to reset abc-values to default on a net-interface */
49−
50−#define IIOCNETALN _IO('I',32)
51−#define IIOCNETDLN _IO('I',33)
52−
53−#define IIOCNETGPN _IO('I',34)
54−
55−#define IIOCDBGVAR _IO('I',127)
56−
57−#define IIOCDRVCTL _IO('I',128)
58−
59−/* cisco hdlck device private ioctls */
60−#define SIOCGKEEPPERIOD (SIOCDEVPRIVATE + 0)
61−#define SIOCSKEEPPERIOD (SIOCDEVPRIVATE + 1)
62−#define SIOCGDEBSERINT (SIOCDEVPRIVATE + 2)
63−#define SIOCSDEBSERINT (SIOCDEVPRIVATE + 3)
64−
65−/* Packet encapsulations for net-interfaces */
66−#define ISDN_NET_ENCAP_ETHER 0
67−#define ISDN_NET_ENCAP_RAWIP 1
68−#define ISDN_NET_ENCAP_IPTYP 2
69−#define ISDN_NET_ENCAP_CISCOHDLC 3 /* Without SLARP and keepalive */
70−#define ISDN_NET_ENCAP_SYNCPPP 4
71−#define ISDN_NET_ENCAP_UIHDLC 5
72−#define ISDN_NET_ENCAP_CISCOHDLCK 6 /* With SLARP and keepalive */
73−#define ISDN_NET_ENCAP_X25IFACE 7 /* Documentation/networking/x25-iface.txt */
74−#define ISDN_NET_ENCAP_MAX_ENCAP ISDN_NET_ENCAP_X25IFACE
75−
76−/* Facility which currently uses an ISDN-channel */
77−#define ISDN_USAGE_NONE 0
78−#define ISDN_USAGE_RAW 1
79−#define ISDN_USAGE_MODEM 2
80−#define ISDN_USAGE_NET 3
81−#define ISDN_USAGE_VOICE 4
82−#define ISDN_USAGE_FAX 5
83−#define ISDN_USAGE_MASK 7 /* Mask to get plain usage */
84−#define ISDN_USAGE_DISABLED 32 /* This bit is set, if channel is disabled */
85−#define ISDN_USAGE_EXCLUSIVE 64 /* This bit is set, if channel is exclusive */
86−#define ISDN_USAGE_OUTGOING 128 /* This bit is set, if channel is outgoing */
87−
88−#define ISDN_MODEM_NUMREG 24 /* Number of Modem-Registers */
89−#define ISDN_LMSNLEN 255 /* Length of tty's Listen-MSN string */
90−#define ISDN_CMSGLEN 50 /* Length of CONNECT-Message to add for Modem */
91−
92−#define ISDN_MSNLEN 32
93−#define NET_DV 0x06 /* Data version for isdn_net_ioctl_cfg */
94−#define TTY_DV 0x06 /* Data version for iprofd etc. */
95−
96−#define INF_DV 0x01 /* Data version for /dev/isdninfo */
97−
98−typedef struct {
99− char drvid[25];
100− unsigned long arg;
101−} isdn_ioctl_struct;
102−
103−typedef struct {
104− char name[10];
105− char phone[ISDN_MSNLEN];
106− int outgoing;
107−} isdn_net_ioctl_phone;
108−
109−typedef struct {
110− char name[10]; /* Name of interface */
111− char master[10]; /* Name of Master for Bundling */
112− char slave[10]; /* Name of Slave for Bundling */
113− char eaz[256]; /* EAZ/MSN */
114− char drvid[25]; /* DriverId for Bindings */
115− int onhtime; /* Hangup-Timeout */
116− int charge; /* Charge-Units */
117− int l2_proto; /* Layer-2 protocol */
118− int l3_proto; /* Layer-3 protocol */
119− int p_encap; /* Encapsulation */
120− int exclusive; /* Channel, if bound exclusive */
121− int dialmax; /* Dial Retry-Counter */
122− int slavedelay; /* Delay until slave starts up */
123− int cbdelay; /* Delay before Callback */
124− int chargehup; /* Flag: Charge-Hangup */
125− int ihup; /* Flag: Hangup-Timeout on incoming line */
126− int secure; /* Flag: Secure */
127− int callback; /* Flag: Callback */
128− int cbhup; /* Flag: Reject Call before Callback */
129− int pppbind; /* ippp device for bindings */
130− int chargeint; /* Use fixed charge interval length */
131− int triggercps; /* BogoCPS needed for triggering slave */
132− int dialtimeout; /* Dial-Timeout */
133− int dialwait; /* Time to wait after failed dial */
134− int dialmode; /* Flag: off / on / auto */
135−} isdn_net_ioctl_cfg;
136−
137−#define ISDN_NET_DIALMODE_MASK 0xC0 /* bits for status */
138−#define ISDN_NET_DM_OFF 0x00 /* this interface is stopped */
139−#define ISDN_NET_DM_MANUAL 0x40 /* this interface is on (manual) */
140−#define ISDN_NET_DM_AUTO 0x80 /* this interface is autodial */
141−#define ISDN_NET_DIALMODE(x) ((&(x))->flags & ISDN_NET_DIALMODE_MASK)
142−
143−
144−#endif /* _UAPI__ISDN_H__ */
include/uapi/linux/isdn_divertif.h+0−31
@@ -1,31 +0,0 @@
1−/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
2−/* $Id: isdn_divertif.h,v 1.4.6.1 2001/09/23 22:25:05 kai Exp $
3− *
4− * Header for the diversion supplementary interface for i4l.
5− *
6− * Author Werner Cornelius (werner@titro.de)
7− * Copyright by Werner Cornelius (werner@titro.de)
8− *
9− * This software may be used and distributed according to the terms
10− * of the GNU General Public License, incorporated herein by reference.
11− *
12− */
13−
14−#ifndef _UAPI_LINUX_ISDN_DIVERTIF_H
15−#define _UAPI_LINUX_ISDN_DIVERTIF_H
16−
17−/***********************************************************/
18−/* magic value is also used to control version information */
19−/***********************************************************/
20−#define DIVERT_IF_MAGIC 0x25873401
21−#define DIVERT_CMD_REG 0x00 /* register command */
22−#define DIVERT_CMD_REL 0x01 /* release command */
23−#define DIVERT_NO_ERR 0x00 /* return value no error */
24−#define DIVERT_CMD_ERR 0x01 /* invalid cmd */
25−#define DIVERT_VER_ERR 0x02 /* magic/version invalid */
26−#define DIVERT_REG_ERR 0x03 /* module already registered */
27−#define DIVERT_REL_ERR 0x04 /* module not registered */
28−#define DIVERT_REG_NAME isdn_register_divert
29−
30−
31−#endif /* _UAPI_LINUX_ISDN_DIVERTIF_H */
include/uapi/linux/isdn_ppp.h+0−68
@@ -1,68 +0,0 @@
1−/* SPDX-License-Identifier: GPL-1.0+ WITH Linux-syscall-note */
2−/* Linux ISDN subsystem, sync PPP, interface to ipppd
3− *
4− * Copyright 1994-1999 by Fritz Elfert (fritz@isdn4linux.de)
5− * Copyright 1995,96 Thinking Objects Software GmbH Wuerzburg
6− * Copyright 1995,96 by Michael Hipp (Michael.Hipp@student.uni-tuebingen.de)
7− * Copyright 2000-2002 by Kai Germaschewski (kai@germaschewski.name)
8− *
9− * This software may be used and distributed according to the terms
10− * of the GNU General Public License, incorporated herein by reference.
11− *
12− */
13−
14−#ifndef _UAPI_LINUX_ISDN_PPP_H
15−#define _UAPI_LINUX_ISDN_PPP_H
16−
17−#define CALLTYPE_INCOMING 0x1
18−#define CALLTYPE_OUTGOING 0x2
19−#define CALLTYPE_CALLBACK 0x4
20−
21−#define IPPP_VERSION "2.2.0"
22−
23−struct pppcallinfo
24−{
25− int calltype;
26− unsigned char local_num[64];
27− unsigned char remote_num[64];
28− int charge_units;
29−};
30−
31−#define PPPIOCGCALLINFO _IOWR('t',128,struct pppcallinfo)
32−#define PPPIOCBUNDLE _IOW('t',129,int)
33−#define PPPIOCGMPFLAGS _IOR('t',130,int)
34−#define PPPIOCSMPFLAGS _IOW('t',131,int)
35−#define PPPIOCSMPMTU _IOW('t',132,int)
36−#define PPPIOCSMPMRU _IOW('t',133,int)
37−#define PPPIOCGCOMPRESSORS _IOR('t',134,unsigned long [8])
38−#define PPPIOCSCOMPRESSOR _IOW('t',135,int)
39−#define PPPIOCGIFNAME _IOR('t',136, char [IFNAMSIZ] )
40−
41−
42−#define SC_MP_PROT 0x00000200
43−#define SC_REJ_MP_PROT 0x00000400
44−#define SC_OUT_SHORT_SEQ 0x00000800
45−#define SC_IN_SHORT_SEQ 0x00004000
46−
47−#define SC_DECOMP_ON 0x01
48−#define SC_COMP_ON 0x02
49−#define SC_DECOMP_DISCARD 0x04
50−#define SC_COMP_DISCARD 0x08
51−#define SC_LINK_DECOMP_ON 0x10
52−#define SC_LINK_COMP_ON 0x20
53−#define SC_LINK_DECOMP_DISCARD 0x40
54−#define SC_LINK_COMP_DISCARD 0x80
55−
56−#define ISDN_PPP_COMP_MAX_OPTIONS 16
57−
58−#define IPPP_COMP_FLAG_XMIT 0x1
59−#define IPPP_COMP_FLAG_LINK 0x2
60−
61−struct isdn_ppp_comp_data {
62− int num;
63− unsigned char options[ISDN_PPP_COMP_MAX_OPTIONS];
64− int optlen;
65− int flags;
66−};
67−
68−#endif /* _UAPI_LINUX_ISDN_PPP_H */
include/uapi/linux/isdnif.h+0−57
@@ -1,57 +0,0 @@
1−/* SPDX-License-Identifier: GPL-1.0+ WITH Linux-syscall-note */
2−/* $Id: isdnif.h,v 1.43.2.2 2004/01/12 23:08:35 keil Exp $
3− *
4− * Linux ISDN subsystem
5− * Definition of the interface between the subsystem and its low-level drivers.
6− *
7− * Copyright 1994,95,96 by Fritz Elfert (fritz@isdn4linux.de)
8− * Copyright 1995,96 Thinking Objects Software GmbH Wuerzburg
9− *
10− * This software may be used and distributed according to the terms
11− * of the GNU General Public License, incorporated herein by reference.
12− *
13− */
14−
15−#ifndef _UAPI__ISDNIF_H__
16−#define _UAPI__ISDNIF_H__
17−
18−
19−/*
20− * Values for general protocol-selection
21− */
22−#define ISDN_PTYPE_UNKNOWN 0 /* Protocol undefined */
23−#define ISDN_PTYPE_1TR6 1 /* german 1TR6-protocol */
24−#define ISDN_PTYPE_EURO 2 /* EDSS1-protocol */
25−#define ISDN_PTYPE_LEASED 3 /* for leased lines */
26−#define ISDN_PTYPE_NI1 4 /* US NI-1 protocol */
27−#define ISDN_PTYPE_MAX 7 /* Max. 8 Protocols */
28−
29−/*
30− * Values for Layer-2-protocol-selection
31− */
32−#define ISDN_PROTO_L2_X75I 0 /* X75/LAPB with I-Frames */
33−#define ISDN_PROTO_L2_X75UI 1 /* X75/LAPB with UI-Frames */
34−#define ISDN_PROTO_L2_X75BUI 2 /* X75/LAPB with UI-Frames */
35−#define ISDN_PROTO_L2_HDLC 3 /* HDLC */
36−#define ISDN_PROTO_L2_TRANS 4 /* Transparent (Voice) */
37−#define ISDN_PROTO_L2_X25DTE 5 /* X25/LAPB DTE mode */
38−#define ISDN_PROTO_L2_X25DCE 6 /* X25/LAPB DCE mode */
39−#define ISDN_PROTO_L2_V11096 7 /* V.110 bitrate adaption 9600 Baud */
40−#define ISDN_PROTO_L2_V11019 8 /* V.110 bitrate adaption 19200 Baud */
41−#define ISDN_PROTO_L2_V11038 9 /* V.110 bitrate adaption 38400 Baud */
42−#define ISDN_PROTO_L2_MODEM 10 /* Analog Modem on Board */
43−#define ISDN_PROTO_L2_FAX 11 /* Fax Group 2/3 */
44−#define ISDN_PROTO_L2_HDLC_56K 12 /* HDLC 56k */
45−#define ISDN_PROTO_L2_MAX 15 /* Max. 16 Protocols */
46−
47−/*
48− * Values for Layer-3-protocol-selection
49− */
50−#define ISDN_PROTO_L3_TRANS 0 /* Transparent */
51−#define ISDN_PROTO_L3_TRANSDSP 1 /* Transparent with DSP */
52−#define ISDN_PROTO_L3_FCLASS2 2 /* Fax Group 2/3 CLASS 2 */
53−#define ISDN_PROTO_L3_FCLASS1 3 /* Fax Group 2/3 CLASS 1 */
54−#define ISDN_PROTO_L3_MAX 7 /* Max. 8 Protocols */
55−
56−
57−#endif /* _UAPI__ISDNIF_H__ */
include/uapi/linux/isst_if.h+172−0
@@ -0,0 +1,172 @@
1+/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
2+/*
3+ * Intel Speed Select Interface: OS to hardware Interface
4+ * Copyright (c) 2019, Intel Corporation.
5+ * All rights reserved.
6+ *
7+ * Author: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
8+ */
9+
10+#ifndef __ISST_IF_H
11+#define __ISST_IF_H
12+
13+#include <linux/types.h>
14+
15+/**
16+ * struct isst_if_platform_info - Define platform information
17+ * @api_version: Version of the firmware document, which this driver
18+ * can communicate
19+ * @driver_version: Driver version, which will help user to send right
20+ * commands. Even if the firmware is capable, driver may
21+ * not be ready
22+ * @max_cmds_per_ioctl: Returns the maximum number of commands driver will
23+ * accept in a single ioctl
24+ * @mbox_supported: Support of mail box interface
25+ * @mmio_supported: Support of mmio interface for core-power feature
26+ *
27+ * Used to return output of IOCTL ISST_IF_GET_PLATFORM_INFO. This
28+ * information can be used by the user space, to get the driver, firmware
29+ * support and also number of commands to send in a single IOCTL request.
30+ */
31+struct isst_if_platform_info {
32+ __u16 api_version;
33+ __u16 driver_version;
34+ __u16 max_cmds_per_ioctl;
35+ __u8 mbox_supported;
36+ __u8 mmio_supported;
37+};
38+
39+/**
40+ * struct isst_if_cpu_map - CPU mapping between logical and physical CPU
41+ * @logical_cpu: Linux logical CPU number
42+ * @physical_cpu: PUNIT CPU number
43+ *
44+ * Used to convert from Linux logical CPU to PUNIT CPU numbering scheme.
45+ * The PUNIT CPU number is different than APIC ID based CPU numbering.
46+ */
47+struct isst_if_cpu_map {
48+ __u32 logical_cpu;
49+ __u32 physical_cpu;
50+};
51+
52+/**
53+ * struct isst_if_cpu_maps - structure for CPU map IOCTL
54+ * @cmd_count: Number of CPU mapping command in cpu_map[]
55+ * @cpu_map[]: Holds one or more CPU map data structure
56+ *
57+ * This structure used with ioctl ISST_IF_GET_PHY_ID to send
58+ * one or more CPU mapping commands. Here IOCTL return value indicates
59+ * number of commands sent or error number if no commands have been sent.
60+ */
61+struct isst_if_cpu_maps {
62+ __u32 cmd_count;
63+ struct isst_if_cpu_map cpu_map[1];
64+};
65+
66+/**
67+ * struct isst_if_io_reg - Read write PUNIT IO register
68+ * @read_write: Value 0: Read, 1: Write
69+ * @logical_cpu: Logical CPU number to get target PCI device.
70+ * @reg: PUNIT register offset
71+ * @value: For write operation value to write and for
72+ * for read placeholder read value
73+ *
74+ * Structure to specify read/write data to PUNIT registers.
75+ */
76+struct isst_if_io_reg {
77+ __u32 read_write; /* Read:0, Write:1 */
78+ __u32 logical_cpu;
79+ __u32 reg;
80+ __u32 value;
81+};
82+
83+/**
84+ * struct isst_if_io_regs - structure for IO register commands
85+ * @cmd_count: Number of io reg commands in io_reg[]
86+ * @io_reg[]: Holds one or more io_reg command structure
87+ *
88+ * This structure used with ioctl ISST_IF_IO_CMD to send
89+ * one or more read/write commands to PUNIT. Here IOCTL return value
90+ * indicates number of requests sent or error number if no requests have
91+ * been sent.
92+ */
93+struct isst_if_io_regs {
94+ __u32 req_count;
95+ struct isst_if_io_reg io_reg[1];
96+};
97+
98+/**
99+ * struct isst_if_mbox_cmd - Structure to define mail box command
100+ * @logical_cpu: Logical CPU number to get target PCI device
101+ * @parameter: Mailbox parameter value
102+ * @req_data: Request data for the mailbox
103+ * @resp_data: Response data for mailbox command response
104+ * @command: Mailbox command value
105+ * @sub_command: Mailbox sub command value
106+ * @reserved: Unused, set to 0
107+ *
108+ * Structure to specify mailbox command to be sent to PUNIT.
109+ */
110+struct isst_if_mbox_cmd {
111+ __u32 logical_cpu;
112+ __u32 parameter;
113+ __u32 req_data;
114+ __u32 resp_data;
115+ __u16 command;
116+ __u16 sub_command;
117+ __u32 reserved;
118+};
119+
120+/**
121+ * struct isst_if_mbox_cmds - structure for mailbox commands
122+ * @cmd_count: Number of mailbox commands in mbox_cmd[]
123+ * @mbox_cmd[]: Holds one or more mbox commands
124+ *
125+ * This structure used with ioctl ISST_IF_MBOX_COMMAND to send
126+ * one or more mailbox commands to PUNIT. Here IOCTL return value
127+ * indicates number of commands sent or error number if no commands have
128+ * been sent.
129+ */
130+struct isst_if_mbox_cmds {
131+ __u32 cmd_count;
132+ struct isst_if_mbox_cmd mbox_cmd[1];
133+};
134+
135+/**
136+ * struct isst_if_msr_cmd - Structure to define msr command
137+ * @read_write: Value 0: Read, 1: Write
138+ * @logical_cpu: Logical CPU number
139+ * @msr: MSR number
140+ * @data: For write operation, data to write, for read
141+ * place holder
142+ *
143+ * Structure to specify MSR command related to PUNIT.
144+ */
145+struct isst_if_msr_cmd {
146+ __u32 read_write; /* Read:0, Write:1 */
147+ __u32 logical_cpu;
148+ __u64 msr;
149+ __u64 data;
150+};
151+
152+/**
153+ * struct isst_if_msr_cmds - structure for msr commands
154+ * @cmd_count: Number of mailbox commands in msr_cmd[]
155+ * @msr_cmd[]: Holds one or more msr commands
156+ *
157+ * This structure used with ioctl ISST_IF_MSR_COMMAND to send
158+ * one or more MSR commands. IOCTL return value indicates number of
159+ * commands sent or error number if no commands have been sent.
160+ */
161+struct isst_if_msr_cmds {
162+ __u32 cmd_count;
163+ struct isst_if_msr_cmd msr_cmd[1];
164+};
165+
166+#define ISST_IF_MAGIC 0xFE
167+#define ISST_IF_GET_PLATFORM_INFO _IOR(ISST_IF_MAGIC, 0, struct isst_if_platform_info *)
168+#define ISST_IF_GET_PHY_ID _IOWR(ISST_IF_MAGIC, 1, struct isst_if_cpu_map *)
169+#define ISST_IF_IO_CMD _IOW(ISST_IF_MAGIC, 2, struct isst_if_io_regs *)
170+#define ISST_IF_MBOX_COMMAND _IOWR(ISST_IF_MAGIC, 3, struct isst_if_mbox_cmds *)
171+#define ISST_IF_MSR_COMMAND _IOWR(ISST_IF_MAGIC, 4, struct isst_if_msr_cmds *)
172+#endif
include/uapi/linux/keyctl.h+19−0
@@ -67,6 +67,8 @@ · 66 unmodified lines
6767 #define KEYCTL_PKEY_SIGN 27 /* Create a public key signature */
6868 #define KEYCTL_PKEY_VERIFY 28 /* Verify a public key signature */
6969 #define KEYCTL_RESTRICT_KEYRING 29 /* Restrict keys allowed to link to a keyring */
70+#define KEYCTL_MOVE 30 /* Move keys between keyrings */
71+#define KEYCTL_CAPABILITIES 31 /* Find capabilities of keyrings subsystem */
7072
7173 /* keyctl structures */
7274 struct keyctl_dh_params {
@@ -112,4 +114,21 @@ struct keyctl_pkey_params { · 39 unmodified lines
112114 __u32 __spare[7];
113115 };
114116
117+#define KEYCTL_MOVE_EXCL 0x00000001 /* Do not displace from the to-keyring */
118+
119+/*
120+ * Capabilities flags. The capabilities list is an array of 8-bit integers;
121+ * each integer can carry up to 8 flags.
122+ */
123+#define KEYCTL_CAPS0_CAPABILITIES 0x01 /* KEYCTL_CAPABILITIES supported */
124+#define KEYCTL_CAPS0_PERSISTENT_KEYRINGS 0x02 /* Persistent keyrings enabled */
125+#define KEYCTL_CAPS0_DIFFIE_HELLMAN 0x04 /* Diffie-Hellman computation enabled */
126+#define KEYCTL_CAPS0_PUBLIC_KEY 0x08 /* Public key ops enabled */
127+#define KEYCTL_CAPS0_BIG_KEY 0x10 /* big_key-type enabled */
128+#define KEYCTL_CAPS0_INVALIDATE 0x20 /* KEYCTL_INVALIDATE supported */
129+#define KEYCTL_CAPS0_RESTRICT_KEYRING 0x40 /* KEYCTL_RESTRICT_KEYRING supported */
130+#define KEYCTL_CAPS0_MOVE 0x80 /* KEYCTL_MOVE supported */
131+#define KEYCTL_CAPS1_NS_KEYRING_NAME 0x01 /* Keyring names are per-user_namespace */
132+#define KEYCTL_CAPS1_NS_KEY_TAG 0x02 /* Key indexing can include a namespace tag */
133+
115134 #endif /* _LINUX_KEYCTL_H */
include/uapi/linux/kvm.h+8−3
@@ -116,7 +116,7 @@ struct kvm_irq_level { · 115 unmodified lines
116116 * ACPI gsi notion of irq.
117117 * For IA-64 (APIC model) IOAPIC0: irq 0-23; IOAPIC1: irq 24-47..
118118 * For X86 (standard AT mode) PIC0/1: irq 0-15. IOAPIC0: 0-23..
119− * For ARM: See Documentation/virtual/kvm/api.txt
119+ * For ARM: See Documentation/virt/kvm/api.txt
120120 */
121121 union {
122122 __u32 irq;
@@ -696,9 +696,11 @@ struct kvm_ioeventfd { · 573 unmodified lines
696696 #define KVM_X86_DISABLE_EXITS_MWAIT (1 << 0)
697697 #define KVM_X86_DISABLE_EXITS_HLT (1 << 1)
698698 #define KVM_X86_DISABLE_EXITS_PAUSE (1 << 2)
699+#define KVM_X86_DISABLE_EXITS_CSTATE (1 << 3)
699700 #define KVM_X86_DISABLE_VALID_EXITS (KVM_X86_DISABLE_EXITS_MWAIT | \
700701 KVM_X86_DISABLE_EXITS_HLT | \
701− KVM_X86_DISABLE_EXITS_PAUSE)
702+ KVM_X86_DISABLE_EXITS_PAUSE | \
703+ KVM_X86_DISABLE_EXITS_CSTATE)
702704
703705 /* for KVM_ENABLE_CAP */
704706 struct kvm_enable_cap {
@@ -993,6 +995,7 @@ struct kvm_ppc_resize_hpt { · 288 unmodified lines
993995 #define KVM_CAP_ARM_SVE 170
994996 #define KVM_CAP_ARM_PTRAUTH_ADDRESS 171
995997 #define KVM_CAP_ARM_PTRAUTH_GENERIC 172
998+#define KVM_CAP_PMU_EVENT_FILTER 173
996999
9971000 #ifdef KVM_CAP_IRQ_ROUTING
9981001
@@ -1083,7 +1086,7 @@ struct kvm_xen_hvm_config { · 84 unmodified lines
10831086 *
10841087 * KVM_IRQFD_FLAG_RESAMPLE indicates resamplefd is valid and specifies
10851088 * the irqfd to operate in resampling mode for level triggered interrupt
1086− * emulation. See Documentation/virtual/kvm/api.txt.
1089+ * emulation. See Documentation/virt/kvm/api.txt.
10871090 */
10881091 #define KVM_IRQFD_FLAG_RESAMPLE (1 << 1)
10891092
@@ -1327,6 +1330,8 @@ struct kvm_s390_ucas_mapping { · 237 unmodified lines
13271330 #define KVM_PPC_GET_RMMU_INFO _IOW(KVMIO, 0xb0, struct kvm_ppc_rmmu_info)
13281331 /* Available with KVM_CAP_PPC_GET_CPU_CHAR */
13291332 #define KVM_PPC_GET_CPU_CHAR _IOR(KVMIO, 0xb1, struct kvm_ppc_cpu_char)
1333+/* Available with KVM_CAP_PMU_EVENT_FILTER */
1334+#define KVM_SET_PMU_EVENT_FILTER _IOW(KVMIO, 0xb2, struct kvm_pmu_event_filter)
13301335
13311336 /* ioctl for vm fd */
13321337 #define KVM_CREATE_DEVICE _IOWR(KVMIO, 0xe0, struct kvm_create_device)
include/uapi/linux/kvm_para.h+1−0
@@ -28,6 +28,7 @@ · 27 unmodified lines
2828 #define KVM_HC_MIPS_CONSOLE_OUTPUT 8
2929 #define KVM_HC_CLOCK_PAIRING 9
3030 #define KVM_HC_SEND_IPI 10
31+#define KVM_HC_SCHED_YIELD 11
3132
3233 /*
3334 * hypercalls use architecture specific
include/uapi/linux/magic.h+1−0
@@ -92,5 +92,6 @@ · 91 unmodified lines
9292 #define BALLOON_KVM_MAGIC 0x13661366
9393 #define ZSMALLOC_MAGIC 0x58295829
9494 #define DMA_BUF_MAGIC 0x444d4142 /* "DMAB" */
95+#define Z3FOLD_MAGIC 0x33
9596
9697 #endif /* __LINUX_MAGIC_H__ */
include/uapi/linux/media.h+1−1
@@ -146,7 +146,7 @@ struct media_device_info { · 145 unmodified lines
146146 #define MEDIA_ENT_FL_CONNECTOR (1 << 1)
147147
148148 /* OR with the entity id value to find the next entity */
149−#define MEDIA_ENT_ID_FLAG_NEXT (1 << 31)
149+#define MEDIA_ENT_ID_FLAG_NEXT (1U << 31)
150150
151151 struct media_entity_desc {
152152 __u32 id;
include/uapi/linux/mii.h+2−0
@@ -121,6 +121,8 @@ · 120 unmodified lines
121121 #define EXPANSION_MFAULTS 0x0010 /* Multiple faults detected */
122122 #define EXPANSION_RESV 0xffe0 /* Unused... */
123123
124+#define ESTATUS_1000_XFULL 0x8000 /* Can do 1000BaseX Full */
125+#define ESTATUS_1000_XHALF 0x4000 /* Can do 1000BaseX Half */
124126 #define ESTATUS_1000_TFULL 0x2000 /* Can do 1000BT Full */
125127 #define ESTATUS_1000_THALF 0x1000 /* Can do 1000BT Half */
126128
include/uapi/linux/netfilter/ipset/ip_set.h+1−1
@@ -2,7 +2,7 @@ · 1 unmodified line
22 /* Copyright (C) 2000-2002 Joakim Axelsson <gozem@linux.nu>
33 * Patrick Schaaf <bof@bof.de>
44 * Martin Josefsson <gandalf@wlug.westbo.se>
5− * Copyright (C) 2003-2011 Jozsef Kadlecsik <kadlec@blackhole.kfki.hu>
5+ * Copyright (C) 2003-2011 Jozsef Kadlecsik <kadlec@netfilter.org>
66 *
77 * This program is free software; you can redistribute it and/or modify
88 * it under the terms of the GNU General Public License version 2 as
include/uapi/linux/netfilter/nf_synproxy.h+23−0
@@ -0,0 +1,23 @@
1+/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
2+#ifndef _NF_SYNPROXY_H
3+#define _NF_SYNPROXY_H
4+
5+#include <linux/types.h>
6+
7+#define NF_SYNPROXY_OPT_MSS 0x01
8+#define NF_SYNPROXY_OPT_WSCALE 0x02
9+#define NF_SYNPROXY_OPT_SACK_PERM 0x04
10+#define NF_SYNPROXY_OPT_TIMESTAMP 0x08
11+#define NF_SYNPROXY_OPT_ECN 0x10
12+#define NF_SYNPROXY_OPT_MASK (NF_SYNPROXY_OPT_MSS | \
13+ NF_SYNPROXY_OPT_WSCALE | \
14+ NF_SYNPROXY_OPT_SACK_PERM | \
15+ NF_SYNPROXY_OPT_TIMESTAMP)
16+
17+struct nf_synproxy_info {
18+ __u8 options;
19+ __u8 wscale;
20+ __u16 mss;
21+};
22+
23+#endif /* _NF_SYNPROXY_H */
include/uapi/linux/netfilter/nf_tables.h+37−1
@@ -192,6 +192,7 @@ enum nft_table_attributes { · 191 unmodified lines
192192 * @NFTA_CHAIN_USE: number of references to this chain (NLA_U32)
193193 * @NFTA_CHAIN_TYPE: type name of the string (NLA_NUL_STRING)
194194 * @NFTA_CHAIN_COUNTERS: counter specification of the chain (NLA_NESTED: nft_counter_attributes)
195+ * @NFTA_CHAIN_FLAGS: chain flags
195196 */
196197 enum nft_chain_attributes {
197198 NFTA_CHAIN_UNSPEC,
@@ -204,6 +205,7 @@ enum nft_chain_attributes { · 6 unmodified lines
204205 NFTA_CHAIN_TYPE,
205206 NFTA_CHAIN_COUNTERS,
206207 NFTA_CHAIN_PAD,
208+ NFTA_CHAIN_FLAGS,
207209 __NFTA_CHAIN_MAX
208210 };
209211 #define NFTA_CHAIN_MAX (__NFTA_CHAIN_MAX - 1)
@@ -730,10 +732,12 @@ enum nft_exthdr_flags { · 520 unmodified lines
730732 *
731733 * @NFT_EXTHDR_OP_IPV6: match against ipv6 extension headers
732734 * @NFT_EXTHDR_OP_TCP: match against tcp options
735+ * @NFT_EXTHDR_OP_IPV4: match against ipv4 options
733736 */
734737 enum nft_exthdr_op {
735738 NFT_EXTHDR_OP_IPV6,
736739 NFT_EXTHDR_OP_TCPOPT,
740+ NFT_EXTHDR_OP_IPV4,
737741 __NFT_EXTHDR_OP_MAX
738742 };
739743 #define NFT_EXTHDR_OP_MAX (__NFT_EXTHDR_OP_MAX - 1)
@@ -793,6 +797,8 @@ enum nft_exthdr_attributes { · 53 unmodified lines
793797 * @NFT_META_SECPATH: boolean, secpath_exists (!!skb->sp)
794798 * @NFT_META_IIFKIND: packet input interface kind name (dev->rtnl_link_ops->kind)
795799 * @NFT_META_OIFKIND: packet output interface kind name (dev->rtnl_link_ops->kind)
800+ * @NFT_META_BRI_IIFPVID: packet input bridge port pvid
801+ * @NFT_META_BRI_IIFVPROTO: packet input bridge vlan proto
796802 */
797803 enum nft_meta_keys {
798804 NFT_META_LEN,
@@ -823,6 +829,8 @@ enum nft_meta_keys { · 24 unmodified lines
823829 NFT_META_SECPATH,
824830 NFT_META_IIFKIND,
825831 NFT_META_OIFKIND,
832+ NFT_META_BRI_IIFPVID,
833+ NFT_META_BRI_IIFVPROTO,
826834 };
827835
828836 /**
@@ -1445,6 +1453,17 @@ enum nft_ct_timeout_timeout_attributes { · 616 unmodified lines
14451453 };
14461454 #define NFTA_CT_TIMEOUT_MAX (__NFTA_CT_TIMEOUT_MAX - 1)
14471455
1456+enum nft_ct_expectation_attributes {
1457+ NFTA_CT_EXPECT_UNSPEC,
1458+ NFTA_CT_EXPECT_L3PROTO,
1459+ NFTA_CT_EXPECT_L4PROTO,
1460+ NFTA_CT_EXPECT_DPORT,
1461+ NFTA_CT_EXPECT_TIMEOUT,
1462+ NFTA_CT_EXPECT_SIZE,
1463+ __NFTA_CT_EXPECT_MAX,
1464+};
1465+#define NFTA_CT_EXPECT_MAX (__NFTA_CT_EXPECT_MAX - 1)
1466+
14481467 #define NFT_OBJECT_UNSPEC 0
14491468 #define NFT_OBJECT_COUNTER 1
14501469 #define NFT_OBJECT_QUOTA 2
@@ -1454,7 +1473,8 @@ enum nft_ct_timeout_timeout_attributes { · 3 unmodified lines
14541473 #define NFT_OBJECT_TUNNEL 6
14551474 #define NFT_OBJECT_CT_TIMEOUT 7
14561475 #define NFT_OBJECT_SECMARK 8
1457−#define __NFT_OBJECT_MAX 9
1476+#define NFT_OBJECT_CT_EXPECT 9
1477+#define __NFT_OBJECT_MAX 10
14581478 #define NFT_OBJECT_MAX (__NFT_OBJECT_MAX - 1)
14591479
14601480 /**
@@ -1537,6 +1557,22 @@ enum nft_osf_flags { · 76 unmodified lines
15371557 NFT_OSF_F_VERSION = (1 << 0),
15381558 };
15391559
1560+/**
1561+ * enum nft_synproxy_attributes - nf_tables synproxy expression netlink attributes
1562+ *
1563+ * @NFTA_SYNPROXY_MSS: mss value sent to the backend (NLA_U16)
1564+ * @NFTA_SYNPROXY_WSCALE: wscale value sent to the backend (NLA_U8)
1565+ * @NFTA_SYNPROXY_FLAGS: flags (NLA_U32)
1566+ */
1567+enum nft_synproxy_attributes {
1568+ NFTA_SYNPROXY_UNSPEC,
1569+ NFTA_SYNPROXY_MSS,
1570+ NFTA_SYNPROXY_WSCALE,
1571+ NFTA_SYNPROXY_FLAGS,
1572+ __NFTA_SYNPROXY_MAX,
1573+};
1574+#define NFTA_SYNPROXY_MAX (__NFTA_SYNPROXY_MAX - 1)
1575+
15401576 /**
15411577 * enum nft_device_attributes - nf_tables device netlink attributes
15421578 *
include/uapi/linux/netfilter/xt_SYNPROXY.h+7−11
@@ -2,18 +2,14 @@ · 1 unmodified line
22 #ifndef _XT_SYNPROXY_H
33 #define _XT_SYNPROXY_H
44
5−#include <linux/types.h>
5+#include <linux/netfilter/nf_synproxy.h>
66
7−#define XT_SYNPROXY_OPT_MSS 0x01
8−#define XT_SYNPROXY_OPT_WSCALE 0x02
9−#define XT_SYNPROXY_OPT_SACK_PERM 0x04
10−#define XT_SYNPROXY_OPT_TIMESTAMP 0x08
11−#define XT_SYNPROXY_OPT_ECN 0x10
7+#define XT_SYNPROXY_OPT_MSS NF_SYNPROXY_OPT_MSS
8+#define XT_SYNPROXY_OPT_WSCALE NF_SYNPROXY_OPT_WSCALE
9+#define XT_SYNPROXY_OPT_SACK_PERM NF_SYNPROXY_OPT_SACK_PERM
10+#define XT_SYNPROXY_OPT_TIMESTAMP NF_SYNPROXY_OPT_TIMESTAMP
11+#define XT_SYNPROXY_OPT_ECN NF_SYNPROXY_OPT_ECN
1212
13−struct xt_synproxy_info {
14− __u8 options;
15− __u8 wscale;
16− __u16 mss;
17−};
13+#define xt_synproxy_info nf_synproxy_info
1814
1915 #endif /* _XT_SYNPROXY_H */
include/uapi/linux/netfilter/xt_owner.h+9−3
@@ -5,11 +5,17 @@ · 4 unmodified lines
55 #include <linux/types.h>
66
77 enum {
8− XT_OWNER_UID = 1 << 0,
9− XT_OWNER_GID = 1 << 1,
10− XT_OWNER_SOCKET = 1 << 2,
8+ XT_OWNER_UID = 1 << 0,
9+ XT_OWNER_GID = 1 << 1,
10+ XT_OWNER_SOCKET = 1 << 2,
11+ XT_OWNER_SUPPL_GROUPS = 1 << 3,
1112 };
1213
14+#define XT_OWNER_MASK (XT_OWNER_UID | \
15+ XT_OWNER_GID | \
16+ XT_OWNER_SOCKET | \
17+ XT_OWNER_SUPPL_GROUPS)
18+
1319 struct xt_owner_match_info {
1420 __u32 uid_min, uid_max;
1521 __u32 gid_min, gid_max;
include/uapi/linux/nexthop.h+56−0
@@ -0,0 +1,56 @@
1+/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
2+#ifndef _UAPI_LINUX_NEXTHOP_H
3+#define _UAPI_LINUX_NEXTHOP_H
4+
5+#include <linux/types.h>
6+
7+struct nhmsg {
8+ unsigned char nh_family;
9+ unsigned char nh_scope; /* return only */
10+ unsigned char nh_protocol; /* Routing protocol that installed nh */
11+ unsigned char resvd;
12+ unsigned int nh_flags; /* RTNH_F flags */
13+};
14+
15+/* entry in a nexthop group */
16+struct nexthop_grp {
17+ __u32 id; /* nexthop id - must exist */
18+ __u8 weight; /* weight of this nexthop */
19+ __u8 resvd1;
20+ __u16 resvd2;
21+};
22+
23+enum {
24+ NEXTHOP_GRP_TYPE_MPATH, /* default type if not specified */
25+ __NEXTHOP_GRP_TYPE_MAX,
26+};
27+
28+#define NEXTHOP_GRP_TYPE_MAX (__NEXTHOP_GRP_TYPE_MAX - 1)
29+
30+enum {
31+ NHA_UNSPEC,
32+ NHA_ID, /* u32; id for nexthop. id == 0 means auto-assign */
33+
34+ NHA_GROUP, /* array of nexthop_grp */
35+ NHA_GROUP_TYPE, /* u16 one of NEXTHOP_GRP_TYPE */
36+ /* if NHA_GROUP attribute is added, no other attributes can be set */
37+
38+ NHA_BLACKHOLE, /* flag; nexthop used to blackhole packets */
39+ /* if NHA_BLACKHOLE is added, OIF, GATEWAY, ENCAP can not be set */
40+
41+ NHA_OIF, /* u32; nexthop device */
42+ NHA_GATEWAY, /* be32 (IPv4) or in6_addr (IPv6) gw address */
43+ NHA_ENCAP_TYPE, /* u16; lwt encap type */
44+ NHA_ENCAP, /* lwt encap data */
45+
46+ /* NHA_OIF can be appended to dump request to return only
47+ * nexthops using given device
48+ */
49+ NHA_GROUPS, /* flag; only return nexthop groups in dump */
50+ NHA_MASTER, /* u32; only return nexthops with given master dev */
51+
52+ __NHA_MAX,
53+};
54+
55+#define NHA_MAX (__NHA_MAX - 1)
56+#endif
include/uapi/linux/nilfs2_ondisk.h+12−12
@@ -29,7 +29,7 @@ · 28 unmodified lines
2929
3030 #include <linux/types.h>
3131 #include <linux/magic.h>
32−
32+#include <asm/byteorder.h>
3333
3434 #define NILFS_INODE_BMAP_SIZE 7
3535
@@ -533,19 +533,19 @@ enum { · 497 unmodified lines
533533 static inline void \
534534 nilfs_checkpoint_set_##name(struct nilfs_checkpoint *cp) \
535535 { \
536− cp->cp_flags = cpu_to_le32(le32_to_cpu(cp->cp_flags) | \
537− (1UL << NILFS_CHECKPOINT_##flag)); \
536+ cp->cp_flags = __cpu_to_le32(__le32_to_cpu(cp->cp_flags) | \
537+ (1UL << NILFS_CHECKPOINT_##flag)); \
538538 } \
539539 static inline void \
540540 nilfs_checkpoint_clear_##name(struct nilfs_checkpoint *cp) \
541541 { \
542− cp->cp_flags = cpu_to_le32(le32_to_cpu(cp->cp_flags) & \
542+ cp->cp_flags = __cpu_to_le32(__le32_to_cpu(cp->cp_flags) & \
543543 ~(1UL << NILFS_CHECKPOINT_##flag)); \
544544 } \
545545 static inline int \
546546 nilfs_checkpoint_##name(const struct nilfs_checkpoint *cp) \
547547 { \
548− return !!(le32_to_cpu(cp->cp_flags) & \
548+ return !!(__le32_to_cpu(cp->cp_flags) & \
549549 (1UL << NILFS_CHECKPOINT_##flag)); \
550550 }
551551
@@ -595,20 +595,20 @@ enum { · 43 unmodified lines
595595 static inline void \
596596 nilfs_segment_usage_set_##name(struct nilfs_segment_usage *su) \
597597 { \
598− su->su_flags = cpu_to_le32(le32_to_cpu(su->su_flags) | \
598+ su->su_flags = __cpu_to_le32(__le32_to_cpu(su->su_flags) | \
599599 (1UL << NILFS_SEGMENT_USAGE_##flag));\
600600 } \
601601 static inline void \
602602 nilfs_segment_usage_clear_##name(struct nilfs_segment_usage *su) \
603603 { \
604604 su->su_flags = \
605− cpu_to_le32(le32_to_cpu(su->su_flags) & \
605+ __cpu_to_le32(__le32_to_cpu(su->su_flags) & \
606606 ~(1UL << NILFS_SEGMENT_USAGE_##flag)); \
607607 } \
608608 static inline int \
609609 nilfs_segment_usage_##name(const struct nilfs_segment_usage *su) \
610610 { \
611− return !!(le32_to_cpu(su->su_flags) & \
611+ return !!(__le32_to_cpu(su->su_flags) & \
612612 (1UL << NILFS_SEGMENT_USAGE_##flag)); \
613613 }
614614
@@ -619,15 +619,15 @@ NILFS_SEGMENT_USAGE_FNS(ERROR, error) · 4 unmodified lines
619619 static inline void
620620 nilfs_segment_usage_set_clean(struct nilfs_segment_usage *su)
621621 {
622− su->su_lastmod = cpu_to_le64(0);
623− su->su_nblocks = cpu_to_le32(0);
624− su->su_flags = cpu_to_le32(0);
622+ su->su_lastmod = __cpu_to_le64(0);
623+ su->su_nblocks = __cpu_to_le32(0);
624+ su->su_flags = __cpu_to_le32(0);
625625 }
626626
627627 static inline int
628628 nilfs_segment_usage_clean(const struct nilfs_segment_usage *su)
629629 {
630− return !le32_to_cpu(su->su_flags);
630+ return !__le32_to_cpu(su->su_flags);
631631 }
632632
633633 /**
include/uapi/linux/nl80211.h+26−2
@@ -234,6 +234,15 @@ · 233 unmodified lines
234234 * use in a FILS shared key connection with PMKSA caching.
235235 */
236236
237+/**
238+ * DOC: SAE authentication offload
239+ *
240+ * By setting @NL80211_EXT_FEATURE_SAE_OFFLOAD flag drivers can indicate they
241+ * support offloading SAE authentication for WPA3-Personal networks. In
242+ * %NL80211_CMD_CONNECT the password for SAE should be specified using
243+ * %NL80211_ATTR_SAE_PASSWORD.
244+ */
245+
237246 /**
238247 * enum nl80211_commands - supported nl80211 commands
239248 *
@@ -2341,6 +2350,12 @@ enum nl80211_commands { · 2101 unmodified lines
23412350 * should be picking up the lowest tx power, either tx power per-interface
23422351 * or per-station.
23432352 *
2353+ * @NL80211_ATTR_SAE_PASSWORD: attribute for passing SAE password material. It
2354+ * is used with %NL80211_CMD_CONNECT to provide password for offloading
2355+ * SAE authentication for WPA3-Personal networks.
2356+ *
2357+ * @NL80211_ATTR_TWT_RESPONDER: Enable target wait time responder support.
2358+ *
23442359 * @NUM_NL80211_ATTR: total number of nl80211_attrs available
23452360 * @NL80211_ATTR_MAX: highest attribute number currently defined
23462361 * @__NL80211_ATTR_AFTER_LAST: internal use
@@ -2794,6 +2809,10 @@ enum nl80211_attrs { · 447 unmodified lines
27942809 NL80211_ATTR_STA_TX_POWER_SETTING,
27952810 NL80211_ATTR_STA_TX_POWER,
27962811
2812+ NL80211_ATTR_SAE_PASSWORD,
2813+
2814+ NL80211_ATTR_TWT_RESPONDER,
2815+
27972816 /* add attributes here, update the policy in nl80211.c */
27982817
27992818 __NL80211_ATTR_AFTER_LAST,
@@ -2844,7 +2863,7 @@ enum nl80211_attrs { · 44 unmodified lines
28442863 #define NL80211_HT_CAPABILITY_LEN 26
28452864 #define NL80211_VHT_CAPABILITY_LEN 12
28462865 #define NL80211_HE_MIN_CAPABILITY_LEN 16
2847−#define NL80211_HE_MAX_CAPABILITY_LEN 51
2866+#define NL80211_HE_MAX_CAPABILITY_LEN 54
28482867 #define NL80211_MAX_NR_CIPHER_SUITES 5
28492868 #define NL80211_MAX_NR_AKM_SUITES 2
28502869
@@ -4406,6 +4425,7 @@ enum nl80211_mfp { · 1555 unmodified lines
44064425 enum nl80211_wpa_versions {
44074426 NL80211_WPA_VERSION_1 = 1 << 0,
44084427 NL80211_WPA_VERSION_2 = 1 << 1,
4428+ NL80211_WPA_VERSION_3 = 1 << 2,
44094429 };
44104430
44114431 /**
@@ -5314,7 +5334,7 @@ enum nl80211_feature_flags { · 902 unmodified lines
53145334 NL80211_FEATURE_TDLS_CHANNEL_SWITCH = 1 << 28,
53155335 NL80211_FEATURE_SCAN_RANDOM_MAC_ADDR = 1 << 29,
53165336 NL80211_FEATURE_SCHED_SCAN_RANDOM_MAC_ADDR = 1 << 30,
5317− NL80211_FEATURE_ND_RANDOM_MAC_ADDR = 1 << 31,
5337+ NL80211_FEATURE_ND_RANDOM_MAC_ADDR = 1U << 31,
53185338 };
53195339
53205340 /**
@@ -5422,6 +5442,9 @@ enum nl80211_feature_flags { · 101 unmodified lines
54225442 * @NL80211_EXT_FEATURE_STA_TX_PWR: This driver supports controlling tx power
54235443 * to a station.
54245444 *
5445+ * @NL80211_EXT_FEATURE_SAE_OFFLOAD: Device wants to do SAE authentication in
5446+ * station mode (SAE password is passed as part of the connect command).
5447+ *
54255448 * @NUM_NL80211_EXT_FEATURES: number of extended features.
54265449 * @MAX_NL80211_EXT_FEATURES: highest extended feature index.
54275450 */
@@ -5466,6 +5489,7 @@ enum nl80211_ext_feature_index { · 38 unmodified lines
54665489 NL80211_EXT_FEATURE_SCHED_SCAN_BAND_SPECIFIC_RSSI_THOLD,
54675490 NL80211_EXT_FEATURE_EXT_KEY_ID,
54685491 NL80211_EXT_FEATURE_STA_TX_PWR,
5492+ NL80211_EXT_FEATURE_SAE_OFFLOAD,
54695493
54705494 /* add new features before the definition below */
54715495 NUM_NL80211_EXT_FEATURES,
include/uapi/linux/pci_regs.h+4−0
@@ -528,6 +528,7 @@ · 527 unmodified lines
528528 #define PCI_EXP_LNKCAP_SLS_5_0GB 0x00000002 /* LNKCAP2 SLS Vector bit 1 */
529529 #define PCI_EXP_LNKCAP_SLS_8_0GB 0x00000003 /* LNKCAP2 SLS Vector bit 2 */
530530 #define PCI_EXP_LNKCAP_SLS_16_0GB 0x00000004 /* LNKCAP2 SLS Vector bit 3 */
531+#define PCI_EXP_LNKCAP_SLS_32_0GB 0x00000005 /* LNKCAP2 SLS Vector bit 4 */
531532 #define PCI_EXP_LNKCAP_MLW 0x000003f0 /* Maximum Link Width */
532533 #define PCI_EXP_LNKCAP_ASPMS 0x00000c00 /* ASPM Support */
533534 #define PCI_EXP_LNKCAP_L0SEL 0x00007000 /* L0s Exit Latency */
@@ -556,6 +557,7 @@ · 22 unmodified lines
556557 #define PCI_EXP_LNKSTA_CLS_5_0GB 0x0002 /* Current Link Speed 5.0GT/s */
557558 #define PCI_EXP_LNKSTA_CLS_8_0GB 0x0003 /* Current Link Speed 8.0GT/s */
558559 #define PCI_EXP_LNKSTA_CLS_16_0GB 0x0004 /* Current Link Speed 16.0GT/s */
560+#define PCI_EXP_LNKSTA_CLS_32_0GB 0x0005 /* Current Link Speed 32.0GT/s */
559561 #define PCI_EXP_LNKSTA_NLW 0x03f0 /* Negotiated Link Width */
560562 #define PCI_EXP_LNKSTA_NLW_X1 0x0010 /* Current Link Width x1 */
561563 #define PCI_EXP_LNKSTA_NLW_X2 0x0020 /* Current Link Width x2 */
@@ -661,6 +663,7 @@ · 99 unmodified lines
661663 #define PCI_EXP_LNKCAP2_SLS_5_0GB 0x00000004 /* Supported Speed 5GT/s */
662664 #define PCI_EXP_LNKCAP2_SLS_8_0GB 0x00000008 /* Supported Speed 8GT/s */
663665 #define PCI_EXP_LNKCAP2_SLS_16_0GB 0x00000010 /* Supported Speed 16GT/s */
666+#define PCI_EXP_LNKCAP2_SLS_32_0GB 0x00000020 /* Supported Speed 32GT/s */
664667 #define PCI_EXP_LNKCAP2_CROSSLINK 0x00000100 /* Crosslink supported */
665668 #define PCI_EXP_LNKCTL2 48 /* Link Control 2 */
666669 #define PCI_EXP_LNKCTL2_TLS 0x000f
@@ -668,6 +671,7 @@ · 1 unmodified line
668671 #define PCI_EXP_LNKCTL2_TLS_5_0GT 0x0002 /* Supported Speed 5GT/s */
669672 #define PCI_EXP_LNKCTL2_TLS_8_0GT 0x0003 /* Supported Speed 8GT/s */
670673 #define PCI_EXP_LNKCTL2_TLS_16_0GT 0x0004 /* Supported Speed 16GT/s */
674+#define PCI_EXP_LNKCTL2_TLS_32_0GT 0x0005 /* Supported Speed 32GT/s */
671675 #define PCI_EXP_LNKSTA2 50 /* Link Status 2 */
672676 #define PCI_CAP_EXP_ENDPOINT_SIZEOF_V2 52 /* v2 endpoints with link end here */
673677 #define PCI_EXP_SLTCAP2 52 /* Slot Capabilities 2 */
include/uapi/linux/pkt_cls.h+20−1
@@ -104,6 +104,9 @@ enum tca_id { · 103 unmodified lines
104104 TCA_ID_SIMP = TCA_ACT_SIMP,
105105 TCA_ID_IFE = TCA_ACT_IFE,
106106 TCA_ID_SAMPLE = TCA_ACT_SAMPLE,
107+ TCA_ID_CTINFO,
108+ TCA_ID_MPLS,
109+ TCA_ID_CT,
107110 /* other actions go here */
108111 __TCA_ID_MAX = 255
109112 };
@@ -294,7 +297,7 @@ enum { · 184 unmodified lines
294297 TCA_FW_UNSPEC,
295298 TCA_FW_CLASSID,
296299 TCA_FW_POLICE,
297− TCA_FW_INDEV, /* used by CONFIG_NET_CLS_IND */
300+ TCA_FW_INDEV,
298301 TCA_FW_ACT, /* used by CONFIG_NET_CLS_ACT */
299302 TCA_FW_MASK,
300303 __TCA_FW_MAX
@@ -534,11 +537,27 @@ enum { · 233 unmodified lines
534537 TCA_FLOWER_KEY_PORT_DST_MIN, /* be16 */
535538 TCA_FLOWER_KEY_PORT_DST_MAX, /* be16 */
536539
540+ TCA_FLOWER_KEY_CT_STATE, /* u16 */
541+ TCA_FLOWER_KEY_CT_STATE_MASK, /* u16 */
542+ TCA_FLOWER_KEY_CT_ZONE, /* u16 */
543+ TCA_FLOWER_KEY_CT_ZONE_MASK, /* u16 */
544+ TCA_FLOWER_KEY_CT_MARK, /* u32 */
545+ TCA_FLOWER_KEY_CT_MARK_MASK, /* u32 */
546+ TCA_FLOWER_KEY_CT_LABELS, /* u128 */
547+ TCA_FLOWER_KEY_CT_LABELS_MASK, /* u128 */
548+
537549 __TCA_FLOWER_MAX,
538550 };
539551
540552 #define TCA_FLOWER_MAX (__TCA_FLOWER_MAX - 1)
541553
554+enum {
555+ TCA_FLOWER_KEY_CT_FLAGS_NEW = 1 << 0, /* Beginning of a new connection. */
556+ TCA_FLOWER_KEY_CT_FLAGS_ESTABLISHED = 1 << 1, /* Part of an existing connection. */
557+ TCA_FLOWER_KEY_CT_FLAGS_RELATED = 1 << 2, /* Related to an established connection. */
558+ TCA_FLOWER_KEY_CT_FLAGS_TRACKED = 1 << 3, /* Conntrack has occurred. */
559+};
560+
542561 enum {
543562 TCA_FLOWER_KEY_ENC_OPTS_UNSPEC,
544563 TCA_FLOWER_KEY_ENC_OPTS_GENEVE, /* Nested
include/uapi/linux/pkt_sched.h+8−2
@@ -2,6 +2,7 @@ · 1 unmodified line
22 #ifndef __LINUX_PKT_SCHED_H
33 #define __LINUX_PKT_SCHED_H
44
5+#include <linux/const.h>
56 #include <linux/types.h>
67
78 /* Logical priority bands not depending on specific packet scheduler.
@@ -988,8 +989,9 @@ struct tc_etf_qopt { · 980 unmodified lines
988989 __s32 delta;
989990 __s32 clockid;
990991 __u32 flags;
991−#define TC_ETF_DEADLINE_MODE_ON BIT(0)
992−#define TC_ETF_OFFLOAD_ON BIT(1)
992+#define TC_ETF_DEADLINE_MODE_ON _BITUL(0)
993+#define TC_ETF_OFFLOAD_ON _BITUL(1)
994+#define TC_ETF_SKIP_SOCK_CHECK _BITUL(2)
993995 };
994996
995997 enum {
@@ -1158,6 +1160,8 @@ enum { · 162 unmodified lines
11581160 * [TCA_TAPRIO_ATTR_SCHED_ENTRY_INTERVAL]
11591161 */
11601162
1163+#define TCA_TAPRIO_ATTR_FLAG_TXTIME_ASSIST 0x1
1164+
11611165 enum {
11621166 TCA_TAPRIO_ATTR_UNSPEC,
11631167 TCA_TAPRIO_ATTR_PRIOMAP, /* struct tc_mqprio_qopt */
@@ -1169,6 +1173,8 @@ enum { · 5 unmodified lines
11691173 TCA_TAPRIO_ATTR_ADMIN_SCHED, /* The admin sched, only used in dump */
11701174 TCA_TAPRIO_ATTR_SCHED_CYCLE_TIME, /* s64 */
11711175 TCA_TAPRIO_ATTR_SCHED_CYCLE_TIME_EXTENSION, /* s64 */
1176+ TCA_TAPRIO_ATTR_FLAGS, /* u32 */
1177+ TCA_TAPRIO_ATTR_TXTIME_DELAY, /* u32 */
11721178 __TCA_TAPRIO_ATTR_MAX,
11731179 };
11741180
include/uapi/linux/psp-sev.h+1−4
@@ -1,3 +1,4 @@
1+/* SPDX-License-Identifier: GPL-2.0-only WITH Linux-syscall-note */
12 /*
23 * Userspace interface for AMD Secure Encrypted Virtualization (SEV)
34 * platform management commands.
@@ -7,10 +8,6 @@ · 3 unmodified lines
78 * Author: Brijesh Singh <brijesh.singh@amd.com>
89 *
910 * SEV API specification is available at: https://developer.amd.com/sev/
10− *
11− * This program is free software; you can redistribute it and/or modify
12− * it under the terms of the GNU General Public License version 2 as
13− * published by the Free Software Foundation.
1411 */
1512
1613 #ifndef __PSP_SEV_USER_H__
include/uapi/linux/ptrace.h+35−0
@@ -73,6 +73,41 @@ struct seccomp_metadata { · 72 unmodified lines
7373 __u64 flags; /* Output: filter's flags */
7474 };
7575
76+#define PTRACE_GET_SYSCALL_INFO 0x420e
77+#define PTRACE_SYSCALL_INFO_NONE 0
78+#define PTRACE_SYSCALL_INFO_ENTRY 1
79+#define PTRACE_SYSCALL_INFO_EXIT 2
80+#define PTRACE_SYSCALL_INFO_SECCOMP 3
81+
82+struct ptrace_syscall_info {
83+ __u8 op; /* PTRACE_SYSCALL_INFO_* */
84+ __u32 arch __attribute__((__aligned__(sizeof(__u32))));
85+ __u64 instruction_pointer;
86+ __u64 stack_pointer;
87+ union {
88+ struct {
89+ __u64 nr;
90+ __u64 args[6];
91+ } entry;
92+ struct {
93+ __s64 rval;
94+ __u8 is_error;
95+ } exit;
96+ struct {
97+ __u64 nr;
98+ __u64 args[6];
99+ __u32 ret_data;
100+ } seccomp;
101+ };
102+};
103+
104+/*
105+ * These values are stored in task->ptrace_message
106+ * by tracehook_report_syscall_* to describe the current syscall-stop.
107+ */
108+#define PTRACE_EVENTMSG_SYSCALL_ENTRY 1
109+#define PTRACE_EVENTMSG_SYSCALL_EXIT 2
110+
76111 /* Read signals from a shared (process wide) queue */
77112 #define PTRACE_PEEKSIGINFO_SHARED (1 << 0)
78113
include/uapi/linux/rds.h+2−0
@@ -250,6 +250,7 @@ struct rds_info_rdma_connection { · 249 unmodified lines
250250 __u32 rdma_mr_max;
251251 __u32 rdma_mr_size;
252252 __u8 tos;
253+ __u32 cache_allocs;
253254 };
254255
255256 struct rds6_info_rdma_connection {
@@ -264,6 +265,7 @@ struct rds6_info_rdma_connection { · 8 unmodified lines
264265 __u32 rdma_mr_max;
265266 __u32 rdma_mr_size;
266267 __u8 tos;
268+ __u32 cache_allocs;
267269 };
268270
269271 /* RDS message Receive Path Latency points */
include/uapi/linux/rtnetlink.h+10−0
@@ -157,6 +157,13 @@ enum { · 156 unmodified lines
157157 RTM_GETCHAIN,
158158 #define RTM_GETCHAIN RTM_GETCHAIN
159159
160+ RTM_NEWNEXTHOP = 104,
161+#define RTM_NEWNEXTHOP RTM_NEWNEXTHOP
162+ RTM_DELNEXTHOP,
163+#define RTM_DELNEXTHOP RTM_DELNEXTHOP
164+ RTM_GETNEXTHOP,
165+#define RTM_GETNEXTHOP RTM_GETNEXTHOP
166+
160167 __RTM_MAX,
161168 #define RTM_MAX (((__RTM_MAX + 3) & ~3) - 1)
162169 };
@@ -342,6 +349,7 @@ enum rtattr_type_t { · 179 unmodified lines
342349 RTA_IP_PROTO,
343350 RTA_SPORT,
344351 RTA_DPORT,
352+ RTA_NH_ID,
345353 __RTA_MAX
346354 };
347355
@@ -704,6 +712,8 @@ enum rtnetlink_groups { · 356 unmodified lines
704712 #define RTNLGRP_IPV4_MROUTE_R RTNLGRP_IPV4_MROUTE_R
705713 RTNLGRP_IPV6_MROUTE_R,
706714 #define RTNLGRP_IPV6_MROUTE_R RTNLGRP_IPV6_MROUTE_R
715+ RTNLGRP_NEXTHOP,
716+#define RTNLGRP_NEXTHOP RTNLGRP_NEXTHOP
707717 __RTNLGRP_MAX
708718 };
709719 #define RTNLGRP_MAX (__RTNLGRP_MAX - 1)
include/uapi/linux/rxrpc.h+1−1
@@ -1,4 +1,4 @@
1−/* SPDX-License-Identifier: GPL-2.0-or-later */
1+/* SPDX-License-Identifier: GPL-2.0-or-later WITH Linux-syscall-note */
22 /* Types and definitions for AF_RXRPC.
33 *
44 * Copyright (C) 2007 Red Hat, Inc. All Rights Reserved.
include/uapi/linux/sched.h+29−1
@@ -2,6 +2,8 @@ · 1 unmodified line
22 #ifndef _UAPI_LINUX_SCHED_H
33 #define _UAPI_LINUX_SCHED_H
44
5+#include <linux/types.h>
6+
57 /*
68 * cloning flags:
79 */
@@ -31,6 +33,20 @@ · 23 unmodified lines
3133 #define CLONE_NEWNET 0x40000000 /* New network namespace */
3234 #define CLONE_IO 0x80000000 /* Clone io context */
3335
36+/*
37+ * Arguments for the clone3 syscall
38+ */
39+struct clone_args {
40+ __aligned_u64 flags;
41+ __aligned_u64 pidfd;
42+ __aligned_u64 child_tid;
43+ __aligned_u64 parent_tid;
44+ __aligned_u64 exit_signal;
45+ __aligned_u64 stack;
46+ __aligned_u64 stack_size;
47+ __aligned_u64 tls;
48+};
49+
3450 /*
3551 * Scheduling policies
3652 */
@@ -51,9 +67,21 @@ · 14 unmodified lines
5167 #define SCHED_FLAG_RESET_ON_FORK 0x01
5268 #define SCHED_FLAG_RECLAIM 0x02
5369 #define SCHED_FLAG_DL_OVERRUN 0x04
70+#define SCHED_FLAG_KEEP_POLICY 0x08
71+#define SCHED_FLAG_KEEP_PARAMS 0x10
72+#define SCHED_FLAG_UTIL_CLAMP_MIN 0x20
73+#define SCHED_FLAG_UTIL_CLAMP_MAX 0x40
74+
75+#define SCHED_FLAG_KEEP_ALL (SCHED_FLAG_KEEP_POLICY | \
76+ SCHED_FLAG_KEEP_PARAMS)
77+
78+#define SCHED_FLAG_UTIL_CLAMP (SCHED_FLAG_UTIL_CLAMP_MIN | \
79+ SCHED_FLAG_UTIL_CLAMP_MAX)
5480
5581 #define SCHED_FLAG_ALL (SCHED_FLAG_RESET_ON_FORK | \
5682 SCHED_FLAG_RECLAIM | \
57− SCHED_FLAG_DL_OVERRUN)
83+ SCHED_FLAG_DL_OVERRUN | \
84+ SCHED_FLAG_KEEP_ALL | \
85+ SCHED_FLAG_UTIL_CLAMP)
5886
5987 #endif /* _UAPI_LINUX_SCHED_H */
include/uapi/linux/sched/types.h+57−9
@@ -9,6 +9,7 @@ struct sched_param { · 8 unmodified lines
99 };
1010
1111 #define SCHED_ATTR_SIZE_VER0 48 /* sizeof first published struct */
12+#define SCHED_ATTR_SIZE_VER1 56 /* add: util_{min,max} */
1213
1314 /*
1415 * Extended scheduling parameters data structure.
@@ -21,8 +22,33 @@ struct sched_param { · 6 unmodified lines
2122 * the tasks may be useful for a wide variety of application fields, e.g.,
2223 * multimedia, streaming, automation and control, and many others.
2324 *
24− * This variant (sched_attr) is meant at describing a so-called
25− * sporadic time-constrained task. In such model a task is specified by:
25+ * This variant (sched_attr) allows to define additional attributes to
26+ * improve the scheduler knowledge about task requirements.
27+ *
28+ * Scheduling Class Attributes
29+ * ===========================
30+ *
31+ * A subset of sched_attr attributes specifies the
32+ * scheduling policy and relative POSIX attributes:
33+ *
34+ * @size size of the structure, for fwd/bwd compat.
35+ *
36+ * @sched_policy task's scheduling policy
37+ * @sched_nice task's nice value (SCHED_NORMAL/BATCH)
38+ * @sched_priority task's static priority (SCHED_FIFO/RR)
39+ *
40+ * Certain more advanced scheduling features can be controlled by a
41+ * predefined set of flags via the attribute:
42+ *
43+ * @sched_flags for customizing the scheduler behaviour
44+ *
45+ * Sporadic Time-Constrained Task Attributes
46+ * =========================================
47+ *
48+ * A subset of sched_attr attributes allows to describe a so-called
49+ * sporadic time-constrained task.
50+ *
51+ * In such a model a task is specified by:
2652 * - the activation period or minimum instance inter-arrival time;
2753 * - the maximum (or average, depending on the actual scheduling
2854 * discipline) computation time of all instances, a.k.a. runtime;
@@ -34,14 +60,8 @@ struct sched_param { · 5 unmodified lines
3460 * than the runtime and must be completed by time instant t equal to
3561 * the instance activation time + the deadline.
3662 *
37− * This is reflected by the actual fields of the sched_attr structure:
63+ * This is reflected by the following fields of the sched_attr structure:
3864 *
39− * @size size of the structure, for fwd/bwd compat.
40− *
41− * @sched_policy task's scheduling policy
42− * @sched_flags for customizing the scheduler behaviour
43− * @sched_nice task's nice value (SCHED_NORMAL/BATCH)
44− * @sched_priority task's static priority (SCHED_FIFO/RR)
4565 * @sched_deadline representative of the task's deadline
4666 * @sched_runtime representative of the task's runtime
4767 * @sched_period representative of the task's period
@@ -53,6 +73,29 @@ struct sched_param { · 5 unmodified lines
5373 * As of now, the SCHED_DEADLINE policy (sched_dl scheduling class) is the
5474 * only user of this new interface. More information about the algorithm
5575 * available in the scheduling class file or in Documentation/.
76+ *
77+ * Task Utilization Attributes
78+ * ===========================
79+ *
80+ * A subset of sched_attr attributes allows to specify the utilization
81+ * expected for a task. These attributes allow to inform the scheduler about
82+ * the utilization boundaries within which it should schedule the task. These
83+ * boundaries are valuable hints to support scheduler decisions on both task
84+ * placement and frequency selection.
85+ *
86+ * @sched_util_min represents the minimum utilization
87+ * @sched_util_max represents the maximum utilization
88+ *
89+ * Utilization is a value in the range [0..SCHED_CAPACITY_SCALE]. It
90+ * represents the percentage of CPU time used by a task when running at the
91+ * maximum frequency on the highest capacity CPU of the system. For example, a
92+ * 20% utilization task is a task running for 2ms every 10ms at maximum
93+ * frequency.
94+ *
95+ * A task with a min utilization value bigger than 0 is more likely scheduled
96+ * on a CPU with a capacity big enough to fit the specified value.
97+ * A task with a max utilization value smaller than 1024 is more likely
98+ * scheduled on a CPU with no more capacity than the specified value.
5699 */
57100 struct sched_attr {
58101 __u32 size;
@@ -70,6 +113,11 @@ struct sched_attr { · 11 unmodified lines
70113 __u64 sched_runtime;
71114 __u64 sched_deadline;
72115 __u64 sched_period;
116+
117+ /* Utilization hints */
118+ __u32 sched_util_min;
119+ __u32 sched_util_max;
120+
73121 };
74122
75123 #endif /* _UAPI_LINUX_SCHED_TYPES_H */
include/uapi/linux/sed-opal.h+21−0
@@ -20,6 +20,11 @@ enum opal_mbr { · 19 unmodified lines
2020 OPAL_MBR_DISABLE = 0x01,
2121 };
2222
23+enum opal_mbr_done_flag {
24+ OPAL_MBR_NOT_DONE = 0x0,
25+ OPAL_MBR_DONE = 0x01
26+};
27+
2328 enum opal_user {
2429 OPAL_ADMIN1 = 0x0,
2530 OPAL_USER1 = 0x01,
@@ -95,6 +100,19 @@ struct opal_mbr_data { · 69 unmodified lines
95100 __u8 __align[7];
96101 };
97102
103+struct opal_mbr_done {
104+ struct opal_key key;
105+ __u8 done_flag;
106+ __u8 __align[7];
107+};
108+
109+struct opal_shadow_mbr {
110+ struct opal_key key;
111+ const __u64 data;
112+ __u64 offset;
113+ __u64 size;
114+};
115+
98116 #define IOC_OPAL_SAVE _IOW('p', 220, struct opal_lock_unlock)
99117 #define IOC_OPAL_LOCK_UNLOCK _IOW('p', 221, struct opal_lock_unlock)
100118 #define IOC_OPAL_TAKE_OWNERSHIP _IOW('p', 222, struct opal_key)
@@ -107,5 +125,8 @@ struct opal_mbr_data { · 6 unmodified lines
107125 #define IOC_OPAL_ENABLE_DISABLE_MBR _IOW('p', 229, struct opal_mbr_data)
108126 #define IOC_OPAL_ERASE_LR _IOW('p', 230, struct opal_session_info)
109127 #define IOC_OPAL_SECURE_ERASE_LR _IOW('p', 231, struct opal_session_info)
128+#define IOC_OPAL_PSID_REVERT_TPR _IOW('p', 232, struct opal_key)
129+#define IOC_OPAL_MBR_DONE _IOW('p', 233, struct opal_mbr_done)
130+#define IOC_OPAL_WRITE_SHADOW_MBR _IOW('p', 234, struct opal_shadow_mbr)
110131
111132 #endif /* _UAPI_SED_OPAL_H */
include/uapi/linux/serial_core.h+1−4
@@ -129,7 +129,7 @@ · 128 unmodified lines
129129 /* Motorola i.MX SoC */
130130 #define PORT_IMX 62
131131
132−/* Marvell MPSC */
132+/* Marvell MPSC (obsolete unused) */
133133 #define PORT_MPSC 63
134134
135135 /* TXX9 type number */
@@ -150,9 +150,6 @@ · 14 unmodified lines
150150
151151 #define PORT_PNX8XXX 70
152152
153−/* Hilscher netx */
154−#define PORT_NETX 71
155−
156153 /* SUN4V Hypervisor Console */
157154 #define PORT_SUNHV 72
158155
include/uapi/linux/snmp.h+2−0
@@ -283,6 +283,8 @@ enum · 282 unmodified lines
283283 LINUX_MIB_TCPACKCOMPRESSED, /* TCPAckCompressed */
284284 LINUX_MIB_TCPZEROWINDOWDROP, /* TCPZeroWindowDrop */
285285 LINUX_MIB_TCPRCVQDROP, /* TCPRcvQDrop */
286+ LINUX_MIB_TCPWQUEUETOOBIG, /* TCPWqueueTooBig */
287+ LINUX_MIB_TCPFASTOPENPASSIVEALTKEY, /* TCPFastOpenPassiveAltKey */
286288 __LINUX_MIB_MAX
287289 };
288290
include/uapi/linux/tc_act/tc_ct.h+41−0
@@ -0,0 +1,41 @@
1+/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
2+#ifndef __UAPI_TC_CT_H
3+#define __UAPI_TC_CT_H
4+
5+#include <linux/types.h>
6+#include <linux/pkt_cls.h>
7+
8+enum {
9+ TCA_CT_UNSPEC,
10+ TCA_CT_PARMS,
11+ TCA_CT_TM,
12+ TCA_CT_ACTION, /* u16 */
13+ TCA_CT_ZONE, /* u16 */
14+ TCA_CT_MARK, /* u32 */
15+ TCA_CT_MARK_MASK, /* u32 */
16+ TCA_CT_LABELS, /* u128 */
17+ TCA_CT_LABELS_MASK, /* u128 */
18+ TCA_CT_NAT_IPV4_MIN, /* be32 */
19+ TCA_CT_NAT_IPV4_MAX, /* be32 */
20+ TCA_CT_NAT_IPV6_MIN, /* struct in6_addr */
21+ TCA_CT_NAT_IPV6_MAX, /* struct in6_addr */
22+ TCA_CT_NAT_PORT_MIN, /* be16 */
23+ TCA_CT_NAT_PORT_MAX, /* be16 */
24+ TCA_CT_PAD,
25+ __TCA_CT_MAX
26+};
27+
28+#define TCA_CT_MAX (__TCA_CT_MAX - 1)
29+
30+#define TCA_CT_ACT_COMMIT (1 << 0)
31+#define TCA_CT_ACT_FORCE (1 << 1)
32+#define TCA_CT_ACT_CLEAR (1 << 2)
33+#define TCA_CT_ACT_NAT (1 << 3)
34+#define TCA_CT_ACT_NAT_SRC (1 << 4)
35+#define TCA_CT_ACT_NAT_DST (1 << 5)
36+
37+struct tc_ct {
38+ tc_gen;
39+};
40+
41+#endif /* __UAPI_TC_CT_H */
include/uapi/linux/tc_act/tc_ctinfo.h+29−0
@@ -0,0 +1,29 @@
1+/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
2+#ifndef __UAPI_TC_CTINFO_H
3+#define __UAPI_TC_CTINFO_H
4+
5+#include <linux/types.h>
6+#include <linux/pkt_cls.h>
7+
8+struct tc_ctinfo {
9+ tc_gen;
10+};
11+
12+enum {
13+ TCA_CTINFO_UNSPEC,
14+ TCA_CTINFO_PAD,
15+ TCA_CTINFO_TM,
16+ TCA_CTINFO_ACT,
17+ TCA_CTINFO_ZONE,
18+ TCA_CTINFO_PARMS_DSCP_MASK,
19+ TCA_CTINFO_PARMS_DSCP_STATEMASK,
20+ TCA_CTINFO_PARMS_CPMARK_MASK,
21+ TCA_CTINFO_STATS_DSCP_SET,
22+ TCA_CTINFO_STATS_DSCP_ERROR,
23+ TCA_CTINFO_STATS_CPMARK_SET,
24+ __TCA_CTINFO_MAX
25+};
26+
27+#define TCA_CTINFO_MAX (__TCA_CTINFO_MAX - 1)
28+
29+#endif
include/uapi/linux/tc_act/tc_mpls.h+33−0
@@ -0,0 +1,33 @@
1+/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
2+/* Copyright (C) 2019 Netronome Systems, Inc. */
3+
4+#ifndef __LINUX_TC_MPLS_H
5+#define __LINUX_TC_MPLS_H
6+
7+#include <linux/pkt_cls.h>
8+
9+#define TCA_MPLS_ACT_POP 1
10+#define TCA_MPLS_ACT_PUSH 2
11+#define TCA_MPLS_ACT_MODIFY 3
12+#define TCA_MPLS_ACT_DEC_TTL 4
13+
14+struct tc_mpls {
15+ tc_gen; /* generic TC action fields. */
16+ int m_action; /* action of type TCA_MPLS_ACT_*. */
17+};
18+
19+enum {
20+ TCA_MPLS_UNSPEC,
21+ TCA_MPLS_TM, /* struct tcf_t; time values associated with action. */
22+ TCA_MPLS_PARMS, /* struct tc_mpls; action type and general TC fields. */
23+ TCA_MPLS_PAD,
24+ TCA_MPLS_PROTO, /* be16; eth_type of pushed or next (for pop) header. */
25+ TCA_MPLS_LABEL, /* u32; MPLS label. Lower 20 bits are used. */
26+ TCA_MPLS_TC, /* u8; MPLS TC field. Lower 3 bits are used. */
27+ TCA_MPLS_TTL, /* u8; MPLS TTL field. Must not be 0. */
28+ TCA_MPLS_BOS, /* u8; MPLS BOS field. Either 1 or 0. */
29+ __TCA_MPLS_MAX,
30+};
31+#define TCA_MPLS_MAX (__TCA_MPLS_MAX - 1)
32+
33+#endif
include/uapi/linux/tcp.h+3−0
@@ -127,6 +127,9 @@ enum { · 126 unmodified lines
127127
128128 #define TCP_CM_INQ TCP_INQ
129129
130+#define TCP_TX_DELAY 37 /* delay outgoing packets by XX usec */
131+
132+
130133 #define TCP_REPAIR_ON 1
131134 #define TCP_REPAIR_OFF 0
132135 #define TCP_REPAIR_OFF_NO_WP -1 /* Turn off without window probes */
include/uapi/linux/unix_diag.h+2−0
@@ -20,6 +20,7 @@ struct unix_diag_req { · 19 unmodified lines
2020 #define UDIAG_SHOW_ICONS 0x00000008 /* show pending connections */
2121 #define UDIAG_SHOW_RQLEN 0x00000010 /* show skb receive queue len */
2222 #define UDIAG_SHOW_MEMINFO 0x00000020 /* show memory info of a socket */
23+#define UDIAG_SHOW_UID 0x00000040 /* show socket's UID */
2324
2425 struct unix_diag_msg {
2526 __u8 udiag_family;
@@ -40,6 +41,7 @@ enum { · 14 unmodified lines
4041 UNIX_DIAG_RQLEN,
4142 UNIX_DIAG_MEMINFO,
4243 UNIX_DIAG_SHUTDOWN,
44+ UNIX_DIAG_UID,
4345
4446 __UNIX_DIAG_MAX,
4547 };
include/uapi/linux/usb/audio.h+37−0
@@ -450,6 +450,43 @@ static inline __u8 *uac_processing_unit_specific(struct uac_processing_unit_desc · 449 unmodified lines
450450 }
451451 }
452452
453+/*
454+ * Extension Unit (XU) has almost compatible layout with Processing Unit, but
455+ * on UAC2, it has a different bmControls size (bControlSize); it's 1 byte for
456+ * XU while 2 bytes for PU. The last iExtension field is a one-byte index as
457+ * well as iProcessing field of PU.
458+ */
459+static inline __u8 uac_extension_unit_bControlSize(struct uac_processing_unit_descriptor *desc,
460+ int protocol)
461+{
462+ switch (protocol) {
463+ case UAC_VERSION_1:
464+ return desc->baSourceID[desc->bNrInPins + 4];
465+ case UAC_VERSION_2:
466+ return 1; /* in UAC2, this value is constant */
467+ case UAC_VERSION_3:
468+ return 4; /* in UAC3, this value is constant */
469+ default:
470+ return 1;
471+ }
472+}
473+
474+static inline __u8 uac_extension_unit_iExtension(struct uac_processing_unit_descriptor *desc,
475+ int protocol)
476+{
477+ __u8 control_size = uac_extension_unit_bControlSize(desc, protocol);
478+
479+ switch (protocol) {
480+ case UAC_VERSION_1:
481+ case UAC_VERSION_2:
482+ default:
483+ return *(uac_processing_unit_bmControls(desc, protocol)
484+ + control_size);
485+ case UAC_VERSION_3:
486+ return 0; /* UAC3 does not have this field */
487+ }
488+}
489+
453490 /* 4.5.2 Class-Specific AS Interface Descriptor */
454491 struct uac1_as_header_descriptor {
455492 __u8 bLength; /* in bytes: 7 */
include/uapi/linux/usb/g_uvc.h+1−1
@@ -1,4 +1,4 @@
1−/* SPDX-License-Identifier: GPL-2.0+ */
1+/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */
22 /*
33 * g_uvc.h -- USB Video Class Gadget driver API
44 *
include/uapi/linux/usbdevice_fs.h+26−0
@@ -76,6 +76,26 @@ struct usbdevfs_connectinfo { · 75 unmodified lines
7676 unsigned char slow;
7777 };
7878
79+struct usbdevfs_conninfo_ex {
80+ __u32 size; /* Size of the structure from the kernel's */
81+ /* point of view. Can be used by userspace */
82+ /* to determine how much data can be */
83+ /* used/trusted. */
84+ __u32 busnum; /* USB bus number, as enumerated by the */
85+ /* kernel, the device is connected to. */
86+ __u32 devnum; /* Device address on the bus. */
87+ __u32 speed; /* USB_SPEED_* constants from ch9.h */
88+ __u8 num_ports; /* Number of ports the device is connected */
89+ /* to on the way to the root hub. It may */
90+ /* be bigger than size of 'ports' array so */
91+ /* userspace can detect overflows. */
92+ __u8 ports[7]; /* List of ports on the way from the root */
93+ /* hub to the device. Current limit in */
94+ /* USB specification is 7 tiers (root hub, */
95+ /* 5 intermediate hubs, device), which */
96+ /* gives at most 6 port entries. */
97+};
98+
7999 #define USBDEVFS_URB_SHORT_NOT_OK 0x01
80100 #define USBDEVFS_URB_ISO_ASAP 0x02
81101 #define USBDEVFS_URB_BULK_CONTINUATION 0x04
@@ -137,6 +157,7 @@ struct usbdevfs_hub_portinfo { · 55 unmodified lines
137157 #define USBDEVFS_CAP_REAP_AFTER_DISCONNECT 0x10
138158 #define USBDEVFS_CAP_MMAP 0x20
139159 #define USBDEVFS_CAP_DROP_PRIVILEGES 0x40
160+#define USBDEVFS_CAP_CONNINFO_EX 0x80
140161
141162 /* USBDEVFS_DISCONNECT_CLAIM flags & struct */
142163
@@ -197,5 +218,10 @@ struct usbdevfs_streams { · 54 unmodified lines
197218 #define USBDEVFS_FREE_STREAMS _IOR('U', 29, struct usbdevfs_streams)
198219 #define USBDEVFS_DROP_PRIVILEGES _IOW('U', 30, __u32)
199220 #define USBDEVFS_GET_SPEED _IO('U', 31)
221+/*
222+ * Returns struct usbdevfs_conninfo_ex; length is variable to allow
223+ * extending size of the data returned.
224+ */
225+#define USBDEVFS_CONNINFO_EX(len) _IOC(_IOC_READ, 'U', 32, len)
200226
201227 #endif /* _UAPI_LINUX_USBDEVICE_FS_H */
include/uapi/linux/v4l2-controls.h+23−0
@@ -392,8 +392,13 @@ enum v4l2_mpeg_video_header_mode { · 391 unmodified lines
392392 #define V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MODE (V4L2_CID_MPEG_BASE+221)
393393 enum v4l2_mpeg_video_multi_slice_mode {
394394 V4L2_MPEG_VIDEO_MULTI_SLICE_MODE_SINGLE = 0,
395+ V4L2_MPEG_VIDEO_MULTI_SLICE_MODE_MAX_MB = 1,
396+ V4L2_MPEG_VIDEO_MULTI_SLICE_MODE_MAX_BYTES = 2,
397+#ifndef __KERNEL__
398+ /* Kept for backwards compatibility reasons. Stupid typo... */
395399 V4L2_MPEG_VIDEO_MULTI_SICE_MODE_MAX_MB = 1,
396400 V4L2_MPEG_VIDEO_MULTI_SICE_MODE_MAX_BYTES = 2,
401+#endif
397402 };
398403 #define V4L2_CID_MPEG_VIDEO_VBV_SIZE (V4L2_CID_MPEG_BASE+222)
399404 #define V4L2_CID_MPEG_VIDEO_DEC_PTS (V4L2_CID_MPEG_BASE+223)
@@ -404,6 +409,24 @@ enum v4l2_mpeg_video_multi_slice_mode { · 4 unmodified lines
404409 #define V4L2_CID_MPEG_VIDEO_MV_V_SEARCH_RANGE (V4L2_CID_MPEG_BASE+228)
405410 #define V4L2_CID_MPEG_VIDEO_FORCE_KEY_FRAME (V4L2_CID_MPEG_BASE+229)
406411
412+/* CIDs for the MPEG-2 Part 2 (H.262) codec */
413+#define V4L2_CID_MPEG_VIDEO_MPEG2_LEVEL (V4L2_CID_MPEG_BASE+270)
414+enum v4l2_mpeg_video_mpeg2_level {
415+ V4L2_MPEG_VIDEO_MPEG2_LEVEL_LOW = 0,
416+ V4L2_MPEG_VIDEO_MPEG2_LEVEL_MAIN = 1,
417+ V4L2_MPEG_VIDEO_MPEG2_LEVEL_HIGH_1440 = 2,
418+ V4L2_MPEG_VIDEO_MPEG2_LEVEL_HIGH = 3,
419+};
420+#define V4L2_CID_MPEG_VIDEO_MPEG2_PROFILE (V4L2_CID_MPEG_BASE+271)
421+enum v4l2_mpeg_video_mpeg2_profile {
422+ V4L2_MPEG_VIDEO_MPEG2_PROFILE_SIMPLE = 0,
423+ V4L2_MPEG_VIDEO_MPEG2_PROFILE_MAIN = 1,
424+ V4L2_MPEG_VIDEO_MPEG2_PROFILE_SNR_SCALABLE = 2,
425+ V4L2_MPEG_VIDEO_MPEG2_PROFILE_SPATIALLY_SCALABLE = 3,
426+ V4L2_MPEG_VIDEO_MPEG2_PROFILE_HIGH = 4,
427+ V4L2_MPEG_VIDEO_MPEG2_PROFILE_MULTIVIEW = 5,
428+};
429+
407430 /* CIDs for the FWHT codec as used by the vicodec driver. */
408431 #define V4L2_CID_FWHT_I_FRAME_QP (V4L2_CID_MPEG_BASE + 290)
409432 #define V4L2_CID_FWHT_P_FRAME_QP (V4L2_CID_MPEG_BASE + 291)
include/uapi/linux/vbox_vmmdev_types.h+1−1
@@ -1,4 +1,4 @@
1−/* SPDX-License-Identifier: (GPL-2.0 OR CDDL-1.0) */
1+/* SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR CDDL-1.0) */
22 /*
33 * Virtual Device for Guest <-> VMM/Host communication, type definitions
44 * which are also used for the vboxguest ioctl interface / by vboxsf
include/uapi/linux/vboxguest.h+1−1
@@ -1,4 +1,4 @@
1−/* SPDX-License-Identifier: (GPL-2.0 OR CDDL-1.0) */
1+/* SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR CDDL-1.0) */
22 /*
33 * VBoxGuest - VirtualBox Guest Additions Driver Interface.
44 *
include/uapi/linux/videodev2.h+8−2
@@ -80,7 +80,7 @@ · 79 unmodified lines
8080 /* Four-character-code (FOURCC) */
8181 #define v4l2_fourcc(a, b, c, d)\
8282 ((__u32)(a) | ((__u32)(b) << 8) | ((__u32)(c) << 16) | ((__u32)(d) << 24))
83−#define v4l2_fourcc_be(a, b, c, d) (v4l2_fourcc(a, b, c, d) | (1 << 31))
83+#define v4l2_fourcc_be(a, b, c, d) (v4l2_fourcc(a, b, c, d) | (1U << 31))
8484
8585 /*
8686 * E N U M S
@@ -518,7 +518,13 @@ struct v4l2_pix_format { · 431 unmodified lines
518518 #define V4L2_PIX_FMT_RGBX444 v4l2_fourcc('R', 'X', '1', '2') /* 16 rrrrgggg bbbbxxxx */
519519 #define V4L2_PIX_FMT_ABGR444 v4l2_fourcc('A', 'B', '1', '2') /* 16 aaaabbbb ggggrrrr */
520520 #define V4L2_PIX_FMT_XBGR444 v4l2_fourcc('X', 'B', '1', '2') /* 16 xxxxbbbb ggggrrrr */
521−#define V4L2_PIX_FMT_BGRA444 v4l2_fourcc('B', 'A', '1', '2') /* 16 bbbbgggg rrrraaaa */
521+
522+/*
523+ * Originally this had 'BA12' as fourcc, but this clashed with the older
524+ * V4L2_PIX_FMT_SGRBG12 which inexplicably used that same fourcc.
525+ * So use 'GA12' instead for V4L2_PIX_FMT_BGRA444.
526+ */
527+#define V4L2_PIX_FMT_BGRA444 v4l2_fourcc('G', 'A', '1', '2') /* 16 bbbbgggg rrrraaaa */
522528 #define V4L2_PIX_FMT_BGRX444 v4l2_fourcc('B', 'X', '1', '2') /* 16 bbbbgggg rrrrxxxx */
523529 #define V4L2_PIX_FMT_RGB555 v4l2_fourcc('R', 'G', 'B', 'O') /* 16 RGB-5-5-5 */
524530 #define V4L2_PIX_FMT_ARGB555 v4l2_fourcc('A', 'R', '1', '5') /* 16 ARGB-1-5-5-5 */
include/uapi/linux/virtio_ids.h+2−0
@@ -43,5 +43,7 @@ · 42 unmodified lines
4343 #define VIRTIO_ID_INPUT 18 /* virtio input */
4444 #define VIRTIO_ID_VSOCK 19 /* virtio vsock transport */
4545 #define VIRTIO_ID_CRYPTO 20 /* virtio crypto */
46+#define VIRTIO_ID_IOMMU 23 /* virtio IOMMU */
47+#define VIRTIO_ID_PMEM 27 /* virtio pmem */
4648
4749 #endif /* _LINUX_VIRTIO_IDS_H */
include/uapi/linux/virtio_iommu.h+165−0
@@ -0,0 +1,165 @@
1+/* SPDX-License-Identifier: BSD-3-Clause */
2+/*
3+ * Virtio-iommu definition v0.12
4+ *
5+ * Copyright (C) 2019 Arm Ltd.
6+ */
7+#ifndef _UAPI_LINUX_VIRTIO_IOMMU_H
8+#define _UAPI_LINUX_VIRTIO_IOMMU_H
9+
10+#include <linux/types.h>
11+
12+/* Feature bits */
13+#define VIRTIO_IOMMU_F_INPUT_RANGE 0
14+#define VIRTIO_IOMMU_F_DOMAIN_RANGE 1
15+#define VIRTIO_IOMMU_F_MAP_UNMAP 2
16+#define VIRTIO_IOMMU_F_BYPASS 3
17+#define VIRTIO_IOMMU_F_PROBE 4
18+#define VIRTIO_IOMMU_F_MMIO 5
19+
20+struct virtio_iommu_range_64 {
21+ __le64 start;
22+ __le64 end;
23+};
24+
25+struct virtio_iommu_range_32 {
26+ __le32 start;
27+ __le32 end;
28+};
29+
30+struct virtio_iommu_config {
31+ /* Supported page sizes */
32+ __le64 page_size_mask;
33+ /* Supported IOVA range */
34+ struct virtio_iommu_range_64 input_range;
35+ /* Max domain ID size */
36+ struct virtio_iommu_range_32 domain_range;
37+ /* Probe buffer size */
38+ __le32 probe_size;
39+};
40+
41+/* Request types */
42+#define VIRTIO_IOMMU_T_ATTACH 0x01
43+#define VIRTIO_IOMMU_T_DETACH 0x02
44+#define VIRTIO_IOMMU_T_MAP 0x03
45+#define VIRTIO_IOMMU_T_UNMAP 0x04
46+#define VIRTIO_IOMMU_T_PROBE 0x05
47+
48+/* Status types */
49+#define VIRTIO_IOMMU_S_OK 0x00
50+#define VIRTIO_IOMMU_S_IOERR 0x01
51+#define VIRTIO_IOMMU_S_UNSUPP 0x02
52+#define VIRTIO_IOMMU_S_DEVERR 0x03
53+#define VIRTIO_IOMMU_S_INVAL 0x04
54+#define VIRTIO_IOMMU_S_RANGE 0x05
55+#define VIRTIO_IOMMU_S_NOENT 0x06
56+#define VIRTIO_IOMMU_S_FAULT 0x07
57+#define VIRTIO_IOMMU_S_NOMEM 0x08
58+
59+struct virtio_iommu_req_head {
60+ __u8 type;
61+ __u8 reserved[3];
62+};
63+
64+struct virtio_iommu_req_tail {
65+ __u8 status;
66+ __u8 reserved[3];
67+};
68+
69+struct virtio_iommu_req_attach {
70+ struct virtio_iommu_req_head head;
71+ __le32 domain;
72+ __le32 endpoint;
73+ __u8 reserved[8];
74+ struct virtio_iommu_req_tail tail;
75+};
76+
77+struct virtio_iommu_req_detach {
78+ struct virtio_iommu_req_head head;
79+ __le32 domain;
80+ __le32 endpoint;
81+ __u8 reserved[8];
82+ struct virtio_iommu_req_tail tail;
83+};
84+
85+#define VIRTIO_IOMMU_MAP_F_READ (1 << 0)
86+#define VIRTIO_IOMMU_MAP_F_WRITE (1 << 1)
87+#define VIRTIO_IOMMU_MAP_F_MMIO (1 << 2)
88+
89+#define VIRTIO_IOMMU_MAP_F_MASK (VIRTIO_IOMMU_MAP_F_READ | \
90+ VIRTIO_IOMMU_MAP_F_WRITE | \
91+ VIRTIO_IOMMU_MAP_F_MMIO)
92+
93+struct virtio_iommu_req_map {
94+ struct virtio_iommu_req_head head;
95+ __le32 domain;
96+ __le64 virt_start;
97+ __le64 virt_end;
98+ __le64 phys_start;
99+ __le32 flags;
100+ struct virtio_iommu_req_tail tail;
101+};
102+
103+struct virtio_iommu_req_unmap {
104+ struct virtio_iommu_req_head head;
105+ __le32 domain;
106+ __le64 virt_start;
107+ __le64 virt_end;
108+ __u8 reserved[4];
109+ struct virtio_iommu_req_tail tail;
110+};
111+
112+#define VIRTIO_IOMMU_PROBE_T_NONE 0
113+#define VIRTIO_IOMMU_PROBE_T_RESV_MEM 1
114+
115+#define VIRTIO_IOMMU_PROBE_T_MASK 0xfff
116+
117+struct virtio_iommu_probe_property {
118+ __le16 type;
119+ __le16 length;
120+};
121+
122+#define VIRTIO_IOMMU_RESV_MEM_T_RESERVED 0
123+#define VIRTIO_IOMMU_RESV_MEM_T_MSI 1
124+
125+struct virtio_iommu_probe_resv_mem {
126+ struct virtio_iommu_probe_property head;
127+ __u8 subtype;
128+ __u8 reserved[3];
129+ __le64 start;
130+ __le64 end;
131+};
132+
133+struct virtio_iommu_req_probe {
134+ struct virtio_iommu_req_head head;
135+ __le32 endpoint;
136+ __u8 reserved[64];
137+
138+ __u8 properties[];
139+
140+ /*
141+ * Tail follows the variable-length properties array. No padding,
142+ * property lengths are all aligned on 8 bytes.
143+ */
144+};
145+
146+/* Fault types */
147+#define VIRTIO_IOMMU_FAULT_R_UNKNOWN 0
148+#define VIRTIO_IOMMU_FAULT_R_DOMAIN 1
149+#define VIRTIO_IOMMU_FAULT_R_MAPPING 2
150+
151+#define VIRTIO_IOMMU_FAULT_F_READ (1 << 0)
152+#define VIRTIO_IOMMU_FAULT_F_WRITE (1 << 1)
153+#define VIRTIO_IOMMU_FAULT_F_EXEC (1 << 2)
154+#define VIRTIO_IOMMU_FAULT_F_ADDRESS (1 << 8)
155+
156+struct virtio_iommu_fault {
157+ __u8 reason;
158+ __u8 reserved[3];
159+ __le32 flags;
160+ __le32 endpoint;
161+ __u8 reserved2[4];
162+ __le64 address;
163+};
164+
165+#endif
include/uapi/linux/virtio_pmem.h+34−0
@@ -0,0 +1,34 @@
1+/* SPDX-License-Identifier: (GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause */
2+/*
3+ * Definitions for virtio-pmem devices.
4+ *
5+ * Copyright (C) 2019 Red Hat, Inc.
6+ *
7+ * Author(s): Pankaj Gupta <pagupta@redhat.com>
8+ */
9+
10+#ifndef _UAPI_LINUX_VIRTIO_PMEM_H
11+#define _UAPI_LINUX_VIRTIO_PMEM_H
12+
13+#include <linux/types.h>
14+#include <linux/virtio_ids.h>
15+#include <linux/virtio_config.h>
16+
17+struct virtio_pmem_config {
18+ __u64 start;
19+ __u64 size;
20+};
21+
22+#define VIRTIO_PMEM_REQ_TYPE_FLUSH 0
23+
24+struct virtio_pmem_resp {
25+ /* Host return status corresponding to flush request */
26+ __le32 ret;
27+};
28+
29+struct virtio_pmem_req {
30+ /* command type */
31+ __le32 type;
32+};
33+
34+#endif
include/uapi/linux/vmcore.h+1−1
@@ -1,4 +1,4 @@
1−/* SPDX-License-Identifier: GPL-2.0 */
1+/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
22 #ifndef _UAPI_VMCORE_H
33 #define _UAPI_VMCORE_H
44
include/uapi/linux/wanrouter.h+0−18
@@ -1,18 +0,0 @@
1−/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
2−/*
3− * wanrouter.h Legacy declarations kept around until X25 is removed
4− */
5−
6−#ifndef _UAPI_ROUTER_H
7−#define _UAPI_ROUTER_H
8−
9−/* 'state' defines */
10−enum wan_states
11−{
12− WAN_UNCONFIGURED, /* link/channel is not configured */
13− WAN_DISCONNECTED, /* link/channel is disconnected */
14− WAN_CONNECTING, /* connection is in progress */
15− WAN_CONNECTED /* link/channel is operational */
16−};
17−
18−#endif /* _UAPI_ROUTER_H */
include/uapi/linux/wmi.h+1−4
@@ -1,11 +1,8 @@
1+/* SPDX-License-Identifier: GPL-2.0-only WITH Linux-syscall-note */
12 /*
23 * User API methods for ACPI-WMI mapping driver
34 *
45 * Copyright (C) 2017 Dell, Inc.
5− *
6− * This program is free software; you can redistribute it and/or modify
7− * it under the terms of the GNU General Public License version 2 as
8− * published by the Free Software Foundation.
96 */
107 #ifndef _UAPI_LINUX_WMI_H
118 #define _UAPI_LINUX_WMI_H
include/uapi/misc/fastrpc.h+1−1
@@ -1,4 +1,4 @@
1−/* SPDX-License-Identifier: GPL-2.0 */
1+/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
22
33 #ifndef __QCOM_FASTRPC_H__
44 #define __QCOM_FASTRPC_H__
include/uapi/misc/habanalabs.h+29−1
@@ -45,6 +45,30 @@ enum goya_queue_id { · 44 unmodified lines
4545 GOYA_QUEUE_ID_SIZE
4646 };
4747
48+/*
49+ * Engine Numbering
50+ *
51+ * Used in the "busy_engines_mask" field in `struct hl_info_hw_idle'
52+ */
53+
54+enum goya_engine_id {
55+ GOYA_ENGINE_ID_DMA_0 = 0,
56+ GOYA_ENGINE_ID_DMA_1,
57+ GOYA_ENGINE_ID_DMA_2,
58+ GOYA_ENGINE_ID_DMA_3,
59+ GOYA_ENGINE_ID_DMA_4,
60+ GOYA_ENGINE_ID_MME_0,
61+ GOYA_ENGINE_ID_TPC_0,
62+ GOYA_ENGINE_ID_TPC_1,
63+ GOYA_ENGINE_ID_TPC_2,
64+ GOYA_ENGINE_ID_TPC_3,
65+ GOYA_ENGINE_ID_TPC_4,
66+ GOYA_ENGINE_ID_TPC_5,
67+ GOYA_ENGINE_ID_TPC_6,
68+ GOYA_ENGINE_ID_TPC_7,
69+ GOYA_ENGINE_ID_SIZE
70+};
71+
4872 enum hl_device_status {
4973 HL_DEVICE_STATUS_OPERATIONAL,
5074 HL_DEVICE_STATUS_IN_RESET,
@@ -86,7 +110,11 @@ struct hl_info_dram_usage { · 35 unmodified lines
86110
87111 struct hl_info_hw_idle {
88112 __u32 is_idle;
89− __u32 pad;
113+ /*
114+ * Bitmask of busy engines.
115+ * Bits definition is according to `enum <chip>_enging_id'.
116+ */
117+ __u32 busy_engines_mask;
90118 };
91119
92120 struct hl_info_device_status {
include/uapi/misc/ocxl.h+7−7
@@ -33,23 +33,23 @@ struct ocxl_ioctl_attach { · 32 unmodified lines
3333 };
3434
3535 struct ocxl_ioctl_metadata {
36− __u16 version; // struct version, always backwards compatible
36+ __u16 version; /* struct version, always backwards compatible */
3737
38− // Version 0 fields
38+ /* Version 0 fields */
3939 __u8 afu_version_major;
4040 __u8 afu_version_minor;
41− __u32 pasid; // PASID assigned to the current context
41+ __u32 pasid; /* PASID assigned to the current context */
4242
43− __u64 pp_mmio_size; // Per PASID MMIO size
43+ __u64 pp_mmio_size; /* Per PASID MMIO size */
4444 __u64 global_mmio_size;
4545
46− // End version 0 fields
46+ /* End version 0 fields */
4747
48− __u64 reserved[13]; // Total of 16*u64
48+ __u64 reserved[13]; /* Total of 16*u64 */
4949 };
5050
5151 struct ocxl_ioctl_p9_wait {
52− __u16 thread_id; // The thread ID required to wake this thread
52+ __u16 thread_id; /* The thread ID required to wake this thread */
5353 __u16 reserved1;
5454 __u32 reserved2;
5555 __u64 reserved3[3];
include/uapi/mtd/mtd-abi.h+5−5
@@ -113,11 +113,11 @@ struct mtd_write_req { · 112 unmodified lines
113113 #define MTD_CAP_NVRAM (MTD_WRITEABLE | MTD_BIT_WRITEABLE | MTD_NO_ERASE)
114114
115115 /* Obsolete ECC byte placement modes (used with obsolete MEMGETOOBSEL) */
116−#define MTD_NANDECC_OFF 0 // Switch off ECC (Not recommended)
117−#define MTD_NANDECC_PLACE 1 // Use the given placement in the structure (YAFFS1 legacy mode)
118−#define MTD_NANDECC_AUTOPLACE 2 // Use the default placement scheme
119−#define MTD_NANDECC_PLACEONLY 3 // Use the given placement in the structure (Do not store ecc result on read)
120−#define MTD_NANDECC_AUTOPL_USR 4 // Use the given autoplacement scheme rather than using the default
116+#define MTD_NANDECC_OFF 0 /* Switch off ECC (Not recommended) */
117+#define MTD_NANDECC_PLACE 1 /* Use the given placement in the structure (YAFFS1 legacy mode) */
118+#define MTD_NANDECC_AUTOPLACE 2 /* Use the default placement scheme */
119+#define MTD_NANDECC_PLACEONLY 3 /* Use the given placement in the structure (Do not store ecc result on read) */
120+#define MTD_NANDECC_AUTOPL_USR 4 /* Use the given autoplacement scheme rather than using the default */
121121
122122 /* OTP mode selection */
123123 #define MTD_OTP_OFF 0
include/uapi/rdma/ib_user_cm.h+0−326
@@ -1,326 +0,0 @@
1−/* SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR Linux-OpenIB) */
2−/*
3− * Copyright (c) 2005 Topspin Communications. All rights reserved.
4− * Copyright (c) 2005 Intel Corporation. All rights reserved.
5− *
6− * This software is available to you under a choice of one of two
7− * licenses. You may choose to be licensed under the terms of the GNU
8− * General Public License (GPL) Version 2, available from the file
9− * COPYING in the main directory of this source tree, or the
10− * OpenIB.org BSD license below:
11− *
12− * Redistribution and use in source and binary forms, with or
13− * without modification, are permitted provided that the following
14− * conditions are met:
15− *
16− * - Redistributions of source code must retain the above
17− * copyright notice, this list of conditions and the following
18− * disclaimer.
19− *
20− * - Redistributions in binary form must reproduce the above
21− * copyright notice, this list of conditions and the following
22− * disclaimer in the documentation and/or other materials
23− * provided with the distribution.
24− *
25− * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
26− * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
27− * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
28− * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
29− * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
30− * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
31− * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
32− * SOFTWARE.
33− */
34−
35−#ifndef IB_USER_CM_H
36−#define IB_USER_CM_H
37−
38−#include <linux/types.h>
39−#include <rdma/ib_user_sa.h>
40−
41−#define IB_USER_CM_ABI_VERSION 5
42−
43−enum {
44− IB_USER_CM_CMD_CREATE_ID,
45− IB_USER_CM_CMD_DESTROY_ID,
46− IB_USER_CM_CMD_ATTR_ID,
47−
48− IB_USER_CM_CMD_LISTEN,
49− IB_USER_CM_CMD_NOTIFY,
50−
51− IB_USER_CM_CMD_SEND_REQ,
52− IB_USER_CM_CMD_SEND_REP,
53− IB_USER_CM_CMD_SEND_RTU,
54− IB_USER_CM_CMD_SEND_DREQ,
55− IB_USER_CM_CMD_SEND_DREP,
56− IB_USER_CM_CMD_SEND_REJ,
57− IB_USER_CM_CMD_SEND_MRA,
58− IB_USER_CM_CMD_SEND_LAP,
59− IB_USER_CM_CMD_SEND_APR,
60− IB_USER_CM_CMD_SEND_SIDR_REQ,
61− IB_USER_CM_CMD_SEND_SIDR_REP,
62−
63− IB_USER_CM_CMD_EVENT,
64− IB_USER_CM_CMD_INIT_QP_ATTR,
65−};
66−/*
67− * command ABI structures.
68− */
69−struct ib_ucm_cmd_hdr {
70− __u32 cmd;
71− __u16 in;
72− __u16 out;
73−};
74−
75−struct ib_ucm_create_id {
76− __aligned_u64 uid;
77− __aligned_u64 response;
78−};
79−
80−struct ib_ucm_create_id_resp {
81− __u32 id;
82−};
83−
84−struct ib_ucm_destroy_id {
85− __aligned_u64 response;
86− __u32 id;
87− __u32 reserved;
88−};
89−
90−struct ib_ucm_destroy_id_resp {
91− __u32 events_reported;
92−};
93−
94−struct ib_ucm_attr_id {
95− __aligned_u64 response;
96− __u32 id;
97− __u32 reserved;
98−};
99−
100−struct ib_ucm_attr_id_resp {
101− __be64 service_id;
102− __be64 service_mask;
103− __be32 local_id;
104− __be32 remote_id;
105−};
106−
107−struct ib_ucm_init_qp_attr {
108− __aligned_u64 response;
109− __u32 id;
110− __u32 qp_state;
111−};
112−
113−struct ib_ucm_listen {
114− __be64 service_id;
115− __be64 service_mask;
116− __u32 id;
117− __u32 reserved;
118−};
119−
120−struct ib_ucm_notify {
121− __u32 id;
122− __u32 event;
123−};
124−
125−struct ib_ucm_private_data {
126− __aligned_u64 data;
127− __u32 id;
128− __u8 len;
129− __u8 reserved[3];
130−};
131−
132−struct ib_ucm_req {
133− __u32 id;
134− __u32 qpn;
135− __u32 qp_type;
136− __u32 psn;
137− __be64 sid;
138− __aligned_u64 data;
139− __aligned_u64 primary_path;
140− __aligned_u64 alternate_path;
141− __u8 len;
142− __u8 peer_to_peer;
143− __u8 responder_resources;
144− __u8 initiator_depth;
145− __u8 remote_cm_response_timeout;
146− __u8 flow_control;
147− __u8 local_cm_response_timeout;
148− __u8 retry_count;
149− __u8 rnr_retry_count;
150− __u8 max_cm_retries;
151− __u8 srq;
152− __u8 reserved[5];
153−};
154−
155−struct ib_ucm_rep {
156− __aligned_u64 uid;
157− __aligned_u64 data;
158− __u32 id;
159− __u32 qpn;
160− __u32 psn;
161− __u8 len;
162− __u8 responder_resources;
163− __u8 initiator_depth;
164− __u8 target_ack_delay;
165− __u8 failover_accepted;
166− __u8 flow_control;
167− __u8 rnr_retry_count;
168− __u8 srq;
169− __u8 reserved[4];
170−};
171−
172−struct ib_ucm_info {
173− __u32 id;
174− __u32 status;
175− __aligned_u64 info;
176− __aligned_u64 data;
177− __u8 info_len;
178− __u8 data_len;
179− __u8 reserved[6];
180−};
181−
182−struct ib_ucm_mra {
183− __aligned_u64 data;
184− __u32 id;
185− __u8 len;
186− __u8 timeout;
187− __u8 reserved[2];
188−};
189−
190−struct ib_ucm_lap {
191− __aligned_u64 path;
192− __aligned_u64 data;
193− __u32 id;
194− __u8 len;
195− __u8 reserved[3];
196−};
197−
198−struct ib_ucm_sidr_req {
199− __u32 id;
200− __u32 timeout;
201− __be64 sid;
202− __aligned_u64 data;
203− __aligned_u64 path;
204− __u16 reserved_pkey;
205− __u8 len;
206− __u8 max_cm_retries;
207− __u8 reserved[4];
208−};
209−
210−struct ib_ucm_sidr_rep {
211− __u32 id;
212− __u32 qpn;
213− __u32 qkey;
214− __u32 status;
215− __aligned_u64 info;
216− __aligned_u64 data;
217− __u8 info_len;
218− __u8 data_len;
219− __u8 reserved[6];
220−};
221−/*
222− * event notification ABI structures.
223− */
224−struct ib_ucm_event_get {
225− __aligned_u64 response;
226− __aligned_u64 data;
227− __aligned_u64 info;
228− __u8 data_len;
229− __u8 info_len;
230− __u8 reserved[6];
231−};
232−
233−struct ib_ucm_req_event_resp {
234− struct ib_user_path_rec primary_path;
235− struct ib_user_path_rec alternate_path;
236− __be64 remote_ca_guid;
237− __u32 remote_qkey;
238− __u32 remote_qpn;
239− __u32 qp_type;
240− __u32 starting_psn;
241− __u8 responder_resources;
242− __u8 initiator_depth;
243− __u8 local_cm_response_timeout;
244− __u8 flow_control;
245− __u8 remote_cm_response_timeout;
246− __u8 retry_count;
247− __u8 rnr_retry_count;
248− __u8 srq;
249− __u8 port;
250− __u8 reserved[7];
251−};
252−
253−struct ib_ucm_rep_event_resp {
254− __be64 remote_ca_guid;
255− __u32 remote_qkey;
256− __u32 remote_qpn;
257− __u32 starting_psn;
258− __u8 responder_resources;
259− __u8 initiator_depth;
260− __u8 target_ack_delay;
261− __u8 failover_accepted;
262− __u8 flow_control;
263− __u8 rnr_retry_count;
264− __u8 srq;
265− __u8 reserved[5];
266−};
267−
268−struct ib_ucm_rej_event_resp {
269− __u32 reason;
270− /* ari in ib_ucm_event_get info field. */
271−};
272−
273−struct ib_ucm_mra_event_resp {
274− __u8 timeout;
275− __u8 reserved[3];
276−};
277−
278−struct ib_ucm_lap_event_resp {
279− struct ib_user_path_rec path;
280−};
281−
282−struct ib_ucm_apr_event_resp {
283− __u32 status;
284− /* apr info in ib_ucm_event_get info field. */
285−};
286−
287−struct ib_ucm_sidr_req_event_resp {
288− __u16 pkey;
289− __u8 port;
290− __u8 reserved;
291−};
292−
293−struct ib_ucm_sidr_rep_event_resp {
294− __u32 status;
295− __u32 qkey;
296− __u32 qpn;
297− /* info in ib_ucm_event_get info field. */
298−};
299−
300−#define IB_UCM_PRES_DATA 0x01
301−#define IB_UCM_PRES_INFO 0x02
302−#define IB_UCM_PRES_PRIMARY 0x04
303−#define IB_UCM_PRES_ALTERNATE 0x08
304−
305−struct ib_ucm_event_resp {
306− __aligned_u64 uid;
307− __u32 id;
308− __u32 event;
309− __u32 present;
310− __u32 reserved;
311− union {
312− struct ib_ucm_req_event_resp req_resp;
313− struct ib_ucm_rep_event_resp rep_resp;
314− struct ib_ucm_rej_event_resp rej_resp;
315− struct ib_ucm_mra_event_resp mra_resp;
316− struct ib_ucm_lap_event_resp lap_resp;
317− struct ib_ucm_apr_event_resp apr_resp;
318−
319− struct ib_ucm_sidr_req_event_resp sidr_req_resp;
320− struct ib_ucm_sidr_rep_event_resp sidr_rep_resp;
321−
322− __u32 send_status;
323− } u;
324−};
325−
326−#endif /* IB_USER_CM_H */
include/uapi/rdma/mlx5_user_ioctl_cmds.h+19−0
@@ -51,6 +51,7 @@ enum mlx5_ib_devx_methods { · 50 unmodified lines
5151 MLX5_IB_METHOD_DEVX_OTHER = (1U << UVERBS_ID_NS_SHIFT),
5252 MLX5_IB_METHOD_DEVX_QUERY_UAR,
5353 MLX5_IB_METHOD_DEVX_QUERY_EQN,
54+ MLX5_IB_METHOD_DEVX_SUBSCRIBE_EVENT,
5455 };
5556
5657 enum mlx5_ib_devx_other_attrs {
@@ -93,6 +94,14 @@ enum mlx5_ib_devx_obj_query_async_attrs { · 36 unmodified lines
9394 MLX5_IB_ATTR_DEVX_OBJ_QUERY_ASYNC_OUT_LEN,
9495 };
9596
97+enum mlx5_ib_devx_subscribe_event_attrs {
98+ MLX5_IB_ATTR_DEVX_SUBSCRIBE_EVENT_FD_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
99+ MLX5_IB_ATTR_DEVX_SUBSCRIBE_EVENT_OBJ_HANDLE,
100+ MLX5_IB_ATTR_DEVX_SUBSCRIBE_EVENT_TYPE_NUM_LIST,
101+ MLX5_IB_ATTR_DEVX_SUBSCRIBE_EVENT_FD_NUM,
102+ MLX5_IB_ATTR_DEVX_SUBSCRIBE_EVENT_COOKIE,
103+};
104+
96105 enum mlx5_ib_devx_query_eqn_attrs {
97106 MLX5_IB_ATTR_DEVX_QUERY_EQN_USER_VEC = (1U << UVERBS_ID_NS_SHIFT),
98107 MLX5_IB_ATTR_DEVX_QUERY_EQN_DEV_EQN,
@@ -127,16 +136,26 @@ enum mlx5_ib_devx_async_cmd_fd_alloc_attrs { · 28 unmodified lines
127136 MLX5_IB_ATTR_DEVX_ASYNC_CMD_FD_ALLOC_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
128137 };
129138
139+enum mlx5_ib_devx_async_event_fd_alloc_attrs {
140+ MLX5_IB_ATTR_DEVX_ASYNC_EVENT_FD_ALLOC_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
141+ MLX5_IB_ATTR_DEVX_ASYNC_EVENT_FD_ALLOC_FLAGS,
142+};
143+
130144 enum mlx5_ib_devx_async_cmd_fd_methods {
131145 MLX5_IB_METHOD_DEVX_ASYNC_CMD_FD_ALLOC = (1U << UVERBS_ID_NS_SHIFT),
132146 };
133147
148+enum mlx5_ib_devx_async_event_fd_methods {
149+ MLX5_IB_METHOD_DEVX_ASYNC_EVENT_FD_ALLOC = (1U << UVERBS_ID_NS_SHIFT),
150+};
151+
134152 enum mlx5_ib_objects {
135153 MLX5_IB_OBJECT_DEVX = (1U << UVERBS_ID_NS_SHIFT),
136154 MLX5_IB_OBJECT_DEVX_OBJ,
137155 MLX5_IB_OBJECT_DEVX_UMEM,
138156 MLX5_IB_OBJECT_FLOW_MATCHER,
139157 MLX5_IB_OBJECT_DEVX_ASYNC_CMD_FD,
158+ MLX5_IB_OBJECT_DEVX_ASYNC_EVENT_FD,
140159 };
141160
142161 enum mlx5_ib_flow_matcher_create_attrs {
include/uapi/rdma/mlx5_user_ioctl_verbs.h+9−0
@@ -63,5 +63,14 @@ enum mlx5_ib_uapi_dm_type { · 62 unmodified lines
6363 MLX5_IB_UAPI_DM_TYPE_HEADER_MODIFY_SW_ICM,
6464 };
6565
66+enum mlx5_ib_uapi_devx_create_event_channel_flags {
67+ MLX5_IB_UAPI_DEVX_CR_EV_CH_FLAGS_OMIT_DATA = 1 << 0,
68+};
69+
70+struct mlx5_ib_uapi_devx_async_event_hdr {
71+ __aligned_u64 cookie;
72+ __u8 out_data[];
73+};
74+
6675 #endif
6776
include/uapi/rdma/rdma_netlink.h+82−4
@@ -147,6 +147,18 @@ enum { · 146 unmodified lines
147147 IWPM_NLA_HELLO_MAX
148148 };
149149
150+/* For RDMA_NLDEV_ATTR_DEV_NODE_TYPE */
151+enum {
152+ /* IB values map to NodeInfo:NodeType. */
153+ RDMA_NODE_IB_CA = 1,
154+ RDMA_NODE_IB_SWITCH,
155+ RDMA_NODE_IB_ROUTER,
156+ RDMA_NODE_RNIC,
157+ RDMA_NODE_USNIC,
158+ RDMA_NODE_USNIC_UDP,
159+ RDMA_NODE_UNSPECIFIED,
160+};
161+
150162 /*
151163 * Local service operations:
152164 * RESOLVE - The client requests the local service to resolve a path.
@@ -267,11 +279,15 @@ enum rdma_nldev_command { · 114 unmodified lines
267279
268280 RDMA_NLDEV_CMD_RES_PD_GET, /* can dump */
269281
270− RDMA_NLDEV_NUM_OPS
271−};
282+ RDMA_NLDEV_CMD_GET_CHARDEV,
272283
273−enum {
274− RDMA_NLDEV_ATTR_ENTRY_STRLEN = 16,
284+ RDMA_NLDEV_CMD_STAT_SET,
285+
286+ RDMA_NLDEV_CMD_STAT_GET, /* can dump */
287+
288+ RDMA_NLDEV_CMD_STAT_DEL,
289+
290+ RDMA_NLDEV_NUM_OPS
275291 };
276292
277293 enum rdma_nldev_print_type {
@@ -478,10 +494,72 @@ enum rdma_nldev_attr { · 200 unmodified lines
478494 * File descriptor handle of the net namespace object
479495 */
480496 RDMA_NLDEV_NET_NS_FD, /* u32 */
497+ /*
498+ * Information about a chardev.
499+ * CHARDEV_TYPE is the name of the chardev ABI (ie uverbs, umad, etc)
500+ * CHARDEV_ABI signals the ABI revision (historical)
501+ * CHARDEV_NAME is the kernel name for the /dev/ file (no directory)
502+ * CHARDEV is the 64 bit dev_t for the inode
503+ */
504+ RDMA_NLDEV_ATTR_CHARDEV_TYPE, /* string */
505+ RDMA_NLDEV_ATTR_CHARDEV_NAME, /* string */
506+ RDMA_NLDEV_ATTR_CHARDEV_ABI, /* u64 */
507+ RDMA_NLDEV_ATTR_CHARDEV, /* u64 */
508+ RDMA_NLDEV_ATTR_UVERBS_DRIVER_ID, /* u64 */
509+ /*
510+ * Counter-specific attributes.
511+ */
512+ RDMA_NLDEV_ATTR_STAT_MODE, /* u32 */
513+ RDMA_NLDEV_ATTR_STAT_RES, /* u32 */
514+ RDMA_NLDEV_ATTR_STAT_AUTO_MODE_MASK, /* u32 */
515+ RDMA_NLDEV_ATTR_STAT_COUNTER, /* nested table */
516+ RDMA_NLDEV_ATTR_STAT_COUNTER_ENTRY, /* nested table */
517+ RDMA_NLDEV_ATTR_STAT_COUNTER_ID, /* u32 */
518+ RDMA_NLDEV_ATTR_STAT_HWCOUNTERS, /* nested table */
519+ RDMA_NLDEV_ATTR_STAT_HWCOUNTER_ENTRY, /* nested table */
520+ RDMA_NLDEV_ATTR_STAT_HWCOUNTER_ENTRY_NAME, /* string */
521+ RDMA_NLDEV_ATTR_STAT_HWCOUNTER_ENTRY_VALUE, /* u64 */
522+
523+ /*
524+ * CQ adaptive moderatio (DIM)
525+ */
526+ RDMA_NLDEV_ATTR_DEV_DIM, /* u8 */
481527
482528 /*
483529 * Always the end
484530 */
485531 RDMA_NLDEV_ATTR_MAX
486532 };
533+
534+/*
535+ * Supported counter bind modes. All modes are mutual-exclusive.
536+ */
537+enum rdma_nl_counter_mode {
538+ RDMA_COUNTER_MODE_NONE,
539+
540+ /*
541+ * A qp is bound with a counter automatically during initialization
542+ * based on the auto mode (e.g., qp type, ...)
543+ */
544+ RDMA_COUNTER_MODE_AUTO,
545+
546+ /*
547+ * Which qp are bound with which counter is explicitly specified
548+ * by the user
549+ */
550+ RDMA_COUNTER_MODE_MANUAL,
551+
552+ /*
553+ * Always the end
554+ */
555+ RDMA_COUNTER_MODE_MAX,
556+};
557+
558+/*
559+ * Supported criteria in counter auto mode.
560+ * Currently only "qp type" is supported
561+ */
562+enum rdma_nl_counter_mask {
563+ RDMA_COUNTER_MASK_QP_TYPE = 1,
564+};
487565 #endif /* _UAPI_RDMA_NETLINK_H */
include/uapi/rdma/rdma_user_ioctl_cmds.h+2−1
@@ -36,7 +36,7 @@ · 35 unmodified lines
3636 #include <linux/types.h>
3737 #include <linux/ioctl.h>
3838
39−/* Documentation/ioctl/ioctl-number.txt */
39+/* Documentation/ioctl/ioctl-number.rst */
4040 #define RDMA_IOCTL_MAGIC 0x1b
4141 #define RDMA_VERBS_IOCTL \
4242 _IOWR(RDMA_IOCTL_MAGIC, 1, struct ib_uverbs_ioctl_hdr)
@@ -103,6 +103,7 @@ enum rdma_driver_id { · 60 unmodified lines
103103 RDMA_DRIVER_HFI1,
104104 RDMA_DRIVER_QIB,
105105 RDMA_DRIVER_EFA,
106+ RDMA_DRIVER_SIW,
106107 };
107108
108109 #endif
include/uapi/rdma/rvt-abi.h+66−0
@@ -0,0 +1,66 @@
1+/* SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause) */
2+
3+/*
4+ * This file contains defines, structures, etc. that are used
5+ * to communicate between kernel and user code.
6+ */
7+
8+#ifndef RVT_ABI_USER_H
9+#define RVT_ABI_USER_H
10+
11+#include <linux/types.h>
12+#include <rdma/ib_user_verbs.h>
13+#ifndef RDMA_ATOMIC_UAPI
14+#define RDMA_ATOMIC_UAPI(_type, _name) struct{ _type val; } _name
15+#endif
16+
17+struct rvt_wqe_sge {
18+ __aligned_u64 addr;
19+ __u32 length;
20+ __u32 lkey;
21+};
22+
23+/*
24+ * This structure is used to contain the head pointer, tail pointer,
25+ * and completion queue entries as a single memory allocation so
26+ * it can be mmap'ed into user space.
27+ */
28+struct rvt_cq_wc {
29+ /* index of next entry to fill */
30+ RDMA_ATOMIC_UAPI(__u32, head);
31+ /* index of next ib_poll_cq() entry */
32+ RDMA_ATOMIC_UAPI(__u32, tail);
33+
34+ /* these are actually size ibcq.cqe + 1 */
35+ struct ib_uverbs_wc uqueue[];
36+};
37+
38+/*
39+ * Receive work request queue entry.
40+ * The size of the sg_list is determined when the QP (or SRQ) is created
41+ * and stored in qp->r_rq.max_sge (or srq->rq.max_sge).
42+ */
43+struct rvt_rwqe {
44+ __u64 wr_id;
45+ __u8 num_sge;
46+ __u8 padding[7];
47+ struct rvt_wqe_sge sg_list[];
48+};
49+
50+/*
51+ * This structure is used to contain the head pointer, tail pointer,
52+ * and receive work queue entries as a single memory allocation so
53+ * it can be mmap'ed into user space.
54+ * Note that the wq array elements are variable size so you can't
55+ * just index into the array to get the N'th element;
56+ * use get_rwqe_ptr() for user space and rvt_get_rwqe_ptr()
57+ * for kernel space.
58+ */
59+struct rvt_rwq {
60+ /* new work requests posted to the head */
61+ RDMA_ATOMIC_UAPI(__u32, head);
62+ /* receives pull requests from here. */
63+ RDMA_ATOMIC_UAPI(__u32, tail);
64+ struct rvt_rwqe wq[];
65+};
66+#endif /* RVT_ABI_USER_H */
include/uapi/rdma/siw-abi.h+185−0
@@ -0,0 +1,185 @@
1+/* SPDX-License-Identifier: (GPL-2.0 WITH Linux-syscall-note) or BSD-3-Clause */
2+
3+/* Authors: Bernard Metzler <bmt@zurich.ibm.com> */
4+/* Copyright (c) 2008-2019, IBM Corporation */
5+
6+#ifndef _SIW_USER_H
7+#define _SIW_USER_H
8+
9+#include <linux/types.h>
10+
11+#define SIW_NODE_DESC_COMMON "Software iWARP stack"
12+#define SIW_ABI_VERSION 1
13+#define SIW_MAX_SGE 6
14+#define SIW_UOBJ_MAX_KEY 0x08FFFF
15+#define SIW_INVAL_UOBJ_KEY (SIW_UOBJ_MAX_KEY + 1)
16+
17+struct siw_uresp_create_cq {
18+ __u32 cq_id;
19+ __u32 num_cqe;
20+ __aligned_u64 cq_key;
21+};
22+
23+struct siw_uresp_create_qp {
24+ __u32 qp_id;
25+ __u32 num_sqe;
26+ __u32 num_rqe;
27+ __u32 pad;
28+ __aligned_u64 sq_key;
29+ __aligned_u64 rq_key;
30+};
31+
32+struct siw_ureq_reg_mr {
33+ __u8 stag_key;
34+ __u8 reserved[3];
35+ __u32 pad;
36+};
37+
38+struct siw_uresp_reg_mr {
39+ __u32 stag;
40+ __u32 pad;
41+};
42+
43+struct siw_uresp_create_srq {
44+ __u32 num_rqe;
45+ __u32 pad;
46+ __aligned_u64 srq_key;
47+};
48+
49+struct siw_uresp_alloc_ctx {
50+ __u32 dev_id;
51+ __u32 pad;
52+};
53+
54+enum siw_opcode {
55+ SIW_OP_WRITE,
56+ SIW_OP_READ,
57+ SIW_OP_READ_LOCAL_INV,
58+ SIW_OP_SEND,
59+ SIW_OP_SEND_WITH_IMM,
60+ SIW_OP_SEND_REMOTE_INV,
61+
62+ /* Unsupported */
63+ SIW_OP_FETCH_AND_ADD,
64+ SIW_OP_COMP_AND_SWAP,
65+
66+ SIW_OP_RECEIVE,
67+ /* provider internal SQE */
68+ SIW_OP_READ_RESPONSE,
69+ /*
70+ * below opcodes valid for
71+ * in-kernel clients only
72+ */
73+ SIW_OP_INVAL_STAG,
74+ SIW_OP_REG_MR,
75+ SIW_NUM_OPCODES
76+};
77+
78+/* Keep it same as ibv_sge to allow for memcpy */
79+struct siw_sge {
80+ __aligned_u64 laddr;
81+ __u32 length;
82+ __u32 lkey;
83+};
84+
85+/*
86+ * Inline data are kept within the work request itself occupying
87+ * the space of sge[1] .. sge[n]. Therefore, inline data cannot be
88+ * supported if SIW_MAX_SGE is below 2 elements.
89+ */
90+#define SIW_MAX_INLINE (sizeof(struct siw_sge) * (SIW_MAX_SGE - 1))
91+
92+#if SIW_MAX_SGE < 2
93+#error "SIW_MAX_SGE must be at least 2"
94+#endif
95+
96+enum siw_wqe_flags {
97+ SIW_WQE_VALID = 1,
98+ SIW_WQE_INLINE = (1 << 1),
99+ SIW_WQE_SIGNALLED = (1 << 2),
100+ SIW_WQE_SOLICITED = (1 << 3),
101+ SIW_WQE_READ_FENCE = (1 << 4),
102+ SIW_WQE_REM_INVAL = (1 << 5),
103+ SIW_WQE_COMPLETED = (1 << 6)
104+};
105+
106+/* Send Queue Element */
107+struct siw_sqe {
108+ __aligned_u64 id;
109+ __u16 flags;
110+ __u8 num_sge;
111+ /* Contains enum siw_opcode values */
112+ __u8 opcode;
113+ __u32 rkey;
114+ union {
115+ __aligned_u64 raddr;
116+ __aligned_u64 base_mr;
117+ };
118+ union {
119+ struct siw_sge sge[SIW_MAX_SGE];
120+ __aligned_u64 access;
121+ };
122+};
123+
124+/* Receive Queue Element */
125+struct siw_rqe {
126+ __aligned_u64 id;
127+ __u16 flags;
128+ __u8 num_sge;
129+ /*
130+ * only used by kernel driver,
131+ * ignored if set by user
132+ */
133+ __u8 opcode;
134+ __u32 unused;
135+ struct siw_sge sge[SIW_MAX_SGE];
136+};
137+
138+enum siw_notify_flags {
139+ SIW_NOTIFY_NOT = (0),
140+ SIW_NOTIFY_SOLICITED = (1 << 0),
141+ SIW_NOTIFY_NEXT_COMPLETION = (1 << 1),
142+ SIW_NOTIFY_MISSED_EVENTS = (1 << 2),
143+ SIW_NOTIFY_ALL = SIW_NOTIFY_SOLICITED | SIW_NOTIFY_NEXT_COMPLETION |
144+ SIW_NOTIFY_MISSED_EVENTS
145+};
146+
147+enum siw_wc_status {
148+ SIW_WC_SUCCESS,
149+ SIW_WC_LOC_LEN_ERR,
150+ SIW_WC_LOC_PROT_ERR,
151+ SIW_WC_LOC_QP_OP_ERR,
152+ SIW_WC_WR_FLUSH_ERR,
153+ SIW_WC_BAD_RESP_ERR,
154+ SIW_WC_LOC_ACCESS_ERR,
155+ SIW_WC_REM_ACCESS_ERR,
156+ SIW_WC_REM_INV_REQ_ERR,
157+ SIW_WC_GENERAL_ERR,
158+ SIW_NUM_WC_STATUS
159+};
160+
161+struct siw_cqe {
162+ __aligned_u64 id;
163+ __u8 flags;
164+ __u8 opcode;
165+ __u16 status;
166+ __u32 bytes;
167+ union {
168+ __aligned_u64 imm_data;
169+ __u32 inval_stag;
170+ };
171+ /* QP number or QP pointer */
172+ union {
173+ struct ib_qp *base_qp;
174+ __aligned_u64 qp_id;
175+ };
176+};
177+
178+/*
179+ * Shared structure between user and kernel
180+ * to control CQ arming.
181+ */
182+struct siw_cq_ctrl {
183+ __aligned_u64 notify;
184+};
185+#endif
include/uapi/scsi/fc/fc_els.h+0−13
@@ -2,19 +2,6 @@ · 1 unmodified line
22 /*
33 * Copyright(c) 2007 Intel Corporation. All rights reserved.
44 *
5− * This program is free software; you can redistribute it and/or modify it
6− * under the terms and conditions of the GNU General Public License,
7− * version 2, as published by the Free Software Foundation.
8− *
9− * This program is distributed in the hope it will be useful, but WITHOUT
10− * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11− * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
12− * more details.
13− *
14− * You should have received a copy of the GNU General Public License along with
15− * this program; if not, write to the Free Software Foundation, Inc.,
16− * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
17− *
185 * Maintained at www.Open-FCoE.org
196 */
207
include/uapi/scsi/fc/fc_fs.h+0−13
@@ -2,19 +2,6 @@ · 1 unmodified line
22 /*
33 * Copyright(c) 2007 Intel Corporation. All rights reserved.
44 *
5− * This program is free software; you can redistribute it and/or modify it
6− * under the terms and conditions of the GNU General Public License,
7− * version 2, as published by the Free Software Foundation.
8− *
9− * This program is distributed in the hope it will be useful, but WITHOUT
10− * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11− * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
12− * more details.
13− *
14− * You should have received a copy of the GNU General Public License along with
15− * this program; if not, write to the Free Software Foundation, Inc.,
16− * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
17− *
185 * Maintained at www.Open-FCoE.org
196 */
207
include/uapi/scsi/fc/fc_gs.h+0−13
@@ -2,19 +2,6 @@ · 1 unmodified line
22 /*
33 * Copyright(c) 2007 Intel Corporation. All rights reserved.
44 *
5− * This program is free software; you can redistribute it and/or modify it
6− * under the terms and conditions of the GNU General Public License,
7− * version 2, as published by the Free Software Foundation.
8− *
9− * This program is distributed in the hope it will be useful, but WITHOUT
10− * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11− * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
12− * more details.
13− *
14− * You should have received a copy of the GNU General Public License along with
15− * this program; if not, write to the Free Software Foundation, Inc.,
16− * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
17− *
185 * Maintained at www.Open-FCoE.org
196 */
207
include/uapi/scsi/fc/fc_ns.h+0−13
@@ -2,19 +2,6 @@ · 1 unmodified line
22 /*
33 * Copyright(c) 2007 Intel Corporation. All rights reserved.
44 *
5− * This program is free software; you can redistribute it and/or modify it
6− * under the terms and conditions of the GNU General Public License,
7− * version 2, as published by the Free Software Foundation.
8− *
9− * This program is distributed in the hope it will be useful, but WITHOUT
10− * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11− * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
12− * more details.
13− *
14− * You should have received a copy of the GNU General Public License along with
15− * this program; if not, write to the Free Software Foundation, Inc.,
16− * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
17− *
185 * Maintained at www.Open-FCoE.org
196 */
207
include/uapi/scsi/scsi_bsg_fc.h+0−15
@@ -3,21 +3,6 @@ · 2 unmodified lines
33 * FC Transport BSG Interface
44 *
55 * Copyright (C) 2008 James Smart, Emulex Corporation
6− *
7− * This program is free software; you can redistribute it and/or modify
8− * it under the terms of the GNU General Public License as published by
9− * the Free Software Foundation; either version 2 of the License, or
10− * (at your option) any later version.
11− *
12− * This program is distributed in the hope that it will be useful,
13− * but WITHOUT ANY WARRANTY; without even the implied warranty of
14− * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15− * GNU General Public License for more details.
16− *
17− * You should have received a copy of the GNU General Public License
18− * along with this program; if not, write to the Free Software
19− * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20− *
216 */
227
238 #ifndef SCSI_BSG_FC_H
include/uapi/scsi/scsi_bsg_ufs.h+1−1
@@ -1,4 +1,4 @@
1−/* SPDX-License-Identifier: GPL-2.0 */
1+/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
22 /*
33 * UFS Transport SGIO v4 BSG Message Support
44 *
include/uapi/scsi/scsi_netlink.h+0−15
@@ -4,21 +4,6 @@ · 3 unmodified lines
44 * Used for the posting of outbound SCSI transport events
55 *
66 * Copyright (C) 2006 James Smart, Emulex Corporation
7− *
8− * This program is free software; you can redistribute it and/or modify
9− * it under the terms of the GNU General Public License as published by
10− * the Free Software Foundation; either version 2 of the License, or
11− * (at your option) any later version.
12− *
13− * This program is distributed in the hope that it will be useful,
14− * but WITHOUT ANY WARRANTY; without even the implied warranty of
15− * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16− * GNU General Public License for more details.
17− *
18− * You should have received a copy of the GNU General Public License
19− * along with this program; if not, write to the Free Software
20− * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
21− *
227 */
238 #ifndef SCSI_NETLINK_H
249 #define SCSI_NETLINK_H
include/uapi/scsi/scsi_netlink_fc.h+0−15
@@ -3,21 +3,6 @@ · 2 unmodified lines
33 * FC Transport Netlink Interface
44 *
55 * Copyright (C) 2006 James Smart, Emulex Corporation
6− *
7− * This program is free software; you can redistribute it and/or modify
8− * it under the terms of the GNU General Public License as published by
9− * the Free Software Foundation; either version 2 of the License, or
10− * (at your option) any later version.
11− *
12− * This program is distributed in the hope that it will be useful,
13− * but WITHOUT ANY WARRANTY; without even the implied warranty of
14− * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15− * GNU General Public License for more details.
16− *
17− * You should have received a copy of the GNU General Public License
18− * along with this program; if not, write to the Free Software
19− * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20− *
216 */
227 #ifndef SCSI_NETLINK_FC_H
238 #define SCSI_NETLINK_FC_H
include/uapi/sound/skl-tplg-interface.h+1−1
@@ -1,4 +1,4 @@
1−/* SPDX-License-Identifier: GPL-2.0 */
1+/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
22 /*
33 * skl-tplg-interface.h - Intel DSP FW private data interface
44 *
include/uapi/sound/sof/abi.h+1−1
@@ -26,7 +26,7 @@ · 25 unmodified lines
2626
2727 /* SOF ABI version major, minor and patch numbers */
2828 #define SOF_ABI_MAJOR 3
29−#define SOF_ABI_MINOR 6
29+#define SOF_ABI_MINOR 8
3030 #define SOF_ABI_PATCH 0
3131
3232 /* SOF ABI version number. Format within 32bit word is MMmmmppp */
include/uapi/sound/sof/eq.h+0−172
@@ -1,172 +0,0 @@
1−/* SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause) */
2−/*
3− * This file is provided under a dual BSD/GPLv2 license. When using or
4− * redistributing this file, you may do so under either license.
5− *
6− * Copyright(c) 2018 Intel Corporation. All rights reserved.
7− */
8−
9−#ifndef __INCLUDE_UAPI_SOUND_SOF_USER_EQ_H__
10−#define __INCLUDE_UAPI_SOUND_SOF_USER_EQ_H__
11−
12−/* FIR EQ type */
13−
14−#define SOF_EQ_FIR_IDX_SWITCH 0
15−
16−#define SOF_EQ_FIR_MAX_SIZE 4096 /* Max size allowed for coef data in bytes */
17−
18−#define SOF_EQ_FIR_MAX_LENGTH 192 /* Max length for individual filter */
19−
20−#define SOF_EQ_FIR_MAX_RESPONSES 8 /* A blob can define max 8 FIR EQs */
21−
22−/*
23− * eq_fir_configuration data structure contains this information
24− * uint32_t size
25− * This is the number of bytes need to store the received EQ
26− * configuration.
27− * uint16_t channels_in_config
28− * This describes the number of channels in this EQ config data. It
29− * can be different from PLATFORM_MAX_CHANNELS.
30− * uint16_t number_of_responses
31− * 0=no responses, 1=one response defined, 2=two responses defined, etc.
32− * int16_t data[]
33− * assign_response[channels_in_config]
34− * 0 = use first response, 1 = use 2nd response, etc.
35− * E.g. {0, 0, 0, 0, 1, 1, 1, 1} would apply to channels 0-3 the
36− * same first defined response and for to channels 4-7 the second.
37− * coef_data[]
38− * Repeated data
39− * { filter_length, output_shift, h[] }
40− * for every EQ response defined where vector h has filter_length
41− * number of coefficients. Coefficients in h[] are in Q1.15 format.
42− * E.g. 16384 (Q1.15) = 0.5. The shifts are number of right shifts.
43− *
44− * NOTE: The channels_in_config must be even to have coef_data aligned to
45− * 32 bit word in RAM. Therefore a mono EQ assign must be duplicated to 2ch
46− * even if it would never used. Similarly a 5ch EQ assign must be increased
47− * to 6ch. EQ init will return an error if this is not met.
48− *
49− * NOTE: The filter_length must be multiple of four. Therefore the filter must
50− * be padded from the end with zeros have this condition met.
51− */
52−
53−struct sof_eq_fir_config {
54− uint32_t size;
55− uint16_t channels_in_config;
56− uint16_t number_of_responses;
57−
58− /* reserved */
59− uint32_t reserved[4];
60−
61− int16_t data[];
62−} __packed;
63−
64−struct sof_eq_fir_coef_data {
65− int16_t length; /* Number of FIR taps */
66− int16_t out_shift; /* Amount of right shifts at output */
67−
68− /* reserved */
69− uint32_t reserved[4];
70−
71− int16_t coef[]; /* FIR coefficients */
72−} __packed;
73−
74−/* In the struct above there's two 16 bit words (length, shift) and four
75− * reserved 32 bit words before the actual FIR coefficients. This information
76− * is used in parsing of the configuration blob.
77− */
78−#define SOF_EQ_FIR_COEF_NHEADER \
79− (sizeof(struct sof_eq_fir_coef_data) / sizeof(int16_t))
80−
81−/* IIR EQ type */
82−
83−#define SOF_EQ_IIR_IDX_SWITCH 0
84−
85−#define SOF_EQ_IIR_MAX_SIZE 1024 /* Max size allowed for coef data in bytes */
86−
87−#define SOF_EQ_IIR_MAX_RESPONSES 8 /* A blob can define max 8 IIR EQs */
88−
89−/* eq_iir_configuration
90− * uint32_t channels_in_config
91− * This describes the number of channels in this EQ config data. It
92− * can be different from PLATFORM_MAX_CHANNELS.
93− * uint32_t number_of_responses_defined
94− * 0=no responses, 1=one response defined, 2=two responses defined, etc.
95− * int32_t data[]
96− * Data consist of two parts. First is the response assign vector that
97− * has length of channels_in_config. The latter part is coefficient
98− * data.
99− * uint32_t assign_response[channels_in_config]
100− * -1 = not defined, 0 = use first response, 1 = use 2nd, etc.
101− * E.g. {0, 0, 0, 0, -1, -1, -1, -1} would apply to channels 0-3 the
102− * same first defined response and leave channels 4-7 unequalized.
103− * coefficient_data[]
104− * <1st EQ>
105− * uint32_t num_biquads
106− * uint32_t num_biquads_in_series
107− * <1st biquad>
108− * int32_t coef_a2 Q2.30 format
109− * int32_t coef_a1 Q2.30 format
110− * int32_t coef_b2 Q2.30 format
111− * int32_t coef_b1 Q2.30 format
112− * int32_t coef_b0 Q2.30 format
113− * int32_t output_shift number of shifts right, shift left is negative
114− * int32_t output_gain Q2.14 format
115− * <2nd biquad>
116− * ...
117− * <2nd EQ>
118− *
119− * Note: A flat response biquad can be made with a section set to
120− * b0 = 1.0, gain = 1.0, and other parameters set to 0
121− * {0, 0, 0, 0, 1073741824, 0, 16484}
122− */
123−
124−struct sof_eq_iir_config {
125− uint32_t size;
126− uint32_t channels_in_config;
127− uint32_t number_of_responses;
128−
129− /* reserved */
130− uint32_t reserved[4];
131−
132− int32_t data[]; /* eq_assign[channels], eq 0, eq 1, ... */
133−} __packed;
134−
135−struct sof_eq_iir_header_df2t {
136− uint32_t num_sections;
137− uint32_t num_sections_in_series;
138−
139− /* reserved */
140− uint32_t reserved[4];
141−
142− int32_t biquads[]; /* Repeated biquad coefficients */
143−} __packed;
144−
145−struct sof_eq_iir_biquad_df2t {
146− int32_t a2; /* Q2.30 */
147− int32_t a1; /* Q2.30 */
148− int32_t b2; /* Q2.30 */
149− int32_t b1; /* Q2.30 */
150− int32_t b0; /* Q2.30 */
151− int32_t output_shift; /* Number of right shifts */
152− int32_t output_gain; /* Q2.14 */
153−} __packed;
154−
155−/* A full 22th order equalizer with 11 biquads cover octave bands 1-11 in
156− * in the 0 - 20 kHz bandwidth.
157− */
158−#define SOF_EQ_IIR_DF2T_BIQUADS_MAX 11
159−
160−/* The number of int32_t words in sof_eq_iir_header_df2t:
161− * num_sections, num_sections_in_series, reserved[4]
162− */
163−#define SOF_EQ_IIR_NHEADER_DF2T \
164− (sizeof(struct sof_eq_iir_header_df2t) / sizeof(int32_t))
165−
166−/* The number of int32_t words in sof_eq_iir_biquad_df2t:
167− * a2, a1, b2, b1, b0, output_shift, output_gain
168− */
169−#define SOF_EQ_IIR_NBIQUAD_DF2T \
170− (sizeof(struct sof_eq_iir_biquad_df2t) / sizeof(int32_t))
171−
172−#endif
include/uapi/sound/sof/manifest.h+0−188
@@ -1,188 +0,0 @@
1−/* SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause) */
2−/*
3− * This file is provided under a dual BSD/GPLv2 license. When using or
4− * redistributing this file, you may do so under either license.
5− *
6− * Copyright(c) 2018 Intel Corporation. All rights reserved.
7− */
8−
9−#ifndef __INCLUDE_UAPI_SOUND_SOF_USER_MANIFEST_H__
10−#define __INCLUDE_UAPI_SOUND_SOF_USER_MANIFEST_H__
11−
12−/* start offset for base FW module */
13−#define SOF_MAN_ELF_TEXT_OFFSET 0x2000
14−
15−/* FW Extended Manifest Header id = $AE1 */
16−#define SOF_MAN_EXT_HEADER_MAGIC 0x31454124
17−
18−/* module type load type */
19−#define SOF_MAN_MOD_TYPE_BUILTIN 0
20−#define SOF_MAN_MOD_TYPE_MODULE 1
21−
22−struct sof_man_module_type {
23− uint32_t load_type:4; /* SOF_MAN_MOD_TYPE_ */
24− uint32_t auto_start:1;
25− uint32_t domain_ll:1;
26− uint32_t domain_dp:1;
27− uint32_t rsvd_:25;
28−};
29−
30−/* segment flags.type */
31−#define SOF_MAN_SEGMENT_TEXT 0
32−#define SOF_MAN_SEGMENT_RODATA 1
33−#define SOF_MAN_SEGMENT_DATA 1
34−#define SOF_MAN_SEGMENT_BSS 2
35−#define SOF_MAN_SEGMENT_EMPTY 15
36−
37−union sof_man_segment_flags {
38− uint32_t ul;
39− struct {
40− uint32_t contents:1;
41− uint32_t alloc:1;
42− uint32_t load:1;
43− uint32_t readonly:1;
44− uint32_t code:1;
45− uint32_t data:1;
46− uint32_t _rsvd0:2;
47− uint32_t type:4; /* MAN_SEGMENT_ */
48− uint32_t _rsvd1:4;
49− uint32_t length:16; /* of segment in pages */
50− } r;
51−} __packed;
52−
53−/*
54− * Module segment descriptor. Used by ROM - Immutable.
55− */
56−struct sof_man_segment_desc {
57− union sof_man_segment_flags flags;
58− uint32_t v_base_addr;
59− uint32_t file_offset;
60−} __packed;
61−
62−/*
63− * The firmware binary can be split into several modules.
64− */
65−
66−#define SOF_MAN_MOD_ID_LEN 4
67−#define SOF_MAN_MOD_NAME_LEN 8
68−#define SOF_MAN_MOD_SHA256_LEN 32
69−#define SOF_MAN_MOD_ID {'$', 'A', 'M', 'E'}
70−
71−/*
72− * Each module has an entry in the FW header. Used by ROM - Immutable.
73− */
74−struct sof_man_module {
75− uint8_t struct_id[SOF_MAN_MOD_ID_LEN]; /* SOF_MAN_MOD_ID */
76− uint8_t name[SOF_MAN_MOD_NAME_LEN];
77− uint8_t uuid[16];
78− struct sof_man_module_type type;
79− uint8_t hash[SOF_MAN_MOD_SHA256_LEN];
80− uint32_t entry_point;
81− uint16_t cfg_offset;
82− uint16_t cfg_count;
83− uint32_t affinity_mask;
84− uint16_t instance_max_count; /* max number of instances */
85− uint16_t instance_bss_size; /* instance (pages) */
86− struct sof_man_segment_desc segment[3];
87−} __packed;
88−
89−/*
90− * Each module has a configuration in the FW header. Used by ROM - Immutable.
91− */
92−struct sof_man_mod_config {
93− uint32_t par[4]; /* module parameters */
94− uint32_t is_pages; /* actual size of instance .bss (pages) */
95− uint32_t cps; /* cycles per second */
96− uint32_t ibs; /* input buffer size (bytes) */
97− uint32_t obs; /* output buffer size (bytes) */
98− uint32_t module_flags; /* flags, reserved for future use */
99− uint32_t cpc; /* cycles per single run */
100− uint32_t obls; /* output block size, reserved for future use */
101−} __packed;
102−
103−/*
104− * FW Manifest Header
105− */
106−
107−#define SOF_MAN_FW_HDR_FW_NAME_LEN 8
108−#define SOF_MAN_FW_HDR_ID {'$', 'A', 'M', '1'}
109−#define SOF_MAN_FW_HDR_NAME "ADSPFW"
110−#define SOF_MAN_FW_HDR_FLAGS 0x0
111−#define SOF_MAN_FW_HDR_FEATURES 0xff
112−
113−/*
114− * The firmware has a standard header that is checked by the ROM on firmware
115− * loading. preload_page_count is used by DMA code loader and is entire
116− * image size on CNL. i.e. CNL: total size of the binary’s .text and .rodata
117− * Used by ROM - Immutable.
118− */
119−struct sof_man_fw_header {
120− uint8_t header_id[4];
121− uint32_t header_len;
122− uint8_t name[SOF_MAN_FW_HDR_FW_NAME_LEN];
123− /* number of pages of preloaded image loaded by driver */
124− uint32_t preload_page_count;
125− uint32_t fw_image_flags;
126− uint32_t feature_mask;
127− uint16_t major_version;
128− uint16_t minor_version;
129− uint16_t hotfix_version;
130− uint16_t build_version;
131− uint32_t num_module_entries;
132− uint32_t hw_buf_base_addr;
133− uint32_t hw_buf_length;
134− /* target address for binary loading as offset in IMR - must be == base offset */
135− uint32_t load_offset;
136−} __packed;
137−
138−/*
139− * Firmware manifest descriptor. This can contain N modules and N module
140− * configs. Used by ROM - Immutable.
141− */
142−struct sof_man_fw_desc {
143− struct sof_man_fw_header header;
144−
145− /* Warning - hack for module arrays. For some unknown reason the we
146− * have a variable size array of struct man_module followed by a
147− * variable size array of struct mod_config. These should have been
148− * merged into a variable array of a parent structure. We have to hack
149− * around this in many places....
150− *
151− * struct sof_man_module man_module[];
152− * struct sof_man_mod_config mod_config[];
153− */
154−
155−} __packed;
156−
157−/*
158− * Component Descriptor. Used by ROM - Immutable.
159− */
160−struct sof_man_component_desc {
161− uint32_t reserved[2]; /* all 0 */
162− uint32_t version;
163− uint8_t hash[SOF_MAN_MOD_SHA256_LEN];
164− uint32_t base_offset;
165− uint32_t limit_offset;
166− uint32_t attributes[4];
167−} __packed;
168−
169−/*
170− * Audio DSP extended metadata. Used by ROM - Immutable.
171− */
172−struct sof_man_adsp_meta_file_ext {
173− uint32_t ext_type; /* always 17 for ADSP extension */
174− uint32_t ext_len;
175− uint32_t imr_type;
176− uint8_t reserved[16]; /* all 0 */
177− struct sof_man_component_desc comp_desc[1];
178−} __packed;
179−
180−/*
181− * Module Manifest for rimage module metadata. Not used by ROM.
182− */
183−struct sof_man_module_manifest {
184− struct sof_man_module module;
185− uint32_t text_size;
186−} __packed;
187−
188−#endif
include/uapi/sound/sof/tokens.h+1−0
@@ -85,6 +85,7 @@ · 84 unmodified lines
8585 #define SOF_TKN_INTEL_DMIC_NUM_PDM_ACTIVE 605
8686 #define SOF_TKN_INTEL_DMIC_SAMPLE_RATE 608
8787 #define SOF_TKN_INTEL_DMIC_FIFO_WORD_LENGTH 609
88+#define SOF_TKN_INTEL_DMIC_UNMUTE_RAMP_TIME_MS 610
8889
8990 /* DMIC PDM */
9091 #define SOF_TKN_INTEL_DMIC_PDM_CTRL_ID 700
include/uapi/sound/sof/tone.h+0−21
@@ -1,21 +0,0 @@
1−/* SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause) */
2−/*
3−* This file is provided under a dual BSD/GPLv2 license. When using or
4−* redistributing this file, you may do so under either license.
5−*
6−* Copyright(c) 2018 Intel Corporation. All rights reserved.
7−*/
8−
9−#ifndef __INCLUDE_UAPI_SOUND_SOF_USER_TONE_H__
10−#define __INCLUDE_UAPI_SOUND_SOF_USER_TONE_H__
11−
12−#define SOF_TONE_IDX_FREQUENCY 0
13−#define SOF_TONE_IDX_AMPLITUDE 1
14−#define SOF_TONE_IDX_FREQ_MULT 2
15−#define SOF_TONE_IDX_AMPL_MULT 3
16−#define SOF_TONE_IDX_LENGTH 4
17−#define SOF_TONE_IDX_PERIOD 5
18−#define SOF_TONE_IDX_REPEATS 6
19−#define SOF_TONE_IDX_LIN_RAMP_STEP 7
20−
21−#endif
include/uapi/sound/sof/trace.h+0−66
@@ -1,66 +0,0 @@
1−/* SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause) */
2−/*
3− * This file is provided under a dual BSD/GPLv2 license. When using or
4− * redistributing this file, you may do so under either license.
5− *
6− * Copyright(c) 2018 Intel Corporation. All rights reserved.
7− */
8−
9−#ifndef __INCLUDE_UAPI_SOUND_SOF_USER_TRACE_H__
10−#define __INCLUDE_UAPI_SOUND_SOF_USER_TRACE_H__
11−
12−/*
13− * Host system time.
14− *
15− * This property is used by the driver to pass down information about
16− * current system time. It is expressed in us.
17− * FW translates timestamps (in log entries, probe pockets) to this time
18− * domain.
19− *
20− * (cavs: SystemTime).
21− */
22−struct system_time {
23− uint32_t val_l; /* Lower dword of current host time value */
24− uint32_t val_u; /* Upper dword of current host time value */
25−} __packed;
26−
27−#define LOG_ENABLE 1 /* Enable logging */
28−#define LOG_DISABLE 0 /* Disable logging */
29−
30−#define LOG_LEVEL_CRITICAL 1 /* (FDK fatal) */
31−#define LOG_LEVEL_VERBOSE 2
32−
33−/*
34− * Layout of a log fifo.
35− */
36−struct log_buffer_layout {
37− uint32_t read_ptr; /*read pointer */
38− uint32_t write_ptr; /* write pointer */
39− uint32_t buffer[0]; /* buffer */
40−} __packed;
41−
42−/*
43− * Log buffer status reported by FW.
44− */
45−struct log_buffer_status {
46− uint32_t core_id; /* ID of core that logged to other half */
47−} __packed;
48−
49−#define TRACE_ID_LENGTH 12
50−
51−/*
52− * Log entry header.
53− *
54− * The header is followed by an array of arguments (uint32_t[]).
55− * Number of arguments is specified by the params_num field of log_entry
56− */
57−struct log_entry_header {
58− uint32_t id_0 : TRACE_ID_LENGTH; /* e.g. Pipeline ID */
59− uint32_t id_1 : TRACE_ID_LENGTH; /* e.g. Component ID */
60− uint32_t core_id : 8; /* Reporting core's id */
61−
62− uint64_t timestamp; /* Timestamp (in dsp ticks) */
63− uint32_t log_entry_address; /* Address of log entry in ELF */
64−} __packed;
65−
66−#endif