Update to kernel headers v5.3.2.
Test: Builds and run unit tests on taimen/cuttlefish.
Change-Id: I6ebd8f179d159ac974555e8edca588083e8081b3
diff --git a/libc/kernel/uapi/linux/adfs_fs.h b/libc/kernel/uapi/linux/adfs_fs.h
index 6fb9347..aa1d732 100644
--- a/libc/kernel/uapi/linux/adfs_fs.h
+++ b/libc/kernel/uapi/linux/adfs_fs.h
@@ -41,12 +41,13 @@
__u8 log2sharesize : 4;
__u8 unused40 : 4;
__u8 big_flag : 1;
- __u8 unused41 : 1;
+ __u8 unused41 : 7;
__u8 nzones_high;
+ __u8 reserved43;
__le32 format_version;
__le32 root_size;
__u8 unused52[60 - 52];
-};
+} __attribute__((packed, aligned(4)));
#define ADFS_DISCRECORD (0xc00)
#define ADFS_DR_OFFSET (0x1c0)
#define ADFS_DR_SIZE 60
diff --git a/libc/kernel/uapi/linux/audit.h b/libc/kernel/uapi/linux/audit.h
index 509d734..3f1d8f0 100644
--- a/libc/kernel/uapi/linux/audit.h
+++ b/libc/kernel/uapi/linux/audit.h
@@ -211,6 +211,7 @@
#define AUDIT_OBJ_GID 110
#define AUDIT_FIELD_COMPARE 111
#define AUDIT_EXE 112
+#define AUDIT_SADDR_FAM 113
#define AUDIT_ARG0 200
#define AUDIT_ARG1 (AUDIT_ARG0 + 1)
#define AUDIT_ARG2 (AUDIT_ARG0 + 2)
diff --git a/libc/kernel/uapi/linux/batadv_packet.h b/libc/kernel/uapi/linux/batadv_packet.h
index 6d5226c..ede53cf 100644
--- a/libc/kernel/uapi/linux/batadv_packet.h
+++ b/libc/kernel/uapi/linux/batadv_packet.h
@@ -60,6 +60,8 @@
BATADV_MCAST_WANT_ALL_UNSNOOPABLES = 1UL << 0,
BATADV_MCAST_WANT_ALL_IPV4 = 1UL << 1,
BATADV_MCAST_WANT_ALL_IPV6 = 1UL << 2,
+ BATADV_MCAST_WANT_NO_RTR4 = 1UL << 3,
+ BATADV_MCAST_WANT_NO_RTR6 = 1UL << 4,
};
#define BATADV_TT_DATA_TYPE_MASK 0x0F
enum batadv_tt_data_flags {
diff --git a/libc/kernel/uapi/linux/bpf.h b/libc/kernel/uapi/linux/bpf.h
index 3f09421..7e78758 100644
--- a/libc/kernel/uapi/linux/bpf.h
+++ b/libc/kernel/uapi/linux/bpf.h
@@ -148,6 +148,7 @@
BPF_PROG_TYPE_FLOW_DISSECTOR,
BPF_PROG_TYPE_CGROUP_SYSCTL,
BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE,
+ BPF_PROG_TYPE_CGROUP_SOCKOPT,
};
enum bpf_attach_type {
BPF_CGROUP_INET_INGRESS,
@@ -171,6 +172,8 @@
BPF_CGROUP_SYSCTL,
BPF_CGROUP_UDP4_RECVMSG,
BPF_CGROUP_UDP6_RECVMSG,
+ BPF_CGROUP_GETSOCKOPT,
+ BPF_CGROUP_SETSOCKOPT,
__MAX_BPF_ATTACH_TYPE
};
#define MAX_BPF_ATTACH_TYPE __MAX_BPF_ATTACH_TYPE
@@ -178,6 +181,7 @@
#define BPF_F_ALLOW_MULTI (1U << 1)
#define BPF_F_STRICT_ALIGNMENT (1U << 0)
#define BPF_F_ANY_ALIGNMENT (1U << 1)
+#define BPF_F_TEST_RND_HI32 (1U << 2)
#define BPF_PSEUDO_MAP_FD 1
#define BPF_PSEUDO_MAP_VALUE 2
#define BPF_PSEUDO_CALL 1
@@ -326,7 +330,7 @@
__u64 probe_addr;
} task_fd_query;
} __attribute__((aligned(8)));
-#define __BPF_FUNC_MAPPER(FN) FN(unspec), FN(map_lookup_elem), FN(map_update_elem), FN(map_delete_elem), FN(probe_read), FN(ktime_get_ns), FN(trace_printk), FN(get_prandom_u32), FN(get_smp_processor_id), FN(skb_store_bytes), FN(l3_csum_replace), FN(l4_csum_replace), FN(tail_call), FN(clone_redirect), FN(get_current_pid_tgid), FN(get_current_uid_gid), FN(get_current_comm), FN(get_cgroup_classid), FN(skb_vlan_push), FN(skb_vlan_pop), FN(skb_get_tunnel_key), FN(skb_set_tunnel_key), FN(perf_event_read), FN(redirect), FN(get_route_realm), FN(perf_event_output), FN(skb_load_bytes), FN(get_stackid), FN(csum_diff), FN(skb_get_tunnel_opt), FN(skb_set_tunnel_opt), FN(skb_change_proto), FN(skb_change_type), FN(skb_under_cgroup), FN(get_hash_recalc), FN(get_current_task), FN(probe_write_user), FN(current_task_under_cgroup), FN(skb_change_tail), FN(skb_pull_data), FN(csum_update), FN(set_hash_invalid), FN(get_numa_node_id), FN(skb_change_head), FN(xdp_adjust_head), FN(probe_read_str), FN(get_socket_cookie), FN(get_socket_uid), FN(set_hash), FN(setsockopt), FN(skb_adjust_room), FN(redirect_map), FN(sk_redirect_map), FN(sock_map_update), FN(xdp_adjust_meta), FN(perf_event_read_value), FN(perf_prog_read_value), FN(getsockopt), FN(override_return), FN(sock_ops_cb_flags_set), FN(msg_redirect_map), FN(msg_apply_bytes), FN(msg_cork_bytes), FN(msg_pull_data), FN(bind), FN(xdp_adjust_tail), FN(skb_get_xfrm_state), FN(get_stack), FN(skb_load_bytes_relative), FN(fib_lookup), FN(sock_hash_update), FN(msg_redirect_hash), FN(sk_redirect_hash), FN(lwt_push_encap), FN(lwt_seg6_store_bytes), FN(lwt_seg6_adjust_srh), FN(lwt_seg6_action), FN(rc_repeat), FN(rc_keydown), FN(skb_cgroup_id), FN(get_current_cgroup_id), FN(get_local_storage), FN(sk_select_reuseport), FN(skb_ancestor_cgroup_id), FN(sk_lookup_tcp), FN(sk_lookup_udp), FN(sk_release), FN(map_push_elem), FN(map_pop_elem), FN(map_peek_elem), FN(msg_push_data), FN(msg_pop_data), FN(rc_pointer_rel), FN(spin_lock), FN(spin_unlock), FN(sk_fullsock), FN(tcp_sock), FN(skb_ecn_set_ce), FN(get_listener_sock), FN(skc_lookup_tcp), FN(tcp_check_syncookie), FN(sysctl_get_name), FN(sysctl_get_current_value), FN(sysctl_get_new_value), FN(sysctl_set_new_value), FN(strtol), FN(strtoul), FN(sk_storage_get), FN(sk_storage_delete),
+#define __BPF_FUNC_MAPPER(FN) FN(unspec), FN(map_lookup_elem), FN(map_update_elem), FN(map_delete_elem), FN(probe_read), FN(ktime_get_ns), FN(trace_printk), FN(get_prandom_u32), FN(get_smp_processor_id), FN(skb_store_bytes), FN(l3_csum_replace), FN(l4_csum_replace), FN(tail_call), FN(clone_redirect), FN(get_current_pid_tgid), FN(get_current_uid_gid), FN(get_current_comm), FN(get_cgroup_classid), FN(skb_vlan_push), FN(skb_vlan_pop), FN(skb_get_tunnel_key), FN(skb_set_tunnel_key), FN(perf_event_read), FN(redirect), FN(get_route_realm), FN(perf_event_output), FN(skb_load_bytes), FN(get_stackid), FN(csum_diff), FN(skb_get_tunnel_opt), FN(skb_set_tunnel_opt), FN(skb_change_proto), FN(skb_change_type), FN(skb_under_cgroup), FN(get_hash_recalc), FN(get_current_task), FN(probe_write_user), FN(current_task_under_cgroup), FN(skb_change_tail), FN(skb_pull_data), FN(csum_update), FN(set_hash_invalid), FN(get_numa_node_id), FN(skb_change_head), FN(xdp_adjust_head), FN(probe_read_str), FN(get_socket_cookie), FN(get_socket_uid), FN(set_hash), FN(setsockopt), FN(skb_adjust_room), FN(redirect_map), FN(sk_redirect_map), FN(sock_map_update), FN(xdp_adjust_meta), FN(perf_event_read_value), FN(perf_prog_read_value), FN(getsockopt), FN(override_return), FN(sock_ops_cb_flags_set), FN(msg_redirect_map), FN(msg_apply_bytes), FN(msg_cork_bytes), FN(msg_pull_data), FN(bind), FN(xdp_adjust_tail), FN(skb_get_xfrm_state), FN(get_stack), FN(skb_load_bytes_relative), FN(fib_lookup), FN(sock_hash_update), FN(msg_redirect_hash), FN(sk_redirect_hash), FN(lwt_push_encap), FN(lwt_seg6_store_bytes), FN(lwt_seg6_adjust_srh), FN(lwt_seg6_action), FN(rc_repeat), FN(rc_keydown), FN(skb_cgroup_id), FN(get_current_cgroup_id), FN(get_local_storage), FN(sk_select_reuseport), FN(skb_ancestor_cgroup_id), FN(sk_lookup_tcp), FN(sk_lookup_udp), FN(sk_release), FN(map_push_elem), FN(map_pop_elem), FN(map_peek_elem), FN(msg_push_data), FN(msg_pop_data), FN(rc_pointer_rel), FN(spin_lock), FN(spin_unlock), FN(sk_fullsock), FN(tcp_sock), FN(skb_ecn_set_ce), FN(get_listener_sock), FN(skc_lookup_tcp), FN(tcp_check_syncookie), FN(sysctl_get_name), FN(sysctl_get_current_value), FN(sysctl_get_new_value), FN(sysctl_set_new_value), FN(strtol), FN(strtoul), FN(sk_storage_get), FN(sk_storage_delete), FN(send_signal),
#define __BPF_ENUM_FN(x) BPF_FUNC_ ##x
enum bpf_func_id {
__BPF_FUNC_MAPPER(__BPF_ENUM_FN) __BPF_FUNC_MAX_ID,
@@ -475,6 +479,10 @@
__u32 sacked_out;
__u64 bytes_received;
__u64 bytes_acked;
+ __u32 dsack_dups;
+ __u32 delivered;
+ __u32 delivered_ce;
+ __u32 icsk_retransmits;
};
struct bpf_sock_tuple {
union {
@@ -492,6 +500,9 @@
} ipv6;
};
};
+struct bpf_xdp_sock {
+ __u32 queue_id;
+};
#define XDP_PACKET_HEADROOM 256
enum xdp_action {
XDP_ABORTED = 0,
@@ -601,6 +612,7 @@
__u32 protocol;
__u32 msg_src_ip4;
__u32 msg_src_ip6[4];
+ __bpf_md_ptr(struct bpf_sock *, sk);
};
struct bpf_sock_ops {
__u32 op;
@@ -642,11 +654,13 @@
__u32 sk_txhash;
__u64 bytes_received;
__u64 bytes_acked;
+ __bpf_md_ptr(struct bpf_sock *, sk);
};
#define BPF_SOCK_OPS_RTO_CB_FLAG (1 << 0)
#define BPF_SOCK_OPS_RETRANS_CB_FLAG (1 << 1)
#define BPF_SOCK_OPS_STATE_CB_FLAG (1 << 2)
-#define BPF_SOCK_OPS_ALL_CB_FLAGS 0x7
+#define BPF_SOCK_OPS_RTT_CB_FLAG (1 << 3)
+#define BPF_SOCK_OPS_ALL_CB_FLAGS 0xF
enum {
BPF_SOCK_OPS_VOID,
BPF_SOCK_OPS_TIMEOUT_INIT,
@@ -660,6 +674,7 @@
BPF_SOCK_OPS_RETRANS_CB,
BPF_SOCK_OPS_STATE_CB,
BPF_SOCK_OPS_TCP_LISTEN_CB,
+ BPF_SOCK_OPS_RTT_CB,
};
enum {
BPF_TCP_ESTABLISHED = 1,
@@ -783,4 +798,13 @@
__u32 write;
__u32 file_pos;
};
+struct bpf_sockopt {
+ __bpf_md_ptr(struct bpf_sock *, sk);
+ __bpf_md_ptr(void *, optval);
+ __bpf_md_ptr(void *, optval_end);
+ __s32 level;
+ __s32 optname;
+ __s32 optlen;
+ __s32 retval;
+};
#endif
diff --git a/libc/kernel/uapi/linux/btrfs_tree.h b/libc/kernel/uapi/linux/btrfs_tree.h
index 0618f66..be0c8b0 100644
--- a/libc/kernel/uapi/linux/btrfs_tree.h
+++ b/libc/kernel/uapi/linux/btrfs_tree.h
@@ -383,6 +383,7 @@
#define BTRFS_BLOCK_GROUP_TYPE_MASK (BTRFS_BLOCK_GROUP_DATA | BTRFS_BLOCK_GROUP_SYSTEM | BTRFS_BLOCK_GROUP_METADATA)
#define BTRFS_BLOCK_GROUP_PROFILE_MASK (BTRFS_BLOCK_GROUP_RAID0 | BTRFS_BLOCK_GROUP_RAID1 | BTRFS_BLOCK_GROUP_RAID5 | BTRFS_BLOCK_GROUP_RAID6 | BTRFS_BLOCK_GROUP_DUP | BTRFS_BLOCK_GROUP_RAID10)
#define BTRFS_BLOCK_GROUP_RAID56_MASK (BTRFS_BLOCK_GROUP_RAID5 | BTRFS_BLOCK_GROUP_RAID6)
+#define BTRFS_BLOCK_GROUP_RAID1_MASK (BTRFS_BLOCK_GROUP_RAID1)
#define BTRFS_AVAIL_ALLOC_BIT_SINGLE (1ULL << 48)
#define BTRFS_SPACE_INFO_GLOBAL_RSV (1ULL << 49)
#define BTRFS_EXTENDED_PROFILE_MASK (BTRFS_BLOCK_GROUP_PROFILE_MASK | BTRFS_AVAIL_ALLOC_BIT_SINGLE)
diff --git a/libc/kernel/uapi/linux/cec.h b/libc/kernel/uapi/linux/cec.h
index 05af529..a3aa2d6 100644
--- a/libc/kernel/uapi/linux/cec.h
+++ b/libc/kernel/uapi/linux/cec.h
@@ -38,6 +38,7 @@
__u8 tx_error_cnt;
};
#define CEC_MSG_FL_REPLY_TO_FOLLOWERS (1 << 0)
+#define CEC_MSG_FL_RAW (1 << 1)
#define CEC_TX_STATUS_OK (1 << 0)
#define CEC_TX_STATUS_ARB_LOST (1 << 1)
#define CEC_TX_STATUS_NACK (1 << 2)
diff --git a/libc/kernel/uapi/linux/coda.h b/libc/kernel/uapi/linux/coda.h
index 93d6f7c..aad1b97 100644
--- a/libc/kernel/uapi/linux/coda.h
+++ b/libc/kernel/uapi/linux/coda.h
@@ -38,10 +38,6 @@
typedef unsigned long long u_quad_t;
#endif
#define inline
-struct timespec {
- long ts_sec;
- long ts_nsec;
-};
#else
#include <sys/time.h>
typedef unsigned long long u_quad_t;
@@ -57,12 +53,6 @@
#else
#define cdev_t dev_t
#endif
-#ifdef __CYGWIN32__
-struct timespec {
- time_t tv_sec;
- long tv_nsec;
-};
-#endif
#ifndef __BIT_TYPES_DEFINED__
#define __BIT_TYPES_DEFINED__
typedef signed char int8_t;
@@ -132,6 +122,10 @@
C_VFIFO,
C_VBAD
};
+struct coda_timespec {
+ int64_t tv_sec;
+ long tv_nsec;
+};
struct coda_vattr {
long va_type;
u_short va_mode;
@@ -141,9 +135,9 @@
long va_fileid;
u_quad_t va_size;
long va_blocksize;
- struct timespec va_atime;
- struct timespec va_mtime;
- struct timespec va_ctime;
+ struct coda_timespec va_atime;
+ struct coda_timespec va_mtime;
+ struct coda_timespec va_ctime;
u_long va_gen;
u_long va_flags;
cdev_t va_rdev;
@@ -190,17 +184,18 @@
#define CODA_STATFS 34
#define CODA_STORE 35
#define CODA_RELEASE 36
-#define CODA_NCALLS 37
+#define CODA_ACCESS_INTENT 37
+#define CODA_NCALLS 38
#define DOWNCALL(opcode) (opcode >= CODA_REPLACE && opcode <= CODA_PURGEFID)
#define VC_MAXDATASIZE 8192
#define VC_MAXMSGSIZE sizeof(union inputArgs) + sizeof(union outputArgs) + VC_MAXDATASIZE
#define CIOC_KERNEL_VERSION _IOWR('c', 10, size_t)
-#define CODA_KERNEL_VERSION 3
+#define CODA_KERNEL_VERSION 5
struct coda_in_hdr {
u_int32_t opcode;
u_int32_t unique;
- pid_t pid;
- pid_t pgid;
+ __kernel_pid_t pid;
+ __kernel_pid_t pgid;
vuid_t uid;
};
struct coda_out_hdr {
@@ -439,6 +434,21 @@
struct coda_out_hdr oh;
struct coda_statfs stat;
};
+#define CODA_ACCESS_TYPE_READ 1
+#define CODA_ACCESS_TYPE_WRITE 2
+#define CODA_ACCESS_TYPE_MMAP 3
+#define CODA_ACCESS_TYPE_READ_FINISH 4
+#define CODA_ACCESS_TYPE_WRITE_FINISH 5
+struct coda_access_intent_in {
+ struct coda_in_hdr ih;
+ struct CodaFid VFid;
+ int count;
+ int pos;
+ int type;
+};
+struct coda_access_intent_out {
+ struct coda_out_hdr out;
+};
#define CODA_NOCACHE 0x80000000
union inputArgs {
struct coda_in_hdr ih;
@@ -464,6 +474,7 @@
struct coda_open_by_fd_in coda_open_by_fd;
struct coda_open_by_path_in coda_open_by_path;
struct coda_statfs_in coda_statfs;
+ struct coda_access_intent_in coda_access_intent;
};
union outputArgs {
struct coda_out_hdr oh;
diff --git a/libc/kernel/uapi/linux/coda_psdev.h b/libc/kernel/uapi/linux/coda_psdev.h
deleted file mode 100644
index 7850db6..0000000
--- a/libc/kernel/uapi/linux/coda_psdev.h
+++ /dev/null
@@ -1,28 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- *** This header was automatically generated from a Linux kernel header
- *** of the same name, to make information necessary for userspace to
- *** call into the kernel available to libc. It contains only constants,
- *** structures, and macros generated from the original header, and thus,
- *** contains no copyrightable information.
- ***
- *** To edit the content of this header, modify the corresponding
- *** source file (e.g. under external/kernel-headers/original/) then
- *** run bionic/libc/kernel/tools/update_all.py
- ***
- *** Any manual change here will be lost the next time this script will
- *** be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef _UAPI__CODA_PSDEV_H
-#define _UAPI__CODA_PSDEV_H
-#include <linux/magic.h>
-#define CODA_PSDEV_MAJOR 67
-#define MAX_CODADEVS 5
-#define CODA_REQ_ASYNC 0x1
-#define CODA_REQ_READ 0x2
-#define CODA_REQ_WRITE 0x4
-#define CODA_REQ_ABORT 0x8
-#endif
diff --git a/libc/kernel/uapi/linux/devlink.h b/libc/kernel/uapi/linux/devlink.h
index 972d8cc..1cf9d95 100644
--- a/libc/kernel/uapi/linux/devlink.h
+++ b/libc/kernel/uapi/linux/devlink.h
@@ -83,6 +83,8 @@
DEVLINK_CMD_HEALTH_REPORTER_DUMP_GET,
DEVLINK_CMD_HEALTH_REPORTER_DUMP_CLEAR,
DEVLINK_CMD_FLASH_UPDATE,
+ DEVLINK_CMD_FLASH_UPDATE_END,
+ DEVLINK_CMD_FLASH_UPDATE_STATUS,
__DEVLINK_CMD_MAX,
DEVLINK_CMD_MAX = __DEVLINK_CMD_MAX - 1
};
@@ -119,6 +121,8 @@
DEVLINK_PORT_FLAVOUR_PHYSICAL,
DEVLINK_PORT_FLAVOUR_CPU,
DEVLINK_PORT_FLAVOUR_DSA,
+ DEVLINK_PORT_FLAVOUR_PCI_PF,
+ DEVLINK_PORT_FLAVOUR_PCI_VF,
};
enum devlink_param_cmode {
DEVLINK_PARAM_CMODE_RUNTIME,
@@ -256,6 +260,11 @@
DEVLINK_ATTR_HEALTH_REPORTER_AUTO_RECOVER,
DEVLINK_ATTR_FLASH_UPDATE_FILE_NAME,
DEVLINK_ATTR_FLASH_UPDATE_COMPONENT,
+ DEVLINK_ATTR_FLASH_UPDATE_STATUS_MSG,
+ DEVLINK_ATTR_FLASH_UPDATE_STATUS_DONE,
+ DEVLINK_ATTR_FLASH_UPDATE_STATUS_TOTAL,
+ DEVLINK_ATTR_PORT_PCI_PF_NUMBER,
+ DEVLINK_ATTR_PORT_PCI_VF_NUMBER,
__DEVLINK_ATTR_MAX,
DEVLINK_ATTR_MAX = __DEVLINK_ATTR_MAX - 1
};
diff --git a/libc/kernel/uapi/linux/dma-buf.h b/libc/kernel/uapi/linux/dma-buf.h
index 7771906..3d7c099 100644
--- a/libc/kernel/uapi/linux/dma-buf.h
+++ b/libc/kernel/uapi/linux/dma-buf.h
@@ -28,6 +28,8 @@
#define DMA_BUF_SYNC_START (0 << 2)
#define DMA_BUF_SYNC_END (1 << 2)
#define DMA_BUF_SYNC_VALID_FLAGS_MASK (DMA_BUF_SYNC_RW | DMA_BUF_SYNC_END)
+#define DMA_BUF_NAME_LEN 32
#define DMA_BUF_BASE 'b'
#define DMA_BUF_IOCTL_SYNC _IOW(DMA_BUF_BASE, 0, struct dma_buf_sync)
+#define DMA_BUF_SET_NAME _IOW(DMA_BUF_BASE, 1, const char *)
#endif
diff --git a/libc/kernel/uapi/linux/ethtool.h b/libc/kernel/uapi/linux/ethtool.h
index 67a7efd..6b2b8d5 100644
--- a/libc/kernel/uapi/linux/ethtool.h
+++ b/libc/kernel/uapi/linux/ethtool.h
@@ -604,6 +604,8 @@
ETHTOOL_LINK_MODE_200000baseLR4_ER4_FR4_Full_BIT = 64,
ETHTOOL_LINK_MODE_200000baseDR4_Full_BIT = 65,
ETHTOOL_LINK_MODE_200000baseCR4_Full_BIT = 66,
+ ETHTOOL_LINK_MODE_100baseT1_Full_BIT = 67,
+ ETHTOOL_LINK_MODE_1000baseT1_Full_BIT = 68,
__ETHTOOL_LINK_MODE_MASK_NBITS
};
#define __ETHTOOL_LINK_MODE_LEGACY_MASK(base_name) (1UL << (ETHTOOL_LINK_MODE_ ##base_name ##_BIT))
diff --git a/libc/kernel/uapi/linux/if_ether.h b/libc/kernel/uapi/linux/if_ether.h
index 9e0b15c..dd2dedb 100644
--- a/libc/kernel/uapi/linux/if_ether.h
+++ b/libc/kernel/uapi/linux/if_ether.h
@@ -72,6 +72,7 @@
#define ETH_P_802_EX1 0x88B5
#define ETH_P_PREAUTH 0x88C7
#define ETH_P_TIPC 0x88CA
+#define ETH_P_LLDP 0x88CC
#define ETH_P_MACSEC 0x88E5
#define ETH_P_8021AH 0x88E7
#define ETH_P_MVRP 0x88F5
diff --git a/libc/kernel/uapi/linux/if_link.h b/libc/kernel/uapi/linux/if_link.h
index 8d0080b..45ef92b 100644
--- a/libc/kernel/uapi/linux/if_link.h
+++ b/libc/kernel/uapi/linux/if_link.h
@@ -515,6 +515,7 @@
IFLA_BOND_AD_USER_PORT_KEY,
IFLA_BOND_AD_ACTOR_SYSTEM,
IFLA_BOND_TLB_DYNAMIC_LB,
+ IFLA_BOND_PEER_NOTIF_DELAY,
__IFLA_BOND_MAX,
};
#define IFLA_BOND_MAX (__IFLA_BOND_MAX - 1)
@@ -561,6 +562,7 @@
IFLA_VF_IB_NODE_GUID,
IFLA_VF_IB_PORT_GUID,
IFLA_VF_VLAN_LIST,
+ IFLA_VF_BROADCAST,
__IFLA_VF_MAX,
};
#define IFLA_VF_MAX (__IFLA_VF_MAX - 1)
@@ -568,6 +570,9 @@
__u32 vf;
__u8 mac[32];
};
+struct ifla_vf_broadcast {
+ __u8 broadcast[32];
+};
struct ifla_vf_vlan {
__u32 vf;
__u32 vlan;
diff --git a/libc/kernel/uapi/linux/if_packet.h b/libc/kernel/uapi/linux/if_packet.h
index 300aa7b..db24bbe 100644
--- a/libc/kernel/uapi/linux/if_packet.h
+++ b/libc/kernel/uapi/linux/if_packet.h
@@ -117,7 +117,7 @@
#define TP_STATUS_WRONG_FORMAT (1 << 2)
#define TP_STATUS_TS_SOFTWARE (1 << 29)
#define TP_STATUS_TS_SYS_HARDWARE (1 << 30)
-#define TP_STATUS_TS_RAW_HARDWARE (1 << 31)
+#define TP_STATUS_TS_RAW_HARDWARE (1U << 31)
#define TP_FT_REQ_FILL_RXHASH 0x1
struct tpacket_hdr {
unsigned long tp_status;
diff --git a/libc/kernel/uapi/linux/if_xdp.h b/libc/kernel/uapi/linux/if_xdp.h
index a0935bd..2c2596c 100644
--- a/libc/kernel/uapi/linux/if_xdp.h
+++ b/libc/kernel/uapi/linux/if_xdp.h
@@ -47,6 +47,7 @@
#define XDP_UMEM_FILL_RING 5
#define XDP_UMEM_COMPLETION_RING 6
#define XDP_STATISTICS 7
+#define XDP_OPTIONS 8
struct xdp_umem_reg {
__u64 addr;
__u64 len;
@@ -58,6 +59,10 @@
__u64 rx_invalid_descs;
__u64 tx_invalid_descs;
};
+struct xdp_options {
+ __u32 flags;
+};
+#define XDP_OPTIONS_ZEROCOPY (1 << 0)
#define XDP_PGOFF_RX_RING 0
#define XDP_PGOFF_TX_RING 0x80000000
#define XDP_UMEM_PGOFF_FILL_RING 0x100000000ULL
diff --git a/libc/kernel/uapi/linux/io_uring.h b/libc/kernel/uapi/linux/io_uring.h
index 434b24b..c5055ba 100644
--- a/libc/kernel/uapi/linux/io_uring.h
+++ b/libc/kernel/uapi/linux/io_uring.h
@@ -33,6 +33,7 @@
__u32 fsync_flags;
__u16 poll_events;
__u32 sync_range_flags;
+ __u32 msg_flags;
};
__u64 user_data;
union {
@@ -42,6 +43,7 @@
};
#define IOSQE_FIXED_FILE (1U << 0)
#define IOSQE_IO_DRAIN (1U << 1)
+#define IOSQE_IO_LINK (1U << 2)
#define IORING_SETUP_IOPOLL (1U << 0)
#define IORING_SETUP_SQPOLL (1U << 1)
#define IORING_SETUP_SQ_AFF (1U << 2)
@@ -54,6 +56,8 @@
#define IORING_OP_POLL_ADD 6
#define IORING_OP_POLL_REMOVE 7
#define IORING_OP_SYNC_FILE_RANGE 8
+#define IORING_OP_SENDMSG 9
+#define IORING_OP_RECVMSG 10
#define IORING_FSYNC_DATASYNC (1U << 0)
struct io_uring_cqe {
__u64 user_data;
diff --git a/libc/kernel/uapi/linux/iommu.h b/libc/kernel/uapi/linux/iommu.h
new file mode 100644
index 0000000..3c7849a
--- /dev/null
+++ b/libc/kernel/uapi/linux/iommu.h
@@ -0,0 +1,86 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ *** This header was automatically generated from a Linux kernel header
+ *** of the same name, to make information necessary for userspace to
+ *** call into the kernel available to libc. It contains only constants,
+ *** structures, and macros generated from the original header, and thus,
+ *** contains no copyrightable information.
+ ***
+ *** To edit the content of this header, modify the corresponding
+ *** source file (e.g. under external/kernel-headers/original/) then
+ *** run bionic/libc/kernel/tools/update_all.py
+ ***
+ *** Any manual change here will be lost the next time this script will
+ *** be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef _UAPI_IOMMU_H
+#define _UAPI_IOMMU_H
+#include <linux/types.h>
+#define IOMMU_FAULT_PERM_READ (1 << 0)
+#define IOMMU_FAULT_PERM_WRITE (1 << 1)
+#define IOMMU_FAULT_PERM_EXEC (1 << 2)
+#define IOMMU_FAULT_PERM_PRIV (1 << 3)
+enum iommu_fault_type {
+ IOMMU_FAULT_DMA_UNRECOV = 1,
+ IOMMU_FAULT_PAGE_REQ,
+};
+enum iommu_fault_reason {
+ IOMMU_FAULT_REASON_UNKNOWN = 0,
+ IOMMU_FAULT_REASON_PASID_FETCH,
+ IOMMU_FAULT_REASON_BAD_PASID_ENTRY,
+ IOMMU_FAULT_REASON_PASID_INVALID,
+ IOMMU_FAULT_REASON_WALK_EABT,
+ IOMMU_FAULT_REASON_PTE_FETCH,
+ IOMMU_FAULT_REASON_PERMISSION,
+ IOMMU_FAULT_REASON_ACCESS,
+ IOMMU_FAULT_REASON_OOR_ADDRESS,
+};
+struct iommu_fault_unrecoverable {
+ __u32 reason;
+#define IOMMU_FAULT_UNRECOV_PASID_VALID (1 << 0)
+#define IOMMU_FAULT_UNRECOV_ADDR_VALID (1 << 1)
+#define IOMMU_FAULT_UNRECOV_FETCH_ADDR_VALID (1 << 2)
+ __u32 flags;
+ __u32 pasid;
+ __u32 perm;
+ __u64 addr;
+ __u64 fetch_addr;
+};
+struct iommu_fault_page_request {
+#define IOMMU_FAULT_PAGE_REQUEST_PASID_VALID (1 << 0)
+#define IOMMU_FAULT_PAGE_REQUEST_LAST_PAGE (1 << 1)
+#define IOMMU_FAULT_PAGE_REQUEST_PRIV_DATA (1 << 2)
+ __u32 flags;
+ __u32 pasid;
+ __u32 grpid;
+ __u32 perm;
+ __u64 addr;
+ __u64 private_data[2];
+};
+struct iommu_fault {
+ __u32 type;
+ __u32 padding;
+ union {
+ struct iommu_fault_unrecoverable event;
+ struct iommu_fault_page_request prm;
+ __u8 padding2[56];
+ };
+};
+enum iommu_page_response_code {
+ IOMMU_PAGE_RESP_SUCCESS = 0,
+ IOMMU_PAGE_RESP_INVALID,
+ IOMMU_PAGE_RESP_FAILURE,
+};
+struct iommu_page_response {
+#define IOMMU_PAGE_RESP_VERSION_1 1
+ __u32 version;
+#define IOMMU_PAGE_RESP_PASID_VALID (1 << 0)
+ __u32 flags;
+ __u32 pasid;
+ __u32 grpid;
+ __u32 code;
+};
+#endif
diff --git a/libc/kernel/uapi/linux/ip_vs.h b/libc/kernel/uapi/linux/ip_vs.h
index 0230aae..6e3defe 100644
--- a/libc/kernel/uapi/linux/ip_vs.h
+++ b/libc/kernel/uapi/linux/ip_vs.h
@@ -88,8 +88,12 @@
enum {
IP_VS_CONN_F_TUNNEL_TYPE_IPIP = 0,
IP_VS_CONN_F_TUNNEL_TYPE_GUE,
+ IP_VS_CONN_F_TUNNEL_TYPE_GRE,
IP_VS_CONN_F_TUNNEL_TYPE_MAX,
};
+#define IP_VS_TUNNEL_ENCAP_FLAG_NOCSUM (0)
+#define IP_VS_TUNNEL_ENCAP_FLAG_CSUM (1 << 0)
+#define IP_VS_TUNNEL_ENCAP_FLAG_REMCSUM (1 << 1)
struct ip_vs_service_user {
__u16 protocol;
__be32 addr;
@@ -243,6 +247,7 @@
IPVS_DEST_ATTR_STATS64,
IPVS_DEST_ATTR_TUN_TYPE,
IPVS_DEST_ATTR_TUN_PORT,
+ IPVS_DEST_ATTR_TUN_FLAGS,
__IPVS_DEST_ATTR_MAX,
};
#define IPVS_DEST_ATTR_MAX (__IPVS_DEST_ATTR_MAX - 1)
diff --git a/libc/kernel/uapi/linux/isdn.h b/libc/kernel/uapi/linux/isdn.h
deleted file mode 100644
index b1ec37e..0000000
--- a/libc/kernel/uapi/linux/isdn.h
+++ /dev/null
@@ -1,125 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- *** This header was automatically generated from a Linux kernel header
- *** of the same name, to make information necessary for userspace to
- *** call into the kernel available to libc. It contains only constants,
- *** structures, and macros generated from the original header, and thus,
- *** contains no copyrightable information.
- ***
- *** To edit the content of this header, modify the corresponding
- *** source file (e.g. under external/kernel-headers/original/) then
- *** run bionic/libc/kernel/tools/update_all.py
- ***
- *** Any manual change here will be lost the next time this script will
- *** be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef _UAPI__ISDN_H__
-#define _UAPI__ISDN_H__
-#include <linux/ioctl.h>
-#include <linux/tty.h>
-#define ISDN_MAX_DRIVERS 32
-#define ISDN_MAX_CHANNELS 64
-#define IIOCNETAIF _IO('I', 1)
-#define IIOCNETDIF _IO('I', 2)
-#define IIOCNETSCF _IO('I', 3)
-#define IIOCNETGCF _IO('I', 4)
-#define IIOCNETANM _IO('I', 5)
-#define IIOCNETDNM _IO('I', 6)
-#define IIOCNETGNM _IO('I', 7)
-#define IIOCGETSET _IO('I', 8)
-#define IIOCSETSET _IO('I', 9)
-#define IIOCSETVER _IO('I', 10)
-#define IIOCNETHUP _IO('I', 11)
-#define IIOCSETGST _IO('I', 12)
-#define IIOCSETBRJ _IO('I', 13)
-#define IIOCSIGPRF _IO('I', 14)
-#define IIOCGETPRF _IO('I', 15)
-#define IIOCSETPRF _IO('I', 16)
-#define IIOCGETMAP _IO('I', 17)
-#define IIOCSETMAP _IO('I', 18)
-#define IIOCNETASL _IO('I', 19)
-#define IIOCNETDIL _IO('I', 20)
-#define IIOCGETCPS _IO('I', 21)
-#define IIOCGETDVR _IO('I', 22)
-#define IIOCNETLCR _IO('I', 23)
-#define IIOCNETDWRSET _IO('I', 24)
-#define IIOCNETALN _IO('I', 32)
-#define IIOCNETDLN _IO('I', 33)
-#define IIOCNETGPN _IO('I', 34)
-#define IIOCDBGVAR _IO('I', 127)
-#define IIOCDRVCTL _IO('I', 128)
-#define SIOCGKEEPPERIOD (SIOCDEVPRIVATE + 0)
-#define SIOCSKEEPPERIOD (SIOCDEVPRIVATE + 1)
-#define SIOCGDEBSERINT (SIOCDEVPRIVATE + 2)
-#define SIOCSDEBSERINT (SIOCDEVPRIVATE + 3)
-#define ISDN_NET_ENCAP_ETHER 0
-#define ISDN_NET_ENCAP_RAWIP 1
-#define ISDN_NET_ENCAP_IPTYP 2
-#define ISDN_NET_ENCAP_CISCOHDLC 3
-#define ISDN_NET_ENCAP_SYNCPPP 4
-#define ISDN_NET_ENCAP_UIHDLC 5
-#define ISDN_NET_ENCAP_CISCOHDLCK 6
-#define ISDN_NET_ENCAP_X25IFACE 7
-#define ISDN_NET_ENCAP_MAX_ENCAP ISDN_NET_ENCAP_X25IFACE
-#define ISDN_USAGE_NONE 0
-#define ISDN_USAGE_RAW 1
-#define ISDN_USAGE_MODEM 2
-#define ISDN_USAGE_NET 3
-#define ISDN_USAGE_VOICE 4
-#define ISDN_USAGE_FAX 5
-#define ISDN_USAGE_MASK 7
-#define ISDN_USAGE_DISABLED 32
-#define ISDN_USAGE_EXCLUSIVE 64
-#define ISDN_USAGE_OUTGOING 128
-#define ISDN_MODEM_NUMREG 24
-#define ISDN_LMSNLEN 255
-#define ISDN_CMSGLEN 50
-#define ISDN_MSNLEN 32
-#define NET_DV 0x06
-#define TTY_DV 0x06
-#define INF_DV 0x01
-typedef struct {
- char drvid[25];
- unsigned long arg;
-} isdn_ioctl_struct;
-typedef struct {
- char name[10];
- char phone[ISDN_MSNLEN];
- int outgoing;
-} isdn_net_ioctl_phone;
-typedef struct {
- char name[10];
- char master[10];
- char slave[10];
- char eaz[256];
- char drvid[25];
- int onhtime;
- int charge;
- int l2_proto;
- int l3_proto;
- int p_encap;
- int exclusive;
- int dialmax;
- int slavedelay;
- int cbdelay;
- int chargehup;
- int ihup;
- int secure;
- int callback;
- int cbhup;
- int pppbind;
- int chargeint;
- int triggercps;
- int dialtimeout;
- int dialwait;
- int dialmode;
-} isdn_net_ioctl_cfg;
-#define ISDN_NET_DIALMODE_MASK 0xC0
-#define ISDN_NET_DM_OFF 0x00
-#define ISDN_NET_DM_MANUAL 0x40
-#define ISDN_NET_DM_AUTO 0x80
-#define ISDN_NET_DIALMODE(x) ((& (x))->flags & ISDN_NET_DIALMODE_MASK)
-#endif
diff --git a/libc/kernel/uapi/linux/isdn/capicmd.h b/libc/kernel/uapi/linux/isdn/capicmd.h
index d6ce6ed..419b278 100644
--- a/libc/kernel/uapi/linux/isdn/capicmd.h
+++ b/libc/kernel/uapi/linux/isdn/capicmd.h
@@ -21,6 +21,7 @@
#define CAPI_MSG_BASELEN 8
#define CAPI_DATA_B3_REQ_LEN (CAPI_MSG_BASELEN + 4 + 4 + 2 + 2 + 2)
#define CAPI_DATA_B3_RESP_LEN (CAPI_MSG_BASELEN + 4 + 2)
+#define CAPI_DISCONNECT_B3_RESP_LEN (CAPI_MSG_BASELEN + 4)
#define CAPI_ALERT 0x01
#define CAPI_CONNECT 0x02
#define CAPI_CONNECT_ACTIVE 0x03
diff --git a/libc/kernel/uapi/linux/isdn_ppp.h b/libc/kernel/uapi/linux/isdn_ppp.h
deleted file mode 100644
index 83cb77c..0000000
--- a/libc/kernel/uapi/linux/isdn_ppp.h
+++ /dev/null
@@ -1,61 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- *** This header was automatically generated from a Linux kernel header
- *** of the same name, to make information necessary for userspace to
- *** call into the kernel available to libc. It contains only constants,
- *** structures, and macros generated from the original header, and thus,
- *** contains no copyrightable information.
- ***
- *** To edit the content of this header, modify the corresponding
- *** source file (e.g. under external/kernel-headers/original/) then
- *** run bionic/libc/kernel/tools/update_all.py
- ***
- *** Any manual change here will be lost the next time this script will
- *** be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef _UAPI_LINUX_ISDN_PPP_H
-#define _UAPI_LINUX_ISDN_PPP_H
-#define CALLTYPE_INCOMING 0x1
-#define CALLTYPE_OUTGOING 0x2
-#define CALLTYPE_CALLBACK 0x4
-#define IPPP_VERSION "2.2.0"
-struct pppcallinfo {
- int calltype;
- unsigned char local_num[64];
- unsigned char remote_num[64];
- int charge_units;
-};
-#define PPPIOCGCALLINFO _IOWR('t', 128, struct pppcallinfo)
-#define PPPIOCBUNDLE _IOW('t', 129, int)
-#define PPPIOCGMPFLAGS _IOR('t', 130, int)
-#define PPPIOCSMPFLAGS _IOW('t', 131, int)
-#define PPPIOCSMPMTU _IOW('t', 132, int)
-#define PPPIOCSMPMRU _IOW('t', 133, int)
-#define PPPIOCGCOMPRESSORS _IOR('t', 134, unsigned long[8])
-#define PPPIOCSCOMPRESSOR _IOW('t', 135, int)
-#define PPPIOCGIFNAME _IOR('t', 136, char[IFNAMSIZ])
-#define SC_MP_PROT 0x00000200
-#define SC_REJ_MP_PROT 0x00000400
-#define SC_OUT_SHORT_SEQ 0x00000800
-#define SC_IN_SHORT_SEQ 0x00004000
-#define SC_DECOMP_ON 0x01
-#define SC_COMP_ON 0x02
-#define SC_DECOMP_DISCARD 0x04
-#define SC_COMP_DISCARD 0x08
-#define SC_LINK_DECOMP_ON 0x10
-#define SC_LINK_COMP_ON 0x20
-#define SC_LINK_DECOMP_DISCARD 0x40
-#define SC_LINK_COMP_DISCARD 0x80
-#define ISDN_PPP_COMP_MAX_OPTIONS 16
-#define IPPP_COMP_FLAG_XMIT 0x1
-#define IPPP_COMP_FLAG_LINK 0x2
-struct isdn_ppp_comp_data {
- int num;
- unsigned char options[ISDN_PPP_COMP_MAX_OPTIONS];
- int optlen;
- int flags;
-};
-#endif
diff --git a/libc/kernel/uapi/linux/isdnif.h b/libc/kernel/uapi/linux/isdnif.h
deleted file mode 100644
index 933f4b1..0000000
--- a/libc/kernel/uapi/linux/isdnif.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- *** This header was automatically generated from a Linux kernel header
- *** of the same name, to make information necessary for userspace to
- *** call into the kernel available to libc. It contains only constants,
- *** structures, and macros generated from the original header, and thus,
- *** contains no copyrightable information.
- ***
- *** To edit the content of this header, modify the corresponding
- *** source file (e.g. under external/kernel-headers/original/) then
- *** run bionic/libc/kernel/tools/update_all.py
- ***
- *** Any manual change here will be lost the next time this script will
- *** be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef _UAPI__ISDNIF_H__
-#define _UAPI__ISDNIF_H__
-#define ISDN_PTYPE_UNKNOWN 0
-#define ISDN_PTYPE_1TR6 1
-#define ISDN_PTYPE_EURO 2
-#define ISDN_PTYPE_LEASED 3
-#define ISDN_PTYPE_NI1 4
-#define ISDN_PTYPE_MAX 7
-#define ISDN_PROTO_L2_X75I 0
-#define ISDN_PROTO_L2_X75UI 1
-#define ISDN_PROTO_L2_X75BUI 2
-#define ISDN_PROTO_L2_HDLC 3
-#define ISDN_PROTO_L2_TRANS 4
-#define ISDN_PROTO_L2_X25DTE 5
-#define ISDN_PROTO_L2_X25DCE 6
-#define ISDN_PROTO_L2_V11096 7
-#define ISDN_PROTO_L2_V11019 8
-#define ISDN_PROTO_L2_V11038 9
-#define ISDN_PROTO_L2_MODEM 10
-#define ISDN_PROTO_L2_FAX 11
-#define ISDN_PROTO_L2_HDLC_56K 12
-#define ISDN_PROTO_L2_MAX 15
-#define ISDN_PROTO_L3_TRANS 0
-#define ISDN_PROTO_L3_TRANSDSP 1
-#define ISDN_PROTO_L3_FCLASS2 2
-#define ISDN_PROTO_L3_FCLASS1 3
-#define ISDN_PROTO_L3_MAX 7
-#endif
diff --git a/libc/kernel/uapi/linux/isst_if.h b/libc/kernel/uapi/linux/isst_if.h
new file mode 100644
index 0000000..322f70d
--- /dev/null
+++ b/libc/kernel/uapi/linux/isst_if.h
@@ -0,0 +1,76 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ *** This header was automatically generated from a Linux kernel header
+ *** of the same name, to make information necessary for userspace to
+ *** call into the kernel available to libc. It contains only constants,
+ *** structures, and macros generated from the original header, and thus,
+ *** contains no copyrightable information.
+ ***
+ *** To edit the content of this header, modify the corresponding
+ *** source file (e.g. under external/kernel-headers/original/) then
+ *** run bionic/libc/kernel/tools/update_all.py
+ ***
+ *** Any manual change here will be lost the next time this script will
+ *** be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef __ISST_IF_H
+#define __ISST_IF_H
+#include <linux/types.h>
+struct isst_if_platform_info {
+ __u16 api_version;
+ __u16 driver_version;
+ __u16 max_cmds_per_ioctl;
+ __u8 mbox_supported;
+ __u8 mmio_supported;
+};
+struct isst_if_cpu_map {
+ __u32 logical_cpu;
+ __u32 physical_cpu;
+};
+struct isst_if_cpu_maps {
+ __u32 cmd_count;
+ struct isst_if_cpu_map cpu_map[1];
+};
+struct isst_if_io_reg {
+ __u32 read_write;
+ __u32 logical_cpu;
+ __u32 reg;
+ __u32 value;
+};
+struct isst_if_io_regs {
+ __u32 req_count;
+ struct isst_if_io_reg io_reg[1];
+};
+struct isst_if_mbox_cmd {
+ __u32 logical_cpu;
+ __u32 parameter;
+ __u32 req_data;
+ __u32 resp_data;
+ __u16 command;
+ __u16 sub_command;
+ __u32 reserved;
+};
+struct isst_if_mbox_cmds {
+ __u32 cmd_count;
+ struct isst_if_mbox_cmd mbox_cmd[1];
+};
+struct isst_if_msr_cmd {
+ __u32 read_write;
+ __u32 logical_cpu;
+ __u64 msr;
+ __u64 data;
+};
+struct isst_if_msr_cmds {
+ __u32 cmd_count;
+ struct isst_if_msr_cmd msr_cmd[1];
+};
+#define ISST_IF_MAGIC 0xFE
+#define ISST_IF_GET_PLATFORM_INFO _IOR(ISST_IF_MAGIC, 0, struct isst_if_platform_info *)
+#define ISST_IF_GET_PHY_ID _IOWR(ISST_IF_MAGIC, 1, struct isst_if_cpu_map *)
+#define ISST_IF_IO_CMD _IOW(ISST_IF_MAGIC, 2, struct isst_if_io_regs *)
+#define ISST_IF_MBOX_COMMAND _IOWR(ISST_IF_MAGIC, 3, struct isst_if_mbox_cmds *)
+#define ISST_IF_MSR_COMMAND _IOWR(ISST_IF_MAGIC, 4, struct isst_if_msr_cmds *)
+#endif
diff --git a/libc/kernel/uapi/linux/keyctl.h b/libc/kernel/uapi/linux/keyctl.h
index 53f0468..e3fef38 100644
--- a/libc/kernel/uapi/linux/keyctl.h
+++ b/libc/kernel/uapi/linux/keyctl.h
@@ -66,6 +66,8 @@
#define KEYCTL_PKEY_SIGN 27
#define KEYCTL_PKEY_VERIFY 28
#define KEYCTL_RESTRICT_KEYRING 29
+#define KEYCTL_MOVE 30
+#define KEYCTL_CAPABILITIES 31
struct keyctl_dh_params {
union {
#ifndef __cplusplus
@@ -104,4 +106,15 @@
};
__u32 __spare[7];
};
+#define KEYCTL_MOVE_EXCL 0x00000001
+#define KEYCTL_CAPS0_CAPABILITIES 0x01
+#define KEYCTL_CAPS0_PERSISTENT_KEYRINGS 0x02
+#define KEYCTL_CAPS0_DIFFIE_HELLMAN 0x04
+#define KEYCTL_CAPS0_PUBLIC_KEY 0x08
+#define KEYCTL_CAPS0_BIG_KEY 0x10
+#define KEYCTL_CAPS0_INVALIDATE 0x20
+#define KEYCTL_CAPS0_RESTRICT_KEYRING 0x40
+#define KEYCTL_CAPS0_MOVE 0x80
+#define KEYCTL_CAPS1_NS_KEYRING_NAME 0x01
+#define KEYCTL_CAPS1_NS_KEY_TAG 0x02
#endif
diff --git a/libc/kernel/uapi/linux/kfd_ioctl.h b/libc/kernel/uapi/linux/kfd_ioctl.h
index 400c423..8b09f00 100644
--- a/libc/kernel/uapi/linux/kfd_ioctl.h
+++ b/libc/kernel/uapi/linux/kfd_ioctl.h
@@ -26,9 +26,10 @@
__u32 major_version;
__u32 minor_version;
};
-#define KFD_IOC_QUEUE_TYPE_COMPUTE 0
-#define KFD_IOC_QUEUE_TYPE_SDMA 1
-#define KFD_IOC_QUEUE_TYPE_COMPUTE_AQL 2
+#define KFD_IOC_QUEUE_TYPE_COMPUTE 0x0
+#define KFD_IOC_QUEUE_TYPE_SDMA 0x1
+#define KFD_IOC_QUEUE_TYPE_COMPUTE_AQL 0x2
+#define KFD_IOC_QUEUE_TYPE_SDMA_XGMI 0x3
#define KFD_MAX_QUEUE_PERCENTAGE 100
#define KFD_MAX_QUEUE_PRIORITY 15
struct kfd_ioctl_create_queue_args {
@@ -236,6 +237,7 @@
#define KFD_IOC_ALLOC_MEM_FLAGS_GTT (1 << 1)
#define KFD_IOC_ALLOC_MEM_FLAGS_USERPTR (1 << 2)
#define KFD_IOC_ALLOC_MEM_FLAGS_DOORBELL (1 << 3)
+#define KFD_IOC_ALLOC_MEM_FLAGS_MMIO_REMAP (1 << 4)
#define KFD_IOC_ALLOC_MEM_FLAGS_WRITABLE (1 << 31)
#define KFD_IOC_ALLOC_MEM_FLAGS_EXECUTABLE (1 << 30)
#define KFD_IOC_ALLOC_MEM_FLAGS_PUBLIC (1 << 29)
@@ -279,6 +281,10 @@
__u32 gpu_id;
__u32 dmabuf_fd;
};
+enum kfd_mmio_remap {
+ KFD_MMIO_REMAP_HDP_MEM_FLUSH_CNTL = 0,
+ KFD_MMIO_REMAP_HDP_REG_FLUSH_CNTL = 4,
+};
#define AMDKFD_IOCTL_BASE 'K'
#define AMDKFD_IO(nr) _IO(AMDKFD_IOCTL_BASE, nr)
#define AMDKFD_IOR(nr,type) _IOR(AMDKFD_IOCTL_BASE, nr, type)
diff --git a/libc/kernel/uapi/linux/kvm.h b/libc/kernel/uapi/linux/kvm.h
index 374b0d1..7b8fb1b 100644
--- a/libc/kernel/uapi/linux/kvm.h
+++ b/libc/kernel/uapi/linux/kvm.h
@@ -529,7 +529,8 @@
#define KVM_X86_DISABLE_EXITS_MWAIT (1 << 0)
#define KVM_X86_DISABLE_EXITS_HLT (1 << 1)
#define KVM_X86_DISABLE_EXITS_PAUSE (1 << 2)
-#define KVM_X86_DISABLE_VALID_EXITS (KVM_X86_DISABLE_EXITS_MWAIT | KVM_X86_DISABLE_EXITS_HLT | KVM_X86_DISABLE_EXITS_PAUSE)
+#define KVM_X86_DISABLE_EXITS_CSTATE (1 << 3)
+#define KVM_X86_DISABLE_VALID_EXITS (KVM_X86_DISABLE_EXITS_MWAIT | KVM_X86_DISABLE_EXITS_HLT | KVM_X86_DISABLE_EXITS_PAUSE | KVM_X86_DISABLE_EXITS_CSTATE)
struct kvm_enable_cap {
__u32 cap;
__u32 flags;
@@ -775,6 +776,7 @@
#define KVM_CAP_ARM_SVE 170
#define KVM_CAP_ARM_PTRAUTH_ADDRESS 171
#define KVM_CAP_ARM_PTRAUTH_GENERIC 172
+#define KVM_CAP_PMU_EVENT_FILTER 173
#ifdef KVM_CAP_IRQ_ROUTING
struct kvm_irq_routing_irqchip {
__u32 irqchip;
@@ -1017,6 +1019,7 @@
#define KVM_PPC_CONFIGURE_V3_MMU _IOW(KVMIO, 0xaf, struct kvm_ppc_mmuv3_cfg)
#define KVM_PPC_GET_RMMU_INFO _IOW(KVMIO, 0xb0, struct kvm_ppc_rmmu_info)
#define KVM_PPC_GET_CPU_CHAR _IOR(KVMIO, 0xb1, struct kvm_ppc_cpu_char)
+#define KVM_SET_PMU_EVENT_FILTER _IOW(KVMIO, 0xb2, struct kvm_pmu_event_filter)
#define KVM_CREATE_DEVICE _IOWR(KVMIO, 0xe0, struct kvm_create_device)
#define KVM_SET_DEVICE_ATTR _IOW(KVMIO, 0xe1, struct kvm_device_attr)
#define KVM_GET_DEVICE_ATTR _IOW(KVMIO, 0xe2, struct kvm_device_attr)
diff --git a/libc/kernel/uapi/linux/kvm_para.h b/libc/kernel/uapi/linux/kvm_para.h
index b08a605..9a4dd29 100644
--- a/libc/kernel/uapi/linux/kvm_para.h
+++ b/libc/kernel/uapi/linux/kvm_para.h
@@ -34,5 +34,6 @@
#define KVM_HC_MIPS_CONSOLE_OUTPUT 8
#define KVM_HC_CLOCK_PAIRING 9
#define KVM_HC_SEND_IPI 10
+#define KVM_HC_SCHED_YIELD 11
#include <asm/kvm_para.h>
#endif
diff --git a/libc/kernel/uapi/linux/magic.h b/libc/kernel/uapi/linux/magic.h
index f3b337e..38b5c85 100644
--- a/libc/kernel/uapi/linux/magic.h
+++ b/libc/kernel/uapi/linux/magic.h
@@ -94,4 +94,6 @@
#define UDF_SUPER_MAGIC 0x15013346
#define BALLOON_KVM_MAGIC 0x13661366
#define ZSMALLOC_MAGIC 0x58295829
+#define DMA_BUF_MAGIC 0x444d4142
+#define Z3FOLD_MAGIC 0x33
#endif
diff --git a/libc/kernel/uapi/linux/media.h b/libc/kernel/uapi/linux/media.h
index 68821e7..fe29568 100644
--- a/libc/kernel/uapi/linux/media.h
+++ b/libc/kernel/uapi/linux/media.h
@@ -68,7 +68,7 @@
#define MEDIA_ENT_F_DV_ENCODER (MEDIA_ENT_F_BASE + 0x6002)
#define MEDIA_ENT_FL_DEFAULT (1 << 0)
#define MEDIA_ENT_FL_CONNECTOR (1 << 1)
-#define MEDIA_ENT_ID_FLAG_NEXT (1 << 31)
+#define MEDIA_ENT_ID_FLAG_NEXT (1U << 31)
struct media_entity_desc {
__u32 id;
char name[32];
diff --git a/libc/kernel/uapi/linux/mii.h b/libc/kernel/uapi/linux/mii.h
index 5c87990..3c6c564 100644
--- a/libc/kernel/uapi/linux/mii.h
+++ b/libc/kernel/uapi/linux/mii.h
@@ -113,6 +113,8 @@
#define EXPANSION_NPCAPABLE 0x0008
#define EXPANSION_MFAULTS 0x0010
#define EXPANSION_RESV 0xffe0
+#define ESTATUS_1000_XFULL 0x8000
+#define ESTATUS_1000_XHALF 0x4000
#define ESTATUS_1000_TFULL 0x2000
#define ESTATUS_1000_THALF 0x1000
#define NWAYTEST_RESV1 0x00ff
diff --git a/libc/kernel/uapi/linux/wanrouter.h b/libc/kernel/uapi/linux/netfilter/nf_synproxy.h
similarity index 68%
copy from libc/kernel/uapi/linux/wanrouter.h
copy to libc/kernel/uapi/linux/netfilter/nf_synproxy.h
index 9bd45a3..474838e 100644
--- a/libc/kernel/uapi/linux/wanrouter.h
+++ b/libc/kernel/uapi/linux/netfilter/nf_synproxy.h
@@ -16,12 +16,18 @@
***
****************************************************************************
****************************************************************************/
-#ifndef _UAPI_ROUTER_H
-#define _UAPI_ROUTER_H
-enum wan_states {
- WAN_UNCONFIGURED,
- WAN_DISCONNECTED,
- WAN_CONNECTING,
- WAN_CONNECTED
+#ifndef _NF_SYNPROXY_H
+#define _NF_SYNPROXY_H
+#include <linux/types.h>
+#define NF_SYNPROXY_OPT_MSS 0x01
+#define NF_SYNPROXY_OPT_WSCALE 0x02
+#define NF_SYNPROXY_OPT_SACK_PERM 0x04
+#define NF_SYNPROXY_OPT_TIMESTAMP 0x08
+#define NF_SYNPROXY_OPT_ECN 0x10
+#define NF_SYNPROXY_OPT_MASK (NF_SYNPROXY_OPT_MSS | NF_SYNPROXY_OPT_WSCALE | NF_SYNPROXY_OPT_SACK_PERM | NF_SYNPROXY_OPT_TIMESTAMP)
+struct nf_synproxy_info {
+ __u8 options;
+ __u8 wscale;
+ __u16 mss;
};
#endif
diff --git a/libc/kernel/uapi/linux/netfilter/nf_tables.h b/libc/kernel/uapi/linux/netfilter/nf_tables.h
index 6869f58..ec6ac82 100644
--- a/libc/kernel/uapi/linux/netfilter/nf_tables.h
+++ b/libc/kernel/uapi/linux/netfilter/nf_tables.h
@@ -125,6 +125,7 @@
NFTA_CHAIN_TYPE,
NFTA_CHAIN_COUNTERS,
NFTA_CHAIN_PAD,
+ NFTA_CHAIN_FLAGS,
__NFTA_CHAIN_MAX
};
#define NFTA_CHAIN_MAX (__NFTA_CHAIN_MAX - 1)
@@ -372,6 +373,7 @@
enum nft_exthdr_op {
NFT_EXTHDR_OP_IPV6,
NFT_EXTHDR_OP_TCPOPT,
+ NFT_EXTHDR_OP_IPV4,
__NFT_EXTHDR_OP_MAX
};
#define NFT_EXTHDR_OP_MAX (__NFT_EXTHDR_OP_MAX - 1)
@@ -416,6 +418,8 @@
NFT_META_SECPATH,
NFT_META_IIFKIND,
NFT_META_OIFKIND,
+ NFT_META_BRI_IIFPVID,
+ NFT_META_BRI_IIFVPROTO,
};
enum nft_rt_keys {
NFT_RT_CLASSID,
@@ -740,6 +744,16 @@
__NFTA_CT_TIMEOUT_MAX,
};
#define NFTA_CT_TIMEOUT_MAX (__NFTA_CT_TIMEOUT_MAX - 1)
+enum nft_ct_expectation_attributes {
+ NFTA_CT_EXPECT_UNSPEC,
+ NFTA_CT_EXPECT_L3PROTO,
+ NFTA_CT_EXPECT_L4PROTO,
+ NFTA_CT_EXPECT_DPORT,
+ NFTA_CT_EXPECT_TIMEOUT,
+ NFTA_CT_EXPECT_SIZE,
+ __NFTA_CT_EXPECT_MAX,
+};
+#define NFTA_CT_EXPECT_MAX (__NFTA_CT_EXPECT_MAX - 1)
#define NFT_OBJECT_UNSPEC 0
#define NFT_OBJECT_COUNTER 1
#define NFT_OBJECT_QUOTA 2
@@ -749,7 +763,8 @@
#define NFT_OBJECT_TUNNEL 6
#define NFT_OBJECT_CT_TIMEOUT 7
#define NFT_OBJECT_SECMARK 8
-#define __NFT_OBJECT_MAX 9
+#define NFT_OBJECT_CT_EXPECT 9
+#define __NFT_OBJECT_MAX 10
#define NFT_OBJECT_MAX (__NFT_OBJECT_MAX - 1)
enum nft_object_attributes {
NFTA_OBJ_UNSPEC,
@@ -793,6 +808,14 @@
enum nft_osf_flags {
NFT_OSF_F_VERSION = (1 << 0),
};
+enum nft_synproxy_attributes {
+ NFTA_SYNPROXY_UNSPEC,
+ NFTA_SYNPROXY_MSS,
+ NFTA_SYNPROXY_WSCALE,
+ NFTA_SYNPROXY_FLAGS,
+ __NFTA_SYNPROXY_MAX,
+};
+#define NFTA_SYNPROXY_MAX (__NFTA_SYNPROXY_MAX - 1)
enum nft_devices_attributes {
NFTA_DEVICE_UNSPEC,
NFTA_DEVICE_NAME,
diff --git a/libc/kernel/uapi/linux/netfilter/xt_SYNPROXY.h b/libc/kernel/uapi/linux/netfilter/xt_SYNPROXY.h
index cb53431..4d7f436 100644
--- a/libc/kernel/uapi/linux/netfilter/xt_SYNPROXY.h
+++ b/libc/kernel/uapi/linux/netfilter/xt_SYNPROXY.h
@@ -18,15 +18,11 @@
****************************************************************************/
#ifndef _XT_SYNPROXY_H
#define _XT_SYNPROXY_H
-#include <linux/types.h>
-#define XT_SYNPROXY_OPT_MSS 0x01
-#define XT_SYNPROXY_OPT_WSCALE 0x02
-#define XT_SYNPROXY_OPT_SACK_PERM 0x04
-#define XT_SYNPROXY_OPT_TIMESTAMP 0x08
-#define XT_SYNPROXY_OPT_ECN 0x10
-struct xt_synproxy_info {
- __u8 options;
- __u8 wscale;
- __u16 mss;
-};
+#include <linux/netfilter/nf_synproxy.h>
+#define XT_SYNPROXY_OPT_MSS NF_SYNPROXY_OPT_MSS
+#define XT_SYNPROXY_OPT_WSCALE NF_SYNPROXY_OPT_WSCALE
+#define XT_SYNPROXY_OPT_SACK_PERM NF_SYNPROXY_OPT_SACK_PERM
+#define XT_SYNPROXY_OPT_TIMESTAMP NF_SYNPROXY_OPT_TIMESTAMP
+#define XT_SYNPROXY_OPT_ECN NF_SYNPROXY_OPT_ECN
+#define xt_synproxy_info nf_synproxy_info
#endif
diff --git a/libc/kernel/uapi/linux/netfilter/xt_connlabel.h b/libc/kernel/uapi/linux/netfilter/xt_connlabel.h
index f59cbee..7548fa1 100644
--- a/libc/kernel/uapi/linux/netfilter/xt_connlabel.h
+++ b/libc/kernel/uapi/linux/netfilter/xt_connlabel.h
@@ -16,6 +16,8 @@
***
****************************************************************************
****************************************************************************/
+#ifndef _UAPI_XT_CONNLABEL_H
+#define _UAPI_XT_CONNLABEL_H
#include <linux/types.h>
#define XT_CONNLABEL_MAXBIT 127
enum xt_connlabel_mtopts {
@@ -26,3 +28,4 @@
__u16 bit;
__u16 options;
};
+#endif
diff --git a/libc/kernel/uapi/linux/netfilter/xt_nfacct.h b/libc/kernel/uapi/linux/netfilter/xt_nfacct.h
index 4060002..a2b042e 100644
--- a/libc/kernel/uapi/linux/netfilter/xt_nfacct.h
+++ b/libc/kernel/uapi/linux/netfilter/xt_nfacct.h
@@ -24,4 +24,8 @@
char name[NFACCT_NAME_MAX];
struct nf_acct * nfacct;
};
+struct xt_nfacct_match_info_v1 {
+ char name[NFACCT_NAME_MAX];
+ struct nf_acct * nfacct __attribute__((aligned(8)));
+};
#endif
diff --git a/libc/kernel/uapi/linux/netfilter/xt_owner.h b/libc/kernel/uapi/linux/netfilter/xt_owner.h
index d829dab..e077aad 100644
--- a/libc/kernel/uapi/linux/netfilter/xt_owner.h
+++ b/libc/kernel/uapi/linux/netfilter/xt_owner.h
@@ -23,7 +23,9 @@
XT_OWNER_UID = 1 << 0,
XT_OWNER_GID = 1 << 1,
XT_OWNER_SOCKET = 1 << 2,
+ XT_OWNER_SUPPL_GROUPS = 1 << 3,
};
+#define XT_OWNER_MASK (XT_OWNER_UID | XT_OWNER_GID | XT_OWNER_SOCKET | XT_OWNER_SUPPL_GROUPS)
struct xt_owner_match_info {
__u32 uid_min, uid_max;
__u32 gid_min, gid_max;
diff --git a/libc/kernel/uapi/linux/flat.h b/libc/kernel/uapi/linux/nexthop.h
similarity index 60%
rename from libc/kernel/uapi/linux/flat.h
rename to libc/kernel/uapi/linux/nexthop.h
index d2af100..a2a959f 100644
--- a/libc/kernel/uapi/linux/flat.h
+++ b/libc/kernel/uapi/linux/nexthop.h
@@ -16,27 +16,40 @@
***
****************************************************************************
****************************************************************************/
-#ifndef _UAPI_LINUX_FLAT_H
-#define _UAPI_LINUX_FLAT_H
-#define FLAT_VERSION 0x00000004L
-#define MAX_SHARED_LIBS (1)
-struct flat_hdr {
- char magic[4];
- unsigned long rev;
- unsigned long entry;
- unsigned long data_start;
- unsigned long data_end;
- unsigned long bss_end;
- unsigned long stack_size;
- unsigned long reloc_start;
- unsigned long reloc_count;
- unsigned long flags;
- unsigned long build_date;
- unsigned long filler[5];
+#ifndef _UAPI_LINUX_NEXTHOP_H
+#define _UAPI_LINUX_NEXTHOP_H
+#include <linux/types.h>
+struct nhmsg {
+ unsigned char nh_family;
+ unsigned char nh_scope;
+ unsigned char nh_protocol;
+ unsigned char resvd;
+ unsigned int nh_flags;
};
-#define FLAT_FLAG_RAM 0x0001
-#define FLAT_FLAG_GOTPIC 0x0002
-#define FLAT_FLAG_GZIP 0x0004
-#define FLAT_FLAG_GZDATA 0x0008
-#define FLAT_FLAG_KTRACE 0x0010
+struct nexthop_grp {
+ __u32 id;
+ __u8 weight;
+ __u8 resvd1;
+ __u16 resvd2;
+};
+enum {
+ NEXTHOP_GRP_TYPE_MPATH,
+ __NEXTHOP_GRP_TYPE_MAX,
+};
+#define NEXTHOP_GRP_TYPE_MAX (__NEXTHOP_GRP_TYPE_MAX - 1)
+enum {
+ NHA_UNSPEC,
+ NHA_ID,
+ NHA_GROUP,
+ NHA_GROUP_TYPE,
+ NHA_BLACKHOLE,
+ NHA_OIF,
+ NHA_GATEWAY,
+ NHA_ENCAP_TYPE,
+ NHA_ENCAP,
+ NHA_GROUPS,
+ NHA_MASTER,
+ __NHA_MAX,
+};
+#define NHA_MAX (__NHA_MAX - 1)
#endif
diff --git a/libc/kernel/uapi/linux/nl80211.h b/libc/kernel/uapi/linux/nl80211.h
index 12b37ae..082601d 100644
--- a/libc/kernel/uapi/linux/nl80211.h
+++ b/libc/kernel/uapi/linux/nl80211.h
@@ -463,6 +463,8 @@
NL80211_ATTR_AIRTIME_WEIGHT,
NL80211_ATTR_STA_TX_POWER_SETTING,
NL80211_ATTR_STA_TX_POWER,
+ NL80211_ATTR_SAE_PASSWORD,
+ NL80211_ATTR_TWT_RESPONDER,
__NL80211_ATTR_AFTER_LAST,
NUM_NL80211_ATTR = __NL80211_ATTR_AFTER_LAST,
NL80211_ATTR_MAX = __NL80211_ATTR_AFTER_LAST - 1
@@ -1017,6 +1019,7 @@
enum nl80211_wpa_versions {
NL80211_WPA_VERSION_1 = 1 << 0,
NL80211_WPA_VERSION_2 = 1 << 1,
+ NL80211_WPA_VERSION_3 = 1 << 2,
};
enum nl80211_key_default_types {
__NL80211_KEY_DEFAULT_TYPE_INVALID,
@@ -1284,7 +1287,7 @@
NL80211_FEATURE_TDLS_CHANNEL_SWITCH = 1 << 28,
NL80211_FEATURE_SCAN_RANDOM_MAC_ADDR = 1 << 29,
NL80211_FEATURE_SCHED_SCAN_RANDOM_MAC_ADDR = 1 << 30,
- NL80211_FEATURE_ND_RANDOM_MAC_ADDR = 1 << 31,
+ NL80211_FEATURE_ND_RANDOM_MAC_ADDR = 1U << 31,
};
enum nl80211_ext_feature_index {
NL80211_EXT_FEATURE_VHT_IBSS,
@@ -1326,6 +1329,7 @@
NL80211_EXT_FEATURE_SCHED_SCAN_BAND_SPECIFIC_RSSI_THOLD,
NL80211_EXT_FEATURE_EXT_KEY_ID,
NL80211_EXT_FEATURE_STA_TX_PWR,
+ NL80211_EXT_FEATURE_SAE_OFFLOAD,
NUM_NL80211_EXT_FEATURES,
MAX_NL80211_EXT_FEATURES = NUM_NL80211_EXT_FEATURES - 1
};
diff --git a/libc/kernel/uapi/linux/pci_regs.h b/libc/kernel/uapi/linux/pci_regs.h
index 4c8cc95..bd4d98f 100644
--- a/libc/kernel/uapi/linux/pci_regs.h
+++ b/libc/kernel/uapi/linux/pci_regs.h
@@ -437,6 +437,7 @@
#define PCI_EXP_LNKCAP_SLS_5_0GB 0x00000002
#define PCI_EXP_LNKCAP_SLS_8_0GB 0x00000003
#define PCI_EXP_LNKCAP_SLS_16_0GB 0x00000004
+#define PCI_EXP_LNKCAP_SLS_32_0GB 0x00000005
#define PCI_EXP_LNKCAP_MLW 0x000003f0
#define PCI_EXP_LNKCAP_ASPMS 0x00000c00
#define PCI_EXP_LNKCAP_L0SEL 0x00007000
@@ -465,6 +466,7 @@
#define PCI_EXP_LNKSTA_CLS_5_0GB 0x0002
#define PCI_EXP_LNKSTA_CLS_8_0GB 0x0003
#define PCI_EXP_LNKSTA_CLS_16_0GB 0x0004
+#define PCI_EXP_LNKSTA_CLS_32_0GB 0x0005
#define PCI_EXP_LNKSTA_NLW 0x03f0
#define PCI_EXP_LNKSTA_NLW_X1 0x0010
#define PCI_EXP_LNKSTA_NLW_X2 0x0020
@@ -562,6 +564,7 @@
#define PCI_EXP_LNKCAP2_SLS_5_0GB 0x00000004
#define PCI_EXP_LNKCAP2_SLS_8_0GB 0x00000008
#define PCI_EXP_LNKCAP2_SLS_16_0GB 0x00000010
+#define PCI_EXP_LNKCAP2_SLS_32_0GB 0x00000020
#define PCI_EXP_LNKCAP2_CROSSLINK 0x00000100
#define PCI_EXP_LNKCTL2 48
#define PCI_EXP_LNKCTL2_TLS 0x000f
@@ -569,6 +572,7 @@
#define PCI_EXP_LNKCTL2_TLS_5_0GT 0x0002
#define PCI_EXP_LNKCTL2_TLS_8_0GT 0x0003
#define PCI_EXP_LNKCTL2_TLS_16_0GT 0x0004
+#define PCI_EXP_LNKCTL2_TLS_32_0GT 0x0005
#define PCI_EXP_LNKSTA2 50
#define PCI_CAP_EXP_ENDPOINT_SIZEOF_V2 52
#define PCI_EXP_SLTCAP2 52
diff --git a/libc/kernel/uapi/linux/pkt_cls.h b/libc/kernel/uapi/linux/pkt_cls.h
index 6db3a6d..0727916 100644
--- a/libc/kernel/uapi/linux/pkt_cls.h
+++ b/libc/kernel/uapi/linux/pkt_cls.h
@@ -94,6 +94,9 @@
TCA_ID_SIMP = TCA_ACT_SIMP,
TCA_ID_IFE = TCA_ACT_IFE,
TCA_ID_SAMPLE = TCA_ACT_SAMPLE,
+ TCA_ID_CTINFO,
+ TCA_ID_MPLS,
+ TCA_ID_CT,
__TCA_ID_MAX = 255
};
#define TCA_ID_MAX __TCA_ID_MAX
@@ -431,10 +434,24 @@
TCA_FLOWER_KEY_PORT_SRC_MAX,
TCA_FLOWER_KEY_PORT_DST_MIN,
TCA_FLOWER_KEY_PORT_DST_MAX,
+ TCA_FLOWER_KEY_CT_STATE,
+ TCA_FLOWER_KEY_CT_STATE_MASK,
+ TCA_FLOWER_KEY_CT_ZONE,
+ TCA_FLOWER_KEY_CT_ZONE_MASK,
+ TCA_FLOWER_KEY_CT_MARK,
+ TCA_FLOWER_KEY_CT_MARK_MASK,
+ TCA_FLOWER_KEY_CT_LABELS,
+ TCA_FLOWER_KEY_CT_LABELS_MASK,
__TCA_FLOWER_MAX,
};
#define TCA_FLOWER_MAX (__TCA_FLOWER_MAX - 1)
enum {
+ TCA_FLOWER_KEY_CT_FLAGS_NEW = 1 << 0,
+ TCA_FLOWER_KEY_CT_FLAGS_ESTABLISHED = 1 << 1,
+ TCA_FLOWER_KEY_CT_FLAGS_RELATED = 1 << 2,
+ TCA_FLOWER_KEY_CT_FLAGS_TRACKED = 1 << 3,
+};
+enum {
TCA_FLOWER_KEY_ENC_OPTS_UNSPEC,
TCA_FLOWER_KEY_ENC_OPTS_GENEVE,
__TCA_FLOWER_KEY_ENC_OPTS_MAX,
diff --git a/libc/kernel/uapi/linux/pkt_sched.h b/libc/kernel/uapi/linux/pkt_sched.h
index 2e1f24b..15ee3b0 100644
--- a/libc/kernel/uapi/linux/pkt_sched.h
+++ b/libc/kernel/uapi/linux/pkt_sched.h
@@ -18,6 +18,7 @@
****************************************************************************/
#ifndef __LINUX_PKT_SCHED_H
#define __LINUX_PKT_SCHED_H
+#include <linux/const.h>
#include <linux/types.h>
#define TC_PRIO_BESTEFFORT 0
#define TC_PRIO_FILLER 1
@@ -740,8 +741,9 @@
__s32 delta;
__s32 clockid;
__u32 flags;
-#define TC_ETF_DEADLINE_MODE_ON BIT(0)
-#define TC_ETF_OFFLOAD_ON BIT(1)
+#define TC_ETF_DEADLINE_MODE_ON _BITUL(0)
+#define TC_ETF_OFFLOAD_ON _BITUL(1)
+#define TC_ETF_SKIP_SOCK_CHECK _BITUL(2)
};
enum {
TCA_ETF_UNSPEC,
@@ -875,6 +877,7 @@
__TCA_TAPRIO_SCHED_MAX,
};
#define TCA_TAPRIO_SCHED_MAX (__TCA_TAPRIO_SCHED_MAX - 1)
+#define TCA_TAPRIO_ATTR_FLAG_TXTIME_ASSIST 0x1
enum {
TCA_TAPRIO_ATTR_UNSPEC,
TCA_TAPRIO_ATTR_PRIOMAP,
@@ -886,6 +889,8 @@
TCA_TAPRIO_ATTR_ADMIN_SCHED,
TCA_TAPRIO_ATTR_SCHED_CYCLE_TIME,
TCA_TAPRIO_ATTR_SCHED_CYCLE_TIME_EXTENSION,
+ TCA_TAPRIO_ATTR_FLAGS,
+ TCA_TAPRIO_ATTR_TXTIME_DELAY,
__TCA_TAPRIO_ATTR_MAX,
};
#define TCA_TAPRIO_ATTR_MAX (__TCA_TAPRIO_ATTR_MAX - 1)
diff --git a/libc/kernel/uapi/linux/ptrace.h b/libc/kernel/uapi/linux/ptrace.h
index 4a68738..a1528db 100644
--- a/libc/kernel/uapi/linux/ptrace.h
+++ b/libc/kernel/uapi/linux/ptrace.h
@@ -55,6 +55,34 @@
__u64 filter_off;
__u64 flags;
};
+#define PTRACE_GET_SYSCALL_INFO 0x420e
+#define PTRACE_SYSCALL_INFO_NONE 0
+#define PTRACE_SYSCALL_INFO_ENTRY 1
+#define PTRACE_SYSCALL_INFO_EXIT 2
+#define PTRACE_SYSCALL_INFO_SECCOMP 3
+struct ptrace_syscall_info {
+ __u8 op;
+ __u32 arch __attribute__((__aligned__(sizeof(__u32))));
+ __u64 instruction_pointer;
+ __u64 stack_pointer;
+ union {
+ struct {
+ __u64 nr;
+ __u64 args[6];
+ } entry;
+ struct {
+ __s64 rval;
+ __u8 is_error;
+ } exit;
+ struct {
+ __u64 nr;
+ __u64 args[6];
+ __u32 ret_data;
+ } seccomp;
+ };
+};
+#define PTRACE_EVENTMSG_SYSCALL_ENTRY 1
+#define PTRACE_EVENTMSG_SYSCALL_EXIT 2
#define PTRACE_PEEKSIGINFO_SHARED (1 << 0)
#define PTRACE_EVENT_FORK 1
#define PTRACE_EVENT_VFORK 2
diff --git a/libc/kernel/uapi/linux/rds.h b/libc/kernel/uapi/linux/rds.h
index 951427f..537aab5 100644
--- a/libc/kernel/uapi/linux/rds.h
+++ b/libc/kernel/uapi/linux/rds.h
@@ -170,6 +170,8 @@
__u32 rdma_mr_max;
__u32 rdma_mr_size;
__u8 tos;
+ __u8 sl;
+ __u32 cache_allocs;
};
struct rds6_info_rdma_connection {
struct in6_addr src_addr;
@@ -182,6 +184,8 @@
__u32 rdma_mr_max;
__u32 rdma_mr_size;
__u8 tos;
+ __u8 sl;
+ __u32 cache_allocs;
};
enum rds_message_rxpath_latency {
RDS_MSG_RX_HDR_TO_DGRAM_START = 0,
diff --git a/libc/kernel/uapi/linux/rtnetlink.h b/libc/kernel/uapi/linux/rtnetlink.h
index 33af1b3..b0feb7e 100644
--- a/libc/kernel/uapi/linux/rtnetlink.h
+++ b/libc/kernel/uapi/linux/rtnetlink.h
@@ -139,6 +139,12 @@
#define RTM_DELCHAIN RTM_DELCHAIN
RTM_GETCHAIN,
#define RTM_GETCHAIN RTM_GETCHAIN
+ RTM_NEWNEXTHOP = 104,
+#define RTM_NEWNEXTHOP RTM_NEWNEXTHOP
+ RTM_DELNEXTHOP,
+#define RTM_DELNEXTHOP RTM_DELNEXTHOP
+ RTM_GETNEXTHOP,
+#define RTM_GETNEXTHOP RTM_GETNEXTHOP
__RTM_MAX,
#define RTM_MAX (((__RTM_MAX + 3) & ~3) - 1)
};
@@ -257,6 +263,7 @@
RTA_IP_PROTO,
RTA_SPORT,
RTA_DPORT,
+ RTA_NH_ID,
__RTA_MAX
};
#define RTA_MAX (__RTA_MAX - 1)
@@ -522,6 +529,8 @@
#define RTNLGRP_IPV4_MROUTE_R RTNLGRP_IPV4_MROUTE_R
RTNLGRP_IPV6_MROUTE_R,
#define RTNLGRP_IPV6_MROUTE_R RTNLGRP_IPV6_MROUTE_R
+ RTNLGRP_NEXTHOP,
+#define RTNLGRP_NEXTHOP RTNLGRP_NEXTHOP
__RTNLGRP_MAX
};
#define RTNLGRP_MAX (__RTNLGRP_MAX - 1)
diff --git a/libc/kernel/uapi/linux/sched.h b/libc/kernel/uapi/linux/sched.h
index 0460083..b396348 100644
--- a/libc/kernel/uapi/linux/sched.h
+++ b/libc/kernel/uapi/linux/sched.h
@@ -18,6 +18,7 @@
****************************************************************************/
#ifndef _UAPI_LINUX_SCHED_H
#define _UAPI_LINUX_SCHED_H
+#include <linux/types.h>
#define CSIGNAL 0x000000ff
#define CLONE_VM 0x00000100
#define CLONE_FS 0x00000200
@@ -43,6 +44,16 @@
#define CLONE_NEWPID 0x20000000
#define CLONE_NEWNET 0x40000000
#define CLONE_IO 0x80000000
+struct clone_args {
+ __aligned_u64 flags;
+ __aligned_u64 pidfd;
+ __aligned_u64 child_tid;
+ __aligned_u64 parent_tid;
+ __aligned_u64 exit_signal;
+ __aligned_u64 stack;
+ __aligned_u64 stack_size;
+ __aligned_u64 tls;
+};
#define SCHED_NORMAL 0
#define SCHED_FIFO 1
#define SCHED_RR 2
@@ -53,5 +64,11 @@
#define SCHED_FLAG_RESET_ON_FORK 0x01
#define SCHED_FLAG_RECLAIM 0x02
#define SCHED_FLAG_DL_OVERRUN 0x04
-#define SCHED_FLAG_ALL (SCHED_FLAG_RESET_ON_FORK | SCHED_FLAG_RECLAIM | SCHED_FLAG_DL_OVERRUN)
+#define SCHED_FLAG_KEEP_POLICY 0x08
+#define SCHED_FLAG_KEEP_PARAMS 0x10
+#define SCHED_FLAG_UTIL_CLAMP_MIN 0x20
+#define SCHED_FLAG_UTIL_CLAMP_MAX 0x40
+#define SCHED_FLAG_KEEP_ALL (SCHED_FLAG_KEEP_POLICY | SCHED_FLAG_KEEP_PARAMS)
+#define SCHED_FLAG_UTIL_CLAMP (SCHED_FLAG_UTIL_CLAMP_MIN | SCHED_FLAG_UTIL_CLAMP_MAX)
+#define SCHED_FLAG_ALL (SCHED_FLAG_RESET_ON_FORK | SCHED_FLAG_RECLAIM | SCHED_FLAG_DL_OVERRUN | SCHED_FLAG_KEEP_ALL | SCHED_FLAG_UTIL_CLAMP)
#endif
diff --git a/libc/kernel/uapi/linux/sched/types.h b/libc/kernel/uapi/linux/sched/types.h
index cf6f1c7..385b21a 100644
--- a/libc/kernel/uapi/linux/sched/types.h
+++ b/libc/kernel/uapi/linux/sched/types.h
@@ -23,6 +23,7 @@
int sched_priority;
};
#define SCHED_ATTR_SIZE_VER0 48
+#define SCHED_ATTR_SIZE_VER1 56
struct sched_attr {
__u32 size;
__u32 sched_policy;
@@ -32,5 +33,7 @@
__u64 sched_runtime;
__u64 sched_deadline;
__u64 sched_period;
+ __u32 sched_util_min;
+ __u32 sched_util_max;
};
#endif
diff --git a/libc/kernel/uapi/linux/sed-opal.h b/libc/kernel/uapi/linux/sed-opal.h
index a532073..fc12509 100644
--- a/libc/kernel/uapi/linux/sed-opal.h
+++ b/libc/kernel/uapi/linux/sed-opal.h
@@ -25,6 +25,10 @@
OPAL_MBR_ENABLE = 0x0,
OPAL_MBR_DISABLE = 0x01,
};
+enum opal_mbr_done_flag {
+ OPAL_MBR_NOT_DONE = 0x0,
+ OPAL_MBR_DONE = 0x01
+};
enum opal_user {
OPAL_ADMIN1 = 0x0,
OPAL_USER1 = 0x01,
@@ -81,6 +85,17 @@
__u8 enable_disable;
__u8 __align[7];
};
+struct opal_mbr_done {
+ struct opal_key key;
+ __u8 done_flag;
+ __u8 __align[7];
+};
+struct opal_shadow_mbr {
+ struct opal_key key;
+ const __u64 data;
+ __u64 offset;
+ __u64 size;
+};
#define IOC_OPAL_SAVE _IOW('p', 220, struct opal_lock_unlock)
#define IOC_OPAL_LOCK_UNLOCK _IOW('p', 221, struct opal_lock_unlock)
#define IOC_OPAL_TAKE_OWNERSHIP _IOW('p', 222, struct opal_key)
@@ -93,4 +108,7 @@
#define IOC_OPAL_ENABLE_DISABLE_MBR _IOW('p', 229, struct opal_mbr_data)
#define IOC_OPAL_ERASE_LR _IOW('p', 230, struct opal_session_info)
#define IOC_OPAL_SECURE_ERASE_LR _IOW('p', 231, struct opal_session_info)
+#define IOC_OPAL_PSID_REVERT_TPR _IOW('p', 232, struct opal_key)
+#define IOC_OPAL_MBR_DONE _IOW('p', 233, struct opal_mbr_done)
+#define IOC_OPAL_WRITE_SHADOW_MBR _IOW('p', 234, struct opal_shadow_mbr)
#endif
diff --git a/libc/kernel/uapi/linux/serial_core.h b/libc/kernel/uapi/linux/serial_core.h
index c5ce9fe..29fcdf4 100644
--- a/libc/kernel/uapi/linux/serial_core.h
+++ b/libc/kernel/uapi/linux/serial_core.h
@@ -88,7 +88,6 @@
#define PORT_M32R_SIO 68
#define PORT_JSM 69
#define PORT_PNX8XXX 70
-#define PORT_NETX 71
#define PORT_SUNHV 72
#define PORT_S3C2412 73
#define PORT_UARTLITE 74
diff --git a/libc/kernel/uapi/linux/snmp.h b/libc/kernel/uapi/linux/snmp.h
index 2a48541..9f500ca 100644
--- a/libc/kernel/uapi/linux/snmp.h
+++ b/libc/kernel/uapi/linux/snmp.h
@@ -251,6 +251,7 @@
LINUX_MIB_TCPZEROWINDOWDROP,
LINUX_MIB_TCPRCVQDROP,
LINUX_MIB_TCPWQUEUETOOBIG,
+ LINUX_MIB_TCPFASTOPENPASSIVEALTKEY,
__LINUX_MIB_MAX
};
enum {
diff --git a/libc/kernel/uapi/linux/socket.h b/libc/kernel/uapi/linux/socket.h
index 4f52bcb..608d31f 100644
--- a/libc/kernel/uapi/linux/socket.h
+++ b/libc/kernel/uapi/linux/socket.h
@@ -19,10 +19,14 @@
#ifndef _UAPI_LINUX_SOCKET_H
#define _UAPI_LINUX_SOCKET_H
#define _K_SS_MAXSIZE 128
-#define _K_SS_ALIGNSIZE (__alignof__(struct sockaddr *))
typedef unsigned short __kernel_sa_family_t;
struct sockaddr_storage {
- __kernel_sa_family_t ss_family;
- char __data[_K_SS_MAXSIZE - sizeof(unsigned short)];
-} __attribute__((aligned(_K_SS_ALIGNSIZE)));
+ union {
+ struct {
+ __kernel_sa_family_t ss_family;
+ char __data[_K_SS_MAXSIZE - sizeof(unsigned short)];
+ };
+ void * __align;
+ };
+};
#endif
diff --git a/libc/kernel/uapi/linux/tc_act/tc_ct.h b/libc/kernel/uapi/linux/tc_act/tc_ct.h
new file mode 100644
index 0000000..0443b95
--- /dev/null
+++ b/libc/kernel/uapi/linux/tc_act/tc_ct.h
@@ -0,0 +1,52 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ *** This header was automatically generated from a Linux kernel header
+ *** of the same name, to make information necessary for userspace to
+ *** call into the kernel available to libc. It contains only constants,
+ *** structures, and macros generated from the original header, and thus,
+ *** contains no copyrightable information.
+ ***
+ *** To edit the content of this header, modify the corresponding
+ *** source file (e.g. under external/kernel-headers/original/) then
+ *** run bionic/libc/kernel/tools/update_all.py
+ ***
+ *** Any manual change here will be lost the next time this script will
+ *** be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef __UAPI_TC_CT_H
+#define __UAPI_TC_CT_H
+#include <linux/types.h>
+#include <linux/pkt_cls.h>
+enum {
+ TCA_CT_UNSPEC,
+ TCA_CT_PARMS,
+ TCA_CT_TM,
+ TCA_CT_ACTION,
+ TCA_CT_ZONE,
+ TCA_CT_MARK,
+ TCA_CT_MARK_MASK,
+ TCA_CT_LABELS,
+ TCA_CT_LABELS_MASK,
+ TCA_CT_NAT_IPV4_MIN,
+ TCA_CT_NAT_IPV4_MAX,
+ TCA_CT_NAT_IPV6_MIN,
+ TCA_CT_NAT_IPV6_MAX,
+ TCA_CT_NAT_PORT_MIN,
+ TCA_CT_NAT_PORT_MAX,
+ TCA_CT_PAD,
+ __TCA_CT_MAX
+};
+#define TCA_CT_MAX (__TCA_CT_MAX - 1)
+#define TCA_CT_ACT_COMMIT (1 << 0)
+#define TCA_CT_ACT_FORCE (1 << 1)
+#define TCA_CT_ACT_CLEAR (1 << 2)
+#define TCA_CT_ACT_NAT (1 << 3)
+#define TCA_CT_ACT_NAT_SRC (1 << 4)
+#define TCA_CT_ACT_NAT_DST (1 << 5)
+struct tc_ct {
+ tc_gen;
+};
+#endif
diff --git a/libc/kernel/uapi/linux/isdn_divertif.h b/libc/kernel/uapi/linux/tc_act/tc_ctinfo.h
similarity index 66%
copy from libc/kernel/uapi/linux/isdn_divertif.h
copy to libc/kernel/uapi/linux/tc_act/tc_ctinfo.h
index d353113..18fdf60 100644
--- a/libc/kernel/uapi/linux/isdn_divertif.h
+++ b/libc/kernel/uapi/linux/tc_act/tc_ctinfo.h
@@ -16,15 +16,26 @@
***
****************************************************************************
****************************************************************************/
-#ifndef _UAPI_LINUX_ISDN_DIVERTIF_H
-#define _UAPI_LINUX_ISDN_DIVERTIF_H
-#define DIVERT_IF_MAGIC 0x25873401
-#define DIVERT_CMD_REG 0x00
-#define DIVERT_CMD_REL 0x01
-#define DIVERT_NO_ERR 0x00
-#define DIVERT_CMD_ERR 0x01
-#define DIVERT_VER_ERR 0x02
-#define DIVERT_REG_ERR 0x03
-#define DIVERT_REL_ERR 0x04
-#define DIVERT_REG_NAME isdn_register_divert
+#ifndef __UAPI_TC_CTINFO_H
+#define __UAPI_TC_CTINFO_H
+#include <linux/types.h>
+#include <linux/pkt_cls.h>
+struct tc_ctinfo {
+ tc_gen;
+};
+enum {
+ TCA_CTINFO_UNSPEC,
+ TCA_CTINFO_PAD,
+ TCA_CTINFO_TM,
+ TCA_CTINFO_ACT,
+ TCA_CTINFO_ZONE,
+ TCA_CTINFO_PARMS_DSCP_MASK,
+ TCA_CTINFO_PARMS_DSCP_STATEMASK,
+ TCA_CTINFO_PARMS_CPMARK_MASK,
+ TCA_CTINFO_STATS_DSCP_SET,
+ TCA_CTINFO_STATS_DSCP_ERROR,
+ TCA_CTINFO_STATS_CPMARK_SET,
+ __TCA_CTINFO_MAX
+};
+#define TCA_CTINFO_MAX (__TCA_CTINFO_MAX - 1)
#endif
diff --git a/libc/kernel/uapi/linux/isdn_divertif.h b/libc/kernel/uapi/linux/tc_act/tc_mpls.h
similarity index 67%
rename from libc/kernel/uapi/linux/isdn_divertif.h
rename to libc/kernel/uapi/linux/tc_act/tc_mpls.h
index d353113..e1a4905 100644
--- a/libc/kernel/uapi/linux/isdn_divertif.h
+++ b/libc/kernel/uapi/linux/tc_act/tc_mpls.h
@@ -16,15 +16,28 @@
***
****************************************************************************
****************************************************************************/
-#ifndef _UAPI_LINUX_ISDN_DIVERTIF_H
-#define _UAPI_LINUX_ISDN_DIVERTIF_H
-#define DIVERT_IF_MAGIC 0x25873401
-#define DIVERT_CMD_REG 0x00
-#define DIVERT_CMD_REL 0x01
-#define DIVERT_NO_ERR 0x00
-#define DIVERT_CMD_ERR 0x01
-#define DIVERT_VER_ERR 0x02
-#define DIVERT_REG_ERR 0x03
-#define DIVERT_REL_ERR 0x04
-#define DIVERT_REG_NAME isdn_register_divert
+#ifndef __LINUX_TC_MPLS_H
+#define __LINUX_TC_MPLS_H
+#include <linux/pkt_cls.h>
+#define TCA_MPLS_ACT_POP 1
+#define TCA_MPLS_ACT_PUSH 2
+#define TCA_MPLS_ACT_MODIFY 3
+#define TCA_MPLS_ACT_DEC_TTL 4
+struct tc_mpls {
+ tc_gen;
+ int m_action;
+};
+enum {
+ TCA_MPLS_UNSPEC,
+ TCA_MPLS_TM,
+ TCA_MPLS_PARMS,
+ TCA_MPLS_PAD,
+ TCA_MPLS_PROTO,
+ TCA_MPLS_LABEL,
+ TCA_MPLS_TC,
+ TCA_MPLS_TTL,
+ TCA_MPLS_BOS,
+ __TCA_MPLS_MAX,
+};
+#define TCA_MPLS_MAX (__TCA_MPLS_MAX - 1)
#endif
diff --git a/libc/kernel/uapi/linux/tcp.h b/libc/kernel/uapi/linux/tcp.h
index ce3d735..1ec025f 100644
--- a/libc/kernel/uapi/linux/tcp.h
+++ b/libc/kernel/uapi/linux/tcp.h
@@ -92,6 +92,7 @@
#define TCP_ZEROCOPY_RECEIVE 35
#define TCP_INQ 36
#define TCP_CM_INQ TCP_INQ
+#define TCP_TX_DELAY 37
#define TCP_REPAIR_ON 1
#define TCP_REPAIR_OFF 0
#define TCP_REPAIR_OFF_NO_WP - 1
diff --git a/libc/kernel/uapi/linux/unix_diag.h b/libc/kernel/uapi/linux/unix_diag.h
index 837ab5a..4bcc47a 100644
--- a/libc/kernel/uapi/linux/unix_diag.h
+++ b/libc/kernel/uapi/linux/unix_diag.h
@@ -34,6 +34,7 @@
#define UDIAG_SHOW_ICONS 0x00000008
#define UDIAG_SHOW_RQLEN 0x00000010
#define UDIAG_SHOW_MEMINFO 0x00000020
+#define UDIAG_SHOW_UID 0x00000040
struct unix_diag_msg {
__u8 udiag_family;
__u8 udiag_type;
@@ -50,6 +51,7 @@
UNIX_DIAG_RQLEN,
UNIX_DIAG_MEMINFO,
UNIX_DIAG_SHUTDOWN,
+ UNIX_DIAG_UID,
__UNIX_DIAG_MAX,
};
#define UNIX_DIAG_MAX (__UNIX_DIAG_MAX - 1)
diff --git a/libc/kernel/uapi/linux/usbdevice_fs.h b/libc/kernel/uapi/linux/usbdevice_fs.h
index 87afabe..03f3bfb 100644
--- a/libc/kernel/uapi/linux/usbdevice_fs.h
+++ b/libc/kernel/uapi/linux/usbdevice_fs.h
@@ -52,6 +52,14 @@
unsigned int devnum;
unsigned char slow;
};
+struct usbdevfs_conninfo_ex {
+ __u32 size;
+ __u32 busnum;
+ __u32 devnum;
+ __u32 speed;
+ __u8 num_ports;
+ __u8 ports[7];
+};
#define USBDEVFS_URB_SHORT_NOT_OK 0x01
#define USBDEVFS_URB_ISO_ASAP 0x02
#define USBDEVFS_URB_BULK_CONTINUATION 0x04
@@ -101,6 +109,7 @@
#define USBDEVFS_CAP_REAP_AFTER_DISCONNECT 0x10
#define USBDEVFS_CAP_MMAP 0x20
#define USBDEVFS_CAP_DROP_PRIVILEGES 0x40
+#define USBDEVFS_CAP_CONNINFO_EX 0x80
#define USBDEVFS_DISCONNECT_CLAIM_IF_DRIVER 0x01
#define USBDEVFS_DISCONNECT_CLAIM_EXCEPT_DRIVER 0x02
struct usbdevfs_disconnect_claim {
@@ -148,4 +157,5 @@
#define USBDEVFS_FREE_STREAMS _IOR('U', 29, struct usbdevfs_streams)
#define USBDEVFS_DROP_PRIVILEGES _IOW('U', 30, __u32)
#define USBDEVFS_GET_SPEED _IO('U', 31)
+#define USBDEVFS_CONNINFO_EX(len) _IOC(_IOC_READ, 'U', 32, len)
#endif
diff --git a/libc/kernel/uapi/linux/v4l2-controls.h b/libc/kernel/uapi/linux/v4l2-controls.h
index 7a133f5..9288710 100644
--- a/libc/kernel/uapi/linux/v4l2-controls.h
+++ b/libc/kernel/uapi/linux/v4l2-controls.h
@@ -299,6 +299,8 @@
#define V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MODE (V4L2_CID_MPEG_BASE + 221)
enum v4l2_mpeg_video_multi_slice_mode {
V4L2_MPEG_VIDEO_MULTI_SLICE_MODE_SINGLE = 0,
+ V4L2_MPEG_VIDEO_MULTI_SLICE_MODE_MAX_MB = 1,
+ V4L2_MPEG_VIDEO_MULTI_SLICE_MODE_MAX_BYTES = 2,
V4L2_MPEG_VIDEO_MULTI_SICE_MODE_MAX_MB = 1,
V4L2_MPEG_VIDEO_MULTI_SICE_MODE_MAX_BYTES = 2,
};
@@ -310,6 +312,22 @@
#define V4L2_CID_MPEG_VIDEO_MV_H_SEARCH_RANGE (V4L2_CID_MPEG_BASE + 227)
#define V4L2_CID_MPEG_VIDEO_MV_V_SEARCH_RANGE (V4L2_CID_MPEG_BASE + 228)
#define V4L2_CID_MPEG_VIDEO_FORCE_KEY_FRAME (V4L2_CID_MPEG_BASE + 229)
+#define V4L2_CID_MPEG_VIDEO_MPEG2_LEVEL (V4L2_CID_MPEG_BASE + 270)
+enum v4l2_mpeg_video_mpeg2_level {
+ V4L2_MPEG_VIDEO_MPEG2_LEVEL_LOW = 0,
+ V4L2_MPEG_VIDEO_MPEG2_LEVEL_MAIN = 1,
+ V4L2_MPEG_VIDEO_MPEG2_LEVEL_HIGH_1440 = 2,
+ V4L2_MPEG_VIDEO_MPEG2_LEVEL_HIGH = 3,
+};
+#define V4L2_CID_MPEG_VIDEO_MPEG2_PROFILE (V4L2_CID_MPEG_BASE + 271)
+enum v4l2_mpeg_video_mpeg2_profile {
+ V4L2_MPEG_VIDEO_MPEG2_PROFILE_SIMPLE = 0,
+ V4L2_MPEG_VIDEO_MPEG2_PROFILE_MAIN = 1,
+ V4L2_MPEG_VIDEO_MPEG2_PROFILE_SNR_SCALABLE = 2,
+ V4L2_MPEG_VIDEO_MPEG2_PROFILE_SPATIALLY_SCALABLE = 3,
+ V4L2_MPEG_VIDEO_MPEG2_PROFILE_HIGH = 4,
+ V4L2_MPEG_VIDEO_MPEG2_PROFILE_MULTIVIEW = 5,
+};
#define V4L2_CID_FWHT_I_FRAME_QP (V4L2_CID_MPEG_BASE + 290)
#define V4L2_CID_FWHT_P_FRAME_QP (V4L2_CID_MPEG_BASE + 291)
#define V4L2_CID_MPEG_VIDEO_H263_I_FRAME_QP (V4L2_CID_MPEG_BASE + 300)
diff --git a/libc/kernel/uapi/linux/version.h b/libc/kernel/uapi/linux/version.h
index ab29f91..f78358d 100644
--- a/libc/kernel/uapi/linux/version.h
+++ b/libc/kernel/uapi/linux/version.h
@@ -16,5 +16,5 @@
***
****************************************************************************
****************************************************************************/
-#define LINUX_VERSION_CODE 328203
+#define LINUX_VERSION_CODE 328450
#define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))
diff --git a/libc/kernel/uapi/linux/videodev2.h b/libc/kernel/uapi/linux/videodev2.h
index f77c6bd..e81697e 100644
--- a/libc/kernel/uapi/linux/videodev2.h
+++ b/libc/kernel/uapi/linux/videodev2.h
@@ -27,7 +27,7 @@
#define VIDEO_MAX_FRAME 32
#define VIDEO_MAX_PLANES 8
#define v4l2_fourcc(a,b,c,d) ((__u32) (a) | ((__u32) (b) << 8) | ((__u32) (c) << 16) | ((__u32) (d) << 24))
-#define v4l2_fourcc_be(a,b,c,d) (v4l2_fourcc(a, b, c, d) | (1 << 31))
+#define v4l2_fourcc_be(a,b,c,d) (v4l2_fourcc(a, b, c, d) | (1U << 31))
enum v4l2_field {
V4L2_FIELD_ANY = 0,
V4L2_FIELD_NONE = 1,
diff --git a/libc/kernel/uapi/linux/virtio_ids.h b/libc/kernel/uapi/linux/virtio_ids.h
index 010d819..f7e1392 100644
--- a/libc/kernel/uapi/linux/virtio_ids.h
+++ b/libc/kernel/uapi/linux/virtio_ids.h
@@ -32,4 +32,6 @@
#define VIRTIO_ID_INPUT 18
#define VIRTIO_ID_VSOCK 19
#define VIRTIO_ID_CRYPTO 20
+#define VIRTIO_ID_IOMMU 23
+#define VIRTIO_ID_PMEM 27
#endif
diff --git a/libc/kernel/uapi/linux/virtio_iommu.h b/libc/kernel/uapi/linux/virtio_iommu.h
new file mode 100644
index 0000000..b08de57
--- /dev/null
+++ b/libc/kernel/uapi/linux/virtio_iommu.h
@@ -0,0 +1,136 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ *** This header was automatically generated from a Linux kernel header
+ *** of the same name, to make information necessary for userspace to
+ *** call into the kernel available to libc. It contains only constants,
+ *** structures, and macros generated from the original header, and thus,
+ *** contains no copyrightable information.
+ ***
+ *** To edit the content of this header, modify the corresponding
+ *** source file (e.g. under external/kernel-headers/original/) then
+ *** run bionic/libc/kernel/tools/update_all.py
+ ***
+ *** Any manual change here will be lost the next time this script will
+ *** be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef _UAPI_LINUX_VIRTIO_IOMMU_H
+#define _UAPI_LINUX_VIRTIO_IOMMU_H
+#include <linux/types.h>
+#define VIRTIO_IOMMU_F_INPUT_RANGE 0
+#define VIRTIO_IOMMU_F_DOMAIN_RANGE 1
+#define VIRTIO_IOMMU_F_MAP_UNMAP 2
+#define VIRTIO_IOMMU_F_BYPASS 3
+#define VIRTIO_IOMMU_F_PROBE 4
+#define VIRTIO_IOMMU_F_MMIO 5
+struct virtio_iommu_range_64 {
+ __le64 start;
+ __le64 end;
+};
+struct virtio_iommu_range_32 {
+ __le32 start;
+ __le32 end;
+};
+struct virtio_iommu_config {
+ __le64 page_size_mask;
+ struct virtio_iommu_range_64 input_range;
+ struct virtio_iommu_range_32 domain_range;
+ __le32 probe_size;
+};
+#define VIRTIO_IOMMU_T_ATTACH 0x01
+#define VIRTIO_IOMMU_T_DETACH 0x02
+#define VIRTIO_IOMMU_T_MAP 0x03
+#define VIRTIO_IOMMU_T_UNMAP 0x04
+#define VIRTIO_IOMMU_T_PROBE 0x05
+#define VIRTIO_IOMMU_S_OK 0x00
+#define VIRTIO_IOMMU_S_IOERR 0x01
+#define VIRTIO_IOMMU_S_UNSUPP 0x02
+#define VIRTIO_IOMMU_S_DEVERR 0x03
+#define VIRTIO_IOMMU_S_INVAL 0x04
+#define VIRTIO_IOMMU_S_RANGE 0x05
+#define VIRTIO_IOMMU_S_NOENT 0x06
+#define VIRTIO_IOMMU_S_FAULT 0x07
+#define VIRTIO_IOMMU_S_NOMEM 0x08
+struct virtio_iommu_req_head {
+ __u8 type;
+ __u8 reserved[3];
+};
+struct virtio_iommu_req_tail {
+ __u8 status;
+ __u8 reserved[3];
+};
+struct virtio_iommu_req_attach {
+ struct virtio_iommu_req_head head;
+ __le32 domain;
+ __le32 endpoint;
+ __u8 reserved[8];
+ struct virtio_iommu_req_tail tail;
+};
+struct virtio_iommu_req_detach {
+ struct virtio_iommu_req_head head;
+ __le32 domain;
+ __le32 endpoint;
+ __u8 reserved[8];
+ struct virtio_iommu_req_tail tail;
+};
+#define VIRTIO_IOMMU_MAP_F_READ (1 << 0)
+#define VIRTIO_IOMMU_MAP_F_WRITE (1 << 1)
+#define VIRTIO_IOMMU_MAP_F_MMIO (1 << 2)
+#define VIRTIO_IOMMU_MAP_F_MASK (VIRTIO_IOMMU_MAP_F_READ | VIRTIO_IOMMU_MAP_F_WRITE | VIRTIO_IOMMU_MAP_F_MMIO)
+struct virtio_iommu_req_map {
+ struct virtio_iommu_req_head head;
+ __le32 domain;
+ __le64 virt_start;
+ __le64 virt_end;
+ __le64 phys_start;
+ __le32 flags;
+ struct virtio_iommu_req_tail tail;
+};
+struct virtio_iommu_req_unmap {
+ struct virtio_iommu_req_head head;
+ __le32 domain;
+ __le64 virt_start;
+ __le64 virt_end;
+ __u8 reserved[4];
+ struct virtio_iommu_req_tail tail;
+};
+#define VIRTIO_IOMMU_PROBE_T_NONE 0
+#define VIRTIO_IOMMU_PROBE_T_RESV_MEM 1
+#define VIRTIO_IOMMU_PROBE_T_MASK 0xfff
+struct virtio_iommu_probe_property {
+ __le16 type;
+ __le16 length;
+};
+#define VIRTIO_IOMMU_RESV_MEM_T_RESERVED 0
+#define VIRTIO_IOMMU_RESV_MEM_T_MSI 1
+struct virtio_iommu_probe_resv_mem {
+ struct virtio_iommu_probe_property head;
+ __u8 subtype;
+ __u8 reserved[3];
+ __le64 start;
+ __le64 end;
+};
+struct virtio_iommu_req_probe {
+ struct virtio_iommu_req_head head;
+ __le32 endpoint;
+ __u8 reserved[64];
+ __u8 properties[];
+};
+#define VIRTIO_IOMMU_FAULT_R_UNKNOWN 0
+#define VIRTIO_IOMMU_FAULT_R_DOMAIN 1
+#define VIRTIO_IOMMU_FAULT_R_MAPPING 2
+#define VIRTIO_IOMMU_FAULT_F_READ (1 << 0)
+#define VIRTIO_IOMMU_FAULT_F_WRITE (1 << 1)
+#define VIRTIO_IOMMU_FAULT_F_EXEC (1 << 2)
+#define VIRTIO_IOMMU_FAULT_F_ADDRESS (1 << 8)
+struct virtio_iommu_fault {
+ __u8 reason;
+ __u8 reserved[3];
+ __le32 flags;
+ __le32 endpoint;
+ __u8 reserved2[4];
+ __le64 address;
+};
+#endif
diff --git a/libc/kernel/uapi/linux/wanrouter.h b/libc/kernel/uapi/linux/virtio_pmem.h
similarity index 74%
rename from libc/kernel/uapi/linux/wanrouter.h
rename to libc/kernel/uapi/linux/virtio_pmem.h
index 9bd45a3..38740f3 100644
--- a/libc/kernel/uapi/linux/wanrouter.h
+++ b/libc/kernel/uapi/linux/virtio_pmem.h
@@ -16,12 +16,20 @@
***
****************************************************************************
****************************************************************************/
-#ifndef _UAPI_ROUTER_H
-#define _UAPI_ROUTER_H
-enum wan_states {
- WAN_UNCONFIGURED,
- WAN_DISCONNECTED,
- WAN_CONNECTING,
- WAN_CONNECTED
+#ifndef _UAPI_LINUX_VIRTIO_PMEM_H
+#define _UAPI_LINUX_VIRTIO_PMEM_H
+#include <linux/types.h>
+#include <linux/virtio_ids.h>
+#include <linux/virtio_config.h>
+struct virtio_pmem_config {
+ __u64 start;
+ __u64 size;
+};
+#define VIRTIO_PMEM_REQ_TYPE_FLUSH 0
+struct virtio_pmem_resp {
+ __le32 ret;
+};
+struct virtio_pmem_req {
+ __le32 type;
};
#endif