aboutsummaryrefslogtreecommitdiffstats
path: root/include/uapi
diff options
context:
space:
mode:
Diffstat (limited to 'include/uapi')
-rw-r--r--include/uapi/asm-generic/unistd.h4
-rw-r--r--include/uapi/linux/bpf.h56
-rw-r--r--include/uapi/linux/input-event-codes.h1
-rw-r--r--include/uapi/linux/prctl.h1
-rw-r--r--include/uapi/linux/v4l2-controls.h67
-rw-r--r--include/uapi/linux/videodev2.h4
6 files changed, 44 insertions, 89 deletions
diff --git a/include/uapi/asm-generic/unistd.h b/include/uapi/asm-generic/unistd.h
index 538546edbfbd..c7f3321fbe43 100644
--- a/include/uapi/asm-generic/unistd.h
+++ b/include/uapi/asm-generic/unistd.h
@@ -760,8 +760,10 @@ __SYSCALL(__NR_rseq, sys_rseq)
760#define __NR_ftruncate __NR3264_ftruncate 760#define __NR_ftruncate __NR3264_ftruncate
761#define __NR_lseek __NR3264_lseek 761#define __NR_lseek __NR3264_lseek
762#define __NR_sendfile __NR3264_sendfile 762#define __NR_sendfile __NR3264_sendfile
763#if defined(__ARCH_WANT_NEW_STAT) || defined(__ARCH_WANT_STAT64)
763#define __NR_newfstatat __NR3264_fstatat 764#define __NR_newfstatat __NR3264_fstatat
764#define __NR_fstat __NR3264_fstat 765#define __NR_fstat __NR3264_fstat
766#endif
765#define __NR_mmap __NR3264_mmap 767#define __NR_mmap __NR3264_mmap
766#define __NR_fadvise64 __NR3264_fadvise64 768#define __NR_fadvise64 __NR3264_fadvise64
767#ifdef __NR3264_stat 769#ifdef __NR3264_stat
@@ -776,8 +778,10 @@ __SYSCALL(__NR_rseq, sys_rseq)
776#define __NR_ftruncate64 __NR3264_ftruncate 778#define __NR_ftruncate64 __NR3264_ftruncate
777#define __NR_llseek __NR3264_lseek 779#define __NR_llseek __NR3264_lseek
778#define __NR_sendfile64 __NR3264_sendfile 780#define __NR_sendfile64 __NR3264_sendfile
781#if defined(__ARCH_WANT_NEW_STAT) || defined(__ARCH_WANT_STAT64)
779#define __NR_fstatat64 __NR3264_fstatat 782#define __NR_fstatat64 __NR3264_fstatat
780#define __NR_fstat64 __NR3264_fstat 783#define __NR_fstat64 __NR3264_fstat
784#endif
781#define __NR_mmap2 __NR3264_mmap 785#define __NR_mmap2 __NR3264_mmap
782#define __NR_fadvise64_64 __NR3264_fadvise64 786#define __NR_fadvise64_64 __NR3264_fadvise64
783#ifdef __NR3264_stat 787#ifdef __NR3264_stat
diff --git a/include/uapi/linux/bpf.h b/include/uapi/linux/bpf.h
index 852dc17ab47a..72c453a8bf50 100644
--- a/include/uapi/linux/bpf.h
+++ b/include/uapi/linux/bpf.h
@@ -2170,7 +2170,7 @@ union bpf_attr {
2170 * Return 2170 * Return
2171 * 0 on success, or a negative error in case of failure. 2171 * 0 on success, or a negative error in case of failure.
2172 * 2172 *
2173 * struct bpf_sock *bpf_sk_lookup_tcp(void *ctx, struct bpf_sock_tuple *tuple, u32 tuple_size, u32 netns, u64 flags) 2173 * struct bpf_sock *bpf_sk_lookup_tcp(void *ctx, struct bpf_sock_tuple *tuple, u32 tuple_size, u64 netns, u64 flags)
2174 * Description 2174 * Description
2175 * Look for TCP socket matching *tuple*, optionally in a child 2175 * Look for TCP socket matching *tuple*, optionally in a child
2176 * network namespace *netns*. The return value must be checked, 2176 * network namespace *netns*. The return value must be checked,
@@ -2187,12 +2187,14 @@ union bpf_attr {
2187 * **sizeof**\ (*tuple*\ **->ipv6**) 2187 * **sizeof**\ (*tuple*\ **->ipv6**)
2188 * Look for an IPv6 socket. 2188 * Look for an IPv6 socket.
2189 * 2189 *
2190 * If the *netns* is zero, then the socket lookup table in the 2190 * If the *netns* is a negative signed 32-bit integer, then the
2191 * netns associated with the *ctx* will be used. For the TC hooks, 2191 * socket lookup table in the netns associated with the *ctx* will
2192 * this in the netns of the device in the skb. For socket hooks, 2192 * will be used. For the TC hooks, this is the netns of the device
2193 * this in the netns of the socket. If *netns* is non-zero, then 2193 * in the skb. For socket hooks, this is the netns of the socket.
2194 * it specifies the ID of the netns relative to the netns 2194 * If *netns* is any other signed 32-bit value greater than or
2195 * associated with the *ctx*. 2195 * equal to zero then it specifies the ID of the netns relative to
2196 * the netns associated with the *ctx*. *netns* values beyond the
2197 * range of 32-bit integers are reserved for future use.
2196 * 2198 *
2197 * All values for *flags* are reserved for future usage, and must 2199 * All values for *flags* are reserved for future usage, and must
2198 * be left at zero. 2200 * be left at zero.
@@ -2201,8 +2203,10 @@ union bpf_attr {
2201 * **CONFIG_NET** configuration option. 2203 * **CONFIG_NET** configuration option.
2202 * Return 2204 * Return
2203 * Pointer to *struct bpf_sock*, or NULL in case of failure. 2205 * Pointer to *struct bpf_sock*, or NULL in case of failure.
2206 * For sockets with reuseport option, the *struct bpf_sock*
2207 * result is from reuse->socks[] using the hash of the tuple.
2204 * 2208 *
2205 * struct bpf_sock *bpf_sk_lookup_udp(void *ctx, struct bpf_sock_tuple *tuple, u32 tuple_size, u32 netns, u64 flags) 2209 * struct bpf_sock *bpf_sk_lookup_udp(void *ctx, struct bpf_sock_tuple *tuple, u32 tuple_size, u64 netns, u64 flags)
2206 * Description 2210 * Description
2207 * Look for UDP socket matching *tuple*, optionally in a child 2211 * Look for UDP socket matching *tuple*, optionally in a child
2208 * network namespace *netns*. The return value must be checked, 2212 * network namespace *netns*. The return value must be checked,
@@ -2219,12 +2223,14 @@ union bpf_attr {
2219 * **sizeof**\ (*tuple*\ **->ipv6**) 2223 * **sizeof**\ (*tuple*\ **->ipv6**)
2220 * Look for an IPv6 socket. 2224 * Look for an IPv6 socket.
2221 * 2225 *
2222 * If the *netns* is zero, then the socket lookup table in the 2226 * If the *netns* is a negative signed 32-bit integer, then the
2223 * netns associated with the *ctx* will be used. For the TC hooks, 2227 * socket lookup table in the netns associated with the *ctx* will
2224 * this in the netns of the device in the skb. For socket hooks, 2228 * will be used. For the TC hooks, this is the netns of the device
2225 * this in the netns of the socket. If *netns* is non-zero, then 2229 * in the skb. For socket hooks, this is the netns of the socket.
2226 * it specifies the ID of the netns relative to the netns 2230 * If *netns* is any other signed 32-bit value greater than or
2227 * associated with the *ctx*. 2231 * equal to zero then it specifies the ID of the netns relative to
2232 * the netns associated with the *ctx*. *netns* values beyond the
2233 * range of 32-bit integers are reserved for future use.
2228 * 2234 *
2229 * All values for *flags* are reserved for future usage, and must 2235 * All values for *flags* are reserved for future usage, and must
2230 * be left at zero. 2236 * be left at zero.
@@ -2233,6 +2239,8 @@ union bpf_attr {
2233 * **CONFIG_NET** configuration option. 2239 * **CONFIG_NET** configuration option.
2234 * Return 2240 * Return
2235 * Pointer to *struct bpf_sock*, or NULL in case of failure. 2241 * Pointer to *struct bpf_sock*, or NULL in case of failure.
2242 * For sockets with reuseport option, the *struct bpf_sock*
2243 * result is from reuse->socks[] using the hash of the tuple.
2236 * 2244 *
2237 * int bpf_sk_release(struct bpf_sock *sk) 2245 * int bpf_sk_release(struct bpf_sock *sk)
2238 * Description 2246 * Description
@@ -2405,6 +2413,9 @@ enum bpf_func_id {
2405/* BPF_FUNC_perf_event_output for sk_buff input context. */ 2413/* BPF_FUNC_perf_event_output for sk_buff input context. */
2406#define BPF_F_CTXLEN_MASK (0xfffffULL << 32) 2414#define BPF_F_CTXLEN_MASK (0xfffffULL << 32)
2407 2415
2416/* Current network namespace */
2417#define BPF_F_CURRENT_NETNS (-1L)
2418
2408/* Mode for BPF_FUNC_skb_adjust_room helper. */ 2419/* Mode for BPF_FUNC_skb_adjust_room helper. */
2409enum bpf_adj_room_mode { 2420enum bpf_adj_room_mode {
2410 BPF_ADJ_ROOM_NET, 2421 BPF_ADJ_ROOM_NET,
@@ -2422,6 +2433,12 @@ enum bpf_lwt_encap_mode {
2422 BPF_LWT_ENCAP_SEG6_INLINE 2433 BPF_LWT_ENCAP_SEG6_INLINE
2423}; 2434};
2424 2435
2436#define __bpf_md_ptr(type, name) \
2437union { \
2438 type name; \
2439 __u64 :64; \
2440} __attribute__((aligned(8)))
2441
2425/* user accessible mirror of in-kernel sk_buff. 2442/* user accessible mirror of in-kernel sk_buff.
2426 * new fields can only be added to the end of this structure 2443 * new fields can only be added to the end of this structure
2427 */ 2444 */
@@ -2456,7 +2473,7 @@ struct __sk_buff {
2456 /* ... here. */ 2473 /* ... here. */
2457 2474
2458 __u32 data_meta; 2475 __u32 data_meta;
2459 struct bpf_flow_keys *flow_keys; 2476 __bpf_md_ptr(struct bpf_flow_keys *, flow_keys);
2460}; 2477};
2461 2478
2462struct bpf_tunnel_key { 2479struct bpf_tunnel_key {
@@ -2572,8 +2589,8 @@ enum sk_action {
2572 * be added to the end of this structure 2589 * be added to the end of this structure
2573 */ 2590 */
2574struct sk_msg_md { 2591struct sk_msg_md {
2575 void *data; 2592 __bpf_md_ptr(void *, data);
2576 void *data_end; 2593 __bpf_md_ptr(void *, data_end);
2577 2594
2578 __u32 family; 2595 __u32 family;
2579 __u32 remote_ip4; /* Stored in network byte order */ 2596 __u32 remote_ip4; /* Stored in network byte order */
@@ -2589,8 +2606,9 @@ struct sk_reuseport_md {
2589 * Start of directly accessible data. It begins from 2606 * Start of directly accessible data. It begins from
2590 * the tcp/udp header. 2607 * the tcp/udp header.
2591 */ 2608 */
2592 void *data; 2609 __bpf_md_ptr(void *, data);
2593 void *data_end; /* End of directly accessible data */ 2610 /* End of directly accessible data */
2611 __bpf_md_ptr(void *, data_end);
2594 /* 2612 /*
2595 * Total length of packet (starting from the tcp/udp header). 2613 * Total length of packet (starting from the tcp/udp header).
2596 * Note that the directly accessible bytes (data_end - data) 2614 * Note that the directly accessible bytes (data_end - data)
diff --git a/include/uapi/linux/input-event-codes.h b/include/uapi/linux/input-event-codes.h
index 6d180cc60a5d..ae366b87426a 100644
--- a/include/uapi/linux/input-event-codes.h
+++ b/include/uapi/linux/input-event-codes.h
@@ -716,7 +716,6 @@
716 * the situation described above. 716 * the situation described above.
717 */ 717 */
718#define REL_RESERVED 0x0a 718#define REL_RESERVED 0x0a
719#define REL_WHEEL_HI_RES 0x0b
720#define REL_MAX 0x0f 719#define REL_MAX 0x0f
721#define REL_CNT (REL_MAX+1) 720#define REL_CNT (REL_MAX+1)
722 721
diff --git a/include/uapi/linux/prctl.h b/include/uapi/linux/prctl.h
index c0d7ea0bf5b6..b17201edfa09 100644
--- a/include/uapi/linux/prctl.h
+++ b/include/uapi/linux/prctl.h
@@ -212,6 +212,7 @@ struct prctl_mm_map {
212#define PR_SET_SPECULATION_CTRL 53 212#define PR_SET_SPECULATION_CTRL 53
213/* Speculation control variants */ 213/* Speculation control variants */
214# define PR_SPEC_STORE_BYPASS 0 214# define PR_SPEC_STORE_BYPASS 0
215# define PR_SPEC_INDIRECT_BRANCH 1
215/* Return and control values for PR_SET/GET_SPECULATION_CTRL */ 216/* Return and control values for PR_SET/GET_SPECULATION_CTRL */
216# define PR_SPEC_NOT_AFFECTED 0 217# define PR_SPEC_NOT_AFFECTED 0
217# define PR_SPEC_PRCTL (1UL << 0) 218# define PR_SPEC_PRCTL (1UL << 0)
diff --git a/include/uapi/linux/v4l2-controls.h b/include/uapi/linux/v4l2-controls.h
index 51b095898f4b..3dcfc6148f99 100644
--- a/include/uapi/linux/v4l2-controls.h
+++ b/include/uapi/linux/v4l2-controls.h
@@ -50,6 +50,8 @@
50#ifndef __LINUX_V4L2_CONTROLS_H 50#ifndef __LINUX_V4L2_CONTROLS_H
51#define __LINUX_V4L2_CONTROLS_H 51#define __LINUX_V4L2_CONTROLS_H
52 52
53#include <linux/types.h>
54
53/* Control classes */ 55/* Control classes */
54#define V4L2_CTRL_CLASS_USER 0x00980000 /* Old-style 'user' controls */ 56#define V4L2_CTRL_CLASS_USER 0x00980000 /* Old-style 'user' controls */
55#define V4L2_CTRL_CLASS_MPEG 0x00990000 /* MPEG-compression controls */ 57#define V4L2_CTRL_CLASS_MPEG 0x00990000 /* MPEG-compression controls */
@@ -402,9 +404,6 @@ enum v4l2_mpeg_video_multi_slice_mode {
402#define V4L2_CID_MPEG_VIDEO_MV_V_SEARCH_RANGE (V4L2_CID_MPEG_BASE+228) 404#define V4L2_CID_MPEG_VIDEO_MV_V_SEARCH_RANGE (V4L2_CID_MPEG_BASE+228)
403#define V4L2_CID_MPEG_VIDEO_FORCE_KEY_FRAME (V4L2_CID_MPEG_BASE+229) 405#define V4L2_CID_MPEG_VIDEO_FORCE_KEY_FRAME (V4L2_CID_MPEG_BASE+229)
404 406
405#define V4L2_CID_MPEG_VIDEO_MPEG2_SLICE_PARAMS (V4L2_CID_MPEG_BASE+250)
406#define V4L2_CID_MPEG_VIDEO_MPEG2_QUANTIZATION (V4L2_CID_MPEG_BASE+251)
407
408#define V4L2_CID_MPEG_VIDEO_H263_I_FRAME_QP (V4L2_CID_MPEG_BASE+300) 407#define V4L2_CID_MPEG_VIDEO_H263_I_FRAME_QP (V4L2_CID_MPEG_BASE+300)
409#define V4L2_CID_MPEG_VIDEO_H263_P_FRAME_QP (V4L2_CID_MPEG_BASE+301) 408#define V4L2_CID_MPEG_VIDEO_H263_P_FRAME_QP (V4L2_CID_MPEG_BASE+301)
410#define V4L2_CID_MPEG_VIDEO_H263_B_FRAME_QP (V4L2_CID_MPEG_BASE+302) 409#define V4L2_CID_MPEG_VIDEO_H263_B_FRAME_QP (V4L2_CID_MPEG_BASE+302)
@@ -1095,66 +1094,4 @@ enum v4l2_detect_md_mode {
1095#define V4L2_CID_DETECT_MD_THRESHOLD_GRID (V4L2_CID_DETECT_CLASS_BASE + 3) 1094#define V4L2_CID_DETECT_MD_THRESHOLD_GRID (V4L2_CID_DETECT_CLASS_BASE + 3)
1096#define V4L2_CID_DETECT_MD_REGION_GRID (V4L2_CID_DETECT_CLASS_BASE + 4) 1095#define V4L2_CID_DETECT_MD_REGION_GRID (V4L2_CID_DETECT_CLASS_BASE + 4)
1097 1096
1098#define V4L2_MPEG2_PICTURE_CODING_TYPE_I 1
1099#define V4L2_MPEG2_PICTURE_CODING_TYPE_P 2
1100#define V4L2_MPEG2_PICTURE_CODING_TYPE_B 3
1101#define V4L2_MPEG2_PICTURE_CODING_TYPE_D 4
1102
1103struct v4l2_mpeg2_sequence {
1104 /* ISO/IEC 13818-2, ITU-T Rec. H.262: Sequence header */
1105 __u16 horizontal_size;
1106 __u16 vertical_size;
1107 __u32 vbv_buffer_size;
1108
1109 /* ISO/IEC 13818-2, ITU-T Rec. H.262: Sequence extension */
1110 __u8 profile_and_level_indication;
1111 __u8 progressive_sequence;
1112 __u8 chroma_format;
1113};
1114
1115struct v4l2_mpeg2_picture {
1116 /* ISO/IEC 13818-2, ITU-T Rec. H.262: Picture header */
1117 __u8 picture_coding_type;
1118
1119 /* ISO/IEC 13818-2, ITU-T Rec. H.262: Picture coding extension */
1120 __u8 f_code[2][2];
1121 __u8 intra_dc_precision;
1122 __u8 picture_structure;
1123 __u8 top_field_first;
1124 __u8 frame_pred_frame_dct;
1125 __u8 concealment_motion_vectors;
1126 __u8 q_scale_type;
1127 __u8 intra_vlc_format;
1128 __u8 alternate_scan;
1129 __u8 repeat_first_field;
1130 __u8 progressive_frame;
1131};
1132
1133struct v4l2_ctrl_mpeg2_slice_params {
1134 __u32 bit_size;
1135 __u32 data_bit_offset;
1136
1137 struct v4l2_mpeg2_sequence sequence;
1138 struct v4l2_mpeg2_picture picture;
1139
1140 /* ISO/IEC 13818-2, ITU-T Rec. H.262: Slice */
1141 __u8 quantiser_scale_code;
1142
1143 __u8 backward_ref_index;
1144 __u8 forward_ref_index;
1145};
1146
1147struct v4l2_ctrl_mpeg2_quantization {
1148 /* ISO/IEC 13818-2, ITU-T Rec. H.262: Quant matrix extension */
1149 __u8 load_intra_quantiser_matrix;
1150 __u8 load_non_intra_quantiser_matrix;
1151 __u8 load_chroma_intra_quantiser_matrix;
1152 __u8 load_chroma_non_intra_quantiser_matrix;
1153
1154 __u8 intra_quantiser_matrix[64];
1155 __u8 non_intra_quantiser_matrix[64];
1156 __u8 chroma_intra_quantiser_matrix[64];
1157 __u8 chroma_non_intra_quantiser_matrix[64];
1158};
1159
1160#endif 1097#endif
diff --git a/include/uapi/linux/videodev2.h b/include/uapi/linux/videodev2.h
index c8e8ff810190..2ba2ad0e23fb 100644
--- a/include/uapi/linux/videodev2.h
+++ b/include/uapi/linux/videodev2.h
@@ -1622,8 +1622,6 @@ struct v4l2_ext_control {
1622 __u8 __user *p_u8; 1622 __u8 __user *p_u8;
1623 __u16 __user *p_u16; 1623 __u16 __user *p_u16;
1624 __u32 __user *p_u32; 1624 __u32 __user *p_u32;
1625 struct v4l2_ctrl_mpeg2_slice_params __user *p_mpeg2_slice_params;
1626 struct v4l2_ctrl_mpeg2_quantization __user *p_mpeg2_quantization;
1627 void __user *ptr; 1625 void __user *ptr;
1628 }; 1626 };
1629} __attribute__ ((packed)); 1627} __attribute__ ((packed));
@@ -1669,8 +1667,6 @@ enum v4l2_ctrl_type {
1669 V4L2_CTRL_TYPE_U8 = 0x0100, 1667 V4L2_CTRL_TYPE_U8 = 0x0100,
1670 V4L2_CTRL_TYPE_U16 = 0x0101, 1668 V4L2_CTRL_TYPE_U16 = 0x0101,
1671 V4L2_CTRL_TYPE_U32 = 0x0102, 1669 V4L2_CTRL_TYPE_U32 = 0x0102,
1672 V4L2_CTRL_TYPE_MPEG2_SLICE_PARAMS = 0x0103,
1673 V4L2_CTRL_TYPE_MPEG2_QUANTIZATION = 0x0104,
1674}; 1670};
1675 1671
1676/* Used in the VIDIOC_QUERYCTRL ioctl for querying controls */ 1672/* Used in the VIDIOC_QUERYCTRL ioctl for querying controls */