Linux 4.14-rc2 * tag 'v4.14-rc2': (12066 commits) Linux 4.14-rc2 tpm: ibmvtpm: simplify crq initialization and document crq format tpm: replace msleep() with usleep_range() in TPM 1.2/2.0 generic drivers Documentation: tpm: add powered-while-suspended binding documentation tpm: tpm_crb: constify acpi_device_id. tpm: vtpm: constify vio_device_id security: fix description of values returned by cap_inode_need_killpriv x86/asm: Fix inline asm call constraints for Clang objtool: Handle another GCC stack pointer adjustment bug inet: fix improper empty comparison net: use inet6_rcv_saddr to compare sockets net: set tb->fast_sk_family net: orphan frags on stand-alone ptype in dev_queue_xmit_nit MAINTAINERS: update git tree locations for ieee802154 subsystem SMB3: Don't ignore O_SYNC/O_DSYNC and O_DIRECT flags SMB3: handle new statx fields arch: remove unused *_segments() macros/functions parisc: Unbreak bootloader due to gcc-7 optimizations parisc: Reintroduce option to gzip-compress the kernel apparmor: fix apparmorfs DAC access permissions ...
Showing the changes to include/uapi/linux (48 of 11102 files). Show all
Unified · Split
| @@ -28,6 +28,7 @@ · 27 unmodified lines | |||
| 28 | #define __LINUX__AIO_ABI_H | 28 | #define __LINUX__AIO_ABI_H |
| 29 | 29 | ||
| 30 | #include <linux/types.h> | 30 | #include <linux/types.h> |
| 31 | #include <linux/fs.h> | ||
| 31 | #include <asm/byteorder.h> | 32 | #include <asm/byteorder.h> |
| 32 | 33 | ||
| 33 | typedef __kernel_ulong_t aio_context_t; | 34 | typedef __kernel_ulong_t aio_context_t; |
| @@ -62,14 +63,6 @@ struct io_event { · 28 unmodified lines | |||
| 62 | __s64 res2; /* secondary result */ | 63 | __s64 res2; /* secondary result */ |
| 63 | }; | 64 | }; |
| 64 | 65 | ||
| 65 | #if defined(__BYTE_ORDER) ? __BYTE_ORDER == __LITTLE_ENDIAN : defined(__LITTLE_ENDIAN) | ||
| 66 | #define PADDED(x,y) x, y | ||
| 67 | #elif defined(__BYTE_ORDER) ? __BYTE_ORDER == __BIG_ENDIAN : defined(__BIG_ENDIAN) | ||
| 68 | #define PADDED(x,y) y, x | ||
| 69 | #else | ||
| 70 | #error edit for your odd byteorder. | ||
| 71 | #endif | ||
| 72 | |||
| 73 | /* | 66 | /* |
| 74 | * we always use a 64bit off_t when communicating | 67 | * we always use a 64bit off_t when communicating |
| 75 | * with userland. its up to libraries to do the | 68 | * with userland. its up to libraries to do the |
| @@ -79,8 +72,16 @@ struct io_event { · 3 unmodified lines | |||
| 79 | struct iocb { | 72 | struct iocb { |
| 80 | /* these are internal to the kernel/libc. */ | 73 | /* these are internal to the kernel/libc. */ |
| 81 | __u64 aio_data; /* data to be returned in event's data */ | 74 | __u64 aio_data; /* data to be returned in event's data */ |
| 82 | __u32 PADDED(aio_key, aio_rw_flags); | 75 | |
| 83 | /* the kernel sets aio_key to the req # */ | 76 | #if defined(__BYTE_ORDER) ? __BYTE_ORDER == __LITTLE_ENDIAN : defined(__LITTLE_ENDIAN) |
| 77 | __u32 aio_key; /* the kernel sets aio_key to the req # */ | ||
| 78 | __kernel_rwf_t aio_rw_flags; /* RWF_* flags */ | ||
| 79 | #elif defined(__BYTE_ORDER) ? __BYTE_ORDER == __BIG_ENDIAN : defined(__BIG_ENDIAN) | ||
| 80 | __kernel_rwf_t aio_rw_flags; /* RWF_* flags */ | ||
| 81 | __u32 aio_key; /* the kernel sets aio_key to the req # */ | ||
| 82 | #else | ||
| 83 | #error edit for your odd byteorder. | ||
| 84 | #endif | ||
| 84 | 85 | ||
| 85 | /* common fields */ | 86 | /* common fields */ |
| 86 | __u16 aio_lio_opcode; /* see IOCB_CMD_ above */ | 87 | __u16 aio_lio_opcode; /* see IOCB_CMD_ above */ |
| @@ -132,6 +132,7 @@ enum { · 131 unmodified lines | |||
| 132 | 132 | ||
| 133 | /* struct binder_fd_array_object - object describing an array of fds in a buffer | 133 | /* struct binder_fd_array_object - object describing an array of fds in a buffer |
| 134 | * @hdr: common header structure | 134 | * @hdr: common header structure |
| 135 | * @pad: padding to ensure correct alignment | ||
| 135 | * @num_fds: number of file descriptors in the buffer | 136 | * @num_fds: number of file descriptors in the buffer |
| 136 | * @parent: index in offset array to buffer holding the fd array | 137 | * @parent: index in offset array to buffer holding the fd array |
| 137 | * @parent_offset: start offset of fd array in the buffer | 138 | * @parent_offset: start offset of fd array in the buffer |
| @@ -152,6 +153,7 @@ enum { · 14 unmodified lines | |||
| 152 | */ | 153 | */ |
| 153 | struct binder_fd_array_object { | 154 | struct binder_fd_array_object { |
| 154 | struct binder_object_header hdr; | 155 | struct binder_object_header hdr; |
| 156 | __u32 pad; | ||
| 155 | binder_size_t num_fds; | 157 | binder_size_t num_fds; |
| 156 | binder_size_t parent; | 158 | binder_size_t parent; |
| 157 | binder_size_t parent_offset; | 159 | binder_size_t parent_offset; |
| @@ -184,6 +186,19 @@ struct binder_version { · 26 unmodified lines | |||
| 184 | #define BINDER_CURRENT_PROTOCOL_VERSION 8 | 186 | #define BINDER_CURRENT_PROTOCOL_VERSION 8 |
| 185 | #endif | 187 | #endif |
| 186 | 188 | ||
| 189 | /* | ||
| 190 | * Use with BINDER_GET_NODE_DEBUG_INFO, driver reads ptr, writes to all fields. | ||
| 191 | * Set ptr to NULL for the first call to get the info for the first node, and | ||
| 192 | * then repeat the call passing the previously returned value to get the next | ||
| 193 | * nodes. ptr will be 0 when there are no more nodes. | ||
| 194 | */ | ||
| 195 | struct binder_node_debug_info { | ||
| 196 | binder_uintptr_t ptr; | ||
| 197 | binder_uintptr_t cookie; | ||
| 198 | __u32 has_strong_ref; | ||
| 199 | __u32 has_weak_ref; | ||
| 200 | }; | ||
| 201 | |||
| 187 | #define BINDER_WRITE_READ _IOWR('b', 1, struct binder_write_read) | 202 | #define BINDER_WRITE_READ _IOWR('b', 1, struct binder_write_read) |
| 188 | #define BINDER_SET_IDLE_TIMEOUT _IOW('b', 3, __s64) | 203 | #define BINDER_SET_IDLE_TIMEOUT _IOW('b', 3, __s64) |
| 189 | #define BINDER_SET_MAX_THREADS _IOW('b', 5, __u32) | 204 | #define BINDER_SET_MAX_THREADS _IOW('b', 5, __u32) |
| @@ -191,6 +206,7 @@ struct binder_version { · 1 unmodified line | |||
| 191 | #define BINDER_SET_CONTEXT_MGR _IOW('b', 7, __s32) | 206 | #define BINDER_SET_CONTEXT_MGR _IOW('b', 7, __s32) |
| 192 | #define BINDER_THREAD_EXIT _IOW('b', 8, __s32) | 207 | #define BINDER_THREAD_EXIT _IOW('b', 8, __s32) |
| 193 | #define BINDER_VERSION _IOWR('b', 9, struct binder_version) | 208 | #define BINDER_VERSION _IOWR('b', 9, struct binder_version) |
| 209 | #define BINDER_GET_NODE_DEBUG_INFO _IOWR('b', 11, struct binder_node_debug_info) | ||
| 194 | 210 | ||
| 195 | /* | 211 | /* |
| 196 | * NOTE: Two special error codes you should check for when calling | 212 | * NOTE: Two special error codes you should check for when calling |
| @@ -16,7 +16,7 @@ · 15 unmodified lines | |||
| 16 | #define AUTOFS_DEVICE_NAME "autofs" | 16 | #define AUTOFS_DEVICE_NAME "autofs" |
| 17 | 17 | ||
| 18 | #define AUTOFS_DEV_IOCTL_VERSION_MAJOR 1 | 18 | #define AUTOFS_DEV_IOCTL_VERSION_MAJOR 1 |
| 19 | #define AUTOFS_DEV_IOCTL_VERSION_MINOR 0 | 19 | #define AUTOFS_DEV_IOCTL_VERSION_MINOR 1 |
| 20 | 20 | ||
| 21 | #define AUTOFS_DEV_IOCTL_SIZE sizeof(struct autofs_dev_ioctl) | 21 | #define AUTOFS_DEV_IOCTL_SIZE sizeof(struct autofs_dev_ioctl) |
| 22 | 22 | ||
| @@ -155,8 +155,6 @@ enum { · 154 unmodified lines | |||
| 155 | }; | 155 | }; |
| 156 | 156 | ||
| 157 | #define AUTOFS_IOC_EXPIRE_MULTI _IOW(AUTOFS_IOCTL, AUTOFS_IOC_EXPIRE_MULTI_CMD, int) | 157 | #define AUTOFS_IOC_EXPIRE_MULTI _IOW(AUTOFS_IOCTL, AUTOFS_IOC_EXPIRE_MULTI_CMD, int) |
| 158 | #define AUTOFS_IOC_EXPIRE_INDIRECT AUTOFS_IOC_EXPIRE_MULTI | ||
| 159 | #define AUTOFS_IOC_EXPIRE_DIRECT AUTOFS_IOC_EXPIRE_MULTI | ||
| 160 | #define AUTOFS_IOC_PROTOSUBVER _IOR(AUTOFS_IOCTL, AUTOFS_IOC_PROTOSUBVER_CMD, int) | 158 | #define AUTOFS_IOC_PROTOSUBVER _IOR(AUTOFS_IOCTL, AUTOFS_IOC_PROTOSUBVER_CMD, int) |
| 161 | #define AUTOFS_IOC_ASKUMOUNT _IOR(AUTOFS_IOCTL, AUTOFS_IOC_ASKUMOUNT_CMD, int) | 159 | #define AUTOFS_IOC_ASKUMOUNT _IOR(AUTOFS_IOCTL, AUTOFS_IOC_ASKUMOUNT_CMD, int) |
| 162 | 160 | ||
| @@ -52,6 +52,7 @@ enum blktrace_act { · 51 unmodified lines | |||
| 52 | __BLK_TA_REMAP, /* bio was remapped */ | 52 | __BLK_TA_REMAP, /* bio was remapped */ |
| 53 | __BLK_TA_ABORT, /* request aborted */ | 53 | __BLK_TA_ABORT, /* request aborted */ |
| 54 | __BLK_TA_DRV_DATA, /* driver-specific binary data */ | 54 | __BLK_TA_DRV_DATA, /* driver-specific binary data */ |
| 55 | __BLK_TA_CGROUP = 1 << 8, /* from a cgroup*/ | ||
| 55 | }; | 56 | }; |
| 56 | 57 | ||
| 57 | /* | 58 | /* |
| @@ -61,6 +62,7 @@ enum blktrace_notify { · 3 unmodified lines | |||
| 61 | __BLK_TN_PROCESS = 0, /* establish pid/name mapping */ | 62 | __BLK_TN_PROCESS = 0, /* establish pid/name mapping */ |
| 62 | __BLK_TN_TIMESTAMP, /* include system clock */ | 63 | __BLK_TN_TIMESTAMP, /* include system clock */ |
| 63 | __BLK_TN_MESSAGE, /* Character string message */ | 64 | __BLK_TN_MESSAGE, /* Character string message */ |
| 65 | __BLK_TN_CGROUP = __BLK_TA_CGROUP, /* from a cgroup */ | ||
| 64 | }; | 66 | }; |
| 65 | 67 | ||
| 66 | 68 | ||
| @@ -107,6 +109,7 @@ struct blk_io_trace { · 40 unmodified lines | |||
| 107 | __u32 cpu; /* on what cpu did it happen */ | 109 | __u32 cpu; /* on what cpu did it happen */ |
| 108 | __u16 error; /* completion error */ | 110 | __u16 error; /* completion error */ |
| 109 | __u16 pdu_len; /* length of data after this trace */ | 111 | __u16 pdu_len; /* length of data after this trace */ |
| 112 | /* cgroup id will be stored here if exists */ | ||
| 110 | }; | 113 | }; |
| 111 | 114 | ||
| 112 | /* | 115 | /* |
| @@ -30,9 +30,14 @@ · 29 unmodified lines | |||
| 30 | #define BPF_FROM_LE BPF_TO_LE | 30 | #define BPF_FROM_LE BPF_TO_LE |
| 31 | #define BPF_FROM_BE BPF_TO_BE | 31 | #define BPF_FROM_BE BPF_TO_BE |
| 32 | 32 | ||
| 33 | /* jmp encodings */ | ||
| 33 | #define BPF_JNE 0x50 /* jump != */ | 34 | #define BPF_JNE 0x50 /* jump != */ |
| 35 | #define BPF_JLT 0xa0 /* LT is unsigned, '<' */ | ||
| 36 | #define BPF_JLE 0xb0 /* LE is unsigned, '<=' */ | ||
| 34 | #define BPF_JSGT 0x60 /* SGT is signed '>', GT in x86 */ | 37 | #define BPF_JSGT 0x60 /* SGT is signed '>', GT in x86 */ |
| 35 | #define BPF_JSGE 0x70 /* SGE is signed '>=', GE in x86 */ | 38 | #define BPF_JSGE 0x70 /* SGE is signed '>=', GE in x86 */ |
| 39 | #define BPF_JSLT 0xc0 /* SLT is signed, '<' */ | ||
| 40 | #define BPF_JSLE 0xd0 /* SLE is signed, '<=' */ | ||
| 36 | #define BPF_CALL 0x80 /* function call */ | 41 | #define BPF_CALL 0x80 /* function call */ |
| 37 | #define BPF_EXIT 0x90 /* function return */ | 42 | #define BPF_EXIT 0x90 /* function return */ |
| 38 | 43 | ||
| @@ -104,6 +109,8 @@ enum bpf_map_type { · 65 unmodified lines | |||
| 104 | BPF_MAP_TYPE_LPM_TRIE, | 109 | BPF_MAP_TYPE_LPM_TRIE, |
| 105 | BPF_MAP_TYPE_ARRAY_OF_MAPS, | 110 | BPF_MAP_TYPE_ARRAY_OF_MAPS, |
| 106 | BPF_MAP_TYPE_HASH_OF_MAPS, | 111 | BPF_MAP_TYPE_HASH_OF_MAPS, |
| 112 | BPF_MAP_TYPE_DEVMAP, | ||
| 113 | BPF_MAP_TYPE_SOCKMAP, | ||
| 107 | }; | 114 | }; |
| 108 | 115 | ||
| 109 | enum bpf_prog_type { | 116 | enum bpf_prog_type { |
| @@ -121,6 +128,7 @@ enum bpf_prog_type { · 11 unmodified lines | |||
| 121 | BPF_PROG_TYPE_LWT_OUT, | 128 | BPF_PROG_TYPE_LWT_OUT, |
| 122 | BPF_PROG_TYPE_LWT_XMIT, | 129 | BPF_PROG_TYPE_LWT_XMIT, |
| 123 | BPF_PROG_TYPE_SOCK_OPS, | 130 | BPF_PROG_TYPE_SOCK_OPS, |
| 131 | BPF_PROG_TYPE_SK_SKB, | ||
| 124 | }; | 132 | }; |
| 125 | 133 | ||
| 126 | enum bpf_attach_type { | 134 | enum bpf_attach_type { |
| @@ -128,6 +136,8 @@ enum bpf_attach_type { · 1 unmodified line | |||
| 128 | BPF_CGROUP_INET_EGRESS, | 136 | BPF_CGROUP_INET_EGRESS, |
| 129 | BPF_CGROUP_INET_SOCK_CREATE, | 137 | BPF_CGROUP_INET_SOCK_CREATE, |
| 130 | BPF_CGROUP_SOCK_OPS, | 138 | BPF_CGROUP_SOCK_OPS, |
| 139 | BPF_SK_SKB_STREAM_PARSER, | ||
| 140 | BPF_SK_SKB_STREAM_VERDICT, | ||
| 131 | __MAX_BPF_ATTACH_TYPE | 141 | __MAX_BPF_ATTACH_TYPE |
| 132 | }; | 142 | }; |
| 133 | 143 | ||
| @@ -153,6 +163,7 @@ enum bpf_attach_type { · 19 unmodified lines | |||
| 153 | #define BPF_NOEXIST 1 /* create new element if it didn't exist */ | 163 | #define BPF_NOEXIST 1 /* create new element if it didn't exist */ |
| 154 | #define BPF_EXIST 2 /* update existing element */ | 164 | #define BPF_EXIST 2 /* update existing element */ |
| 155 | 165 | ||
| 166 | /* flags for BPF_MAP_CREATE command */ | ||
| 156 | #define BPF_F_NO_PREALLOC (1U << 0) | 167 | #define BPF_F_NO_PREALLOC (1U << 0) |
| 157 | /* Instead of having one common LRU list in the | 168 | /* Instead of having one common LRU list in the |
| 158 | * BPF_MAP_TYPE_LRU_[PERCPU_]HASH map, use a percpu LRU list | 169 | * BPF_MAP_TYPE_LRU_[PERCPU_]HASH map, use a percpu LRU list |
| @@ -161,6 +172,8 @@ enum bpf_attach_type { · 2 unmodified lines | |||
| 161 | * across different LRU lists. | 172 | * across different LRU lists. |
| 162 | */ | 173 | */ |
| 163 | #define BPF_F_NO_COMMON_LRU (1U << 1) | 174 | #define BPF_F_NO_COMMON_LRU (1U << 1) |
| 175 | /* Specify numa node during map creation */ | ||
| 176 | #define BPF_F_NUMA_NODE (1U << 2) | ||
| 164 | 177 | ||
| 165 | union bpf_attr { | 178 | union bpf_attr { |
| 166 | struct { /* anonymous struct used by BPF_MAP_CREATE command */ | 179 | struct { /* anonymous struct used by BPF_MAP_CREATE command */ |
| @@ -168,8 +181,13 @@ union bpf_attr { · 1 unmodified line | |||
| 168 | __u32 key_size; /* size of key in bytes */ | 181 | __u32 key_size; /* size of key in bytes */ |
| 169 | __u32 value_size; /* size of value in bytes */ | 182 | __u32 value_size; /* size of value in bytes */ |
| 170 | __u32 max_entries; /* max number of entries in a map */ | 183 | __u32 max_entries; /* max number of entries in a map */ |
| 171 | __u32 map_flags; /* prealloc or not */ | 184 | __u32 map_flags; /* BPF_MAP_CREATE related |
| 185 | * flags defined above. | ||
| 186 | */ | ||
| 172 | __u32 inner_map_fd; /* fd pointing to the inner map */ | 187 | __u32 inner_map_fd; /* fd pointing to the inner map */ |
| 188 | __u32 numa_node; /* numa node (effective only if | ||
| 189 | * BPF_F_NUMA_NODE is set). | ||
| 190 | */ | ||
| 173 | }; | 191 | }; |
| 174 | 192 | ||
| 175 | struct { /* anonymous struct used by BPF_MAP_*_ELEM commands */ | 193 | struct { /* anonymous struct used by BPF_MAP_*_ELEM commands */ |
| @@ -344,9 +362,20 @@ union bpf_attr { · 168 unmodified lines | |||
| 344 | * int bpf_redirect(ifindex, flags) | 362 | * int bpf_redirect(ifindex, flags) |
| 345 | * redirect to another netdev | 363 | * redirect to another netdev |
| 346 | * @ifindex: ifindex of the net device | 364 | * @ifindex: ifindex of the net device |
| 347 | * @flags: bit 0 - if set, redirect to ingress instead of egress | 365 | * @flags: |
| 348 | * other bits - reserved | 366 | * cls_bpf: |
| 349 | * Return: TC_ACT_REDIRECT | 367 | * bit 0 - if set, redirect to ingress instead of egress |
| 368 | * other bits - reserved | ||
| 369 | * xdp_bpf: | ||
| 370 | * all bits - reserved | ||
| 371 | * Return: cls_bpf: TC_ACT_REDIRECT on success or TC_ACT_SHOT on error | ||
| 372 | * xdp_bfp: XDP_REDIRECT on success or XDP_ABORT on error | ||
| 373 | * int bpf_redirect_map(map, key, flags) | ||
| 374 | * redirect to endpoint in map | ||
| 375 | * @map: pointer to dev map | ||
| 376 | * @key: index in map to lookup | ||
| 377 | * @flags: -- | ||
| 378 | * Return: XDP_REDIRECT on success or XDP_ABORT on error | ||
| 350 | * | 379 | * |
| 351 | * u32 bpf_get_route_realm(skb) | 380 | * u32 bpf_get_route_realm(skb) |
| 352 | * retrieve a dst's tclassid | 381 | * retrieve a dst's tclassid |
| @@ -539,6 +568,20 @@ union bpf_attr { · 186 unmodified lines | |||
| 539 | * @mode: operation mode (enum bpf_adj_room_mode) | 568 | * @mode: operation mode (enum bpf_adj_room_mode) |
| 540 | * @flags: reserved for future use | 569 | * @flags: reserved for future use |
| 541 | * Return: 0 on success or negative error code | 570 | * Return: 0 on success or negative error code |
| 571 | * | ||
| 572 | * int bpf_sk_redirect_map(map, key, flags) | ||
| 573 | * Redirect skb to a sock in map using key as a lookup key for the | ||
| 574 | * sock in map. | ||
| 575 | * @map: pointer to sockmap | ||
| 576 | * @key: key to lookup sock in map | ||
| 577 | * @flags: reserved for future use | ||
| 578 | * Return: SK_REDIRECT | ||
| 579 | * | ||
| 580 | * int bpf_sock_map_update(skops, map, key, flags) | ||
| 581 | * @skops: pointer to bpf_sock_ops | ||
| 582 | * @map: pointer to sockmap to update | ||
| 583 | * @key: key to insert/update sock in map | ||
| 584 | * @flags: same flags as map update elem | ||
| 542 | */ | 585 | */ |
| 543 | #define __BPF_FUNC_MAPPER(FN) \ | 586 | #define __BPF_FUNC_MAPPER(FN) \ |
| 544 | FN(unspec), \ | 587 | FN(unspec), \ |
| @@ -591,7 +634,10 @@ union bpf_attr { · 46 unmodified lines | |||
| 591 | FN(get_socket_uid), \ | 634 | FN(get_socket_uid), \ |
| 592 | FN(set_hash), \ | 635 | FN(set_hash), \ |
| 593 | FN(setsockopt), \ | 636 | FN(setsockopt), \ |
| 594 | FN(skb_adjust_room), | 637 | FN(skb_adjust_room), \ |
| 638 | FN(redirect_map), \ | ||
| 639 | FN(sk_redirect_map), \ | ||
| 640 | FN(sock_map_update), \ | ||
| 595 | 641 | ||
| 596 | /* integer value in 'imm' field of BPF_CALL instruction selects which helper | 642 | /* integer value in 'imm' field of BPF_CALL instruction selects which helper |
| 597 | * function eBPF program intends to call | 643 | * function eBPF program intends to call |
| @@ -668,6 +714,15 @@ struct __sk_buff { · 70 unmodified lines | |||
| 668 | __u32 data; | 714 | __u32 data; |
| 669 | __u32 data_end; | 715 | __u32 data_end; |
| 670 | __u32 napi_id; | 716 | __u32 napi_id; |
| 717 | |||
| 718 | /* accessed by BPF_PROG_TYPE_sk_skb types */ | ||
| 719 | __u32 family; | ||
| 720 | __u32 remote_ip4; /* Stored in network byte order */ | ||
| 721 | __u32 local_ip4; /* Stored in network byte order */ | ||
| 722 | __u32 remote_ip6[4]; /* Stored in network byte order */ | ||
| 723 | __u32 local_ip6[4]; /* Stored in network byte order */ | ||
| 724 | __u32 remote_port; /* Stored in network byte order */ | ||
| 725 | __u32 local_port; /* stored in host byte order */ | ||
| 671 | }; | 726 | }; |
| 672 | 727 | ||
| 673 | struct bpf_tunnel_key { | 728 | struct bpf_tunnel_key { |
| @@ -703,20 +758,23 @@ struct bpf_sock { · 29 unmodified lines | |||
| 703 | __u32 family; | 758 | __u32 family; |
| 704 | __u32 type; | 759 | __u32 type; |
| 705 | __u32 protocol; | 760 | __u32 protocol; |
| 761 | __u32 mark; | ||
| 762 | __u32 priority; | ||
| 706 | }; | 763 | }; |
| 707 | 764 | ||
| 708 | #define XDP_PACKET_HEADROOM 256 | 765 | #define XDP_PACKET_HEADROOM 256 |
| 709 | 766 | ||
| 710 | /* User return codes for XDP prog type. | 767 | /* User return codes for XDP prog type. |
| 711 | * A valid XDP program must return one of these defined values. All other | 768 | * A valid XDP program must return one of these defined values. All other |
| 712 | * return codes are reserved for future use. Unknown return codes will result | 769 | * return codes are reserved for future use. Unknown return codes will |
| 713 | * in packet drop. | 770 | * result in packet drops and a warning via bpf_warn_invalid_xdp_action(). |
| 714 | */ | 771 | */ |
| 715 | enum xdp_action { | 772 | enum xdp_action { |
| 716 | XDP_ABORTED = 0, | 773 | XDP_ABORTED = 0, |
| 717 | XDP_DROP, | 774 | XDP_DROP, |
| 718 | XDP_PASS, | 775 | XDP_PASS, |
| 719 | XDP_TX, | 776 | XDP_TX, |
| 777 | XDP_REDIRECT, | ||
| 720 | }; | 778 | }; |
| 721 | 779 | ||
| 722 | /* user accessible metadata for XDP packet hook | 780 | /* user accessible metadata for XDP packet hook |
| @@ -727,6 +785,12 @@ struct xdp_md { · 4 unmodified lines | |||
| 727 | __u32 data_end; | 785 | __u32 data_end; |
| 728 | }; | 786 | }; |
| 729 | 787 | ||
| 788 | enum sk_action { | ||
| 789 | SK_ABORTED = 0, | ||
| 790 | SK_DROP, | ||
| 791 | SK_REDIRECT, | ||
| 792 | }; | ||
| 793 | |||
| 730 | #define BPF_TAG_SIZE 8 | 794 | #define BPF_TAG_SIZE 8 |
| 731 | 795 | ||
| 732 | struct bpf_prog_info { | 796 | struct bpf_prog_info { |
| @@ -255,13 +255,7 @@ struct btrfs_ioctl_fs_info_args { · 254 unmodified lines | |||
| 255 | #define BTRFS_FEATURE_INCOMPAT_DEFAULT_SUBVOL (1ULL << 1) | 255 | #define BTRFS_FEATURE_INCOMPAT_DEFAULT_SUBVOL (1ULL << 1) |
| 256 | #define BTRFS_FEATURE_INCOMPAT_MIXED_GROUPS (1ULL << 2) | 256 | #define BTRFS_FEATURE_INCOMPAT_MIXED_GROUPS (1ULL << 2) |
| 257 | #define BTRFS_FEATURE_INCOMPAT_COMPRESS_LZO (1ULL << 3) | 257 | #define BTRFS_FEATURE_INCOMPAT_COMPRESS_LZO (1ULL << 3) |
| 258 | /* | 258 | #define BTRFS_FEATURE_INCOMPAT_COMPRESS_ZSTD (1ULL << 4) |
| 259 | * some patches floated around with a second compression method | ||
| 260 | * lets save that incompat here for when they do get in | ||
| 261 | * Note we don't actually support it, we're just reserving the | ||
| 262 | * number | ||
| 263 | */ | ||
| 264 | #define BTRFS_FEATURE_INCOMPAT_COMPRESS_LZOv2 (1ULL << 4) | ||
| 265 | 259 | ||
| 266 | /* | 260 | /* |
| 267 | * older kernels tried to do bigger metadata blocks, but the | 261 | * older kernels tried to do bigger metadata blocks, but the |
| @@ -60,9 +60,13 @@ typedef struct __user_cap_data_struct { · 59 unmodified lines | |||
| 60 | #define VFS_CAP_U32_2 2 | 60 | #define VFS_CAP_U32_2 2 |
| 61 | #define XATTR_CAPS_SZ_2 (sizeof(__le32)*(1 + 2*VFS_CAP_U32_2)) | 61 | #define XATTR_CAPS_SZ_2 (sizeof(__le32)*(1 + 2*VFS_CAP_U32_2)) |
| 62 | 62 | ||
| 63 | #define XATTR_CAPS_SZ XATTR_CAPS_SZ_2 | 63 | #define VFS_CAP_REVISION_3 0x03000000 |
| 64 | #define VFS_CAP_U32 VFS_CAP_U32_2 | 64 | #define VFS_CAP_U32_3 2 |
| 65 | #define VFS_CAP_REVISION VFS_CAP_REVISION_2 | 65 | #define XATTR_CAPS_SZ_3 (sizeof(__le32)*(2 + 2*VFS_CAP_U32_3)) |
| 66 | |||
| 67 | #define XATTR_CAPS_SZ XATTR_CAPS_SZ_3 | ||
| 68 | #define VFS_CAP_U32 VFS_CAP_U32_3 | ||
| 69 | #define VFS_CAP_REVISION VFS_CAP_REVISION_3 | ||
| 66 | 70 | ||
| 67 | struct vfs_cap_data { | 71 | struct vfs_cap_data { |
| 68 | __le32 magic_etc; /* Little endian */ | 72 | __le32 magic_etc; /* Little endian */ |
| @@ -72,6 +76,18 @@ struct vfs_cap_data { · 3 unmodified lines | |||
| 72 | } data[VFS_CAP_U32]; | 76 | } data[VFS_CAP_U32]; |
| 73 | }; | 77 | }; |
| 74 | 78 | ||
| 79 | /* | ||
| 80 | * same as vfs_cap_data but with a rootid at the end | ||
| 81 | */ | ||
| 82 | struct vfs_ns_cap_data { | ||
| 83 | __le32 magic_etc; | ||
| 84 | struct { | ||
| 85 | __le32 permitted; /* Little endian */ | ||
| 86 | __le32 inheritable; /* Little endian */ | ||
| 87 | } data[VFS_CAP_U32]; | ||
| 88 | __le32 rootid; | ||
| 89 | }; | ||
| 90 | |||
| 75 | #ifndef __KERNEL__ | 91 | #ifndef __KERNEL__ |
| 76 | 92 | ||
| 77 | /* | 93 | /* |
| @@ -226,4 +226,22 @@ enum devlink_dpipe_action_type { · 225 unmodified lines | |||
| 226 | DEVLINK_DPIPE_ACTION_TYPE_FIELD_MODIFY, | 226 | DEVLINK_DPIPE_ACTION_TYPE_FIELD_MODIFY, |
| 227 | }; | 227 | }; |
| 228 | 228 | ||
| 229 | enum devlink_dpipe_field_ethernet_id { | ||
| 230 | DEVLINK_DPIPE_FIELD_ETHERNET_DST_MAC, | ||
| 231 | }; | ||
| 232 | |||
| 233 | enum devlink_dpipe_field_ipv4_id { | ||
| 234 | DEVLINK_DPIPE_FIELD_IPV4_DST_IP, | ||
| 235 | }; | ||
| 236 | |||
| 237 | enum devlink_dpipe_field_ipv6_id { | ||
| 238 | DEVLINK_DPIPE_FIELD_IPV6_DST_IP, | ||
| 239 | }; | ||
| 240 | |||
| 241 | enum devlink_dpipe_header_id { | ||
| 242 | DEVLINK_DPIPE_HEADER_ETHERNET, | ||
| 243 | DEVLINK_DPIPE_HEADER_IPV4, | ||
| 244 | DEVLINK_DPIPE_HEADER_IPV6, | ||
| 245 | }; | ||
| 246 | |||
| 229 | #endif /* _UAPI_LINUX_DEVLINK_H_ */ | 247 | #endif /* _UAPI_LINUX_DEVLINK_H_ */ |
| @@ -10,6 +10,7 @@ · 9 unmodified lines | |||
| 10 | #define _DLM_NETLINK_H | 10 | #define _DLM_NETLINK_H |
| 11 | 11 | ||
| 12 | #include <linux/types.h> | 12 | #include <linux/types.h> |
| 13 | #include <linux/dlmconstants.h> | ||
| 13 | 14 | ||
| 14 | enum { | 15 | enum { |
| 15 | DLM_STATUS_WAITING = 1, | 16 | DLM_STATUS_WAITING = 1, |
| @@ -18,10 +18,13 @@ struct sock_extended_err { · 17 unmodified lines | |||
| 18 | #define SO_EE_ORIGIN_ICMP 2 | 18 | #define SO_EE_ORIGIN_ICMP 2 |
| 19 | #define SO_EE_ORIGIN_ICMP6 3 | 19 | #define SO_EE_ORIGIN_ICMP6 3 |
| 20 | #define SO_EE_ORIGIN_TXSTATUS 4 | 20 | #define SO_EE_ORIGIN_TXSTATUS 4 |
| 21 | #define SO_EE_ORIGIN_ZEROCOPY 5 | ||
| 21 | #define SO_EE_ORIGIN_TIMESTAMPING SO_EE_ORIGIN_TXSTATUS | 22 | #define SO_EE_ORIGIN_TIMESTAMPING SO_EE_ORIGIN_TXSTATUS |
| 22 | 23 | ||
| 23 | #define SO_EE_OFFENDER(ee) ((struct sockaddr*)((ee)+1)) | 24 | #define SO_EE_OFFENDER(ee) ((struct sockaddr*)((ee)+1)) |
| 24 | 25 | ||
| 26 | #define SO_EE_CODE_ZEROCOPY_COPIED 1 | ||
| 27 | |||
| 25 | /** | 28 | /** |
| 26 | * struct scm_timestamping - timestamps exposed through cmsg | 29 | * struct scm_timestamping - timestamps exposed through cmsg |
| 27 | * | 30 | * |
| @@ -1238,6 +1238,47 @@ struct ethtool_per_queue_op { · 1237 unmodified lines | |||
| 1238 | char data[]; | 1238 | char data[]; |
| 1239 | }; | 1239 | }; |
| 1240 | 1240 | ||
| 1241 | /** | ||
| 1242 | * struct ethtool_fecparam - Ethernet forward error correction(fec) parameters | ||
| 1243 | * @cmd: Command number = %ETHTOOL_GFECPARAM or %ETHTOOL_SFECPARAM | ||
| 1244 | * @active_fec: FEC mode which is active on porte | ||
| 1245 | * @fec: Bitmask of supported/configured FEC modes | ||
| 1246 | * @rsvd: Reserved for future extensions. i.e FEC bypass feature. | ||
| 1247 | * | ||
| 1248 | * Drivers should reject a non-zero setting of @autoneg when | ||
| 1249 | * autoneogotiation is disabled (or not supported) for the link. | ||
| 1250 | * | ||
| 1251 | */ | ||
| 1252 | struct ethtool_fecparam { | ||
| 1253 | __u32 cmd; | ||
| 1254 | /* bitmask of FEC modes */ | ||
| 1255 | __u32 active_fec; | ||
| 1256 | __u32 fec; | ||
| 1257 | __u32 reserved; | ||
| 1258 | }; | ||
| 1259 | |||
| 1260 | /** | ||
| 1261 | * enum ethtool_fec_config_bits - flags definition of ethtool_fec_configuration | ||
| 1262 | * @ETHTOOL_FEC_NONE: FEC mode configuration is not supported | ||
| 1263 | * @ETHTOOL_FEC_AUTO: Default/Best FEC mode provided by driver | ||
| 1264 | * @ETHTOOL_FEC_OFF: No FEC Mode | ||
| 1265 | * @ETHTOOL_FEC_RS: Reed-Solomon Forward Error Detection mode | ||
| 1266 | * @ETHTOOL_FEC_BASER: Base-R/Reed-Solomon Forward Error Detection mode | ||
| 1267 | */ | ||
| 1268 | enum ethtool_fec_config_bits { | ||
| 1269 | ETHTOOL_FEC_NONE_BIT, | ||
| 1270 | ETHTOOL_FEC_AUTO_BIT, | ||
| 1271 | ETHTOOL_FEC_OFF_BIT, | ||
| 1272 | ETHTOOL_FEC_RS_BIT, | ||
| 1273 | ETHTOOL_FEC_BASER_BIT, | ||
| 1274 | }; | ||
| 1275 | |||
| 1276 | #define ETHTOOL_FEC_NONE (1 << ETHTOOL_FEC_NONE_BIT) | ||
| 1277 | #define ETHTOOL_FEC_AUTO (1 << ETHTOOL_FEC_AUTO_BIT) | ||
| 1278 | #define ETHTOOL_FEC_OFF (1 << ETHTOOL_FEC_OFF_BIT) | ||
| 1279 | #define ETHTOOL_FEC_RS (1 << ETHTOOL_FEC_RS_BIT) | ||
| 1280 | #define ETHTOOL_FEC_BASER (1 << ETHTOOL_FEC_BASER_BIT) | ||
| 1281 | |||
| 1241 | /* CMDs currently supported */ | 1282 | /* CMDs currently supported */ |
| 1242 | #define ETHTOOL_GSET 0x00000001 /* DEPRECATED, Get settings. | 1283 | #define ETHTOOL_GSET 0x00000001 /* DEPRECATED, Get settings. |
| 1243 | * Please use ETHTOOL_GLINKSETTINGS | 1284 | * Please use ETHTOOL_GLINKSETTINGS |
| @@ -1330,6 +1371,8 @@ struct ethtool_per_queue_op { · 86 unmodified lines | |||
| 1330 | #define ETHTOOL_SLINKSETTINGS 0x0000004d /* Set ethtool_link_settings */ | 1371 | #define ETHTOOL_SLINKSETTINGS 0x0000004d /* Set ethtool_link_settings */ |
| 1331 | #define ETHTOOL_PHY_GTUNABLE 0x0000004e /* Get PHY tunable configuration */ | 1372 | #define ETHTOOL_PHY_GTUNABLE 0x0000004e /* Get PHY tunable configuration */ |
| 1332 | #define ETHTOOL_PHY_STUNABLE 0x0000004f /* Set PHY tunable configuration */ | 1373 | #define ETHTOOL_PHY_STUNABLE 0x0000004f /* Set PHY tunable configuration */ |
| 1374 | #define ETHTOOL_GFECPARAM 0x00000050 /* Get FEC settings */ | ||
| 1375 | #define ETHTOOL_SFECPARAM 0x00000051 /* Set FEC settings */ | ||
| 1333 | 1376 | ||
| 1334 | /* compatibility with older code */ | 1377 | /* compatibility with older code */ |
| 1335 | #define SPARC_ETH_GSET ETHTOOL_GSET | 1378 | #define SPARC_ETH_GSET ETHTOOL_GSET |
| @@ -1387,6 +1430,9 @@ enum ethtool_link_mode_bit_indices { · 51 unmodified lines | |||
| 1387 | ETHTOOL_LINK_MODE_2500baseT_Full_BIT = 47, | 1430 | ETHTOOL_LINK_MODE_2500baseT_Full_BIT = 47, |
| 1388 | ETHTOOL_LINK_MODE_5000baseT_Full_BIT = 48, | 1431 | ETHTOOL_LINK_MODE_5000baseT_Full_BIT = 48, |
| 1389 | 1432 | ||
| 1433 | ETHTOOL_LINK_MODE_FEC_NONE_BIT = 49, | ||
| 1434 | ETHTOOL_LINK_MODE_FEC_RS_BIT = 50, | ||
| 1435 | ETHTOOL_LINK_MODE_FEC_BASER_BIT = 51, | ||
| 1390 | 1436 | ||
| 1391 | /* Last allowed bit for __ETHTOOL_LINK_MODE_LEGACY_MASK is bit | 1437 | /* Last allowed bit for __ETHTOOL_LINK_MODE_LEGACY_MASK is bit |
| 1392 | * 31. Please do NOT define any SUPPORTED_* or ADVERTISED_* | 1438 | * 31. Please do NOT define any SUPPORTED_* or ADVERTISED_* |
| @@ -1395,7 +1441,7 @@ enum ethtool_link_mode_bit_indices { · 2 unmodified lines | |||
| 1395 | */ | 1441 | */ |
| 1396 | 1442 | ||
| 1397 | __ETHTOOL_LINK_MODE_LAST | 1443 | __ETHTOOL_LINK_MODE_LAST |
| 1398 | = ETHTOOL_LINK_MODE_5000baseT_Full_BIT, | 1444 | = ETHTOOL_LINK_MODE_FEC_BASER_BIT, |
| 1399 | }; | 1445 | }; |
| 1400 | 1446 | ||
| 1401 | #define __ETHTOOL_LINK_MODE_LEGACY_MASK(base_name) \ | 1447 | #define __ETHTOOL_LINK_MODE_LEGACY_MASK(base_name) \ |
| @@ -1707,6 +1753,8 @@ enum ethtool_reset_flags { · 305 unmodified lines | |||
| 1707 | * %ethtool_link_mode_bit_indices for the link modes, and other | 1753 | * %ethtool_link_mode_bit_indices for the link modes, and other |
| 1708 | * link features that the link partner advertised through | 1754 | * link features that the link partner advertised through |
| 1709 | * autonegotiation; 0 if unknown or not applicable. Read-only. | 1755 | * autonegotiation; 0 if unknown or not applicable. Read-only. |
| 1756 | * @transceiver: Used to distinguish different possible PHY types, | ||
| 1757 | * reported consistently by PHYLIB. Read-only. | ||
| 1710 | * | 1758 | * |
| 1711 | * If autonegotiation is disabled, the speed and @duplex represent the | 1759 | * If autonegotiation is disabled, the speed and @duplex represent the |
| 1712 | * fixed link mode and are writable if the driver supports multiple | 1760 | * fixed link mode and are writable if the driver supports multiple |
| @@ -1758,7 +1806,9 @@ struct ethtool_link_settings { · 45 unmodified lines | |||
| 1758 | __u8 eth_tp_mdix; | 1806 | __u8 eth_tp_mdix; |
| 1759 | __u8 eth_tp_mdix_ctrl; | 1807 | __u8 eth_tp_mdix_ctrl; |
| 1760 | __s8 link_mode_masks_nwords; | 1808 | __s8 link_mode_masks_nwords; |
| 1761 | __u32 reserved[8]; | 1809 | __u8 transceiver; |
| 1810 | __u8 reserved1[3]; | ||
| 1811 | __u32 reserved[7]; | ||
| 1762 | __u32 link_mode_masks[0]; | 1812 | __u32 link_mode_masks[0]; |
| 1763 | /* layout of link_mode_masks fields: | 1813 | /* layout of link_mode_masks fields: |
| 1764 | * __u32 map_supported[link_mode_masks_nwords]; | 1814 | * __u32 map_supported[link_mode_masks_nwords]; |
| @@ -358,13 +358,25 @@ struct fscrypt_key { · 357 unmodified lines | |||
| 358 | #define SYNC_FILE_RANGE_WRITE 2 | 358 | #define SYNC_FILE_RANGE_WRITE 2 |
| 359 | #define SYNC_FILE_RANGE_WAIT_AFTER 4 | 359 | #define SYNC_FILE_RANGE_WAIT_AFTER 4 |
| 360 | 360 | ||
| 361 | /* flags for preadv2/pwritev2: */ | 361 | /* |
| 362 | #define RWF_HIPRI 0x00000001 /* high priority request, poll if possible */ | 362 | * Flags for preadv2/pwritev2: |
| 363 | #define RWF_DSYNC 0x00000002 /* per-IO O_DSYNC */ | 363 | */ |
| 364 | #define RWF_SYNC 0x00000004 /* per-IO O_SYNC */ | 364 | |
| 365 | #define RWF_NOWAIT 0x00000008 /* per-IO, return -EAGAIN if operation would block */ | 365 | typedef int __bitwise __kernel_rwf_t; |
| 366 | 366 | ||
| 367 | #define RWF_SUPPORTED (RWF_HIPRI | RWF_DSYNC | RWF_SYNC |\ | 367 | /* high priority request, poll if possible */ |
| 368 | RWF_NOWAIT) | 368 | #define RWF_HIPRI ((__force __kernel_rwf_t)0x00000001) |
| 369 | |||
| 370 | /* per-IO O_DSYNC */ | ||
| 371 | #define RWF_DSYNC ((__force __kernel_rwf_t)0x00000002) | ||
| 372 | |||
| 373 | /* per-IO O_SYNC */ | ||
| 374 | #define RWF_SYNC ((__force __kernel_rwf_t)0x00000004) | ||
| 375 | |||
| 376 | /* per-IO, return -EAGAIN if operation would block */ | ||
| 377 | #define RWF_NOWAIT ((__force __kernel_rwf_t)0x00000008) | ||
| 378 | |||
| 379 | /* mask of flags supported by the kernel */ | ||
| 380 | #define RWF_SUPPORTED (RWF_HIPRI | RWF_DSYNC | RWF_SYNC | RWF_NOWAIT) | ||
| 369 | 381 | ||
| 370 | #endif /* _UAPI_LINUX_FS_H */ | 382 | #endif /* _UAPI_LINUX_FS_H */ |
| @@ -96,7 +96,7 @@ fsmap_advance( · 95 unmodified lines | |||
| 96 | #define FMR_OF_EXTENT_MAP 0x4 /* segment = extent map */ | 96 | #define FMR_OF_EXTENT_MAP 0x4 /* segment = extent map */ |
| 97 | #define FMR_OF_SHARED 0x8 /* segment = shared with another file */ | 97 | #define FMR_OF_SHARED 0x8 /* segment = shared with another file */ |
| 98 | #define FMR_OF_SPECIAL_OWNER 0x10 /* owner is a special value */ | 98 | #define FMR_OF_SPECIAL_OWNER 0x10 /* owner is a special value */ |
| 99 | #define FMR_OF_LAST 0x20 /* segment is the last in the FS */ | 99 | #define FMR_OF_LAST 0x20 /* segment is the last in the dataset */ |
| 100 | 100 | ||
| 101 | /* Each FS gets to define its own special owner codes. */ | 101 | /* Each FS gets to define its own special owner codes. */ |
| 102 | #define FMR_OWNER(type, code) (((__u64)type << 32) | \ | 102 | #define FMR_OWNER(type, code) (((__u64)type << 32) | \ |
| @@ -59,6 +59,7 @@ · 58 unmodified lines | |||
| 59 | #define ARPHRD_LAPB 516 /* LAPB */ | 59 | #define ARPHRD_LAPB 516 /* LAPB */ |
| 60 | #define ARPHRD_DDCMP 517 /* Digital's DDCMP protocol */ | 60 | #define ARPHRD_DDCMP 517 /* Digital's DDCMP protocol */ |
| 61 | #define ARPHRD_RAWHDLC 518 /* Raw HDLC */ | 61 | #define ARPHRD_RAWHDLC 518 /* Raw HDLC */ |
| 62 | #define ARPHRD_RAWIP 519 /* Raw IP */ | ||
| 62 | 63 | ||
| 63 | #define ARPHRD_TUNNEL 768 /* IPIP tunnel */ | 64 | #define ARPHRD_TUNNEL 768 /* IPIP tunnel */ |
| 64 | #define ARPHRD_TUNNEL6 769 /* IP6IP6 tunnel */ | 65 | #define ARPHRD_TUNNEL6 769 /* IP6IP6 tunnel */ |
| @@ -66,6 +66,7 @@ · 65 unmodified lines | |||
| 66 | #define ETH_P_ATALK 0x809B /* Appletalk DDP */ | 66 | #define ETH_P_ATALK 0x809B /* Appletalk DDP */ |
| 67 | #define ETH_P_AARP 0x80F3 /* Appletalk AARP */ | 67 | #define ETH_P_AARP 0x80F3 /* Appletalk AARP */ |
| 68 | #define ETH_P_8021Q 0x8100 /* 802.1Q VLAN Extended Header */ | 68 | #define ETH_P_8021Q 0x8100 /* 802.1Q VLAN Extended Header */ |
| 69 | #define ETH_P_ERSPAN 0x88BE /* ERSPAN type II */ | ||
| 69 | #define ETH_P_IPX 0x8137 /* IPX over DIX */ | 70 | #define ETH_P_IPX 0x8137 /* IPX over DIX */ |
| 70 | #define ETH_P_IPV6 0x86DD /* IPv6 over bluebook */ | 71 | #define ETH_P_IPV6 0x86DD /* IPv6 over bluebook */ |
| 71 | #define ETH_P_PAUSE 0x8808 /* IEEE Pause frames. See 802.3 31B */ | 72 | #define ETH_P_PAUSE 0x8808 /* IEEE Pause frames. See 802.3 31B */ |
| @@ -98,11 +99,13 @@ · 26 unmodified lines | |||
| 98 | #define ETH_P_FIP 0x8914 /* FCoE Initialization Protocol */ | 99 | #define ETH_P_FIP 0x8914 /* FCoE Initialization Protocol */ |
| 99 | #define ETH_P_80221 0x8917 /* IEEE 802.21 Media Independent Handover Protocol */ | 100 | #define ETH_P_80221 0x8917 /* IEEE 802.21 Media Independent Handover Protocol */ |
| 100 | #define ETH_P_HSR 0x892F /* IEC 62439-3 HSRv1 */ | 101 | #define ETH_P_HSR 0x892F /* IEC 62439-3 HSRv1 */ |
| 102 | #define ETH_P_NSH 0x894F /* Network Service Header */ | ||
| 101 | #define ETH_P_LOOPBACK 0x9000 /* Ethernet loopback packet, per IEEE 802.3 */ | 103 | #define ETH_P_LOOPBACK 0x9000 /* Ethernet loopback packet, per IEEE 802.3 */ |
| 102 | #define ETH_P_QINQ1 0x9100 /* deprecated QinQ VLAN [ NOT AN OFFICIALLY REGISTERED ID ] */ | 104 | #define ETH_P_QINQ1 0x9100 /* deprecated QinQ VLAN [ NOT AN OFFICIALLY REGISTERED ID ] */ |
| 103 | #define ETH_P_QINQ2 0x9200 /* deprecated QinQ VLAN [ NOT AN OFFICIALLY REGISTERED ID ] */ | 105 | #define ETH_P_QINQ2 0x9200 /* deprecated QinQ VLAN [ NOT AN OFFICIALLY REGISTERED ID ] */ |
| 104 | #define ETH_P_QINQ3 0x9300 /* deprecated QinQ VLAN [ NOT AN OFFICIALLY REGISTERED ID ] */ | 106 | #define ETH_P_QINQ3 0x9300 /* deprecated QinQ VLAN [ NOT AN OFFICIALLY REGISTERED ID ] */ |
| 105 | #define ETH_P_EDSA 0xDADA /* Ethertype DSA [ NOT AN OFFICIALLY REGISTERED ID ] */ | 107 | #define ETH_P_EDSA 0xDADA /* Ethertype DSA [ NOT AN OFFICIALLY REGISTERED ID ] */ |
| 108 | #define ETH_P_IFE 0xED3E /* ForCES inter-FE LFB type */ | ||
| 106 | #define ETH_P_AF_IUCV 0xFBFB /* IBM af_iucv [ NOT AN OFFICIALLY REGISTERED ID ] */ | 109 | #define ETH_P_AF_IUCV 0xFBFB /* IBM af_iucv [ NOT AN OFFICIALLY REGISTERED ID ] */ |
| 107 | 110 | ||
| 108 | #define ETH_P_802_3_MIN 0x0600 /* If the value in the ethernet type is less than this value | 111 | #define ETH_P_802_3_MIN 0x0600 /* If the value in the ethernet type is less than this value |
| @@ -137,6 +140,9 @@ · 28 unmodified lines | |||
| 137 | #define ETH_P_IEEE802154 0x00F6 /* IEEE802.15.4 frame */ | 140 | #define ETH_P_IEEE802154 0x00F6 /* IEEE802.15.4 frame */ |
| 138 | #define ETH_P_CAIF 0x00F7 /* ST-Ericsson CAIF protocol */ | 141 | #define ETH_P_CAIF 0x00F7 /* ST-Ericsson CAIF protocol */ |
| 139 | #define ETH_P_XDSA 0x00F8 /* Multiplexed DSA protocol */ | 142 | #define ETH_P_XDSA 0x00F8 /* Multiplexed DSA protocol */ |
| 143 | #define ETH_P_MAP 0x00F9 /* Qualcomm multiplexing and | ||
| 144 | * aggregation protocol | ||
| 145 | */ | ||
| 140 | 146 | ||
| 141 | /* | 147 | /* |
| 142 | * This is an Ethernet frame header. | 148 | * This is an Ethernet frame header. |
| @@ -134,6 +134,7 @@ enum { · 133 unmodified lines | |||
| 134 | IFLA_GRE_COLLECT_METADATA, | 134 | IFLA_GRE_COLLECT_METADATA, |
| 135 | IFLA_GRE_IGNORE_DF, | 135 | IFLA_GRE_IGNORE_DF, |
| 136 | IFLA_GRE_FWMARK, | 136 | IFLA_GRE_FWMARK, |
| 137 | IFLA_GRE_ERSPAN_INDEX, | ||
| 137 | __IFLA_GRE_MAX, | 138 | __IFLA_GRE_MAX, |
| 138 | }; | 139 | }; |
| 139 | 140 | ||
| @@ -142,6 +142,8 @@ enum { · 141 unmodified lines | |||
| 142 | INET_DIAG_PAD, | 142 | INET_DIAG_PAD, |
| 143 | INET_DIAG_MARK, | 143 | INET_DIAG_MARK, |
| 144 | INET_DIAG_BBRINFO, | 144 | INET_DIAG_BBRINFO, |
| 145 | INET_DIAG_CLASS_ID, | ||
| 146 | INET_DIAG_MD5SIG, | ||
| 145 | __INET_DIAG_MAX, | 147 | __INET_DIAG_MAX, |
| 146 | }; | 148 | }; |
| 147 | 149 | ||
| @@ -23,15 +23,15 @@ · 22 unmodified lines | |||
| 23 | #ifndef KFD_IOCTL_H_INCLUDED | 23 | #ifndef KFD_IOCTL_H_INCLUDED |
| 24 | #define KFD_IOCTL_H_INCLUDED | 24 | #define KFD_IOCTL_H_INCLUDED |
| 25 | 25 | ||
| 26 | #include <linux/types.h> | 26 | #include <drm/drm.h> |
| 27 | #include <linux/ioctl.h> | 27 | #include <linux/ioctl.h> |
| 28 | 28 | ||
| 29 | #define KFD_IOCTL_MAJOR_VERSION 1 | 29 | #define KFD_IOCTL_MAJOR_VERSION 1 |
| 30 | #define KFD_IOCTL_MINOR_VERSION 1 | 30 | #define KFD_IOCTL_MINOR_VERSION 1 |
| 31 | 31 | ||
| 32 | struct kfd_ioctl_get_version_args { | 32 | struct kfd_ioctl_get_version_args { |
| 33 | uint32_t major_version; /* from KFD */ | 33 | __u32 major_version; /* from KFD */ |
| 34 | uint32_t minor_version; /* from KFD */ | 34 | __u32 minor_version; /* from KFD */ |
| 35 | }; | 35 | }; |
| 36 | 36 | ||
| 37 | /* For kfd_ioctl_create_queue_args.queue_type. */ | 37 | /* For kfd_ioctl_create_queue_args.queue_type. */ |
| @@ -43,36 +43,36 @@ struct kfd_ioctl_get_version_args { · 5 unmodified lines | |||
| 43 | #define KFD_MAX_QUEUE_PRIORITY 15 | 43 | #define KFD_MAX_QUEUE_PRIORITY 15 |
| 44 | 44 | ||
| 45 | struct kfd_ioctl_create_queue_args { | 45 | struct kfd_ioctl_create_queue_args { |
| 46 | uint64_t ring_base_address; /* to KFD */ | 46 | __u64 ring_base_address; /* to KFD */ |
| 47 | uint64_t write_pointer_address; /* from KFD */ | 47 | __u64 write_pointer_address; /* from KFD */ |
| 48 | uint64_t read_pointer_address; /* from KFD */ | 48 | __u64 read_pointer_address; /* from KFD */ |
| 49 | uint64_t doorbell_offset; /* from KFD */ | 49 | __u64 doorbell_offset; /* from KFD */ |
| 50 | 50 | ||
| 51 | uint32_t ring_size; /* to KFD */ | 51 | __u32 ring_size; /* to KFD */ |
| 52 | uint32_t gpu_id; /* to KFD */ | 52 | __u32 gpu_id; /* to KFD */ |
| 53 | uint32_t queue_type; /* to KFD */ | 53 | __u32 queue_type; /* to KFD */ |
| 54 | uint32_t queue_percentage; /* to KFD */ | 54 | __u32 queue_percentage; /* to KFD */ |
| 55 | uint32_t queue_priority; /* to KFD */ | 55 | __u32 queue_priority; /* to KFD */ |
| 56 | uint32_t queue_id; /* from KFD */ | 56 | __u32 queue_id; /* from KFD */ |
| 57 | 57 | ||
| 58 | uint64_t eop_buffer_address; /* to KFD */ | 58 | __u64 eop_buffer_address; /* to KFD */ |
| 59 | uint64_t eop_buffer_size; /* to KFD */ | 59 | __u64 eop_buffer_size; /* to KFD */ |
| 60 | uint64_t ctx_save_restore_address; /* to KFD */ | 60 | __u64 ctx_save_restore_address; /* to KFD */ |
| 61 | uint64_t ctx_save_restore_size; /* to KFD */ | 61 | __u64 ctx_save_restore_size; /* to KFD */ |
| 62 | }; | 62 | }; |
| 63 | 63 | ||
| 64 | struct kfd_ioctl_destroy_queue_args { | 64 | struct kfd_ioctl_destroy_queue_args { |
| 65 | uint32_t queue_id; /* to KFD */ | 65 | __u32 queue_id; /* to KFD */ |
| 66 | uint32_t pad; | 66 | __u32 pad; |
| 67 | }; | 67 | }; |
| 68 | 68 | ||
| 69 | struct kfd_ioctl_update_queue_args { | 69 | struct kfd_ioctl_update_queue_args { |
| 70 | uint64_t ring_base_address; /* to KFD */ | 70 | __u64 ring_base_address; /* to KFD */ |
| 71 | 71 | ||
| 72 | uint32_t queue_id; /* to KFD */ | 72 | __u32 queue_id; /* to KFD */ |
| 73 | uint32_t ring_size; /* to KFD */ | 73 | __u32 ring_size; /* to KFD */ |
| 74 | uint32_t queue_percentage; /* to KFD */ | 74 | __u32 queue_percentage; /* to KFD */ |
| 75 | uint32_t queue_priority; /* to KFD */ | 75 | __u32 queue_priority; /* to KFD */ |
| 76 | }; | 76 | }; |
| 77 | 77 | ||
| 78 | /* For kfd_ioctl_set_memory_policy_args.default_policy and alternate_policy */ | 78 | /* For kfd_ioctl_set_memory_policy_args.default_policy and alternate_policy */ |
| @@ -80,13 +80,13 @@ struct kfd_ioctl_update_queue_args { · 1 unmodified line | |||
| 80 | #define KFD_IOC_CACHE_POLICY_NONCOHERENT 1 | 80 | #define KFD_IOC_CACHE_POLICY_NONCOHERENT 1 |
| 81 | 81 | ||
| 82 | struct kfd_ioctl_set_memory_policy_args { | 82 | struct kfd_ioctl_set_memory_policy_args { |
| 83 | uint64_t alternate_aperture_base; /* to KFD */ | 83 | __u64 alternate_aperture_base; /* to KFD */ |
| 84 | uint64_t alternate_aperture_size; /* to KFD */ | 84 | __u64 alternate_aperture_size; /* to KFD */ |
| 85 | 85 | ||
| 86 | uint32_t gpu_id; /* to KFD */ | 86 | __u32 gpu_id; /* to KFD */ |
| 87 | uint32_t default_policy; /* to KFD */ | 87 | __u32 default_policy; /* to KFD */ |
| 88 | uint32_t alternate_policy; /* to KFD */ | 88 | __u32 alternate_policy; /* to KFD */ |
| 89 | uint32_t pad; | 89 | __u32 pad; |
| 90 | }; | 90 | }; |
| 91 | 91 | ||
| 92 | /* | 92 | /* |
| @@ -97,26 +97,26 @@ struct kfd_ioctl_set_memory_policy_args { · 4 unmodified lines | |||
| 97 | */ | 97 | */ |
| 98 | 98 | ||
| 99 | struct kfd_ioctl_get_clock_counters_args { | 99 | struct kfd_ioctl_get_clock_counters_args { |
| 100 | uint64_t gpu_clock_counter; /* from KFD */ | 100 | __u64 gpu_clock_counter; /* from KFD */ |
| 101 | uint64_t cpu_clock_counter; /* from KFD */ | 101 | __u64 cpu_clock_counter; /* from KFD */ |
| 102 | uint64_t system_clock_counter; /* from KFD */ | 102 | __u64 system_clock_counter; /* from KFD */ |
| 103 | uint64_t system_clock_freq; /* from KFD */ | 103 | __u64 system_clock_freq; /* from KFD */ |
| 104 | 104 | ||
| 105 | uint32_t gpu_id; /* to KFD */ | 105 | __u32 gpu_id; /* to KFD */ |
| 106 | uint32_t pad; | 106 | __u32 pad; |
| 107 | }; | 107 | }; |
| 108 | 108 | ||
| 109 | #define NUM_OF_SUPPORTED_GPUS 7 | 109 | #define NUM_OF_SUPPORTED_GPUS 7 |
| 110 | 110 | ||
| 111 | struct kfd_process_device_apertures { | 111 | struct kfd_process_device_apertures { |
| 112 | uint64_t lds_base; /* from KFD */ | 112 | __u64 lds_base; /* from KFD */ |
| 113 | uint64_t lds_limit; /* from KFD */ | 113 | __u64 lds_limit; /* from KFD */ |
| 114 | uint64_t scratch_base; /* from KFD */ | 114 | __u64 scratch_base; /* from KFD */ |
| 115 | uint64_t scratch_limit; /* from KFD */ | 115 | __u64 scratch_limit; /* from KFD */ |
| 116 | uint64_t gpuvm_base; /* from KFD */ | 116 | __u64 gpuvm_base; /* from KFD */ |
| 117 | uint64_t gpuvm_limit; /* from KFD */ | 117 | __u64 gpuvm_limit; /* from KFD */ |
| 118 | uint32_t gpu_id; /* from KFD */ | 118 | __u32 gpu_id; /* from KFD */ |
| 119 | uint32_t pad; | 119 | __u32 pad; |
| 120 | }; | 120 | }; |
| 121 | 121 | ||
| 122 | struct kfd_ioctl_get_process_apertures_args { | 122 | struct kfd_ioctl_get_process_apertures_args { |
| @@ -124,8 +124,8 @@ struct kfd_ioctl_get_process_apertures_args { · 1 unmodified line | |||
| 124 | process_apertures[NUM_OF_SUPPORTED_GPUS];/* from KFD */ | 124 | process_apertures[NUM_OF_SUPPORTED_GPUS];/* from KFD */ |
| 125 | 125 | ||
| 126 | /* from KFD, should be in the range [1 - NUM_OF_SUPPORTED_GPUS] */ | 126 | /* from KFD, should be in the range [1 - NUM_OF_SUPPORTED_GPUS] */ |
| 127 | uint32_t num_of_nodes; | 127 | __u32 num_of_nodes; |
| 128 | uint32_t pad; | 128 | __u32 pad; |
| 129 | }; | 129 | }; |
| 130 | 130 | ||
| 131 | #define MAX_ALLOWED_NUM_POINTS 100 | 131 | #define MAX_ALLOWED_NUM_POINTS 100 |
| @@ -133,25 +133,25 @@ struct kfd_ioctl_get_process_apertures_args { · 1 unmodified line | |||
| 133 | #define MAX_ALLOWED_WAC_BUFF_SIZE 128 | 133 | #define MAX_ALLOWED_WAC_BUFF_SIZE 128 |
| 134 | 134 | ||
| 135 | struct kfd_ioctl_dbg_register_args { | 135 | struct kfd_ioctl_dbg_register_args { |
| 136 | uint32_t gpu_id; /* to KFD */ | 136 | __u32 gpu_id; /* to KFD */ |
| 137 | uint32_t pad; | 137 | __u32 pad; |
| 138 | }; | 138 | }; |
| 139 | 139 | ||
| 140 | struct kfd_ioctl_dbg_unregister_args { | 140 | struct kfd_ioctl_dbg_unregister_args { |
| 141 | uint32_t gpu_id; /* to KFD */ | 141 | __u32 gpu_id; /* to KFD */ |
| 142 | uint32_t pad; | 142 | __u32 pad; |
| 143 | }; | 143 | }; |
| 144 | 144 | ||
| 145 | struct kfd_ioctl_dbg_address_watch_args { | 145 | struct kfd_ioctl_dbg_address_watch_args { |
| 146 | uint64_t content_ptr; /* a pointer to the actual content */ | 146 | __u64 content_ptr; /* a pointer to the actual content */ |
| 147 | uint32_t gpu_id; /* to KFD */ | 147 | __u32 gpu_id; /* to KFD */ |
| 148 | uint32_t buf_size_in_bytes; /*including gpu_id and buf_size */ | 148 | __u32 buf_size_in_bytes; /*including gpu_id and buf_size */ |
| 149 | }; | 149 | }; |
| 150 | 150 | ||
| 151 | struct kfd_ioctl_dbg_wave_control_args { | 151 | struct kfd_ioctl_dbg_wave_control_args { |
| 152 | uint64_t content_ptr; /* a pointer to the actual content */ | 152 | __u64 content_ptr; /* a pointer to the actual content */ |
| 153 | uint32_t gpu_id; /* to KFD */ | 153 | __u32 gpu_id; /* to KFD */ |
| 154 | uint32_t buf_size_in_bytes; /*including gpu_id and buf_size */ | 154 | __u32 buf_size_in_bytes; /*including gpu_id and buf_size */ |
| 155 | }; | 155 | }; |
| 156 | 156 | ||
| 157 | /* Matching HSA_EVENTTYPE */ | 157 | /* Matching HSA_EVENTTYPE */ |
| @@ -172,44 +172,44 @@ struct kfd_ioctl_dbg_wave_control_args { · 14 unmodified lines | |||
| 172 | #define KFD_SIGNAL_EVENT_LIMIT 256 | 172 | #define KFD_SIGNAL_EVENT_LIMIT 256 |
| 173 | 173 | ||
| 174 | struct kfd_ioctl_create_event_args { | 174 | struct kfd_ioctl_create_event_args { |
| 175 | uint64_t event_page_offset; /* from KFD */ | 175 | __u64 event_page_offset; /* from KFD */ |
| 176 | uint32_t event_trigger_data; /* from KFD - signal events only */ | 176 | __u32 event_trigger_data; /* from KFD - signal events only */ |
| 177 | uint32_t event_type; /* to KFD */ | 177 | __u32 event_type; /* to KFD */ |
| 178 | uint32_t auto_reset; /* to KFD */ | 178 | __u32 auto_reset; /* to KFD */ |
| 179 | uint32_t node_id; /* to KFD - only valid for certain | 179 | __u32 node_id; /* to KFD - only valid for certain |
| 180 | event types */ | 180 | event types */ |
| 181 | uint32_t event_id; /* from KFD */ | 181 | __u32 event_id; /* from KFD */ |
| 182 | uint32_t event_slot_index; /* from KFD */ | 182 | __u32 event_slot_index; /* from KFD */ |
| 183 | }; | 183 | }; |
| 184 | 184 | ||
| 185 | struct kfd_ioctl_destroy_event_args { | 185 | struct kfd_ioctl_destroy_event_args { |
| 186 | uint32_t event_id; /* to KFD */ | 186 | __u32 event_id; /* to KFD */ |
| 187 | uint32_t pad; | 187 | __u32 pad; |
| 188 | }; | 188 | }; |
| 189 | 189 | ||
| 190 | struct kfd_ioctl_set_event_args { | 190 | struct kfd_ioctl_set_event_args { |
| 191 | uint32_t event_id; /* to KFD */ | 191 | __u32 event_id; /* to KFD */ |
| 192 | uint32_t pad; | 192 | __u32 pad; |
| 193 | }; | 193 | }; |
| 194 | 194 | ||
| 195 | struct kfd_ioctl_reset_event_args { | 195 | struct kfd_ioctl_reset_event_args { |
| 196 | uint32_t event_id; /* to KFD */ | 196 | __u32 event_id; /* to KFD */ |
| 197 | uint32_t pad; | 197 | __u32 pad; |
| 198 | }; | 198 | }; |
| 199 | 199 | ||
| 200 | struct kfd_memory_exception_failure { | 200 | struct kfd_memory_exception_failure { |
| 201 | uint32_t NotPresent; /* Page not present or supervisor privilege */ | 201 | __u32 NotPresent; /* Page not present or supervisor privilege */ |
| 202 | uint32_t ReadOnly; /* Write access to a read-only page */ | 202 | __u32 ReadOnly; /* Write access to a read-only page */ |
| 203 | uint32_t NoExecute; /* Execute access to a page marked NX */ | 203 | __u32 NoExecute; /* Execute access to a page marked NX */ |
| 204 | uint32_t pad; | 204 | __u32 pad; |
| 205 | }; | 205 | }; |
| 206 | 206 | ||
| 207 | /* memory exception data*/ | 207 | /* memory exception data*/ |
| 208 | struct kfd_hsa_memory_exception_data { | 208 | struct kfd_hsa_memory_exception_data { |
| 209 | struct kfd_memory_exception_failure failure; | 209 | struct kfd_memory_exception_failure failure; |
| 210 | uint64_t va; | 210 | __u64 va; |
| 211 | uint32_t gpu_id; | 211 | __u32 gpu_id; |
| 212 | uint32_t pad; | 212 | __u32 pad; |
| 213 | }; | 213 | }; |
| 214 | 214 | ||
| 215 | /* Event data*/ | 215 | /* Event data*/ |
| @@ -217,19 +217,48 @@ struct kfd_event_data { · 1 unmodified line | |||
| 217 | union { | 217 | union { |
| 218 | struct kfd_hsa_memory_exception_data memory_exception_data; | 218 | struct kfd_hsa_memory_exception_data memory_exception_data; |
| 219 | }; /* From KFD */ | 219 | }; /* From KFD */ |
| 220 | uint64_t kfd_event_data_ext; /* pointer to an extension structure | 220 | __u64 kfd_event_data_ext; /* pointer to an extension structure |
| 221 | for future exception types */ | 221 | for future exception types */ |
| 222 | uint32_t event_id; /* to KFD */ | 222 | __u32 event_id; /* to KFD */ |
| 223 | uint32_t pad; | 223 | __u32 pad; |
| 224 | }; | 224 | }; |
| 225 | 225 | ||
| 226 | struct kfd_ioctl_wait_events_args { | 226 | struct kfd_ioctl_wait_events_args { |
| 227 | uint64_t events_ptr; /* pointed to struct | 227 | __u64 events_ptr; /* pointed to struct |
| 228 | kfd_event_data array, to KFD */ | 228 | kfd_event_data array, to KFD */ |
| 229 | uint32_t num_events; /* to KFD */ | 229 | __u32 num_events; /* to KFD */ |
| 230 | uint32_t wait_for_all; /* to KFD */ | 230 | __u32 wait_for_all; /* to KFD */ |
| 231 | uint32_t timeout; /* to KFD */ | 231 | __u32 timeout; /* to KFD */ |
| 232 | uint32_t wait_result; /* from KFD */ | 232 | __u32 wait_result; /* from KFD */ |
| 233 | }; | ||
| 234 | |||
| 235 | struct kfd_ioctl_set_scratch_backing_va_args { | ||
| 236 | uint64_t va_addr; /* to KFD */ | ||
| 237 | uint32_t gpu_id; /* to KFD */ | ||
| 238 | uint32_t pad; | ||
| 239 | }; | ||
| 240 | |||
| 241 | struct kfd_ioctl_get_tile_config_args { | ||
| 242 | /* to KFD: pointer to tile array */ | ||
| 243 | uint64_t tile_config_ptr; | ||
| 244 | /* to KFD: pointer to macro tile array */ | ||
| 245 | uint64_t macro_tile_config_ptr; | ||
| 246 | /* to KFD: array size allocated by user mode | ||
| 247 | * from KFD: array size filled by kernel | ||
| 248 | */ | ||
| 249 | uint32_t num_tile_configs; | ||
| 250 | /* to KFD: array size allocated by user mode | ||
| 251 | * from KFD: array size filled by kernel | ||
| 252 | */ | ||
| 253 | uint32_t num_macro_tile_configs; | ||
| 254 | |||
| 255 | uint32_t gpu_id; /* to KFD */ | ||
| 256 | uint32_t gb_addr_config; /* from KFD */ | ||
| 257 | uint32_t num_banks; /* from KFD */ | ||
| 258 | uint32_t num_ranks; /* from KFD */ | ||
| 259 | /* struct size can be extended later if needed | ||
| 260 | * without breaking ABI compatibility | ||
| 261 | */ | ||
| 233 | }; | 262 | }; |
| 234 | 263 | ||
| 235 | #define AMDKFD_IOCTL_BASE 'K' | 264 | #define AMDKFD_IOCTL_BASE 'K' |
| @@ -286,7 +315,13 @@ struct kfd_ioctl_wait_events_args { · 50 unmodified lines | |||
| 286 | #define AMDKFD_IOC_DBG_WAVE_CONTROL \ | 315 | #define AMDKFD_IOC_DBG_WAVE_CONTROL \ |
| 287 | AMDKFD_IOW(0x10, struct kfd_ioctl_dbg_wave_control_args) | 316 | AMDKFD_IOW(0x10, struct kfd_ioctl_dbg_wave_control_args) |
| 288 | 317 | ||
| 318 | #define AMDKFD_IOC_SET_SCRATCH_BACKING_VA \ | ||
| 319 | AMDKFD_IOWR(0x11, struct kfd_ioctl_set_scratch_backing_va_args) | ||
| 320 | |||
| 321 | #define AMDKFD_IOC_GET_TILE_CONFIG \ | ||
| 322 | AMDKFD_IOWR(0x12, struct kfd_ioctl_get_tile_config_args) | ||
| 323 | |||
| 289 | #define AMDKFD_COMMAND_START 0x01 | 324 | #define AMDKFD_COMMAND_START 0x01 |
| 290 | #define AMDKFD_COMMAND_END 0x11 | 325 | #define AMDKFD_COMMAND_END 0x13 |
| 291 | 326 | ||
| 292 | #endif | 327 | #endif |
| @@ -711,7 +711,8 @@ struct kvm_ppc_one_seg_page_size { · 710 unmodified lines | |||
| 711 | struct kvm_ppc_smmu_info { | 711 | struct kvm_ppc_smmu_info { |
| 712 | __u64 flags; | 712 | __u64 flags; |
| 713 | __u32 slb_size; | 713 | __u32 slb_size; |
| 714 | __u32 pad; | 714 | __u16 data_keys; /* # storage keys supported for data */ |
| 715 | __u16 instr_keys; /* # storage keys supported for instructions */ | ||
| 715 | struct kvm_ppc_one_seg_page_size sps[KVM_PPC_PAGE_SIZES_MAX_SZ]; | 716 | struct kvm_ppc_one_seg_page_size sps[KVM_PPC_PAGE_SIZES_MAX_SZ]; |
| 716 | }; | 717 | }; |
| 717 | 718 | ||
| @@ -22,7 +22,6 @@ enum { · 21 unmodified lines | |||
| 22 | LO_FLAGS_AUTOCLEAR = 4, | 22 | LO_FLAGS_AUTOCLEAR = 4, |
| 23 | LO_FLAGS_PARTSCAN = 8, | 23 | LO_FLAGS_PARTSCAN = 8, |
| 24 | LO_FLAGS_DIRECT_IO = 16, | 24 | LO_FLAGS_DIRECT_IO = 16, |
| 25 | LO_FLAGS_BLOCKSIZE = 32, | ||
| 26 | }; | 25 | }; |
| 27 | 26 | ||
| 28 | #include <asm/posix_types.h> /* for __kernel_old_dev_t */ | 27 | #include <asm/posix_types.h> /* for __kernel_old_dev_t */ |
| @@ -60,8 +59,6 @@ struct loop_info64 { · 31 unmodified lines | |||
| 60 | __u64 lo_init[2]; | 59 | __u64 lo_init[2]; |
| 61 | }; | 60 | }; |
| 62 | 61 | ||
| 63 | #define LO_INFO_BLOCKSIZE(l) (l)->lo_init[0] | ||
| 64 | |||
| 65 | /* | 62 | /* |
| 66 | * Loop filter types | 63 | * Loop filter types |
| 67 | */ | 64 | */ |
| @@ -91,6 +88,7 @@ struct loop_info64 { · 23 unmodified lines | |||
| 91 | #define LOOP_CHANGE_FD 0x4C06 | 88 | #define LOOP_CHANGE_FD 0x4C06 |
| 92 | #define LOOP_SET_CAPACITY 0x4C07 | 89 | #define LOOP_SET_CAPACITY 0x4C07 |
| 93 | #define LOOP_SET_DIRECT_IO 0x4C08 | 90 | #define LOOP_SET_DIRECT_IO 0x4C08 |
| 91 | #define LOOP_SET_BLOCK_SIZE 0x4C09 | ||
| 94 | 92 | ||
| 95 | /* /dev/loop-control interface */ | 93 | /* /dev/loop-control interface */ |
| 96 | #define LOOP_CTL_ADD 0x4C80 | 94 | #define LOOP_CTL_ADD 0x4C80 |
| @@ -11,6 +11,7 @@ enum lwtunnel_encap_types { · 10 unmodified lines | |||
| 11 | LWTUNNEL_ENCAP_IP6, | 11 | LWTUNNEL_ENCAP_IP6, |
| 12 | LWTUNNEL_ENCAP_SEG6, | 12 | LWTUNNEL_ENCAP_SEG6, |
| 13 | LWTUNNEL_ENCAP_BPF, | 13 | LWTUNNEL_ENCAP_BPF, |
| 14 | LWTUNNEL_ENCAP_SEG6_LOCAL, | ||
| 14 | __LWTUNNEL_ENCAP_MAX, | 15 | __LWTUNNEL_ENCAP_MAX, |
| 15 | }; | 16 | }; |
| 16 | 17 | ||
| @@ -40,14 +40,33 @@ · 39 unmodified lines | |||
| 40 | * (non-running threads are de facto in such a | 40 | * (non-running threads are de facto in such a |
| 41 | * state). This covers threads from all processes | 41 | * state). This covers threads from all processes |
| 42 | * running on the system. This command returns 0. | 42 | * running on the system. This command returns 0. |
| 43 | * @MEMBARRIER_CMD_PRIVATE_EXPEDITED: | ||
| 44 | * Execute a memory barrier on each running | ||
| 45 | * thread belonging to the same process as the current | ||
| 46 | * thread. Upon return from system call, the | ||
| 47 | * caller thread is ensured that all its running | ||
| 48 | * threads siblings have passed through a state | ||
| 49 | * where all memory accesses to user-space | ||
| 50 | * addresses match program order between entry | ||
| 51 | * to and return from the system call | ||
| 52 | * (non-running threads are de facto in such a | ||
| 53 | * state). This only covers threads from the | ||
| 54 | * same processes as the caller thread. This | ||
| 55 | * command returns 0. The "expedited" commands | ||
| 56 | * complete faster than the non-expedited ones, | ||
| 57 | * they never block, but have the downside of | ||
| 58 | * causing extra overhead. | ||
| 43 | * | 59 | * |
| 44 | * Command to be passed to the membarrier system call. The commands need to | 60 | * Command to be passed to the membarrier system call. The commands need to |
| 45 | * be a single bit each, except for MEMBARRIER_CMD_QUERY which is assigned to | 61 | * be a single bit each, except for MEMBARRIER_CMD_QUERY which is assigned to |
| 46 | * the value 0. | 62 | * the value 0. |
| 47 | */ | 63 | */ |
| 48 | enum membarrier_cmd { | 64 | enum membarrier_cmd { |
| 49 | MEMBARRIER_CMD_QUERY = 0, | 65 | MEMBARRIER_CMD_QUERY = 0, |
| 50 | MEMBARRIER_CMD_SHARED = (1 << 0), | 66 | MEMBARRIER_CMD_SHARED = (1 << 0), |
| 67 | /* reserved for MEMBARRIER_CMD_SHARED_EXPEDITED (1 << 1) */ | ||
| 68 | /* reserved for MEMBARRIER_CMD_PRIVATE (1 << 2) */ | ||
| 69 | MEMBARRIER_CMD_PRIVATE_EXPEDITED = (1 << 3), | ||
| 51 | }; | 70 | }; |
| 52 | 71 | ||
| 53 | #endif /* _UAPI_LINUX_MEMBARRIER_H */ | 72 | #endif /* _UAPI_LINUX_MEMBARRIER_H */ |
| @@ -1,8 +1,32 @@ | |||
| 1 | #ifndef _UAPI_LINUX_MEMFD_H | 1 | #ifndef _UAPI_LINUX_MEMFD_H |
| 2 | #define _UAPI_LINUX_MEMFD_H | 2 | #define _UAPI_LINUX_MEMFD_H |
| 3 | 3 | ||
| 4 | #include <asm-generic/hugetlb_encode.h> | ||
| 5 | |||
| 4 | /* flags for memfd_create(2) (unsigned int) */ | 6 | /* flags for memfd_create(2) (unsigned int) */ |
| 5 | #define MFD_CLOEXEC 0x0001U | 7 | #define MFD_CLOEXEC 0x0001U |
| 6 | #define MFD_ALLOW_SEALING 0x0002U | 8 | #define MFD_ALLOW_SEALING 0x0002U |
| 9 | #define MFD_HUGETLB 0x0004U | ||
| 10 | |||
| 11 | /* | ||
| 12 | * Huge page size encoding when MFD_HUGETLB is specified, and a huge page | ||
| 13 | * size other than the default is desired. See hugetlb_encode.h. | ||
| 14 | * All known huge page size encodings are provided here. It is the | ||
| 15 | * responsibility of the application to know which sizes are supported on | ||
| 16 | * the running system. See mmap(2) man page for details. | ||
| 17 | */ | ||
| 18 | #define MFD_HUGE_SHIFT HUGETLB_FLAG_ENCODE_SHIFT | ||
| 19 | #define MFD_HUGE_MASK HUGETLB_FLAG_ENCODE_MASK | ||
| 20 | |||
| 21 | #define MFD_HUGE_64KB HUGETLB_FLAG_ENCODE_64KB | ||
| 22 | #define MFD_HUGE_512KB HUGETLB_FLAG_ENCODE_512KB | ||
| 23 | #define MFD_HUGE_1MB HUGETLB_FLAG_ENCODE_1MB | ||
| 24 | #define MFD_HUGE_2MB HUGETLB_FLAG_ENCODE_2MB | ||
| 25 | #define MFD_HUGE_8MB HUGETLB_FLAG_ENCODE_8MB | ||
| 26 | #define MFD_HUGE_16MB HUGETLB_FLAG_ENCODE_16MB | ||
| 27 | #define MFD_HUGE_256MB HUGETLB_FLAG_ENCODE_256MB | ||
| 28 | #define MFD_HUGE_1GB HUGETLB_FLAG_ENCODE_1GB | ||
| 29 | #define MFD_HUGE_2GB HUGETLB_FLAG_ENCODE_2GB | ||
| 30 | #define MFD_HUGE_16GB HUGETLB_FLAG_ENCODE_16GB | ||
| 7 | 31 | ||
| 8 | #endif /* _UAPI_LINUX_MEMFD_H */ | 32 | #endif /* _UAPI_LINUX_MEMFD_H */ |
| @@ -2,6 +2,7 @@ · 1 unmodified line | |||
| 2 | #define _UAPI_LINUX_MMAN_H | 2 | #define _UAPI_LINUX_MMAN_H |
| 3 | 3 | ||
| 4 | #include <asm/mman.h> | 4 | #include <asm/mman.h> |
| 5 | #include <asm-generic/hugetlb_encode.h> | ||
| 5 | 6 | ||
| 6 | #define MREMAP_MAYMOVE 1 | 7 | #define MREMAP_MAYMOVE 1 |
| 7 | #define MREMAP_FIXED 2 | 8 | #define MREMAP_FIXED 2 |
| @@ -10,4 +11,25 @@ · 2 unmodified lines | |||
| 10 | #define OVERCOMMIT_ALWAYS 1 | 11 | #define OVERCOMMIT_ALWAYS 1 |
| 11 | #define OVERCOMMIT_NEVER 2 | 12 | #define OVERCOMMIT_NEVER 2 |
| 12 | 13 | ||
| 14 | /* | ||
| 15 | * Huge page size encoding when MAP_HUGETLB is specified, and a huge page | ||
| 16 | * size other than the default is desired. See hugetlb_encode.h. | ||
| 17 | * All known huge page size encodings are provided here. It is the | ||
| 18 | * responsibility of the application to know which sizes are supported on | ||
| 19 | * the running system. See mmap(2) man page for details. | ||
| 20 | */ | ||
| 21 | #define MAP_HUGE_SHIFT HUGETLB_FLAG_ENCODE_SHIFT | ||
| 22 | #define MAP_HUGE_MASK HUGETLB_FLAG_ENCODE_MASK | ||
| 23 | |||
| 24 | #define MAP_HUGE_64KB HUGETLB_FLAG_ENCODE_64KB | ||
| 25 | #define MAP_HUGE_512KB HUGETLB_FLAG_ENCODE_512KB | ||
| 26 | #define MAP_HUGE_1MB HUGETLB_FLAG_ENCODE_1MB | ||
| 27 | #define MAP_HUGE_2MB HUGETLB_FLAG_ENCODE_2MB | ||
| 28 | #define MAP_HUGE_8MB HUGETLB_FLAG_ENCODE_8MB | ||
| 29 | #define MAP_HUGE_16MB HUGETLB_FLAG_ENCODE_16MB | ||
| 30 | #define MAP_HUGE_256MB HUGETLB_FLAG_ENCODE_256MB | ||
| 31 | #define MAP_HUGE_1GB HUGETLB_FLAG_ENCODE_1GB | ||
| 32 | #define MAP_HUGE_2GB HUGETLB_FLAG_ENCODE_2GB | ||
| 33 | #define MAP_HUGE_16GB HUGETLB_FLAG_ENCODE_16GB | ||
| 34 | |||
| 13 | #endif /* _UAPI_LINUX_MMAN_H */ | 35 | #endif /* _UAPI_LINUX_MMAN_H */ |
| @@ -145,43 +145,6 @@ struct nd_cmd_clear_error { · 144 unmodified lines | |||
| 145 | __u64 cleared; | 145 | __u64 cleared; |
| 146 | } __packed; | 146 | } __packed; |
| 147 | 147 | ||
| 148 | struct nd_cmd_trans_spa { | ||
| 149 | __u64 spa; | ||
| 150 | __u32 status; | ||
| 151 | __u8 flags; | ||
| 152 | __u8 _reserved[3]; | ||
| 153 | __u64 trans_length; | ||
| 154 | __u32 num_nvdimms; | ||
| 155 | struct nd_nvdimm_device { | ||
| 156 | __u32 nfit_device_handle; | ||
| 157 | __u32 _reserved; | ||
| 158 | __u64 dpa; | ||
| 159 | } __packed devices[0]; | ||
| 160 | |||
| 161 | } __packed; | ||
| 162 | |||
| 163 | struct nd_cmd_ars_err_inj { | ||
| 164 | __u64 err_inj_spa_range_base; | ||
| 165 | __u64 err_inj_spa_range_length; | ||
| 166 | __u8 err_inj_options; | ||
| 167 | __u32 status; | ||
| 168 | } __packed; | ||
| 169 | |||
| 170 | struct nd_cmd_ars_err_inj_clr { | ||
| 171 | __u64 err_inj_clr_spa_range_base; | ||
| 172 | __u64 err_inj_clr_spa_range_length; | ||
| 173 | __u32 status; | ||
| 174 | } __packed; | ||
| 175 | |||
| 176 | struct nd_cmd_ars_err_inj_stat { | ||
| 177 | __u32 status; | ||
| 178 | __u32 inj_err_rec_count; | ||
| 179 | struct nd_error_stat_query_record { | ||
| 180 | __u64 err_inj_stat_spa_range_base; | ||
| 181 | __u64 err_inj_stat_spa_range_length; | ||
| 182 | } __packed record[0]; | ||
| 183 | } __packed; | ||
| 184 | |||
| 185 | enum { | 148 | enum { |
| 186 | ND_CMD_IMPLEMENTED = 0, | 149 | ND_CMD_IMPLEMENTED = 0, |
| 187 | 150 | ||
| @@ -1,10 +1,11 @@ | |||
| 1 | #ifndef _LINUX_NF_TABLES_H | 1 | #ifndef _LINUX_NF_TABLES_H |
| 2 | #define _LINUX_NF_TABLES_H | 2 | #define _LINUX_NF_TABLES_H |
| 3 | 3 | ||
| 4 | #define NFT_TABLE_MAXNAMELEN 32 | 4 | #define NFT_NAME_MAXLEN 256 |
| 5 | #define NFT_CHAIN_MAXNAMELEN 32 | 5 | #define NFT_TABLE_MAXNAMELEN NFT_NAME_MAXLEN |
| 6 | #define NFT_SET_MAXNAMELEN 32 | 6 | #define NFT_CHAIN_MAXNAMELEN NFT_NAME_MAXLEN |
| 7 | #define NFT_OBJ_MAXNAMELEN 32 | 7 | #define NFT_SET_MAXNAMELEN NFT_NAME_MAXLEN |
| 8 | #define NFT_OBJ_MAXNAMELEN NFT_NAME_MAXLEN | ||
| 8 | #define NFT_USERDATA_MAXLEN 256 | 9 | #define NFT_USERDATA_MAXLEN 256 |
| 9 | 10 | ||
| 10 | /** | 11 | /** |
| @@ -731,7 +732,8 @@ enum nft_exthdr_op { · 720 unmodified lines | |||
| 731 | * @NFTA_EXTHDR_OFFSET: extension header offset (NLA_U32) | 732 | * @NFTA_EXTHDR_OFFSET: extension header offset (NLA_U32) |
| 732 | * @NFTA_EXTHDR_LEN: extension header length (NLA_U32) | 733 | * @NFTA_EXTHDR_LEN: extension header length (NLA_U32) |
| 733 | * @NFTA_EXTHDR_FLAGS: extension header flags (NLA_U32) | 734 | * @NFTA_EXTHDR_FLAGS: extension header flags (NLA_U32) |
| 734 | * @NFTA_EXTHDR_OP: option match type (NLA_U8) | 735 | * @NFTA_EXTHDR_OP: option match type (NLA_U32) |
| 736 | * @NFTA_EXTHDR_SREG: option match type (NLA_U32) | ||
| 735 | */ | 737 | */ |
| 736 | enum nft_exthdr_attributes { | 738 | enum nft_exthdr_attributes { |
| 737 | NFTA_EXTHDR_UNSPEC, | 739 | NFTA_EXTHDR_UNSPEC, |
| @@ -741,6 +743,7 @@ enum nft_exthdr_attributes { · 3 unmodified lines | |||
| 741 | NFTA_EXTHDR_LEN, | 743 | NFTA_EXTHDR_LEN, |
| 742 | NFTA_EXTHDR_FLAGS, | 744 | NFTA_EXTHDR_FLAGS, |
| 743 | NFTA_EXTHDR_OP, | 745 | NFTA_EXTHDR_OP, |
| 746 | NFTA_EXTHDR_SREG, | ||
| 744 | __NFTA_EXTHDR_MAX | 747 | __NFTA_EXTHDR_MAX |
| 745 | }; | 748 | }; |
| 746 | #define NFTA_EXTHDR_MAX (__NFTA_EXTHDR_MAX - 1) | 749 | #define NFTA_EXTHDR_MAX (__NFTA_EXTHDR_MAX - 1) |
| @@ -808,11 +811,13 @@ enum nft_meta_keys { · 61 unmodified lines | |||
| 808 | * @NFT_RT_CLASSID: realm value of packet's route (skb->dst->tclassid) | 811 | * @NFT_RT_CLASSID: realm value of packet's route (skb->dst->tclassid) |
| 809 | * @NFT_RT_NEXTHOP4: routing nexthop for IPv4 | 812 | * @NFT_RT_NEXTHOP4: routing nexthop for IPv4 |
| 810 | * @NFT_RT_NEXTHOP6: routing nexthop for IPv6 | 813 | * @NFT_RT_NEXTHOP6: routing nexthop for IPv6 |
| 814 | * @NFT_RT_TCPMSS: fetch current path tcp mss | ||
| 811 | */ | 815 | */ |
| 812 | enum nft_rt_keys { | 816 | enum nft_rt_keys { |
| 813 | NFT_RT_CLASSID, | 817 | NFT_RT_CLASSID, |
| 814 | NFT_RT_NEXTHOP4, | 818 | NFT_RT_NEXTHOP4, |
| 815 | NFT_RT_NEXTHOP6, | 819 | NFT_RT_NEXTHOP6, |
| 820 | NFT_RT_TCPMSS, | ||
| 816 | }; | 821 | }; |
| 817 | 822 | ||
| 818 | /** | 823 | /** |
| @@ -1221,6 +1226,8 @@ enum nft_objref_attributes { · 402 unmodified lines | |||
| 1221 | enum nft_gen_attributes { | 1226 | enum nft_gen_attributes { |
| 1222 | NFTA_GEN_UNSPEC, | 1227 | NFTA_GEN_UNSPEC, |
| 1223 | NFTA_GEN_ID, | 1228 | NFTA_GEN_ID, |
| 1229 | NFTA_GEN_PROC_PID, | ||
| 1230 | NFTA_GEN_PROC_NAME, | ||
| 1224 | __NFTA_GEN_MAX | 1231 | __NFTA_GEN_MAX |
| 1225 | }; | 1232 | }; |
| 1226 | #define NFTA_GEN_MAX (__NFTA_GEN_MAX - 1) | 1233 | #define NFTA_GEN_MAX (__NFTA_GEN_MAX - 1) |
| @@ -1275,7 +1282,8 @@ enum nft_ct_helper_attributes { · 48 unmodified lines | |||
| 1275 | #define NFT_OBJECT_COUNTER 1 | 1282 | #define NFT_OBJECT_COUNTER 1 |
| 1276 | #define NFT_OBJECT_QUOTA 2 | 1283 | #define NFT_OBJECT_QUOTA 2 |
| 1277 | #define NFT_OBJECT_CT_HELPER 3 | 1284 | #define NFT_OBJECT_CT_HELPER 3 |
| 1278 | #define __NFT_OBJECT_MAX 4 | 1285 | #define NFT_OBJECT_LIMIT 4 |
| 1286 | #define __NFT_OBJECT_MAX 5 | ||
| 1279 | #define NFT_OBJECT_MAX (__NFT_OBJECT_MAX - 1) | 1287 | #define NFT_OBJECT_MAX (__NFT_OBJECT_MAX - 1) |
| 1280 | 1288 | ||
| 1281 | /** | 1289 | /** |
| @@ -19,12 +19,13 @@ · 18 unmodified lines | |||
| 19 | struct xt_hashlimit_htable; | 19 | struct xt_hashlimit_htable; |
| 20 | 20 | ||
| 21 | enum { | 21 | enum { |
| 22 | XT_HASHLIMIT_HASH_DIP = 1 << 0, | 22 | XT_HASHLIMIT_HASH_DIP = 1 << 0, |
| 23 | XT_HASHLIMIT_HASH_DPT = 1 << 1, | 23 | XT_HASHLIMIT_HASH_DPT = 1 << 1, |
| 24 | XT_HASHLIMIT_HASH_SIP = 1 << 2, | 24 | XT_HASHLIMIT_HASH_SIP = 1 << 2, |
| 25 | XT_HASHLIMIT_HASH_SPT = 1 << 3, | 25 | XT_HASHLIMIT_HASH_SPT = 1 << 3, |
| 26 | XT_HASHLIMIT_INVERT = 1 << 4, | 26 | XT_HASHLIMIT_INVERT = 1 << 4, |
| 27 | XT_HASHLIMIT_BYTES = 1 << 5, | 27 | XT_HASHLIMIT_BYTES = 1 << 5, |
| 28 | XT_HASHLIMIT_RATE_MATCH = 1 << 6, | ||
| 28 | }; | 29 | }; |
| 29 | 30 | ||
| 30 | struct hashlimit_cfg { | 31 | struct hashlimit_cfg { |
| @@ -79,6 +80,21 @@ struct hashlimit_cfg2 { · 48 unmodified lines | |||
| 79 | __u8 srcmask, dstmask; | 80 | __u8 srcmask, dstmask; |
| 80 | }; | 81 | }; |
| 81 | 82 | ||
| 83 | struct hashlimit_cfg3 { | ||
| 84 | __u64 avg; /* Average secs between packets * scale */ | ||
| 85 | __u64 burst; /* Period multiplier for upper limit. */ | ||
| 86 | __u32 mode; /* bitmask of XT_HASHLIMIT_HASH_* */ | ||
| 87 | |||
| 88 | /* user specified */ | ||
| 89 | __u32 size; /* how many buckets */ | ||
| 90 | __u32 max; /* max number of entries */ | ||
| 91 | __u32 gc_interval; /* gc interval */ | ||
| 92 | __u32 expire; /* when do entries expire? */ | ||
| 93 | |||
| 94 | __u32 interval; | ||
| 95 | __u8 srcmask, dstmask; | ||
| 96 | }; | ||
| 97 | |||
| 82 | struct xt_hashlimit_mtinfo1 { | 98 | struct xt_hashlimit_mtinfo1 { |
| 83 | char name[IFNAMSIZ]; | 99 | char name[IFNAMSIZ]; |
| 84 | struct hashlimit_cfg1 cfg; | 100 | struct hashlimit_cfg1 cfg; |
| @@ -95,4 +111,12 @@ struct xt_hashlimit_mtinfo2 { · 10 unmodified lines | |||
| 95 | struct xt_hashlimit_htable *hinfo __attribute__((aligned(8))); | 111 | struct xt_hashlimit_htable *hinfo __attribute__((aligned(8))); |
| 96 | }; | 112 | }; |
| 97 | 113 | ||
| 114 | struct xt_hashlimit_mtinfo3 { | ||
| 115 | char name[NAME_MAX]; | ||
| 116 | struct hashlimit_cfg3 cfg; | ||
| 117 | |||
| 118 | /* Used internally by the kernel */ | ||
| 119 | struct xt_hashlimit_htable *hinfo __attribute__((aligned(8))); | ||
| 120 | }; | ||
| 121 | |||
| 98 | #endif /* _UAPI_XT_HASHLIMIT_H */ | 122 | #endif /* _UAPI_XT_HASHLIMIT_H */ |
| @@ -69,6 +69,9 @@ struct nlmsghdr { · 68 unmodified lines | |||
| 69 | #define NLM_F_CREATE 0x400 /* Create, if it does not exist */ | 69 | #define NLM_F_CREATE 0x400 /* Create, if it does not exist */ |
| 70 | #define NLM_F_APPEND 0x800 /* Add to end of list */ | 70 | #define NLM_F_APPEND 0x800 /* Add to end of list */ |
| 71 | 71 | ||
| 72 | /* Modifiers to DELETE request */ | ||
| 73 | #define NLM_F_NONREC 0x100 /* Do not delete recursively */ | ||
| 74 | |||
| 72 | /* Flags for ACK message */ | 75 | /* Flags for ACK message */ |
| 73 | #define NLM_F_CAPPED 0x100 /* request was capped */ | 76 | #define NLM_F_CAPPED 0x100 /* request was capped */ |
| 74 | #define NLM_F_ACK_TLVS 0x200 /* extended ACK TVLs were included */ | 77 | #define NLM_F_ACK_TLVS 0x200 /* extended ACK TVLs were included */ |
| @@ -226,5 +229,22 @@ struct nlattr { · 151 unmodified lines | |||
| 226 | #define NLA_ALIGN(len) (((len) + NLA_ALIGNTO - 1) & ~(NLA_ALIGNTO - 1)) | 229 | #define NLA_ALIGN(len) (((len) + NLA_ALIGNTO - 1) & ~(NLA_ALIGNTO - 1)) |
| 227 | #define NLA_HDRLEN ((int) NLA_ALIGN(sizeof(struct nlattr))) | 230 | #define NLA_HDRLEN ((int) NLA_ALIGN(sizeof(struct nlattr))) |
| 228 | 231 | ||
| 232 | /* Generic 32 bitflags attribute content sent to the kernel. | ||
| 233 | * | ||
| 234 | * The value is a bitmap that defines the values being set | ||
| 235 | * The selector is a bitmask that defines which value is legit | ||
| 236 | * | ||
| 237 | * Examples: | ||
| 238 | * value = 0x0, and selector = 0x1 | ||
| 239 | * implies we are selecting bit 1 and we want to set its value to 0. | ||
| 240 | * | ||
| 241 | * value = 0x2, and selector = 0x2 | ||
| 242 | * implies we are selecting bit 2 and we want to set its value to 1. | ||
| 243 | * | ||
| 244 | */ | ||
| 245 | struct nla_bitfield32 { | ||
| 246 | __u32 value; | ||
| 247 | __u32 selector; | ||
| 248 | }; | ||
| 229 | 249 | ||
| 230 | #endif /* _UAPI__LINUX_NETLINK_H */ | 250 | #endif /* _UAPI__LINUX_NETLINK_H */ |
| @@ -513,6 +513,7 @@ · 512 unmodified lines | |||
| 513 | #define PCI_EXP_DEVSTA_URD 0x0008 /* Unsupported Request Detected */ | 513 | #define PCI_EXP_DEVSTA_URD 0x0008 /* Unsupported Request Detected */ |
| 514 | #define PCI_EXP_DEVSTA_AUXPD 0x0010 /* AUX Power Detected */ | 514 | #define PCI_EXP_DEVSTA_AUXPD 0x0010 /* AUX Power Detected */ |
| 515 | #define PCI_EXP_DEVSTA_TRPND 0x0020 /* Transactions Pending */ | 515 | #define PCI_EXP_DEVSTA_TRPND 0x0020 /* Transactions Pending */ |
| 516 | #define PCI_CAP_EXP_RC_ENDPOINT_SIZEOF_V1 12 /* v1 endpoints without link end here */ | ||
| 516 | #define PCI_EXP_LNKCAP 12 /* Link Capabilities */ | 517 | #define PCI_EXP_LNKCAP 12 /* Link Capabilities */ |
| 517 | #define PCI_EXP_LNKCAP_SLS 0x0000000f /* Supported Link Speeds */ | 518 | #define PCI_EXP_LNKCAP_SLS 0x0000000f /* Supported Link Speeds */ |
| 518 | #define PCI_EXP_LNKCAP_SLS_2_5GB 0x00000001 /* LNKCAP2 SLS Vector bit 0 */ | 519 | #define PCI_EXP_LNKCAP_SLS_2_5GB 0x00000001 /* LNKCAP2 SLS Vector bit 0 */ |
| @@ -556,7 +557,7 @@ · 37 unmodified lines | |||
| 556 | #define PCI_EXP_LNKSTA_DLLLA 0x2000 /* Data Link Layer Link Active */ | 557 | #define PCI_EXP_LNKSTA_DLLLA 0x2000 /* Data Link Layer Link Active */ |
| 557 | #define PCI_EXP_LNKSTA_LBMS 0x4000 /* Link Bandwidth Management Status */ | 558 | #define PCI_EXP_LNKSTA_LBMS 0x4000 /* Link Bandwidth Management Status */ |
| 558 | #define PCI_EXP_LNKSTA_LABS 0x8000 /* Link Autonomous Bandwidth Status */ | 559 | #define PCI_EXP_LNKSTA_LABS 0x8000 /* Link Autonomous Bandwidth Status */ |
| 559 | #define PCI_CAP_EXP_ENDPOINT_SIZEOF_V1 20 /* v1 endpoints end here */ | 560 | #define PCI_CAP_EXP_ENDPOINT_SIZEOF_V1 20 /* v1 endpoints with link end here */ |
| 560 | #define PCI_EXP_SLTCAP 20 /* Slot Capabilities */ | 561 | #define PCI_EXP_SLTCAP 20 /* Slot Capabilities */ |
| 561 | #define PCI_EXP_SLTCAP_ABP 0x00000001 /* Attention Button Present */ | 562 | #define PCI_EXP_SLTCAP_ABP 0x00000001 /* Attention Button Present */ |
| 562 | #define PCI_EXP_SLTCAP_PCP 0x00000002 /* Power Controller Present */ | 563 | #define PCI_EXP_SLTCAP_PCP 0x00000002 /* Power Controller Present */ |
| @@ -639,7 +640,7 @@ · 76 unmodified lines | |||
| 639 | #define PCI_EXP_DEVCTL2_OBFF_MSGB_EN 0x4000 /* Enable OBFF Message type B */ | 640 | #define PCI_EXP_DEVCTL2_OBFF_MSGB_EN 0x4000 /* Enable OBFF Message type B */ |
| 640 | #define PCI_EXP_DEVCTL2_OBFF_WAKE_EN 0x6000 /* OBFF using WAKE# signaling */ | 641 | #define PCI_EXP_DEVCTL2_OBFF_WAKE_EN 0x6000 /* OBFF using WAKE# signaling */ |
| 641 | #define PCI_EXP_DEVSTA2 42 /* Device Status 2 */ | 642 | #define PCI_EXP_DEVSTA2 42 /* Device Status 2 */ |
| 642 | #define PCI_CAP_EXP_ENDPOINT_SIZEOF_V2 44 /* v2 endpoints end here */ | 643 | #define PCI_CAP_EXP_RC_ENDPOINT_SIZEOF_V2 44 /* v2 endpoints without link end here */ |
| 643 | #define PCI_EXP_LNKCAP2 44 /* Link Capabilities 2 */ | 644 | #define PCI_EXP_LNKCAP2 44 /* Link Capabilities 2 */ |
| 644 | #define PCI_EXP_LNKCAP2_SLS_2_5GB 0x00000002 /* Supported Speed 2.5GT/s */ | 645 | #define PCI_EXP_LNKCAP2_SLS_2_5GB 0x00000002 /* Supported Speed 2.5GT/s */ |
| 645 | #define PCI_EXP_LNKCAP2_SLS_5_0GB 0x00000004 /* Supported Speed 5.0GT/s */ | 646 | #define PCI_EXP_LNKCAP2_SLS_5_0GB 0x00000004 /* Supported Speed 5.0GT/s */ |
| @@ -647,6 +648,7 @@ · 1 unmodified line | |||
| 647 | #define PCI_EXP_LNKCAP2_CROSSLINK 0x00000100 /* Crosslink supported */ | 648 | #define PCI_EXP_LNKCAP2_CROSSLINK 0x00000100 /* Crosslink supported */ |
| 648 | #define PCI_EXP_LNKCTL2 48 /* Link Control 2 */ | 649 | #define PCI_EXP_LNKCTL2 48 /* Link Control 2 */ |
| 649 | #define PCI_EXP_LNKSTA2 50 /* Link Status 2 */ | 650 | #define PCI_EXP_LNKSTA2 50 /* Link Status 2 */ |
| 651 | #define PCI_CAP_EXP_ENDPOINT_SIZEOF_V2 52 /* v2 endpoints with link end here */ | ||
| 650 | #define PCI_EXP_SLTCAP2 52 /* Slot Capabilities 2 */ | 652 | #define PCI_EXP_SLTCAP2 52 /* Slot Capabilities 2 */ |
| 651 | #define PCI_EXP_SLTCTL2 56 /* Slot Control 2 */ | 653 | #define PCI_EXP_SLTCTL2 56 /* Slot Control 2 */ |
| 652 | #define PCI_EXP_SLTSTA2 58 /* Slot Status 2 */ | 654 | #define PCI_EXP_SLTSTA2 58 /* Slot Status 2 */ |
| @@ -733,23 +735,17 @@ · 80 unmodified lines | |||
| 733 | #define PCI_ERR_CAP_ECRC_CHKE 0x00000100 /* ECRC Check Enable */ | 735 | #define PCI_ERR_CAP_ECRC_CHKE 0x00000100 /* ECRC Check Enable */ |
| 734 | #define PCI_ERR_HEADER_LOG 28 /* Header Log Register (16 bytes) */ | 736 | #define PCI_ERR_HEADER_LOG 28 /* Header Log Register (16 bytes) */ |
| 735 | #define PCI_ERR_ROOT_COMMAND 44 /* Root Error Command */ | 737 | #define PCI_ERR_ROOT_COMMAND 44 /* Root Error Command */ |
| 736 | /* Correctable Err Reporting Enable */ | 738 | #define PCI_ERR_ROOT_CMD_COR_EN 0x00000001 /* Correctable Err Reporting Enable */ |
| 737 | #define PCI_ERR_ROOT_CMD_COR_EN 0x00000001 | 739 | #define PCI_ERR_ROOT_CMD_NONFATAL_EN 0x00000002 /* Non-Fatal Err Reporting Enable */ |
| 738 | /* Non-fatal Err Reporting Enable */ | 740 | #define PCI_ERR_ROOT_CMD_FATAL_EN 0x00000004 /* Fatal Err Reporting Enable */ |
| 739 | #define PCI_ERR_ROOT_CMD_NONFATAL_EN 0x00000002 | ||
| 740 | /* Fatal Err Reporting Enable */ | ||
| 741 | #define PCI_ERR_ROOT_CMD_FATAL_EN 0x00000004 | ||
| 742 | #define PCI_ERR_ROOT_STATUS 48 | 741 | #define PCI_ERR_ROOT_STATUS 48 |
| 743 | #define PCI_ERR_ROOT_COR_RCV 0x00000001 /* ERR_COR Received */ | 742 | #define PCI_ERR_ROOT_COR_RCV 0x00000001 /* ERR_COR Received */ |
| 744 | /* Multi ERR_COR Received */ | 743 | #define PCI_ERR_ROOT_MULTI_COR_RCV 0x00000002 /* Multiple ERR_COR */ |
| 745 | #define PCI_ERR_ROOT_MULTI_COR_RCV 0x00000002 | 744 | #define PCI_ERR_ROOT_UNCOR_RCV 0x00000004 /* ERR_FATAL/NONFATAL */ |
| 746 | /* ERR_FATAL/NONFATAL Received */ | 745 | #define PCI_ERR_ROOT_MULTI_UNCOR_RCV 0x00000008 /* Multiple FATAL/NONFATAL */ |
| 747 | #define PCI_ERR_ROOT_UNCOR_RCV 0x00000004 | 746 | #define PCI_ERR_ROOT_FIRST_FATAL 0x00000010 /* First UNC is Fatal */ |
| 748 | /* Multi ERR_FATAL/NONFATAL Received */ | 747 | #define PCI_ERR_ROOT_NONFATAL_RCV 0x00000020 /* Non-Fatal Received */ |
| 749 | #define PCI_ERR_ROOT_MULTI_UNCOR_RCV 0x00000008 | 748 | #define PCI_ERR_ROOT_FATAL_RCV 0x00000040 /* Fatal Received */ |
| 750 | #define PCI_ERR_ROOT_FIRST_FATAL 0x00000010 /* First Fatal */ | ||
| 751 | #define PCI_ERR_ROOT_NONFATAL_RCV 0x00000020 /* Non-Fatal Received */ | ||
| 752 | #define PCI_ERR_ROOT_FATAL_RCV 0x00000040 /* Fatal Received */ | ||
| 753 | #define PCI_ERR_ROOT_ERR_SRC 52 /* Error Source Identification */ | 749 | #define PCI_ERR_ROOT_ERR_SRC 52 /* Error Source Identification */ |
| 754 | 750 | ||
| 755 | /* Virtual Channel */ | 751 | /* Virtual Channel */ |
| @@ -967,6 +963,7 @@ · 211 unmodified lines | |||
| 967 | #define PCI_EXP_DPC_CAP_RP_EXT 0x20 /* Root Port Extensions for DPC */ | 963 | #define PCI_EXP_DPC_CAP_RP_EXT 0x20 /* Root Port Extensions for DPC */ |
| 968 | #define PCI_EXP_DPC_CAP_POISONED_TLP 0x40 /* Poisoned TLP Egress Blocking Supported */ | 964 | #define PCI_EXP_DPC_CAP_POISONED_TLP 0x40 /* Poisoned TLP Egress Blocking Supported */ |
| 969 | #define PCI_EXP_DPC_CAP_SW_TRIGGER 0x80 /* Software Triggering Supported */ | 965 | #define PCI_EXP_DPC_CAP_SW_TRIGGER 0x80 /* Software Triggering Supported */ |
| 966 | #define PCI_EXP_DPC_RP_PIO_LOG_SIZE 0xF00 /* RP PIO log size */ | ||
| 970 | #define PCI_EXP_DPC_CAP_DL_ACTIVE 0x1000 /* ERR_COR signal on DL_Active supported */ | 967 | #define PCI_EXP_DPC_CAP_DL_ACTIVE 0x1000 /* ERR_COR signal on DL_Active supported */ |
| 971 | 968 | ||
| 972 | #define PCI_EXP_DPC_CTL 6 /* DPC control */ | 969 | #define PCI_EXP_DPC_CTL 6 /* DPC control */ |
| @@ -980,6 +977,15 @@ · 7 unmodified lines | |||
| 980 | 977 | ||
| 981 | #define PCI_EXP_DPC_SOURCE_ID 10 /* DPC Source Identifier */ | 978 | #define PCI_EXP_DPC_SOURCE_ID 10 /* DPC Source Identifier */ |
| 982 | 979 | ||
| 980 | #define PCI_EXP_DPC_RP_PIO_STATUS 0x0C /* RP PIO Status */ | ||
| 981 | #define PCI_EXP_DPC_RP_PIO_MASK 0x10 /* RP PIO MASK */ | ||
| 982 | #define PCI_EXP_DPC_RP_PIO_SEVERITY 0x14 /* RP PIO Severity */ | ||
| 983 | #define PCI_EXP_DPC_RP_PIO_SYSERROR 0x18 /* RP PIO SysError */ | ||
| 984 | #define PCI_EXP_DPC_RP_PIO_EXCEPTION 0x1C /* RP PIO Exception */ | ||
| 985 | #define PCI_EXP_DPC_RP_PIO_HEADER_LOG 0x20 /* RP PIO Header Log */ | ||
| 986 | #define PCI_EXP_DPC_RP_PIO_IMPSPEC_LOG 0x30 /* RP PIO ImpSpec Log */ | ||
| 987 | #define PCI_EXP_DPC_RP_PIO_TLPPREFIX_LOG 0x34 /* RP PIO TLP Prefix Log */ | ||
| 988 | |||
| 983 | /* Precision Time Measurement */ | 989 | /* Precision Time Measurement */ |
| 984 | #define PCI_PTM_CAP 0x04 /* PTM Capability */ | 990 | #define PCI_PTM_CAP 0x04 /* PTM Capability */ |
| 985 | #define PCI_PTM_CAP_REQ 0x00000001 /* Requester capable */ | 991 | #define PCI_PTM_CAP_REQ 0x00000001 /* Requester capable */ |
| @@ -139,8 +139,9 @@ enum perf_event_sample_format { · 138 unmodified lines | |||
| 139 | PERF_SAMPLE_IDENTIFIER = 1U << 16, | 139 | PERF_SAMPLE_IDENTIFIER = 1U << 16, |
| 140 | PERF_SAMPLE_TRANSACTION = 1U << 17, | 140 | PERF_SAMPLE_TRANSACTION = 1U << 17, |
| 141 | PERF_SAMPLE_REGS_INTR = 1U << 18, | 141 | PERF_SAMPLE_REGS_INTR = 1U << 18, |
| 142 | PERF_SAMPLE_PHYS_ADDR = 1U << 19, | ||
| 142 | 143 | ||
| 143 | PERF_SAMPLE_MAX = 1U << 19, /* non-ABI */ | 144 | PERF_SAMPLE_MAX = 1U << 20, /* non-ABI */ |
| 144 | }; | 145 | }; |
| 145 | 146 | ||
| 146 | /* | 147 | /* |
| @@ -174,6 +175,8 @@ enum perf_branch_sample_type_shift { · 27 unmodified lines | |||
| 174 | PERF_SAMPLE_BRANCH_NO_FLAGS_SHIFT = 14, /* no flags */ | 175 | PERF_SAMPLE_BRANCH_NO_FLAGS_SHIFT = 14, /* no flags */ |
| 175 | PERF_SAMPLE_BRANCH_NO_CYCLES_SHIFT = 15, /* no cycles */ | 176 | PERF_SAMPLE_BRANCH_NO_CYCLES_SHIFT = 15, /* no cycles */ |
| 176 | 177 | ||
| 178 | PERF_SAMPLE_BRANCH_TYPE_SAVE_SHIFT = 16, /* save branch type */ | ||
| 179 | |||
| 177 | PERF_SAMPLE_BRANCH_MAX_SHIFT /* non-ABI */ | 180 | PERF_SAMPLE_BRANCH_MAX_SHIFT /* non-ABI */ |
| 178 | }; | 181 | }; |
| 179 | 182 | ||
| @@ -198,9 +201,30 @@ enum perf_branch_sample_type { · 18 unmodified lines | |||
| 198 | PERF_SAMPLE_BRANCH_NO_FLAGS = 1U << PERF_SAMPLE_BRANCH_NO_FLAGS_SHIFT, | 201 | PERF_SAMPLE_BRANCH_NO_FLAGS = 1U << PERF_SAMPLE_BRANCH_NO_FLAGS_SHIFT, |
| 199 | PERF_SAMPLE_BRANCH_NO_CYCLES = 1U << PERF_SAMPLE_BRANCH_NO_CYCLES_SHIFT, | 202 | PERF_SAMPLE_BRANCH_NO_CYCLES = 1U << PERF_SAMPLE_BRANCH_NO_CYCLES_SHIFT, |
| 200 | 203 | ||
| 204 | PERF_SAMPLE_BRANCH_TYPE_SAVE = | ||
| 205 | 1U << PERF_SAMPLE_BRANCH_TYPE_SAVE_SHIFT, | ||
| 206 | |||
| 201 | PERF_SAMPLE_BRANCH_MAX = 1U << PERF_SAMPLE_BRANCH_MAX_SHIFT, | 207 | PERF_SAMPLE_BRANCH_MAX = 1U << PERF_SAMPLE_BRANCH_MAX_SHIFT, |
| 202 | }; | 208 | }; |
| 203 | 209 | ||
| 210 | /* | ||
| 211 | * Common flow change classification | ||
| 212 | */ | ||
| 213 | enum { | ||
| 214 | PERF_BR_UNKNOWN = 0, /* unknown */ | ||
| 215 | PERF_BR_COND = 1, /* conditional */ | ||
| 216 | PERF_BR_UNCOND = 2, /* unconditional */ | ||
| 217 | PERF_BR_IND = 3, /* indirect */ | ||
| 218 | PERF_BR_CALL = 4, /* function call */ | ||
| 219 | PERF_BR_IND_CALL = 5, /* indirect function call */ | ||
| 220 | PERF_BR_RET = 6, /* function return */ | ||
| 221 | PERF_BR_SYSCALL = 7, /* syscall */ | ||
| 222 | PERF_BR_SYSRET = 8, /* syscall return */ | ||
| 223 | PERF_BR_COND_CALL = 9, /* conditional function call */ | ||
| 224 | PERF_BR_COND_RET = 10, /* conditional function return */ | ||
| 225 | PERF_BR_MAX, | ||
| 226 | }; | ||
| 227 | |||
| 204 | #define PERF_SAMPLE_BRANCH_PLM_ALL \ | 228 | #define PERF_SAMPLE_BRANCH_PLM_ALL \ |
| 205 | (PERF_SAMPLE_BRANCH_USER|\ | 229 | (PERF_SAMPLE_BRANCH_USER|\ |
| 206 | PERF_SAMPLE_BRANCH_KERNEL|\ | 230 | PERF_SAMPLE_BRANCH_KERNEL|\ |
| @@ -791,6 +815,7 @@ enum perf_event_type { · 584 unmodified lines | |||
| 791 | * { u64 transaction; } && PERF_SAMPLE_TRANSACTION | 815 | * { u64 transaction; } && PERF_SAMPLE_TRANSACTION |
| 792 | * { u64 abi; # enum perf_sample_regs_abi | 816 | * { u64 abi; # enum perf_sample_regs_abi |
| 793 | * u64 regs[weight(mask)]; } && PERF_SAMPLE_REGS_INTR | 817 | * u64 regs[weight(mask)]; } && PERF_SAMPLE_REGS_INTR |
| 818 | * { u64 phys_addr;} && PERF_SAMPLE_PHYS_ADDR | ||
| 794 | * }; | 819 | * }; |
| 795 | */ | 820 | */ |
| 796 | PERF_RECORD_SAMPLE = 9, | 821 | PERF_RECORD_SAMPLE = 9, |
| @@ -931,14 +956,20 @@ union perf_mem_data_src { · 134 unmodified lines | |||
| 931 | mem_snoop:5, /* snoop mode */ | 956 | mem_snoop:5, /* snoop mode */ |
| 932 | mem_lock:2, /* lock instr */ | 957 | mem_lock:2, /* lock instr */ |
| 933 | mem_dtlb:7, /* tlb access */ | 958 | mem_dtlb:7, /* tlb access */ |
| 934 | mem_rsvd:31; | 959 | mem_lvl_num:4, /* memory hierarchy level number */ |
| 960 | mem_remote:1, /* remote */ | ||
| 961 | mem_snoopx:2, /* snoop mode, ext */ | ||
| 962 | mem_rsvd:24; | ||
| 935 | }; | 963 | }; |
| 936 | }; | 964 | }; |
| 937 | #elif defined(__BIG_ENDIAN_BITFIELD) | 965 | #elif defined(__BIG_ENDIAN_BITFIELD) |
| 938 | union perf_mem_data_src { | 966 | union perf_mem_data_src { |
| 939 | __u64 val; | 967 | __u64 val; |
| 940 | struct { | 968 | struct { |
| 941 | __u64 mem_rsvd:31, | 969 | __u64 mem_rsvd:24, |
| 970 | mem_snoopx:2, /* snoop mode, ext */ | ||
| 971 | mem_remote:1, /* remote */ | ||
| 972 | mem_lvl_num:4, /* memory hierarchy level number */ | ||
| 942 | mem_dtlb:7, /* tlb access */ | 973 | mem_dtlb:7, /* tlb access */ |
| 943 | mem_lock:2, /* lock instr */ | 974 | mem_lock:2, /* lock instr */ |
| 944 | mem_snoop:5, /* snoop mode */ | 975 | mem_snoop:5, /* snoop mode */ |
| @@ -975,6 +1006,22 @@ union perf_mem_data_src { · 30 unmodified lines | |||
| 975 | #define PERF_MEM_LVL_UNC 0x2000 /* Uncached memory */ | 1006 | #define PERF_MEM_LVL_UNC 0x2000 /* Uncached memory */ |
| 976 | #define PERF_MEM_LVL_SHIFT 5 | 1007 | #define PERF_MEM_LVL_SHIFT 5 |
| 977 | 1008 | ||
| 1009 | #define PERF_MEM_REMOTE_REMOTE 0x01 /* Remote */ | ||
| 1010 | #define PERF_MEM_REMOTE_SHIFT 37 | ||
| 1011 | |||
| 1012 | #define PERF_MEM_LVLNUM_L1 0x01 /* L1 */ | ||
| 1013 | #define PERF_MEM_LVLNUM_L2 0x02 /* L2 */ | ||
| 1014 | #define PERF_MEM_LVLNUM_L3 0x03 /* L3 */ | ||
| 1015 | #define PERF_MEM_LVLNUM_L4 0x04 /* L4 */ | ||
| 1016 | /* 5-0xa available */ | ||
| 1017 | #define PERF_MEM_LVLNUM_ANY_CACHE 0x0b /* Any cache */ | ||
| 1018 | #define PERF_MEM_LVLNUM_LFB 0x0c /* LFB */ | ||
| 1019 | #define PERF_MEM_LVLNUM_RAM 0x0d /* RAM */ | ||
| 1020 | #define PERF_MEM_LVLNUM_PMEM 0x0e /* PMEM */ | ||
| 1021 | #define PERF_MEM_LVLNUM_NA 0x0f /* N/A */ | ||
| 1022 | |||
| 1023 | #define PERF_MEM_LVLNUM_SHIFT 33 | ||
| 1024 | |||
| 978 | /* snoop mode */ | 1025 | /* snoop mode */ |
| 979 | #define PERF_MEM_SNOOP_NA 0x01 /* not available */ | 1026 | #define PERF_MEM_SNOOP_NA 0x01 /* not available */ |
| 980 | #define PERF_MEM_SNOOP_NONE 0x02 /* no snoop */ | 1027 | #define PERF_MEM_SNOOP_NONE 0x02 /* no snoop */ |
| @@ -983,6 +1030,10 @@ union perf_mem_data_src { · 2 unmodified lines | |||
| 983 | #define PERF_MEM_SNOOP_HITM 0x10 /* snoop hit modified */ | 1030 | #define PERF_MEM_SNOOP_HITM 0x10 /* snoop hit modified */ |
| 984 | #define PERF_MEM_SNOOP_SHIFT 19 | 1031 | #define PERF_MEM_SNOOP_SHIFT 19 |
| 985 | 1032 | ||
| 1033 | #define PERF_MEM_SNOOPX_FWD 0x01 /* forward */ | ||
| 1034 | /* 1 free */ | ||
| 1035 | #define PERF_MEM_SNOOPX_SHIFT 37 | ||
| 1036 | |||
| 986 | /* locked instruction */ | 1037 | /* locked instruction */ |
| 987 | #define PERF_MEM_LOCK_NA 0x01 /* not available */ | 1038 | #define PERF_MEM_LOCK_NA 0x01 /* not available */ |
| 988 | #define PERF_MEM_LOCK_LOCKED 0x02 /* locked transaction */ | 1039 | #define PERF_MEM_LOCK_LOCKED 0x02 /* locked transaction */ |
| @@ -1015,6 +1066,7 @@ union perf_mem_data_src { · 26 unmodified lines | |||
| 1015 | * in_tx: running in a hardware transaction | 1066 | * in_tx: running in a hardware transaction |
| 1016 | * abort: aborting a hardware transaction | 1067 | * abort: aborting a hardware transaction |
| 1017 | * cycles: cycles from last branch (or 0 if not supported) | 1068 | * cycles: cycles from last branch (or 0 if not supported) |
| 1069 | * type: branch type | ||
| 1018 | */ | 1070 | */ |
| 1019 | struct perf_branch_entry { | 1071 | struct perf_branch_entry { |
| 1020 | __u64 from; | 1072 | __u64 from; |
| @@ -1024,7 +1076,8 @@ struct perf_branch_entry { · 3 unmodified lines | |||
| 1024 | in_tx:1, /* in transaction */ | 1076 | in_tx:1, /* in transaction */ |
| 1025 | abort:1, /* transaction abort */ | 1077 | abort:1, /* transaction abort */ |
| 1026 | cycles:16, /* cycle count to last branch */ | 1078 | cycles:16, /* cycle count to last branch */ |
| 1027 | reserved:44; | 1079 | type:4, /* branch type */ |
| 1080 | reserved:40; | ||
| 1028 | }; | 1081 | }; |
| 1029 | 1082 | ||
| 1030 | #endif /* _UAPI_LINUX_PERF_EVENT_H */ | 1083 | #endif /* _UAPI_LINUX_PERF_EVENT_H */ |
| @@ -95,8 +95,8 @@ struct pps_kparams { · 94 unmodified lines | |||
| 95 | #define PPS_CAPTURECLEAR 0x02 /* capture clear events */ | 95 | #define PPS_CAPTURECLEAR 0x02 /* capture clear events */ |
| 96 | #define PPS_CAPTUREBOTH 0x03 /* capture assert and clear events */ | 96 | #define PPS_CAPTUREBOTH 0x03 /* capture assert and clear events */ |
| 97 | 97 | ||
| 98 | #define PPS_OFFSETASSERT 0x10 /* apply compensation for assert ev. */ | 98 | #define PPS_OFFSETASSERT 0x10 /* apply compensation for assert event */ |
| 99 | #define PPS_OFFSETCLEAR 0x20 /* apply compensation for clear ev. */ | 99 | #define PPS_OFFSETCLEAR 0x20 /* apply compensation for clear event */ |
| 100 | 100 | ||
| 101 | #define PPS_CANWAIT 0x100 /* can we wait for an event? */ | 101 | #define PPS_CANWAIT 0x100 /* can we wait for an event? */ |
| 102 | #define PPS_CANPOLL 0x200 /* bit reserved for future use */ | 102 | #define PPS_CANPOLL 0x200 /* bit reserved for future use */ |
| @@ -33,7 +33,6 @@ · 32 unmodified lines | |||
| 33 | #ifndef _UAPI_LINUX_QUOTA_ | 33 | #ifndef _UAPI_LINUX_QUOTA_ |
| 34 | #define _UAPI_LINUX_QUOTA_ | 34 | #define _UAPI_LINUX_QUOTA_ |
| 35 | 35 | ||
| 36 | #include <linux/errno.h> | ||
| 37 | #include <linux/types.h> | 36 | #include <linux/types.h> |
| 38 | 37 | ||
| 39 | #define __DQUOT_VERSION__ "dquot_6.6.0" | 38 | #define __DQUOT_VERSION__ "dquot_6.6.0" |
| @@ -324,9 +324,10 @@ struct mdp_superblock_1 { · 323 unmodified lines | |||
| 324 | #define MD_FEATURE_RECOVERY_BITMAP 128 /* recovery that is happening | 324 | #define MD_FEATURE_RECOVERY_BITMAP 128 /* recovery that is happening |
| 325 | * is guided by bitmap. | 325 | * is guided by bitmap. |
| 326 | */ | 326 | */ |
| 327 | #define MD_FEATURE_CLUSTERED 256 /* clustered MD */ | 327 | #define MD_FEATURE_CLUSTERED 256 /* clustered MD */ |
| 328 | #define MD_FEATURE_JOURNAL 512 /* support write cache */ | 328 | #define MD_FEATURE_JOURNAL 512 /* support write cache */ |
| 329 | #define MD_FEATURE_PPL 1024 /* support PPL */ | 329 | #define MD_FEATURE_PPL 1024 /* support PPL */ |
| 330 | #define MD_FEATURE_MULTIPLE_PPLS 2048 /* support for multiple PPLs */ | ||
| 330 | #define MD_FEATURE_ALL (MD_FEATURE_BITMAP_OFFSET \ | 331 | #define MD_FEATURE_ALL (MD_FEATURE_BITMAP_OFFSET \ |
| 331 | |MD_FEATURE_RECOVERY_OFFSET \ | 332 | |MD_FEATURE_RECOVERY_OFFSET \ |
| 332 | |MD_FEATURE_RESHAPE_ACTIVE \ | 333 | |MD_FEATURE_RESHAPE_ACTIVE \ |
| @@ -338,6 +339,7 @@ struct mdp_superblock_1 { · 5 unmodified lines | |||
| 338 | |MD_FEATURE_CLUSTERED \ | 339 | |MD_FEATURE_CLUSTERED \ |
| 339 | |MD_FEATURE_JOURNAL \ | 340 | |MD_FEATURE_JOURNAL \ |
| 340 | |MD_FEATURE_PPL \ | 341 | |MD_FEATURE_PPL \ |
| 342 | |MD_FEATURE_MULTIPLE_PPLS \ | ||
| 341 | ) | 343 | ) |
| 342 | 344 | ||
| 343 | struct r5l_payload_header { | 345 | struct r5l_payload_header { |
| @@ -683,10 +683,29 @@ struct tcamsg { · 682 unmodified lines | |||
| 683 | unsigned char tca__pad1; | 683 | unsigned char tca__pad1; |
| 684 | unsigned short tca__pad2; | 684 | unsigned short tca__pad2; |
| 685 | }; | 685 | }; |
| 686 | |||
| 687 | enum { | ||
| 688 | TCA_ROOT_UNSPEC, | ||
| 689 | TCA_ROOT_TAB, | ||
| 690 | #define TCA_ACT_TAB TCA_ROOT_TAB | ||
| 691 | #define TCAA_MAX TCA_ROOT_TAB | ||
| 692 | TCA_ROOT_FLAGS, | ||
| 693 | TCA_ROOT_COUNT, | ||
| 694 | TCA_ROOT_TIME_DELTA, /* in msecs */ | ||
| 695 | __TCA_ROOT_MAX, | ||
| 696 | #define TCA_ROOT_MAX (__TCA_ROOT_MAX - 1) | ||
| 697 | }; | ||
| 698 | |||
| 686 | #define TA_RTA(r) ((struct rtattr*)(((char*)(r)) + NLMSG_ALIGN(sizeof(struct tcamsg)))) | 699 | #define TA_RTA(r) ((struct rtattr*)(((char*)(r)) + NLMSG_ALIGN(sizeof(struct tcamsg)))) |
| 687 | #define TA_PAYLOAD(n) NLMSG_PAYLOAD(n,sizeof(struct tcamsg)) | 700 | #define TA_PAYLOAD(n) NLMSG_PAYLOAD(n,sizeof(struct tcamsg)) |
| 688 | #define TCA_ACT_TAB 1 /* attr type must be >=1 */ | 701 | /* tcamsg flags stored in attribute TCA_ROOT_FLAGS |
| 689 | #define TCAA_MAX 1 | 702 | * |
| 703 | * TCA_FLAG_LARGE_DUMP_ON user->kernel to request for larger than TCA_ACT_MAX_PRIO | ||
| 704 | * actions in a dump. All dump responses will contain the number of actions | ||
| 705 | * being dumped stored in for user app's consumption in TCA_ROOT_COUNT | ||
| 706 | * | ||
| 707 | */ | ||
| 708 | #define TCA_FLAG_LARGE_DUMP_ON (1 << 0) | ||
| 690 | 709 | ||
| 691 | /* New extended info filters for IFLA_EXT_MASK */ | 710 | /* New extended info filters for IFLA_EXT_MASK */ |
| 692 | #define RTEXT_FILTER_VF (1 << 0) | 711 | #define RTEXT_FILTER_VF (1 << 0) |
| @@ -0,0 +1,124 @@ | |||
| 1 | /* Types and definitions for AF_RXRPC. | ||
| 2 | * | ||
| 3 | * Copyright (C) 2007 Red Hat, Inc. All Rights Reserved. | ||
| 4 | * Written by David Howells (dhowells@redhat.com) | ||
| 5 | * | ||
| 6 | * This program is free software; you can redistribute it and/or | ||
| 7 | * modify it under the terms of the GNU General Public Licence | ||
| 8 | * as published by the Free Software Foundation; either version | ||
| 9 | * 2 of the Licence, or (at your option) any later version. | ||
| 10 | */ | ||
| 11 | |||
| 12 | #ifndef _UAPI_LINUX_RXRPC_H | ||
| 13 | #define _UAPI_LINUX_RXRPC_H | ||
| 14 | |||
| 15 | #include <linux/types.h> | ||
| 16 | #include <linux/in.h> | ||
| 17 | #include <linux/in6.h> | ||
| 18 | |||
| 19 | /* | ||
| 20 | * RxRPC socket address | ||
| 21 | */ | ||
| 22 | struct sockaddr_rxrpc { | ||
| 23 | sa_family_t srx_family; /* address family */ | ||
| 24 | u16 srx_service; /* service desired */ | ||
| 25 | u16 transport_type; /* type of transport socket (SOCK_DGRAM) */ | ||
| 26 | u16 transport_len; /* length of transport address */ | ||
| 27 | union { | ||
| 28 | sa_family_t family; /* transport address family */ | ||
| 29 | struct sockaddr_in sin; /* IPv4 transport address */ | ||
| 30 | struct sockaddr_in6 sin6; /* IPv6 transport address */ | ||
| 31 | } transport; | ||
| 32 | }; | ||
| 33 | |||
| 34 | /* | ||
| 35 | * RxRPC socket options | ||
| 36 | */ | ||
| 37 | #define RXRPC_SECURITY_KEY 1 /* [clnt] set client security key */ | ||
| 38 | #define RXRPC_SECURITY_KEYRING 2 /* [srvr] set ring of server security keys */ | ||
| 39 | #define RXRPC_EXCLUSIVE_CONNECTION 3 /* Deprecated; use RXRPC_EXCLUSIVE_CALL instead */ | ||
| 40 | #define RXRPC_MIN_SECURITY_LEVEL 4 /* minimum security level */ | ||
| 41 | #define RXRPC_UPGRADEABLE_SERVICE 5 /* Upgrade service[0] -> service[1] */ | ||
| 42 | #define RXRPC_SUPPORTED_CMSG 6 /* Get highest supported control message type */ | ||
| 43 | |||
| 44 | /* | ||
| 45 | * RxRPC control messages | ||
| 46 | * - If neither abort or accept are specified, the message is a data message. | ||
| 47 | * - terminal messages mean that a user call ID tag can be recycled | ||
| 48 | * - s/r/- indicate whether these are applicable to sendmsg() and/or recvmsg() | ||
| 49 | */ | ||
| 50 | enum rxrpc_cmsg_type { | ||
| 51 | RXRPC_USER_CALL_ID = 1, /* sr: user call ID specifier */ | ||
| 52 | RXRPC_ABORT = 2, /* sr: abort request / notification [terminal] */ | ||
| 53 | RXRPC_ACK = 3, /* -r: [Service] RPC op final ACK received [terminal] */ | ||
| 54 | RXRPC_NET_ERROR = 5, /* -r: network error received [terminal] */ | ||
| 55 | RXRPC_BUSY = 6, /* -r: server busy received [terminal] */ | ||
| 56 | RXRPC_LOCAL_ERROR = 7, /* -r: local error generated [terminal] */ | ||
| 57 | RXRPC_NEW_CALL = 8, /* -r: [Service] new incoming call notification */ | ||
| 58 | RXRPC_ACCEPT = 9, /* s-: [Service] accept request */ | ||
| 59 | RXRPC_EXCLUSIVE_CALL = 10, /* s-: Call should be on exclusive connection */ | ||
| 60 | RXRPC_UPGRADE_SERVICE = 11, /* s-: Request service upgrade for client call */ | ||
| 61 | RXRPC_TX_LENGTH = 12, /* s-: Total length of Tx data */ | ||
| 62 | RXRPC__SUPPORTED | ||
| 63 | }; | ||
| 64 | |||
| 65 | /* | ||
| 66 | * RxRPC security levels | ||
| 67 | */ | ||
| 68 | #define RXRPC_SECURITY_PLAIN 0 /* plain secure-checksummed packets only */ | ||
| 69 | #define RXRPC_SECURITY_AUTH 1 /* authenticated packets */ | ||
| 70 | #define RXRPC_SECURITY_ENCRYPT 2 /* encrypted packets */ | ||
| 71 | |||
| 72 | /* | ||
| 73 | * RxRPC security indices | ||
| 74 | */ | ||
| 75 | #define RXRPC_SECURITY_NONE 0 /* no security protocol */ | ||
| 76 | #define RXRPC_SECURITY_RXKAD 2 /* kaserver or kerberos 4 */ | ||
| 77 | #define RXRPC_SECURITY_RXGK 4 /* gssapi-based */ | ||
| 78 | #define RXRPC_SECURITY_RXK5 5 /* kerberos 5 */ | ||
| 79 | |||
| 80 | /* | ||
| 81 | * RxRPC-level abort codes | ||
| 82 | */ | ||
| 83 | #define RX_CALL_DEAD -1 /* call/conn has been inactive and is shut down */ | ||
| 84 | #define RX_INVALID_OPERATION -2 /* invalid operation requested / attempted */ | ||
| 85 | #define RX_CALL_TIMEOUT -3 /* call timeout exceeded */ | ||
| 86 | #define RX_EOF -4 /* unexpected end of data on read op */ | ||
| 87 | #define RX_PROTOCOL_ERROR -5 /* low-level protocol error */ | ||
| 88 | #define RX_USER_ABORT -6 /* generic user abort */ | ||
| 89 | #define RX_ADDRINUSE -7 /* UDP port in use */ | ||
| 90 | #define RX_DEBUGI_BADTYPE -8 /* bad debugging packet type */ | ||
| 91 | |||
| 92 | /* | ||
| 93 | * (un)marshalling abort codes (rxgen) | ||
| 94 | */ | ||
| 95 | #define RXGEN_CC_MARSHAL -450 | ||
| 96 | #define RXGEN_CC_UNMARSHAL -451 | ||
| 97 | #define RXGEN_SS_MARSHAL -452 | ||
| 98 | #define RXGEN_SS_UNMARSHAL -453 | ||
| 99 | #define RXGEN_DECODE -454 | ||
| 100 | #define RXGEN_OPCODE -455 | ||
| 101 | #define RXGEN_SS_XDRFREE -456 | ||
| 102 | #define RXGEN_CC_XDRFREE -457 | ||
| 103 | |||
| 104 | /* | ||
| 105 | * Rx kerberos security abort codes | ||
| 106 | * - unfortunately we have no generalised security abort codes to say things | ||
| 107 | * like "unsupported security", so we have to use these instead and hope the | ||
| 108 | * other side understands | ||
| 109 | */ | ||
| 110 | #define RXKADINCONSISTENCY 19270400 /* security module structure inconsistent */ | ||
| 111 | #define RXKADPACKETSHORT 19270401 /* packet too short for security challenge */ | ||
| 112 | #define RXKADLEVELFAIL 19270402 /* security level negotiation failed */ | ||
| 113 | #define RXKADTICKETLEN 19270403 /* ticket length too short or too long */ | ||
| 114 | #define RXKADOUTOFSEQUENCE 19270404 /* packet had bad sequence number */ | ||
| 115 | #define RXKADNOAUTH 19270405 /* caller not authorised */ | ||
| 116 | #define RXKADBADKEY 19270406 /* illegal key: bad parity or weak */ | ||
| 117 | #define RXKADBADTICKET 19270407 /* security object was passed a bad ticket */ | ||
| 118 | #define RXKADUNKNOWNKEY 19270408 /* ticket contained unknown key version number */ | ||
| 119 | #define RXKADEXPIRED 19270409 /* authentication expired */ | ||
| 120 | #define RXKADSEALEDINCON 19270410 /* sealed data inconsistent */ | ||
| 121 | #define RXKADDATALEN 19270411 /* user data too long */ | ||
| 122 | #define RXKADILLEGALLEVEL 19270412 /* caller not authorised to use encrypted conns */ | ||
| 123 | |||
| 124 | #endif /* _UAPI_LINUX_RXRPC_H */ | ||
| @@ -11,27 +11,34 @@ · 10 unmodified lines | |||
| 11 | #define SECCOMP_MODE_FILTER 2 /* uses user-supplied filter. */ | 11 | #define SECCOMP_MODE_FILTER 2 /* uses user-supplied filter. */ |
| 12 | 12 | ||
| 13 | /* Valid operations for seccomp syscall. */ | 13 | /* Valid operations for seccomp syscall. */ |
| 14 | #define SECCOMP_SET_MODE_STRICT 0 | 14 | #define SECCOMP_SET_MODE_STRICT 0 |
| 15 | #define SECCOMP_SET_MODE_FILTER 1 | 15 | #define SECCOMP_SET_MODE_FILTER 1 |
| 16 | #define SECCOMP_GET_ACTION_AVAIL 2 | ||
| 16 | 17 | ||
| 17 | /* Valid flags for SECCOMP_SET_MODE_FILTER */ | 18 | /* Valid flags for SECCOMP_SET_MODE_FILTER */ |
| 18 | #define SECCOMP_FILTER_FLAG_TSYNC 1 | 19 | #define SECCOMP_FILTER_FLAG_TSYNC 1 |
| 20 | #define SECCOMP_FILTER_FLAG_LOG 2 | ||
| 19 | 21 | ||
| 20 | /* | 22 | /* |
| 21 | * All BPF programs must return a 32-bit value. | 23 | * All BPF programs must return a 32-bit value. |
| 22 | * The bottom 16-bits are for optional return data. | 24 | * The bottom 16-bits are for optional return data. |
| 23 | * The upper 16-bits are ordered from least permissive values to most. | 25 | * The upper 16-bits are ordered from least permissive values to most, |
| 26 | * as a signed value (so 0x8000000 is negative). | ||
| 24 | * | 27 | * |
| 25 | * The ordering ensures that a min_t() over composed return values always | 28 | * The ordering ensures that a min_t() over composed return values always |
| 26 | * selects the least permissive choice. | 29 | * selects the least permissive choice. |
| 27 | */ | 30 | */ |
| 28 | #define SECCOMP_RET_KILL 0x00000000U /* kill the task immediately */ | 31 | #define SECCOMP_RET_KILL_PROCESS 0x80000000U /* kill the process */ |
| 29 | #define SECCOMP_RET_TRAP 0x00030000U /* disallow and force a SIGSYS */ | 32 | #define SECCOMP_RET_KILL_THREAD 0x00000000U /* kill the thread */ |
| 30 | #define SECCOMP_RET_ERRNO 0x00050000U /* returns an errno */ | 33 | #define SECCOMP_RET_KILL SECCOMP_RET_KILL_THREAD |
| 31 | #define SECCOMP_RET_TRACE 0x7ff00000U /* pass to a tracer or disallow */ | 34 | #define SECCOMP_RET_TRAP 0x00030000U /* disallow and force a SIGSYS */ |
| 32 | #define SECCOMP_RET_ALLOW 0x7fff0000U /* allow */ | 35 | #define SECCOMP_RET_ERRNO 0x00050000U /* returns an errno */ |
| 36 | #define SECCOMP_RET_TRACE 0x7ff00000U /* pass to a tracer or disallow */ | ||
| 37 | #define SECCOMP_RET_LOG 0x7ffc0000U /* allow after logging */ | ||
| 38 | #define SECCOMP_RET_ALLOW 0x7fff0000U /* allow */ | ||
| 33 | 39 | ||
| 34 | /* Masks for the return value sections. */ | 40 | /* Masks for the return value sections. */ |
| 41 | #define SECCOMP_RET_ACTION_FULL 0xffff0000U | ||
| 35 | #define SECCOMP_RET_ACTION 0x7fff0000U | 42 | #define SECCOMP_RET_ACTION 0x7fff0000U |
| 36 | #define SECCOMP_RET_DATA 0x0000ffffU | 43 | #define SECCOMP_RET_DATA 0x0000ffffU |
| 37 | 44 | ||
| @@ -33,16 +33,26 @@ struct seg6_iptunnel_encap { · 32 unmodified lines | |||
| 33 | enum { | 33 | enum { |
| 34 | SEG6_IPTUN_MODE_INLINE, | 34 | SEG6_IPTUN_MODE_INLINE, |
| 35 | SEG6_IPTUN_MODE_ENCAP, | 35 | SEG6_IPTUN_MODE_ENCAP, |
| 36 | SEG6_IPTUN_MODE_L2ENCAP, | ||
| 36 | }; | 37 | }; |
| 37 | 38 | ||
| 38 | #ifdef __KERNEL__ | 39 | #ifdef __KERNEL__ |
| 39 | 40 | ||
| 40 | static inline size_t seg6_lwt_headroom(struct seg6_iptunnel_encap *tuninfo) | 41 | static inline size_t seg6_lwt_headroom(struct seg6_iptunnel_encap *tuninfo) |
| 41 | { | 42 | { |
| 42 | int encap = (tuninfo->mode == SEG6_IPTUN_MODE_ENCAP); | 43 | int head = 0; |
| 43 | 44 | ||
| 44 | return ((tuninfo->srh->hdrlen + 1) << 3) + | 45 | switch (tuninfo->mode) { |
| 45 | (encap * sizeof(struct ipv6hdr)); | 46 | case SEG6_IPTUN_MODE_INLINE: |
| 47 | break; | ||
| 48 | case SEG6_IPTUN_MODE_ENCAP: | ||
| 49 | head = sizeof(struct ipv6hdr); | ||
| 50 | break; | ||
| 51 | case SEG6_IPTUN_MODE_L2ENCAP: | ||
| 52 | return 0; | ||
| 53 | } | ||
| 54 | |||
| 55 | return ((tuninfo->srh->hdrlen + 1) << 3) + head; | ||
| 46 | } | 56 | } |
| 47 | 57 | ||
| 48 | #endif | 58 | #endif |
| @@ -0,0 +1,68 @@ | |||
| 1 | /* | ||
| 2 | * SR-IPv6 implementation | ||
| 3 | * | ||
| 4 | * Author: | ||
| 5 | * David Lebrun <david.lebrun@uclouvain.be> | ||
| 6 | * | ||
| 7 | * | ||
| 8 | * This program is free software; you can redistribute it and/or | ||
| 9 | * modify it under the terms of the GNU General Public License | ||
| 10 | * as published by the Free Software Foundation; either version | ||
| 11 | * 2 of the License, or (at your option) any later version. | ||
| 12 | */ | ||
| 13 | |||
| 14 | #ifndef _UAPI_LINUX_SEG6_LOCAL_H | ||
| 15 | #define _UAPI_LINUX_SEG6_LOCAL_H | ||
| 16 | |||
| 17 | #include <linux/seg6.h> | ||
| 18 | |||
| 19 | enum { | ||
| 20 | SEG6_LOCAL_UNSPEC, | ||
| 21 | SEG6_LOCAL_ACTION, | ||
| 22 | SEG6_LOCAL_SRH, | ||
| 23 | SEG6_LOCAL_TABLE, | ||
| 24 | SEG6_LOCAL_NH4, | ||
| 25 | SEG6_LOCAL_NH6, | ||
| 26 | SEG6_LOCAL_IIF, | ||
| 27 | SEG6_LOCAL_OIF, | ||
| 28 | __SEG6_LOCAL_MAX, | ||
| 29 | }; | ||
| 30 | #define SEG6_LOCAL_MAX (__SEG6_LOCAL_MAX - 1) | ||
| 31 | |||
| 32 | enum { | ||
| 33 | SEG6_LOCAL_ACTION_UNSPEC = 0, | ||
| 34 | /* node segment */ | ||
| 35 | SEG6_LOCAL_ACTION_END = 1, | ||
| 36 | /* adjacency segment (IPv6 cross-connect) */ | ||
| 37 | SEG6_LOCAL_ACTION_END_X = 2, | ||
| 38 | /* lookup of next seg NH in table */ | ||
| 39 | SEG6_LOCAL_ACTION_END_T = 3, | ||
| 40 | /* decap and L2 cross-connect */ | ||
| 41 | SEG6_LOCAL_ACTION_END_DX2 = 4, | ||
| 42 | /* decap and IPv6 cross-connect */ | ||
| 43 | SEG6_LOCAL_ACTION_END_DX6 = 5, | ||
| 44 | /* decap and IPv4 cross-connect */ | ||
| 45 | SEG6_LOCAL_ACTION_END_DX4 = 6, | ||
| 46 | /* decap and lookup of DA in v6 table */ | ||
| 47 | SEG6_LOCAL_ACTION_END_DT6 = 7, | ||
| 48 | /* decap and lookup of DA in v4 table */ | ||
| 49 | SEG6_LOCAL_ACTION_END_DT4 = 8, | ||
| 50 | /* binding segment with insertion */ | ||
| 51 | SEG6_LOCAL_ACTION_END_B6 = 9, | ||
| 52 | /* binding segment with encapsulation */ | ||
| 53 | SEG6_LOCAL_ACTION_END_B6_ENCAP = 10, | ||
| 54 | /* binding segment with MPLS encap */ | ||
| 55 | SEG6_LOCAL_ACTION_END_BM = 11, | ||
| 56 | /* lookup last seg in table */ | ||
| 57 | SEG6_LOCAL_ACTION_END_S = 12, | ||
| 58 | /* forward to SR-unaware VNF with static proxy */ | ||
| 59 | SEG6_LOCAL_ACTION_END_AS = 13, | ||
| 60 | /* forward to SR-unaware VNF with masquerading */ | ||
| 61 | SEG6_LOCAL_ACTION_END_AM = 14, | ||
| 62 | |||
| 63 | __SEG6_LOCAL_ACTION_MAX, | ||
| 64 | }; | ||
| 65 | |||
| 66 | #define SEG6_LOCAL_ACTION_MAX (__SEG6_LOCAL_ACTION_MAX - 1) | ||
| 67 | |||
| 68 | #endif | ||
| @@ -56,8 +56,6 @@ · 55 unmodified lines | |||
| 56 | #define PORT_ALTR_16550_F128 28 /* Altera 16550 UART with 128 FIFOs */ | 56 | #define PORT_ALTR_16550_F128 28 /* Altera 16550 UART with 128 FIFOs */ |
| 57 | #define PORT_RT2880 29 /* Ralink RT2880 internal UART */ | 57 | #define PORT_RT2880 29 /* Ralink RT2880 internal UART */ |
| 58 | #define PORT_16550A_FSL64 30 /* Freescale 16550 UART with 64 FIFOs */ | 58 | #define PORT_16550A_FSL64 30 /* Freescale 16550 UART with 64 FIFOs */ |
| 59 | #define PORT_DA830 31 /* TI DA8xx/66AK2x */ | ||
| 60 | #define PORT_MAX_8250 31 /* max port ID */ | ||
| 61 | 59 | ||
| 62 | /* | 60 | /* |
| 63 | * ARM specific type numbers. These are not currently guaranteed | 61 | * ARM specific type numbers. These are not currently guaranteed |
| @@ -70,12 +68,17 @@ · 6 unmodified lines | |||
| 70 | #define PORT_CLPS711X 33 | 68 | #define PORT_CLPS711X 33 |
| 71 | #define PORT_SA1100 34 | 69 | #define PORT_SA1100 34 |
| 72 | #define PORT_UART00 35 | 70 | #define PORT_UART00 35 |
| 71 | #define PORT_OWL 36 | ||
| 73 | #define PORT_21285 37 | 72 | #define PORT_21285 37 |
| 74 | 73 | ||
| 75 | /* Sparc type numbers. */ | 74 | /* Sparc type numbers. */ |
| 76 | #define PORT_SUNZILOG 38 | 75 | #define PORT_SUNZILOG 38 |
| 77 | #define PORT_SUNSAB 39 | 76 | #define PORT_SUNSAB 39 |
| 78 | 77 | ||
| 78 | /* Intel EG20 */ | ||
| 79 | #define PORT_PCH_8LINE 44 | ||
| 80 | #define PORT_PCH_2LINE 45 | ||
| 81 | |||
| 79 | /* DEC */ | 82 | /* DEC */ |
| 80 | #define PORT_DZ 46 | 83 | #define PORT_DZ 46 |
| 81 | #define PORT_ZS 47 | 84 | #define PORT_ZS 47 |
| @@ -205,8 +208,8 @@ · 123 unmodified lines | |||
| 205 | /* MAX310X */ | 208 | /* MAX310X */ |
| 206 | #define PORT_MAX310X 94 | 209 | #define PORT_MAX310X 94 |
| 207 | 210 | ||
| 208 | /* High Speed UART for Medfield */ | 211 | /* TI DA8xx/66AK2x */ |
| 209 | #define PORT_MFD 95 | 212 | #define PORT_DA830 95 |
| 210 | 213 | ||
| 211 | /* TI OMAP-UART */ | 214 | /* TI OMAP-UART */ |
| 212 | #define PORT_OMAP 96 | 215 | #define PORT_OMAP 96 |
| @@ -271,4 +274,7 @@ · 58 unmodified lines | |||
| 271 | /* MPS2 UART */ | 274 | /* MPS2 UART */ |
| 272 | #define PORT_MPS2UART 116 | 275 | #define PORT_MPS2UART 116 |
| 273 | 276 | ||
| 277 | /* MediaTek BTIF */ | ||
| 278 | #define PORT_MTK_BTIF 117 | ||
| 279 | |||
| 274 | #endif /* _UAPILINUX_SERIAL_CORE_H */ | 280 | #endif /* _UAPILINUX_SERIAL_CORE_H */ |
| @@ -3,6 +3,7 @@ · 2 unmodified lines | |||
| 3 | 3 | ||
| 4 | #include <linux/ipc.h> | 4 | #include <linux/ipc.h> |
| 5 | #include <linux/errno.h> | 5 | #include <linux/errno.h> |
| 6 | #include <asm-generic/hugetlb_encode.h> | ||
| 6 | #ifndef __KERNEL__ | 7 | #ifndef __KERNEL__ |
| 7 | #include <unistd.h> | 8 | #include <unistd.h> |
| 8 | #endif | 9 | #endif |
| @@ -40,11 +41,37 @@ struct shmid_ds { · 31 unmodified lines | |||
| 40 | /* Include the definition of shmid64_ds and shminfo64 */ | 41 | /* Include the definition of shmid64_ds and shminfo64 */ |
| 41 | #include <asm/shmbuf.h> | 42 | #include <asm/shmbuf.h> |
| 42 | 43 | ||
| 43 | /* permission flag for shmget */ | 44 | /* |
| 45 | * shmget() shmflg values. | ||
| 46 | */ | ||
| 47 | /* The bottom nine bits are the same as open(2) mode flags */ | ||
| 44 | #define SHM_R 0400 /* or S_IRUGO from <linux/stat.h> */ | 48 | #define SHM_R 0400 /* or S_IRUGO from <linux/stat.h> */ |
| 45 | #define SHM_W 0200 /* or S_IWUGO from <linux/stat.h> */ | 49 | #define SHM_W 0200 /* or S_IWUGO from <linux/stat.h> */ |
| 50 | /* Bits 9 & 10 are IPC_CREAT and IPC_EXCL */ | ||
| 51 | #define SHM_HUGETLB 04000 /* segment will use huge TLB pages */ | ||
| 52 | #define SHM_NORESERVE 010000 /* don't check for reservations */ | ||
| 53 | |||
| 54 | /* | ||
| 55 | * Huge page size encoding when SHM_HUGETLB is specified, and a huge page | ||
| 56 | * size other than the default is desired. See hugetlb_encode.h | ||
| 57 | */ | ||
| 58 | #define SHM_HUGE_SHIFT HUGETLB_FLAG_ENCODE_SHIFT | ||
| 59 | #define SHM_HUGE_MASK HUGETLB_FLAG_ENCODE_MASK | ||
| 60 | |||
| 61 | #define SHM_HUGE_64KB HUGETLB_FLAG_ENCODE_64KB | ||
| 62 | #define SHM_HUGE_512KB HUGETLB_FLAG_ENCODE_512KB | ||
| 63 | #define SHM_HUGE_1MB HUGETLB_FLAG_ENCODE_1MB | ||
| 64 | #define SHM_HUGE_2MB HUGETLB_FLAG_ENCODE_2MB | ||
| 65 | #define SHM_HUGE_8MB HUGETLB_FLAG_ENCODE_8MB | ||
| 66 | #define SHM_HUGE_16MB HUGETLB_FLAG_ENCODE_16MB | ||
| 67 | #define SHM_HUGE_256MB HUGETLB_FLAG_ENCODE_256MB | ||
| 68 | #define SHM_HUGE_1GB HUGETLB_FLAG_ENCODE_1GB | ||
| 69 | #define SHM_HUGE_2GB HUGETLB_FLAG_ENCODE_2GB | ||
| 70 | #define SHM_HUGE_16GB HUGETLB_FLAG_ENCODE_16GB | ||
| 46 | 71 | ||
| 47 | /* mode for attach */ | 72 | /* |
| 73 | * shmat() shmflg values | ||
| 74 | */ | ||
| 48 | #define SHM_RDONLY 010000 /* read-only access */ | 75 | #define SHM_RDONLY 010000 /* read-only access */ |
| 49 | #define SHM_RND 020000 /* round attach address to SHMLBA boundary */ | 76 | #define SHM_RND 020000 /* round attach address to SHMLBA boundary */ |
| 50 | #define SHM_REMAP 040000 /* take-over region on attach */ | 77 | #define SHM_REMAP 040000 /* take-over region on attach */ |
| @@ -184,12 +184,7 @@ enum · 183 unmodified lines | |||
| 184 | LINUX_MIB_DELAYEDACKLOST, /* DelayedACKLost */ | 184 | LINUX_MIB_DELAYEDACKLOST, /* DelayedACKLost */ |
| 185 | LINUX_MIB_LISTENOVERFLOWS, /* ListenOverflows */ | 185 | LINUX_MIB_LISTENOVERFLOWS, /* ListenOverflows */ |
| 186 | LINUX_MIB_LISTENDROPS, /* ListenDrops */ | 186 | LINUX_MIB_LISTENDROPS, /* ListenDrops */ |
| 187 | LINUX_MIB_TCPPREQUEUED, /* TCPPrequeued */ | ||
| 188 | LINUX_MIB_TCPDIRECTCOPYFROMBACKLOG, /* TCPDirectCopyFromBacklog */ | ||
| 189 | LINUX_MIB_TCPDIRECTCOPYFROMPREQUEUE, /* TCPDirectCopyFromPrequeue */ | ||
| 190 | LINUX_MIB_TCPPREQUEUEDROPPED, /* TCPPrequeueDropped */ | ||
| 191 | LINUX_MIB_TCPHPHITS, /* TCPHPHits */ | 187 | LINUX_MIB_TCPHPHITS, /* TCPHPHits */ |
| 192 | LINUX_MIB_TCPHPHITSTOUSER, /* TCPHPHitsToUser */ | ||
| 193 | LINUX_MIB_TCPPUREACKS, /* TCPPureAcks */ | 188 | LINUX_MIB_TCPPUREACKS, /* TCPPureAcks */ |
| 194 | LINUX_MIB_TCPHPACKS, /* TCPHPAcks */ | 189 | LINUX_MIB_TCPHPACKS, /* TCPHPAcks */ |
| 195 | LINUX_MIB_TCPRENORECOVERY, /* TCPRenoRecovery */ | 190 | LINUX_MIB_TCPRENORECOVERY, /* TCPRenoRecovery */ |
| @@ -208,14 +203,12 @@ enum · 12 unmodified lines | |||
| 208 | LINUX_MIB_TCPSACKFAILURES, /* TCPSackFailures */ | 203 | LINUX_MIB_TCPSACKFAILURES, /* TCPSackFailures */ |
| 209 | LINUX_MIB_TCPLOSSFAILURES, /* TCPLossFailures */ | 204 | LINUX_MIB_TCPLOSSFAILURES, /* TCPLossFailures */ |
| 210 | LINUX_MIB_TCPFASTRETRANS, /* TCPFastRetrans */ | 205 | LINUX_MIB_TCPFASTRETRANS, /* TCPFastRetrans */ |
| 211 | LINUX_MIB_TCPFORWARDRETRANS, /* TCPForwardRetrans */ | ||
| 212 | LINUX_MIB_TCPSLOWSTARTRETRANS, /* TCPSlowStartRetrans */ | 206 | LINUX_MIB_TCPSLOWSTARTRETRANS, /* TCPSlowStartRetrans */ |
| 213 | LINUX_MIB_TCPTIMEOUTS, /* TCPTimeouts */ | 207 | LINUX_MIB_TCPTIMEOUTS, /* TCPTimeouts */ |
| 214 | LINUX_MIB_TCPLOSSPROBES, /* TCPLossProbes */ | 208 | LINUX_MIB_TCPLOSSPROBES, /* TCPLossProbes */ |
| 215 | LINUX_MIB_TCPLOSSPROBERECOVERY, /* TCPLossProbeRecovery */ | 209 | LINUX_MIB_TCPLOSSPROBERECOVERY, /* TCPLossProbeRecovery */ |
| 216 | LINUX_MIB_TCPRENORECOVERYFAIL, /* TCPRenoRecoveryFail */ | 210 | LINUX_MIB_TCPRENORECOVERYFAIL, /* TCPRenoRecoveryFail */ |
| 217 | LINUX_MIB_TCPSACKRECOVERYFAIL, /* TCPSackRecoveryFail */ | 211 | LINUX_MIB_TCPSACKRECOVERYFAIL, /* TCPSackRecoveryFail */ |
| 218 | LINUX_MIB_TCPSCHEDULERFAILED, /* TCPSchedulerFailed */ | ||
| 219 | LINUX_MIB_TCPRCVCOLLAPSED, /* TCPRcvCollapsed */ | 212 | LINUX_MIB_TCPRCVCOLLAPSED, /* TCPRcvCollapsed */ |
| 220 | LINUX_MIB_TCPDSACKOLDSENT, /* TCPDSACKOldSent */ | 213 | LINUX_MIB_TCPDSACKOLDSENT, /* TCPDSACKOldSent */ |
| 221 | LINUX_MIB_TCPDSACKOFOSENT, /* TCPDSACKOfoSent */ | 214 | LINUX_MIB_TCPDSACKOFOSENT, /* TCPDSACKOfoSent */ |
| @@ -231,6 +231,14 @@ enum { · 230 unmodified lines | |||
| 231 | TCP_NLA_SNDBUF_LIMITED, /* Time (usec) limited by send buffer */ | 231 | TCP_NLA_SNDBUF_LIMITED, /* Time (usec) limited by send buffer */ |
| 232 | TCP_NLA_DATA_SEGS_OUT, /* Data pkts sent including retransmission */ | 232 | TCP_NLA_DATA_SEGS_OUT, /* Data pkts sent including retransmission */ |
| 233 | TCP_NLA_TOTAL_RETRANS, /* Data pkts retransmitted */ | 233 | TCP_NLA_TOTAL_RETRANS, /* Data pkts retransmitted */ |
| 234 | TCP_NLA_PACING_RATE, /* Pacing rate in bytes per second */ | ||
| 235 | TCP_NLA_DELIVERY_RATE, /* Delivery rate in bytes per second */ | ||
| 236 | TCP_NLA_SND_CWND, /* Sending congestion window */ | ||
| 237 | TCP_NLA_REORDERING, /* Reordering metric */ | ||
| 238 | TCP_NLA_MIN_RTT, /* minimum RTT */ | ||
| 239 | TCP_NLA_RECUR_RETRANS, /* Recurring retransmits for the current pkt */ | ||
| 240 | TCP_NLA_DELIVERY_RATE_APP_LMT, /* delivery rate application limited ? */ | ||
| 241 | |||
| 234 | }; | 242 | }; |
| 235 | 243 | ||
| 236 | /* for TCP_MD5SIG socket option */ | 244 | /* for TCP_MD5SIG socket option */ |
| @@ -248,4 +256,13 @@ struct tcp_md5sig { · 11 unmodified lines | |||
| 248 | __u8 tcpm_key[TCP_MD5SIG_MAXKEYLEN]; /* key (binary) */ | 256 | __u8 tcpm_key[TCP_MD5SIG_MAXKEYLEN]; /* key (binary) */ |
| 249 | }; | 257 | }; |
| 250 | 258 | ||
| 259 | /* INET_DIAG_MD5SIG */ | ||
| 260 | struct tcp_diag_md5sig { | ||
| 261 | __u8 tcpm_family; | ||
| 262 | __u8 tcpm_prefixlen; | ||
| 263 | __u16 tcpm_keylen; | ||
| 264 | __be32 tcpm_addr[4]; | ||
| 265 | __u8 tcpm_key[TCP_MD5SIG_MAXKEYLEN]; | ||
| 266 | }; | ||
| 267 | |||
| 251 | #endif /* _UAPI_LINUX_TCP_H */ | 268 | #endif /* _UAPI_LINUX_TCP_H */ |
| @@ -49,6 +49,7 @@ · 48 unmodified lines | |||
| 49 | #define TEE_MAX_ARG_SIZE 1024 | 49 | #define TEE_MAX_ARG_SIZE 1024 |
| 50 | 50 | ||
| 51 | #define TEE_GEN_CAP_GP (1 << 0)/* GlobalPlatform compliant TEE */ | 51 | #define TEE_GEN_CAP_GP (1 << 0)/* GlobalPlatform compliant TEE */ |
| 52 | #define TEE_GEN_CAP_PRIVILEGED (1 << 1)/* Privileged device (for supplicant) */ | ||
| 52 | 53 | ||
| 53 | /* | 54 | /* |
| 54 | * TEE Implementation ID | 55 | * TEE Implementation ID |
| @@ -0,0 +1,31 @@ | |||
| 1 | /* | ||
| 2 | * This file defines the USB charger type and state that are needed for | ||
| 3 | * USB device APIs. | ||
| 4 | */ | ||
| 5 | |||
| 6 | #ifndef _UAPI__LINUX_USB_CHARGER_H | ||
| 7 | #define _UAPI__LINUX_USB_CHARGER_H | ||
| 8 | |||
| 9 | /* | ||
| 10 | * USB charger type: | ||
| 11 | * SDP (Standard Downstream Port) | ||
| 12 | * DCP (Dedicated Charging Port) | ||
| 13 | * CDP (Charging Downstream Port) | ||
| 14 | * ACA (Accessory Charger Adapters) | ||
| 15 | */ | ||
| 16 | enum usb_charger_type { | ||
| 17 | UNKNOWN_TYPE, | ||
| 18 | SDP_TYPE, | ||
| 19 | DCP_TYPE, | ||
| 20 | CDP_TYPE, | ||
| 21 | ACA_TYPE, | ||
| 22 | }; | ||
| 23 | |||
| 24 | /* USB charger state */ | ||
| 25 | enum usb_charger_state { | ||
| 26 | USB_CHARGER_DEFAULT, | ||
| 27 | USB_CHARGER_PRESENT, | ||
| 28 | USB_CHARGER_ABSENT, | ||
| 29 | }; | ||
| 30 | |||
| 31 | #endif /* _UAPI__LINUX_USB_CHARGER_H */ | ||
| @@ -23,7 +23,9 @@ · 22 unmodified lines | |||
| 23 | UFFD_FEATURE_EVENT_REMOVE | \ | 23 | UFFD_FEATURE_EVENT_REMOVE | \ |
| 24 | UFFD_FEATURE_EVENT_UNMAP | \ | 24 | UFFD_FEATURE_EVENT_UNMAP | \ |
| 25 | UFFD_FEATURE_MISSING_HUGETLBFS | \ | 25 | UFFD_FEATURE_MISSING_HUGETLBFS | \ |
| 26 | UFFD_FEATURE_MISSING_SHMEM) | 26 | UFFD_FEATURE_MISSING_SHMEM | \ |
| 27 | UFFD_FEATURE_SIGBUS | \ | ||
| 28 | UFFD_FEATURE_THREAD_ID) | ||
| 27 | #define UFFD_API_IOCTLS \ | 29 | #define UFFD_API_IOCTLS \ |
| 28 | ((__u64)1 << _UFFDIO_REGISTER | \ | 30 | ((__u64)1 << _UFFDIO_REGISTER | \ |
| 29 | (__u64)1 << _UFFDIO_UNREGISTER | \ | 31 | (__u64)1 << _UFFDIO_UNREGISTER | \ |
| @@ -78,6 +80,9 @@ struct uffd_msg { · 48 unmodified lines | |||
| 78 | struct { | 80 | struct { |
| 79 | __u64 flags; | 81 | __u64 flags; |
| 80 | __u64 address; | 82 | __u64 address; |
| 83 | union { | ||
| 84 | __u32 ptid; | ||
| 85 | } feat; | ||
| 81 | } pagefault; | 86 | } pagefault; |
| 82 | 87 | ||
| 83 | struct { | 88 | struct { |
| @@ -153,6 +158,13 @@ struct uffdio_api { · 69 unmodified lines | |||
| 153 | * UFFD_FEATURE_MISSING_SHMEM works the same as | 158 | * UFFD_FEATURE_MISSING_SHMEM works the same as |
| 154 | * UFFD_FEATURE_MISSING_HUGETLBFS, but it applies to shmem | 159 | * UFFD_FEATURE_MISSING_HUGETLBFS, but it applies to shmem |
| 155 | * (i.e. tmpfs and other shmem based APIs). | 160 | * (i.e. tmpfs and other shmem based APIs). |
| 161 | * | ||
| 162 | * UFFD_FEATURE_SIGBUS feature means no page-fault | ||
| 163 | * (UFFD_EVENT_PAGEFAULT) event will be delivered, instead | ||
| 164 | * a SIGBUS signal will be sent to the faulting process. | ||
| 165 | * | ||
| 166 | * UFFD_FEATURE_THREAD_ID pid of the page faulted task_struct will | ||
| 167 | * be returned, if feature is not requested 0 will be returned. | ||
| 156 | */ | 168 | */ |
| 157 | #define UFFD_FEATURE_PAGEFAULT_FLAG_WP (1<<0) | 169 | #define UFFD_FEATURE_PAGEFAULT_FLAG_WP (1<<0) |
| 158 | #define UFFD_FEATURE_EVENT_FORK (1<<1) | 170 | #define UFFD_FEATURE_EVENT_FORK (1<<1) |
| @@ -161,6 +173,8 @@ struct uffdio_api { · 2 unmodified lines | |||
| 161 | #define UFFD_FEATURE_MISSING_HUGETLBFS (1<<4) | 173 | #define UFFD_FEATURE_MISSING_HUGETLBFS (1<<4) |
| 162 | #define UFFD_FEATURE_MISSING_SHMEM (1<<5) | 174 | #define UFFD_FEATURE_MISSING_SHMEM (1<<5) |
| 163 | #define UFFD_FEATURE_EVENT_UNMAP (1<<6) | 175 | #define UFFD_FEATURE_EVENT_UNMAP (1<<6) |
| 176 | #define UFFD_FEATURE_SIGBUS (1<<7) | ||
| 177 | #define UFFD_FEATURE_THREAD_ID (1<<8) | ||
| 164 | __u64 features; | 178 | __u64 features; |
| 165 | 179 | ||
| 166 | __u64 ioctls; | 180 | __u64 ioctls; |
| @@ -1,7 +1,7 @@ | |||
| 1 | #ifndef _UAPI_LINUX_VIRTIO_RING_H | 1 | #ifndef _UAPI_LINUX_VIRTIO_RING_H |
| 2 | #define _UAPI_LINUX_VIRTIO_RING_H | 2 | #define _UAPI_LINUX_VIRTIO_RING_H |
| 3 | /* An interface for efficient virtio implementation, currently for use by KVM | 3 | /* An interface for efficient virtio implementation, currently for use by KVM, |
| 4 | * and lguest, but hopefully others soon. Do NOT change this since it will | 4 | * but hopefully others soon. Do NOT change this since it will |
| 5 | * break existing servers and clients. | 5 | * break existing servers and clients. |
| 6 | * | 6 | * |
| 7 | * This header is BSD licensed so anyone can use the definitions to implement | 7 | * This header is BSD licensed so anyone can use the definitions to implement |
| @@ -304,6 +304,7 @@ enum xfrm_attr_type_t { · 303 unmodified lines | |||
| 304 | XFRMA_ADDRESS_FILTER, /* struct xfrm_address_filter */ | 304 | XFRMA_ADDRESS_FILTER, /* struct xfrm_address_filter */ |
| 305 | XFRMA_PAD, | 305 | XFRMA_PAD, |
| 306 | XFRMA_OFFLOAD_DEV, /* struct xfrm_state_offload */ | 306 | XFRMA_OFFLOAD_DEV, /* struct xfrm_state_offload */ |
| 307 | XFRMA_OUTPUT_MARK, /* __u32 */ | ||
| 307 | __XFRMA_MAX | 308 | __XFRMA_MAX |
| 308 | 309 | ||
| 309 | #define XFRMA_MAX (__XFRMA_MAX - 1) | 310 | #define XFRMA_MAX (__XFRMA_MAX - 1) |