Prepare input updates for 5.6 merge window.
Showing the changes to include/uapi/linux (78 of 11657 files). Show all
Unified · Split
| @@ -143,6 +143,7 @@ · 142 unmodified lines | |||
| 143 | #define AUDIT_ANOM_PROMISCUOUS 1700 /* Device changed promiscuous mode */ | 143 | #define AUDIT_ANOM_PROMISCUOUS 1700 /* Device changed promiscuous mode */ |
| 144 | #define AUDIT_ANOM_ABEND 1701 /* Process ended abnormally */ | 144 | #define AUDIT_ANOM_ABEND 1701 /* Process ended abnormally */ |
| 145 | #define AUDIT_ANOM_LINK 1702 /* Suspicious use of file links */ | 145 | #define AUDIT_ANOM_LINK 1702 /* Suspicious use of file links */ |
| 146 | #define AUDIT_ANOM_CREAT 1703 /* Suspicious file creation */ | ||
| 146 | #define AUDIT_INTEGRITY_DATA 1800 /* Data integrity verification */ | 147 | #define AUDIT_INTEGRITY_DATA 1800 /* Data integrity verification */ |
| 147 | #define AUDIT_INTEGRITY_METADATA 1801 /* Metadata integrity verification */ | 148 | #define AUDIT_INTEGRITY_METADATA 1801 /* Metadata integrity verification */ |
| 148 | #define AUDIT_INTEGRITY_STATUS 1802 /* Integrity enable status */ | 149 | #define AUDIT_INTEGRITY_STATUS 1802 /* Integrity enable status */ |
| @@ -120,9 +120,11 @@ struct blk_zone_report { · 119 unmodified lines | |||
| 120 | }; | 120 | }; |
| 121 | 121 | ||
| 122 | /** | 122 | /** |
| 123 | * struct blk_zone_range - BLKRESETZONE ioctl request | 123 | * struct blk_zone_range - BLKRESETZONE/BLKOPENZONE/ |
| 124 | * @sector: starting sector of the first zone to issue reset write pointer | 124 | * BLKCLOSEZONE/BLKFINISHZONE ioctl |
| 125 | * @nr_sectors: Total number of sectors of 1 or more zones to reset | 125 | * requests |
| 126 | * @sector: Starting sector of the first zone to operate on. | ||
| 127 | * @nr_sectors: Total number of sectors of all zones to operate on. | ||
| 126 | */ | 128 | */ |
| 127 | struct blk_zone_range { | 129 | struct blk_zone_range { |
| 128 | __u64 sector; | 130 | __u64 sector; |
| @@ -139,10 +141,19 @@ struct blk_zone_range { · 10 unmodified lines | |||
| 139 | * sector range. The sector range must be zone aligned. | 141 | * sector range. The sector range must be zone aligned. |
| 140 | * @BLKGETZONESZ: Get the device zone size in number of 512 B sectors. | 142 | * @BLKGETZONESZ: Get the device zone size in number of 512 B sectors. |
| 141 | * @BLKGETNRZONES: Get the total number of zones of the device. | 143 | * @BLKGETNRZONES: Get the total number of zones of the device. |
| 144 | * @BLKOPENZONE: Open the zones in the specified sector range. | ||
| 145 | * The 512 B sector range must be zone aligned. | ||
| 146 | * @BLKCLOSEZONE: Close the zones in the specified sector range. | ||
| 147 | * The 512 B sector range must be zone aligned. | ||
| 148 | * @BLKFINISHZONE: Mark the zones as full in the specified sector range. | ||
| 149 | * The 512 B sector range must be zone aligned. | ||
| 142 | */ | 150 | */ |
| 143 | #define BLKREPORTZONE _IOWR(0x12, 130, struct blk_zone_report) | 151 | #define BLKREPORTZONE _IOWR(0x12, 130, struct blk_zone_report) |
| 144 | #define BLKRESETZONE _IOW(0x12, 131, struct blk_zone_range) | 152 | #define BLKRESETZONE _IOW(0x12, 131, struct blk_zone_range) |
| 145 | #define BLKGETZONESZ _IOR(0x12, 132, __u32) | 153 | #define BLKGETZONESZ _IOR(0x12, 132, __u32) |
| 146 | #define BLKGETNRZONES _IOR(0x12, 133, __u32) | 154 | #define BLKGETNRZONES _IOR(0x12, 133, __u32) |
| 155 | #define BLKOPENZONE _IOW(0x12, 134, struct blk_zone_range) | ||
| 156 | #define BLKCLOSEZONE _IOW(0x12, 135, struct blk_zone_range) | ||
| 157 | #define BLKFINISHZONE _IOW(0x12, 136, struct blk_zone_range) | ||
| 147 | 158 | ||
| 148 | #endif /* _UAPI_BLKZONED_H */ | 159 | #endif /* _UAPI_BLKZONED_H */ |
| @@ -173,6 +173,7 @@ enum bpf_prog_type { · 172 unmodified lines | |||
| 173 | BPF_PROG_TYPE_CGROUP_SYSCTL, | 173 | BPF_PROG_TYPE_CGROUP_SYSCTL, |
| 174 | BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE, | 174 | BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE, |
| 175 | BPF_PROG_TYPE_CGROUP_SOCKOPT, | 175 | BPF_PROG_TYPE_CGROUP_SOCKOPT, |
| 176 | BPF_PROG_TYPE_TRACING, | ||
| 176 | }; | 177 | }; |
| 177 | 178 | ||
| 178 | enum bpf_attach_type { | 179 | enum bpf_attach_type { |
| @@ -199,6 +200,9 @@ enum bpf_attach_type { · 20 unmodified lines | |||
| 199 | BPF_CGROUP_UDP6_RECVMSG, | 200 | BPF_CGROUP_UDP6_RECVMSG, |
| 200 | BPF_CGROUP_GETSOCKOPT, | 201 | BPF_CGROUP_GETSOCKOPT, |
| 201 | BPF_CGROUP_SETSOCKOPT, | 202 | BPF_CGROUP_SETSOCKOPT, |
| 203 | BPF_TRACE_RAW_TP, | ||
| 204 | BPF_TRACE_FENTRY, | ||
| 205 | BPF_TRACE_FEXIT, | ||
| 202 | __MAX_BPF_ATTACH_TYPE | 206 | __MAX_BPF_ATTACH_TYPE |
| 203 | }; | 207 | }; |
| 204 | 208 | ||
| @@ -344,6 +348,9 @@ enum bpf_attach_type { · 139 unmodified lines | |||
| 344 | /* Clone map from listener for newly accepted socket */ | 348 | /* Clone map from listener for newly accepted socket */ |
| 345 | #define BPF_F_CLONE (1U << 9) | 349 | #define BPF_F_CLONE (1U << 9) |
| 346 | 350 | ||
| 351 | /* Enable memory-mapping BPF map */ | ||
| 352 | #define BPF_F_MMAPABLE (1U << 10) | ||
| 353 | |||
| 347 | /* flags for BPF_PROG_QUERY */ | 354 | /* flags for BPF_PROG_QUERY */ |
| 348 | #define BPF_F_QUERY_EFFECTIVE (1U << 0) | 355 | #define BPF_F_QUERY_EFFECTIVE (1U << 0) |
| 349 | 356 | ||
| @@ -420,6 +427,8 @@ union bpf_attr { · 70 unmodified lines | |||
| 420 | __u32 line_info_rec_size; /* userspace bpf_line_info size */ | 427 | __u32 line_info_rec_size; /* userspace bpf_line_info size */ |
| 421 | __aligned_u64 line_info; /* line info */ | 428 | __aligned_u64 line_info; /* line info */ |
| 422 | __u32 line_info_cnt; /* number of bpf_line_info records */ | 429 | __u32 line_info_cnt; /* number of bpf_line_info records */ |
| 430 | __u32 attach_btf_id; /* in-kernel BTF type id to attach to */ | ||
| 431 | __u32 attach_prog_fd; /* 0 to attach to vmlinux */ | ||
| 423 | }; | 432 | }; |
| 424 | 433 | ||
| 425 | struct { /* anonymous struct used by BPF_OBJ_* commands */ | 434 | struct { /* anonymous struct used by BPF_OBJ_* commands */ |
| @@ -560,10 +569,13 @@ union bpf_attr { · 134 unmodified lines | |||
| 560 | * Return | 569 | * Return |
| 561 | * 0 on success, or a negative error in case of failure. | 570 | * 0 on success, or a negative error in case of failure. |
| 562 | * | 571 | * |
| 563 | * int bpf_probe_read(void *dst, u32 size, const void *src) | 572 | * int bpf_probe_read(void *dst, u32 size, const void *unsafe_ptr) |
| 564 | * Description | 573 | * Description |
| 565 | * For tracing programs, safely attempt to read *size* bytes from | 574 | * For tracing programs, safely attempt to read *size* bytes from |
| 566 | * address *src* and store the data in *dst*. | 575 | * kernel space address *unsafe_ptr* and store the data in *dst*. |
| 576 | * | ||
| 577 | * Generally, use bpf_probe_read_user() or bpf_probe_read_kernel() | ||
| 578 | * instead. | ||
| 567 | * Return | 579 | * Return |
| 568 | * 0 on success, or a negative error in case of failure. | 580 | * 0 on success, or a negative error in case of failure. |
| 569 | * | 581 | * |
| @@ -794,7 +806,7 @@ union bpf_attr { · 224 unmodified lines | |||
| 794 | * A 64-bit integer containing the current GID and UID, and | 806 | * A 64-bit integer containing the current GID and UID, and |
| 795 | * created as such: *current_gid* **<< 32 \|** *current_uid*. | 807 | * created as such: *current_gid* **<< 32 \|** *current_uid*. |
| 796 | * | 808 | * |
| 797 | * int bpf_get_current_comm(char *buf, u32 size_of_buf) | 809 | * int bpf_get_current_comm(void *buf, u32 size_of_buf) |
| 798 | * Description | 810 | * Description |
| 799 | * Copy the **comm** attribute of the current task into *buf* of | 811 | * Copy the **comm** attribute of the current task into *buf* of |
| 800 | * *size_of_buf*. The **comm** attribute contains the name of | 812 | * *size_of_buf*. The **comm** attribute contains the name of |
| @@ -1023,7 +1035,7 @@ union bpf_attr { · 222 unmodified lines | |||
| 1023 | * The realm of the route for the packet associated to *skb*, or 0 | 1035 | * The realm of the route for the packet associated to *skb*, or 0 |
| 1024 | * if none was found. | 1036 | * if none was found. |
| 1025 | * | 1037 | * |
| 1026 | * int bpf_perf_event_output(struct pt_regs *ctx, struct bpf_map *map, u64 flags, void *data, u64 size) | 1038 | * int bpf_perf_event_output(void *ctx, struct bpf_map *map, u64 flags, void *data, u64 size) |
| 1027 | * Description | 1039 | * Description |
| 1028 | * Write raw *data* blob into a special BPF perf event held by | 1040 | * Write raw *data* blob into a special BPF perf event held by |
| 1029 | * *map* of type **BPF_MAP_TYPE_PERF_EVENT_ARRAY**. This perf | 1041 | * *map* of type **BPF_MAP_TYPE_PERF_EVENT_ARRAY**. This perf |
| @@ -1068,7 +1080,7 @@ union bpf_attr { · 38 unmodified lines | |||
| 1068 | * Return | 1080 | * Return |
| 1069 | * 0 on success, or a negative error in case of failure. | 1081 | * 0 on success, or a negative error in case of failure. |
| 1070 | * | 1082 | * |
| 1071 | * int bpf_skb_load_bytes(const struct sk_buff *skb, u32 offset, void *to, u32 len) | 1083 | * int bpf_skb_load_bytes(const void *skb, u32 offset, void *to, u32 len) |
| 1072 | * Description | 1084 | * Description |
| 1073 | * This helper was provided as an easy way to load data from a | 1085 | * This helper was provided as an easy way to load data from a |
| 1074 | * packet. It can be used to load *len* bytes from *offset* from | 1086 | * packet. It can be used to load *len* bytes from *offset* from |
| @@ -1085,7 +1097,7 @@ union bpf_attr { · 10 unmodified lines | |||
| 1085 | * Return | 1097 | * Return |
| 1086 | * 0 on success, or a negative error in case of failure. | 1098 | * 0 on success, or a negative error in case of failure. |
| 1087 | * | 1099 | * |
| 1088 | * int bpf_get_stackid(struct pt_regs *ctx, struct bpf_map *map, u64 flags) | 1100 | * int bpf_get_stackid(void *ctx, struct bpf_map *map, u64 flags) |
| 1089 | * Description | 1101 | * Description |
| 1090 | * Walk a user or a kernel stack and return its id. To achieve | 1102 | * Walk a user or a kernel stack and return its id. To achieve |
| 1091 | * this, the helper needs *ctx*, which is a pointer to the context | 1103 | * this, the helper needs *ctx*, which is a pointer to the context |
| @@ -1154,7 +1166,7 @@ union bpf_attr { · 62 unmodified lines | |||
| 1154 | * The checksum result, or a negative error code in case of | 1166 | * The checksum result, or a negative error code in case of |
| 1155 | * failure. | 1167 | * failure. |
| 1156 | * | 1168 | * |
| 1157 | * int bpf_skb_get_tunnel_opt(struct sk_buff *skb, u8 *opt, u32 size) | 1169 | * int bpf_skb_get_tunnel_opt(struct sk_buff *skb, void *opt, u32 size) |
| 1158 | * Description | 1170 | * Description |
| 1159 | * Retrieve tunnel options metadata for the packet associated to | 1171 | * Retrieve tunnel options metadata for the packet associated to |
| 1160 | * *skb*, and store the raw tunnel option data to the buffer *opt* | 1172 | * *skb*, and store the raw tunnel option data to the buffer *opt* |
| @@ -1172,7 +1184,7 @@ union bpf_attr { · 11 unmodified lines | |||
| 1172 | * Return | 1184 | * Return |
| 1173 | * The size of the option data retrieved. | 1185 | * The size of the option data retrieved. |
| 1174 | * | 1186 | * |
| 1175 | * int bpf_skb_set_tunnel_opt(struct sk_buff *skb, u8 *opt, u32 size) | 1187 | * int bpf_skb_set_tunnel_opt(struct sk_buff *skb, void *opt, u32 size) |
| 1176 | * Description | 1188 | * Description |
| 1177 | * Set tunnel options metadata for the packet associated to *skb* | 1189 | * Set tunnel options metadata for the packet associated to *skb* |
| 1178 | * to the option data contained in the raw buffer *opt* of *size*. | 1190 | * to the option data contained in the raw buffer *opt* of *size*. |
| @@ -1425,45 +1437,14 @@ union bpf_attr { · 246 unmodified lines | |||
| 1425 | * Return | 1437 | * Return |
| 1426 | * 0 on success, or a negative error in case of failure. | 1438 | * 0 on success, or a negative error in case of failure. |
| 1427 | * | 1439 | * |
| 1428 | * int bpf_probe_read_str(void *dst, int size, const void *unsafe_ptr) | 1440 | * int bpf_probe_read_str(void *dst, u32 size, const void *unsafe_ptr) |
| 1429 | * Description | 1441 | * Description |
| 1430 | * Copy a NUL terminated string from an unsafe address | 1442 | * Copy a NUL terminated string from an unsafe kernel address |
| 1431 | * *unsafe_ptr* to *dst*. The *size* should include the | 1443 | * *unsafe_ptr* to *dst*. See bpf_probe_read_kernel_str() for |
| 1432 | * terminating NUL byte. In case the string length is smaller than | 1444 | * more details. |
| 1433 | * *size*, the target is not padded with further NUL bytes. If the | ||
| 1434 | * string length is larger than *size*, just *size*-1 bytes are | ||
| 1435 | * copied and the last byte is set to NUL. | ||
| 1436 | * | ||
| 1437 | * On success, the length of the copied string is returned. This | ||
| 1438 | * makes this helper useful in tracing programs for reading | ||
| 1439 | * strings, and more importantly to get its length at runtime. See | ||
| 1440 | * the following snippet: | ||
| 1441 | * | ||
| 1442 | * :: | ||
| 1443 | * | ||
| 1444 | * SEC("kprobe/sys_open") | ||
| 1445 | * void bpf_sys_open(struct pt_regs *ctx) | ||
| 1446 | * { | ||
| 1447 | * char buf[PATHLEN]; // PATHLEN is defined to 256 | ||
| 1448 | * int res = bpf_probe_read_str(buf, sizeof(buf), | ||
| 1449 | * ctx->di); | ||
| 1450 | * | ||
| 1451 | * // Consume buf, for example push it to | ||
| 1452 | * // userspace via bpf_perf_event_output(); we | ||
| 1453 | * // can use res (the string length) as event | ||
| 1454 | * // size, after checking its boundaries. | ||
| 1455 | * } | ||
| 1456 | * | 1445 | * |
| 1457 | * In comparison, using **bpf_probe_read()** helper here instead | 1446 | * Generally, use bpf_probe_read_user_str() or bpf_probe_read_kernel_str() |
| 1458 | * to read the string would require to estimate the length at | 1447 | * instead. |
| 1459 | * compile time, and would often result in copying more memory | ||
| 1460 | * than necessary. | ||
| 1461 | * | ||
| 1462 | * Another useful use case is when parsing individual process | ||
| 1463 | * arguments or individual environment variables navigating | ||
| 1464 | * *current*\ **->mm->arg_start** and *current*\ | ||
| 1465 | * **->mm->env_start**: using this helper and the return value, | ||
| 1466 | * one can quickly iterate at the right offset of the memory area. | ||
| 1467 | * Return | 1448 | * Return |
| 1468 | * On success, the strictly positive length of the string, | 1449 | * On success, the strictly positive length of the string, |
| 1469 | * including the trailing NUL character. On error, a negative | 1450 | * including the trailing NUL character. On error, a negative |
| @@ -1511,7 +1492,7 @@ union bpf_attr { · 41 unmodified lines | |||
| 1511 | * Return | 1492 | * Return |
| 1512 | * 0 | 1493 | * 0 |
| 1513 | * | 1494 | * |
| 1514 | * int bpf_setsockopt(struct bpf_sock_ops *bpf_socket, int level, int optname, char *optval, int optlen) | 1495 | * int bpf_setsockopt(struct bpf_sock_ops *bpf_socket, int level, int optname, void *optval, int optlen) |
| 1515 | * Description | 1496 | * Description |
| 1516 | * Emulate a call to **setsockopt()** on the socket associated to | 1497 | * Emulate a call to **setsockopt()** on the socket associated to |
| 1517 | * *bpf_socket*, which must be a full socket. The *level* at | 1498 | * *bpf_socket*, which must be a full socket. The *level* at |
| @@ -1595,7 +1576,7 @@ union bpf_attr { · 77 unmodified lines | |||
| 1595 | * Return | 1576 | * Return |
| 1596 | * **XDP_REDIRECT** on success, or **XDP_ABORTED** on error. | 1577 | * **XDP_REDIRECT** on success, or **XDP_ABORTED** on error. |
| 1597 | * | 1578 | * |
| 1598 | * int bpf_sk_redirect_map(struct bpf_map *map, u32 key, u64 flags) | 1579 | * int bpf_sk_redirect_map(struct sk_buff *skb, struct bpf_map *map, u32 key, u64 flags) |
| 1599 | * Description | 1580 | * Description |
| 1600 | * Redirect the packet to the socket referenced by *map* (of type | 1581 | * Redirect the packet to the socket referenced by *map* (of type |
| 1601 | * **BPF_MAP_TYPE_SOCKMAP**) at index *key*. Both ingress and | 1582 | * **BPF_MAP_TYPE_SOCKMAP**) at index *key*. Both ingress and |
| @@ -1715,7 +1696,7 @@ union bpf_attr { · 113 unmodified lines | |||
| 1715 | * Return | 1696 | * Return |
| 1716 | * 0 on success, or a negative error in case of failure. | 1697 | * 0 on success, or a negative error in case of failure. |
| 1717 | * | 1698 | * |
| 1718 | * int bpf_getsockopt(struct bpf_sock_ops *bpf_socket, int level, int optname, char *optval, int optlen) | 1699 | * int bpf_getsockopt(struct bpf_sock_ops *bpf_socket, int level, int optname, void *optval, int optlen) |
| 1719 | * Description | 1700 | * Description |
| 1720 | * Emulate a call to **getsockopt()** on the socket associated to | 1701 | * Emulate a call to **getsockopt()** on the socket associated to |
| 1721 | * *bpf_socket*, which must be a full socket. The *level* at | 1702 | * *bpf_socket*, which must be a full socket. The *level* at |
| @@ -1947,7 +1928,7 @@ union bpf_attr { · 225 unmodified lines | |||
| 1947 | * Return | 1928 | * Return |
| 1948 | * 0 on success, or a negative error in case of failure. | 1929 | * 0 on success, or a negative error in case of failure. |
| 1949 | * | 1930 | * |
| 1950 | * int bpf_get_stack(struct pt_regs *regs, void *buf, u32 size, u64 flags) | 1931 | * int bpf_get_stack(void *ctx, void *buf, u32 size, u64 flags) |
| 1951 | * Description | 1932 | * Description |
| 1952 | * Return a user or a kernel stack in bpf program provided buffer. | 1933 | * Return a user or a kernel stack in bpf program provided buffer. |
| 1953 | * To achieve this, the helper needs *ctx*, which is a pointer | 1934 | * To achieve this, the helper needs *ctx*, which is a pointer |
| @@ -1980,7 +1961,7 @@ union bpf_attr { · 26 unmodified lines | |||
| 1980 | * A non-negative value equal to or less than *size* on success, | 1961 | * A non-negative value equal to or less than *size* on success, |
| 1981 | * or a negative error in case of failure. | 1962 | * or a negative error in case of failure. |
| 1982 | * | 1963 | * |
| 1983 | * int bpf_skb_load_bytes_relative(const struct sk_buff *skb, u32 offset, void *to, u32 len, u32 start_header) | 1964 | * int bpf_skb_load_bytes_relative(const void *skb, u32 offset, void *to, u32 len, u32 start_header) |
| 1984 | * Description | 1965 | * Description |
| 1985 | * This helper is similar to **bpf_skb_load_bytes**\ () in that | 1966 | * This helper is similar to **bpf_skb_load_bytes**\ () in that |
| 1986 | * it provides an easy way to load *len* bytes from *offset* | 1967 | * it provides an easy way to load *len* bytes from *offset* |
| @@ -2033,7 +2014,7 @@ union bpf_attr { · 46 unmodified lines | |||
| 2033 | * * > 0 one of **BPF_FIB_LKUP_RET_** codes explaining why the | 2014 | * * > 0 one of **BPF_FIB_LKUP_RET_** codes explaining why the |
| 2034 | * packet is not forwarded or needs assist from full stack | 2015 | * packet is not forwarded or needs assist from full stack |
| 2035 | * | 2016 | * |
| 2036 | * int bpf_sock_hash_update(struct bpf_sock_ops_kern *skops, struct bpf_map *map, void *key, u64 flags) | 2017 | * int bpf_sock_hash_update(struct bpf_sock_ops *skops, struct bpf_map *map, void *key, u64 flags) |
| 2037 | * Description | 2018 | * Description |
| 2038 | * Add an entry to, or update a sockhash *map* referencing sockets. | 2019 | * Add an entry to, or update a sockhash *map* referencing sockets. |
| 2039 | * The *skops* is used as a new value for the entry associated to | 2020 | * The *skops* is used as a new value for the entry associated to |
| @@ -2392,7 +2373,7 @@ union bpf_attr { · 352 unmodified lines | |||
| 2392 | * Return | 2373 | * Return |
| 2393 | * 0 on success, or a negative error in case of failure. | 2374 | * 0 on success, or a negative error in case of failure. |
| 2394 | * | 2375 | * |
| 2395 | * int bpf_msg_push_data(struct sk_buff *skb, u32 start, u32 len, u64 flags) | 2376 | * int bpf_msg_push_data(struct sk_msg_buff *msg, u32 start, u32 len, u64 flags) |
| 2396 | * Description | 2377 | * Description |
| 2397 | * For socket policies, insert *len* bytes into *msg* at offset | 2378 | * For socket policies, insert *len* bytes into *msg* at offset |
| 2398 | * *start*. | 2379 | * *start*. |
| @@ -2408,9 +2389,9 @@ union bpf_attr { · 9 unmodified lines | |||
| 2408 | * Return | 2389 | * Return |
| 2409 | * 0 on success, or a negative error in case of failure. | 2390 | * 0 on success, or a negative error in case of failure. |
| 2410 | * | 2391 | * |
| 2411 | * int bpf_msg_pop_data(struct sk_msg_buff *msg, u32 start, u32 pop, u64 flags) | 2392 | * int bpf_msg_pop_data(struct sk_msg_buff *msg, u32 start, u32 len, u64 flags) |
| 2412 | * Description | 2393 | * Description |
| 2413 | * Will remove *pop* bytes from a *msg* starting at byte *start*. | 2394 | * Will remove *len* bytes from a *msg* starting at byte *start*. |
| 2414 | * This may result in **ENOMEM** errors under certain situations if | 2395 | * This may result in **ENOMEM** errors under certain situations if |
| 2415 | * an allocation and copy are required due to a full ring buffer. | 2396 | * an allocation and copy are required due to a full ring buffer. |
| 2416 | * However, the helper will try to avoid doing the allocation | 2397 | * However, the helper will try to avoid doing the allocation |
| @@ -2505,7 +2486,7 @@ union bpf_attr { · 88 unmodified lines | |||
| 2505 | * A **struct bpf_tcp_sock** pointer on success, or **NULL** in | 2486 | * A **struct bpf_tcp_sock** pointer on success, or **NULL** in |
| 2506 | * case of failure. | 2487 | * case of failure. |
| 2507 | * | 2488 | * |
| 2508 | * int bpf_skb_ecn_set_ce(struct sk_buf *skb) | 2489 | * int bpf_skb_ecn_set_ce(struct sk_buff *skb) |
| 2509 | * Description | 2490 | * Description |
| 2510 | * Set ECN (Explicit Congestion Notification) field of IP header | 2491 | * Set ECN (Explicit Congestion Notification) field of IP header |
| 2511 | * to **CE** (Congestion Encountered) if current value is **ECT** | 2492 | * to **CE** (Congestion Encountered) if current value is **ECT** |
| @@ -2750,6 +2731,96 @@ union bpf_attr { · 238 unmodified lines | |||
| 2750 | * **-EOPNOTSUPP** kernel configuration does not enable SYN cookies | 2731 | * **-EOPNOTSUPP** kernel configuration does not enable SYN cookies |
| 2751 | * | 2732 | * |
| 2752 | * **-EPROTONOSUPPORT** IP packet version is not 4 or 6 | 2733 | * **-EPROTONOSUPPORT** IP packet version is not 4 or 6 |
| 2734 | * | ||
| 2735 | * int bpf_skb_output(void *ctx, struct bpf_map *map, u64 flags, void *data, u64 size) | ||
| 2736 | * Description | ||
| 2737 | * Write raw *data* blob into a special BPF perf event held by | ||
| 2738 | * *map* of type **BPF_MAP_TYPE_PERF_EVENT_ARRAY**. This perf | ||
| 2739 | * event must have the following attributes: **PERF_SAMPLE_RAW** | ||
| 2740 | * as **sample_type**, **PERF_TYPE_SOFTWARE** as **type**, and | ||
| 2741 | * **PERF_COUNT_SW_BPF_OUTPUT** as **config**. | ||
| 2742 | * | ||
| 2743 | * The *flags* are used to indicate the index in *map* for which | ||
| 2744 | * the value must be put, masked with **BPF_F_INDEX_MASK**. | ||
| 2745 | * Alternatively, *flags* can be set to **BPF_F_CURRENT_CPU** | ||
| 2746 | * to indicate that the index of the current CPU core should be | ||
| 2747 | * used. | ||
| 2748 | * | ||
| 2749 | * The value to write, of *size*, is passed through eBPF stack and | ||
| 2750 | * pointed by *data*. | ||
| 2751 | * | ||
| 2752 | * *ctx* is a pointer to in-kernel struct sk_buff. | ||
| 2753 | * | ||
| 2754 | * This helper is similar to **bpf_perf_event_output**\ () but | ||
| 2755 | * restricted to raw_tracepoint bpf programs. | ||
| 2756 | * Return | ||
| 2757 | * 0 on success, or a negative error in case of failure. | ||
| 2758 | * | ||
| 2759 | * int bpf_probe_read_user(void *dst, u32 size, const void *unsafe_ptr) | ||
| 2760 | * Description | ||
| 2761 | * Safely attempt to read *size* bytes from user space address | ||
| 2762 | * *unsafe_ptr* and store the data in *dst*. | ||
| 2763 | * Return | ||
| 2764 | * 0 on success, or a negative error in case of failure. | ||
| 2765 | * | ||
| 2766 | * int bpf_probe_read_kernel(void *dst, u32 size, const void *unsafe_ptr) | ||
| 2767 | * Description | ||
| 2768 | * Safely attempt to read *size* bytes from kernel space address | ||
| 2769 | * *unsafe_ptr* and store the data in *dst*. | ||
| 2770 | * Return | ||
| 2771 | * 0 on success, or a negative error in case of failure. | ||
| 2772 | * | ||
| 2773 | * int bpf_probe_read_user_str(void *dst, u32 size, const void *unsafe_ptr) | ||
| 2774 | * Description | ||
| 2775 | * Copy a NUL terminated string from an unsafe user address | ||
| 2776 | * *unsafe_ptr* to *dst*. The *size* should include the | ||
| 2777 | * terminating NUL byte. In case the string length is smaller than | ||
| 2778 | * *size*, the target is not padded with further NUL bytes. If the | ||
| 2779 | * string length is larger than *size*, just *size*-1 bytes are | ||
| 2780 | * copied and the last byte is set to NUL. | ||
| 2781 | * | ||
| 2782 | * On success, the length of the copied string is returned. This | ||
| 2783 | * makes this helper useful in tracing programs for reading | ||
| 2784 | * strings, and more importantly to get its length at runtime. See | ||
| 2785 | * the following snippet: | ||
| 2786 | * | ||
| 2787 | * :: | ||
| 2788 | * | ||
| 2789 | * SEC("kprobe/sys_open") | ||
| 2790 | * void bpf_sys_open(struct pt_regs *ctx) | ||
| 2791 | * { | ||
| 2792 | * char buf[PATHLEN]; // PATHLEN is defined to 256 | ||
| 2793 | * int res = bpf_probe_read_user_str(buf, sizeof(buf), | ||
| 2794 | * ctx->di); | ||
| 2795 | * | ||
| 2796 | * // Consume buf, for example push it to | ||
| 2797 | * // userspace via bpf_perf_event_output(); we | ||
| 2798 | * // can use res (the string length) as event | ||
| 2799 | * // size, after checking its boundaries. | ||
| 2800 | * } | ||
| 2801 | * | ||
| 2802 | * In comparison, using **bpf_probe_read_user()** helper here | ||
| 2803 | * instead to read the string would require to estimate the length | ||
| 2804 | * at compile time, and would often result in copying more memory | ||
| 2805 | * than necessary. | ||
| 2806 | * | ||
| 2807 | * Another useful use case is when parsing individual process | ||
| 2808 | * arguments or individual environment variables navigating | ||
| 2809 | * *current*\ **->mm->arg_start** and *current*\ | ||
| 2810 | * **->mm->env_start**: using this helper and the return value, | ||
| 2811 | * one can quickly iterate at the right offset of the memory area. | ||
| 2812 | * Return | ||
| 2813 | * On success, the strictly positive length of the string, | ||
| 2814 | * including the trailing NUL character. On error, a negative | ||
| 2815 | * value. | ||
| 2816 | * | ||
| 2817 | * int bpf_probe_read_kernel_str(void *dst, u32 size, const void *unsafe_ptr) | ||
| 2818 | * Description | ||
| 2819 | * Copy a NUL terminated string from an unsafe kernel address *unsafe_ptr* | ||
| 2820 | * to *dst*. Same semantics as with bpf_probe_read_user_str() apply. | ||
| 2821 | * Return | ||
| 2822 | * On success, the strictly positive length of the string, including | ||
| 2823 | * the trailing NUL character. On error, a negative value. | ||
| 2753 | */ | 2824 | */ |
| 2754 | #define __BPF_FUNC_MAPPER(FN) \ | 2825 | #define __BPF_FUNC_MAPPER(FN) \ |
| 2755 | FN(unspec), \ | 2826 | FN(unspec), \ |
| @@ -2862,7 +2933,12 @@ union bpf_attr { · 106 unmodified lines | |||
| 2862 | FN(sk_storage_get), \ | 2933 | FN(sk_storage_get), \ |
| 2863 | FN(sk_storage_delete), \ | 2934 | FN(sk_storage_delete), \ |
| 2864 | FN(send_signal), \ | 2935 | FN(send_signal), \ |
| 2865 | FN(tcp_gen_syncookie), | 2936 | FN(tcp_gen_syncookie), \ |
| 2937 | FN(skb_output), \ | ||
| 2938 | FN(probe_read_user), \ | ||
| 2939 | FN(probe_read_kernel), \ | ||
| 2940 | FN(probe_read_user_str), \ | ||
| 2941 | FN(probe_read_kernel_str), | ||
| 2866 | 2942 | ||
| 2867 | /* integer value in 'imm' field of BPF_CALL instruction selects which helper | 2943 | /* integer value in 'imm' field of BPF_CALL instruction selects which helper |
| 2868 | * function eBPF program intends to call | 2944 | * function eBPF program intends to call |
| @@ -270,6 +270,7 @@ struct btrfs_ioctl_fs_info_args { · 269 unmodified lines | |||
| 270 | #define BTRFS_FEATURE_INCOMPAT_SKINNY_METADATA (1ULL << 8) | 270 | #define BTRFS_FEATURE_INCOMPAT_SKINNY_METADATA (1ULL << 8) |
| 271 | #define BTRFS_FEATURE_INCOMPAT_NO_HOLES (1ULL << 9) | 271 | #define BTRFS_FEATURE_INCOMPAT_NO_HOLES (1ULL << 9) |
| 272 | #define BTRFS_FEATURE_INCOMPAT_METADATA_UUID (1ULL << 10) | 272 | #define BTRFS_FEATURE_INCOMPAT_METADATA_UUID (1ULL << 10) |
| 273 | #define BTRFS_FEATURE_INCOMPAT_RAID1C34 (1ULL << 11) | ||
| 273 | 274 | ||
| 274 | struct btrfs_ioctl_feature_flags { | 275 | struct btrfs_ioctl_feature_flags { |
| 275 | __u64 compat_flags; | 276 | __u64 compat_flags; |
| @@ -831,7 +832,9 @@ enum btrfs_err_code { · 555 unmodified lines | |||
| 831 | BTRFS_ERROR_DEV_TGT_REPLACE, | 832 | BTRFS_ERROR_DEV_TGT_REPLACE, |
| 832 | BTRFS_ERROR_DEV_MISSING_NOT_FOUND, | 833 | BTRFS_ERROR_DEV_MISSING_NOT_FOUND, |
| 833 | BTRFS_ERROR_DEV_ONLY_WRITABLE, | 834 | BTRFS_ERROR_DEV_ONLY_WRITABLE, |
| 834 | BTRFS_ERROR_DEV_EXCL_RUN_IN_PROGRESS | 835 | BTRFS_ERROR_DEV_EXCL_RUN_IN_PROGRESS, |
| 836 | BTRFS_ERROR_DEV_RAID1C3_MIN_NOT_MET, | ||
| 837 | BTRFS_ERROR_DEV_RAID1C4_MIN_NOT_MET, | ||
| 835 | }; | 838 | }; |
| 836 | 839 | ||
| 837 | #define BTRFS_IOC_SNAP_CREATE _IOW(BTRFS_IOCTL_MAGIC, 1, \ | 840 | #define BTRFS_IOC_SNAP_CREATE _IOW(BTRFS_IOCTL_MAGIC, 1, \ |
| @@ -302,6 +302,9 @@ · 301 unmodified lines | |||
| 302 | /* csum types */ | 302 | /* csum types */ |
| 303 | enum btrfs_csum_type { | 303 | enum btrfs_csum_type { |
| 304 | BTRFS_CSUM_TYPE_CRC32 = 0, | 304 | BTRFS_CSUM_TYPE_CRC32 = 0, |
| 305 | BTRFS_CSUM_TYPE_XXHASH = 1, | ||
| 306 | BTRFS_CSUM_TYPE_SHA256 = 2, | ||
| 307 | BTRFS_CSUM_TYPE_BLAKE2 = 3, | ||
| 305 | }; | 308 | }; |
| 306 | 309 | ||
| 307 | /* | 310 | /* |
| @@ -737,10 +740,12 @@ struct btrfs_balance_item { · 429 unmodified lines | |||
| 737 | __le64 unused[4]; | 740 | __le64 unused[4]; |
| 738 | } __attribute__ ((__packed__)); | 741 | } __attribute__ ((__packed__)); |
| 739 | 742 | ||
| 740 | #define BTRFS_FILE_EXTENT_INLINE 0 | 743 | enum { |
| 741 | #define BTRFS_FILE_EXTENT_REG 1 | 744 | BTRFS_FILE_EXTENT_INLINE = 0, |
| 742 | #define BTRFS_FILE_EXTENT_PREALLOC 2 | 745 | BTRFS_FILE_EXTENT_REG = 1, |
| 743 | #define BTRFS_FILE_EXTENT_TYPES 2 | 746 | BTRFS_FILE_EXTENT_PREALLOC = 2, |
| 747 | BTRFS_NR_FILE_EXTENT_TYPES = 3, | ||
| 748 | }; | ||
| 744 | 749 | ||
| 745 | struct btrfs_file_extent_item { | 750 | struct btrfs_file_extent_item { |
| 746 | /* | 751 | /* |
| @@ -836,6 +841,8 @@ struct btrfs_dev_replace_item { · 89 unmodified lines | |||
| 836 | #define BTRFS_BLOCK_GROUP_RAID10 (1ULL << 6) | 841 | #define BTRFS_BLOCK_GROUP_RAID10 (1ULL << 6) |
| 837 | #define BTRFS_BLOCK_GROUP_RAID5 (1ULL << 7) | 842 | #define BTRFS_BLOCK_GROUP_RAID5 (1ULL << 7) |
| 838 | #define BTRFS_BLOCK_GROUP_RAID6 (1ULL << 8) | 843 | #define BTRFS_BLOCK_GROUP_RAID6 (1ULL << 8) |
| 844 | #define BTRFS_BLOCK_GROUP_RAID1C3 (1ULL << 9) | ||
| 845 | #define BTRFS_BLOCK_GROUP_RAID1C4 (1ULL << 10) | ||
| 839 | #define BTRFS_BLOCK_GROUP_RESERVED (BTRFS_AVAIL_ALLOC_BIT_SINGLE | \ | 846 | #define BTRFS_BLOCK_GROUP_RESERVED (BTRFS_AVAIL_ALLOC_BIT_SINGLE | \ |
| 840 | BTRFS_SPACE_INFO_GLOBAL_RSV) | 847 | BTRFS_SPACE_INFO_GLOBAL_RSV) |
| 841 | 848 | ||
| @@ -847,6 +854,8 @@ enum btrfs_raid_types { · 5 unmodified lines | |||
| 847 | BTRFS_RAID_SINGLE, | 854 | BTRFS_RAID_SINGLE, |
| 848 | BTRFS_RAID_RAID5, | 855 | BTRFS_RAID_RAID5, |
| 849 | BTRFS_RAID_RAID6, | 856 | BTRFS_RAID_RAID6, |
| 857 | BTRFS_RAID_RAID1C3, | ||
| 858 | BTRFS_RAID_RAID1C4, | ||
| 850 | BTRFS_NR_RAID_TYPES | 859 | BTRFS_NR_RAID_TYPES |
| 851 | }; | 860 | }; |
| 852 | 861 | ||
| @@ -856,6 +865,8 @@ enum btrfs_raid_types { · 3 unmodified lines | |||
| 856 | 865 | ||
| 857 | #define BTRFS_BLOCK_GROUP_PROFILE_MASK (BTRFS_BLOCK_GROUP_RAID0 | \ | 866 | #define BTRFS_BLOCK_GROUP_PROFILE_MASK (BTRFS_BLOCK_GROUP_RAID0 | \ |
| 858 | BTRFS_BLOCK_GROUP_RAID1 | \ | 867 | BTRFS_BLOCK_GROUP_RAID1 | \ |
| 868 | BTRFS_BLOCK_GROUP_RAID1C3 | \ | ||
| 869 | BTRFS_BLOCK_GROUP_RAID1C4 | \ | ||
| 859 | BTRFS_BLOCK_GROUP_RAID5 | \ | 870 | BTRFS_BLOCK_GROUP_RAID5 | \ |
| 860 | BTRFS_BLOCK_GROUP_RAID6 | \ | 871 | BTRFS_BLOCK_GROUP_RAID6 | \ |
| 861 | BTRFS_BLOCK_GROUP_DUP | \ | 872 | BTRFS_BLOCK_GROUP_DUP | \ |
| @@ -863,7 +874,9 @@ enum btrfs_raid_types { · 1 unmodified line | |||
| 863 | #define BTRFS_BLOCK_GROUP_RAID56_MASK (BTRFS_BLOCK_GROUP_RAID5 | \ | 874 | #define BTRFS_BLOCK_GROUP_RAID56_MASK (BTRFS_BLOCK_GROUP_RAID5 | \ |
| 864 | BTRFS_BLOCK_GROUP_RAID6) | 875 | BTRFS_BLOCK_GROUP_RAID6) |
| 865 | 876 | ||
| 866 | #define BTRFS_BLOCK_GROUP_RAID1_MASK (BTRFS_BLOCK_GROUP_RAID1) | 877 | #define BTRFS_BLOCK_GROUP_RAID1_MASK (BTRFS_BLOCK_GROUP_RAID1 | \ |
| 878 | BTRFS_BLOCK_GROUP_RAID1C3 | \ | ||
| 879 | BTRFS_BLOCK_GROUP_RAID1C4) | ||
| 867 | 880 | ||
| 868 | /* | 881 | /* |
| 869 | * We need a bit for restriper to be able to tell when chunks of type | 882 | * We need a bit for restriper to be able to tell when chunks of type |
| @@ -1,4 +1,4 @@ | |||
| 1 | /* SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause) */ | 1 | /* SPDX-License-Identifier: ((GPL-2.0-only WITH Linux-syscall-note) OR BSD-3-Clause) */ |
| 2 | /* | 2 | /* |
| 3 | * linux/can.h | 3 | * linux/can.h |
| 4 | * | 4 | * |
| @@ -1,4 +1,4 @@ | |||
| 1 | /* SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause) */ | 1 | /* SPDX-License-Identifier: ((GPL-2.0-only WITH Linux-syscall-note) OR BSD-3-Clause) */ |
| 2 | /* | 2 | /* |
| 3 | * linux/can/bcm.h | 3 | * linux/can/bcm.h |
| 4 | * | 4 | * |
| @@ -1,4 +1,4 @@ | |||
| 1 | /* SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause) */ | 1 | /* SPDX-License-Identifier: ((GPL-2.0-only WITH Linux-syscall-note) OR BSD-3-Clause) */ |
| 2 | /* | 2 | /* |
| 3 | * linux/can/error.h | 3 | * linux/can/error.h |
| 4 | * | 4 | * |
| @@ -1,4 +1,4 @@ | |||
| 1 | /* SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause) */ | 1 | /* SPDX-License-Identifier: ((GPL-2.0-only WITH Linux-syscall-note) OR BSD-3-Clause) */ |
| 2 | /* | 2 | /* |
| 3 | * linux/can/gw.h | 3 | * linux/can/gw.h |
| 4 | * | 4 | * |
| @@ -1,4 +1,4 @@ | |||
| 1 | /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ | 1 | /* SPDX-License-Identifier: GPL-2.0-only WITH Linux-syscall-note */ |
| 2 | /* | 2 | /* |
| 3 | * j1939.h | 3 | * j1939.h |
| 4 | * | 4 | * |
| @@ -1,4 +1,4 @@ | |||
| 1 | /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ | 1 | /* SPDX-License-Identifier: GPL-2.0-only WITH Linux-syscall-note */ |
| 2 | /* | 2 | /* |
| 3 | * linux/can/netlink.h | 3 | * linux/can/netlink.h |
| 4 | * | 4 | * |
| @@ -1,4 +1,4 @@ | |||
| 1 | /* SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause) */ | 1 | /* SPDX-License-Identifier: ((GPL-2.0-only WITH Linux-syscall-note) OR BSD-3-Clause) */ |
| 2 | /* | 2 | /* |
| 3 | * linux/can/raw.h | 3 | * linux/can/raw.h |
| 4 | * | 4 | * |
| @@ -1,4 +1,4 @@ | |||
| 1 | /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ | 1 | /* SPDX-License-Identifier: GPL-2.0-only WITH Linux-syscall-note */ |
| 2 | #ifndef _UAPI_CAN_VXCAN_H | 2 | #ifndef _UAPI_CAN_VXCAN_H |
| 3 | #define _UAPI_CAN_VXCAN_H | 3 | #define _UAPI_CAN_VXCAN_H |
| 4 | 4 | ||
| @@ -923,7 +923,8 @@ static inline void cec_msg_give_deck_status(struct cec_msg *msg, · 922 unmodified lines | |||
| 923 | msg->len = 3; | 923 | msg->len = 3; |
| 924 | msg->msg[1] = CEC_MSG_GIVE_DECK_STATUS; | 924 | msg->msg[1] = CEC_MSG_GIVE_DECK_STATUS; |
| 925 | msg->msg[2] = status_req; | 925 | msg->msg[2] = status_req; |
| 926 | msg->reply = reply ? CEC_MSG_DECK_STATUS : 0; | 926 | msg->reply = (reply && status_req != CEC_OP_STATUS_REQ_OFF) ? |
| 927 | CEC_MSG_DECK_STATUS : 0; | ||
| 927 | } | 928 | } |
| 928 | 929 | ||
| 929 | static inline void cec_ops_give_deck_status(const struct cec_msg *msg, | 930 | static inline void cec_ops_give_deck_status(const struct cec_msg *msg, |
| @@ -1027,7 +1028,8 @@ static inline void cec_msg_give_tuner_device_status(struct cec_msg *msg, · 97 unmodified lines | |||
| 1027 | msg->len = 3; | 1028 | msg->len = 3; |
| 1028 | msg->msg[1] = CEC_MSG_GIVE_TUNER_DEVICE_STATUS; | 1029 | msg->msg[1] = CEC_MSG_GIVE_TUNER_DEVICE_STATUS; |
| 1029 | msg->msg[2] = status_req; | 1030 | msg->msg[2] = status_req; |
| 1030 | msg->reply = reply ? CEC_MSG_TUNER_DEVICE_STATUS : 0; | 1031 | msg->reply = (reply && status_req != CEC_OP_STATUS_REQ_OFF) ? |
| 1032 | CEC_MSG_TUNER_DEVICE_STATUS : 0; | ||
| 1031 | } | 1033 | } |
| 1032 | 1034 | ||
| 1033 | static inline void cec_ops_give_tuner_device_status(const struct cec_msg *msg, | 1035 | static inline void cec_ops_give_tuner_device_status(const struct cec_msg *msg, |
| @@ -1302,17 +1304,17 @@ static inline void cec_msg_user_control_pressed(struct cec_msg *msg, · 268 unmodified lines | |||
| 1302 | if (!ui_cmd->has_opt_arg) | 1304 | if (!ui_cmd->has_opt_arg) |
| 1303 | return; | 1305 | return; |
| 1304 | switch (ui_cmd->ui_cmd) { | 1306 | switch (ui_cmd->ui_cmd) { |
| 1305 | case 0x56: | 1307 | case CEC_OP_UI_CMD_SELECT_BROADCAST_TYPE: |
| 1306 | case 0x57: | 1308 | case CEC_OP_UI_CMD_SELECT_SOUND_PRESENTATION: |
| 1307 | case 0x60: | 1309 | case CEC_OP_UI_CMD_PLAY_FUNCTION: |
| 1308 | case 0x68: | 1310 | case CEC_OP_UI_CMD_SELECT_MEDIA_FUNCTION: |
| 1309 | case 0x69: | 1311 | case CEC_OP_UI_CMD_SELECT_AV_INPUT_FUNCTION: |
| 1310 | case 0x6a: | 1312 | case CEC_OP_UI_CMD_SELECT_AUDIO_INPUT_FUNCTION: |
| 1311 | /* The optional operand is one byte for all these ui commands */ | 1313 | /* The optional operand is one byte for all these ui commands */ |
| 1312 | msg->len++; | 1314 | msg->len++; |
| 1313 | msg->msg[3] = ui_cmd->play_mode; | 1315 | msg->msg[3] = ui_cmd->play_mode; |
| 1314 | break; | 1316 | break; |
| 1315 | case 0x67: | 1317 | case CEC_OP_UI_CMD_TUNE_FUNCTION: |
| 1316 | msg->len += 4; | 1318 | msg->len += 4; |
| 1317 | msg->msg[3] = (ui_cmd->channel_identifier.channel_number_fmt << 2) | | 1319 | msg->msg[3] = (ui_cmd->channel_identifier.channel_number_fmt << 2) | |
| 1318 | (ui_cmd->channel_identifier.major >> 8); | 1320 | (ui_cmd->channel_identifier.major >> 8); |
| @@ -1331,17 +1333,17 @@ static inline void cec_ops_user_control_pressed(const struct cec_msg *msg, · 12 unmodified lines | |||
| 1331 | if (msg->len == 3) | 1333 | if (msg->len == 3) |
| 1332 | return; | 1334 | return; |
| 1333 | switch (ui_cmd->ui_cmd) { | 1335 | switch (ui_cmd->ui_cmd) { |
| 1334 | case 0x56: | 1336 | case CEC_OP_UI_CMD_SELECT_BROADCAST_TYPE: |
| 1335 | case 0x57: | 1337 | case CEC_OP_UI_CMD_SELECT_SOUND_PRESENTATION: |
| 1336 | case 0x60: | 1338 | case CEC_OP_UI_CMD_PLAY_FUNCTION: |
| 1337 | case 0x68: | 1339 | case CEC_OP_UI_CMD_SELECT_MEDIA_FUNCTION: |
| 1338 | case 0x69: | 1340 | case CEC_OP_UI_CMD_SELECT_AV_INPUT_FUNCTION: |
| 1339 | case 0x6a: | 1341 | case CEC_OP_UI_CMD_SELECT_AUDIO_INPUT_FUNCTION: |
| 1340 | /* The optional operand is one byte for all these ui commands */ | 1342 | /* The optional operand is one byte for all these ui commands */ |
| 1341 | ui_cmd->play_mode = msg->msg[3]; | 1343 | ui_cmd->play_mode = msg->msg[3]; |
| 1342 | ui_cmd->has_opt_arg = 1; | 1344 | ui_cmd->has_opt_arg = 1; |
| 1343 | break; | 1345 | break; |
| 1344 | case 0x67: | 1346 | case CEC_OP_UI_CMD_TUNE_FUNCTION: |
| 1345 | if (msg->len < 7) | 1347 | if (msg->len < 7) |
| 1346 | break; | 1348 | break; |
| 1347 | ui_cmd->has_opt_arg = 1; | 1349 | ui_cmd->has_opt_arg = 1; |
| @@ -317,6 +317,8 @@ static inline int cec_is_unconfigured(__u16 log_addr_mask) · 316 unmodified lines | |||
| 317 | #define CEC_CAP_NEEDS_HPD (1 << 6) | 317 | #define CEC_CAP_NEEDS_HPD (1 << 6) |
| 318 | /* Hardware can monitor CEC pin transitions */ | 318 | /* Hardware can monitor CEC pin transitions */ |
| 319 | #define CEC_CAP_MONITOR_PIN (1 << 7) | 319 | #define CEC_CAP_MONITOR_PIN (1 << 7) |
| 320 | /* CEC_ADAP_G_CONNECTOR_INFO is available */ | ||
| 321 | #define CEC_CAP_CONNECTOR_INFO (1 << 8) | ||
| 320 | 322 | ||
| 321 | /** | 323 | /** |
| 322 | * struct cec_caps - CEC capabilities structure. | 324 | * struct cec_caps - CEC capabilities structure. |
| @@ -375,6 +377,34 @@ struct cec_log_addrs { · 52 unmodified lines | |||
| 375 | /* CDC-Only device: supports only CDC messages */ | 377 | /* CDC-Only device: supports only CDC messages */ |
| 376 | #define CEC_LOG_ADDRS_FL_CDC_ONLY (1 << 2) | 378 | #define CEC_LOG_ADDRS_FL_CDC_ONLY (1 << 2) |
| 377 | 379 | ||
| 380 | /** | ||
| 381 | * struct cec_drm_connector_info - tells which drm connector is | ||
| 382 | * associated with the CEC adapter. | ||
| 383 | * @card_no: drm card number | ||
| 384 | * @connector_id: drm connector ID | ||
| 385 | */ | ||
| 386 | struct cec_drm_connector_info { | ||
| 387 | __u32 card_no; | ||
| 388 | __u32 connector_id; | ||
| 389 | }; | ||
| 390 | |||
| 391 | #define CEC_CONNECTOR_TYPE_NO_CONNECTOR 0 | ||
| 392 | #define CEC_CONNECTOR_TYPE_DRM 1 | ||
| 393 | |||
| 394 | /** | ||
| 395 | * struct cec_connector_info - tells if and which connector is | ||
| 396 | * associated with the CEC adapter. | ||
| 397 | * @type: connector type (if any) | ||
| 398 | * @drm: drm connector info | ||
| 399 | */ | ||
| 400 | struct cec_connector_info { | ||
| 401 | __u32 type; | ||
| 402 | union { | ||
| 403 | struct cec_drm_connector_info drm; | ||
| 404 | __u32 raw[16]; | ||
| 405 | }; | ||
| 406 | }; | ||
| 407 | |||
| 378 | /* Events */ | 408 | /* Events */ |
| 379 | 409 | ||
| 380 | /* Event that occurs when the adapter state changes */ | 410 | /* Event that occurs when the adapter state changes */ |
| @@ -398,10 +428,17 @@ struct cec_log_addrs { · 17 unmodified lines | |||
| 398 | * struct cec_event_state_change - used when the CEC adapter changes state. | 428 | * struct cec_event_state_change - used when the CEC adapter changes state. |
| 399 | * @phys_addr: the current physical address | 429 | * @phys_addr: the current physical address |
| 400 | * @log_addr_mask: the current logical address mask | 430 | * @log_addr_mask: the current logical address mask |
| 431 | * @have_conn_info: if non-zero, then HDMI connector information is available. | ||
| 432 | * This field is only valid if CEC_CAP_CONNECTOR_INFO is set. If that | ||
| 433 | * capability is set and @have_conn_info is zero, then that indicates | ||
| 434 | * that the HDMI connector device is not instantiated, either because | ||
| 435 | * the HDMI driver is still configuring the device or because the HDMI | ||
| 436 | * device was unbound. | ||
| 401 | */ | 437 | */ |
| 402 | struct cec_event_state_change { | 438 | struct cec_event_state_change { |
| 403 | __u16 phys_addr; | 439 | __u16 phys_addr; |
| 404 | __u16 log_addr_mask; | 440 | __u16 log_addr_mask; |
| 441 | __u16 have_conn_info; | ||
| 405 | }; | 442 | }; |
| 406 | 443 | ||
| 407 | /** | 444 | /** |
| @@ -476,6 +513,9 @@ struct cec_event { · 68 unmodified lines | |||
| 476 | #define CEC_G_MODE _IOR('a', 8, __u32) | 513 | #define CEC_G_MODE _IOR('a', 8, __u32) |
| 477 | #define CEC_S_MODE _IOW('a', 9, __u32) | 514 | #define CEC_S_MODE _IOW('a', 9, __u32) |
| 478 | 515 | ||
| 516 | /* Get the connector info */ | ||
| 517 | #define CEC_ADAP_G_CONNECTOR_INFO _IOR('a', 10, struct cec_connector_info) | ||
| 518 | |||
| 479 | /* | 519 | /* |
| 480 | * The remainder of this header defines all CEC messages and operands. | 520 | * The remainder of this header defines all CEC messages and operands. |
| 481 | * The format matters since it the cec-ctl utility parses it to generate | 521 | * The format matters since it the cec-ctl utility parses it to generate |
| @@ -768,8 +808,8 @@ struct cec_event { · 286 unmodified lines | |||
| 768 | #define CEC_MSG_SELECT_DIGITAL_SERVICE 0x93 | 808 | #define CEC_MSG_SELECT_DIGITAL_SERVICE 0x93 |
| 769 | #define CEC_MSG_TUNER_DEVICE_STATUS 0x07 | 809 | #define CEC_MSG_TUNER_DEVICE_STATUS 0x07 |
| 770 | /* Recording Flag Operand (rec_flag) */ | 810 | /* Recording Flag Operand (rec_flag) */ |
| 771 | #define CEC_OP_REC_FLAG_USED 0 | 811 | #define CEC_OP_REC_FLAG_NOT_USED 0 |
| 772 | #define CEC_OP_REC_FLAG_NOT_USED 1 | 812 | #define CEC_OP_REC_FLAG_USED 1 |
| 773 | /* Tuner Display Info Operand (tuner_display_info) */ | 813 | /* Tuner Display Info Operand (tuner_display_info) */ |
| 774 | #define CEC_OP_TUNER_DISPLAY_INFO_DIGITAL 0 | 814 | #define CEC_OP_TUNER_DISPLAY_INFO_DIGITAL 0 |
| 775 | #define CEC_OP_TUNER_DISPLAY_INFO_NONE 1 | 815 | #define CEC_OP_TUNER_DISPLAY_INFO_NONE 1 |
| @@ -820,6 +860,95 @@ struct cec_event { · 44 unmodified lines | |||
| 820 | #define CEC_OP_MENU_STATE_DEACTIVATED 0x01 | 860 | #define CEC_OP_MENU_STATE_DEACTIVATED 0x01 |
| 821 | 861 | ||
| 822 | #define CEC_MSG_USER_CONTROL_PRESSED 0x44 | 862 | #define CEC_MSG_USER_CONTROL_PRESSED 0x44 |
| 863 | /* UI Command Operand (ui_cmd) */ | ||
| 864 | #define CEC_OP_UI_CMD_SELECT 0x00 | ||
| 865 | #define CEC_OP_UI_CMD_UP 0x01 | ||
| 866 | #define CEC_OP_UI_CMD_DOWN 0x02 | ||
| 867 | #define CEC_OP_UI_CMD_LEFT 0x03 | ||
| 868 | #define CEC_OP_UI_CMD_RIGHT 0x04 | ||
| 869 | #define CEC_OP_UI_CMD_RIGHT_UP 0x05 | ||
| 870 | #define CEC_OP_UI_CMD_RIGHT_DOWN 0x06 | ||
| 871 | #define CEC_OP_UI_CMD_LEFT_UP 0x07 | ||
| 872 | #define CEC_OP_UI_CMD_LEFT_DOWN 0x08 | ||
| 873 | #define CEC_OP_UI_CMD_DEVICE_ROOT_MENU 0x09 | ||
| 874 | #define CEC_OP_UI_CMD_DEVICE_SETUP_MENU 0x0a | ||
| 875 | #define CEC_OP_UI_CMD_CONTENTS_MENU 0x0b | ||
| 876 | #define CEC_OP_UI_CMD_FAVORITE_MENU 0x0c | ||
| 877 | #define CEC_OP_UI_CMD_BACK 0x0d | ||
| 878 | #define CEC_OP_UI_CMD_MEDIA_TOP_MENU 0x10 | ||
| 879 | #define CEC_OP_UI_CMD_MEDIA_CONTEXT_SENSITIVE_MENU 0x11 | ||
| 880 | #define CEC_OP_UI_CMD_NUMBER_ENTRY_MODE 0x1d | ||
| 881 | #define CEC_OP_UI_CMD_NUMBER_11 0x1e | ||
| 882 | #define CEC_OP_UI_CMD_NUMBER_12 0x1f | ||
| 883 | #define CEC_OP_UI_CMD_NUMBER_0_OR_NUMBER_10 0x20 | ||
| 884 | #define CEC_OP_UI_CMD_NUMBER_1 0x21 | ||
| 885 | #define CEC_OP_UI_CMD_NUMBER_2 0x22 | ||
| 886 | #define CEC_OP_UI_CMD_NUMBER_3 0x23 | ||
| 887 | #define CEC_OP_UI_CMD_NUMBER_4 0x24 | ||
| 888 | #define CEC_OP_UI_CMD_NUMBER_5 0x25 | ||
| 889 | #define CEC_OP_UI_CMD_NUMBER_6 0x26 | ||
| 890 | #define CEC_OP_UI_CMD_NUMBER_7 0x27 | ||
| 891 | #define CEC_OP_UI_CMD_NUMBER_8 0x28 | ||
| 892 | #define CEC_OP_UI_CMD_NUMBER_9 0x29 | ||
| 893 | #define CEC_OP_UI_CMD_DOT 0x2a | ||
| 894 | #define CEC_OP_UI_CMD_ENTER 0x2b | ||
| 895 | #define CEC_OP_UI_CMD_CLEAR 0x2c | ||
| 896 | #define CEC_OP_UI_CMD_NEXT_FAVORITE 0x2f | ||
| 897 | #define CEC_OP_UI_CMD_CHANNEL_UP 0x30 | ||
| 898 | #define CEC_OP_UI_CMD_CHANNEL_DOWN 0x31 | ||
| 899 | #define CEC_OP_UI_CMD_PREVIOUS_CHANNEL 0x32 | ||
| 900 | #define CEC_OP_UI_CMD_SOUND_SELECT 0x33 | ||
| 901 | #define CEC_OP_UI_CMD_INPUT_SELECT 0x34 | ||
| 902 | #define CEC_OP_UI_CMD_DISPLAY_INFORMATION 0x35 | ||
| 903 | #define CEC_OP_UI_CMD_HELP 0x36 | ||
| 904 | #define CEC_OP_UI_CMD_PAGE_UP 0x37 | ||
| 905 | #define CEC_OP_UI_CMD_PAGE_DOWN 0x38 | ||
| 906 | #define CEC_OP_UI_CMD_POWER 0x40 | ||
| 907 | #define CEC_OP_UI_CMD_VOLUME_UP 0x41 | ||
| 908 | #define CEC_OP_UI_CMD_VOLUME_DOWN 0x42 | ||
| 909 | #define CEC_OP_UI_CMD_MUTE 0x43 | ||
| 910 | #define CEC_OP_UI_CMD_PLAY 0x44 | ||
| 911 | #define CEC_OP_UI_CMD_STOP 0x45 | ||
| 912 | #define CEC_OP_UI_CMD_PAUSE 0x46 | ||
| 913 | #define CEC_OP_UI_CMD_RECORD 0x47 | ||
| 914 | #define CEC_OP_UI_CMD_REWIND 0x48 | ||
| 915 | #define CEC_OP_UI_CMD_FAST_FORWARD 0x49 | ||
| 916 | #define CEC_OP_UI_CMD_EJECT 0x4a | ||
| 917 | #define CEC_OP_UI_CMD_SKIP_FORWARD 0x4b | ||
| 918 | #define CEC_OP_UI_CMD_SKIP_BACKWARD 0x4c | ||
| 919 | #define CEC_OP_UI_CMD_STOP_RECORD 0x4d | ||
| 920 | #define CEC_OP_UI_CMD_PAUSE_RECORD 0x4e | ||
| 921 | #define CEC_OP_UI_CMD_ANGLE 0x50 | ||
| 922 | #define CEC_OP_UI_CMD_SUB_PICTURE 0x51 | ||
| 923 | #define CEC_OP_UI_CMD_VIDEO_ON_DEMAND 0x52 | ||
| 924 | #define CEC_OP_UI_CMD_ELECTRONIC_PROGRAM_GUIDE 0x53 | ||
| 925 | #define CEC_OP_UI_CMD_TIMER_PROGRAMMING 0x54 | ||
| 926 | #define CEC_OP_UI_CMD_INITIAL_CONFIGURATION 0x55 | ||
| 927 | #define CEC_OP_UI_CMD_SELECT_BROADCAST_TYPE 0x56 | ||
| 928 | #define CEC_OP_UI_CMD_SELECT_SOUND_PRESENTATION 0x57 | ||
| 929 | #define CEC_OP_UI_CMD_AUDIO_DESCRIPTION 0x58 | ||
| 930 | #define CEC_OP_UI_CMD_INTERNET 0x59 | ||
| 931 | #define CEC_OP_UI_CMD_3D_MODE 0x5a | ||
| 932 | #define CEC_OP_UI_CMD_PLAY_FUNCTION 0x60 | ||
| 933 | #define CEC_OP_UI_CMD_PAUSE_PLAY_FUNCTION 0x61 | ||
| 934 | #define CEC_OP_UI_CMD_RECORD_FUNCTION 0x62 | ||
| 935 | #define CEC_OP_UI_CMD_PAUSE_RECORD_FUNCTION 0x63 | ||
| 936 | #define CEC_OP_UI_CMD_STOP_FUNCTION 0x64 | ||
| 937 | #define CEC_OP_UI_CMD_MUTE_FUNCTION 0x65 | ||
| 938 | #define CEC_OP_UI_CMD_RESTORE_VOLUME_FUNCTION 0x66 | ||
| 939 | #define CEC_OP_UI_CMD_TUNE_FUNCTION 0x67 | ||
| 940 | #define CEC_OP_UI_CMD_SELECT_MEDIA_FUNCTION 0x68 | ||
| 941 | #define CEC_OP_UI_CMD_SELECT_AV_INPUT_FUNCTION 0x69 | ||
| 942 | #define CEC_OP_UI_CMD_SELECT_AUDIO_INPUT_FUNCTION 0x6a | ||
| 943 | #define CEC_OP_UI_CMD_POWER_TOGGLE_FUNCTION 0x6b | ||
| 944 | #define CEC_OP_UI_CMD_POWER_OFF_FUNCTION 0x6c | ||
| 945 | #define CEC_OP_UI_CMD_POWER_ON_FUNCTION 0x6d | ||
| 946 | #define CEC_OP_UI_CMD_F1_BLUE 0x71 | ||
| 947 | #define CEC_OP_UI_CMD_F2_RED 0x72 | ||
| 948 | #define CEC_OP_UI_CMD_F3_GREEN 0x73 | ||
| 949 | #define CEC_OP_UI_CMD_F4_YELLOW 0x74 | ||
| 950 | #define CEC_OP_UI_CMD_F5 0x75 | ||
| 951 | #define CEC_OP_UI_CMD_DATA 0x76 | ||
| 823 | /* UI Broadcast Type Operand (ui_bcast_type) */ | 952 | /* UI Broadcast Type Operand (ui_bcast_type) */ |
| 824 | #define CEC_OP_UI_BCAST_TYPE_TOGGLE_ALL 0x00 | 953 | #define CEC_OP_UI_BCAST_TYPE_TOGGLE_ALL 0x00 |
| 825 | #define CEC_OP_UI_BCAST_TYPE_TOGGLE_DIG_ANA 0x01 | 954 | #define CEC_OP_UI_BCAST_TYPE_TOGGLE_DIG_ANA 0x01 |
| @@ -3,6 +3,9 @@ · 2 unmodified lines | |||
| 3 | * ioctl interface for the scsi media changer driver | 3 | * ioctl interface for the scsi media changer driver |
| 4 | */ | 4 | */ |
| 5 | 5 | ||
| 6 | #ifndef _UAPI_LINUX_CHIO_H | ||
| 7 | #define _UAPI_LINUX_CHIO_H | ||
| 8 | |||
| 6 | /* changer element types */ | 9 | /* changer element types */ |
| 7 | #define CHET_MT 0 /* media transport element (robot) */ | 10 | #define CHET_MT 0 /* media transport element (robot) */ |
| 8 | #define CHET_ST 1 /* storage element (media slots) */ | 11 | #define CHET_ST 1 /* storage element (media slots) */ |
| @@ -160,10 +163,4 @@ struct changer_set_voltag { · 151 unmodified lines | |||
| 160 | #define CHIOSVOLTAG _IOW('c',18,struct changer_set_voltag) | 163 | #define CHIOSVOLTAG _IOW('c',18,struct changer_set_voltag) |
| 161 | #define CHIOGVPARAMS _IOR('c',19,struct changer_vendor_params) | 164 | #define CHIOGVPARAMS _IOR('c',19,struct changer_vendor_params) |
| 162 | 165 | ||
| 163 | /* ---------------------------------------------------------------------- */ | 166 | #endif /* _UAPI_LINUX_CHIO_H */ |
| 164 | |||
| 165 | /* | ||
| 166 | * Local variables: | ||
| 167 | * c-basic-offset: 8 | ||
| 168 | * End: | ||
| 169 | */ | ||
| @@ -83,9 +83,9 @@ struct cyclades_monitor { · 82 unmodified lines | |||
| 83 | * open) | 83 | * open) |
| 84 | */ | 84 | */ |
| 85 | struct cyclades_idle_stats { | 85 | struct cyclades_idle_stats { |
| 86 | __kernel_time_t in_use; /* Time device has been in use (secs) */ | 86 | __kernel_old_time_t in_use; /* Time device has been in use (secs) */ |
| 87 | __kernel_time_t recv_idle; /* Time since last char received (secs) */ | 87 | __kernel_old_time_t recv_idle; /* Time since last char received (secs) */ |
| 88 | __kernel_time_t xmit_idle; /* Time since last char transmitted (secs) */ | 88 | __kernel_old_time_t xmit_idle; /* Time since last char transmitted (secs) */ |
| 89 | unsigned long recv_bytes; /* Bytes received */ | 89 | unsigned long recv_bytes; /* Bytes received */ |
| 90 | unsigned long xmit_bytes; /* Bytes transmitted */ | 90 | unsigned long xmit_bytes; /* Bytes transmitted */ |
| 91 | unsigned long overruns; /* Input overruns */ | 91 | unsigned long overruns; /* Input overruns */ |
| @@ -286,7 +286,7 @@ struct dcbmsg { · 285 unmodified lines | |||
| 286 | * @DCB_CMD_GNUMTCS: get the number of traffic classes currently supported | 286 | * @DCB_CMD_GNUMTCS: get the number of traffic classes currently supported |
| 287 | * @DCB_CMD_SNUMTCS: set the number of traffic classes | 287 | * @DCB_CMD_SNUMTCS: set the number of traffic classes |
| 288 | * @DCB_CMD_GBCN: set backward congestion notification configuration | 288 | * @DCB_CMD_GBCN: set backward congestion notification configuration |
| 289 | * @DCB_CMD_SBCN: get backward congestion notification configration. | 289 | * @DCB_CMD_SBCN: get backward congestion notification configuration. |
| 290 | * @DCB_CMD_GAPP: get application protocol configuration | 290 | * @DCB_CMD_GAPP: get application protocol configuration |
| 291 | * @DCB_CMD_SAPP: set application protocol configuration | 291 | * @DCB_CMD_SAPP: set application protocol configuration |
| 292 | * @DCB_CMD_IEEE_SET: set IEEE 802.1Qaz configuration | 292 | * @DCB_CMD_IEEE_SET: set IEEE 802.1Qaz configuration |
| @@ -421,6 +421,11 @@ enum devlink_attr { · 420 unmodified lines | |||
| 421 | 421 | ||
| 422 | DEVLINK_ATTR_RELOAD_FAILED, /* u8 0 or 1 */ | 422 | DEVLINK_ATTR_RELOAD_FAILED, /* u8 0 or 1 */ |
| 423 | 423 | ||
| 424 | DEVLINK_ATTR_HEALTH_REPORTER_DUMP_TS_NS, /* u64 */ | ||
| 425 | |||
| 426 | DEVLINK_ATTR_NETNS_FD, /* u32 */ | ||
| 427 | DEVLINK_ATTR_NETNS_PID, /* u32 */ | ||
| 428 | DEVLINK_ATTR_NETNS_ID, /* u32 */ | ||
| 424 | /* add new attributes above here, update the policy in devlink.c */ | 429 | /* add new attributes above here, update the policy in devlink.c */ |
| 425 | 430 | ||
| 426 | __DEVLINK_ATTR_MAX, | 431 | __DEVLINK_ATTR_MAX, |
| @@ -53,10 +53,10 @@ struct elf_prstatus · 52 unmodified lines | |||
| 53 | pid_t pr_ppid; | 53 | pid_t pr_ppid; |
| 54 | pid_t pr_pgrp; | 54 | pid_t pr_pgrp; |
| 55 | pid_t pr_sid; | 55 | pid_t pr_sid; |
| 56 | struct timeval pr_utime; /* User time */ | 56 | struct __kernel_old_timeval pr_utime; /* User time */ |
| 57 | struct timeval pr_stime; /* System time */ | 57 | struct __kernel_old_timeval pr_stime; /* System time */ |
| 58 | struct timeval pr_cutime; /* Cumulative user time */ | 58 | struct __kernel_old_timeval pr_cutime; /* Cumulative user time */ |
| 59 | struct timeval pr_cstime; /* Cumulative system time */ | 59 | struct __kernel_old_timeval pr_cstime; /* Cumulative system time */ |
| 60 | #if 0 | 60 | #if 0 |
| 61 | long pr_instr; /* Current instruction */ | 61 | long pr_instr; /* Current instruction */ |
| 62 | #endif | 62 | #endif |
| @@ -37,9 +37,16 @@ struct sock_extended_err { · 36 unmodified lines | |||
| 37 | * The timestamping interfaces SO_TIMESTAMPING, MSG_TSTAMP_* | 37 | * The timestamping interfaces SO_TIMESTAMPING, MSG_TSTAMP_* |
| 38 | * communicate network timestamps by passing this struct in a cmsg with | 38 | * communicate network timestamps by passing this struct in a cmsg with |
| 39 | * recvmsg(). See Documentation/networking/timestamping.txt for details. | 39 | * recvmsg(). See Documentation/networking/timestamping.txt for details. |
| 40 | * User space sees a timespec definition that matches either | ||
| 41 | * __kernel_timespec or __kernel_old_timespec, in the kernel we | ||
| 42 | * require two structure definitions to provide both. | ||
| 40 | */ | 43 | */ |
| 41 | struct scm_timestamping { | 44 | struct scm_timestamping { |
| 45 | #ifdef __KERNEL__ | ||
| 46 | struct __kernel_old_timespec ts[3]; | ||
| 47 | #else | ||
| 42 | struct timespec ts[3]; | 48 | struct timespec ts[3]; |
| 49 | #endif | ||
| 43 | }; | 50 | }; |
| 44 | 51 | ||
| 45 | struct scm_timestamping64 { | 52 | struct scm_timestamping64 { |
| @@ -1507,6 +1507,11 @@ enum ethtool_link_mode_bit_indices { · 1506 unmodified lines | |||
| 1507 | ETHTOOL_LINK_MODE_200000baseCR4_Full_BIT = 66, | 1507 | ETHTOOL_LINK_MODE_200000baseCR4_Full_BIT = 66, |
| 1508 | ETHTOOL_LINK_MODE_100baseT1_Full_BIT = 67, | 1508 | ETHTOOL_LINK_MODE_100baseT1_Full_BIT = 67, |
| 1509 | ETHTOOL_LINK_MODE_1000baseT1_Full_BIT = 68, | 1509 | ETHTOOL_LINK_MODE_1000baseT1_Full_BIT = 68, |
| 1510 | ETHTOOL_LINK_MODE_400000baseKR8_Full_BIT = 69, | ||
| 1511 | ETHTOOL_LINK_MODE_400000baseSR8_Full_BIT = 70, | ||
| 1512 | ETHTOOL_LINK_MODE_400000baseLR8_ER8_FR8_Full_BIT = 71, | ||
| 1513 | ETHTOOL_LINK_MODE_400000baseDR8_Full_BIT = 72, | ||
| 1514 | ETHTOOL_LINK_MODE_400000baseCR8_Full_BIT = 73, | ||
| 1510 | 1515 | ||
| 1511 | /* must be last entry */ | 1516 | /* must be last entry */ |
| 1512 | __ETHTOOL_LINK_MODE_MASK_NBITS | 1517 | __ETHTOOL_LINK_MODE_MASK_NBITS |
| @@ -1618,6 +1623,7 @@ enum ethtool_link_mode_bit_indices { · 105 unmodified lines | |||
| 1618 | #define SPEED_56000 56000 | 1623 | #define SPEED_56000 56000 |
| 1619 | #define SPEED_100000 100000 | 1624 | #define SPEED_100000 100000 |
| 1620 | #define SPEED_200000 200000 | 1625 | #define SPEED_200000 200000 |
| 1626 | #define SPEED_400000 400000 | ||
| 1621 | 1627 | ||
| 1622 | #define SPEED_UNKNOWN -1 | 1628 | #define SPEED_UNKNOWN -1 |
| 1623 | 1629 | ||
| @@ -58,13 +58,20 @@ · 57 unmodified lines | |||
| 58 | * Valid hint values for F_{GET,SET}_RW_HINT. 0 is "not set", or can be | 58 | * Valid hint values for F_{GET,SET}_RW_HINT. 0 is "not set", or can be |
| 59 | * used to clear any hints previously set. | 59 | * used to clear any hints previously set. |
| 60 | */ | 60 | */ |
| 61 | #define RWF_WRITE_LIFE_NOT_SET 0 | 61 | #define RWH_WRITE_LIFE_NOT_SET 0 |
| 62 | #define RWH_WRITE_LIFE_NONE 1 | 62 | #define RWH_WRITE_LIFE_NONE 1 |
| 63 | #define RWH_WRITE_LIFE_SHORT 2 | 63 | #define RWH_WRITE_LIFE_SHORT 2 |
| 64 | #define RWH_WRITE_LIFE_MEDIUM 3 | 64 | #define RWH_WRITE_LIFE_MEDIUM 3 |
| 65 | #define RWH_WRITE_LIFE_LONG 4 | 65 | #define RWH_WRITE_LIFE_LONG 4 |
| 66 | #define RWH_WRITE_LIFE_EXTREME 5 | 66 | #define RWH_WRITE_LIFE_EXTREME 5 |
| 67 | 67 | ||
| 68 | /* | ||
| 69 | * The originally introduced spelling is remained from the first | ||
| 70 | * versions of the patch set that introduced the feature, see commit | ||
| 71 | * v4.13-rc1~212^2~51. | ||
| 72 | */ | ||
| 73 | #define RWF_WRITE_LIFE_NOT_SET RWH_WRITE_LIFE_NOT_SET | ||
| 74 | |||
| 68 | /* | 75 | /* |
| 69 | * Types of directory notifications that may be requested. | 76 | * Types of directory notifications that may be requested. |
| 70 | */ | 77 | */ |
| @@ -17,7 +17,8 @@ · 16 unmodified lines | |||
| 17 | #define FSCRYPT_POLICY_FLAGS_PAD_32 0x03 | 17 | #define FSCRYPT_POLICY_FLAGS_PAD_32 0x03 |
| 18 | #define FSCRYPT_POLICY_FLAGS_PAD_MASK 0x03 | 18 | #define FSCRYPT_POLICY_FLAGS_PAD_MASK 0x03 |
| 19 | #define FSCRYPT_POLICY_FLAG_DIRECT_KEY 0x04 | 19 | #define FSCRYPT_POLICY_FLAG_DIRECT_KEY 0x04 |
| 20 | #define FSCRYPT_POLICY_FLAGS_VALID 0x07 | 20 | #define FSCRYPT_POLICY_FLAG_IV_INO_LBLK_64 0x08 |
| 21 | #define FSCRYPT_POLICY_FLAGS_VALID 0x0F | ||
| 21 | 22 | ||
| 22 | /* Encryption algorithms */ | 23 | /* Encryption algorithms */ |
| 23 | #define FSCRYPT_MODE_AES_256_XTS 1 | 24 | #define FSCRYPT_MODE_AES_256_XTS 1 |
| @@ -38,6 +38,43 @@ · 37 unmodified lines | |||
| 38 | * | 38 | * |
| 39 | * Protocol changelog: | 39 | * Protocol changelog: |
| 40 | * | 40 | * |
| 41 | * 7.1: | ||
| 42 | * - add the following messages: | ||
| 43 | * FUSE_SETATTR, FUSE_SYMLINK, FUSE_MKNOD, FUSE_MKDIR, FUSE_UNLINK, | ||
| 44 | * FUSE_RMDIR, FUSE_RENAME, FUSE_LINK, FUSE_OPEN, FUSE_READ, FUSE_WRITE, | ||
| 45 | * FUSE_RELEASE, FUSE_FSYNC, FUSE_FLUSH, FUSE_SETXATTR, FUSE_GETXATTR, | ||
| 46 | * FUSE_LISTXATTR, FUSE_REMOVEXATTR, FUSE_OPENDIR, FUSE_READDIR, | ||
| 47 | * FUSE_RELEASEDIR | ||
| 48 | * - add padding to messages to accommodate 32-bit servers on 64-bit kernels | ||
| 49 | * | ||
| 50 | * 7.2: | ||
| 51 | * - add FOPEN_DIRECT_IO and FOPEN_KEEP_CACHE flags | ||
| 52 | * - add FUSE_FSYNCDIR message | ||
| 53 | * | ||
| 54 | * 7.3: | ||
| 55 | * - add FUSE_ACCESS message | ||
| 56 | * - add FUSE_CREATE message | ||
| 57 | * - add filehandle to fuse_setattr_in | ||
| 58 | * | ||
| 59 | * 7.4: | ||
| 60 | * - add frsize to fuse_kstatfs | ||
| 61 | * - clean up request size limit checking | ||
| 62 | * | ||
| 63 | * 7.5: | ||
| 64 | * - add flags and max_write to fuse_init_out | ||
| 65 | * | ||
| 66 | * 7.6: | ||
| 67 | * - add max_readahead to fuse_init_in and fuse_init_out | ||
| 68 | * | ||
| 69 | * 7.7: | ||
| 70 | * - add FUSE_INTERRUPT message | ||
| 71 | * - add POSIX file lock support | ||
| 72 | * | ||
| 73 | * 7.8: | ||
| 74 | * - add lock_owner and flags fields to fuse_release_in | ||
| 75 | * - add FUSE_BMAP message | ||
| 76 | * - add FUSE_DESTROY message | ||
| 77 | * | ||
| 41 | * 7.9: | 78 | * 7.9: |
| 42 | * - new fuse_getattr_in input argument of GETATTR | 79 | * - new fuse_getattr_in input argument of GETATTR |
| 43 | * - add lk_flags in fuse_lk_in | 80 | * - add lk_flags in fuse_lk_in |
| @@ -13,6 +13,7 @@ enum { · 12 unmodified lines | |||
| 13 | TCA_STATS_RATE_EST64, | 13 | TCA_STATS_RATE_EST64, |
| 14 | TCA_STATS_PAD, | 14 | TCA_STATS_PAD, |
| 15 | TCA_STATS_BASIC_HW, | 15 | TCA_STATS_BASIC_HW, |
| 16 | TCA_STATS_PKT64, | ||
| 16 | __TCA_STATS_MAX, | 17 | __TCA_STATS_MAX, |
| 17 | }; | 18 | }; |
| 18 | #define TCA_STATS_MAX (__TCA_STATS_MAX - 1) | 19 | #define TCA_STATS_MAX (__TCA_STATS_MAX - 1) |
| @@ -26,10 +27,6 @@ struct gnet_stats_basic { · 7 unmodified lines | |||
| 26 | __u64 bytes; | 27 | __u64 bytes; |
| 27 | __u32 packets; | 28 | __u32 packets; |
| 28 | }; | 29 | }; |
| 29 | struct gnet_stats_basic_packed { | ||
| 30 | __u64 bytes; | ||
| 31 | __u32 packets; | ||
| 32 | } __attribute__ ((packed)); | ||
| 33 | 30 | ||
| 34 | /** | 31 | /** |
| 35 | * struct gnet_stats_rate_est - rate estimator | 32 | * struct gnet_stats_rate_est - rate estimator |
| @@ -33,6 +33,9 @@ struct gpiochip_info { · 32 unmodified lines | |||
| 33 | #define GPIOLINE_FLAG_ACTIVE_LOW (1UL << 2) | 33 | #define GPIOLINE_FLAG_ACTIVE_LOW (1UL << 2) |
| 34 | #define GPIOLINE_FLAG_OPEN_DRAIN (1UL << 3) | 34 | #define GPIOLINE_FLAG_OPEN_DRAIN (1UL << 3) |
| 35 | #define GPIOLINE_FLAG_OPEN_SOURCE (1UL << 4) | 35 | #define GPIOLINE_FLAG_OPEN_SOURCE (1UL << 4) |
| 36 | #define GPIOLINE_FLAG_BIAS_PULL_UP (1UL << 5) | ||
| 37 | #define GPIOLINE_FLAG_BIAS_PULL_DOWN (1UL << 6) | ||
| 38 | #define GPIOLINE_FLAG_BIAS_DISABLE (1UL << 7) | ||
| 36 | 39 | ||
| 37 | /** | 40 | /** |
| 38 | * struct gpioline_info - Information about a certain GPIO line | 41 | * struct gpioline_info - Information about a certain GPIO line |
| @@ -62,6 +65,9 @@ struct gpioline_info { · 23 unmodified lines | |||
| 62 | #define GPIOHANDLE_REQUEST_ACTIVE_LOW (1UL << 2) | 65 | #define GPIOHANDLE_REQUEST_ACTIVE_LOW (1UL << 2) |
| 63 | #define GPIOHANDLE_REQUEST_OPEN_DRAIN (1UL << 3) | 66 | #define GPIOHANDLE_REQUEST_OPEN_DRAIN (1UL << 3) |
| 64 | #define GPIOHANDLE_REQUEST_OPEN_SOURCE (1UL << 4) | 67 | #define GPIOHANDLE_REQUEST_OPEN_SOURCE (1UL << 4) |
| 68 | #define GPIOHANDLE_REQUEST_BIAS_PULL_UP (1UL << 5) | ||
| 69 | #define GPIOHANDLE_REQUEST_BIAS_PULL_DOWN (1UL << 6) | ||
| 70 | #define GPIOHANDLE_REQUEST_BIAS_DISABLE (1UL << 7) | ||
| 65 | 71 | ||
| 66 | /** | 72 | /** |
| 67 | * struct gpiohandle_request - Information about a GPIO handle request | 73 | * struct gpiohandle_request - Information about a GPIO handle request |
| @@ -94,6 +100,24 @@ struct gpiohandle_request { · 26 unmodified lines | |||
| 94 | int fd; | 100 | int fd; |
| 95 | }; | 101 | }; |
| 96 | 102 | ||
| 103 | /** | ||
| 104 | * struct gpiohandle_config - Configuration for a GPIO handle request | ||
| 105 | * @flags: updated flags for the requested GPIO lines, such as | ||
| 106 | * GPIOHANDLE_REQUEST_OUTPUT, GPIOHANDLE_REQUEST_ACTIVE_LOW etc, OR:ed | ||
| 107 | * together | ||
| 108 | * @default_values: if the GPIOHANDLE_REQUEST_OUTPUT is set in flags, | ||
| 109 | * this specifies the default output value, should be 0 (low) or | ||
| 110 | * 1 (high), anything else than 0 or 1 will be interpreted as 1 (high) | ||
| 111 | * @padding: reserved for future use and should be zero filled | ||
| 112 | */ | ||
| 113 | struct gpiohandle_config { | ||
| 114 | __u32 flags; | ||
| 115 | __u8 default_values[GPIOHANDLES_MAX]; | ||
| 116 | __u32 padding[4]; /* padding for future use */ | ||
| 117 | }; | ||
| 118 | |||
| 119 | #define GPIOHANDLE_SET_CONFIG_IOCTL _IOWR(0xB4, 0x0a, struct gpiohandle_config) | ||
| 120 | |||
| 97 | /** | 121 | /** |
| 98 | * struct gpiohandle_data - Information of values on a GPIO handle | 122 | * struct gpiohandle_data - Information of values on a GPIO handle |
| 99 | * @values: when getting the state of lines this contains the current | 123 | * @values: when getting the state of lines this contains the current |
| @@ -33,6 +33,7 @@ · 32 unmodified lines | |||
| 33 | #define IFNAMSIZ 16 | 33 | #define IFNAMSIZ 16 |
| 34 | #endif /* __UAPI_DEF_IF_IFNAMSIZ */ | 34 | #endif /* __UAPI_DEF_IF_IFNAMSIZ */ |
| 35 | #define IFALIASZ 256 | 35 | #define IFALIASZ 256 |
| 36 | #define ALTIFNAMSIZ 128 | ||
| 36 | #include <linux/hdlc/ioctl.h> | 37 | #include <linux/hdlc/ioctl.h> |
| 37 | 38 | ||
| 38 | /* For glibc compatibility. An empty enum does not compile. */ | 39 | /* For glibc compatibility. An empty enum does not compile. */ |
| @@ -167,6 +167,8 @@ enum { · 166 unmodified lines | |||
| 167 | IFLA_NEW_IFINDEX, | 167 | IFLA_NEW_IFINDEX, |
| 168 | IFLA_MIN_MTU, | 168 | IFLA_MIN_MTU, |
| 169 | IFLA_MAX_MTU, | 169 | IFLA_MAX_MTU, |
| 170 | IFLA_PROP_LIST, | ||
| 171 | IFLA_ALT_IFNAME, /* Alternative ifname */ | ||
| 170 | __IFLA_MAX | 172 | __IFLA_MAX |
| 171 | }; | 173 | }; |
| 172 | 174 | ||
| @@ -652,6 +652,81 @@ · 651 unmodified lines | |||
| 652 | /* Electronic privacy screen control */ | 652 | /* Electronic privacy screen control */ |
| 653 | #define KEY_PRIVACY_SCREEN_TOGGLE 0x279 | 653 | #define KEY_PRIVACY_SCREEN_TOGGLE 0x279 |
| 654 | 654 | ||
| 655 | /* | ||
| 656 | * Some keyboards have keys which do not have a defined meaning, these keys | ||
| 657 | * are intended to be programmed / bound to macros by the user. For most | ||
| 658 | * keyboards with these macro-keys the key-sequence to inject, or action to | ||
| 659 | * take, is all handled by software on the host side. So from the kernel's | ||
| 660 | * point of view these are just normal keys. | ||
| 661 | * | ||
| 662 | * The KEY_MACRO# codes below are intended for such keys, which may be labeled | ||
| 663 | * e.g. G1-G18, or S1 - S30. The KEY_MACRO# codes MUST NOT be used for keys | ||
| 664 | * where the marking on the key does indicate a defined meaning / purpose. | ||
| 665 | * | ||
| 666 | * The KEY_MACRO# codes MUST also NOT be used as fallback for when no existing | ||
| 667 | * KEY_FOO define matches the marking / purpose. In this case a new KEY_FOO | ||
| 668 | * define MUST be added. | ||
| 669 | */ | ||
| 670 | #define KEY_MACRO1 0x290 | ||
| 671 | #define KEY_MACRO2 0x291 | ||
| 672 | #define KEY_MACRO3 0x292 | ||
| 673 | #define KEY_MACRO4 0x293 | ||
| 674 | #define KEY_MACRO5 0x294 | ||
| 675 | #define KEY_MACRO6 0x295 | ||
| 676 | #define KEY_MACRO7 0x296 | ||
| 677 | #define KEY_MACRO8 0x297 | ||
| 678 | #define KEY_MACRO9 0x298 | ||
| 679 | #define KEY_MACRO10 0x299 | ||
| 680 | #define KEY_MACRO11 0x29a | ||
| 681 | #define KEY_MACRO12 0x29b | ||
| 682 | #define KEY_MACRO13 0x29c | ||
| 683 | #define KEY_MACRO14 0x29d | ||
| 684 | #define KEY_MACRO15 0x29e | ||
| 685 | #define KEY_MACRO16 0x29f | ||
| 686 | #define KEY_MACRO17 0x2a0 | ||
| 687 | #define KEY_MACRO18 0x2a1 | ||
| 688 | #define KEY_MACRO19 0x2a2 | ||
| 689 | #define KEY_MACRO20 0x2a3 | ||
| 690 | #define KEY_MACRO21 0x2a4 | ||
| 691 | #define KEY_MACRO22 0x2a5 | ||
| 692 | #define KEY_MACRO23 0x2a6 | ||
| 693 | #define KEY_MACRO24 0x2a7 | ||
| 694 | #define KEY_MACRO25 0x2a8 | ||
| 695 | #define KEY_MACRO26 0x2a9 | ||
| 696 | #define KEY_MACRO27 0x2aa | ||
| 697 | #define KEY_MACRO28 0x2ab | ||
| 698 | #define KEY_MACRO29 0x2ac | ||
| 699 | #define KEY_MACRO30 0x2ad | ||
| 700 | |||
| 701 | /* | ||
| 702 | * Some keyboards with the macro-keys described above have some extra keys | ||
| 703 | * for controlling the host-side software responsible for the macro handling: | ||
| 704 | * -A macro recording start/stop key. Note that not all keyboards which emit | ||
| 705 | * KEY_MACRO_RECORD_START will also emit KEY_MACRO_RECORD_STOP if | ||
| 706 | * KEY_MACRO_RECORD_STOP is not advertised, then KEY_MACRO_RECORD_START | ||
| 707 | * should be interpreted as a recording start/stop toggle; | ||
| 708 | * -Keys for switching between different macro (pre)sets, either a key for | ||
| 709 | * cycling through the configured presets or keys to directly select a preset. | ||
| 710 | */ | ||
| 711 | #define KEY_MACRO_RECORD_START 0x2b0 | ||
| 712 | #define KEY_MACRO_RECORD_STOP 0x2b1 | ||
| 713 | #define KEY_MACRO_PRESET_CYCLE 0x2b2 | ||
| 714 | #define KEY_MACRO_PRESET1 0x2b3 | ||
| 715 | #define KEY_MACRO_PRESET2 0x2b4 | ||
| 716 | #define KEY_MACRO_PRESET3 0x2b5 | ||
| 717 | |||
| 718 | /* | ||
| 719 | * Some keyboards have a buildin LCD panel where the contents are controlled | ||
| 720 | * by the host. Often these have a number of keys directly below the LCD | ||
| 721 | * intended for controlling a menu shown on the LCD. These keys often don't | ||
| 722 | * have any labeling so we just name them KEY_KBD_LCD_MENU# | ||
| 723 | */ | ||
| 724 | #define KEY_KBD_LCD_MENU1 0x2b8 | ||
| 725 | #define KEY_KBD_LCD_MENU2 0x2b9 | ||
| 726 | #define KEY_KBD_LCD_MENU3 0x2ba | ||
| 727 | #define KEY_KBD_LCD_MENU4 0x2bb | ||
| 728 | #define KEY_KBD_LCD_MENU5 0x2bc | ||
| 729 | |||
| 655 | #define BTN_TRIGGER_HAPPY 0x2c0 | 730 | #define BTN_TRIGGER_HAPPY 0x2c0 |
| 656 | #define BTN_TRIGGER_HAPPY1 0x2c0 | 731 | #define BTN_TRIGGER_HAPPY1 0x2c0 |
| 657 | #define BTN_TRIGGER_HAPPY2 0x2c1 | 732 | #define BTN_TRIGGER_HAPPY2 0x2c1 |
| @@ -19,7 +19,10 @@ struct io_uring_sqe { · 18 unmodified lines | |||
| 19 | __u8 flags; /* IOSQE_ flags */ | 19 | __u8 flags; /* IOSQE_ flags */ |
| 20 | __u16 ioprio; /* ioprio for the request */ | 20 | __u16 ioprio; /* ioprio for the request */ |
| 21 | __s32 fd; /* file descriptor to do IO on */ | 21 | __s32 fd; /* file descriptor to do IO on */ |
| 22 | __u64 off; /* offset into file */ | 22 | union { |
| 23 | __u64 off; /* offset into file */ | ||
| 24 | __u64 addr2; | ||
| 25 | }; | ||
| 23 | __u64 addr; /* pointer to buffer or iovecs */ | 26 | __u64 addr; /* pointer to buffer or iovecs */ |
| 24 | __u32 len; /* buffer size or number of iovecs */ | 27 | __u32 len; /* buffer size or number of iovecs */ |
| 25 | union { | 28 | union { |
| @@ -29,6 +32,8 @@ struct io_uring_sqe { · 3 unmodified lines | |||
| 29 | __u32 sync_range_flags; | 32 | __u32 sync_range_flags; |
| 30 | __u32 msg_flags; | 33 | __u32 msg_flags; |
| 31 | __u32 timeout_flags; | 34 | __u32 timeout_flags; |
| 35 | __u32 accept_flags; | ||
| 36 | __u32 cancel_flags; | ||
| 32 | }; | 37 | }; |
| 33 | __u64 user_data; /* data to be passed back at completion time */ | 38 | __u64 user_data; /* data to be passed back at completion time */ |
| 34 | union { | 39 | union { |
| @@ -43,6 +48,7 @@ struct io_uring_sqe { · 8 unmodified lines | |||
| 43 | #define IOSQE_FIXED_FILE (1U << 0) /* use fixed fileset */ | 48 | #define IOSQE_FIXED_FILE (1U << 0) /* use fixed fileset */ |
| 44 | #define IOSQE_IO_DRAIN (1U << 1) /* issue after inflight IO */ | 49 | #define IOSQE_IO_DRAIN (1U << 1) /* issue after inflight IO */ |
| 45 | #define IOSQE_IO_LINK (1U << 2) /* links next sqe */ | 50 | #define IOSQE_IO_LINK (1U << 2) /* links next sqe */ |
| 51 | #define IOSQE_IO_HARDLINK (1U << 3) /* like LINK, but stronger */ | ||
| 46 | 52 | ||
| 47 | /* | 53 | /* |
| 48 | * io_uring_setup() flags | 54 | * io_uring_setup() flags |
| @@ -50,25 +56,41 @@ struct io_uring_sqe { · 1 unmodified line | |||
| 50 | #define IORING_SETUP_IOPOLL (1U << 0) /* io_context is polled */ | 56 | #define IORING_SETUP_IOPOLL (1U << 0) /* io_context is polled */ |
| 51 | #define IORING_SETUP_SQPOLL (1U << 1) /* SQ poll thread */ | 57 | #define IORING_SETUP_SQPOLL (1U << 1) /* SQ poll thread */ |
| 52 | #define IORING_SETUP_SQ_AFF (1U << 2) /* sq_thread_cpu is valid */ | 58 | #define IORING_SETUP_SQ_AFF (1U << 2) /* sq_thread_cpu is valid */ |
| 53 | 59 | #define IORING_SETUP_CQSIZE (1U << 3) /* app defines CQ size */ | |
| 54 | #define IORING_OP_NOP 0 | 60 | |
| 55 | #define IORING_OP_READV 1 | 61 | enum { |
| 56 | #define IORING_OP_WRITEV 2 | 62 | IORING_OP_NOP, |
| 57 | #define IORING_OP_FSYNC 3 | 63 | IORING_OP_READV, |
| 58 | #define IORING_OP_READ_FIXED 4 | 64 | IORING_OP_WRITEV, |
| 59 | #define IORING_OP_WRITE_FIXED 5 | 65 | IORING_OP_FSYNC, |
| 60 | #define IORING_OP_POLL_ADD 6 | 66 | IORING_OP_READ_FIXED, |
| 61 | #define IORING_OP_POLL_REMOVE 7 | 67 | IORING_OP_WRITE_FIXED, |
| 62 | #define IORING_OP_SYNC_FILE_RANGE 8 | 68 | IORING_OP_POLL_ADD, |
| 63 | #define IORING_OP_SENDMSG 9 | 69 | IORING_OP_POLL_REMOVE, |
| 64 | #define IORING_OP_RECVMSG 10 | 70 | IORING_OP_SYNC_FILE_RANGE, |
| 65 | #define IORING_OP_TIMEOUT 11 | 71 | IORING_OP_SENDMSG, |
| 72 | IORING_OP_RECVMSG, | ||
| 73 | IORING_OP_TIMEOUT, | ||
| 74 | IORING_OP_TIMEOUT_REMOVE, | ||
| 75 | IORING_OP_ACCEPT, | ||
| 76 | IORING_OP_ASYNC_CANCEL, | ||
| 77 | IORING_OP_LINK_TIMEOUT, | ||
| 78 | IORING_OP_CONNECT, | ||
| 79 | |||
| 80 | /* this goes last, obviously */ | ||
| 81 | IORING_OP_LAST, | ||
| 82 | }; | ||
| 66 | 83 | ||
| 67 | /* | 84 | /* |
| 68 | * sqe->fsync_flags | 85 | * sqe->fsync_flags |
| 69 | */ | 86 | */ |
| 70 | #define IORING_FSYNC_DATASYNC (1U << 0) | 87 | #define IORING_FSYNC_DATASYNC (1U << 0) |
| 71 | 88 | ||
| 89 | /* | ||
| 90 | * sqe->timeout_flags | ||
| 91 | */ | ||
| 92 | #define IORING_TIMEOUT_ABS (1U << 0) | ||
| 93 | |||
| 72 | /* | 94 | /* |
| 73 | * IO completion data structure (Completion Queue Entry) | 95 | * IO completion data structure (Completion Queue Entry) |
| 74 | */ | 96 | */ |
| @@ -140,6 +162,8 @@ struct io_uring_params { · 65 unmodified lines | |||
| 140 | * io_uring_params->features flags | 162 | * io_uring_params->features flags |
| 141 | */ | 163 | */ |
| 142 | #define IORING_FEAT_SINGLE_MMAP (1U << 0) | 164 | #define IORING_FEAT_SINGLE_MMAP (1U << 0) |
| 165 | #define IORING_FEAT_NODROP (1U << 1) | ||
| 166 | #define IORING_FEAT_SUBMIT_STABLE (1U << 2) | ||
| 143 | 167 | ||
| 144 | /* | 168 | /* |
| 145 | * io_uring_register(2) opcodes and arguments | 169 | * io_uring_register(2) opcodes and arguments |
| @@ -150,5 +174,11 @@ struct io_uring_params { · 4 unmodified lines | |||
| 150 | #define IORING_UNREGISTER_FILES 3 | 174 | #define IORING_UNREGISTER_FILES 3 |
| 151 | #define IORING_REGISTER_EVENTFD 4 | 175 | #define IORING_REGISTER_EVENTFD 4 |
| 152 | #define IORING_UNREGISTER_EVENTFD 5 | 176 | #define IORING_UNREGISTER_EVENTFD 5 |
| 177 | #define IORING_REGISTER_FILES_UPDATE 6 | ||
| 178 | |||
| 179 | struct io_uring_files_update { | ||
| 180 | __u32 offset; | ||
| 181 | __s32 *fds; | ||
| 182 | }; | ||
| 153 | 183 | ||
| 154 | #endif | 184 | #endif |
| @@ -152,4 +152,173 @@ struct iommu_page_response { · 151 unmodified lines | |||
| 152 | __u32 code; | 152 | __u32 code; |
| 153 | }; | 153 | }; |
| 154 | 154 | ||
| 155 | /* defines the granularity of the invalidation */ | ||
| 156 | enum iommu_inv_granularity { | ||
| 157 | IOMMU_INV_GRANU_DOMAIN, /* domain-selective invalidation */ | ||
| 158 | IOMMU_INV_GRANU_PASID, /* PASID-selective invalidation */ | ||
| 159 | IOMMU_INV_GRANU_ADDR, /* page-selective invalidation */ | ||
| 160 | IOMMU_INV_GRANU_NR, /* number of invalidation granularities */ | ||
| 161 | }; | ||
| 162 | |||
| 163 | /** | ||
| 164 | * struct iommu_inv_addr_info - Address Selective Invalidation Structure | ||
| 165 | * | ||
| 166 | * @flags: indicates the granularity of the address-selective invalidation | ||
| 167 | * - If the PASID bit is set, the @pasid field is populated and the invalidation | ||
| 168 | * relates to cache entries tagged with this PASID and matching the address | ||
| 169 | * range. | ||
| 170 | * - If ARCHID bit is set, @archid is populated and the invalidation relates | ||
| 171 | * to cache entries tagged with this architecture specific ID and matching | ||
| 172 | * the address range. | ||
| 173 | * - Both PASID and ARCHID can be set as they may tag different caches. | ||
| 174 | * - If neither PASID or ARCHID is set, global addr invalidation applies. | ||
| 175 | * - The LEAF flag indicates whether only the leaf PTE caching needs to be | ||
| 176 | * invalidated and other paging structure caches can be preserved. | ||
| 177 | * @pasid: process address space ID | ||
| 178 | * @archid: architecture-specific ID | ||
| 179 | * @addr: first stage/level input address | ||
| 180 | * @granule_size: page/block size of the mapping in bytes | ||
| 181 | * @nb_granules: number of contiguous granules to be invalidated | ||
| 182 | */ | ||
| 183 | struct iommu_inv_addr_info { | ||
| 184 | #define IOMMU_INV_ADDR_FLAGS_PASID (1 << 0) | ||
| 185 | #define IOMMU_INV_ADDR_FLAGS_ARCHID (1 << 1) | ||
| 186 | #define IOMMU_INV_ADDR_FLAGS_LEAF (1 << 2) | ||
| 187 | __u32 flags; | ||
| 188 | __u32 archid; | ||
| 189 | __u64 pasid; | ||
| 190 | __u64 addr; | ||
| 191 | __u64 granule_size; | ||
| 192 | __u64 nb_granules; | ||
| 193 | }; | ||
| 194 | |||
| 195 | /** | ||
| 196 | * struct iommu_inv_pasid_info - PASID Selective Invalidation Structure | ||
| 197 | * | ||
| 198 | * @flags: indicates the granularity of the PASID-selective invalidation | ||
| 199 | * - If the PASID bit is set, the @pasid field is populated and the invalidation | ||
| 200 | * relates to cache entries tagged with this PASID and matching the address | ||
| 201 | * range. | ||
| 202 | * - If the ARCHID bit is set, the @archid is populated and the invalidation | ||
| 203 | * relates to cache entries tagged with this architecture specific ID and | ||
| 204 | * matching the address range. | ||
| 205 | * - Both PASID and ARCHID can be set as they may tag different caches. | ||
| 206 | * - At least one of PASID or ARCHID must be set. | ||
| 207 | * @pasid: process address space ID | ||
| 208 | * @archid: architecture-specific ID | ||
| 209 | */ | ||
| 210 | struct iommu_inv_pasid_info { | ||
| 211 | #define IOMMU_INV_PASID_FLAGS_PASID (1 << 0) | ||
| 212 | #define IOMMU_INV_PASID_FLAGS_ARCHID (1 << 1) | ||
| 213 | __u32 flags; | ||
| 214 | __u32 archid; | ||
| 215 | __u64 pasid; | ||
| 216 | }; | ||
| 217 | |||
| 218 | /** | ||
| 219 | * struct iommu_cache_invalidate_info - First level/stage invalidation | ||
| 220 | * information | ||
| 221 | * @version: API version of this structure | ||
| 222 | * @cache: bitfield that allows to select which caches to invalidate | ||
| 223 | * @granularity: defines the lowest granularity used for the invalidation: | ||
| 224 | * domain > PASID > addr | ||
| 225 | * @padding: reserved for future use (should be zero) | ||
| 226 | * @pasid_info: invalidation data when @granularity is %IOMMU_INV_GRANU_PASID | ||
| 227 | * @addr_info: invalidation data when @granularity is %IOMMU_INV_GRANU_ADDR | ||
| 228 | * | ||
| 229 | * Not all the combinations of cache/granularity are valid: | ||
| 230 | * | ||
| 231 | * +--------------+---------------+---------------+---------------+ | ||
| 232 | * | type / | DEV_IOTLB | IOTLB | PASID | | ||
| 233 | * | granularity | | | cache | | ||
| 234 | * +==============+===============+===============+===============+ | ||
| 235 | * | DOMAIN | N/A | Y | Y | | ||
| 236 | * +--------------+---------------+---------------+---------------+ | ||
| 237 | * | PASID | Y | Y | Y | | ||
| 238 | * +--------------+---------------+---------------+---------------+ | ||
| 239 | * | ADDR | Y | Y | N/A | | ||
| 240 | * +--------------+---------------+---------------+---------------+ | ||
| 241 | * | ||
| 242 | * Invalidations by %IOMMU_INV_GRANU_DOMAIN don't take any argument other than | ||
| 243 | * @version and @cache. | ||
| 244 | * | ||
| 245 | * If multiple cache types are invalidated simultaneously, they all | ||
| 246 | * must support the used granularity. | ||
| 247 | */ | ||
| 248 | struct iommu_cache_invalidate_info { | ||
| 249 | #define IOMMU_CACHE_INVALIDATE_INFO_VERSION_1 1 | ||
| 250 | __u32 version; | ||
| 251 | /* IOMMU paging structure cache */ | ||
| 252 | #define IOMMU_CACHE_INV_TYPE_IOTLB (1 << 0) /* IOMMU IOTLB */ | ||
| 253 | #define IOMMU_CACHE_INV_TYPE_DEV_IOTLB (1 << 1) /* Device IOTLB */ | ||
| 254 | #define IOMMU_CACHE_INV_TYPE_PASID (1 << 2) /* PASID cache */ | ||
| 255 | #define IOMMU_CACHE_INV_TYPE_NR (3) | ||
| 256 | __u8 cache; | ||
| 257 | __u8 granularity; | ||
| 258 | __u8 padding[2]; | ||
| 259 | union { | ||
| 260 | struct iommu_inv_pasid_info pasid_info; | ||
| 261 | struct iommu_inv_addr_info addr_info; | ||
| 262 | }; | ||
| 263 | }; | ||
| 264 | |||
| 265 | /** | ||
| 266 | * struct iommu_gpasid_bind_data_vtd - Intel VT-d specific data on device and guest | ||
| 267 | * SVA binding. | ||
| 268 | * | ||
| 269 | * @flags: VT-d PASID table entry attributes | ||
| 270 | * @pat: Page attribute table data to compute effective memory type | ||
| 271 | * @emt: Extended memory type | ||
| 272 | * | ||
| 273 | * Only guest vIOMMU selectable and effective options are passed down to | ||
| 274 | * the host IOMMU. | ||
| 275 | */ | ||
| 276 | struct iommu_gpasid_bind_data_vtd { | ||
| 277 | #define IOMMU_SVA_VTD_GPASID_SRE (1 << 0) /* supervisor request */ | ||
| 278 | #define IOMMU_SVA_VTD_GPASID_EAFE (1 << 1) /* extended access enable */ | ||
| 279 | #define IOMMU_SVA_VTD_GPASID_PCD (1 << 2) /* page-level cache disable */ | ||
| 280 | #define IOMMU_SVA_VTD_GPASID_PWT (1 << 3) /* page-level write through */ | ||
| 281 | #define IOMMU_SVA_VTD_GPASID_EMTE (1 << 4) /* extended mem type enable */ | ||
| 282 | #define IOMMU_SVA_VTD_GPASID_CD (1 << 5) /* PASID-level cache disable */ | ||
| 283 | __u64 flags; | ||
| 284 | __u32 pat; | ||
| 285 | __u32 emt; | ||
| 286 | }; | ||
| 287 | |||
| 288 | /** | ||
| 289 | * struct iommu_gpasid_bind_data - Information about device and guest PASID binding | ||
| 290 | * @version: Version of this data structure | ||
| 291 | * @format: PASID table entry format | ||
| 292 | * @flags: Additional information on guest bind request | ||
| 293 | * @gpgd: Guest page directory base of the guest mm to bind | ||
| 294 | * @hpasid: Process address space ID used for the guest mm in host IOMMU | ||
| 295 | * @gpasid: Process address space ID used for the guest mm in guest IOMMU | ||
| 296 | * @addr_width: Guest virtual address width | ||
| 297 | * @padding: Reserved for future use (should be zero) | ||
| 298 | * @vtd: Intel VT-d specific data | ||
| 299 | * | ||
| 300 | * Guest to host PASID mapping can be an identity or non-identity, where guest | ||
| 301 | * has its own PASID space. For non-identify mapping, guest to host PASID lookup | ||
| 302 | * is needed when VM programs guest PASID into an assigned device. VMM may | ||
| 303 | * trap such PASID programming then request host IOMMU driver to convert guest | ||
| 304 | * PASID to host PASID based on this bind data. | ||
| 305 | */ | ||
| 306 | struct iommu_gpasid_bind_data { | ||
| 307 | #define IOMMU_GPASID_BIND_VERSION_1 1 | ||
| 308 | __u32 version; | ||
| 309 | #define IOMMU_PASID_FORMAT_INTEL_VTD 1 | ||
| 310 | __u32 format; | ||
| 311 | #define IOMMU_SVA_GPASID_VAL (1 << 0) /* guest PASID valid */ | ||
| 312 | __u64 flags; | ||
| 313 | __u64 gpgd; | ||
| 314 | __u64 hpasid; | ||
| 315 | __u64 gpasid; | ||
| 316 | __u32 addr_width; | ||
| 317 | __u8 padding[12]; | ||
| 318 | /* Vendor specific data */ | ||
| 319 | union { | ||
| 320 | struct iommu_gpasid_bind_data_vtd vtd; | ||
| 321 | }; | ||
| 322 | }; | ||
| 323 | |||
| 155 | #endif /* _UAPI_IOMMU_H */ | 324 | #endif /* _UAPI_IOMMU_H */ |
| @@ -4,9 +4,24 @@ · 3 unmodified lines | |||
| 4 | 4 | ||
| 5 | #include <linux/types.h> | 5 | #include <linux/types.h> |
| 6 | 6 | ||
| 7 | /* | ||
| 8 | * Argument for KCOV_REMOTE_ENABLE ioctl, see Documentation/dev-tools/kcov.rst | ||
| 9 | * and the comment before kcov_remote_start() for usage details. | ||
| 10 | */ | ||
| 11 | struct kcov_remote_arg { | ||
| 12 | __u32 trace_mode; /* KCOV_TRACE_PC or KCOV_TRACE_CMP */ | ||
| 13 | __u32 area_size; /* Length of coverage buffer in words */ | ||
| 14 | __u32 num_handles; /* Size of handles array */ | ||
| 15 | __aligned_u64 common_handle; | ||
| 16 | __aligned_u64 handles[0]; | ||
| 17 | }; | ||
| 18 | |||
| 19 | #define KCOV_REMOTE_MAX_HANDLES 0x100 | ||
| 20 | |||
| 7 | #define KCOV_INIT_TRACE _IOR('c', 1, unsigned long) | 21 | #define KCOV_INIT_TRACE _IOR('c', 1, unsigned long) |
| 8 | #define KCOV_ENABLE _IO('c', 100) | 22 | #define KCOV_ENABLE _IO('c', 100) |
| 9 | #define KCOV_DISABLE _IO('c', 101) | 23 | #define KCOV_DISABLE _IO('c', 101) |
| 24 | #define KCOV_REMOTE_ENABLE _IOW('c', 102, struct kcov_remote_arg) | ||
| 10 | 25 | ||
| 11 | enum { | 26 | enum { |
| 12 | /* | 27 | /* |
| @@ -32,4 +47,17 @@ enum { · 19 unmodified lines | |||
| 32 | #define KCOV_CMP_SIZE(n) ((n) << 1) | 47 | #define KCOV_CMP_SIZE(n) ((n) << 1) |
| 33 | #define KCOV_CMP_MASK KCOV_CMP_SIZE(3) | 48 | #define KCOV_CMP_MASK KCOV_CMP_SIZE(3) |
| 34 | 49 | ||
| 50 | #define KCOV_SUBSYSTEM_COMMON (0x00ull << 56) | ||
| 51 | #define KCOV_SUBSYSTEM_USB (0x01ull << 56) | ||
| 52 | |||
| 53 | #define KCOV_SUBSYSTEM_MASK (0xffull << 56) | ||
| 54 | #define KCOV_INSTANCE_MASK (0xffffffffull) | ||
| 55 | |||
| 56 | static inline __u64 kcov_remote_handle(__u64 subsys, __u64 inst) | ||
| 57 | { | ||
| 58 | if (subsys & ~KCOV_SUBSYSTEM_MASK || inst & ~KCOV_INSTANCE_MASK) | ||
| 59 | return 0; | ||
| 60 | return subsys | inst; | ||
| 61 | } | ||
| 62 | |||
| 35 | #endif /* _LINUX_KCOV_IOCTLS_H */ | 63 | #endif /* _LINUX_KCOV_IOCTLS_H */ |
| @@ -235,6 +235,7 @@ struct kvm_hyperv_exit { · 234 unmodified lines | |||
| 235 | #define KVM_EXIT_S390_STSI 25 | 235 | #define KVM_EXIT_S390_STSI 25 |
| 236 | #define KVM_EXIT_IOAPIC_EOI 26 | 236 | #define KVM_EXIT_IOAPIC_EOI 26 |
| 237 | #define KVM_EXIT_HYPERV 27 | 237 | #define KVM_EXIT_HYPERV 27 |
| 238 | #define KVM_EXIT_ARM_NISV 28 | ||
| 238 | 239 | ||
| 239 | /* For KVM_EXIT_INTERNAL_ERROR */ | 240 | /* For KVM_EXIT_INTERNAL_ERROR */ |
| 240 | /* Emulate instruction failed. */ | 241 | /* Emulate instruction failed. */ |
| @@ -394,6 +395,11 @@ struct kvm_run { · 153 unmodified lines | |||
| 394 | } eoi; | 395 | } eoi; |
| 395 | /* KVM_EXIT_HYPERV */ | 396 | /* KVM_EXIT_HYPERV */ |
| 396 | struct kvm_hyperv_exit hyperv; | 397 | struct kvm_hyperv_exit hyperv; |
| 398 | /* KVM_EXIT_ARM_NISV */ | ||
| 399 | struct { | ||
| 400 | __u64 esr_iss; | ||
| 401 | __u64 fault_ipa; | ||
| 402 | } arm_nisv; | ||
| 397 | /* Fix the size of the union. */ | 403 | /* Fix the size of the union. */ |
| 398 | char padding[256]; | 404 | char padding[256]; |
| 399 | }; | 405 | }; |
| @@ -1000,6 +1006,9 @@ struct kvm_ppc_resize_hpt { · 600 unmodified lines | |||
| 1000 | #define KVM_CAP_PMU_EVENT_FILTER 173 | 1006 | #define KVM_CAP_PMU_EVENT_FILTER 173 |
| 1001 | #define KVM_CAP_ARM_IRQ_LINE_LAYOUT_2 174 | 1007 | #define KVM_CAP_ARM_IRQ_LINE_LAYOUT_2 174 |
| 1002 | #define KVM_CAP_HYPERV_DIRECT_TLBFLUSH 175 | 1008 | #define KVM_CAP_HYPERV_DIRECT_TLBFLUSH 175 |
| 1009 | #define KVM_CAP_PPC_GUEST_DEBUG_SSTEP 176 | ||
| 1010 | #define KVM_CAP_ARM_NISV_TO_USER 177 | ||
| 1011 | #define KVM_CAP_ARM_INJECT_EXT_DABT 178 | ||
| 1003 | 1012 | ||
| 1004 | #ifdef KVM_CAP_IRQ_ROUTING | 1013 | #ifdef KVM_CAP_IRQ_ROUTING |
| 1005 | 1014 | ||
| @@ -1227,6 +1236,8 @@ enum kvm_device_type { · 221 unmodified lines | |||
| 1227 | #define KVM_DEV_TYPE_ARM_VGIC_ITS KVM_DEV_TYPE_ARM_VGIC_ITS | 1236 | #define KVM_DEV_TYPE_ARM_VGIC_ITS KVM_DEV_TYPE_ARM_VGIC_ITS |
| 1228 | KVM_DEV_TYPE_XIVE, | 1237 | KVM_DEV_TYPE_XIVE, |
| 1229 | #define KVM_DEV_TYPE_XIVE KVM_DEV_TYPE_XIVE | 1238 | #define KVM_DEV_TYPE_XIVE KVM_DEV_TYPE_XIVE |
| 1239 | KVM_DEV_TYPE_ARM_PV_TIME, | ||
| 1240 | #define KVM_DEV_TYPE_ARM_PV_TIME KVM_DEV_TYPE_ARM_PV_TIME | ||
| 1230 | KVM_DEV_TYPE_MAX, | 1241 | KVM_DEV_TYPE_MAX, |
| 1231 | }; | 1242 | }; |
| 1232 | 1243 | ||
| @@ -1337,6 +1348,7 @@ struct kvm_s390_ucas_mapping { · 104 unmodified lines | |||
| 1337 | #define KVM_PPC_GET_CPU_CHAR _IOR(KVMIO, 0xb1, struct kvm_ppc_cpu_char) | 1348 | #define KVM_PPC_GET_CPU_CHAR _IOR(KVMIO, 0xb1, struct kvm_ppc_cpu_char) |
| 1338 | /* Available with KVM_CAP_PMU_EVENT_FILTER */ | 1349 | /* Available with KVM_CAP_PMU_EVENT_FILTER */ |
| 1339 | #define KVM_SET_PMU_EVENT_FILTER _IOW(KVMIO, 0xb2, struct kvm_pmu_event_filter) | 1350 | #define KVM_SET_PMU_EVENT_FILTER _IOW(KVMIO, 0xb2, struct kvm_pmu_event_filter) |
| 1351 | #define KVM_PPC_SVM_OFF _IO(KVMIO, 0xb3) | ||
| 1340 | 1352 | ||
| 1341 | /* ioctl for vm fd */ | 1353 | /* ioctl for vm fd */ |
| 1342 | #define KVM_CREATE_DEVICE _IOWR(KVMIO, 0xe0, struct kvm_create_device) | 1354 | #define KVM_CREATE_DEVICE _IOWR(KVMIO, 0xe0, struct kvm_create_device) |
| @@ -27,6 +27,7 @@ enum lwtunnel_ip_t { · 26 unmodified lines | |||
| 27 | LWTUNNEL_IP_TOS, | 27 | LWTUNNEL_IP_TOS, |
| 28 | LWTUNNEL_IP_FLAGS, | 28 | LWTUNNEL_IP_FLAGS, |
| 29 | LWTUNNEL_IP_PAD, | 29 | LWTUNNEL_IP_PAD, |
| 30 | LWTUNNEL_IP_OPTS, | ||
| 30 | __LWTUNNEL_IP_MAX, | 31 | __LWTUNNEL_IP_MAX, |
| 31 | }; | 32 | }; |
| 32 | 33 | ||
| @@ -41,11 +42,51 @@ enum lwtunnel_ip6_t { · 8 unmodified lines | |||
| 41 | LWTUNNEL_IP6_TC, | 42 | LWTUNNEL_IP6_TC, |
| 42 | LWTUNNEL_IP6_FLAGS, | 43 | LWTUNNEL_IP6_FLAGS, |
| 43 | LWTUNNEL_IP6_PAD, | 44 | LWTUNNEL_IP6_PAD, |
| 45 | LWTUNNEL_IP6_OPTS, | ||
| 44 | __LWTUNNEL_IP6_MAX, | 46 | __LWTUNNEL_IP6_MAX, |
| 45 | }; | 47 | }; |
| 46 | 48 | ||
| 47 | #define LWTUNNEL_IP6_MAX (__LWTUNNEL_IP6_MAX - 1) | 49 | #define LWTUNNEL_IP6_MAX (__LWTUNNEL_IP6_MAX - 1) |
| 48 | 50 | ||
| 51 | enum { | ||
| 52 | LWTUNNEL_IP_OPTS_UNSPEC, | ||
| 53 | LWTUNNEL_IP_OPTS_GENEVE, | ||
| 54 | LWTUNNEL_IP_OPTS_VXLAN, | ||
| 55 | LWTUNNEL_IP_OPTS_ERSPAN, | ||
| 56 | __LWTUNNEL_IP_OPTS_MAX, | ||
| 57 | }; | ||
| 58 | |||
| 59 | #define LWTUNNEL_IP_OPTS_MAX (__LWTUNNEL_IP_OPTS_MAX - 1) | ||
| 60 | |||
| 61 | enum { | ||
| 62 | LWTUNNEL_IP_OPT_GENEVE_UNSPEC, | ||
| 63 | LWTUNNEL_IP_OPT_GENEVE_CLASS, | ||
| 64 | LWTUNNEL_IP_OPT_GENEVE_TYPE, | ||
| 65 | LWTUNNEL_IP_OPT_GENEVE_DATA, | ||
| 66 | __LWTUNNEL_IP_OPT_GENEVE_MAX, | ||
| 67 | }; | ||
| 68 | |||
| 69 | #define LWTUNNEL_IP_OPT_GENEVE_MAX (__LWTUNNEL_IP_OPT_GENEVE_MAX - 1) | ||
| 70 | |||
| 71 | enum { | ||
| 72 | LWTUNNEL_IP_OPT_VXLAN_UNSPEC, | ||
| 73 | LWTUNNEL_IP_OPT_VXLAN_GBP, | ||
| 74 | __LWTUNNEL_IP_OPT_VXLAN_MAX, | ||
| 75 | }; | ||
| 76 | |||
| 77 | #define LWTUNNEL_IP_OPT_VXLAN_MAX (__LWTUNNEL_IP_OPT_VXLAN_MAX - 1) | ||
| 78 | |||
| 79 | enum { | ||
| 80 | LWTUNNEL_IP_OPT_ERSPAN_UNSPEC, | ||
| 81 | LWTUNNEL_IP_OPT_ERSPAN_VER, | ||
| 82 | LWTUNNEL_IP_OPT_ERSPAN_INDEX, | ||
| 83 | LWTUNNEL_IP_OPT_ERSPAN_DIR, | ||
| 84 | LWTUNNEL_IP_OPT_ERSPAN_HWID, | ||
| 85 | __LWTUNNEL_IP_OPT_ERSPAN_MAX, | ||
| 86 | }; | ||
| 87 | |||
| 88 | #define LWTUNNEL_IP_OPT_ERSPAN_MAX (__LWTUNNEL_IP_OPT_ERSPAN_MAX - 1) | ||
| 89 | |||
| 49 | enum { | 90 | enum { |
| 50 | LWT_BPF_PROG_UNSPEC, | 91 | LWT_BPF_PROG_UNSPEC, |
| 51 | LWT_BPF_PROG_FD, | 92 | LWT_BPF_PROG_FD, |
| @@ -94,5 +94,6 @@ · 93 unmodified lines | |||
| 94 | #define ZSMALLOC_MAGIC 0x58295829 | 94 | #define ZSMALLOC_MAGIC 0x58295829 |
| 95 | #define DMA_BUF_MAGIC 0x444d4142 /* "DMAB" */ | 95 | #define DMA_BUF_MAGIC 0x444d4142 /* "DMAB" */ |
| 96 | #define Z3FOLD_MAGIC 0x33 | 96 | #define Z3FOLD_MAGIC 0x33 |
| 97 | #define PPC_CMM_MAGIC 0xc7571590 | ||
| 97 | 98 | ||
| 98 | #endif /* __LINUX_MAGIC_H__ */ | 99 | #endif /* __LINUX_MAGIC_H__ */ |
| @@ -19,9 +19,9 @@ struct msqid_ds { · 18 unmodified lines | |||
| 19 | struct ipc_perm msg_perm; | 19 | struct ipc_perm msg_perm; |
| 20 | struct msg *msg_first; /* first message on queue,unused */ | 20 | struct msg *msg_first; /* first message on queue,unused */ |
| 21 | struct msg *msg_last; /* last message in queue,unused */ | 21 | struct msg *msg_last; /* last message in queue,unused */ |
| 22 | __kernel_time_t msg_stime; /* last msgsnd time */ | 22 | __kernel_old_time_t msg_stime; /* last msgsnd time */ |
| 23 | __kernel_time_t msg_rtime; /* last msgrcv time */ | 23 | __kernel_old_time_t msg_rtime; /* last msgrcv time */ |
| 24 | __kernel_time_t msg_ctime; /* last change time */ | 24 | __kernel_old_time_t msg_ctime; /* last change time */ |
| 25 | unsigned long msg_lcbytes; /* Reuse junk fields for 32 bit */ | 25 | unsigned long msg_lcbytes; /* Reuse junk fields for 32 bit */ |
| 26 | unsigned long msg_lqbytes; /* ditto */ | 26 | unsigned long msg_lqbytes; /* ditto */ |
| 27 | unsigned short msg_cbytes; /* current number of bytes on queue */ | 27 | unsigned short msg_cbytes; /* current number of bytes on queue */ |
| @@ -205,6 +205,8 @@ enum ipset_cadt_flags { · 204 unmodified lines | |||
| 205 | IPSET_FLAG_WITH_FORCEADD = (1 << IPSET_FLAG_BIT_WITH_FORCEADD), | 205 | IPSET_FLAG_WITH_FORCEADD = (1 << IPSET_FLAG_BIT_WITH_FORCEADD), |
| 206 | IPSET_FLAG_BIT_WITH_SKBINFO = 6, | 206 | IPSET_FLAG_BIT_WITH_SKBINFO = 6, |
| 207 | IPSET_FLAG_WITH_SKBINFO = (1 << IPSET_FLAG_BIT_WITH_SKBINFO), | 207 | IPSET_FLAG_WITH_SKBINFO = (1 << IPSET_FLAG_BIT_WITH_SKBINFO), |
| 208 | IPSET_FLAG_BIT_IFACE_WILDCARD = 7, | ||
| 209 | IPSET_FLAG_IFACE_WILDCARD = (1 << IPSET_FLAG_BIT_IFACE_WILDCARD), | ||
| 208 | IPSET_FLAG_CADT_MAX = 15, | 210 | IPSET_FLAG_CADT_MAX = 15, |
| 209 | }; | 211 | }; |
| 210 | 212 | ||
| @@ -144,12 +144,14 @@ enum nft_list_attributes { · 143 unmodified lines | |||
| 144 | * @NFTA_HOOK_HOOKNUM: netfilter hook number (NLA_U32) | 144 | * @NFTA_HOOK_HOOKNUM: netfilter hook number (NLA_U32) |
| 145 | * @NFTA_HOOK_PRIORITY: netfilter hook priority (NLA_U32) | 145 | * @NFTA_HOOK_PRIORITY: netfilter hook priority (NLA_U32) |
| 146 | * @NFTA_HOOK_DEV: netdevice name (NLA_STRING) | 146 | * @NFTA_HOOK_DEV: netdevice name (NLA_STRING) |
| 147 | * @NFTA_HOOK_DEVS: list of netdevices (NLA_NESTED) | ||
| 147 | */ | 148 | */ |
| 148 | enum nft_hook_attributes { | 149 | enum nft_hook_attributes { |
| 149 | NFTA_HOOK_UNSPEC, | 150 | NFTA_HOOK_UNSPEC, |
| 150 | NFTA_HOOK_HOOKNUM, | 151 | NFTA_HOOK_HOOKNUM, |
| 151 | NFTA_HOOK_PRIORITY, | 152 | NFTA_HOOK_PRIORITY, |
| 152 | NFTA_HOOK_DEV, | 153 | NFTA_HOOK_DEV, |
| 154 | NFTA_HOOK_DEVS, | ||
| 153 | __NFTA_HOOK_MAX | 155 | __NFTA_HOOK_MAX |
| 154 | }; | 156 | }; |
| 155 | #define NFTA_HOOK_MAX (__NFTA_HOOK_MAX - 1) | 157 | #define NFTA_HOOK_MAX (__NFTA_HOOK_MAX - 1) |
| @@ -1516,6 +1518,7 @@ enum nft_object_attributes { · 1360 unmodified lines | |||
| 1516 | * @NFTA_FLOWTABLE_HOOK: netfilter hook configuration(NLA_U32) | 1518 | * @NFTA_FLOWTABLE_HOOK: netfilter hook configuration(NLA_U32) |
| 1517 | * @NFTA_FLOWTABLE_USE: number of references to this flow table (NLA_U32) | 1519 | * @NFTA_FLOWTABLE_USE: number of references to this flow table (NLA_U32) |
| 1518 | * @NFTA_FLOWTABLE_HANDLE: object handle (NLA_U64) | 1520 | * @NFTA_FLOWTABLE_HANDLE: object handle (NLA_U64) |
| 1521 | * @NFTA_FLOWTABLE_FLAGS: flags (NLA_U32) | ||
| 1519 | */ | 1522 | */ |
| 1520 | enum nft_flowtable_attributes { | 1523 | enum nft_flowtable_attributes { |
| 1521 | NFTA_FLOWTABLE_UNSPEC, | 1524 | NFTA_FLOWTABLE_UNSPEC, |
| @@ -1525,6 +1528,7 @@ enum nft_flowtable_attributes { · 3 unmodified lines | |||
| 1525 | NFTA_FLOWTABLE_USE, | 1528 | NFTA_FLOWTABLE_USE, |
| 1526 | NFTA_FLOWTABLE_HANDLE, | 1529 | NFTA_FLOWTABLE_HANDLE, |
| 1527 | NFTA_FLOWTABLE_PAD, | 1530 | NFTA_FLOWTABLE_PAD, |
| 1531 | NFTA_FLOWTABLE_FLAGS, | ||
| 1528 | __NFTA_FLOWTABLE_MAX | 1532 | __NFTA_FLOWTABLE_MAX |
| 1529 | }; | 1533 | }; |
| 1530 | #define NFTA_FLOWTABLE_MAX (__NFTA_FLOWTABLE_MAX - 1) | 1534 | #define NFTA_FLOWTABLE_MAX (__NFTA_FLOWTABLE_MAX - 1) |
| @@ -41,19 +41,19 @@ struct xt_sctp_info { · 40 unmodified lines | |||
| 41 | #define SCTP_CHUNKMAP_SET(chunkmap, type) \ | 41 | #define SCTP_CHUNKMAP_SET(chunkmap, type) \ |
| 42 | do { \ | 42 | do { \ |
| 43 | (chunkmap)[type / bytes(__u32)] |= \ | 43 | (chunkmap)[type / bytes(__u32)] |= \ |
| 44 | 1 << (type % bytes(__u32)); \ | 44 | 1u << (type % bytes(__u32)); \ |
| 45 | } while (0) | 45 | } while (0) |
| 46 | 46 | ||
| 47 | #define SCTP_CHUNKMAP_CLEAR(chunkmap, type) \ | 47 | #define SCTP_CHUNKMAP_CLEAR(chunkmap, type) \ |
| 48 | do { \ | 48 | do { \ |
| 49 | (chunkmap)[type / bytes(__u32)] &= \ | 49 | (chunkmap)[type / bytes(__u32)] &= \ |
| 50 | ~(1 << (type % bytes(__u32))); \ | 50 | ~(1u << (type % bytes(__u32))); \ |
| 51 | } while (0) | 51 | } while (0) |
| 52 | 52 | ||
| 53 | #define SCTP_CHUNKMAP_IS_SET(chunkmap, type) \ | 53 | #define SCTP_CHUNKMAP_IS_SET(chunkmap, type) \ |
| 54 | ({ \ | 54 | ({ \ |
| 55 | ((chunkmap)[type / bytes (__u32)] & \ | 55 | ((chunkmap)[type / bytes (__u32)] & \ |
| 56 | (1 << (type % bytes (__u32)))) ? 1: 0; \ | 56 | (1u << (type % bytes (__u32)))) ? 1: 0; \ |
| 57 | }) | 57 | }) |
| 58 | 58 | ||
| 59 | #define SCTP_CHUNKMAP_RESET(chunkmap) \ | 59 | #define SCTP_CHUNKMAP_RESET(chunkmap) \ |
| @@ -199,7 +199,7 @@ struct arpt_get_entries { · 198 unmodified lines | |||
| 199 | /* Helper functions */ | 199 | /* Helper functions */ |
| 200 | static __inline__ struct xt_entry_target *arpt_get_target(struct arpt_entry *e) | 200 | static __inline__ struct xt_entry_target *arpt_get_target(struct arpt_entry *e) |
| 201 | { | 201 | { |
| 202 | return (void *)e + e->target_offset; | 202 | return (struct xt_entry_target *)((char *)e + e->target_offset); |
| 203 | } | 203 | } |
| 204 | 204 | ||
| 205 | /* | 205 | /* |
| @@ -194,7 +194,7 @@ struct ebt_entry { · 193 unmodified lines | |||
| 194 | static __inline__ struct ebt_entry_target * | 194 | static __inline__ struct ebt_entry_target * |
| 195 | ebt_get_target(struct ebt_entry *e) | 195 | ebt_get_target(struct ebt_entry *e) |
| 196 | { | 196 | { |
| 197 | return (void *)e + e->target_offset; | 197 | return (struct ebt_entry_target *)((char *)e + e->target_offset); |
| 198 | } | 198 | } |
| 199 | 199 | ||
| 200 | /* {g,s}etsockopt numbers */ | 200 | /* {g,s}etsockopt numbers */ |
| @@ -222,7 +222,7 @@ struct ipt_get_entries { · 221 unmodified lines | |||
| 222 | static __inline__ struct xt_entry_target * | 222 | static __inline__ struct xt_entry_target * |
| 223 | ipt_get_target(struct ipt_entry *e) | 223 | ipt_get_target(struct ipt_entry *e) |
| 224 | { | 224 | { |
| 225 | return (void *)e + e->target_offset; | 225 | return (struct xt_entry_target *)((char *)e + e->target_offset); |
| 226 | } | 226 | } |
| 227 | 227 | ||
| 228 | /* | 228 | /* |
| @@ -262,7 +262,7 @@ struct ip6t_get_entries { · 261 unmodified lines | |||
| 262 | static __inline__ struct xt_entry_target * | 262 | static __inline__ struct xt_entry_target * |
| 263 | ip6t_get_target(struct ip6t_entry *e) | 263 | ip6t_get_target(struct ip6t_entry *e) |
| 264 | { | 264 | { |
| 265 | return (void *)e + e->target_offset; | 265 | return (struct xt_entry_target *)((char *)e + e->target_offset); |
| 266 | } | 266 | } |
| 267 | 267 | ||
| 268 | /* | 268 | /* |
| @@ -248,6 +248,22 @@ · 247 unmodified lines | |||
| 248 | * %NL80211_ATTR_SAE_PASSWORD. | 248 | * %NL80211_ATTR_SAE_PASSWORD. |
| 249 | */ | 249 | */ |
| 250 | 250 | ||
| 251 | /** | ||
| 252 | * DOC: VLAN offload support for setting group keys and binding STAs to VLANs | ||
| 253 | * | ||
| 254 | * By setting @NL80211_EXT_FEATURE_VLAN_OFFLOAD flag drivers can indicate they | ||
| 255 | * support offloading VLAN functionality in a manner where the driver exposes a | ||
| 256 | * single netdev that uses VLAN tagged frames and separate VLAN-specific netdevs | ||
| 257 | * can then be added using RTM_NEWLINK/IFLA_VLAN_ID similarly to the Ethernet | ||
| 258 | * case. Frames received from stations that are not assigned to any VLAN are | ||
| 259 | * delivered on the main netdev and frames to such stations can be sent through | ||
| 260 | * that main netdev. | ||
| 261 | * | ||
| 262 | * %NL80211_CMD_NEW_KEY (for group keys), %NL80211_CMD_NEW_STATION, and | ||
| 263 | * %NL80211_CMD_SET_STATION will optionally specify vlan_id using | ||
| 264 | * %NL80211_ATTR_VLAN_ID. | ||
| 265 | */ | ||
| 266 | |||
| 251 | /** | 267 | /** |
| 252 | * enum nl80211_commands - supported nl80211 commands | 268 | * enum nl80211_commands - supported nl80211 commands |
| 253 | * | 269 | * |
| @@ -571,6 +587,14 @@ · 317 unmodified lines | |||
| 571 | * set of BSSID,frequency parameters is used (i.e., either the enforcing | 587 | * set of BSSID,frequency parameters is used (i.e., either the enforcing |
| 572 | * %NL80211_ATTR_MAC,%NL80211_ATTR_WIPHY_FREQ or the less strict | 588 | * %NL80211_ATTR_MAC,%NL80211_ATTR_WIPHY_FREQ or the less strict |
| 573 | * %NL80211_ATTR_MAC_HINT and %NL80211_ATTR_WIPHY_FREQ_HINT). | 589 | * %NL80211_ATTR_MAC_HINT and %NL80211_ATTR_WIPHY_FREQ_HINT). |
| 590 | * Driver shall not modify the IEs specified through %NL80211_ATTR_IE if | ||
| 591 | * %NL80211_ATTR_MAC is included. However, if %NL80211_ATTR_MAC_HINT is | ||
| 592 | * included, these IEs through %NL80211_ATTR_IE are specified by the user | ||
| 593 | * space based on the best possible BSS selected. Thus, if the driver ends | ||
| 594 | * up selecting a different BSS, it can modify these IEs accordingly (e.g. | ||
| 595 | * userspace asks the driver to perform PMKSA caching with BSS1 and the | ||
| 596 | * driver ends up selecting BSS2 with different PMKSA cache entry; RSNIE | ||
| 597 | * has to get updated with the apt PMKID). | ||
| 574 | * %NL80211_ATTR_PREV_BSSID can be used to request a reassociation within | 598 | * %NL80211_ATTR_PREV_BSSID can be used to request a reassociation within |
| 575 | * the ESS in case the device is already associated and an association with | 599 | * the ESS in case the device is already associated and an association with |
| 576 | * a different BSS is desired. | 600 | * a different BSS is desired. |
| @@ -2373,6 +2397,9 @@ enum nl80211_commands { · 1796 unmodified lines | |||
| 2373 | * the allowed channel bandwidth configurations. (u8 attribute) | 2397 | * the allowed channel bandwidth configurations. (u8 attribute) |
| 2374 | * Defined by IEEE P802.11ay/D4.0 section 9.4.2.251, Table 13. | 2398 | * Defined by IEEE P802.11ay/D4.0 section 9.4.2.251, Table 13. |
| 2375 | * | 2399 | * |
| 2400 | * @NL80211_ATTR_VLAN_ID: VLAN ID (1..4094) for the station and VLAN group key | ||
| 2401 | * (u16). | ||
| 2402 | * | ||
| 2376 | * @NUM_NL80211_ATTR: total number of nl80211_attrs available | 2403 | * @NUM_NL80211_ATTR: total number of nl80211_attrs available |
| 2377 | * @NL80211_ATTR_MAX: highest attribute number currently defined | 2404 | * @NL80211_ATTR_MAX: highest attribute number currently defined |
| 2378 | * @__NL80211_ATTR_AFTER_LAST: internal use | 2405 | * @__NL80211_ATTR_AFTER_LAST: internal use |
| @@ -2835,6 +2862,8 @@ enum nl80211_attrs { · 456 unmodified lines | |||
| 2835 | NL80211_ATTR_WIPHY_EDMG_CHANNELS, | 2862 | NL80211_ATTR_WIPHY_EDMG_CHANNELS, |
| 2836 | NL80211_ATTR_WIPHY_EDMG_BW_CONFIG, | 2863 | NL80211_ATTR_WIPHY_EDMG_BW_CONFIG, |
| 2837 | 2864 | ||
| 2865 | NL80211_ATTR_VLAN_ID, | ||
| 2866 | |||
| 2838 | /* add attributes here, update the policy in nl80211.c */ | 2867 | /* add attributes here, update the policy in nl80211.c */ |
| 2839 | 2868 | ||
| 2840 | __NL80211_ATTR_AFTER_LAST, | 2869 | __NL80211_ATTR_AFTER_LAST, |
| @@ -5484,6 +5513,14 @@ enum nl80211_feature_flags { · 2643 unmodified lines | |||
| 5484 | * @NL80211_EXT_FEATURE_SAE_OFFLOAD: Device wants to do SAE authentication in | 5513 | * @NL80211_EXT_FEATURE_SAE_OFFLOAD: Device wants to do SAE authentication in |
| 5485 | * station mode (SAE password is passed as part of the connect command). | 5514 | * station mode (SAE password is passed as part of the connect command). |
| 5486 | * | 5515 | * |
| 5516 | * @NL80211_EXT_FEATURE_VLAN_OFFLOAD: The driver supports a single netdev | ||
| 5517 | * with VLAN tagged frames and separate VLAN-specific netdevs added using | ||
| 5518 | * vconfig similarly to the Ethernet case. | ||
| 5519 | * | ||
| 5520 | * @NL80211_EXT_FEATURE_AQL: The driver supports the Airtime Queue Limit (AQL) | ||
| 5521 | * feature, which prevents bufferbloat by using the expected transmission | ||
| 5522 | * time to limit the amount of data buffered in the hardware. | ||
| 5523 | * | ||
| 5487 | * @NUM_NL80211_EXT_FEATURES: number of extended features. | 5524 | * @NUM_NL80211_EXT_FEATURES: number of extended features. |
| 5488 | * @MAX_NL80211_EXT_FEATURES: highest extended feature index. | 5525 | * @MAX_NL80211_EXT_FEATURES: highest extended feature index. |
| 5489 | */ | 5526 | */ |
| @@ -5529,6 +5566,8 @@ enum nl80211_ext_feature_index { · 39 unmodified lines | |||
| 5529 | NL80211_EXT_FEATURE_EXT_KEY_ID, | 5566 | NL80211_EXT_FEATURE_EXT_KEY_ID, |
| 5530 | NL80211_EXT_FEATURE_STA_TX_PWR, | 5567 | NL80211_EXT_FEATURE_STA_TX_PWR, |
| 5531 | NL80211_EXT_FEATURE_SAE_OFFLOAD, | 5568 | NL80211_EXT_FEATURE_SAE_OFFLOAD, |
| 5569 | NL80211_EXT_FEATURE_VLAN_OFFLOAD, | ||
| 5570 | NL80211_EXT_FEATURE_AQL, | ||
| 5532 | 5571 | ||
| 5533 | /* add new features before the definition below */ | 5572 | /* add new features before the definition below */ |
| 5534 | NUM_NL80211_EXT_FEATURES, | 5573 | NUM_NL80211_EXT_FEATURES, |
| @@ -63,6 +63,7 @@ struct nvme_passthru_cmd64 { · 62 unmodified lines | |||
| 63 | __u32 cdw14; | 63 | __u32 cdw14; |
| 64 | __u32 cdw15; | 64 | __u32 cdw15; |
| 65 | __u32 timeout_ms; | 65 | __u32 timeout_ms; |
| 66 | __u32 rsvd2; | ||
| 66 | __u64 result; | 67 | __u64 result; |
| 67 | }; | 68 | }; |
| 68 | 69 | ||
| @@ -173,6 +173,7 @@ enum ovs_packet_cmd { · 172 unmodified lines | |||
| 173 | * @OVS_PACKET_ATTR_LEN: Packet size before truncation. | 173 | * @OVS_PACKET_ATTR_LEN: Packet size before truncation. |
| 174 | * %OVS_PACKET_ATTR_USERSPACE action specify the Maximum received fragment | 174 | * %OVS_PACKET_ATTR_USERSPACE action specify the Maximum received fragment |
| 175 | * size. | 175 | * size. |
| 176 | * @OVS_PACKET_ATTR_HASH: Packet hash info (e.g. hash, sw_hash and l4_hash in skb). | ||
| 176 | * | 177 | * |
| 177 | * These attributes follow the &struct ovs_header within the Generic Netlink | 178 | * These attributes follow the &struct ovs_header within the Generic Netlink |
| 178 | * payload for %OVS_PACKET_* commands. | 179 | * payload for %OVS_PACKET_* commands. |
| @@ -190,7 +191,8 @@ enum ovs_packet_attr { · 11 unmodified lines | |||
| 190 | OVS_PACKET_ATTR_PROBE, /* Packet operation is a feature probe, | 191 | OVS_PACKET_ATTR_PROBE, /* Packet operation is a feature probe, |
| 191 | error logging should be suppressed. */ | 192 | error logging should be suppressed. */ |
| 192 | OVS_PACKET_ATTR_MRU, /* Maximum received IP fragment size. */ | 193 | OVS_PACKET_ATTR_MRU, /* Maximum received IP fragment size. */ |
| 193 | OVS_PACKET_ATTR_LEN, /* Packet size before truncation. */ | 194 | OVS_PACKET_ATTR_LEN, /* Packet size before truncation. */ |
| 195 | OVS_PACKET_ATTR_HASH, /* Packet hash. */ | ||
| 194 | __OVS_PACKET_ATTR_MAX | 196 | __OVS_PACKET_ATTR_MAX |
| 195 | }; | 197 | }; |
| 196 | 198 | ||
| @@ -34,6 +34,7 @@ · 33 unmodified lines | |||
| 34 | * of which the first 64 bytes are standardized as follows: | 34 | * of which the first 64 bytes are standardized as follows: |
| 35 | */ | 35 | */ |
| 36 | #define PCI_STD_HEADER_SIZEOF 64 | 36 | #define PCI_STD_HEADER_SIZEOF 64 |
| 37 | #define PCI_STD_NUM_BARS 6 /* Number of standard BARs */ | ||
| 37 | #define PCI_VENDOR_ID 0x00 /* 16 bits */ | 38 | #define PCI_VENDOR_ID 0x00 /* 16 bits */ |
| 38 | #define PCI_DEVICE_ID 0x02 /* 16 bits */ | 39 | #define PCI_DEVICE_ID 0x02 /* 16 bits */ |
| 39 | #define PCI_COMMAND 0x04 /* 16 bits */ | 40 | #define PCI_COMMAND 0x04 /* 16 bits */ |
| @@ -673,6 +674,8 @@ · 633 unmodified lines | |||
| 673 | #define PCI_EXP_LNKCTL2_TLS_8_0GT 0x0003 /* Supported Speed 8GT/s */ | 674 | #define PCI_EXP_LNKCTL2_TLS_8_0GT 0x0003 /* Supported Speed 8GT/s */ |
| 674 | #define PCI_EXP_LNKCTL2_TLS_16_0GT 0x0004 /* Supported Speed 16GT/s */ | 675 | #define PCI_EXP_LNKCTL2_TLS_16_0GT 0x0004 /* Supported Speed 16GT/s */ |
| 675 | #define PCI_EXP_LNKCTL2_TLS_32_0GT 0x0005 /* Supported Speed 32GT/s */ | 676 | #define PCI_EXP_LNKCTL2_TLS_32_0GT 0x0005 /* Supported Speed 32GT/s */ |
| 677 | #define PCI_EXP_LNKCTL2_ENTER_COMP 0x0010 /* Enter Compliance */ | ||
| 678 | #define PCI_EXP_LNKCTL2_TX_MARGIN 0x0380 /* Transmit Margin */ | ||
| 676 | #define PCI_EXP_LNKSTA2 50 /* Link Status 2 */ | 679 | #define PCI_EXP_LNKSTA2 50 /* Link Status 2 */ |
| 677 | #define PCI_CAP_EXP_ENDPOINT_SIZEOF_V2 52 /* v2 endpoints with link end here */ | 680 | #define PCI_CAP_EXP_ENDPOINT_SIZEOF_V2 52 /* v2 endpoints with link end here */ |
| 678 | #define PCI_EXP_SLTCAP2 52 /* Slot Capabilities 2 */ | 681 | #define PCI_EXP_SLTCAP2 52 /* Slot Capabilities 2 */ |
| @@ -141,8 +141,9 @@ enum perf_event_sample_format { · 140 unmodified lines | |||
| 141 | PERF_SAMPLE_TRANSACTION = 1U << 17, | 141 | PERF_SAMPLE_TRANSACTION = 1U << 17, |
| 142 | PERF_SAMPLE_REGS_INTR = 1U << 18, | 142 | PERF_SAMPLE_REGS_INTR = 1U << 18, |
| 143 | PERF_SAMPLE_PHYS_ADDR = 1U << 19, | 143 | PERF_SAMPLE_PHYS_ADDR = 1U << 19, |
| 144 | PERF_SAMPLE_AUX = 1U << 20, | ||
| 144 | 145 | ||
| 145 | PERF_SAMPLE_MAX = 1U << 20, /* non-ABI */ | 146 | PERF_SAMPLE_MAX = 1U << 21, /* non-ABI */ |
| 146 | 147 | ||
| 147 | __PERF_SAMPLE_CALLCHAIN_EARLY = 1ULL << 63, /* non-ABI; internal use */ | 148 | __PERF_SAMPLE_CALLCHAIN_EARLY = 1ULL << 63, /* non-ABI; internal use */ |
| 148 | }; | 149 | }; |
| @@ -300,6 +301,7 @@ enum perf_event_read_format { · 151 unmodified lines | |||
| 300 | /* add: sample_stack_user */ | 301 | /* add: sample_stack_user */ |
| 301 | #define PERF_ATTR_SIZE_VER4 104 /* add: sample_regs_intr */ | 302 | #define PERF_ATTR_SIZE_VER4 104 /* add: sample_regs_intr */ |
| 302 | #define PERF_ATTR_SIZE_VER5 112 /* add: aux_watermark */ | 303 | #define PERF_ATTR_SIZE_VER5 112 /* add: aux_watermark */ |
| 304 | #define PERF_ATTR_SIZE_VER6 120 /* add: aux_sample_size */ | ||
| 303 | 305 | ||
| 304 | /* | 306 | /* |
| 305 | * Hardware event_id to monitor via a performance monitoring event: | 307 | * Hardware event_id to monitor via a performance monitoring event: |
| @@ -424,7 +426,9 @@ struct perf_event_attr { · 118 unmodified lines | |||
| 424 | */ | 426 | */ |
| 425 | __u32 aux_watermark; | 427 | __u32 aux_watermark; |
| 426 | __u16 sample_max_stack; | 428 | __u16 sample_max_stack; |
| 427 | __u16 __reserved_2; /* align to __u64 */ | 429 | __u16 __reserved_2; |
| 430 | __u32 aux_sample_size; | ||
| 431 | __u32 __reserved_3; | ||
| 428 | }; | 432 | }; |
| 429 | 433 | ||
| 430 | /* | 434 | /* |
| @@ -864,6 +868,8 @@ enum perf_event_type { · 433 unmodified lines | |||
| 864 | * { u64 abi; # enum perf_sample_regs_abi | 868 | * { u64 abi; # enum perf_sample_regs_abi |
| 865 | * u64 regs[weight(mask)]; } && PERF_SAMPLE_REGS_INTR | 869 | * u64 regs[weight(mask)]; } && PERF_SAMPLE_REGS_INTR |
| 866 | * { u64 phys_addr;} && PERF_SAMPLE_PHYS_ADDR | 870 | * { u64 phys_addr;} && PERF_SAMPLE_PHYS_ADDR |
| 871 | * { u64 size; | ||
| 872 | * char data[size]; } && PERF_SAMPLE_AUX | ||
| 867 | * }; | 873 | * }; |
| 868 | */ | 874 | */ |
| 869 | PERF_RECORD_SAMPLE = 9, | 875 | PERF_RECORD_SAMPLE = 9, |
| @@ -16,9 +16,14 @@ enum { · 15 unmodified lines | |||
| 16 | TCA_ACT_STATS, | 16 | TCA_ACT_STATS, |
| 17 | TCA_ACT_PAD, | 17 | TCA_ACT_PAD, |
| 18 | TCA_ACT_COOKIE, | 18 | TCA_ACT_COOKIE, |
| 19 | TCA_ACT_FLAGS, | ||
| 19 | __TCA_ACT_MAX | 20 | __TCA_ACT_MAX |
| 20 | }; | 21 | }; |
| 21 | 22 | ||
| 23 | #define TCA_ACT_FLAGS_NO_PERCPU_STATS 1 /* Don't use percpu allocator for | ||
| 24 | * actions stats. | ||
| 25 | */ | ||
| 26 | |||
| 22 | #define TCA_ACT_MAX __TCA_ACT_MAX | 27 | #define TCA_ACT_MAX __TCA_ACT_MAX |
| 23 | #define TCA_OLD_COMPAT (TCA_ACT_MAX+1) | 28 | #define TCA_OLD_COMPAT (TCA_ACT_MAX+1) |
| 24 | #define TCA_ACT_MAX_PRIO 32 | 29 | #define TCA_ACT_MAX_PRIO 32 |
| @@ -566,6 +571,14 @@ enum { · 541 unmodified lines | |||
| 566 | * TCA_FLOWER_KEY_ENC_OPT_GENEVE_ | 571 | * TCA_FLOWER_KEY_ENC_OPT_GENEVE_ |
| 567 | * attributes | 572 | * attributes |
| 568 | */ | 573 | */ |
| 574 | TCA_FLOWER_KEY_ENC_OPTS_VXLAN, /* Nested | ||
| 575 | * TCA_FLOWER_KEY_ENC_OPT_VXLAN_ | ||
| 576 | * attributes | ||
| 577 | */ | ||
| 578 | TCA_FLOWER_KEY_ENC_OPTS_ERSPAN, /* Nested | ||
| 579 | * TCA_FLOWER_KEY_ENC_OPT_ERSPAN_ | ||
| 580 | * attributes | ||
| 581 | */ | ||
| 569 | __TCA_FLOWER_KEY_ENC_OPTS_MAX, | 582 | __TCA_FLOWER_KEY_ENC_OPTS_MAX, |
| 570 | }; | 583 | }; |
| 571 | 584 | ||
| @@ -583,6 +596,27 @@ enum { · 11 unmodified lines | |||
| 583 | #define TCA_FLOWER_KEY_ENC_OPT_GENEVE_MAX \ | 596 | #define TCA_FLOWER_KEY_ENC_OPT_GENEVE_MAX \ |
| 584 | (__TCA_FLOWER_KEY_ENC_OPT_GENEVE_MAX - 1) | 597 | (__TCA_FLOWER_KEY_ENC_OPT_GENEVE_MAX - 1) |
| 585 | 598 | ||
| 599 | enum { | ||
| 600 | TCA_FLOWER_KEY_ENC_OPT_VXLAN_UNSPEC, | ||
| 601 | TCA_FLOWER_KEY_ENC_OPT_VXLAN_GBP, /* u32 */ | ||
| 602 | __TCA_FLOWER_KEY_ENC_OPT_VXLAN_MAX, | ||
| 603 | }; | ||
| 604 | |||
| 605 | #define TCA_FLOWER_KEY_ENC_OPT_VXLAN_MAX \ | ||
| 606 | (__TCA_FLOWER_KEY_ENC_OPT_VXLAN_MAX - 1) | ||
| 607 | |||
| 608 | enum { | ||
| 609 | TCA_FLOWER_KEY_ENC_OPT_ERSPAN_UNSPEC, | ||
| 610 | TCA_FLOWER_KEY_ENC_OPT_ERSPAN_VER, /* u8 */ | ||
| 611 | TCA_FLOWER_KEY_ENC_OPT_ERSPAN_INDEX, /* be32 */ | ||
| 612 | TCA_FLOWER_KEY_ENC_OPT_ERSPAN_DIR, /* u8 */ | ||
| 613 | TCA_FLOWER_KEY_ENC_OPT_ERSPAN_HWID, /* u8 */ | ||
| 614 | __TCA_FLOWER_KEY_ENC_OPT_ERSPAN_MAX, | ||
| 615 | }; | ||
| 616 | |||
| 617 | #define TCA_FLOWER_KEY_ENC_OPT_ERSPAN_MAX \ | ||
| 618 | (__TCA_FLOWER_KEY_ENC_OPT_ERSPAN_MAX - 1) | ||
| 619 | |||
| 586 | enum { | 620 | enum { |
| 587 | TCA_FLOWER_KEY_FLAGS_IS_FRAGMENT = (1 << 0), | 621 | TCA_FLOWER_KEY_FLAGS_IS_FRAGMENT = (1 << 0), |
| 588 | TCA_FLOWER_KEY_FLAGS_FRAG_IS_FIRST = (1 << 1), | 622 | TCA_FLOWER_KEY_FLAGS_FRAG_IS_FIRST = (1 << 1), |
| @@ -950,19 +950,25 @@ enum { · 949 unmodified lines | |||
| 950 | TCA_PIE_BETA, | 950 | TCA_PIE_BETA, |
| 951 | TCA_PIE_ECN, | 951 | TCA_PIE_ECN, |
| 952 | TCA_PIE_BYTEMODE, | 952 | TCA_PIE_BYTEMODE, |
| 953 | TCA_PIE_DQ_RATE_ESTIMATOR, | ||
| 953 | __TCA_PIE_MAX | 954 | __TCA_PIE_MAX |
| 954 | }; | 955 | }; |
| 955 | #define TCA_PIE_MAX (__TCA_PIE_MAX - 1) | 956 | #define TCA_PIE_MAX (__TCA_PIE_MAX - 1) |
| 956 | 957 | ||
| 957 | struct tc_pie_xstats { | 958 | struct tc_pie_xstats { |
| 958 | __u64 prob; /* current probability */ | 959 | __u64 prob; /* current probability */ |
| 959 | __u32 delay; /* current delay in ms */ | 960 | __u32 delay; /* current delay in ms */ |
| 960 | __u32 avg_dq_rate; /* current average dq_rate in bits/pie_time */ | 961 | __u32 avg_dq_rate; /* current average dq_rate in |
| 961 | __u32 packets_in; /* total number of packets enqueued */ | 962 | * bits/pie_time |
| 962 | __u32 dropped; /* packets dropped due to pie_action */ | 963 | */ |
| 963 | __u32 overlimit; /* dropped due to lack of space in queue */ | 964 | __u32 dq_rate_estimating; /* is avg_dq_rate being calculated? */ |
| 964 | __u32 maxq; /* maximum queue size */ | 965 | __u32 packets_in; /* total number of packets enqueued */ |
| 965 | __u32 ecn_mark; /* packets marked with ecn*/ | 966 | __u32 dropped; /* packets dropped due to pie_action */ |
| 967 | __u32 overlimit; /* dropped due to lack of space | ||
| 968 | * in queue | ||
| 969 | */ | ||
| 970 | __u32 maxq; /* maximum queue size */ | ||
| 971 | __u32 ecn_mark; /* packets marked with ecn*/ | ||
| 966 | }; | 972 | }; |
| 967 | 973 | ||
| 968 | /* CBS */ | 974 | /* CBS */ |
| @@ -104,6 +104,8 @@ struct pppol2tp_ioc_stats { · 103 unmodified lines | |||
| 104 | #define PPPIOCGDEBUG _IOR('t', 65, int) /* Read debug level */ | 104 | #define PPPIOCGDEBUG _IOR('t', 65, int) /* Read debug level */ |
| 105 | #define PPPIOCSDEBUG _IOW('t', 64, int) /* Set debug level */ | 105 | #define PPPIOCSDEBUG _IOW('t', 64, int) /* Set debug level */ |
| 106 | #define PPPIOCGIDLE _IOR('t', 63, struct ppp_idle) /* get idle time */ | 106 | #define PPPIOCGIDLE _IOR('t', 63, struct ppp_idle) /* get idle time */ |
| 107 | #define PPPIOCGIDLE32 _IOR('t', 63, struct ppp_idle32) /* 32-bit times */ | ||
| 108 | #define PPPIOCGIDLE64 _IOR('t', 63, struct ppp_idle64) /* 64-bit times */ | ||
| 107 | #define PPPIOCNEWUNIT _IOWR('t', 62, int) /* create new ppp unit */ | 109 | #define PPPIOCNEWUNIT _IOWR('t', 62, int) /* create new ppp unit */ |
| 108 | #define PPPIOCATTACH _IOW('t', 61, int) /* attach to ppp unit */ | 110 | #define PPPIOCATTACH _IOW('t', 61, int) /* attach to ppp unit */ |
| 109 | #define PPPIOCDETACH _IOW('t', 60, int) /* obsolete, do not use */ | 111 | #define PPPIOCDETACH _IOW('t', 60, int) /* obsolete, do not use */ |
| @@ -142,10 +142,24 @@ struct ppp_comp_stats { · 141 unmodified lines | |||
| 142 | /* | 142 | /* |
| 143 | * The following structure records the time in seconds since | 143 | * The following structure records the time in seconds since |
| 144 | * the last NP packet was sent or received. | 144 | * the last NP packet was sent or received. |
| 145 | * | ||
| 146 | * Linux implements both 32-bit and 64-bit time_t versions | ||
| 147 | * for compatibility with user space that defines ppp_idle | ||
| 148 | * based on the libc time_t. | ||
| 145 | */ | 149 | */ |
| 146 | struct ppp_idle { | 150 | struct ppp_idle { |
| 147 | __kernel_time_t xmit_idle; /* time since last NP packet sent */ | 151 | __kernel_old_time_t xmit_idle; /* time since last NP packet sent */ |
| 148 | __kernel_time_t recv_idle; /* time since last NP packet received */ | 152 | __kernel_old_time_t recv_idle; /* time since last NP packet received */ |
| 153 | }; | ||
| 154 | |||
| 155 | struct ppp_idle32 { | ||
| 156 | __s32 xmit_idle; /* time since last NP packet sent */ | ||
| 157 | __s32 recv_idle; /* time since last NP packet received */ | ||
| 158 | }; | ||
| 159 | |||
| 160 | struct ppp_idle64 { | ||
| 161 | __s64 xmit_idle; /* time since last NP packet sent */ | ||
| 162 | __s64 recv_idle; /* time since last NP packet received */ | ||
| 149 | }; | 163 | }; |
| 150 | 164 | ||
| 151 | #endif /* _UAPI_PPP_DEFS_H_ */ | 165 | #endif /* _UAPI_PPP_DEFS_H_ */ |
| @@ -58,6 +58,9 @@ typedef enum { · 57 unmodified lines | |||
| 58 | SEV_RET_HWSEV_RET_PLATFORM, | 58 | SEV_RET_HWSEV_RET_PLATFORM, |
| 59 | SEV_RET_HWSEV_RET_UNSAFE, | 59 | SEV_RET_HWSEV_RET_UNSAFE, |
| 60 | SEV_RET_UNSUPPORTED, | 60 | SEV_RET_UNSUPPORTED, |
| 61 | SEV_RET_INVALID_PARAM, | ||
| 62 | SEV_RET_RESOURCE_LIMIT, | ||
| 63 | SEV_RET_SECURE_DATA_INVALID, | ||
| 61 | SEV_RET_MAX, | 64 | SEV_RET_MAX, |
| 62 | } sev_ret_code; | 65 | } sev_ret_code; |
| 63 | 66 | ||
| @@ -31,13 +31,16 @@ · 30 unmodified lines | |||
| 31 | #define PTP_ENABLE_FEATURE (1<<0) | 31 | #define PTP_ENABLE_FEATURE (1<<0) |
| 32 | #define PTP_RISING_EDGE (1<<1) | 32 | #define PTP_RISING_EDGE (1<<1) |
| 33 | #define PTP_FALLING_EDGE (1<<2) | 33 | #define PTP_FALLING_EDGE (1<<2) |
| 34 | #define PTP_STRICT_FLAGS (1<<3) | ||
| 35 | #define PTP_EXTTS_EDGES (PTP_RISING_EDGE | PTP_FALLING_EDGE) | ||
| 34 | 36 | ||
| 35 | /* | 37 | /* |
| 36 | * flag fields valid for the new PTP_EXTTS_REQUEST2 ioctl. | 38 | * flag fields valid for the new PTP_EXTTS_REQUEST2 ioctl. |
| 37 | */ | 39 | */ |
| 38 | #define PTP_EXTTS_VALID_FLAGS (PTP_ENABLE_FEATURE | \ | 40 | #define PTP_EXTTS_VALID_FLAGS (PTP_ENABLE_FEATURE | \ |
| 39 | PTP_RISING_EDGE | \ | 41 | PTP_RISING_EDGE | \ |
| 40 | PTP_FALLING_EDGE) | 42 | PTP_FALLING_EDGE | \ |
| 43 | PTP_STRICT_FLAGS) | ||
| 41 | 44 | ||
| 42 | /* | 45 | /* |
| 43 | * flag fields valid for the original PTP_EXTTS_REQUEST ioctl. | 46 | * flag fields valid for the original PTP_EXTTS_REQUEST ioctl. |
| @@ -22,8 +22,8 @@ · 21 unmodified lines | |||
| 22 | #define RUSAGE_THREAD 1 /* only the calling thread */ | 22 | #define RUSAGE_THREAD 1 /* only the calling thread */ |
| 23 | 23 | ||
| 24 | struct rusage { | 24 | struct rusage { |
| 25 | struct timeval ru_utime; /* user time used */ | 25 | struct __kernel_old_timeval ru_utime; /* user time used */ |
| 26 | struct timeval ru_stime; /* system time used */ | 26 | struct __kernel_old_timeval ru_stime; /* system time used */ |
| 27 | __kernel_long_t ru_maxrss; /* maximum resident set size */ | 27 | __kernel_long_t ru_maxrss; /* maximum resident set size */ |
| 28 | __kernel_long_t ru_ixrss; /* integral shared memory size */ | 28 | __kernel_long_t ru_ixrss; /* integral shared memory size */ |
| 29 | __kernel_long_t ru_idrss; /* integral unshared data size */ | 29 | __kernel_long_t ru_idrss; /* integral unshared data size */ |
| @@ -164,6 +164,13 @@ enum { · 163 unmodified lines | |||
| 164 | RTM_GETNEXTHOP, | 164 | RTM_GETNEXTHOP, |
| 165 | #define RTM_GETNEXTHOP RTM_GETNEXTHOP | 165 | #define RTM_GETNEXTHOP RTM_GETNEXTHOP |
| 166 | 166 | ||
| 167 | RTM_NEWLINKPROP = 108, | ||
| 168 | #define RTM_NEWLINKPROP RTM_NEWLINKPROP | ||
| 169 | RTM_DELLINKPROP, | ||
| 170 | #define RTM_DELLINKPROP RTM_DELLINKPROP | ||
| 171 | RTM_GETLINKPROP, | ||
| 172 | #define RTM_GETLINKPROP RTM_GETLINKPROP | ||
| 173 | |||
| 167 | __RTM_MAX, | 174 | __RTM_MAX, |
| 168 | #define RTM_MAX (((__RTM_MAX + 3) & ~3) - 1) | 175 | #define RTM_MAX (((__RTM_MAX + 3) & ~3) - 1) |
| 169 | }; | 176 | }; |
| @@ -4,6 +4,7 @@ · 3 unmodified lines | |||
| 4 | #ifndef _UAPI_SCC_H | 4 | #ifndef _UAPI_SCC_H |
| 5 | #define _UAPI_SCC_H | 5 | #define _UAPI_SCC_H |
| 6 | 6 | ||
| 7 | #include <linux/sockios.h> | ||
| 7 | 8 | ||
| 8 | /* selection of hardware types */ | 9 | /* selection of hardware types */ |
| 9 | 10 | ||
| @@ -33,27 +33,48 @@ · 32 unmodified lines | |||
| 33 | #define CLONE_NEWNET 0x40000000 /* New network namespace */ | 33 | #define CLONE_NEWNET 0x40000000 /* New network namespace */ |
| 34 | #define CLONE_IO 0x80000000 /* Clone io context */ | 34 | #define CLONE_IO 0x80000000 /* Clone io context */ |
| 35 | 35 | ||
| 36 | /* Flags for the clone3() syscall. */ | ||
| 37 | #define CLONE_CLEAR_SIGHAND 0x100000000ULL /* Clear any signal handler and reset to SIG_DFL. */ | ||
| 38 | |||
| 36 | #ifndef __ASSEMBLY__ | 39 | #ifndef __ASSEMBLY__ |
| 37 | /** | 40 | /** |
| 38 | * struct clone_args - arguments for the clone3 syscall | 41 | * struct clone_args - arguments for the clone3 syscall |
| 39 | * @flags: Flags for the new process as listed above. | 42 | * @flags: Flags for the new process as listed above. |
| 40 | * All flags are valid except for CSIGNAL and | 43 | * All flags are valid except for CSIGNAL and |
| 41 | * CLONE_DETACHED. | 44 | * CLONE_DETACHED. |
| 42 | * @pidfd: If CLONE_PIDFD is set, a pidfd will be | 45 | * @pidfd: If CLONE_PIDFD is set, a pidfd will be |
| 43 | * returned in this argument. | 46 | * returned in this argument. |
| 44 | * @child_tid: If CLONE_CHILD_SETTID is set, the TID of the | 47 | * @child_tid: If CLONE_CHILD_SETTID is set, the TID of the |
| 45 | * child process will be returned in the child's | 48 | * child process will be returned in the child's |
| 46 | * memory. | 49 | * memory. |
| 47 | * @parent_tid: If CLONE_PARENT_SETTID is set, the TID of | 50 | * @parent_tid: If CLONE_PARENT_SETTID is set, the TID of |
| 48 | * the child process will be returned in the | 51 | * the child process will be returned in the |
| 49 | * parent's memory. | 52 | * parent's memory. |
| 50 | * @exit_signal: The exit_signal the parent process will be | 53 | * @exit_signal: The exit_signal the parent process will be |
| 51 | * sent when the child exits. | 54 | * sent when the child exits. |
| 52 | * @stack: Specify the location of the stack for the | 55 | * @stack: Specify the location of the stack for the |
| 53 | * child process. | 56 | * child process. |
| 54 | * @stack_size: The size of the stack for the child process. | 57 | * Note, @stack is expected to point to the |
| 55 | * @tls: If CLONE_SETTLS is set, the tls descriptor | 58 | * lowest address. The stack direction will be |
| 56 | * is set to tls. | 59 | * determined by the kernel and set up |
| 60 | * appropriately based on @stack_size. | ||
| 61 | * @stack_size: The size of the stack for the child process. | ||
| 62 | * @tls: If CLONE_SETTLS is set, the tls descriptor | ||
| 63 | * is set to tls. | ||
| 64 | * @set_tid: Pointer to an array of type *pid_t. The size | ||
| 65 | * of the array is defined using @set_tid_size. | ||
| 66 | * This array is used to select PIDs/TIDs for | ||
| 67 | * newly created processes. The first element in | ||
| 68 | * this defines the PID in the most nested PID | ||
| 69 | * namespace. Each additional element in the array | ||
| 70 | * defines the PID in the parent PID namespace of | ||
| 71 | * the original PID namespace. If the array has | ||
| 72 | * less entries than the number of currently | ||
| 73 | * nested PID namespaces only the PIDs in the | ||
| 74 | * corresponding namespaces are set. | ||
| 75 | * @set_tid_size: This defines the size of the array referenced | ||
| 76 | * in @set_tid. This cannot be larger than the | ||
| 77 | * kernel's limit of nested PID namespaces. | ||
| 57 | * | 78 | * |
| 58 | * The structure is versioned by size and thus extensible. | 79 | * The structure is versioned by size and thus extensible. |
| 59 | * New struct members must go at the end of the struct and | 80 | * New struct members must go at the end of the struct and |
| @@ -68,10 +89,13 @@ struct clone_args { · 8 unmodified lines | |||
| 68 | __aligned_u64 stack; | 89 | __aligned_u64 stack; |
| 69 | __aligned_u64 stack_size; | 90 | __aligned_u64 stack_size; |
| 70 | __aligned_u64 tls; | 91 | __aligned_u64 tls; |
| 92 | __aligned_u64 set_tid; | ||
| 93 | __aligned_u64 set_tid_size; | ||
| 71 | }; | 94 | }; |
| 72 | #endif | 95 | #endif |
| 73 | 96 | ||
| 74 | #define CLONE_ARGS_SIZE_VER0 64 /* sizeof first published struct */ | 97 | #define CLONE_ARGS_SIZE_VER0 64 /* sizeof first published struct */ |
| 98 | #define CLONE_ARGS_SIZE_VER1 80 /* sizeof second published struct */ | ||
| 75 | 99 | ||
| 76 | /* | 100 | /* |
| 77 | * Scheduling policies | 101 | * Scheduling policies |
| @@ -105,6 +105,7 @@ typedef __s32 sctp_assoc_t; · 104 unmodified lines | |||
| 105 | #define SCTP_DEFAULT_SNDINFO 34 | 105 | #define SCTP_DEFAULT_SNDINFO 34 |
| 106 | #define SCTP_AUTH_DEACTIVATE_KEY 35 | 106 | #define SCTP_AUTH_DEACTIVATE_KEY 35 |
| 107 | #define SCTP_REUSE_PORT 36 | 107 | #define SCTP_REUSE_PORT 36 |
| 108 | #define SCTP_PEER_ADDR_THLDS_V2 37 | ||
| 108 | 109 | ||
| 109 | /* Internal Socket Options. Some of the sctp library functions are | 110 | /* Internal Socket Options. Some of the sctp library functions are |
| 110 | * implemented using these socket options. | 111 | * implemented using these socket options. |
| @@ -137,6 +138,8 @@ typedef __s32 sctp_assoc_t; · 26 unmodified lines | |||
| 137 | #define SCTP_ASCONF_SUPPORTED 128 | 138 | #define SCTP_ASCONF_SUPPORTED 128 |
| 138 | #define SCTP_AUTH_SUPPORTED 129 | 139 | #define SCTP_AUTH_SUPPORTED 129 |
| 139 | #define SCTP_ECN_SUPPORTED 130 | 140 | #define SCTP_ECN_SUPPORTED 130 |
| 141 | #define SCTP_EXPOSE_POTENTIALLY_FAILED_STATE 131 | ||
| 142 | #define SCTP_EXPOSE_PF_STATE SCTP_EXPOSE_POTENTIALLY_FAILED_STATE | ||
| 140 | 143 | ||
| 141 | /* PR-SCTP policies */ | 144 | /* PR-SCTP policies */ |
| 142 | #define SCTP_PR_SCTP_NONE 0x0000 | 145 | #define SCTP_PR_SCTP_NONE 0x0000 |
| @@ -410,6 +413,8 @@ enum sctp_spc_state { · 267 unmodified lines | |||
| 410 | SCTP_ADDR_ADDED, | 413 | SCTP_ADDR_ADDED, |
| 411 | SCTP_ADDR_MADE_PRIM, | 414 | SCTP_ADDR_MADE_PRIM, |
| 412 | SCTP_ADDR_CONFIRMED, | 415 | SCTP_ADDR_CONFIRMED, |
| 416 | SCTP_ADDR_POTENTIALLY_FAILED, | ||
| 417 | #define SCTP_ADDR_PF SCTP_ADDR_POTENTIALLY_FAILED | ||
| 413 | }; | 418 | }; |
| 414 | 419 | ||
| 415 | 420 | ||
| @@ -449,6 +454,16 @@ struct sctp_send_failed { · 33 unmodified lines | |||
| 449 | __u8 ssf_data[0]; | 454 | __u8 ssf_data[0]; |
| 450 | }; | 455 | }; |
| 451 | 456 | ||
| 457 | struct sctp_send_failed_event { | ||
| 458 | __u16 ssf_type; | ||
| 459 | __u16 ssf_flags; | ||
| 460 | __u32 ssf_length; | ||
| 461 | __u32 ssf_error; | ||
| 462 | struct sctp_sndinfo ssfe_info; | ||
| 463 | sctp_assoc_t ssf_assoc_id; | ||
| 464 | __u8 ssf_data[0]; | ||
| 465 | }; | ||
| 466 | |||
| 452 | /* | 467 | /* |
| 453 | * ssf_flags: 16 bits (unsigned integer) | 468 | * ssf_flags: 16 bits (unsigned integer) |
| 454 | * | 469 | * |
| @@ -605,6 +620,7 @@ struct sctp_event_subscribe { · 150 unmodified lines | |||
| 605 | __u8 sctp_stream_reset_event; | 620 | __u8 sctp_stream_reset_event; |
| 606 | __u8 sctp_assoc_reset_event; | 621 | __u8 sctp_assoc_reset_event; |
| 607 | __u8 sctp_stream_change_event; | 622 | __u8 sctp_stream_change_event; |
| 623 | __u8 sctp_send_failure_event_event; | ||
| 608 | }; | 624 | }; |
| 609 | 625 | ||
| 610 | /* | 626 | /* |
| @@ -632,6 +648,7 @@ union sctp_notification { · 21 unmodified lines | |||
| 632 | struct sctp_stream_reset_event sn_strreset_event; | 648 | struct sctp_stream_reset_event sn_strreset_event; |
| 633 | struct sctp_assoc_reset_event sn_assocreset_event; | 649 | struct sctp_assoc_reset_event sn_assocreset_event; |
| 634 | struct sctp_stream_change_event sn_strchange_event; | 650 | struct sctp_stream_change_event sn_strchange_event; |
| 651 | struct sctp_send_failed_event sn_send_failed_event; | ||
| 635 | }; | 652 | }; |
| 636 | 653 | ||
| 637 | /* Section 5.3.1 | 654 | /* Section 5.3.1 |
| @@ -667,7 +684,9 @@ enum sctp_sn_type { · 29 unmodified lines | |||
| 667 | #define SCTP_ASSOC_RESET_EVENT SCTP_ASSOC_RESET_EVENT | 684 | #define SCTP_ASSOC_RESET_EVENT SCTP_ASSOC_RESET_EVENT |
| 668 | SCTP_STREAM_CHANGE_EVENT, | 685 | SCTP_STREAM_CHANGE_EVENT, |
| 669 | #define SCTP_STREAM_CHANGE_EVENT SCTP_STREAM_CHANGE_EVENT | 686 | #define SCTP_STREAM_CHANGE_EVENT SCTP_STREAM_CHANGE_EVENT |
| 670 | SCTP_SN_TYPE_MAX = SCTP_STREAM_CHANGE_EVENT, | 687 | SCTP_SEND_FAILED_EVENT, |
| 688 | #define SCTP_SEND_FAILED_EVENT SCTP_SEND_FAILED_EVENT | ||
| 689 | SCTP_SN_TYPE_MAX = SCTP_SEND_FAILED_EVENT, | ||
| 671 | #define SCTP_SN_TYPE_MAX SCTP_SN_TYPE_MAX | 690 | #define SCTP_SN_TYPE_MAX SCTP_SN_TYPE_MAX |
| 672 | }; | 691 | }; |
| 673 | 692 | ||
| @@ -919,6 +938,7 @@ struct sctp_paddrinfo { · 245 unmodified lines | |||
| 919 | enum sctp_spinfo_state { | 938 | enum sctp_spinfo_state { |
| 920 | SCTP_INACTIVE, | 939 | SCTP_INACTIVE, |
| 921 | SCTP_PF, | 940 | SCTP_PF, |
| 941 | #define SCTP_POTENTIALLY_FAILED SCTP_PF | ||
| 922 | SCTP_ACTIVE, | 942 | SCTP_ACTIVE, |
| 923 | SCTP_UNCONFIRMED, | 943 | SCTP_UNCONFIRMED, |
| 924 | SCTP_UNKNOWN = 0xffff /* Value used for transport state unknown */ | 944 | SCTP_UNKNOWN = 0xffff /* Value used for transport state unknown */ |
| @@ -1068,6 +1088,15 @@ struct sctp_paddrthlds { · 143 unmodified lines | |||
| 1068 | __u16 spt_pathpfthld; | 1088 | __u16 spt_pathpfthld; |
| 1069 | }; | 1089 | }; |
| 1070 | 1090 | ||
| 1091 | /* Use a new structure with spt_pathcpthld for back compatibility */ | ||
| 1092 | struct sctp_paddrthlds_v2 { | ||
| 1093 | sctp_assoc_t spt_assoc_id; | ||
| 1094 | struct sockaddr_storage spt_address; | ||
| 1095 | __u16 spt_pathmaxrxt; | ||
| 1096 | __u16 spt_pathpfthld; | ||
| 1097 | __u16 spt_pathcpthld; | ||
| 1098 | }; | ||
| 1099 | |||
| 1071 | /* | 1100 | /* |
| 1072 | * Socket Option for Getting the Association/Stream-Specific PR-SCTP Status | 1101 | * Socket Option for Getting the Association/Stream-Specific PR-SCTP Status |
| 1073 | */ | 1102 | */ |
| @@ -76,6 +76,35 @@ struct seccomp_notif { · 75 unmodified lines | |||
| 76 | struct seccomp_data data; | 76 | struct seccomp_data data; |
| 77 | }; | 77 | }; |
| 78 | 78 | ||
| 79 | /* | ||
| 80 | * Valid flags for struct seccomp_notif_resp | ||
| 81 | * | ||
| 82 | * Note, the SECCOMP_USER_NOTIF_FLAG_CONTINUE flag must be used with caution! | ||
| 83 | * If set by the process supervising the syscalls of another process the | ||
| 84 | * syscall will continue. This is problematic because of an inherent TOCTOU. | ||
| 85 | * An attacker can exploit the time while the supervised process is waiting on | ||
| 86 | * a response from the supervising process to rewrite syscall arguments which | ||
| 87 | * are passed as pointers of the intercepted syscall. | ||
| 88 | * It should be absolutely clear that this means that the seccomp notifier | ||
| 89 | * _cannot_ be used to implement a security policy! It should only ever be used | ||
| 90 | * in scenarios where a more privileged process supervises the syscalls of a | ||
| 91 | * lesser privileged process to get around kernel-enforced security | ||
| 92 | * restrictions when the privileged process deems this safe. In other words, | ||
| 93 | * in order to continue a syscall the supervising process should be sure that | ||
| 94 | * another security mechanism or the kernel itself will sufficiently block | ||
| 95 | * syscalls if arguments are rewritten to something unsafe. | ||
| 96 | * | ||
| 97 | * Similar precautions should be applied when stacking SECCOMP_RET_USER_NOTIF | ||
| 98 | * or SECCOMP_RET_TRACE. For SECCOMP_RET_USER_NOTIF filters acting on the | ||
| 99 | * same syscall, the most recently added filter takes precedence. This means | ||
| 100 | * that the new SECCOMP_RET_USER_NOTIF filter can override any | ||
| 101 | * SECCOMP_IOCTL_NOTIF_SEND from earlier filters, essentially allowing all | ||
| 102 | * such filtered syscalls to be executed by sending the response | ||
| 103 | * SECCOMP_USER_NOTIF_FLAG_CONTINUE. Note that SECCOMP_RET_TRACE can equally | ||
| 104 | * be overriden by SECCOMP_USER_NOTIF_FLAG_CONTINUE. | ||
| 105 | */ | ||
| 106 | #define SECCOMP_USER_NOTIF_FLAG_CONTINUE (1UL << 0) | ||
| 107 | |||
| 79 | struct seccomp_notif_resp { | 108 | struct seccomp_notif_resp { |
| 80 | __u64 id; | 109 | __u64 id; |
| 81 | __s64 val; | 110 | __s64 val; |
| @@ -113,6 +113,25 @@ struct opal_shadow_mbr { · 112 unmodified lines | |||
| 113 | __u64 size; | 113 | __u64 size; |
| 114 | }; | 114 | }; |
| 115 | 115 | ||
| 116 | /* Opal table operations */ | ||
| 117 | enum opal_table_ops { | ||
| 118 | OPAL_READ_TABLE, | ||
| 119 | OPAL_WRITE_TABLE, | ||
| 120 | }; | ||
| 121 | |||
| 122 | #define OPAL_UID_LENGTH 8 | ||
| 123 | struct opal_read_write_table { | ||
| 124 | struct opal_key key; | ||
| 125 | const __u64 data; | ||
| 126 | const __u8 table_uid[OPAL_UID_LENGTH]; | ||
| 127 | __u64 offset; | ||
| 128 | __u64 size; | ||
| 129 | #define OPAL_TABLE_READ (1 << OPAL_READ_TABLE) | ||
| 130 | #define OPAL_TABLE_WRITE (1 << OPAL_WRITE_TABLE) | ||
| 131 | __u64 flags; | ||
| 132 | __u64 priv; | ||
| 133 | }; | ||
| 134 | |||
| 116 | #define IOC_OPAL_SAVE _IOW('p', 220, struct opal_lock_unlock) | 135 | #define IOC_OPAL_SAVE _IOW('p', 220, struct opal_lock_unlock) |
| 117 | #define IOC_OPAL_LOCK_UNLOCK _IOW('p', 221, struct opal_lock_unlock) | 136 | #define IOC_OPAL_LOCK_UNLOCK _IOW('p', 221, struct opal_lock_unlock) |
| 118 | #define IOC_OPAL_TAKE_OWNERSHIP _IOW('p', 222, struct opal_key) | 137 | #define IOC_OPAL_TAKE_OWNERSHIP _IOW('p', 222, struct opal_key) |
| @@ -128,5 +147,6 @@ struct opal_shadow_mbr { · 9 unmodified lines | |||
| 128 | #define IOC_OPAL_PSID_REVERT_TPR _IOW('p', 232, struct opal_key) | 147 | #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) | 148 | #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) | 149 | #define IOC_OPAL_WRITE_SHADOW_MBR _IOW('p', 234, struct opal_shadow_mbr) |
| 150 | #define IOC_OPAL_GENERIC_TABLE_RW _IOW('p', 235, struct opal_read_write_table) | ||
| 131 | 151 | ||
| 132 | #endif /* _UAPI_SED_OPAL_H */ | 152 | #endif /* _UAPI_SED_OPAL_H */ |
| @@ -24,8 +24,8 @@ · 23 unmodified lines | |||
| 24 | /* Obsolete, used only for backwards compatibility and libc5 compiles */ | 24 | /* Obsolete, used only for backwards compatibility and libc5 compiles */ |
| 25 | struct semid_ds { | 25 | struct semid_ds { |
| 26 | struct ipc_perm sem_perm; /* permissions .. see ipc.h */ | 26 | struct ipc_perm sem_perm; /* permissions .. see ipc.h */ |
| 27 | __kernel_time_t sem_otime; /* last semop time */ | 27 | __kernel_old_time_t sem_otime; /* last semop time */ |
| 28 | __kernel_time_t sem_ctime; /* create/last semctl() time */ | 28 | __kernel_old_time_t sem_ctime; /* create/last semctl() time */ |
| 29 | struct sem *sem_base; /* ptr to first semaphore in array */ | 29 | struct sem *sem_base; /* ptr to first semaphore in array */ |
| 30 | struct sem_queue *sem_pending; /* pending operations to be processed */ | 30 | struct sem_queue *sem_pending; /* pending operations to be processed */ |
| 31 | struct sem_queue **sem_pending_last; /* last pending operation */ | 31 | struct sem_queue **sem_pending_last; /* last pending operation */ |
| @@ -290,7 +290,7 @@ · 289 unmodified lines | |||
| 290 | /* Sunix UART */ | 290 | /* Sunix UART */ |
| 291 | #define PORT_SUNIX 121 | 291 | #define PORT_SUNIX 121 |
| 292 | 292 | ||
| 293 | /* Freescale Linflex UART */ | 293 | /* Freescale LINFlexD UART */ |
| 294 | #define PORT_LINFLEXUART 122 | 294 | #define PORT_LINFLEXUART 122 |
| 295 | 295 | ||
| 296 | #endif /* _UAPILINUX_SERIAL_CORE_H */ | 296 | #endif /* _UAPILINUX_SERIAL_CORE_H */ |
| @@ -28,9 +28,9 @@ · 27 unmodified lines | |||
| 28 | struct shmid_ds { | 28 | struct shmid_ds { |
| 29 | struct ipc_perm shm_perm; /* operation perms */ | 29 | struct ipc_perm shm_perm; /* operation perms */ |
| 30 | int shm_segsz; /* size of segment (bytes) */ | 30 | int shm_segsz; /* size of segment (bytes) */ |
| 31 | __kernel_time_t shm_atime; /* last attach time */ | 31 | __kernel_old_time_t shm_atime; /* last attach time */ |
| 32 | __kernel_time_t shm_dtime; /* last detach time */ | 32 | __kernel_old_time_t shm_dtime; /* last detach time */ |
| 33 | __kernel_time_t shm_ctime; /* last change time */ | 33 | __kernel_old_time_t shm_ctime; /* last change time */ |
| 34 | __kernel_ipc_pid_t shm_cpid; /* pid of creator */ | 34 | __kernel_ipc_pid_t shm_cpid; /* pid of creator */ |
| 35 | __kernel_ipc_pid_t shm_lpid; /* pid of last operator */ | 35 | __kernel_ipc_pid_t shm_lpid; /* pid of last operator */ |
| 36 | unsigned short shm_nattch; /* no. of current attaches */ | 36 | unsigned short shm_nattch; /* no. of current attaches */ |
| @@ -323,4 +323,21 @@ enum · 322 unmodified lines | |||
| 323 | __LINUX_MIB_XFRMMAX | 323 | __LINUX_MIB_XFRMMAX |
| 324 | }; | 324 | }; |
| 325 | 325 | ||
| 326 | /* linux TLS mib definitions */ | ||
| 327 | enum | ||
| 328 | { | ||
| 329 | LINUX_MIB_TLSNUM = 0, | ||
| 330 | LINUX_MIB_TLSCURRTXSW, /* TlsCurrTxSw */ | ||
| 331 | LINUX_MIB_TLSCURRRXSW, /* TlsCurrRxSw */ | ||
| 332 | LINUX_MIB_TLSCURRTXDEVICE, /* TlsCurrTxDevice */ | ||
| 333 | LINUX_MIB_TLSCURRRXDEVICE, /* TlsCurrRxDevice */ | ||
| 334 | LINUX_MIB_TLSTXSW, /* TlsTxSw */ | ||
| 335 | LINUX_MIB_TLSRXSW, /* TlsRxSw */ | ||
| 336 | LINUX_MIB_TLSTXDEVICE, /* TlsTxDevice */ | ||
| 337 | LINUX_MIB_TLSRXDEVICE, /* TlsRxDevice */ | ||
| 338 | LINUX_MIB_TLSDECRYPTERROR, /* TlsDecryptError */ | ||
| 339 | LINUX_MIB_TLSRXDEVICERESYNC, /* TlsRxDeviceResync */ | ||
| 340 | __LINUX_MIB_TLSMAX | ||
| 341 | }; | ||
| 342 | |||
| 326 | #endif /* _LINUX_SNMP_H */ | 343 | #endif /* _LINUX_SNMP_H */ |
| @@ -167,8 +167,8 @@ struct statx { · 166 unmodified lines | |||
| 167 | #define STATX_ATTR_APPEND 0x00000020 /* [I] File is append-only */ | 167 | #define STATX_ATTR_APPEND 0x00000020 /* [I] File is append-only */ |
| 168 | #define STATX_ATTR_NODUMP 0x00000040 /* [I] File is not to be dumped */ | 168 | #define STATX_ATTR_NODUMP 0x00000040 /* [I] File is not to be dumped */ |
| 169 | #define STATX_ATTR_ENCRYPTED 0x00000800 /* [I] File requires key to decrypt in fs */ | 169 | #define STATX_ATTR_ENCRYPTED 0x00000800 /* [I] File requires key to decrypt in fs */ |
| 170 | |||
| 171 | #define STATX_ATTR_AUTOMOUNT 0x00001000 /* Dir: Automount trigger */ | 170 | #define STATX_ATTR_AUTOMOUNT 0x00001000 /* Dir: Automount trigger */ |
| 171 | #define STATX_ATTR_VERITY 0x00100000 /* [I] Verity protected file */ | ||
| 172 | 172 | ||
| 173 | 173 | ||
| 174 | #endif /* _UAPI_LINUX_STAT_H */ | 174 | #endif /* _UAPI_LINUX_STAT_H */ |
| @@ -50,6 +50,14 @@ enum { · 49 unmodified lines | |||
| 50 | * TCA_TUNNEL_KEY_ENC_OPTS_ | 50 | * TCA_TUNNEL_KEY_ENC_OPTS_ |
| 51 | * attributes | 51 | * attributes |
| 52 | */ | 52 | */ |
| 53 | TCA_TUNNEL_KEY_ENC_OPTS_VXLAN, /* Nested | ||
| 54 | * TCA_TUNNEL_KEY_ENC_OPTS_ | ||
| 55 | * attributes | ||
| 56 | */ | ||
| 57 | TCA_TUNNEL_KEY_ENC_OPTS_ERSPAN, /* Nested | ||
| 58 | * TCA_TUNNEL_KEY_ENC_OPTS_ | ||
| 59 | * attributes | ||
| 60 | */ | ||
| 53 | __TCA_TUNNEL_KEY_ENC_OPTS_MAX, | 61 | __TCA_TUNNEL_KEY_ENC_OPTS_MAX, |
| 54 | }; | 62 | }; |
| 55 | 63 | ||
| @@ -67,4 +75,25 @@ enum { · 11 unmodified lines | |||
| 67 | #define TCA_TUNNEL_KEY_ENC_OPT_GENEVE_MAX \ | 75 | #define TCA_TUNNEL_KEY_ENC_OPT_GENEVE_MAX \ |
| 68 | (__TCA_TUNNEL_KEY_ENC_OPT_GENEVE_MAX - 1) | 76 | (__TCA_TUNNEL_KEY_ENC_OPT_GENEVE_MAX - 1) |
| 69 | 77 | ||
| 78 | enum { | ||
| 79 | TCA_TUNNEL_KEY_ENC_OPT_VXLAN_UNSPEC, | ||
| 80 | TCA_TUNNEL_KEY_ENC_OPT_VXLAN_GBP, /* u32 */ | ||
| 81 | __TCA_TUNNEL_KEY_ENC_OPT_VXLAN_MAX, | ||
| 82 | }; | ||
| 83 | |||
| 84 | #define TCA_TUNNEL_KEY_ENC_OPT_VXLAN_MAX \ | ||
| 85 | (__TCA_TUNNEL_KEY_ENC_OPT_VXLAN_MAX - 1) | ||
| 86 | |||
| 87 | enum { | ||
| 88 | TCA_TUNNEL_KEY_ENC_OPT_ERSPAN_UNSPEC, | ||
| 89 | TCA_TUNNEL_KEY_ENC_OPT_ERSPAN_VER, /* u8 */ | ||
| 90 | TCA_TUNNEL_KEY_ENC_OPT_ERSPAN_INDEX, /* be32 */ | ||
| 91 | TCA_TUNNEL_KEY_ENC_OPT_ERSPAN_DIR, /* u8 */ | ||
| 92 | TCA_TUNNEL_KEY_ENC_OPT_ERSPAN_HWID, /* u8 */ | ||
| 93 | __TCA_TUNNEL_KEY_ENC_OPT_ERSPAN_MAX, | ||
| 94 | }; | ||
| 95 | |||
| 96 | #define TCA_TUNNEL_KEY_ENC_OPT_ERSPAN_MAX \ | ||
| 97 | (__TCA_TUNNEL_KEY_ENC_OPT_ERSPAN_MAX - 1) | ||
| 98 | |||
| 70 | #endif | 99 | #endif |
| @@ -155,6 +155,14 @@ enum { · 154 unmodified lines | |||
| 155 | TCP_QUEUES_NR, | 155 | TCP_QUEUES_NR, |
| 156 | }; | 156 | }; |
| 157 | 157 | ||
| 158 | /* why fastopen failed from client perspective */ | ||
| 159 | enum tcp_fastopen_client_fail { | ||
| 160 | TFO_STATUS_UNSPEC, /* catch-all */ | ||
| 161 | TFO_COOKIE_UNAVAILABLE, /* if not in TFO_CLIENT_NO_COOKIE mode */ | ||
| 162 | TFO_DATA_NOT_ACKED, /* SYN-ACK did not ack SYN data */ | ||
| 163 | TFO_SYN_RETRANSMITTED, /* SYN-ACK did not ack SYN data after timeout */ | ||
| 164 | }; | ||
| 165 | |||
| 158 | /* for TCP_INFO socket option */ | 166 | /* for TCP_INFO socket option */ |
| 159 | #define TCPI_OPT_TIMESTAMPS 1 | 167 | #define TCPI_OPT_TIMESTAMPS 1 |
| 160 | #define TCPI_OPT_SACK 2 | 168 | #define TCPI_OPT_SACK 2 |
| @@ -211,7 +219,7 @@ struct tcp_info { · 50 unmodified lines | |||
| 211 | __u8 tcpi_backoff; | 219 | __u8 tcpi_backoff; |
| 212 | __u8 tcpi_options; | 220 | __u8 tcpi_options; |
| 213 | __u8 tcpi_snd_wscale : 4, tcpi_rcv_wscale : 4; | 221 | __u8 tcpi_snd_wscale : 4, tcpi_rcv_wscale : 4; |
| 214 | __u8 tcpi_delivery_rate_app_limited:1; | 222 | __u8 tcpi_delivery_rate_app_limited:1, tcpi_fastopen_client_fail:2; |
| 215 | 223 | ||
| 216 | __u32 tcpi_rto; | 224 | __u32 tcpi_rto; |
| 217 | __u32 tcpi_ato; | 225 | __u32 tcpi_ato; |
| @@ -8,13 +8,13 @@ · 7 unmodified lines | |||
| 8 | #ifndef _STRUCT_TIMESPEC | 8 | #ifndef _STRUCT_TIMESPEC |
| 9 | #define _STRUCT_TIMESPEC | 9 | #define _STRUCT_TIMESPEC |
| 10 | struct timespec { | 10 | struct timespec { |
| 11 | __kernel_time_t tv_sec; /* seconds */ | 11 | __kernel_old_time_t tv_sec; /* seconds */ |
| 12 | long tv_nsec; /* nanoseconds */ | 12 | long tv_nsec; /* nanoseconds */ |
| 13 | }; | 13 | }; |
| 14 | #endif | 14 | #endif |
| 15 | 15 | ||
| 16 | struct timeval { | 16 | struct timeval { |
| 17 | __kernel_time_t tv_sec; /* seconds */ | 17 | __kernel_old_time_t tv_sec; /* seconds */ |
| 18 | __kernel_suseconds_t tv_usec; /* microseconds */ | 18 | __kernel_suseconds_t tv_usec; /* microseconds */ |
| 19 | }; | 19 | }; |
| 20 | 20 | ||
| @@ -28,6 +28,11 @@ struct __kernel_old_timeval { · 27 unmodified lines | |||
| 28 | }; | 28 | }; |
| 29 | #endif | 29 | #endif |
| 30 | 30 | ||
| 31 | struct __kernel_old_timespec { | ||
| 32 | __kernel_old_time_t tv_sec; /* seconds */ | ||
| 33 | long tv_nsec; /* nanoseconds */ | ||
| 34 | }; | ||
| 35 | |||
| 31 | struct __kernel_sock_timeval { | 36 | struct __kernel_sock_timeval { |
| 32 | __s64 tv_sec; | 37 | __s64 tv_sec; |
| 33 | __s64 tv_usec; | 38 | __s64 tv_usec; |
| @@ -191,6 +191,7 @@ struct sockaddr_tipc { · 190 unmodified lines | |||
| 191 | #define TIPC_GROUP_JOIN 135 /* Takes struct tipc_group_req* */ | 191 | #define TIPC_GROUP_JOIN 135 /* Takes struct tipc_group_req* */ |
| 192 | #define TIPC_GROUP_LEAVE 136 /* No argument */ | 192 | #define TIPC_GROUP_LEAVE 136 /* No argument */ |
| 193 | #define TIPC_SOCK_RECVQ_USED 137 /* Default: none (read only) */ | 193 | #define TIPC_SOCK_RECVQ_USED 137 /* Default: none (read only) */ |
| 194 | #define TIPC_NODELAY 138 /* Default: false */ | ||
| 194 | 195 | ||
| 195 | /* | 196 | /* |
| 196 | * Flag values | 197 | * Flag values |
| @@ -232,6 +233,27 @@ struct tipc_sioc_nodeid_req { · 35 unmodified lines | |||
| 232 | char node_id[TIPC_NODEID_LEN]; | 233 | char node_id[TIPC_NODEID_LEN]; |
| 233 | }; | 234 | }; |
| 234 | 235 | ||
| 236 | /* | ||
| 237 | * TIPC Crypto, AEAD | ||
| 238 | */ | ||
| 239 | #define TIPC_AEAD_ALG_NAME (32) | ||
| 240 | |||
| 241 | struct tipc_aead_key { | ||
| 242 | char alg_name[TIPC_AEAD_ALG_NAME]; | ||
| 243 | unsigned int keylen; /* in bytes */ | ||
| 244 | char key[]; | ||
| 245 | }; | ||
| 246 | |||
| 247 | #define TIPC_AEAD_KEYLEN_MIN (16 + 4) | ||
| 248 | #define TIPC_AEAD_KEYLEN_MAX (32 + 4) | ||
| 249 | #define TIPC_AEAD_KEY_SIZE_MAX (sizeof(struct tipc_aead_key) + \ | ||
| 250 | TIPC_AEAD_KEYLEN_MAX) | ||
| 251 | |||
| 252 | static inline int tipc_aead_key_size(struct tipc_aead_key *key) | ||
| 253 | { | ||
| 254 | return sizeof(*key) + key->keylen; | ||
| 255 | } | ||
| 256 | |||
| 235 | /* The macros and functions below are deprecated: | 257 | /* The macros and functions below are deprecated: |
| 236 | */ | 258 | */ |
| 237 | 259 | ||
| @@ -309,7 +309,7 @@ static inline int TLV_SET(void *tlv, __u16 type, void *data, __u16 len) · 308 unmodified lines | |||
| 309 | tlv_ptr->tlv_len = htons(tlv_len); | 309 | tlv_ptr->tlv_len = htons(tlv_len); |
| 310 | if (len && data) { | 310 | if (len && data) { |
| 311 | memcpy(TLV_DATA(tlv_ptr), data, len); | 311 | memcpy(TLV_DATA(tlv_ptr), data, len); |
| 312 | memset(TLV_DATA(tlv_ptr) + len, 0, TLV_SPACE(len) - tlv_len); | 312 | memset((char *)TLV_DATA(tlv_ptr) + len, 0, TLV_SPACE(len) - tlv_len); |
| 313 | } | 313 | } |
| 314 | return TLV_SPACE(len); | 314 | return TLV_SPACE(len); |
| 315 | } | 315 | } |
| @@ -409,7 +409,7 @@ static inline int TCM_SET(void *msg, __u16 cmd, __u16 flags, · 93 unmodified lines | |||
| 409 | tcm_hdr->tcm_flags = htons(flags); | 409 | tcm_hdr->tcm_flags = htons(flags); |
| 410 | if (data_len && data) { | 410 | if (data_len && data) { |
| 411 | memcpy(TCM_DATA(msg), data, data_len); | 411 | memcpy(TCM_DATA(msg), data, data_len); |
| 412 | memset(TCM_DATA(msg) + data_len, 0, TCM_SPACE(data_len) - msg_len); | 412 | memset((char *)TCM_DATA(msg) + data_len, 0, TCM_SPACE(data_len) - msg_len); |
| 413 | } | 413 | } |
| 414 | return TCM_SPACE(data_len); | 414 | return TCM_SPACE(data_len); |
| 415 | } | 415 | } |
| @@ -63,6 +63,8 @@ enum { · 62 unmodified lines | |||
| 63 | TIPC_NL_PEER_REMOVE, | 63 | TIPC_NL_PEER_REMOVE, |
| 64 | TIPC_NL_BEARER_ADD, | 64 | TIPC_NL_BEARER_ADD, |
| 65 | TIPC_NL_UDP_GET_REMOTEIP, | 65 | TIPC_NL_UDP_GET_REMOTEIP, |
| 66 | TIPC_NL_KEY_SET, | ||
| 67 | TIPC_NL_KEY_FLUSH, | ||
| 66 | 68 | ||
| 67 | __TIPC_NL_CMD_MAX, | 69 | __TIPC_NL_CMD_MAX, |
| 68 | TIPC_NL_CMD_MAX = __TIPC_NL_CMD_MAX - 1 | 70 | TIPC_NL_CMD_MAX = __TIPC_NL_CMD_MAX - 1 |
| @@ -160,6 +162,8 @@ enum { · 91 unmodified lines | |||
| 160 | TIPC_NLA_NODE_UNSPEC, | 162 | TIPC_NLA_NODE_UNSPEC, |
| 161 | TIPC_NLA_NODE_ADDR, /* u32 */ | 163 | TIPC_NLA_NODE_ADDR, /* u32 */ |
| 162 | TIPC_NLA_NODE_UP, /* flag */ | 164 | TIPC_NLA_NODE_UP, /* flag */ |
| 165 | TIPC_NLA_NODE_ID, /* data */ | ||
| 166 | TIPC_NLA_NODE_KEY, /* data */ | ||
| 163 | 167 | ||
| 164 | __TIPC_NLA_NODE_MAX, | 168 | __TIPC_NLA_NODE_MAX, |
| 165 | TIPC_NLA_NODE_MAX = __TIPC_NLA_NODE_MAX - 1 | 169 | TIPC_NLA_NODE_MAX = __TIPC_NLA_NODE_MAX - 1 |
| @@ -5,8 +5,8 @@ · 4 unmodified lines | |||
| 5 | #include <linux/types.h> | 5 | #include <linux/types.h> |
| 6 | 6 | ||
| 7 | struct utimbuf { | 7 | struct utimbuf { |
| 8 | __kernel_time_t actime; | 8 | __kernel_old_time_t actime; |
| 9 | __kernel_time_t modtime; | 9 | __kernel_old_time_t modtime; |
| 10 | }; | 10 | }; |
| 11 | 11 | ||
| 12 | #endif | 12 | #endif |
| @@ -1034,6 +1034,7 @@ enum v4l2_jpeg_chroma_subsampling { · 1033 unmodified lines | |||
| 1034 | #define V4L2_CID_TEST_PATTERN_GREENR (V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 5) | 1034 | #define V4L2_CID_TEST_PATTERN_GREENR (V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 5) |
| 1035 | #define V4L2_CID_TEST_PATTERN_BLUE (V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 6) | 1035 | #define V4L2_CID_TEST_PATTERN_BLUE (V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 6) |
| 1036 | #define V4L2_CID_TEST_PATTERN_GREENB (V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 7) | 1036 | #define V4L2_CID_TEST_PATTERN_GREENB (V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 7) |
| 1037 | #define V4L2_CID_UNIT_CELL_SIZE (V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 8) | ||
| 1037 | 1038 | ||
| 1038 | 1039 | ||
| 1039 | /* Image processing controls */ | 1040 | /* Image processing controls */ |
| @@ -422,6 +422,11 @@ struct v4l2_fract { · 421 unmodified lines | |||
| 422 | __u32 denominator; | 422 | __u32 denominator; |
| 423 | }; | 423 | }; |
| 424 | 424 | ||
| 425 | struct v4l2_area { | ||
| 426 | __u32 width; | ||
| 427 | __u32 height; | ||
| 428 | }; | ||
| 429 | |||
| 425 | /** | 430 | /** |
| 426 | * struct v4l2_capability - Describes V4L2 device caps returned by VIDIOC_QUERYCAP | 431 | * struct v4l2_capability - Describes V4L2 device caps returned by VIDIOC_QUERYCAP |
| 427 | * | 432 | * |
| @@ -755,6 +760,7 @@ struct v4l2_pix_format { · 327 unmodified lines | |||
| 755 | #define V4L2_META_FMT_VSP1_HGT v4l2_fourcc('V', 'S', 'P', 'T') /* R-Car VSP1 2-D Histogram */ | 760 | #define V4L2_META_FMT_VSP1_HGT v4l2_fourcc('V', 'S', 'P', 'T') /* R-Car VSP1 2-D Histogram */ |
| 756 | #define V4L2_META_FMT_UVC v4l2_fourcc('U', 'V', 'C', 'H') /* UVC Payload Header metadata */ | 761 | #define V4L2_META_FMT_UVC v4l2_fourcc('U', 'V', 'C', 'H') /* UVC Payload Header metadata */ |
| 757 | #define V4L2_META_FMT_D4XX v4l2_fourcc('D', '4', 'X', 'X') /* D4XX Payload Header metadata */ | 762 | #define V4L2_META_FMT_D4XX v4l2_fourcc('D', '4', 'X', 'X') /* D4XX Payload Header metadata */ |
| 763 | #define V4L2_META_FMT_VIVID v4l2_fourcc('V', 'I', 'V', 'D') /* Vivid Metadata */ | ||
| 758 | 764 | ||
| 759 | /* priv field value to indicates that subsequent fields are valid. */ | 765 | /* priv field value to indicates that subsequent fields are valid. */ |
| 760 | #define V4L2_PIX_FMT_PRIV_MAGIC 0xfeedcafe | 766 | #define V4L2_PIX_FMT_PRIV_MAGIC 0xfeedcafe |
| @@ -915,11 +921,12 @@ struct v4l2_requestbuffers { · 154 unmodified lines | |||
| 915 | }; | 921 | }; |
| 916 | 922 | ||
| 917 | /* capabilities for struct v4l2_requestbuffers and v4l2_create_buffers */ | 923 | /* capabilities for struct v4l2_requestbuffers and v4l2_create_buffers */ |
| 918 | #define V4L2_BUF_CAP_SUPPORTS_MMAP (1 << 0) | 924 | #define V4L2_BUF_CAP_SUPPORTS_MMAP (1 << 0) |
| 919 | #define V4L2_BUF_CAP_SUPPORTS_USERPTR (1 << 1) | 925 | #define V4L2_BUF_CAP_SUPPORTS_USERPTR (1 << 1) |
| 920 | #define V4L2_BUF_CAP_SUPPORTS_DMABUF (1 << 2) | 926 | #define V4L2_BUF_CAP_SUPPORTS_DMABUF (1 << 2) |
| 921 | #define V4L2_BUF_CAP_SUPPORTS_REQUESTS (1 << 3) | 927 | #define V4L2_BUF_CAP_SUPPORTS_REQUESTS (1 << 3) |
| 922 | #define V4L2_BUF_CAP_SUPPORTS_ORPHANED_BUFS (1 << 4) | 928 | #define V4L2_BUF_CAP_SUPPORTS_ORPHANED_BUFS (1 << 4) |
| 929 | #define V4L2_BUF_CAP_SUPPORTS_M2M_HOLD_CAPTURE_BUF (1 << 5) | ||
| 923 | 930 | ||
| 924 | /** | 931 | /** |
| 925 | * struct v4l2_plane - plane info for multi-planar buffers | 932 | * struct v4l2_plane - plane info for multi-planar buffers |
| @@ -1041,6 +1048,8 @@ static inline __u64 v4l2_timeval_to_ns(const struct timeval *tv) · 115 unmodified lines | |||
| 1041 | #define V4L2_BUF_FLAG_IN_REQUEST 0x00000080 | 1048 | #define V4L2_BUF_FLAG_IN_REQUEST 0x00000080 |
| 1042 | /* timecode field is valid */ | 1049 | /* timecode field is valid */ |
| 1043 | #define V4L2_BUF_FLAG_TIMECODE 0x00000100 | 1050 | #define V4L2_BUF_FLAG_TIMECODE 0x00000100 |
| 1051 | /* Don't return the capture buffer until OUTPUT timestamp changes */ | ||
| 1052 | #define V4L2_BUF_FLAG_M2M_HOLD_CAPTURE_BUF 0x00000200 | ||
| 1044 | /* Buffer is prepared for queuing */ | 1053 | /* Buffer is prepared for queuing */ |
| 1045 | #define V4L2_BUF_FLAG_PREPARED 0x00000400 | 1054 | #define V4L2_BUF_FLAG_PREPARED 0x00000400 |
| 1046 | /* Cache handling flags */ | 1055 | /* Cache handling flags */ |
| @@ -1675,6 +1684,7 @@ struct v4l2_ext_control { · 628 unmodified lines | |||
| 1675 | __u8 __user *p_u8; | 1684 | __u8 __user *p_u8; |
| 1676 | __u16 __user *p_u16; | 1685 | __u16 __user *p_u16; |
| 1677 | __u32 __user *p_u32; | 1686 | __u32 __user *p_u32; |
| 1687 | struct v4l2_area __user *p_area; | ||
| 1678 | void __user *ptr; | 1688 | void __user *ptr; |
| 1679 | }; | 1689 | }; |
| 1680 | } __attribute__ ((packed)); | 1690 | } __attribute__ ((packed)); |
| @@ -1720,6 +1730,7 @@ enum v4l2_ctrl_type { · 39 unmodified lines | |||
| 1720 | V4L2_CTRL_TYPE_U8 = 0x0100, | 1730 | V4L2_CTRL_TYPE_U8 = 0x0100, |
| 1721 | V4L2_CTRL_TYPE_U16 = 0x0101, | 1731 | V4L2_CTRL_TYPE_U16 = 0x0101, |
| 1722 | V4L2_CTRL_TYPE_U32 = 0x0102, | 1732 | V4L2_CTRL_TYPE_U32 = 0x0102, |
| 1733 | V4L2_CTRL_TYPE_AREA = 0x0106, | ||
| 1723 | }; | 1734 | }; |
| 1724 | 1735 | ||
| 1725 | /* Used in the VIDIOC_QUERYCTRL ioctl for querying controls */ | 1736 | /* Used in the VIDIOC_QUERYCTRL ioctl for querying controls */ |
| @@ -1975,6 +1986,7 @@ struct v4l2_encoder_cmd { · 249 unmodified lines | |||
| 1975 | #define V4L2_DEC_CMD_STOP (1) | 1986 | #define V4L2_DEC_CMD_STOP (1) |
| 1976 | #define V4L2_DEC_CMD_PAUSE (2) | 1987 | #define V4L2_DEC_CMD_PAUSE (2) |
| 1977 | #define V4L2_DEC_CMD_RESUME (3) | 1988 | #define V4L2_DEC_CMD_RESUME (3) |
| 1989 | #define V4L2_DEC_CMD_FLUSH (4) | ||
| 1978 | 1990 | ||
| 1979 | /* Flags for V4L2_DEC_CMD_START */ | 1991 | /* Flags for V4L2_DEC_CMD_START */ |
| 1980 | #define V4L2_DEC_CMD_START_MUTE_AUDIO (1 << 0) | 1992 | #define V4L2_DEC_CMD_START_MUTE_AUDIO (1 << 0) |
| @@ -169,7 +169,7 @@ static inline void vring_init(struct vring *vr, unsigned int num, void *p, · 168 unmodified lines | |||
| 169 | { | 169 | { |
| 170 | vr->num = num; | 170 | vr->num = num; |
| 171 | vr->desc = p; | 171 | vr->desc = p; |
| 172 | vr->avail = p + num*sizeof(struct vring_desc); | 172 | vr->avail = (struct vring_avail *)((char *)p + num * sizeof(struct vring_desc)); |
| 173 | vr->used = (void *)(((uintptr_t)&vr->avail->ring[num] + sizeof(__virtio16) | 173 | vr->used = (void *)(((uintptr_t)&vr->avail->ring[num] + sizeof(__virtio16) |
| 174 | + align-1) & ~(align - 1)); | 174 | + align-1) & ~(align - 1)); |
| 175 | } | 175 | } |