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 (70 of 11102 files). Show all
Unified · Split
| @@ -0,0 +1,34 @@ | ||
| 1 | +#ifndef _ASM_GENERIC_HUGETLB_ENCODE_H_ | |
| 2 | +#define _ASM_GENERIC_HUGETLB_ENCODE_H_ | |
| 3 | + | |
| 4 | +/* | |
| 5 | + * Several system calls take a flag to request "hugetlb" huge pages. | |
| 6 | + * Without further specification, these system calls will use the | |
| 7 | + * system's default huge page size. If a system supports multiple | |
| 8 | + * huge page sizes, the desired huge page size can be specified in | |
| 9 | + * bits [26:31] of the flag arguments. The value in these 6 bits | |
| 10 | + * will encode the log2 of the huge page size. | |
| 11 | + * | |
| 12 | + * The following definitions are associated with this huge page size | |
| 13 | + * encoding in flag arguments. System call specific header files | |
| 14 | + * that use this encoding should include this file. They can then | |
| 15 | + * provide definitions based on these with their own specific prefix. | |
| 16 | + * for example: | |
| 17 | + * #define MAP_HUGE_SHIFT HUGETLB_FLAG_ENCODE_SHIFT | |
| 18 | + */ | |
| 19 | + | |
| 20 | +#define HUGETLB_FLAG_ENCODE_SHIFT 26 | |
| 21 | +#define HUGETLB_FLAG_ENCODE_MASK 0x3f | |
| 22 | + | |
| 23 | +#define HUGETLB_FLAG_ENCODE_64KB (16 << HUGETLB_FLAG_ENCODE_SHIFT) | |
| 24 | +#define HUGETLB_FLAG_ENCODE_512KB (19 << HUGETLB_FLAG_ENCODE_SHIFT) | |
| 25 | +#define HUGETLB_FLAG_ENCODE_1MB (20 << HUGETLB_FLAG_ENCODE_SHIFT) | |
| 26 | +#define HUGETLB_FLAG_ENCODE_2MB (21 << HUGETLB_FLAG_ENCODE_SHIFT) | |
| 27 | +#define HUGETLB_FLAG_ENCODE_8MB (23 << HUGETLB_FLAG_ENCODE_SHIFT) | |
| 28 | +#define HUGETLB_FLAG_ENCODE_16MB (24 << HUGETLB_FLAG_ENCODE_SHIFT) | |
| 29 | +#define HUGETLB_FLAG_ENCODE_256MB (28 << HUGETLB_FLAG_ENCODE_SHIFT) | |
| 30 | +#define HUGETLB_FLAG_ENCODE_1GB (30 << HUGETLB_FLAG_ENCODE_SHIFT) | |
| 31 | +#define HUGETLB_FLAG_ENCODE_2GB (31 << HUGETLB_FLAG_ENCODE_SHIFT) | |
| 32 | +#define HUGETLB_FLAG_ENCODE_16GB (34 << HUGETLB_FLAG_ENCODE_SHIFT) | |
| 33 | + | |
| 34 | +#endif /* _ASM_GENERIC_HUGETLB_ENCODE_H_ */ | |
| @@ -58,20 +58,12 @@ · 57 unmodified lines | ||
| 58 | 58 | overrides the coredump filter bits */ |
| 59 | 59 | #define MADV_DODUMP 17 /* Clear the MADV_DONTDUMP flag */ |
| 60 | 60 | |
| 61 | +#define MADV_WIPEONFORK 18 /* Zero memory on fork, child only */ | |
| 62 | +#define MADV_KEEPONFORK 19 /* Undo MADV_WIPEONFORK */ | |
| 63 | + | |
| 61 | 64 | /* compatibility flags */ |
| 62 | 65 | #define MAP_FILE 0 |
| 63 | 66 | |
| 64 | −/* | |
| 65 | − * When MAP_HUGETLB is set bits [26:31] encode the log2 of the huge page size. | |
| 66 | − * This gives us 6 bits, which is enough until someone invents 128 bit address | |
| 67 | − * spaces. | |
| 68 | − * | |
| 69 | − * Assume these are all power of twos. | |
| 70 | − * When 0 use the default page size. | |
| 71 | − */ | |
| 72 | −#define MAP_HUGE_SHIFT 26 | |
| 73 | −#define MAP_HUGE_MASK 0x3f | |
| 74 | − | |
| 75 | 67 | #define PKEY_DISABLE_ACCESS 0x1 |
| 76 | 68 | #define PKEY_DISABLE_WRITE 0x2 |
| 77 | 69 | #define PKEY_ACCESS_MASK (PKEY_DISABLE_ACCESS |\ |
| @@ -151,29 +151,6 @@ typedef struct siginfo { · 150 unmodified lines | ||
| 151 | 151 | #define si_arch _sifields._sigsys._arch |
| 152 | 152 | #endif |
| 153 | 153 | |
| 154 | −#ifdef __KERNEL__ | |
| 155 | −#define __SI_MASK 0xffff0000u | |
| 156 | −#define __SI_KILL (0 << 16) | |
| 157 | −#define __SI_TIMER (1 << 16) | |
| 158 | −#define __SI_POLL (2 << 16) | |
| 159 | −#define __SI_FAULT (3 << 16) | |
| 160 | −#define __SI_CHLD (4 << 16) | |
| 161 | −#define __SI_RT (5 << 16) | |
| 162 | −#define __SI_MESGQ (6 << 16) | |
| 163 | −#define __SI_SYS (7 << 16) | |
| 164 | −#define __SI_CODE(T,N) ((T) | ((N) & 0xffff)) | |
| 165 | −#else /* __KERNEL__ */ | |
| 166 | −#define __SI_KILL 0 | |
| 167 | −#define __SI_TIMER 0 | |
| 168 | −#define __SI_POLL 0 | |
| 169 | −#define __SI_FAULT 0 | |
| 170 | −#define __SI_CHLD 0 | |
| 171 | −#define __SI_RT 0 | |
| 172 | −#define __SI_MESGQ 0 | |
| 173 | −#define __SI_SYS 0 | |
| 174 | −#define __SI_CODE(T,N) (N) | |
| 175 | −#endif /* __KERNEL__ */ | |
| 176 | − | |
| 177 | 154 | /* |
| 178 | 155 | * si_code values |
| 179 | 156 | * Digital reserves positive values for kernel-generated signals. |
| @@ -181,8 +158,8 @@ typedef struct siginfo { · 1 unmodified line | ||
| 181 | 158 | #define SI_USER 0 /* sent by kill, sigsend, raise */ |
| 182 | 159 | #define SI_KERNEL 0x80 /* sent by the kernel from somewhere */ |
| 183 | 160 | #define SI_QUEUE -1 /* sent by sigqueue */ |
| 184 | −#define SI_TIMER __SI_CODE(__SI_TIMER,-2) /* sent by timer expiration */ | |
| 185 | −#define SI_MESGQ __SI_CODE(__SI_MESGQ,-3) /* sent by real time mesq state change */ | |
| 161 | +#define SI_TIMER -2 /* sent by timer expiration */ | |
| 162 | +#define SI_MESGQ -3 /* sent by real time mesq state change */ | |
| 186 | 163 | #define SI_ASYNCIO -4 /* sent by AIO completion */ |
| 187 | 164 | #define SI_SIGIO -5 /* sent by queued SIGIO */ |
| 188 | 165 | #define SI_TKILL -6 /* sent by tkill system call */ |
| @@ -194,86 +171,86 @@ typedef struct siginfo { · 5 unmodified lines | ||
| 194 | 171 | /* |
| 195 | 172 | * SIGILL si_codes |
| 196 | 173 | */ |
| 197 | −#define ILL_ILLOPC (__SI_FAULT|1) /* illegal opcode */ | |
| 198 | −#define ILL_ILLOPN (__SI_FAULT|2) /* illegal operand */ | |
| 199 | −#define ILL_ILLADR (__SI_FAULT|3) /* illegal addressing mode */ | |
| 200 | −#define ILL_ILLTRP (__SI_FAULT|4) /* illegal trap */ | |
| 201 | −#define ILL_PRVOPC (__SI_FAULT|5) /* privileged opcode */ | |
| 202 | −#define ILL_PRVREG (__SI_FAULT|6) /* privileged register */ | |
| 203 | −#define ILL_COPROC (__SI_FAULT|7) /* coprocessor error */ | |
| 204 | −#define ILL_BADSTK (__SI_FAULT|8) /* internal stack error */ | |
| 174 | +#define ILL_ILLOPC 1 /* illegal opcode */ | |
| 175 | +#define ILL_ILLOPN 2 /* illegal operand */ | |
| 176 | +#define ILL_ILLADR 3 /* illegal addressing mode */ | |
| 177 | +#define ILL_ILLTRP 4 /* illegal trap */ | |
| 178 | +#define ILL_PRVOPC 5 /* privileged opcode */ | |
| 179 | +#define ILL_PRVREG 6 /* privileged register */ | |
| 180 | +#define ILL_COPROC 7 /* coprocessor error */ | |
| 181 | +#define ILL_BADSTK 8 /* internal stack error */ | |
| 205 | 182 | #define NSIGILL 8 |
| 206 | 183 | |
| 207 | 184 | /* |
| 208 | 185 | * SIGFPE si_codes |
| 209 | 186 | */ |
| 210 | −#define FPE_INTDIV (__SI_FAULT|1) /* integer divide by zero */ | |
| 211 | −#define FPE_INTOVF (__SI_FAULT|2) /* integer overflow */ | |
| 212 | −#define FPE_FLTDIV (__SI_FAULT|3) /* floating point divide by zero */ | |
| 213 | −#define FPE_FLTOVF (__SI_FAULT|4) /* floating point overflow */ | |
| 214 | −#define FPE_FLTUND (__SI_FAULT|5) /* floating point underflow */ | |
| 215 | −#define FPE_FLTRES (__SI_FAULT|6) /* floating point inexact result */ | |
| 216 | −#define FPE_FLTINV (__SI_FAULT|7) /* floating point invalid operation */ | |
| 217 | −#define FPE_FLTSUB (__SI_FAULT|8) /* subscript out of range */ | |
| 187 | +#define FPE_INTDIV 1 /* integer divide by zero */ | |
| 188 | +#define FPE_INTOVF 2 /* integer overflow */ | |
| 189 | +#define FPE_FLTDIV 3 /* floating point divide by zero */ | |
| 190 | +#define FPE_FLTOVF 4 /* floating point overflow */ | |
| 191 | +#define FPE_FLTUND 5 /* floating point underflow */ | |
| 192 | +#define FPE_FLTRES 6 /* floating point inexact result */ | |
| 193 | +#define FPE_FLTINV 7 /* floating point invalid operation */ | |
| 194 | +#define FPE_FLTSUB 8 /* subscript out of range */ | |
| 218 | 195 | #define NSIGFPE 8 |
| 219 | 196 | |
| 220 | 197 | /* |
| 221 | 198 | * SIGSEGV si_codes |
| 222 | 199 | */ |
| 223 | −#define SEGV_MAPERR (__SI_FAULT|1) /* address not mapped to object */ | |
| 224 | −#define SEGV_ACCERR (__SI_FAULT|2) /* invalid permissions for mapped object */ | |
| 225 | −#define SEGV_BNDERR (__SI_FAULT|3) /* failed address bound checks */ | |
| 226 | −#define SEGV_PKUERR (__SI_FAULT|4) /* failed protection key checks */ | |
| 200 | +#define SEGV_MAPERR 1 /* address not mapped to object */ | |
| 201 | +#define SEGV_ACCERR 2 /* invalid permissions for mapped object */ | |
| 202 | +#define SEGV_BNDERR 3 /* failed address bound checks */ | |
| 203 | +#define SEGV_PKUERR 4 /* failed protection key checks */ | |
| 227 | 204 | #define NSIGSEGV 4 |
| 228 | 205 | |
| 229 | 206 | /* |
| 230 | 207 | * SIGBUS si_codes |
| 231 | 208 | */ |
| 232 | −#define BUS_ADRALN (__SI_FAULT|1) /* invalid address alignment */ | |
| 233 | −#define BUS_ADRERR (__SI_FAULT|2) /* non-existent physical address */ | |
| 234 | −#define BUS_OBJERR (__SI_FAULT|3) /* object specific hardware error */ | |
| 209 | +#define BUS_ADRALN 1 /* invalid address alignment */ | |
| 210 | +#define BUS_ADRERR 2 /* non-existent physical address */ | |
| 211 | +#define BUS_OBJERR 3 /* object specific hardware error */ | |
| 235 | 212 | /* hardware memory error consumed on a machine check: action required */ |
| 236 | −#define BUS_MCEERR_AR (__SI_FAULT|4) | |
| 213 | +#define BUS_MCEERR_AR 4 | |
| 237 | 214 | /* hardware memory error detected in process but not consumed: action optional*/ |
| 238 | −#define BUS_MCEERR_AO (__SI_FAULT|5) | |
| 215 | +#define BUS_MCEERR_AO 5 | |
| 239 | 216 | #define NSIGBUS 5 |
| 240 | 217 | |
| 241 | 218 | /* |
| 242 | 219 | * SIGTRAP si_codes |
| 243 | 220 | */ |
| 244 | −#define TRAP_BRKPT (__SI_FAULT|1) /* process breakpoint */ | |
| 245 | −#define TRAP_TRACE (__SI_FAULT|2) /* process trace trap */ | |
| 246 | −#define TRAP_BRANCH (__SI_FAULT|3) /* process taken branch trap */ | |
| 247 | −#define TRAP_HWBKPT (__SI_FAULT|4) /* hardware breakpoint/watchpoint */ | |
| 221 | +#define TRAP_BRKPT 1 /* process breakpoint */ | |
| 222 | +#define TRAP_TRACE 2 /* process trace trap */ | |
| 223 | +#define TRAP_BRANCH 3 /* process taken branch trap */ | |
| 224 | +#define TRAP_HWBKPT 4 /* hardware breakpoint/watchpoint */ | |
| 248 | 225 | #define NSIGTRAP 4 |
| 249 | 226 | |
| 250 | 227 | /* |
| 251 | 228 | * SIGCHLD si_codes |
| 252 | 229 | */ |
| 253 | −#define CLD_EXITED (__SI_CHLD|1) /* child has exited */ | |
| 254 | −#define CLD_KILLED (__SI_CHLD|2) /* child was killed */ | |
| 255 | −#define CLD_DUMPED (__SI_CHLD|3) /* child terminated abnormally */ | |
| 256 | −#define CLD_TRAPPED (__SI_CHLD|4) /* traced child has trapped */ | |
| 257 | −#define CLD_STOPPED (__SI_CHLD|5) /* child has stopped */ | |
| 258 | −#define CLD_CONTINUED (__SI_CHLD|6) /* stopped child has continued */ | |
| 230 | +#define CLD_EXITED 1 /* child has exited */ | |
| 231 | +#define CLD_KILLED 2 /* child was killed */ | |
| 232 | +#define CLD_DUMPED 3 /* child terminated abnormally */ | |
| 233 | +#define CLD_TRAPPED 4 /* traced child has trapped */ | |
| 234 | +#define CLD_STOPPED 5 /* child has stopped */ | |
| 235 | +#define CLD_CONTINUED 6 /* stopped child has continued */ | |
| 259 | 236 | #define NSIGCHLD 6 |
| 260 | 237 | |
| 261 | 238 | /* |
| 262 | − * SIGPOLL si_codes | |
| 239 | + * SIGPOLL (or any other signal without signal specific si_codes) si_codes | |
| 263 | 240 | */ |
| 264 | −#define POLL_IN (__SI_POLL|1) /* data input available */ | |
| 265 | −#define POLL_OUT (__SI_POLL|2) /* output buffers available */ | |
| 266 | −#define POLL_MSG (__SI_POLL|3) /* input message available */ | |
| 267 | −#define POLL_ERR (__SI_POLL|4) /* i/o error */ | |
| 268 | −#define POLL_PRI (__SI_POLL|5) /* high priority input available */ | |
| 269 | −#define POLL_HUP (__SI_POLL|6) /* device disconnected */ | |
| 241 | +#define POLL_IN 1 /* data input available */ | |
| 242 | +#define POLL_OUT 2 /* output buffers available */ | |
| 243 | +#define POLL_MSG 3 /* input message available */ | |
| 244 | +#define POLL_ERR 4 /* i/o error */ | |
| 245 | +#define POLL_PRI 5 /* high priority input available */ | |
| 246 | +#define POLL_HUP 6 /* device disconnected */ | |
| 270 | 247 | #define NSIGPOLL 6 |
| 271 | 248 | |
| 272 | 249 | /* |
| 273 | 250 | * SIGSYS si_codes |
| 274 | 251 | */ |
| 275 | −#define SYS_SECCOMP (__SI_SYS|1) /* seccomp triggered */ | |
| 276 | −#define NSIGSYS 1 | |
| 252 | +#define SYS_SECCOMP 1 /* seccomp triggered */ | |
| 253 | +#define NSIGSYS 1 | |
| 277 | 254 | |
| 278 | 255 | /* |
| 279 | 256 | * sigevent definitions |
| @@ -104,4 +104,6 @@ · 103 unmodified lines | ||
| 104 | 104 | |
| 105 | 105 | #define SO_PEERGROUPS 59 |
| 106 | 106 | |
| 107 | +#define SO_ZEROCOPY 60 | |
| 108 | + | |
| 107 | 109 | #endif /* __ASM_GENERIC_SOCKET_H */ |
| @@ -23,27 +23,27 @@ extern "C" { · 22 unmodified lines | ||
| 23 | 23 | DRM_##dir(DRM_COMMAND_BASE + DRM_ARMADA_##name, struct drm_armada_##str) |
| 24 | 24 | |
| 25 | 25 | struct drm_armada_gem_create { |
| 26 | − uint32_t handle; | |
| 27 | − uint32_t size; | |
| 26 | + __u32 handle; | |
| 27 | + __u32 size; | |
| 28 | 28 | }; |
| 29 | 29 | #define DRM_IOCTL_ARMADA_GEM_CREATE \ |
| 30 | 30 | ARMADA_IOCTL(IOWR, GEM_CREATE, gem_create) |
| 31 | 31 | |
| 32 | 32 | struct drm_armada_gem_mmap { |
| 33 | − uint32_t handle; | |
| 34 | − uint32_t pad; | |
| 35 | − uint64_t offset; | |
| 36 | − uint64_t size; | |
| 37 | − uint64_t addr; | |
| 33 | + __u32 handle; | |
| 34 | + __u32 pad; | |
| 35 | + __u64 offset; | |
| 36 | + __u64 size; | |
| 37 | + __u64 addr; | |
| 38 | 38 | }; |
| 39 | 39 | #define DRM_IOCTL_ARMADA_GEM_MMAP \ |
| 40 | 40 | ARMADA_IOCTL(IOWR, GEM_MMAP, gem_mmap) |
| 41 | 41 | |
| 42 | 42 | struct drm_armada_gem_pwrite { |
| 43 | − uint64_t ptr; | |
| 44 | − uint32_t handle; | |
| 45 | − uint32_t offset; | |
| 46 | − uint32_t size; | |
| 43 | + __u64 ptr; | |
| 44 | + __u32 handle; | |
| 45 | + __u32 offset; | |
| 46 | + __u32 size; | |
| 47 | 47 | }; |
| 48 | 48 | #define DRM_IOCTL_ARMADA_GEM_PWRITE \ |
| 49 | 49 | ARMADA_IOCTL(IOW, GEM_PWRITE, gem_pwrite) |
| @@ -700,6 +700,7 @@ struct drm_prime_handle { · 699 unmodified lines | ||
| 700 | 700 | |
| 701 | 701 | struct drm_syncobj_create { |
| 702 | 702 | __u32 handle; |
| 703 | +#define DRM_SYNCOBJ_CREATE_SIGNALED (1 << 0) | |
| 703 | 704 | __u32 flags; |
| 704 | 705 | }; |
| 705 | 706 | |
| @@ -718,6 +719,24 @@ struct drm_syncobj_handle { · 12 unmodified lines | ||
| 718 | 719 | __u32 pad; |
| 719 | 720 | }; |
| 720 | 721 | |
| 722 | +#define DRM_SYNCOBJ_WAIT_FLAGS_WAIT_ALL (1 << 0) | |
| 723 | +#define DRM_SYNCOBJ_WAIT_FLAGS_WAIT_FOR_SUBMIT (1 << 1) | |
| 724 | +struct drm_syncobj_wait { | |
| 725 | + __u64 handles; | |
| 726 | + /* absolute timeout */ | |
| 727 | + __s64 timeout_nsec; | |
| 728 | + __u32 count_handles; | |
| 729 | + __u32 flags; | |
| 730 | + __u32 first_signaled; /* only valid when not waiting all */ | |
| 731 | + __u32 pad; | |
| 732 | +}; | |
| 733 | + | |
| 734 | +struct drm_syncobj_array { | |
| 735 | + __u64 handles; | |
| 736 | + __u32 count_handles; | |
| 737 | + __u32 pad; | |
| 738 | +}; | |
| 739 | + | |
| 721 | 740 | #if defined(__cplusplus) |
| 722 | 741 | } |
| 723 | 742 | #endif |
| @@ -840,6 +859,9 @@ extern "C" { · 116 unmodified lines | ||
| 840 | 859 | #define DRM_IOCTL_SYNCOBJ_DESTROY DRM_IOWR(0xC0, struct drm_syncobj_destroy) |
| 841 | 860 | #define DRM_IOCTL_SYNCOBJ_HANDLE_TO_FD DRM_IOWR(0xC1, struct drm_syncobj_handle) |
| 842 | 861 | #define DRM_IOCTL_SYNCOBJ_FD_TO_HANDLE DRM_IOWR(0xC2, struct drm_syncobj_handle) |
| 862 | +#define DRM_IOCTL_SYNCOBJ_WAIT DRM_IOWR(0xC3, struct drm_syncobj_wait) | |
| 863 | +#define DRM_IOCTL_SYNCOBJ_RESET DRM_IOWR(0xC4, struct drm_syncobj_array) | |
| 864 | +#define DRM_IOCTL_SYNCOBJ_SIGNAL DRM_IOWR(0xC5, struct drm_syncobj_array) | |
| 843 | 865 | |
| 844 | 866 | /** |
| 845 | 867 | * Device specific ioctls should only be in their respective headers |
| @@ -185,6 +185,8 @@ extern "C" { · 184 unmodified lines | ||
| 185 | 185 | #define DRM_FORMAT_MOD_VENDOR_BROADCOM 0x07 |
| 186 | 186 | /* add more to the end as needed */ |
| 187 | 187 | |
| 188 | +#define DRM_FORMAT_RESERVED ((1ULL << 56) - 1) | |
| 189 | + | |
| 188 | 190 | #define fourcc_mod_code(vendor, val) \ |
| 189 | 191 | ((((__u64)DRM_FORMAT_MOD_VENDOR_## vendor) << 56) | (val & 0x00ffffffffffffffULL)) |
| 190 | 192 | |
| @@ -196,6 +198,15 @@ extern "C" { · 5 unmodified lines | ||
| 196 | 198 | * authoritative source for all of these. |
| 197 | 199 | */ |
| 198 | 200 | |
| 201 | +/* | |
| 202 | + * Invalid Modifier | |
| 203 | + * | |
| 204 | + * This modifier can be used as a sentinel to terminate the format modifiers | |
| 205 | + * list, or to initialize a variable with an invalid modifier. It might also be | |
| 206 | + * used to report an error back to userspace for certain APIs. | |
| 207 | + */ | |
| 208 | +#define DRM_FORMAT_MOD_INVALID fourcc_mod_code(NONE, DRM_FORMAT_RESERVED) | |
| 209 | + | |
| 199 | 210 | /* |
| 200 | 211 | * Linear Layout |
| 201 | 212 | * |
| @@ -252,6 +263,26 @@ extern "C" { · 50 unmodified lines | ||
| 252 | 263 | */ |
| 253 | 264 | #define I915_FORMAT_MOD_Yf_TILED fourcc_mod_code(INTEL, 3) |
| 254 | 265 | |
| 266 | +/* | |
| 267 | + * Intel color control surface (CCS) for render compression | |
| 268 | + * | |
| 269 | + * The framebuffer format must be one of the 8:8:8:8 RGB formats. | |
| 270 | + * The main surface will be plane index 0 and must be Y/Yf-tiled, | |
| 271 | + * the CCS will be plane index 1. | |
| 272 | + * | |
| 273 | + * Each CCS tile matches a 1024x512 pixel area of the main surface. | |
| 274 | + * To match certain aspects of the 3D hardware the CCS is | |
| 275 | + * considered to be made up of normal 128Bx32 Y tiles, Thus | |
| 276 | + * the CCS pitch must be specified in multiples of 128 bytes. | |
| 277 | + * | |
| 278 | + * In reality the CCS tile appears to be a 64Bx64 Y tile, composed | |
| 279 | + * of QWORD (8 bytes) chunks instead of OWORD (16 bytes) chunks. | |
| 280 | + * But that fact is not relevant unless the memory is accessed | |
| 281 | + * directly. | |
| 282 | + */ | |
| 283 | +#define I915_FORMAT_MOD_Y_TILED_CCS fourcc_mod_code(INTEL, 4) | |
| 284 | +#define I915_FORMAT_MOD_Yf_TILED_CCS fourcc_mod_code(INTEL, 5) | |
| 285 | + | |
| 255 | 286 | /* |
| 256 | 287 | * Tiled, NV12MT, grouped in 64 (pixels) x 32 (lines) -sized macroblocks |
| 257 | 288 | * |
| @@ -712,6 +712,56 @@ struct drm_mode_atomic { · 711 unmodified lines | ||
| 712 | 712 | __u64 user_data; |
| 713 | 713 | }; |
| 714 | 714 | |
| 715 | +struct drm_format_modifier_blob { | |
| 716 | +#define FORMAT_BLOB_CURRENT 1 | |
| 717 | + /* Version of this blob format */ | |
| 718 | + __u32 version; | |
| 719 | + | |
| 720 | + /* Flags */ | |
| 721 | + __u32 flags; | |
| 722 | + | |
| 723 | + /* Number of fourcc formats supported */ | |
| 724 | + __u32 count_formats; | |
| 725 | + | |
| 726 | + /* Where in this blob the formats exist (in bytes) */ | |
| 727 | + __u32 formats_offset; | |
| 728 | + | |
| 729 | + /* Number of drm_format_modifiers */ | |
| 730 | + __u32 count_modifiers; | |
| 731 | + | |
| 732 | + /* Where in this blob the modifiers exist (in bytes) */ | |
| 733 | + __u32 modifiers_offset; | |
| 734 | + | |
| 735 | + /* __u32 formats[] */ | |
| 736 | + /* struct drm_format_modifier modifiers[] */ | |
| 737 | +}; | |
| 738 | + | |
| 739 | +struct drm_format_modifier { | |
| 740 | + /* Bitmask of formats in get_plane format list this info applies to. The | |
| 741 | + * offset allows a sliding window of which 64 formats (bits). | |
| 742 | + * | |
| 743 | + * Some examples: | |
| 744 | + * In today's world with < 65 formats, and formats 0, and 2 are | |
| 745 | + * supported | |
| 746 | + * 0x0000000000000005 | |
| 747 | + * ^-offset = 0, formats = 5 | |
| 748 | + * | |
| 749 | + * If the number formats grew to 128, and formats 98-102 are | |
| 750 | + * supported with the modifier: | |
| 751 | + * | |
| 752 | + * 0x0000003c00000000 0000000000000000 | |
| 753 | + * ^ | |
| 754 | + * |__offset = 64, formats = 0x3c00000000 | |
| 755 | + * | |
| 756 | + */ | |
| 757 | + __u64 formats; | |
| 758 | + __u32 offset; | |
| 759 | + __u32 pad; | |
| 760 | + | |
| 761 | + /* The modifier that applies to the >get_plane format list bitmask. */ | |
| 762 | + __u64 modifier; | |
| 763 | +}; | |
| 764 | + | |
| 715 | 765 | /** |
| 716 | 766 | * Create a new 'blob' data property, copying length bytes from data pointer, |
| 717 | 767 | * and returning new blob ID. |
| @@ -260,6 +260,8 @@ typedef struct _drm_i915_sarea { · 259 unmodified lines | ||
| 260 | 260 | #define DRM_I915_GEM_CONTEXT_GETPARAM 0x34 |
| 261 | 261 | #define DRM_I915_GEM_CONTEXT_SETPARAM 0x35 |
| 262 | 262 | #define DRM_I915_PERF_OPEN 0x36 |
| 263 | +#define DRM_I915_PERF_ADD_CONFIG 0x37 | |
| 264 | +#define DRM_I915_PERF_REMOVE_CONFIG 0x38 | |
| 263 | 265 | |
| 264 | 266 | #define DRM_IOCTL_I915_INIT DRM_IOW( DRM_COMMAND_BASE + DRM_I915_INIT, drm_i915_init_t) |
| 265 | 267 | #define DRM_IOCTL_I915_FLUSH DRM_IO ( DRM_COMMAND_BASE + DRM_I915_FLUSH) |
| @@ -315,6 +317,8 @@ typedef struct _drm_i915_sarea { · 49 unmodified lines | ||
| 315 | 317 | #define DRM_IOCTL_I915_GEM_CONTEXT_GETPARAM DRM_IOWR (DRM_COMMAND_BASE + DRM_I915_GEM_CONTEXT_GETPARAM, struct drm_i915_gem_context_param) |
| 316 | 318 | #define DRM_IOCTL_I915_GEM_CONTEXT_SETPARAM DRM_IOWR (DRM_COMMAND_BASE + DRM_I915_GEM_CONTEXT_SETPARAM, struct drm_i915_gem_context_param) |
| 317 | 319 | #define DRM_IOCTL_I915_PERF_OPEN DRM_IOW(DRM_COMMAND_BASE + DRM_I915_PERF_OPEN, struct drm_i915_perf_open_param) |
| 320 | +#define DRM_IOCTL_I915_PERF_ADD_CONFIG DRM_IOW(DRM_COMMAND_BASE + DRM_I915_PERF_ADD_CONFIG, struct drm_i915_perf_oa_config) | |
| 321 | +#define DRM_IOCTL_I915_PERF_REMOVE_CONFIG DRM_IOW(DRM_COMMAND_BASE + DRM_I915_PERF_REMOVE_CONFIG, __u64) | |
| 318 | 322 | |
| 319 | 323 | /* Allow drivers to submit batchbuffers directly to hardware, relying |
| 320 | 324 | * on the security mechanisms provided by hardware. |
| @@ -431,6 +435,11 @@ typedef struct drm_i915_irq_wait { · 110 unmodified lines | ||
| 431 | 435 | */ |
| 432 | 436 | #define I915_PARAM_HAS_EXEC_BATCH_FIRST 48 |
| 433 | 437 | |
| 438 | +/* Query whether DRM_I915_GEM_EXECBUFFER2 supports supplying an array of | |
| 439 | + * drm_i915_gem_exec_fence structures. See I915_EXEC_FENCE_ARRAY. | |
| 440 | + */ | |
| 441 | +#define I915_PARAM_HAS_EXEC_FENCE_ARRAY 49 | |
| 442 | + | |
| 434 | 443 | typedef struct drm_i915_getparam { |
| 435 | 444 | __s32 param; |
| 436 | 445 | /* |
| @@ -812,6 +821,17 @@ struct drm_i915_gem_exec_object2 { · 375 unmodified lines | ||
| 812 | 821 | __u64 rsvd2; |
| 813 | 822 | }; |
| 814 | 823 | |
| 824 | +struct drm_i915_gem_exec_fence { | |
| 825 | + /** | |
| 826 | + * User's handle for a drm_syncobj to wait on or signal. | |
| 827 | + */ | |
| 828 | + __u32 handle; | |
| 829 | + | |
| 830 | +#define I915_EXEC_FENCE_WAIT (1<<0) | |
| 831 | +#define I915_EXEC_FENCE_SIGNAL (1<<1) | |
| 832 | + __u32 flags; | |
| 833 | +}; | |
| 834 | + | |
| 815 | 835 | struct drm_i915_gem_execbuffer2 { |
| 816 | 836 | /** |
| 817 | 837 | * List of gem_exec_object2 structs |
| @@ -826,7 +846,11 @@ struct drm_i915_gem_execbuffer2 { · 8 unmodified lines | ||
| 826 | 846 | __u32 DR1; |
| 827 | 847 | __u32 DR4; |
| 828 | 848 | __u32 num_cliprects; |
| 829 | − /** This is a struct drm_clip_rect *cliprects */ | |
| 849 | + /** | |
| 850 | + * This is a struct drm_clip_rect *cliprects if I915_EXEC_FENCE_ARRAY | |
| 851 | + * is not set. If I915_EXEC_FENCE_ARRAY is set, then this is a | |
| 852 | + * struct drm_i915_gem_exec_fence *fences. | |
| 853 | + */ | |
| 830 | 854 | __u64 cliprects_ptr; |
| 831 | 855 | #define I915_EXEC_RING_MASK (7<<0) |
| 832 | 856 | #define I915_EXEC_DEFAULT (0<<0) |
| @@ -927,7 +951,14 @@ struct drm_i915_gem_execbuffer2 { · 94 unmodified lines | ||
| 927 | 951 | * element). |
| 928 | 952 | */ |
| 929 | 953 | #define I915_EXEC_BATCH_FIRST (1<<18) |
| 930 | −#define __I915_EXEC_UNKNOWN_FLAGS (-(I915_EXEC_BATCH_FIRST<<1)) | |
| 954 | + | |
| 955 | +/* Setting I915_FENCE_ARRAY implies that num_cliprects and cliprects_ptr | |
| 956 | + * define an array of i915_gem_exec_fence structures which specify a set of | |
| 957 | + * dma fences to wait upon or signal. | |
| 958 | + */ | |
| 959 | +#define I915_EXEC_FENCE_ARRAY (1<<19) | |
| 960 | + | |
| 961 | +#define __I915_EXEC_UNKNOWN_FLAGS (-(I915_EXEC_FENCE_ARRAY<<1)) | |
| 931 | 962 | |
| 932 | 963 | #define I915_EXEC_CONTEXT_ID_MASK (0xffffffff) |
| 933 | 964 | #define i915_execbuffer2_set_context_id(eb2, context) \ |
| @@ -1467,6 +1498,22 @@ enum drm_i915_perf_record_type { · 533 unmodified lines | ||
| 1467 | 1498 | DRM_I915_PERF_RECORD_MAX /* non-ABI */ |
| 1468 | 1499 | }; |
| 1469 | 1500 | |
| 1501 | +/** | |
| 1502 | + * Structure to upload perf dynamic configuration into the kernel. | |
| 1503 | + */ | |
| 1504 | +struct drm_i915_perf_oa_config { | |
| 1505 | + /** String formatted like "%08x-%04x-%04x-%04x-%012x" */ | |
| 1506 | + char uuid[36]; | |
| 1507 | + | |
| 1508 | + __u32 n_mux_regs; | |
| 1509 | + __u32 n_boolean_regs; | |
| 1510 | + __u32 n_flex_regs; | |
| 1511 | + | |
| 1512 | + __u64 __user mux_regs_ptr; | |
| 1513 | + __u64 __user boolean_regs_ptr; | |
| 1514 | + __u64 __user flex_regs_ptr; | |
| 1515 | +}; | |
| 1516 | + | |
| 1470 | 1517 | #if defined(__cplusplus) |
| 1471 | 1518 | } |
| 1472 | 1519 | #endif |
| @@ -171,7 +171,7 @@ struct drm_msm_gem_submit_cmd { · 170 unmodified lines | ||
| 171 | 171 | __u32 size; /* in, cmdstream size */ |
| 172 | 172 | __u32 pad; |
| 173 | 173 | __u32 nr_relocs; /* in, number of submit_reloc's */ |
| 174 | − __u64 __user relocs; /* in, ptr to array of submit_reloc's */ | |
| 174 | + __u64 relocs; /* in, ptr to array of submit_reloc's */ | |
| 175 | 175 | }; |
| 176 | 176 | |
| 177 | 177 | /* Each buffer referenced elsewhere in the cmdstream submit (ie. the |
| @@ -215,8 +215,8 @@ struct drm_msm_gem_submit { · 37 unmodified lines | ||
| 215 | 215 | __u32 fence; /* out */ |
| 216 | 216 | __u32 nr_bos; /* in, number of submit_bo's */ |
| 217 | 217 | __u32 nr_cmds; /* in, number of submit_cmd's */ |
| 218 | − __u64 __user bos; /* in, ptr to array of submit_bo's */ | |
| 219 | − __u64 __user cmds; /* in, ptr to array of submit_cmd's */ | |
| 218 | + __u64 bos; /* in, ptr to array of submit_bo's */ | |
| 219 | + __u64 cmds; /* in, ptr to array of submit_cmd's */ | |
| 220 | 220 | __s32 fence_fd; /* in/out fence fd (see MSM_SUBMIT_FENCE_FD_IN/OUT) */ |
| 221 | 221 | }; |
| 222 | 222 | |
| @@ -80,8 +80,8 @@ struct drm_qxl_reloc { · 79 unmodified lines | ||
| 80 | 80 | }; |
| 81 | 81 | |
| 82 | 82 | struct drm_qxl_command { |
| 83 | − __u64 __user command; /* void* */ | |
| 84 | − __u64 __user relocs; /* struct drm_qxl_reloc* */ | |
| 83 | + __u64 command; /* void* */ | |
| 84 | + __u64 relocs; /* struct drm_qxl_reloc* */ | |
| 85 | 85 | __u32 type; |
| 86 | 86 | __u32 command_size; |
| 87 | 87 | __u32 relocs_num; |
| @@ -91,7 +91,7 @@ struct drm_qxl_command { · 3 unmodified lines | ||
| 91 | 91 | struct drm_qxl_execbuffer { |
| 92 | 92 | __u32 flags; /* for future use */ |
| 93 | 93 | __u32 commands_num; |
| 94 | − __u64 __user commands; /* struct drm_qxl_command* */ | |
| 94 | + __u64 commands; /* struct drm_qxl_command* */ | |
| 95 | 95 | }; |
| 96 | 96 | |
| 97 | 97 | struct drm_qxl_update_area { |
| @@ -40,6 +40,7 @@ extern "C" { · 39 unmodified lines | ||
| 40 | 40 | #define DRM_VC4_GET_PARAM 0x07 |
| 41 | 41 | #define DRM_VC4_SET_TILING 0x08 |
| 42 | 42 | #define DRM_VC4_GET_TILING 0x09 |
| 43 | +#define DRM_VC4_LABEL_BO 0x0a | |
| 43 | 44 | |
| 44 | 45 | #define DRM_IOCTL_VC4_SUBMIT_CL DRM_IOWR(DRM_COMMAND_BASE + DRM_VC4_SUBMIT_CL, struct drm_vc4_submit_cl) |
| 45 | 46 | #define DRM_IOCTL_VC4_WAIT_SEQNO DRM_IOWR(DRM_COMMAND_BASE + DRM_VC4_WAIT_SEQNO, struct drm_vc4_wait_seqno) |
| @@ -51,6 +52,7 @@ extern "C" { · 5 unmodified lines | ||
| 51 | 52 | #define DRM_IOCTL_VC4_GET_PARAM DRM_IOWR(DRM_COMMAND_BASE + DRM_VC4_GET_PARAM, struct drm_vc4_get_param) |
| 52 | 53 | #define DRM_IOCTL_VC4_SET_TILING DRM_IOWR(DRM_COMMAND_BASE + DRM_VC4_SET_TILING, struct drm_vc4_set_tiling) |
| 53 | 54 | #define DRM_IOCTL_VC4_GET_TILING DRM_IOWR(DRM_COMMAND_BASE + DRM_VC4_GET_TILING, struct drm_vc4_get_tiling) |
| 55 | +#define DRM_IOCTL_VC4_LABEL_BO DRM_IOWR(DRM_COMMAND_BASE + DRM_VC4_LABEL_BO, struct drm_vc4_label_bo) | |
| 54 | 56 | |
| 55 | 57 | struct drm_vc4_submit_rcl_surface { |
| 56 | 58 | __u32 hindex; /* Handle index, or ~0 if not present. */ |
| @@ -153,6 +155,16 @@ struct drm_vc4_submit_cl { · 96 unmodified lines | ||
| 153 | 155 | __u32 pad:24; |
| 154 | 156 | |
| 155 | 157 | #define VC4_SUBMIT_CL_USE_CLEAR_COLOR (1 << 0) |
| 158 | +/* By default, the kernel gets to choose the order that the tiles are | |
| 159 | + * rendered in. If this is set, then the tiles will be rendered in a | |
| 160 | + * raster order, with the right-to-left vs left-to-right and | |
| 161 | + * top-to-bottom vs bottom-to-top dictated by | |
| 162 | + * VC4_SUBMIT_CL_RCL_ORDER_INCREASING_*. This allows overlapping | |
| 163 | + * blits to be implemented using the 3D engine. | |
| 164 | + */ | |
| 165 | +#define VC4_SUBMIT_CL_FIXED_RCL_ORDER (1 << 1) | |
| 166 | +#define VC4_SUBMIT_CL_RCL_ORDER_INCREASING_X (1 << 2) | |
| 167 | +#define VC4_SUBMIT_CL_RCL_ORDER_INCREASING_Y (1 << 3) | |
| 156 | 168 | __u32 flags; |
| 157 | 169 | |
| 158 | 170 | /* Returned value of the seqno of this render job (for the |
| @@ -292,6 +304,7 @@ struct drm_vc4_get_hang_state { · 133 unmodified lines | ||
| 292 | 304 | #define DRM_VC4_PARAM_SUPPORTS_BRANCHES 3 |
| 293 | 305 | #define DRM_VC4_PARAM_SUPPORTS_ETC1 4 |
| 294 | 306 | #define DRM_VC4_PARAM_SUPPORTS_THREADED_FS 5 |
| 307 | +#define DRM_VC4_PARAM_SUPPORTS_FIXED_RCL_ORDER 6 | |
| 295 | 308 | |
| 296 | 309 | struct drm_vc4_get_param { |
| 297 | 310 | __u32 param; |
| @@ -311,6 +324,15 @@ struct drm_vc4_set_tiling { · 13 unmodified lines | ||
| 311 | 324 | __u64 modifier; |
| 312 | 325 | }; |
| 313 | 326 | |
| 327 | +/** | |
| 328 | + * struct drm_vc4_label_bo - Attach a name to a BO for debug purposes. | |
| 329 | + */ | |
| 330 | +struct drm_vc4_label_bo { | |
| 331 | + __u32 handle; | |
| 332 | + __u32 len; | |
| 333 | + __u64 name; | |
| 334 | +}; | |
| 335 | + | |
| 314 | 336 | #if defined(__cplusplus) |
| 315 | 337 | } |
| 316 | 338 | #endif |
| @@ -297,13 +297,17 @@ union drm_vmw_surface_reference_arg { · 296 unmodified lines | ||
| 297 | 297 | * @version: Allows expanding the execbuf ioctl parameters without breaking |
| 298 | 298 | * backwards compatibility, since user-space will always tell the kernel |
| 299 | 299 | * which version it uses. |
| 300 | − * @flags: Execbuf flags. None currently. | |
| 300 | + * @flags: Execbuf flags. | |
| 301 | + * @imported_fence_fd: FD for a fence imported from another device | |
| 301 | 302 | * |
| 302 | 303 | * Argument to the DRM_VMW_EXECBUF Ioctl. |
| 303 | 304 | */ |
| 304 | 305 | |
| 305 | 306 | #define DRM_VMW_EXECBUF_VERSION 2 |
| 306 | 307 | |
| 308 | +#define DRM_VMW_EXECBUF_FLAG_IMPORT_FENCE_FD (1 << 0) | |
| 309 | +#define DRM_VMW_EXECBUF_FLAG_EXPORT_FENCE_FD (1 << 1) | |
| 310 | + | |
| 307 | 311 | struct drm_vmw_execbuf_arg { |
| 308 | 312 | __u64 commands; |
| 309 | 313 | __u32 command_size; |
| @@ -312,7 +316,7 @@ struct drm_vmw_execbuf_arg { · 2 unmodified lines | ||
| 312 | 316 | __u32 version; |
| 313 | 317 | __u32 flags; |
| 314 | 318 | __u32 context_handle; |
| 315 | − __u32 pad64; | |
| 319 | + __s32 imported_fence_fd; | |
| 316 | 320 | }; |
| 317 | 321 | |
| 318 | 322 | /** |
| @@ -328,6 +332,7 @@ struct drm_vmw_execbuf_arg { · 9 unmodified lines | ||
| 328 | 332 | * @passed_seqno: The highest seqno number processed by the hardware |
| 329 | 333 | * so far. This can be used to mark user-space fence objects as signaled, and |
| 330 | 334 | * to determine whether a fence seqno might be stale. |
| 335 | + * @fd: FD associated with the fence, -1 if not exported | |
| 331 | 336 | * @error: This member should've been set to -EFAULT on submission. |
| 332 | 337 | * The following actions should be take on completion: |
| 333 | 338 | * error == -EFAULT: Fence communication failed. The host is synchronized. |
| @@ -345,7 +350,7 @@ struct drm_vmw_fence_rep { · 11 unmodified lines | ||
| 345 | 350 | __u32 mask; |
| 346 | 351 | __u32 seqno; |
| 347 | 352 | __u32 passed_seqno; |
| 348 | − __u32 pad64; | |
| 353 | + __s32 fd; | |
| 349 | 354 | __s32 error; |
| 350 | 355 | }; |
| 351 | 356 | |
| @@ -28,6 +28,7 @@ · 27 unmodified lines | ||
| 28 | 28 | #define __LINUX__AIO_ABI_H |
| 29 | 29 | |
| 30 | 30 | #include <linux/types.h> |
| 31 | +#include <linux/fs.h> | |
| 31 | 32 | #include <asm/byteorder.h> |
| 32 | 33 | |
| 33 | 34 | typedef __kernel_ulong_t aio_context_t; |
| @@ -62,14 +63,6 @@ struct io_event { · 28 unmodified lines | ||
| 62 | 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 | 67 | * we always use a 64bit off_t when communicating |
| 75 | 68 | * with userland. its up to libraries to do the |
| @@ -79,8 +72,16 @@ struct io_event { · 3 unmodified lines | ||
| 79 | 72 | struct iocb { |
| 80 | 73 | /* these are internal to the kernel/libc. */ |
| 81 | 74 | __u64 aio_data; /* data to be returned in event's data */ |
| 82 | − __u32 PADDED(aio_key, aio_rw_flags); | |
| 83 | − /* the kernel sets aio_key to the req # */ | |
| 75 | + | |
| 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 | 86 | /* common fields */ |
| 86 | 87 | __u16 aio_lio_opcode; /* see IOCB_CMD_ above */ |
| @@ -132,6 +132,7 @@ enum { · 131 unmodified lines | ||
| 132 | 132 | |
| 133 | 133 | /* struct binder_fd_array_object - object describing an array of fds in a buffer |
| 134 | 134 | * @hdr: common header structure |
| 135 | + * @pad: padding to ensure correct alignment | |
| 135 | 136 | * @num_fds: number of file descriptors in the buffer |
| 136 | 137 | * @parent: index in offset array to buffer holding the fd array |
| 137 | 138 | * @parent_offset: start offset of fd array in the buffer |
| @@ -152,6 +153,7 @@ enum { · 14 unmodified lines | ||
| 152 | 153 | */ |
| 153 | 154 | struct binder_fd_array_object { |
| 154 | 155 | struct binder_object_header hdr; |
| 156 | + __u32 pad; | |
| 155 | 157 | binder_size_t num_fds; |
| 156 | 158 | binder_size_t parent; |
| 157 | 159 | binder_size_t parent_offset; |
| @@ -184,6 +186,19 @@ struct binder_version { · 26 unmodified lines | ||
| 184 | 186 | #define BINDER_CURRENT_PROTOCOL_VERSION 8 |
| 185 | 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 | 202 | #define BINDER_WRITE_READ _IOWR('b', 1, struct binder_write_read) |
| 188 | 203 | #define BINDER_SET_IDLE_TIMEOUT _IOW('b', 3, __s64) |
| 189 | 204 | #define BINDER_SET_MAX_THREADS _IOW('b', 5, __u32) |
| @@ -191,6 +206,7 @@ struct binder_version { · 1 unmodified line | ||
| 191 | 206 | #define BINDER_SET_CONTEXT_MGR _IOW('b', 7, __s32) |
| 192 | 207 | #define BINDER_THREAD_EXIT _IOW('b', 8, __s32) |
| 193 | 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 | 212 | * NOTE: Two special error codes you should check for when calling |
| @@ -16,7 +16,7 @@ · 15 unmodified lines | ||
| 16 | 16 | #define AUTOFS_DEVICE_NAME "autofs" |
| 17 | 17 | |
| 18 | 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 | 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 | 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 | 158 | #define AUTOFS_IOC_PROTOSUBVER _IOR(AUTOFS_IOCTL, AUTOFS_IOC_PROTOSUBVER_CMD, int) |
| 161 | 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 | 52 | __BLK_TA_REMAP, /* bio was remapped */ |
| 53 | 53 | __BLK_TA_ABORT, /* request aborted */ |
| 54 | 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 | 62 | __BLK_TN_PROCESS = 0, /* establish pid/name mapping */ |
| 62 | 63 | __BLK_TN_TIMESTAMP, /* include system clock */ |
| 63 | 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 | 109 | __u32 cpu; /* on what cpu did it happen */ |
| 108 | 110 | __u16 error; /* completion error */ |
| 109 | 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 | 30 | #define BPF_FROM_LE BPF_TO_LE |
| 31 | 31 | #define BPF_FROM_BE BPF_TO_BE |
| 32 | 32 | |
| 33 | +/* jmp encodings */ | |
| 33 | 34 | #define BPF_JNE 0x50 /* jump != */ |
| 35 | +#define BPF_JLT 0xa0 /* LT is unsigned, '<' */ | |
| 36 | +#define BPF_JLE 0xb0 /* LE is unsigned, '<=' */ | |
| 34 | 37 | #define BPF_JSGT 0x60 /* SGT is signed '>', GT in x86 */ |
| 35 | 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 | 41 | #define BPF_CALL 0x80 /* function call */ |
| 37 | 42 | #define BPF_EXIT 0x90 /* function return */ |
| 38 | 43 | |
| @@ -104,6 +109,8 @@ enum bpf_map_type { · 65 unmodified lines | ||
| 104 | 109 | BPF_MAP_TYPE_LPM_TRIE, |
| 105 | 110 | BPF_MAP_TYPE_ARRAY_OF_MAPS, |
| 106 | 111 | BPF_MAP_TYPE_HASH_OF_MAPS, |
| 112 | + BPF_MAP_TYPE_DEVMAP, | |
| 113 | + BPF_MAP_TYPE_SOCKMAP, | |
| 107 | 114 | }; |
| 108 | 115 | |
| 109 | 116 | enum bpf_prog_type { |
| @@ -121,6 +128,7 @@ enum bpf_prog_type { · 11 unmodified lines | ||
| 121 | 128 | BPF_PROG_TYPE_LWT_OUT, |
| 122 | 129 | BPF_PROG_TYPE_LWT_XMIT, |
| 123 | 130 | BPF_PROG_TYPE_SOCK_OPS, |
| 131 | + BPF_PROG_TYPE_SK_SKB, | |
| 124 | 132 | }; |
| 125 | 133 | |
| 126 | 134 | enum bpf_attach_type { |
| @@ -128,6 +136,8 @@ enum bpf_attach_type { · 1 unmodified line | ||
| 128 | 136 | BPF_CGROUP_INET_EGRESS, |
| 129 | 137 | BPF_CGROUP_INET_SOCK_CREATE, |
| 130 | 138 | BPF_CGROUP_SOCK_OPS, |
| 139 | + BPF_SK_SKB_STREAM_PARSER, | |
| 140 | + BPF_SK_SKB_STREAM_VERDICT, | |
| 131 | 141 | __MAX_BPF_ATTACH_TYPE |
| 132 | 142 | }; |
| 133 | 143 | |
| @@ -153,6 +163,7 @@ enum bpf_attach_type { · 19 unmodified lines | ||
| 153 | 163 | #define BPF_NOEXIST 1 /* create new element if it didn't exist */ |
| 154 | 164 | #define BPF_EXIST 2 /* update existing element */ |
| 155 | 165 | |
| 166 | +/* flags for BPF_MAP_CREATE command */ | |
| 156 | 167 | #define BPF_F_NO_PREALLOC (1U << 0) |
| 157 | 168 | /* Instead of having one common LRU list in the |
| 158 | 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 | 172 | * across different LRU lists. |
| 162 | 173 | */ |
| 163 | 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 | 178 | union bpf_attr { |
| 166 | 179 | struct { /* anonymous struct used by BPF_MAP_CREATE command */ |
| @@ -168,8 +181,13 @@ union bpf_attr { · 1 unmodified line | ||
| 168 | 181 | __u32 key_size; /* size of key in bytes */ |
| 169 | 182 | __u32 value_size; /* size of value in bytes */ |
| 170 | 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 | 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 | 193 | struct { /* anonymous struct used by BPF_MAP_*_ELEM commands */ |
| @@ -344,9 +362,20 @@ union bpf_attr { · 168 unmodified lines | ||
| 344 | 362 | * int bpf_redirect(ifindex, flags) |
| 345 | 363 | * redirect to another netdev |
| 346 | 364 | * @ifindex: ifindex of the net device |
| 347 | − * @flags: bit 0 - if set, redirect to ingress instead of egress | |
| 348 | − * other bits - reserved | |
| 349 | − * Return: TC_ACT_REDIRECT | |
| 365 | + * @flags: | |
| 366 | + * cls_bpf: | |
| 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 | 380 | * u32 bpf_get_route_realm(skb) |
| 352 | 381 | * retrieve a dst's tclassid |
| @@ -539,6 +568,20 @@ union bpf_attr { · 186 unmodified lines | ||
| 539 | 568 | * @mode: operation mode (enum bpf_adj_room_mode) |
| 540 | 569 | * @flags: reserved for future use |
| 541 | 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 | 586 | #define __BPF_FUNC_MAPPER(FN) \ |
| 544 | 587 | FN(unspec), \ |
| @@ -591,7 +634,10 @@ union bpf_attr { · 46 unmodified lines | ||
| 591 | 634 | FN(get_socket_uid), \ |
| 592 | 635 | FN(set_hash), \ |
| 593 | 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 | 642 | /* integer value in 'imm' field of BPF_CALL instruction selects which helper |
| 597 | 643 | * function eBPF program intends to call |
| @@ -668,6 +714,15 @@ struct __sk_buff { · 70 unmodified lines | ||
| 668 | 714 | __u32 data; |
| 669 | 715 | __u32 data_end; |
| 670 | 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 | 728 | struct bpf_tunnel_key { |
| @@ -703,20 +758,23 @@ struct bpf_sock { · 29 unmodified lines | ||
| 703 | 758 | __u32 family; |
| 704 | 759 | __u32 type; |
| 705 | 760 | __u32 protocol; |
| 761 | + __u32 mark; | |
| 762 | + __u32 priority; | |
| 706 | 763 | }; |
| 707 | 764 | |
| 708 | 765 | #define XDP_PACKET_HEADROOM 256 |
| 709 | 766 | |
| 710 | 767 | /* User return codes for XDP prog type. |
| 711 | 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 | |
| 713 | − * in packet drop. | |
| 769 | + * return codes are reserved for future use. Unknown return codes will | |
| 770 | + * result in packet drops and a warning via bpf_warn_invalid_xdp_action(). | |
| 714 | 771 | */ |
| 715 | 772 | enum xdp_action { |
| 716 | 773 | XDP_ABORTED = 0, |
| 717 | 774 | XDP_DROP, |
| 718 | 775 | XDP_PASS, |
| 719 | 776 | XDP_TX, |
| 777 | + XDP_REDIRECT, | |
| 720 | 778 | }; |
| 721 | 779 | |
| 722 | 780 | /* user accessible metadata for XDP packet hook |
| @@ -727,6 +785,12 @@ struct xdp_md { · 4 unmodified lines | ||
| 727 | 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 | 794 | #define BPF_TAG_SIZE 8 |
| 731 | 795 | |
| 732 | 796 | struct bpf_prog_info { |
| @@ -255,13 +255,7 @@ struct btrfs_ioctl_fs_info_args { · 254 unmodified lines | ||
| 255 | 255 | #define BTRFS_FEATURE_INCOMPAT_DEFAULT_SUBVOL (1ULL << 1) |
| 256 | 256 | #define BTRFS_FEATURE_INCOMPAT_MIXED_GROUPS (1ULL << 2) |
| 257 | 257 | #define BTRFS_FEATURE_INCOMPAT_COMPRESS_LZO (1ULL << 3) |
| 258 | −/* | |
| 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) | |
| 258 | +#define BTRFS_FEATURE_INCOMPAT_COMPRESS_ZSTD (1ULL << 4) | |
| 265 | 259 | |
| 266 | 260 | /* |
| 267 | 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 | 60 | #define VFS_CAP_U32_2 2 |
| 61 | 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 | |
| 64 | −#define VFS_CAP_U32 VFS_CAP_U32_2 | |
| 65 | −#define VFS_CAP_REVISION VFS_CAP_REVISION_2 | |
| 63 | +#define VFS_CAP_REVISION_3 0x03000000 | |
| 64 | +#define VFS_CAP_U32_3 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 | 71 | struct vfs_cap_data { |
| 68 | 72 | __le32 magic_etc; /* Little endian */ |
| @@ -72,6 +76,18 @@ struct vfs_cap_data { · 3 unmodified lines | ||
| 72 | 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 | 91 | #ifndef __KERNEL__ |
| 76 | 92 | |
| 77 | 93 | /* |
| @@ -226,4 +226,22 @@ enum devlink_dpipe_action_type { · 225 unmodified lines | ||
| 226 | 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 | 247 | #endif /* _UAPI_LINUX_DEVLINK_H_ */ |
| @@ -10,6 +10,7 @@ · 9 unmodified lines | ||
| 10 | 10 | #define _DLM_NETLINK_H |
| 11 | 11 | |
| 12 | 12 | #include <linux/types.h> |
| 13 | +#include <linux/dlmconstants.h> | |
| 13 | 14 | |
| 14 | 15 | enum { |
| 15 | 16 | DLM_STATUS_WAITING = 1, |
| @@ -18,10 +18,13 @@ struct sock_extended_err { · 17 unmodified lines | ||
| 18 | 18 | #define SO_EE_ORIGIN_ICMP 2 |
| 19 | 19 | #define SO_EE_ORIGIN_ICMP6 3 |
| 20 | 20 | #define SO_EE_ORIGIN_TXSTATUS 4 |
| 21 | +#define SO_EE_ORIGIN_ZEROCOPY 5 | |
| 21 | 22 | #define SO_EE_ORIGIN_TIMESTAMPING SO_EE_ORIGIN_TXSTATUS |
| 22 | 23 | |
| 23 | 24 | #define SO_EE_OFFENDER(ee) ((struct sockaddr*)((ee)+1)) |
| 24 | 25 | |
| 26 | +#define SO_EE_CODE_ZEROCOPY_COPIED 1 | |
| 27 | + | |
| 25 | 28 | /** |
| 26 | 29 | * struct scm_timestamping - timestamps exposed through cmsg |
| 27 | 30 | * |
| @@ -1238,6 +1238,47 @@ struct ethtool_per_queue_op { · 1237 unmodified lines | ||
| 1238 | 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 | 1282 | /* CMDs currently supported */ |
| 1242 | 1283 | #define ETHTOOL_GSET 0x00000001 /* DEPRECATED, Get settings. |
| 1243 | 1284 | * Please use ETHTOOL_GLINKSETTINGS |
| @@ -1330,6 +1371,8 @@ struct ethtool_per_queue_op { · 86 unmodified lines | ||
| 1330 | 1371 | #define ETHTOOL_SLINKSETTINGS 0x0000004d /* Set ethtool_link_settings */ |
| 1331 | 1372 | #define ETHTOOL_PHY_GTUNABLE 0x0000004e /* Get PHY tunable configuration */ |
| 1332 | 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 | 1377 | /* compatibility with older code */ |
| 1335 | 1378 | #define SPARC_ETH_GSET ETHTOOL_GSET |
| @@ -1387,6 +1430,9 @@ enum ethtool_link_mode_bit_indices { · 51 unmodified lines | ||
| 1387 | 1430 | ETHTOOL_LINK_MODE_2500baseT_Full_BIT = 47, |
| 1388 | 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 | 1437 | /* Last allowed bit for __ETHTOOL_LINK_MODE_LEGACY_MASK is bit |
| 1392 | 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 | 1443 | __ETHTOOL_LINK_MODE_LAST |
| 1398 | − = ETHTOOL_LINK_MODE_5000baseT_Full_BIT, | |
| 1444 | + = ETHTOOL_LINK_MODE_FEC_BASER_BIT, | |
| 1399 | 1445 | }; |
| 1400 | 1446 | |
| 1401 | 1447 | #define __ETHTOOL_LINK_MODE_LEGACY_MASK(base_name) \ |
| @@ -1707,6 +1753,8 @@ enum ethtool_reset_flags { · 305 unmodified lines | ||
| 1707 | 1753 | * %ethtool_link_mode_bit_indices for the link modes, and other |
| 1708 | 1754 | * link features that the link partner advertised through |
| 1709 | 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 | 1759 | * If autonegotiation is disabled, the speed and @duplex represent the |
| 1712 | 1760 | * fixed link mode and are writable if the driver supports multiple |
| @@ -1758,7 +1806,9 @@ struct ethtool_link_settings { · 45 unmodified lines | ||
| 1758 | 1806 | __u8 eth_tp_mdix; |
| 1759 | 1807 | __u8 eth_tp_mdix_ctrl; |
| 1760 | 1808 | __s8 link_mode_masks_nwords; |
| 1761 | − __u32 reserved[8]; | |
| 1809 | + __u8 transceiver; | |
| 1810 | + __u8 reserved1[3]; | |
| 1811 | + __u32 reserved[7]; | |
| 1762 | 1812 | __u32 link_mode_masks[0]; |
| 1763 | 1813 | /* layout of link_mode_masks fields: |
| 1764 | 1814 | * __u32 map_supported[link_mode_masks_nwords]; |
| @@ -358,13 +358,25 @@ struct fscrypt_key { · 357 unmodified lines | ||
| 358 | 358 | #define SYNC_FILE_RANGE_WRITE 2 |
| 359 | 359 | #define SYNC_FILE_RANGE_WAIT_AFTER 4 |
| 360 | 360 | |
| 361 | −/* flags for preadv2/pwritev2: */ | |
| 362 | −#define RWF_HIPRI 0x00000001 /* high priority request, poll if possible */ | |
| 363 | −#define RWF_DSYNC 0x00000002 /* per-IO O_DSYNC */ | |
| 364 | −#define RWF_SYNC 0x00000004 /* per-IO O_SYNC */ | |
| 365 | −#define RWF_NOWAIT 0x00000008 /* per-IO, return -EAGAIN if operation would block */ | |
| 366 | − | |
| 367 | −#define RWF_SUPPORTED (RWF_HIPRI | RWF_DSYNC | RWF_SYNC |\ | |
| 368 | − RWF_NOWAIT) | |
| 361 | +/* | |
| 362 | + * Flags for preadv2/pwritev2: | |
| 363 | + */ | |
| 364 | + | |
| 365 | +typedef int __bitwise __kernel_rwf_t; | |
| 366 | + | |
| 367 | +/* high priority request, poll if possible */ | |
| 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 | 382 | #endif /* _UAPI_LINUX_FS_H */ |
| @@ -96,7 +96,7 @@ fsmap_advance( · 95 unmodified lines | ||
| 96 | 96 | #define FMR_OF_EXTENT_MAP 0x4 /* segment = extent map */ |
| 97 | 97 | #define FMR_OF_SHARED 0x8 /* segment = shared with another file */ |
| 98 | 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 | 101 | /* Each FS gets to define its own special owner codes. */ |
| 102 | 102 | #define FMR_OWNER(type, code) (((__u64)type << 32) | \ |
| @@ -59,6 +59,7 @@ · 58 unmodified lines | ||
| 59 | 59 | #define ARPHRD_LAPB 516 /* LAPB */ |
| 60 | 60 | #define ARPHRD_DDCMP 517 /* Digital's DDCMP protocol */ |
| 61 | 61 | #define ARPHRD_RAWHDLC 518 /* Raw HDLC */ |
| 62 | +#define ARPHRD_RAWIP 519 /* Raw IP */ | |
| 62 | 63 | |
| 63 | 64 | #define ARPHRD_TUNNEL 768 /* IPIP tunnel */ |
| 64 | 65 | #define ARPHRD_TUNNEL6 769 /* IP6IP6 tunnel */ |
| @@ -66,6 +66,7 @@ · 65 unmodified lines | ||
| 66 | 66 | #define ETH_P_ATALK 0x809B /* Appletalk DDP */ |
| 67 | 67 | #define ETH_P_AARP 0x80F3 /* Appletalk AARP */ |
| 68 | 68 | #define ETH_P_8021Q 0x8100 /* 802.1Q VLAN Extended Header */ |
| 69 | +#define ETH_P_ERSPAN 0x88BE /* ERSPAN type II */ | |
| 69 | 70 | #define ETH_P_IPX 0x8137 /* IPX over DIX */ |
| 70 | 71 | #define ETH_P_IPV6 0x86DD /* IPv6 over bluebook */ |
| 71 | 72 | #define ETH_P_PAUSE 0x8808 /* IEEE Pause frames. See 802.3 31B */ |
| @@ -98,11 +99,13 @@ · 26 unmodified lines | ||
| 98 | 99 | #define ETH_P_FIP 0x8914 /* FCoE Initialization Protocol */ |
| 99 | 100 | #define ETH_P_80221 0x8917 /* IEEE 802.21 Media Independent Handover Protocol */ |
| 100 | 101 | #define ETH_P_HSR 0x892F /* IEC 62439-3 HSRv1 */ |
| 102 | +#define ETH_P_NSH 0x894F /* Network Service Header */ | |
| 101 | 103 | #define ETH_P_LOOPBACK 0x9000 /* Ethernet loopback packet, per IEEE 802.3 */ |
| 102 | 104 | #define ETH_P_QINQ1 0x9100 /* deprecated QinQ VLAN [ NOT AN OFFICIALLY REGISTERED ID ] */ |
| 103 | 105 | #define ETH_P_QINQ2 0x9200 /* deprecated QinQ VLAN [ NOT AN OFFICIALLY REGISTERED ID ] */ |
| 104 | 106 | #define ETH_P_QINQ3 0x9300 /* deprecated QinQ VLAN [ NOT AN OFFICIALLY REGISTERED ID ] */ |
| 105 | 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 | 109 | #define ETH_P_AF_IUCV 0xFBFB /* IBM af_iucv [ NOT AN OFFICIALLY REGISTERED ID ] */ |
| 107 | 110 | |
| 108 | 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 | 140 | #define ETH_P_IEEE802154 0x00F6 /* IEEE802.15.4 frame */ |
| 138 | 141 | #define ETH_P_CAIF 0x00F7 /* ST-Ericsson CAIF protocol */ |
| 139 | 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 | 148 | * This is an Ethernet frame header. |
| @@ -134,6 +134,7 @@ enum { · 133 unmodified lines | ||
| 134 | 134 | IFLA_GRE_COLLECT_METADATA, |
| 135 | 135 | IFLA_GRE_IGNORE_DF, |
| 136 | 136 | IFLA_GRE_FWMARK, |
| 137 | + IFLA_GRE_ERSPAN_INDEX, | |
| 137 | 138 | __IFLA_GRE_MAX, |
| 138 | 139 | }; |
| 139 | 140 | |
| @@ -142,6 +142,8 @@ enum { · 141 unmodified lines | ||
| 142 | 142 | INET_DIAG_PAD, |
| 143 | 143 | INET_DIAG_MARK, |
| 144 | 144 | INET_DIAG_BBRINFO, |
| 145 | + INET_DIAG_CLASS_ID, | |
| 146 | + INET_DIAG_MD5SIG, | |
| 145 | 147 | __INET_DIAG_MAX, |
| 146 | 148 | }; |
| 147 | 149 | |
| @@ -23,15 +23,15 @@ · 22 unmodified lines | ||
| 23 | 23 | #ifndef KFD_IOCTL_H_INCLUDED |
| 24 | 24 | #define KFD_IOCTL_H_INCLUDED |
| 25 | 25 | |
| 26 | −#include <linux/types.h> | |
| 26 | +#include <drm/drm.h> | |
| 27 | 27 | #include <linux/ioctl.h> |
| 28 | 28 | |
| 29 | 29 | #define KFD_IOCTL_MAJOR_VERSION 1 |
| 30 | 30 | #define KFD_IOCTL_MINOR_VERSION 1 |
| 31 | 31 | |
| 32 | 32 | struct kfd_ioctl_get_version_args { |
| 33 | − uint32_t major_version; /* from KFD */ | |
| 34 | − uint32_t minor_version; /* from KFD */ | |
| 33 | + __u32 major_version; /* from KFD */ | |
| 34 | + __u32 minor_version; /* from KFD */ | |
| 35 | 35 | }; |
| 36 | 36 | |
| 37 | 37 | /* For kfd_ioctl_create_queue_args.queue_type. */ |
| @@ -43,36 +43,36 @@ struct kfd_ioctl_get_version_args { · 5 unmodified lines | ||
| 43 | 43 | #define KFD_MAX_QUEUE_PRIORITY 15 |
| 44 | 44 | |
| 45 | 45 | struct kfd_ioctl_create_queue_args { |
| 46 | − uint64_t ring_base_address; /* to KFD */ | |
| 47 | − uint64_t write_pointer_address; /* from KFD */ | |
| 48 | − uint64_t read_pointer_address; /* from KFD */ | |
| 49 | − uint64_t doorbell_offset; /* from KFD */ | |
| 50 | − | |
| 51 | − uint32_t ring_size; /* to KFD */ | |
| 52 | − uint32_t gpu_id; /* to KFD */ | |
| 53 | − uint32_t queue_type; /* to KFD */ | |
| 54 | − uint32_t queue_percentage; /* to KFD */ | |
| 55 | − uint32_t queue_priority; /* to KFD */ | |
| 56 | − uint32_t queue_id; /* from KFD */ | |
| 57 | − | |
| 58 | − uint64_t eop_buffer_address; /* to KFD */ | |
| 59 | − uint64_t eop_buffer_size; /* to KFD */ | |
| 60 | − uint64_t ctx_save_restore_address; /* to KFD */ | |
| 61 | − uint64_t ctx_save_restore_size; /* to KFD */ | |
| 46 | + __u64 ring_base_address; /* to KFD */ | |
| 47 | + __u64 write_pointer_address; /* from KFD */ | |
| 48 | + __u64 read_pointer_address; /* from KFD */ | |
| 49 | + __u64 doorbell_offset; /* from KFD */ | |
| 50 | + | |
| 51 | + __u32 ring_size; /* to KFD */ | |
| 52 | + __u32 gpu_id; /* to KFD */ | |
| 53 | + __u32 queue_type; /* to KFD */ | |
| 54 | + __u32 queue_percentage; /* to KFD */ | |
| 55 | + __u32 queue_priority; /* to KFD */ | |
| 56 | + __u32 queue_id; /* from KFD */ | |
| 57 | + | |
| 58 | + __u64 eop_buffer_address; /* to KFD */ | |
| 59 | + __u64 eop_buffer_size; /* to KFD */ | |
| 60 | + __u64 ctx_save_restore_address; /* to KFD */ | |
| 61 | + __u64 ctx_save_restore_size; /* to KFD */ | |
| 62 | 62 | }; |
| 63 | 63 | |
| 64 | 64 | struct kfd_ioctl_destroy_queue_args { |
| 65 | − uint32_t queue_id; /* to KFD */ | |
| 66 | − uint32_t pad; | |
| 65 | + __u32 queue_id; /* to KFD */ | |
| 66 | + __u32 pad; | |
| 67 | 67 | }; |
| 68 | 68 | |
| 69 | 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 */ | |
| 73 | − uint32_t ring_size; /* to KFD */ | |
| 74 | − uint32_t queue_percentage; /* to KFD */ | |
| 75 | − uint32_t queue_priority; /* to KFD */ | |
| 72 | + __u32 queue_id; /* to KFD */ | |
| 73 | + __u32 ring_size; /* to KFD */ | |
| 74 | + __u32 queue_percentage; /* to KFD */ | |
| 75 | + __u32 queue_priority; /* to KFD */ | |
| 76 | 76 | }; |
| 77 | 77 | |
| 78 | 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 | 80 | #define KFD_IOC_CACHE_POLICY_NONCOHERENT 1 |
| 81 | 81 | |
| 82 | 82 | struct kfd_ioctl_set_memory_policy_args { |
| 83 | − uint64_t alternate_aperture_base; /* to KFD */ | |
| 84 | − uint64_t alternate_aperture_size; /* to KFD */ | |
| 83 | + __u64 alternate_aperture_base; /* to KFD */ | |
| 84 | + __u64 alternate_aperture_size; /* to KFD */ | |
| 85 | 85 | |
| 86 | − uint32_t gpu_id; /* to KFD */ | |
| 87 | − uint32_t default_policy; /* to KFD */ | |
| 88 | − uint32_t alternate_policy; /* to KFD */ | |
| 89 | − uint32_t pad; | |
| 86 | + __u32 gpu_id; /* to KFD */ | |
| 87 | + __u32 default_policy; /* to KFD */ | |
| 88 | + __u32 alternate_policy; /* to KFD */ | |
| 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 | 99 | struct kfd_ioctl_get_clock_counters_args { |
| 100 | − uint64_t gpu_clock_counter; /* from KFD */ | |
| 101 | − uint64_t cpu_clock_counter; /* from KFD */ | |
| 102 | − uint64_t system_clock_counter; /* from KFD */ | |
| 103 | − uint64_t system_clock_freq; /* from KFD */ | |
| 100 | + __u64 gpu_clock_counter; /* from KFD */ | |
| 101 | + __u64 cpu_clock_counter; /* from KFD */ | |
| 102 | + __u64 system_clock_counter; /* from KFD */ | |
| 103 | + __u64 system_clock_freq; /* from KFD */ | |
| 104 | 104 | |
| 105 | − uint32_t gpu_id; /* to KFD */ | |
| 106 | − uint32_t pad; | |
| 105 | + __u32 gpu_id; /* to KFD */ | |
| 106 | + __u32 pad; | |
| 107 | 107 | }; |
| 108 | 108 | |
| 109 | 109 | #define NUM_OF_SUPPORTED_GPUS 7 |
| 110 | 110 | |
| 111 | 111 | struct kfd_process_device_apertures { |
| 112 | − uint64_t lds_base; /* from KFD */ | |
| 113 | − uint64_t lds_limit; /* from KFD */ | |
| 114 | − uint64_t scratch_base; /* from KFD */ | |
| 115 | − uint64_t scratch_limit; /* from KFD */ | |
| 116 | − uint64_t gpuvm_base; /* from KFD */ | |
| 117 | − uint64_t gpuvm_limit; /* from KFD */ | |
| 118 | − uint32_t gpu_id; /* from KFD */ | |
| 119 | − uint32_t pad; | |
| 112 | + __u64 lds_base; /* from KFD */ | |
| 113 | + __u64 lds_limit; /* from KFD */ | |
| 114 | + __u64 scratch_base; /* from KFD */ | |
| 115 | + __u64 scratch_limit; /* from KFD */ | |
| 116 | + __u64 gpuvm_base; /* from KFD */ | |
| 117 | + __u64 gpuvm_limit; /* from KFD */ | |
| 118 | + __u32 gpu_id; /* from KFD */ | |
| 119 | + __u32 pad; | |
| 120 | 120 | }; |
| 121 | 121 | |
| 122 | 122 | struct kfd_ioctl_get_process_apertures_args { |
| @@ -124,8 +124,8 @@ struct kfd_ioctl_get_process_apertures_args { · 1 unmodified line | ||
| 124 | 124 | process_apertures[NUM_OF_SUPPORTED_GPUS];/* from KFD */ |
| 125 | 125 | |
| 126 | 126 | /* from KFD, should be in the range [1 - NUM_OF_SUPPORTED_GPUS] */ |
| 127 | − uint32_t num_of_nodes; | |
| 128 | − uint32_t pad; | |
| 127 | + __u32 num_of_nodes; | |
| 128 | + __u32 pad; | |
| 129 | 129 | }; |
| 130 | 130 | |
| 131 | 131 | #define MAX_ALLOWED_NUM_POINTS 100 |
| @@ -133,25 +133,25 @@ struct kfd_ioctl_get_process_apertures_args { · 1 unmodified line | ||
| 133 | 133 | #define MAX_ALLOWED_WAC_BUFF_SIZE 128 |
| 134 | 134 | |
| 135 | 135 | struct kfd_ioctl_dbg_register_args { |
| 136 | − uint32_t gpu_id; /* to KFD */ | |
| 137 | − uint32_t pad; | |
| 136 | + __u32 gpu_id; /* to KFD */ | |
| 137 | + __u32 pad; | |
| 138 | 138 | }; |
| 139 | 139 | |
| 140 | 140 | struct kfd_ioctl_dbg_unregister_args { |
| 141 | − uint32_t gpu_id; /* to KFD */ | |
| 142 | − uint32_t pad; | |
| 141 | + __u32 gpu_id; /* to KFD */ | |
| 142 | + __u32 pad; | |
| 143 | 143 | }; |
| 144 | 144 | |
| 145 | 145 | struct kfd_ioctl_dbg_address_watch_args { |
| 146 | − uint64_t content_ptr; /* a pointer to the actual content */ | |
| 147 | − uint32_t gpu_id; /* to KFD */ | |
| 148 | − uint32_t buf_size_in_bytes; /*including gpu_id and buf_size */ | |
| 146 | + __u64 content_ptr; /* a pointer to the actual content */ | |
| 147 | + __u32 gpu_id; /* to KFD */ | |
| 148 | + __u32 buf_size_in_bytes; /*including gpu_id and buf_size */ | |
| 149 | 149 | }; |
| 150 | 150 | |
| 151 | 151 | struct kfd_ioctl_dbg_wave_control_args { |
| 152 | − uint64_t content_ptr; /* a pointer to the actual content */ | |
| 153 | − uint32_t gpu_id; /* to KFD */ | |
| 154 | − uint32_t buf_size_in_bytes; /*including gpu_id and buf_size */ | |
| 152 | + __u64 content_ptr; /* a pointer to the actual content */ | |
| 153 | + __u32 gpu_id; /* to KFD */ | |
| 154 | + __u32 buf_size_in_bytes; /*including gpu_id and buf_size */ | |
| 155 | 155 | }; |
| 156 | 156 | |
| 157 | 157 | /* Matching HSA_EVENTTYPE */ |
| @@ -172,44 +172,44 @@ struct kfd_ioctl_dbg_wave_control_args { · 14 unmodified lines | ||
| 172 | 172 | #define KFD_SIGNAL_EVENT_LIMIT 256 |
| 173 | 173 | |
| 174 | 174 | struct kfd_ioctl_create_event_args { |
| 175 | − uint64_t event_page_offset; /* from KFD */ | |
| 176 | − uint32_t event_trigger_data; /* from KFD - signal events only */ | |
| 177 | − uint32_t event_type; /* to KFD */ | |
| 178 | − uint32_t auto_reset; /* to KFD */ | |
| 179 | − uint32_t node_id; /* to KFD - only valid for certain | |
| 175 | + __u64 event_page_offset; /* from KFD */ | |
| 176 | + __u32 event_trigger_data; /* from KFD - signal events only */ | |
| 177 | + __u32 event_type; /* to KFD */ | |
| 178 | + __u32 auto_reset; /* to KFD */ | |
| 179 | + __u32 node_id; /* to KFD - only valid for certain | |
| 180 | 180 | event types */ |
| 181 | − uint32_t event_id; /* from KFD */ | |
| 182 | − uint32_t event_slot_index; /* from KFD */ | |
| 181 | + __u32 event_id; /* from KFD */ | |
| 182 | + __u32 event_slot_index; /* from KFD */ | |
| 183 | 183 | }; |
| 184 | 184 | |
| 185 | 185 | struct kfd_ioctl_destroy_event_args { |
| 186 | − uint32_t event_id; /* to KFD */ | |
| 187 | − uint32_t pad; | |
| 186 | + __u32 event_id; /* to KFD */ | |
| 187 | + __u32 pad; | |
| 188 | 188 | }; |
| 189 | 189 | |
| 190 | 190 | struct kfd_ioctl_set_event_args { |
| 191 | − uint32_t event_id; /* to KFD */ | |
| 192 | − uint32_t pad; | |
| 191 | + __u32 event_id; /* to KFD */ | |
| 192 | + __u32 pad; | |
| 193 | 193 | }; |
| 194 | 194 | |
| 195 | 195 | struct kfd_ioctl_reset_event_args { |
| 196 | − uint32_t event_id; /* to KFD */ | |
| 197 | − uint32_t pad; | |
| 196 | + __u32 event_id; /* to KFD */ | |
| 197 | + __u32 pad; | |
| 198 | 198 | }; |
| 199 | 199 | |
| 200 | 200 | struct kfd_memory_exception_failure { |
| 201 | − uint32_t NotPresent; /* Page not present or supervisor privilege */ | |
| 202 | − uint32_t ReadOnly; /* Write access to a read-only page */ | |
| 203 | − uint32_t NoExecute; /* Execute access to a page marked NX */ | |
| 204 | − uint32_t pad; | |
| 201 | + __u32 NotPresent; /* Page not present or supervisor privilege */ | |
| 202 | + __u32 ReadOnly; /* Write access to a read-only page */ | |
| 203 | + __u32 NoExecute; /* Execute access to a page marked NX */ | |
| 204 | + __u32 pad; | |
| 205 | 205 | }; |
| 206 | 206 | |
| 207 | 207 | /* memory exception data*/ |
| 208 | 208 | struct kfd_hsa_memory_exception_data { |
| 209 | 209 | struct kfd_memory_exception_failure failure; |
| 210 | − uint64_t va; | |
| 211 | − uint32_t gpu_id; | |
| 212 | − uint32_t pad; | |
| 210 | + __u64 va; | |
| 211 | + __u32 gpu_id; | |
| 212 | + __u32 pad; | |
| 213 | 213 | }; |
| 214 | 214 | |
| 215 | 215 | /* Event data*/ |
| @@ -217,19 +217,48 @@ struct kfd_event_data { · 1 unmodified line | ||
| 217 | 217 | union { |
| 218 | 218 | struct kfd_hsa_memory_exception_data memory_exception_data; |
| 219 | 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 | 221 | for future exception types */ |
| 222 | − uint32_t event_id; /* to KFD */ | |
| 223 | − uint32_t pad; | |
| 222 | + __u32 event_id; /* to KFD */ | |
| 223 | + __u32 pad; | |
| 224 | 224 | }; |
| 225 | 225 | |
| 226 | 226 | struct kfd_ioctl_wait_events_args { |
| 227 | − uint64_t events_ptr; /* pointed to struct | |
| 227 | + __u64 events_ptr; /* pointed to struct | |
| 228 | 228 | kfd_event_data array, to KFD */ |
| 229 | − uint32_t num_events; /* to KFD */ | |
| 230 | − uint32_t wait_for_all; /* to KFD */ | |
| 231 | − uint32_t timeout; /* to KFD */ | |
| 232 | − uint32_t wait_result; /* from KFD */ | |
| 229 | + __u32 num_events; /* to KFD */ | |
| 230 | + __u32 wait_for_all; /* to KFD */ | |
| 231 | + __u32 timeout; /* to 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 | 264 | #define AMDKFD_IOCTL_BASE 'K' |
| @@ -286,7 +315,13 @@ struct kfd_ioctl_wait_events_args { · 50 unmodified lines | ||
| 286 | 315 | #define AMDKFD_IOC_DBG_WAVE_CONTROL \ |
| 287 | 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 | 324 | #define AMDKFD_COMMAND_START 0x01 |
| 290 | −#define AMDKFD_COMMAND_END 0x11 | |
| 325 | +#define AMDKFD_COMMAND_END 0x13 | |
| 291 | 326 | |
| 292 | 327 | #endif |
| @@ -711,7 +711,8 @@ struct kvm_ppc_one_seg_page_size { · 710 unmodified lines | ||
| 711 | 711 | struct kvm_ppc_smmu_info { |
| 712 | 712 | __u64 flags; |
| 713 | 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 | 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 | 22 | LO_FLAGS_AUTOCLEAR = 4, |
| 23 | 23 | LO_FLAGS_PARTSCAN = 8, |
| 24 | 24 | LO_FLAGS_DIRECT_IO = 16, |
| 25 | − LO_FLAGS_BLOCKSIZE = 32, | |
| 26 | 25 | }; |
| 27 | 26 | |
| 28 | 27 | #include <asm/posix_types.h> /* for __kernel_old_dev_t */ |
| @@ -60,8 +59,6 @@ struct loop_info64 { · 31 unmodified lines | ||
| 60 | 59 | __u64 lo_init[2]; |
| 61 | 60 | }; |
| 62 | 61 | |
| 63 | −#define LO_INFO_BLOCKSIZE(l) (l)->lo_init[0] | |
| 64 | − | |
| 65 | 62 | /* |
| 66 | 63 | * Loop filter types |
| 67 | 64 | */ |
| @@ -91,6 +88,7 @@ struct loop_info64 { · 23 unmodified lines | ||
| 91 | 88 | #define LOOP_CHANGE_FD 0x4C06 |
| 92 | 89 | #define LOOP_SET_CAPACITY 0x4C07 |
| 93 | 90 | #define LOOP_SET_DIRECT_IO 0x4C08 |
| 91 | +#define LOOP_SET_BLOCK_SIZE 0x4C09 | |
| 94 | 92 | |
| 95 | 93 | /* /dev/loop-control interface */ |
| 96 | 94 | #define LOOP_CTL_ADD 0x4C80 |
| @@ -11,6 +11,7 @@ enum lwtunnel_encap_types { · 10 unmodified lines | ||
| 11 | 11 | LWTUNNEL_ENCAP_IP6, |
| 12 | 12 | LWTUNNEL_ENCAP_SEG6, |
| 13 | 13 | LWTUNNEL_ENCAP_BPF, |
| 14 | + LWTUNNEL_ENCAP_SEG6_LOCAL, | |
| 14 | 15 | __LWTUNNEL_ENCAP_MAX, |
| 15 | 16 | }; |
| 16 | 17 | |
| @@ -40,14 +40,33 @@ · 39 unmodified lines | ||
| 40 | 40 | * (non-running threads are de facto in such a |
| 41 | 41 | * state). This covers threads from all processes |
| 42 | 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 | 60 | * Command to be passed to the membarrier system call. The commands need to |
| 45 | 61 | * be a single bit each, except for MEMBARRIER_CMD_QUERY which is assigned to |
| 46 | 62 | * the value 0. |
| 47 | 63 | */ |
| 48 | 64 | enum membarrier_cmd { |
| 49 | − MEMBARRIER_CMD_QUERY = 0, | |
| 50 | − MEMBARRIER_CMD_SHARED = (1 << 0), | |
| 65 | + MEMBARRIER_CMD_QUERY = 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 | 72 | #endif /* _UAPI_LINUX_MEMBARRIER_H */ |
| @@ -1,8 +1,32 @@ | ||
| 1 | 1 | #ifndef _UAPI_LINUX_MEMFD_H |
| 2 | 2 | #define _UAPI_LINUX_MEMFD_H |
| 3 | 3 | |
| 4 | +#include <asm-generic/hugetlb_encode.h> | |
| 5 | + | |
| 4 | 6 | /* flags for memfd_create(2) (unsigned int) */ |
| 5 | 7 | #define MFD_CLOEXEC 0x0001U |
| 6 | 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 | 32 | #endif /* _UAPI_LINUX_MEMFD_H */ |
| @@ -2,6 +2,7 @@ · 1 unmodified line | ||
| 2 | 2 | #define _UAPI_LINUX_MMAN_H |
| 3 | 3 | |
| 4 | 4 | #include <asm/mman.h> |
| 5 | +#include <asm-generic/hugetlb_encode.h> | |
| 5 | 6 | |
| 6 | 7 | #define MREMAP_MAYMOVE 1 |
| 7 | 8 | #define MREMAP_FIXED 2 |
| @@ -10,4 +11,25 @@ · 2 unmodified lines | ||
| 10 | 11 | #define OVERCOMMIT_ALWAYS 1 |
| 11 | 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 | 35 | #endif /* _UAPI_LINUX_MMAN_H */ |
| @@ -145,43 +145,6 @@ struct nd_cmd_clear_error { · 144 unmodified lines | ||
| 145 | 145 | __u64 cleared; |
| 146 | 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 | 148 | enum { |
| 186 | 149 | ND_CMD_IMPLEMENTED = 0, |
| 187 | 150 | |
| @@ -1,10 +1,11 @@ | ||
| 1 | 1 | #ifndef _LINUX_NF_TABLES_H |
| 2 | 2 | #define _LINUX_NF_TABLES_H |
| 3 | 3 | |
| 4 | −#define NFT_TABLE_MAXNAMELEN 32 | |
| 5 | −#define NFT_CHAIN_MAXNAMELEN 32 | |
| 6 | −#define NFT_SET_MAXNAMELEN 32 | |
| 7 | −#define NFT_OBJ_MAXNAMELEN 32 | |
| 4 | +#define NFT_NAME_MAXLEN 256 | |
| 5 | +#define NFT_TABLE_MAXNAMELEN NFT_NAME_MAXLEN | |
| 6 | +#define NFT_CHAIN_MAXNAMELEN NFT_NAME_MAXLEN | |
| 7 | +#define NFT_SET_MAXNAMELEN NFT_NAME_MAXLEN | |
| 8 | +#define NFT_OBJ_MAXNAMELEN NFT_NAME_MAXLEN | |
| 8 | 9 | #define NFT_USERDATA_MAXLEN 256 |
| 9 | 10 | |
| 10 | 11 | /** |
| @@ -731,7 +732,8 @@ enum nft_exthdr_op { · 720 unmodified lines | ||
| 731 | 732 | * @NFTA_EXTHDR_OFFSET: extension header offset (NLA_U32) |
| 732 | 733 | * @NFTA_EXTHDR_LEN: extension header length (NLA_U32) |
| 733 | 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 | 738 | enum nft_exthdr_attributes { |
| 737 | 739 | NFTA_EXTHDR_UNSPEC, |
| @@ -741,6 +743,7 @@ enum nft_exthdr_attributes { · 3 unmodified lines | ||
| 741 | 743 | NFTA_EXTHDR_LEN, |
| 742 | 744 | NFTA_EXTHDR_FLAGS, |
| 743 | 745 | NFTA_EXTHDR_OP, |
| 746 | + NFTA_EXTHDR_SREG, | |
| 744 | 747 | __NFTA_EXTHDR_MAX |
| 745 | 748 | }; |
| 746 | 749 | #define NFTA_EXTHDR_MAX (__NFTA_EXTHDR_MAX - 1) |
| @@ -808,11 +811,13 @@ enum nft_meta_keys { · 61 unmodified lines | ||
| 808 | 811 | * @NFT_RT_CLASSID: realm value of packet's route (skb->dst->tclassid) |
| 809 | 812 | * @NFT_RT_NEXTHOP4: routing nexthop for IPv4 |
| 810 | 813 | * @NFT_RT_NEXTHOP6: routing nexthop for IPv6 |
| 814 | + * @NFT_RT_TCPMSS: fetch current path tcp mss | |
| 811 | 815 | */ |
| 812 | 816 | enum nft_rt_keys { |
| 813 | 817 | NFT_RT_CLASSID, |
| 814 | 818 | NFT_RT_NEXTHOP4, |
| 815 | 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 | 1226 | enum nft_gen_attributes { |
| 1222 | 1227 | NFTA_GEN_UNSPEC, |
| 1223 | 1228 | NFTA_GEN_ID, |
| 1229 | + NFTA_GEN_PROC_PID, | |
| 1230 | + NFTA_GEN_PROC_NAME, | |
| 1224 | 1231 | __NFTA_GEN_MAX |
| 1225 | 1232 | }; |
| 1226 | 1233 | #define NFTA_GEN_MAX (__NFTA_GEN_MAX - 1) |
| @@ -1275,7 +1282,8 @@ enum nft_ct_helper_attributes { · 48 unmodified lines | ||
| 1275 | 1282 | #define NFT_OBJECT_COUNTER 1 |
| 1276 | 1283 | #define NFT_OBJECT_QUOTA 2 |
| 1277 | 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 | 1287 | #define NFT_OBJECT_MAX (__NFT_OBJECT_MAX - 1) |
| 1280 | 1288 | |
| 1281 | 1289 | /** |
| @@ -19,12 +19,13 @@ · 18 unmodified lines | ||
| 19 | 19 | struct xt_hashlimit_htable; |
| 20 | 20 | |
| 21 | 21 | enum { |
| 22 | − XT_HASHLIMIT_HASH_DIP = 1 << 0, | |
| 23 | − XT_HASHLIMIT_HASH_DPT = 1 << 1, | |
| 24 | − XT_HASHLIMIT_HASH_SIP = 1 << 2, | |
| 25 | − XT_HASHLIMIT_HASH_SPT = 1 << 3, | |
| 26 | − XT_HASHLIMIT_INVERT = 1 << 4, | |
| 27 | − XT_HASHLIMIT_BYTES = 1 << 5, | |
| 22 | + XT_HASHLIMIT_HASH_DIP = 1 << 0, | |
| 23 | + XT_HASHLIMIT_HASH_DPT = 1 << 1, | |
| 24 | + XT_HASHLIMIT_HASH_SIP = 1 << 2, | |
| 25 | + XT_HASHLIMIT_HASH_SPT = 1 << 3, | |
| 26 | + XT_HASHLIMIT_INVERT = 1 << 4, | |
| 27 | + XT_HASHLIMIT_BYTES = 1 << 5, | |
| 28 | + XT_HASHLIMIT_RATE_MATCH = 1 << 6, | |
| 28 | 29 | }; |
| 29 | 30 | |
| 30 | 31 | struct hashlimit_cfg { |
| @@ -79,6 +80,21 @@ struct hashlimit_cfg2 { · 48 unmodified lines | ||
| 79 | 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 | 98 | struct xt_hashlimit_mtinfo1 { |
| 83 | 99 | char name[IFNAMSIZ]; |
| 84 | 100 | struct hashlimit_cfg1 cfg; |
| @@ -95,4 +111,12 @@ struct xt_hashlimit_mtinfo2 { · 10 unmodified lines | ||
| 95 | 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 | 122 | #endif /* _UAPI_XT_HASHLIMIT_H */ |
| @@ -69,6 +69,9 @@ struct nlmsghdr { · 68 unmodified lines | ||
| 69 | 69 | #define NLM_F_CREATE 0x400 /* Create, if it does not exist */ |
| 70 | 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 | 75 | /* Flags for ACK message */ |
| 73 | 76 | #define NLM_F_CAPPED 0x100 /* request was capped */ |
| 74 | 77 | #define NLM_F_ACK_TLVS 0x200 /* extended ACK TVLs were included */ |
| @@ -226,5 +229,22 @@ struct nlattr { · 151 unmodified lines | ||
| 226 | 229 | #define NLA_ALIGN(len) (((len) + NLA_ALIGNTO - 1) & ~(NLA_ALIGNTO - 1)) |
| 227 | 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 | 250 | #endif /* _UAPI__LINUX_NETLINK_H */ |
| @@ -513,6 +513,7 @@ · 512 unmodified lines | ||
| 513 | 513 | #define PCI_EXP_DEVSTA_URD 0x0008 /* Unsupported Request Detected */ |
| 514 | 514 | #define PCI_EXP_DEVSTA_AUXPD 0x0010 /* AUX Power Detected */ |
| 515 | 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 | 517 | #define PCI_EXP_LNKCAP 12 /* Link Capabilities */ |
| 517 | 518 | #define PCI_EXP_LNKCAP_SLS 0x0000000f /* Supported Link Speeds */ |
| 518 | 519 | #define PCI_EXP_LNKCAP_SLS_2_5GB 0x00000001 /* LNKCAP2 SLS Vector bit 0 */ |
| @@ -556,7 +557,7 @@ · 37 unmodified lines | ||
| 556 | 557 | #define PCI_EXP_LNKSTA_DLLLA 0x2000 /* Data Link Layer Link Active */ |
| 557 | 558 | #define PCI_EXP_LNKSTA_LBMS 0x4000 /* Link Bandwidth Management Status */ |
| 558 | 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 | 561 | #define PCI_EXP_SLTCAP 20 /* Slot Capabilities */ |
| 561 | 562 | #define PCI_EXP_SLTCAP_ABP 0x00000001 /* Attention Button Present */ |
| 562 | 563 | #define PCI_EXP_SLTCAP_PCP 0x00000002 /* Power Controller Present */ |
| @@ -639,7 +640,7 @@ · 76 unmodified lines | ||
| 639 | 640 | #define PCI_EXP_DEVCTL2_OBFF_MSGB_EN 0x4000 /* Enable OBFF Message type B */ |
| 640 | 641 | #define PCI_EXP_DEVCTL2_OBFF_WAKE_EN 0x6000 /* OBFF using WAKE# signaling */ |
| 641 | 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 | 644 | #define PCI_EXP_LNKCAP2 44 /* Link Capabilities 2 */ |
| 644 | 645 | #define PCI_EXP_LNKCAP2_SLS_2_5GB 0x00000002 /* Supported Speed 2.5GT/s */ |
| 645 | 646 | #define PCI_EXP_LNKCAP2_SLS_5_0GB 0x00000004 /* Supported Speed 5.0GT/s */ |
| @@ -647,6 +648,7 @@ · 1 unmodified line | ||
| 647 | 648 | #define PCI_EXP_LNKCAP2_CROSSLINK 0x00000100 /* Crosslink supported */ |
| 648 | 649 | #define PCI_EXP_LNKCTL2 48 /* Link Control 2 */ |
| 649 | 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 | 652 | #define PCI_EXP_SLTCAP2 52 /* Slot Capabilities 2 */ |
| 651 | 653 | #define PCI_EXP_SLTCTL2 56 /* Slot Control 2 */ |
| 652 | 654 | #define PCI_EXP_SLTSTA2 58 /* Slot Status 2 */ |
| @@ -733,23 +735,17 @@ · 80 unmodified lines | ||
| 733 | 735 | #define PCI_ERR_CAP_ECRC_CHKE 0x00000100 /* ECRC Check Enable */ |
| 734 | 736 | #define PCI_ERR_HEADER_LOG 28 /* Header Log Register (16 bytes) */ |
| 735 | 737 | #define PCI_ERR_ROOT_COMMAND 44 /* Root Error Command */ |
| 736 | −/* Correctable Err Reporting Enable */ | |
| 737 | −#define PCI_ERR_ROOT_CMD_COR_EN 0x00000001 | |
| 738 | −/* Non-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 | |
| 738 | +#define PCI_ERR_ROOT_CMD_COR_EN 0x00000001 /* Correctable Err Reporting Enable */ | |
| 739 | +#define PCI_ERR_ROOT_CMD_NONFATAL_EN 0x00000002 /* Non-Fatal Err Reporting Enable */ | |
| 740 | +#define PCI_ERR_ROOT_CMD_FATAL_EN 0x00000004 /* Fatal Err Reporting Enable */ | |
| 742 | 741 | #define PCI_ERR_ROOT_STATUS 48 |
| 743 | −#define PCI_ERR_ROOT_COR_RCV 0x00000001 /* ERR_COR Received */ | |
| 744 | −/* Multi ERR_COR Received */ | |
| 745 | −#define PCI_ERR_ROOT_MULTI_COR_RCV 0x00000002 | |
| 746 | −/* ERR_FATAL/NONFATAL Received */ | |
| 747 | −#define PCI_ERR_ROOT_UNCOR_RCV 0x00000004 | |
| 748 | −/* Multi ERR_FATAL/NONFATAL Received */ | |
| 749 | −#define PCI_ERR_ROOT_MULTI_UNCOR_RCV 0x00000008 | |
| 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 */ | |
| 742 | +#define PCI_ERR_ROOT_COR_RCV 0x00000001 /* ERR_COR Received */ | |
| 743 | +#define PCI_ERR_ROOT_MULTI_COR_RCV 0x00000002 /* Multiple ERR_COR */ | |
| 744 | +#define PCI_ERR_ROOT_UNCOR_RCV 0x00000004 /* ERR_FATAL/NONFATAL */ | |
| 745 | +#define PCI_ERR_ROOT_MULTI_UNCOR_RCV 0x00000008 /* Multiple FATAL/NONFATAL */ | |
| 746 | +#define PCI_ERR_ROOT_FIRST_FATAL 0x00000010 /* First UNC is Fatal */ | |
| 747 | +#define PCI_ERR_ROOT_NONFATAL_RCV 0x00000020 /* Non-Fatal Received */ | |
| 748 | +#define PCI_ERR_ROOT_FATAL_RCV 0x00000040 /* Fatal Received */ | |
| 753 | 749 | #define PCI_ERR_ROOT_ERR_SRC 52 /* Error Source Identification */ |
| 754 | 750 | |
| 755 | 751 | /* Virtual Channel */ |
| @@ -967,6 +963,7 @@ · 211 unmodified lines | ||
| 967 | 963 | #define PCI_EXP_DPC_CAP_RP_EXT 0x20 /* Root Port Extensions for DPC */ |
| 968 | 964 | #define PCI_EXP_DPC_CAP_POISONED_TLP 0x40 /* Poisoned TLP Egress Blocking Supported */ |
| 969 | 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 | 967 | #define PCI_EXP_DPC_CAP_DL_ACTIVE 0x1000 /* ERR_COR signal on DL_Active supported */ |
| 971 | 968 | |
| 972 | 969 | #define PCI_EXP_DPC_CTL 6 /* DPC control */ |
| @@ -980,6 +977,15 @@ · 7 unmodified lines | ||
| 980 | 977 | |
| 981 | 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 | 989 | /* Precision Time Measurement */ |
| 984 | 990 | #define PCI_PTM_CAP 0x04 /* PTM Capability */ |
| 985 | 991 | #define PCI_PTM_CAP_REQ 0x00000001 /* Requester capable */ |
| @@ -139,8 +139,9 @@ enum perf_event_sample_format { · 138 unmodified lines | ||
| 139 | 139 | PERF_SAMPLE_IDENTIFIER = 1U << 16, |
| 140 | 140 | PERF_SAMPLE_TRANSACTION = 1U << 17, |
| 141 | 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 | 175 | PERF_SAMPLE_BRANCH_NO_FLAGS_SHIFT = 14, /* no flags */ |
| 175 | 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 | 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 | 201 | PERF_SAMPLE_BRANCH_NO_FLAGS = 1U << PERF_SAMPLE_BRANCH_NO_FLAGS_SHIFT, |
| 199 | 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 | 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 | 228 | #define PERF_SAMPLE_BRANCH_PLM_ALL \ |
| 205 | 229 | (PERF_SAMPLE_BRANCH_USER|\ |
| 206 | 230 | PERF_SAMPLE_BRANCH_KERNEL|\ |
| @@ -791,6 +815,7 @@ enum perf_event_type { · 584 unmodified lines | ||
| 791 | 815 | * { u64 transaction; } && PERF_SAMPLE_TRANSACTION |
| 792 | 816 | * { u64 abi; # enum perf_sample_regs_abi |
| 793 | 817 | * u64 regs[weight(mask)]; } && PERF_SAMPLE_REGS_INTR |
| 818 | + * { u64 phys_addr;} && PERF_SAMPLE_PHYS_ADDR | |
| 794 | 819 | * }; |
| 795 | 820 | */ |
| 796 | 821 | PERF_RECORD_SAMPLE = 9, |
| @@ -931,14 +956,20 @@ union perf_mem_data_src { · 134 unmodified lines | ||
| 931 | 956 | mem_snoop:5, /* snoop mode */ |
| 932 | 957 | mem_lock:2, /* lock instr */ |
| 933 | 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 | 965 | #elif defined(__BIG_ENDIAN_BITFIELD) |
| 938 | 966 | union perf_mem_data_src { |
| 939 | 967 | __u64 val; |
| 940 | 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 | 973 | mem_dtlb:7, /* tlb access */ |
| 943 | 974 | mem_lock:2, /* lock instr */ |
| 944 | 975 | mem_snoop:5, /* snoop mode */ |
| @@ -975,6 +1006,22 @@ union perf_mem_data_src { · 30 unmodified lines | ||
| 975 | 1006 | #define PERF_MEM_LVL_UNC 0x2000 /* Uncached memory */ |
| 976 | 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 | 1025 | /* snoop mode */ |
| 979 | 1026 | #define PERF_MEM_SNOOP_NA 0x01 /* not available */ |
| 980 | 1027 | #define PERF_MEM_SNOOP_NONE 0x02 /* no snoop */ |
| @@ -983,6 +1030,10 @@ union perf_mem_data_src { · 2 unmodified lines | ||
| 983 | 1030 | #define PERF_MEM_SNOOP_HITM 0x10 /* snoop hit modified */ |
| 984 | 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 | 1037 | /* locked instruction */ |
| 987 | 1038 | #define PERF_MEM_LOCK_NA 0x01 /* not available */ |
| 988 | 1039 | #define PERF_MEM_LOCK_LOCKED 0x02 /* locked transaction */ |
| @@ -1015,6 +1066,7 @@ union perf_mem_data_src { · 26 unmodified lines | ||
| 1015 | 1066 | * in_tx: running in a hardware transaction |
| 1016 | 1067 | * abort: aborting a hardware transaction |
| 1017 | 1068 | * cycles: cycles from last branch (or 0 if not supported) |
| 1069 | + * type: branch type | |
| 1018 | 1070 | */ |
| 1019 | 1071 | struct perf_branch_entry { |
| 1020 | 1072 | __u64 from; |
| @@ -1024,7 +1076,8 @@ struct perf_branch_entry { · 3 unmodified lines | ||
| 1024 | 1076 | in_tx:1, /* in transaction */ |
| 1025 | 1077 | abort:1, /* transaction abort */ |
| 1026 | 1078 | cycles:16, /* cycle count to last branch */ |
| 1027 | − reserved:44; | |
| 1079 | + type:4, /* branch type */ | |
| 1080 | + reserved:40; | |
| 1028 | 1081 | }; |
| 1029 | 1082 | |
| 1030 | 1083 | #endif /* _UAPI_LINUX_PERF_EVENT_H */ |
| @@ -95,8 +95,8 @@ struct pps_kparams { · 94 unmodified lines | ||
| 95 | 95 | #define PPS_CAPTURECLEAR 0x02 /* capture clear events */ |
| 96 | 96 | #define PPS_CAPTUREBOTH 0x03 /* capture assert and clear events */ |
| 97 | 97 | |
| 98 | −#define PPS_OFFSETASSERT 0x10 /* apply compensation for assert ev. */ | |
| 99 | −#define PPS_OFFSETCLEAR 0x20 /* apply compensation for clear ev. */ | |
| 98 | +#define PPS_OFFSETASSERT 0x10 /* apply compensation for assert event */ | |
| 99 | +#define PPS_OFFSETCLEAR 0x20 /* apply compensation for clear event */ | |
| 100 | 100 | |
| 101 | 101 | #define PPS_CANWAIT 0x100 /* can we wait for an event? */ |
| 102 | 102 | #define PPS_CANPOLL 0x200 /* bit reserved for future use */ |
| @@ -33,7 +33,6 @@ · 32 unmodified lines | ||
| 33 | 33 | #ifndef _UAPI_LINUX_QUOTA_ |
| 34 | 34 | #define _UAPI_LINUX_QUOTA_ |
| 35 | 35 | |
| 36 | −#include <linux/errno.h> | |
| 37 | 36 | #include <linux/types.h> |
| 38 | 37 | |
| 39 | 38 | #define __DQUOT_VERSION__ "dquot_6.6.0" |
| @@ -324,9 +324,10 @@ struct mdp_superblock_1 { · 323 unmodified lines | ||
| 324 | 324 | #define MD_FEATURE_RECOVERY_BITMAP 128 /* recovery that is happening |
| 325 | 325 | * is guided by bitmap. |
| 326 | 326 | */ |
| 327 | −#define MD_FEATURE_CLUSTERED 256 /* clustered MD */ | |
| 327 | +#define MD_FEATURE_CLUSTERED 256 /* clustered MD */ | |
| 328 | 328 | #define MD_FEATURE_JOURNAL 512 /* support write cache */ |
| 329 | 329 | #define MD_FEATURE_PPL 1024 /* support PPL */ |
| 330 | +#define MD_FEATURE_MULTIPLE_PPLS 2048 /* support for multiple PPLs */ | |
| 330 | 331 | #define MD_FEATURE_ALL (MD_FEATURE_BITMAP_OFFSET \ |
| 331 | 332 | |MD_FEATURE_RECOVERY_OFFSET \ |
| 332 | 333 | |MD_FEATURE_RESHAPE_ACTIVE \ |
| @@ -338,6 +339,7 @@ struct mdp_superblock_1 { · 5 unmodified lines | ||
| 338 | 339 | |MD_FEATURE_CLUSTERED \ |
| 339 | 340 | |MD_FEATURE_JOURNAL \ |
| 340 | 341 | |MD_FEATURE_PPL \ |
| 342 | + |MD_FEATURE_MULTIPLE_PPLS \ | |
| 341 | 343 | ) |
| 342 | 344 | |
| 343 | 345 | struct r5l_payload_header { |
| @@ -683,10 +683,29 @@ struct tcamsg { · 682 unmodified lines | ||
| 683 | 683 | unsigned char tca__pad1; |
| 684 | 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 | 699 | #define TA_RTA(r) ((struct rtattr*)(((char*)(r)) + NLMSG_ALIGN(sizeof(struct tcamsg)))) |
| 687 | 700 | #define TA_PAYLOAD(n) NLMSG_PAYLOAD(n,sizeof(struct tcamsg)) |
| 688 | −#define TCA_ACT_TAB 1 /* attr type must be >=1 */ | |
| 689 | −#define TCAA_MAX 1 | |
| 701 | +/* tcamsg flags stored in attribute TCA_ROOT_FLAGS | |
| 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 | 710 | /* New extended info filters for IFLA_EXT_MASK */ |
| 692 | 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 | 11 | #define SECCOMP_MODE_FILTER 2 /* uses user-supplied filter. */ |
| 12 | 12 | |
| 13 | 13 | /* Valid operations for seccomp syscall. */ |
| 14 | −#define SECCOMP_SET_MODE_STRICT 0 | |
| 15 | −#define SECCOMP_SET_MODE_FILTER 1 | |
| 14 | +#define SECCOMP_SET_MODE_STRICT 0 | |
| 15 | +#define SECCOMP_SET_MODE_FILTER 1 | |
| 16 | +#define SECCOMP_GET_ACTION_AVAIL 2 | |
| 16 | 17 | |
| 17 | 18 | /* Valid flags for SECCOMP_SET_MODE_FILTER */ |
| 18 | 19 | #define SECCOMP_FILTER_FLAG_TSYNC 1 |
| 20 | +#define SECCOMP_FILTER_FLAG_LOG 2 | |
| 19 | 21 | |
| 20 | 22 | /* |
| 21 | 23 | * All BPF programs must return a 32-bit value. |
| 22 | 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 | 28 | * The ordering ensures that a min_t() over composed return values always |
| 26 | 29 | * selects the least permissive choice. |
| 27 | 30 | */ |
| 28 | −#define SECCOMP_RET_KILL 0x00000000U /* kill the task immediately */ | |
| 29 | −#define SECCOMP_RET_TRAP 0x00030000U /* disallow and force a SIGSYS */ | |
| 30 | −#define SECCOMP_RET_ERRNO 0x00050000U /* returns an errno */ | |
| 31 | −#define SECCOMP_RET_TRACE 0x7ff00000U /* pass to a tracer or disallow */ | |
| 32 | −#define SECCOMP_RET_ALLOW 0x7fff0000U /* allow */ | |
| 31 | +#define SECCOMP_RET_KILL_PROCESS 0x80000000U /* kill the process */ | |
| 32 | +#define SECCOMP_RET_KILL_THREAD 0x00000000U /* kill the thread */ | |
| 33 | +#define SECCOMP_RET_KILL SECCOMP_RET_KILL_THREAD | |
| 34 | +#define SECCOMP_RET_TRAP 0x00030000U /* disallow and force a SIGSYS */ | |
| 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 | 40 | /* Masks for the return value sections. */ |
| 41 | +#define SECCOMP_RET_ACTION_FULL 0xffff0000U | |
| 35 | 42 | #define SECCOMP_RET_ACTION 0x7fff0000U |
| 36 | 43 | #define SECCOMP_RET_DATA 0x0000ffffU |
| 37 | 44 | |
| @@ -33,16 +33,26 @@ struct seg6_iptunnel_encap { · 32 unmodified lines | ||
| 33 | 33 | enum { |
| 34 | 34 | SEG6_IPTUN_MODE_INLINE, |
| 35 | 35 | SEG6_IPTUN_MODE_ENCAP, |
| 36 | + SEG6_IPTUN_MODE_L2ENCAP, | |
| 36 | 37 | }; |
| 37 | 38 | |
| 38 | 39 | #ifdef __KERNEL__ |
| 39 | 40 | |
| 40 | 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 | − | |
| 44 | − return ((tuninfo->srh->hdrlen + 1) << 3) + | |
| 45 | − (encap * sizeof(struct ipv6hdr)); | |
| 43 | + int head = 0; | |
| 44 | + | |
| 45 | + switch (tuninfo->mode) { | |
| 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 | 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 | 56 | #define PORT_ALTR_16550_F128 28 /* Altera 16550 UART with 128 FIFOs */ |
| 57 | 57 | #define PORT_RT2880 29 /* Ralink RT2880 internal UART */ |
| 58 | 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 | 61 | * ARM specific type numbers. These are not currently guaranteed |
| @@ -70,12 +68,17 @@ · 6 unmodified lines | ||
| 70 | 68 | #define PORT_CLPS711X 33 |
| 71 | 69 | #define PORT_SA1100 34 |
| 72 | 70 | #define PORT_UART00 35 |
| 71 | +#define PORT_OWL 36 | |
| 73 | 72 | #define PORT_21285 37 |
| 74 | 73 | |
| 75 | 74 | /* Sparc type numbers. */ |
| 76 | 75 | #define PORT_SUNZILOG 38 |
| 77 | 76 | #define PORT_SUNSAB 39 |
| 78 | 77 | |
| 78 | +/* Intel EG20 */ | |
| 79 | +#define PORT_PCH_8LINE 44 | |
| 80 | +#define PORT_PCH_2LINE 45 | |
| 81 | + | |
| 79 | 82 | /* DEC */ |
| 80 | 83 | #define PORT_DZ 46 |
| 81 | 84 | #define PORT_ZS 47 |
| @@ -205,8 +208,8 @@ · 123 unmodified lines | ||
| 205 | 208 | /* MAX310X */ |
| 206 | 209 | #define PORT_MAX310X 94 |
| 207 | 210 | |
| 208 | −/* High Speed UART for Medfield */ | |
| 209 | −#define PORT_MFD 95 | |
| 211 | +/* TI DA8xx/66AK2x */ | |
| 212 | +#define PORT_DA830 95 | |
| 210 | 213 | |
| 211 | 214 | /* TI OMAP-UART */ |
| 212 | 215 | #define PORT_OMAP 96 |
| @@ -271,4 +274,7 @@ · 58 unmodified lines | ||
| 271 | 274 | /* MPS2 UART */ |
| 272 | 275 | #define PORT_MPS2UART 116 |
| 273 | 276 | |
| 277 | +/* MediaTek BTIF */ | |
| 278 | +#define PORT_MTK_BTIF 117 | |
| 279 | + | |
| 274 | 280 | #endif /* _UAPILINUX_SERIAL_CORE_H */ |
| @@ -3,6 +3,7 @@ · 2 unmodified lines | ||
| 3 | 3 | |
| 4 | 4 | #include <linux/ipc.h> |
| 5 | 5 | #include <linux/errno.h> |
| 6 | +#include <asm-generic/hugetlb_encode.h> | |
| 6 | 7 | #ifndef __KERNEL__ |
| 7 | 8 | #include <unistd.h> |
| 8 | 9 | #endif |
| @@ -40,11 +41,37 @@ struct shmid_ds { · 31 unmodified lines | ||
| 40 | 41 | /* Include the definition of shmid64_ds and shminfo64 */ |
| 41 | 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 | 48 | #define SHM_R 0400 /* or S_IRUGO from <linux/stat.h> */ |
| 45 | 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 | 75 | #define SHM_RDONLY 010000 /* read-only access */ |
| 49 | 76 | #define SHM_RND 020000 /* round attach address to SHMLBA boundary */ |
| 50 | 77 | #define SHM_REMAP 040000 /* take-over region on attach */ |
| @@ -184,12 +184,7 @@ enum · 183 unmodified lines | ||
| 184 | 184 | LINUX_MIB_DELAYEDACKLOST, /* DelayedACKLost */ |
| 185 | 185 | LINUX_MIB_LISTENOVERFLOWS, /* ListenOverflows */ |
| 186 | 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 | 187 | LINUX_MIB_TCPHPHITS, /* TCPHPHits */ |
| 192 | − LINUX_MIB_TCPHPHITSTOUSER, /* TCPHPHitsToUser */ | |
| 193 | 188 | LINUX_MIB_TCPPUREACKS, /* TCPPureAcks */ |
| 194 | 189 | LINUX_MIB_TCPHPACKS, /* TCPHPAcks */ |
| 195 | 190 | LINUX_MIB_TCPRENORECOVERY, /* TCPRenoRecovery */ |
| @@ -208,14 +203,12 @@ enum · 12 unmodified lines | ||
| 208 | 203 | LINUX_MIB_TCPSACKFAILURES, /* TCPSackFailures */ |
| 209 | 204 | LINUX_MIB_TCPLOSSFAILURES, /* TCPLossFailures */ |
| 210 | 205 | LINUX_MIB_TCPFASTRETRANS, /* TCPFastRetrans */ |
| 211 | − LINUX_MIB_TCPFORWARDRETRANS, /* TCPForwardRetrans */ | |
| 212 | 206 | LINUX_MIB_TCPSLOWSTARTRETRANS, /* TCPSlowStartRetrans */ |
| 213 | 207 | LINUX_MIB_TCPTIMEOUTS, /* TCPTimeouts */ |
| 214 | 208 | LINUX_MIB_TCPLOSSPROBES, /* TCPLossProbes */ |
| 215 | 209 | LINUX_MIB_TCPLOSSPROBERECOVERY, /* TCPLossProbeRecovery */ |
| 216 | 210 | LINUX_MIB_TCPRENORECOVERYFAIL, /* TCPRenoRecoveryFail */ |
| 217 | 211 | LINUX_MIB_TCPSACKRECOVERYFAIL, /* TCPSackRecoveryFail */ |
| 218 | − LINUX_MIB_TCPSCHEDULERFAILED, /* TCPSchedulerFailed */ | |
| 219 | 212 | LINUX_MIB_TCPRCVCOLLAPSED, /* TCPRcvCollapsed */ |
| 220 | 213 | LINUX_MIB_TCPDSACKOLDSENT, /* TCPDSACKOldSent */ |
| 221 | 214 | LINUX_MIB_TCPDSACKOFOSENT, /* TCPDSACKOfoSent */ |
| @@ -231,6 +231,14 @@ enum { · 230 unmodified lines | ||
| 231 | 231 | TCP_NLA_SNDBUF_LIMITED, /* Time (usec) limited by send buffer */ |
| 232 | 232 | TCP_NLA_DATA_SEGS_OUT, /* Data pkts sent including retransmission */ |
| 233 | 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 | 244 | /* for TCP_MD5SIG socket option */ |
| @@ -248,4 +256,13 @@ struct tcp_md5sig { · 11 unmodified lines | ||
| 248 | 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 | 268 | #endif /* _UAPI_LINUX_TCP_H */ |
| @@ -49,6 +49,7 @@ · 48 unmodified lines | ||
| 49 | 49 | #define TEE_MAX_ARG_SIZE 1024 |
| 50 | 50 | |
| 51 | 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 | 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 | 23 | UFFD_FEATURE_EVENT_REMOVE | \ |
| 24 | 24 | UFFD_FEATURE_EVENT_UNMAP | \ |
| 25 | 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 | 29 | #define UFFD_API_IOCTLS \ |
| 28 | 30 | ((__u64)1 << _UFFDIO_REGISTER | \ |
| 29 | 31 | (__u64)1 << _UFFDIO_UNREGISTER | \ |
| @@ -78,6 +80,9 @@ struct uffd_msg { · 48 unmodified lines | ||
| 78 | 80 | struct { |
| 79 | 81 | __u64 flags; |
| 80 | 82 | __u64 address; |
| 83 | + union { | |
| 84 | + __u32 ptid; | |
| 85 | + } feat; | |
| 81 | 86 | } pagefault; |
| 82 | 87 | |
| 83 | 88 | struct { |
| @@ -153,6 +158,13 @@ struct uffdio_api { · 69 unmodified lines | ||
| 153 | 158 | * UFFD_FEATURE_MISSING_SHMEM works the same as |
| 154 | 159 | * UFFD_FEATURE_MISSING_HUGETLBFS, but it applies to shmem |
| 155 | 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 | 169 | #define UFFD_FEATURE_PAGEFAULT_FLAG_WP (1<<0) |
| 158 | 170 | #define UFFD_FEATURE_EVENT_FORK (1<<1) |
| @@ -161,6 +173,8 @@ struct uffdio_api { · 2 unmodified lines | ||
| 161 | 173 | #define UFFD_FEATURE_MISSING_HUGETLBFS (1<<4) |
| 162 | 174 | #define UFFD_FEATURE_MISSING_SHMEM (1<<5) |
| 163 | 175 | #define UFFD_FEATURE_EVENT_UNMAP (1<<6) |
| 176 | +#define UFFD_FEATURE_SIGBUS (1<<7) | |
| 177 | +#define UFFD_FEATURE_THREAD_ID (1<<8) | |
| 164 | 178 | __u64 features; |
| 165 | 179 | |
| 166 | 180 | __u64 ioctls; |
| @@ -1,7 +1,7 @@ | ||
| 1 | 1 | #ifndef _UAPI_LINUX_VIRTIO_RING_H |
| 2 | 2 | #define _UAPI_LINUX_VIRTIO_RING_H |
| 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 | |
| 3 | +/* An interface for efficient virtio implementation, currently for use by KVM, | |
| 4 | + * but hopefully others soon. Do NOT change this since it will | |
| 5 | 5 | * break existing servers and clients. |
| 6 | 6 | * |
| 7 | 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 | 304 | XFRMA_ADDRESS_FILTER, /* struct xfrm_address_filter */ |
| 305 | 305 | XFRMA_PAD, |
| 306 | 306 | XFRMA_OFFLOAD_DEV, /* struct xfrm_state_offload */ |
| 307 | + XFRMA_OUTPUT_MARK, /* __u32 */ | |
| 307 | 308 | __XFRMA_MAX |
| 308 | 309 | |
| 309 | 310 | #define XFRMA_MAX (__XFRMA_MAX - 1) |
| @@ -0,0 +1,84 @@ | ||
| 1 | +/* | |
| 2 | + * Copyright (c) 2017, Mellanox Technologies inc. All rights reserved. | |
| 3 | + * | |
| 4 | + * This software is available to you under a choice of one of two | |
| 5 | + * licenses. You may choose to be licensed under the terms of the GNU | |
| 6 | + * General Public License (GPL) Version 2, available from the file | |
| 7 | + * COPYING in the main directory of this source tree, or the | |
| 8 | + * OpenIB.org BSD license below: | |
| 9 | + * | |
| 10 | + * Redistribution and use in source and binary forms, with or | |
| 11 | + * without modification, are permitted provided that the following | |
| 12 | + * conditions are met: | |
| 13 | + * | |
| 14 | + * - Redistributions of source code must retain the above | |
| 15 | + * copyright notice, this list of conditions and the following | |
| 16 | + * disclaimer. | |
| 17 | + * | |
| 18 | + * - Redistributions in binary form must reproduce the above | |
| 19 | + * copyright notice, this list of conditions and the following | |
| 20 | + * disclaimer in the documentation and/or other materials | |
| 21 | + * provided with the distribution. | |
| 22 | + * | |
| 23 | + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, | |
| 24 | + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF | |
| 25 | + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND | |
| 26 | + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS | |
| 27 | + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN | |
| 28 | + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN | |
| 29 | + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE | |
| 30 | + * SOFTWARE. | |
| 31 | + */ | |
| 32 | + | |
| 33 | +#ifndef IB_USER_IOCTL_VERBS_H | |
| 34 | +#define IB_USER_IOCTL_VERBS_H | |
| 35 | + | |
| 36 | +#include <rdma/rdma_user_ioctl.h> | |
| 37 | + | |
| 38 | +#define UVERBS_UDATA_DRIVER_DATA_NS 1 | |
| 39 | +#define UVERBS_UDATA_DRIVER_DATA_FLAG (1UL << UVERBS_ID_NS_SHIFT) | |
| 40 | + | |
| 41 | +enum uverbs_default_objects { | |
| 42 | + UVERBS_OBJECT_DEVICE, /* No instances of DEVICE are allowed */ | |
| 43 | + UVERBS_OBJECT_PD, | |
| 44 | + UVERBS_OBJECT_COMP_CHANNEL, | |
| 45 | + UVERBS_OBJECT_CQ, | |
| 46 | + UVERBS_OBJECT_QP, | |
| 47 | + UVERBS_OBJECT_SRQ, | |
| 48 | + UVERBS_OBJECT_AH, | |
| 49 | + UVERBS_OBJECT_MR, | |
| 50 | + UVERBS_OBJECT_MW, | |
| 51 | + UVERBS_OBJECT_FLOW, | |
| 52 | + UVERBS_OBJECT_XRCD, | |
| 53 | + UVERBS_OBJECT_RWQ_IND_TBL, | |
| 54 | + UVERBS_OBJECT_WQ, | |
| 55 | + UVERBS_OBJECT_LAST, | |
| 56 | +}; | |
| 57 | + | |
| 58 | +enum { | |
| 59 | + UVERBS_UHW_IN = UVERBS_UDATA_DRIVER_DATA_FLAG, | |
| 60 | + UVERBS_UHW_OUT, | |
| 61 | +}; | |
| 62 | + | |
| 63 | +enum uverbs_create_cq_cmd_attr_ids { | |
| 64 | + CREATE_CQ_HANDLE, | |
| 65 | + CREATE_CQ_CQE, | |
| 66 | + CREATE_CQ_USER_HANDLE, | |
| 67 | + CREATE_CQ_COMP_CHANNEL, | |
| 68 | + CREATE_CQ_COMP_VECTOR, | |
| 69 | + CREATE_CQ_FLAGS, | |
| 70 | + CREATE_CQ_RESP_CQE, | |
| 71 | +}; | |
| 72 | + | |
| 73 | +enum uverbs_destroy_cq_cmd_attr_ids { | |
| 74 | + DESTROY_CQ_HANDLE, | |
| 75 | + DESTROY_CQ_RESP, | |
| 76 | +}; | |
| 77 | + | |
| 78 | +enum uverbs_actions_cq_ops { | |
| 79 | + UVERBS_CQ_CREATE, | |
| 80 | + UVERBS_CQ_DESTROY, | |
| 81 | +}; | |
| 82 | + | |
| 83 | +#endif | |
| 84 | + | |
| @@ -236,6 +236,20 @@ struct ib_uverbs_rss_caps { · 235 unmodified lines | ||
| 236 | 236 | __u32 reserved; |
| 237 | 237 | }; |
| 238 | 238 | |
| 239 | +struct ib_uverbs_tm_caps { | |
| 240 | + /* Max size of rendezvous request message */ | |
| 241 | + __u32 max_rndv_hdr_size; | |
| 242 | + /* Max number of entries in tag matching list */ | |
| 243 | + __u32 max_num_tags; | |
| 244 | + /* TM flags */ | |
| 245 | + __u32 flags; | |
| 246 | + /* Max number of outstanding list operations */ | |
| 247 | + __u32 max_ops; | |
| 248 | + /* Max number of SGE in tag matching entry */ | |
| 249 | + __u32 max_sge; | |
| 250 | + __u32 reserved; | |
| 251 | +}; | |
| 252 | + | |
| 239 | 253 | struct ib_uverbs_ex_query_device_resp { |
| 240 | 254 | struct ib_uverbs_query_device_resp base; |
| 241 | 255 | __u32 comp_mask; |
| @@ -247,6 +261,7 @@ struct ib_uverbs_ex_query_device_resp { · 5 unmodified lines | ||
| 247 | 261 | struct ib_uverbs_rss_caps rss_caps; |
| 248 | 262 | __u32 max_wq_type_rq; |
| 249 | 263 | __u32 raw_packet_caps; |
| 264 | + struct ib_uverbs_tm_caps xrq_caps; | |
| 250 | 265 | }; |
| 251 | 266 | |
| 252 | 267 | struct ib_uverbs_query_port { |
| @@ -578,7 +593,7 @@ struct ib_uverbs_ex_create_qp { · 325 unmodified lines | ||
| 578 | 593 | __u32 comp_mask; |
| 579 | 594 | __u32 create_flags; |
| 580 | 595 | __u32 rwq_ind_tbl_handle; |
| 581 | − __u32 reserved1; | |
| 596 | + __u32 source_qpn; | |
| 582 | 597 | }; |
| 583 | 598 | |
| 584 | 599 | struct ib_uverbs_open_qp { |
| @@ -1024,7 +1039,7 @@ struct ib_uverbs_create_xsrq { · 439 unmodified lines | ||
| 1024 | 1039 | __u32 max_wr; |
| 1025 | 1040 | __u32 max_sge; |
| 1026 | 1041 | __u32 srq_limit; |
| 1027 | − __u32 reserved; | |
| 1042 | + __u32 max_num_tags; | |
| 1028 | 1043 | __u32 xrcd_handle; |
| 1029 | 1044 | __u32 cq_handle; |
| 1030 | 1045 | __u64 driver_data[0]; |
| @@ -95,13 +95,63 @@ struct mlx4_ib_create_srq_resp { · 94 unmodified lines | ||
| 95 | 95 | __u32 reserved; |
| 96 | 96 | }; |
| 97 | 97 | |
| 98 | +struct mlx4_ib_create_qp_rss { | |
| 99 | + __u64 rx_hash_fields_mask; | |
| 100 | + __u8 rx_hash_function; | |
| 101 | + __u8 reserved[7]; | |
| 102 | + __u8 rx_hash_key[40]; | |
| 103 | + __u32 comp_mask; | |
| 104 | + __u32 reserved1; | |
| 105 | +}; | |
| 106 | + | |
| 98 | 107 | struct mlx4_ib_create_qp { |
| 99 | 108 | __u64 buf_addr; |
| 100 | 109 | __u64 db_addr; |
| 101 | 110 | __u8 log_sq_bb_count; |
| 102 | 111 | __u8 log_sq_stride; |
| 103 | 112 | __u8 sq_no_prefetch; |
| 104 | − __u8 reserved[5]; | |
| 113 | + __u8 reserved; | |
| 114 | + __u32 inl_recv_sz; | |
| 115 | +}; | |
| 116 | + | |
| 117 | +struct mlx4_ib_create_wq { | |
| 118 | + __u64 buf_addr; | |
| 119 | + __u64 db_addr; | |
| 120 | + __u8 log_range_size; | |
| 121 | + __u8 reserved[3]; | |
| 122 | + __u32 comp_mask; | |
| 123 | +}; | |
| 124 | + | |
| 125 | +struct mlx4_ib_modify_wq { | |
| 126 | + __u32 comp_mask; | |
| 127 | + __u32 reserved; | |
| 128 | +}; | |
| 129 | + | |
| 130 | +struct mlx4_ib_create_rwq_ind_tbl_resp { | |
| 131 | + __u32 response_length; | |
| 132 | + __u32 reserved; | |
| 133 | +}; | |
| 134 | + | |
| 135 | +/* RX Hash function flags */ | |
| 136 | +enum mlx4_ib_rx_hash_function_flags { | |
| 137 | + MLX4_IB_RX_HASH_FUNC_TOEPLITZ = 1 << 0, | |
| 138 | +}; | |
| 139 | + | |
| 140 | +/* | |
| 141 | + * RX Hash flags, these flags allows to set which incoming packet's field should | |
| 142 | + * participates in RX Hash. Each flag represent certain packet's field, | |
| 143 | + * when the flag is set the field that is represented by the flag will | |
| 144 | + * participate in RX Hash calculation. | |
| 145 | + */ | |
| 146 | +enum mlx4_ib_rx_hash_fields { | |
| 147 | + MLX4_IB_RX_HASH_SRC_IPV4 = 1 << 0, | |
| 148 | + MLX4_IB_RX_HASH_DST_IPV4 = 1 << 1, | |
| 149 | + MLX4_IB_RX_HASH_SRC_IPV6 = 1 << 2, | |
| 150 | + MLX4_IB_RX_HASH_DST_IPV6 = 1 << 3, | |
| 151 | + MLX4_IB_RX_HASH_SRC_PORT_TCP = 1 << 4, | |
| 152 | + MLX4_IB_RX_HASH_DST_PORT_TCP = 1 << 5, | |
| 153 | + MLX4_IB_RX_HASH_SRC_PORT_UDP = 1 << 6, | |
| 154 | + MLX4_IB_RX_HASH_DST_PORT_UDP = 1 << 7 | |
| 105 | 155 | }; |
| 106 | 156 | |
| 107 | 157 | #endif /* MLX4_ABI_USER_H */ |
| @@ -168,6 +168,28 @@ struct mlx5_packet_pacing_caps { · 167 unmodified lines | ||
| 168 | 168 | __u32 reserved; |
| 169 | 169 | }; |
| 170 | 170 | |
| 171 | +enum mlx5_ib_mpw_caps { | |
| 172 | + MPW_RESERVED = 1 << 0, | |
| 173 | + MLX5_IB_ALLOW_MPW = 1 << 1, | |
| 174 | + MLX5_IB_SUPPORT_EMPW = 1 << 2, | |
| 175 | +}; | |
| 176 | + | |
| 177 | +enum mlx5_ib_sw_parsing_offloads { | |
| 178 | + MLX5_IB_SW_PARSING = 1 << 0, | |
| 179 | + MLX5_IB_SW_PARSING_CSUM = 1 << 1, | |
| 180 | + MLX5_IB_SW_PARSING_LSO = 1 << 2, | |
| 181 | +}; | |
| 182 | + | |
| 183 | +struct mlx5_ib_sw_parsing_caps { | |
| 184 | + __u32 sw_parsing_offloads; /* enum mlx5_ib_sw_parsing_offloads */ | |
| 185 | + | |
| 186 | + /* Corresponding bit will be set if qp type from | |
| 187 | + * 'enum ib_qp_type' is supported, e.g. | |
| 188 | + * supported_qpts |= 1 << IB_QPT_RAW_PACKET | |
| 189 | + */ | |
| 190 | + __u32 supported_qpts; | |
| 191 | +}; | |
| 192 | + | |
| 171 | 193 | struct mlx5_ib_query_device_resp { |
| 172 | 194 | __u32 comp_mask; |
| 173 | 195 | __u32 response_length; |
| @@ -177,6 +199,7 @@ struct mlx5_ib_query_device_resp { · 3 unmodified lines | ||
| 177 | 199 | struct mlx5_packet_pacing_caps packet_pacing_caps; |
| 178 | 200 | __u32 mlx5_ib_support_multi_pkt_send_wqes; |
| 179 | 201 | __u32 reserved; |
| 202 | + struct mlx5_ib_sw_parsing_caps sw_parsing_caps; | |
| 180 | 203 | }; |
| 181 | 204 | |
| 182 | 205 | struct mlx5_ib_create_cq { |
| @@ -49,6 +49,9 @@ struct qedr_alloc_ucontext_resp { · 48 unmodified lines | ||
| 49 | 49 | __u32 sges_per_recv_wr; |
| 50 | 50 | __u32 sges_per_srq_wr; |
| 51 | 51 | __u32 max_cqes; |
| 52 | + __u8 dpm_enabled; | |
| 53 | + __u8 wids_enabled; | |
| 54 | + __u16 wid_count; | |
| 52 | 55 | }; |
| 53 | 56 | |
| 54 | 57 | struct qedr_alloc_pd_ureq { |
| @@ -8,7 +8,7 @@ enum { · 7 unmodified lines | ||
| 8 | 8 | RDMA_NL_IWCM, |
| 9 | 9 | RDMA_NL_RSVD, |
| 10 | 10 | RDMA_NL_LS, /* RDMA Local Services */ |
| 11 | − RDMA_NL_I40IW, | |
| 11 | + RDMA_NL_NLDEV, /* RDMA device interface */ | |
| 12 | 12 | RDMA_NL_NUM_CLIENTS |
| 13 | 13 | }; |
| 14 | 14 | |
| @@ -222,4 +222,86 @@ struct rdma_nla_ls_gid { · 207 unmodified lines | ||
| 222 | 222 | __u8 gid[16]; |
| 223 | 223 | }; |
| 224 | 224 | |
| 225 | +enum rdma_nldev_command { | |
| 226 | + RDMA_NLDEV_CMD_UNSPEC, | |
| 227 | + | |
| 228 | + RDMA_NLDEV_CMD_GET, /* can dump */ | |
| 229 | + RDMA_NLDEV_CMD_SET, | |
| 230 | + RDMA_NLDEV_CMD_NEW, | |
| 231 | + RDMA_NLDEV_CMD_DEL, | |
| 232 | + | |
| 233 | + RDMA_NLDEV_CMD_PORT_GET, /* can dump */ | |
| 234 | + RDMA_NLDEV_CMD_PORT_SET, | |
| 235 | + RDMA_NLDEV_CMD_PORT_NEW, | |
| 236 | + RDMA_NLDEV_CMD_PORT_DEL, | |
| 237 | + | |
| 238 | + RDMA_NLDEV_NUM_OPS | |
| 239 | +}; | |
| 240 | + | |
| 241 | +enum rdma_nldev_attr { | |
| 242 | + /* don't change the order or add anything between, this is ABI! */ | |
| 243 | + RDMA_NLDEV_ATTR_UNSPEC, | |
| 244 | + | |
| 245 | + /* Identifier for ib_device */ | |
| 246 | + RDMA_NLDEV_ATTR_DEV_INDEX, /* u32 */ | |
| 247 | + | |
| 248 | + RDMA_NLDEV_ATTR_DEV_NAME, /* string */ | |
| 249 | + /* | |
| 250 | + * Device index together with port index are identifiers | |
| 251 | + * for port/link properties. | |
| 252 | + * | |
| 253 | + * For RDMA_NLDEV_CMD_GET commamnd, port index will return number | |
| 254 | + * of available ports in ib_device, while for port specific operations, | |
| 255 | + * it will be real port index as it appears in sysfs. Port index follows | |
| 256 | + * sysfs notation and starts from 1 for the first port. | |
| 257 | + */ | |
| 258 | + RDMA_NLDEV_ATTR_PORT_INDEX, /* u32 */ | |
| 259 | + | |
| 260 | + /* | |
| 261 | + * Device and port capabilities | |
| 262 | + */ | |
| 263 | + RDMA_NLDEV_ATTR_CAP_FLAGS, /* u64 */ | |
| 264 | + | |
| 265 | + /* | |
| 266 | + * FW version | |
| 267 | + */ | |
| 268 | + RDMA_NLDEV_ATTR_FW_VERSION, /* string */ | |
| 269 | + | |
| 270 | + /* | |
| 271 | + * Node GUID (in host byte order) associated with the RDMA device. | |
| 272 | + */ | |
| 273 | + RDMA_NLDEV_ATTR_NODE_GUID, /* u64 */ | |
| 274 | + | |
| 275 | + /* | |
| 276 | + * System image GUID (in host byte order) associated with | |
| 277 | + * this RDMA device and other devices which are part of a | |
| 278 | + * single system. | |
| 279 | + */ | |
| 280 | + RDMA_NLDEV_ATTR_SYS_IMAGE_GUID, /* u64 */ | |
| 281 | + | |
| 282 | + /* | |
| 283 | + * Subnet prefix (in host byte order) | |
| 284 | + */ | |
| 285 | + RDMA_NLDEV_ATTR_SUBNET_PREFIX, /* u64 */ | |
| 286 | + | |
| 287 | + /* | |
| 288 | + * Local Identifier (LID), | |
| 289 | + * According to IB specification, It is 16-bit address assigned | |
| 290 | + * by the Subnet Manager. Extended to be 32-bit for OmniPath users. | |
| 291 | + */ | |
| 292 | + RDMA_NLDEV_ATTR_LID, /* u32 */ | |
| 293 | + RDMA_NLDEV_ATTR_SM_LID, /* u32 */ | |
| 294 | + | |
| 295 | + /* | |
| 296 | + * LID mask control (LMC) | |
| 297 | + */ | |
| 298 | + RDMA_NLDEV_ATTR_LMC, /* u8 */ | |
| 299 | + | |
| 300 | + RDMA_NLDEV_ATTR_PORT_STATE, /* u8 */ | |
| 301 | + RDMA_NLDEV_ATTR_PORT_PHYS_STATE, /* u8 */ | |
| 302 | + | |
| 303 | + RDMA_NLDEV_ATTR_DEV_NODE_TYPE, /* u8 */ | |
| 304 | + | |
| 305 | + RDMA_NLDEV_ATTR_MAX | |
| 306 | +}; | |
| 225 | 307 | #endif /* _UAPI_RDMA_NETLINK_H */ |
| @@ -43,6 +43,39 @@ · 42 unmodified lines | ||
| 43 | 43 | /* Legacy name, for user space application which already use it */ |
| 44 | 44 | #define IB_IOCTL_MAGIC RDMA_IOCTL_MAGIC |
| 45 | 45 | |
| 46 | +#define RDMA_VERBS_IOCTL \ | |
| 47 | + _IOWR(RDMA_IOCTL_MAGIC, 1, struct ib_uverbs_ioctl_hdr) | |
| 48 | + | |
| 49 | +#define UVERBS_ID_NS_MASK 0xF000 | |
| 50 | +#define UVERBS_ID_NS_SHIFT 12 | |
| 51 | + | |
| 52 | +enum { | |
| 53 | + /* User input */ | |
| 54 | + UVERBS_ATTR_F_MANDATORY = 1U << 0, | |
| 55 | + /* | |
| 56 | + * Valid output bit should be ignored and considered set in | |
| 57 | + * mandatory fields. This bit is kernel output. | |
| 58 | + */ | |
| 59 | + UVERBS_ATTR_F_VALID_OUTPUT = 1U << 1, | |
| 60 | +}; | |
| 61 | + | |
| 62 | +struct ib_uverbs_attr { | |
| 63 | + __u16 attr_id; /* command specific type attribute */ | |
| 64 | + __u16 len; /* only for pointers */ | |
| 65 | + __u16 flags; /* combination of UVERBS_ATTR_F_XXXX */ | |
| 66 | + __u16 reserved; | |
| 67 | + __u64 data; /* ptr to command, inline data or idr/fd */ | |
| 68 | +}; | |
| 69 | + | |
| 70 | +struct ib_uverbs_ioctl_hdr { | |
| 71 | + __u16 length; | |
| 72 | + __u16 object_id; | |
| 73 | + __u16 method_id; | |
| 74 | + __u16 num_attrs; | |
| 75 | + __u64 reserved; | |
| 76 | + struct ib_uverbs_attr attrs[0]; | |
| 77 | +}; | |
| 78 | + | |
| 46 | 79 | /* |
| 47 | 80 | * General blocks assignments |
| 48 | 81 | * It is closed on purpose do not expose it it user space |
| @@ -125,7 +125,8 @@ enum pvrdma_wc_flags { · 124 unmodified lines | ||
| 125 | 125 | PVRDMA_WC_IP_CSUM_OK = 1 << 3, |
| 126 | 126 | PVRDMA_WC_WITH_SMAC = 1 << 4, |
| 127 | 127 | PVRDMA_WC_WITH_VLAN = 1 << 5, |
| 128 | − PVRDMA_WC_FLAGS_MAX = PVRDMA_WC_WITH_VLAN, | |
| 128 | + PVRDMA_WC_WITH_NETWORK_HDR_TYPE = 1 << 6, | |
| 129 | + PVRDMA_WC_FLAGS_MAX = PVRDMA_WC_WITH_NETWORK_HDR_TYPE, | |
| 129 | 130 | }; |
| 130 | 131 | |
| 131 | 132 | struct pvrdma_alloc_ucontext_resp { |
| @@ -283,7 +284,8 @@ struct pvrdma_cqe { · 151 unmodified lines | ||
| 283 | 284 | __u8 dlid_path_bits; |
| 284 | 285 | __u8 port_num; |
| 285 | 286 | __u8 smac[6]; |
| 286 | − __u8 reserved2[7]; /* Pad to next power of 2 (64). */ | |
| 287 | + __u8 network_hdr_type; | |
| 288 | + __u8 reserved2[6]; /* Pad to next power of 2 (64). */ | |
| 287 | 289 | }; |
| 288 | 290 | |
| 289 | 291 | #endif /* __VMW_PVRDMA_ABI_H__ */ |
| @@ -163,8 +163,71 @@ · 162 unmodified lines | ||
| 163 | 163 | * |
| 164 | 164 | * %SKL_TKN_U32_DMA_BUF_SIZE: DMA buffer size in millisec |
| 165 | 165 | * |
| 166 | + * %SKL_TKN_U32_PIPE_DIR: Specifies pipe direction. Can be | |
| 167 | + * playback/capture. | |
| 168 | + * | |
| 169 | + * %SKL_TKN_U32_NUM_CONFIGS: Number of pipe configs | |
| 170 | + * | |
| 171 | + * %SKL_TKN_U32_PATH_MEM_PGS: Size of memory (in pages) required for pipeline | |
| 172 | + * and its data | |
| 173 | + * | |
| 174 | + * %SKL_TKN_U32_PIPE_CONFIG_ID: Config id for the modules in the pipe | |
| 175 | + * and PCM params supported by that pipe | |
| 176 | + * config. This is used as index to fill | |
| 177 | + * up the pipe config and module config | |
| 178 | + * structure. | |
| 179 | + * | |
| 180 | + * %SKL_TKN_U32_CFG_FREQ: | |
| 181 | + * %SKL_TKN_U8_CFG_CHAN: | |
| 182 | + * %SKL_TKN_U8_CFG_BPS: PCM params (freq, channels, bits per sample) | |
| 183 | + * supported for each of the pipe configs. | |
| 184 | + * | |
| 185 | + * %SKL_TKN_CFG_MOD_RES_ID: Module's resource index for each of the | |
| 186 | + * pipe config | |
| 187 | + * | |
| 188 | + * %SKL_TKN_CFG_MOD_FMT_ID: Module's interface index for each of the | |
| 189 | + * pipe config | |
| 190 | + * | |
| 191 | + * %SKL_TKN_U8_NUM_MOD: Number of modules in the manifest | |
| 192 | + * | |
| 193 | + * %SKL_TKN_MM_U8_MOD_IDX: Current index of the module in the manifest | |
| 194 | + * | |
| 195 | + * %SKL_TKN_MM_U8_NUM_RES: Number of resources for the module | |
| 196 | + * | |
| 197 | + * %SKL_TKN_MM_U8_NUM_INTF: Number of interfaces for the module | |
| 198 | + * | |
| 199 | + * %SKL_TKN_MM_U32_RES_ID: Resource index for the resource info to | |
| 200 | + * be filled into. | |
| 201 | + * A module can support multiple resource | |
| 202 | + * configuration and is represnted as a | |
| 203 | + * resource table. This index is used to | |
| 204 | + * fill information into appropriate index. | |
| 205 | + * | |
| 206 | + * %SKL_TKN_MM_U32_CPS: DSP cycles per second | |
| 207 | + * | |
| 208 | + * %SKL_TKN_MM_U32_DMA_SIZE: Allocated buffer size for gateway DMA | |
| 209 | + * | |
| 210 | + * %SKL_TKN_MM_U32_CPC: DSP cycles allocated per frame | |
| 211 | + * | |
| 212 | + * %SKL_TKN_MM_U32_RES_PIN_ID: Resource pin index in the module | |
| 213 | + * | |
| 214 | + * %SKL_TKN_MM_U32_INTF_PIN_ID: Interface index in the module | |
| 215 | + * | |
| 216 | + * %SKL_TKN_MM_U32_PIN_BUF: Buffer size of the module pin | |
| 217 | + * | |
| 218 | + * %SKL_TKN_MM_U32_FMT_ID: Format index for each of the interface/ | |
| 219 | + * format information to be filled into. | |
| 220 | + * | |
| 221 | + * %SKL_TKN_MM_U32_NUM_IN_FMT: Number of input formats | |
| 222 | + * %SKL_TKN_MM_U32_NUM_OUT_FMT: Number of output formats | |
| 223 | + * | |
| 166 | 224 | * module_id and loadable flags dont have tokens as these values will be |
| 167 | 225 | * read from the DSP FW manifest |
| 226 | + * | |
| 227 | + * Tokens defined can be used either in the manifest or widget private data. | |
| 228 | + * | |
| 229 | + * SKL_TKN_MM is used as a suffix for all tokens that represent | |
| 230 | + * module data in the manifest. | |
| 168 | 231 | */ |
| 169 | 232 | enum SKL_TKNS { |
| 170 | 233 | SKL_TKN_UUID = 1, |
| @@ -218,7 +281,34 @@ enum SKL_TKNS { · 47 unmodified lines | ||
| 218 | 281 | SKL_TKL_U32_D0I3_CAPS, /* Typo added at v4.10 */ |
| 219 | 282 | SKL_TKN_U32_D0I3_CAPS = SKL_TKL_U32_D0I3_CAPS, |
| 220 | 283 | SKL_TKN_U32_DMA_BUF_SIZE, |
| 221 | − SKL_TKN_MAX = SKL_TKN_U32_DMA_BUF_SIZE, | |
| 284 | + | |
| 285 | + SKL_TKN_U32_PIPE_DIRECTION, | |
| 286 | + SKL_TKN_U32_PIPE_CONFIG_ID, | |
| 287 | + SKL_TKN_U32_NUM_CONFIGS, | |
| 288 | + SKL_TKN_U32_PATH_MEM_PGS, | |
| 289 | + | |
| 290 | + SKL_TKN_U32_CFG_FREQ, | |
| 291 | + SKL_TKN_U8_CFG_CHAN, | |
| 292 | + SKL_TKN_U8_CFG_BPS, | |
| 293 | + SKL_TKN_CFG_MOD_RES_ID, | |
| 294 | + SKL_TKN_CFG_MOD_FMT_ID, | |
| 295 | + SKL_TKN_U8_NUM_MOD, | |
| 296 | + | |
| 297 | + SKL_TKN_MM_U8_MOD_IDX, | |
| 298 | + SKL_TKN_MM_U8_NUM_RES, | |
| 299 | + SKL_TKN_MM_U8_NUM_INTF, | |
| 300 | + SKL_TKN_MM_U32_RES_ID, | |
| 301 | + SKL_TKN_MM_U32_CPS, | |
| 302 | + SKL_TKN_MM_U32_DMA_SIZE, | |
| 303 | + SKL_TKN_MM_U32_CPC, | |
| 304 | + SKL_TKN_MM_U32_RES_PIN_ID, | |
| 305 | + SKL_TKN_MM_U32_INTF_PIN_ID, | |
| 306 | + SKL_TKN_MM_U32_PIN_BUF, | |
| 307 | + SKL_TKN_MM_U32_FMT_ID, | |
| 308 | + SKL_TKN_MM_U32_NUM_IN_FMT, | |
| 309 | + SKL_TKN_MM_U32_NUM_OUT_FMT, | |
| 310 | + | |
| 311 | + SKL_TKN_MAX = SKL_TKN_MM_U32_NUM_OUT_FMT, | |
| 222 | 312 | }; |
| 223 | 313 | |
| 224 | 314 | #endif |