| author | |
| committer | |
| log | 37706cc1d98025c5ebff52d35cb6929ea1562dd7 |
| tree | 9e196aab70771af856dbcfd6f8c3776b1c3529b4 |
| parent | 1cc388d5263058f9e9eecc410eea825a9a58e143 |
212 files changed, 8820 insertions(+), 611 deletions(-)
lib/libc/include/aarch64-linux-any/asm/hwcap.h+7-1| ... | ... | @@ -21,7 +21,7 @@ |
| 21 | 21 | * HWCAP flags - for AT_HWCAP |
| 22 | 22 | * |
| 23 | 23 | * Bits 62 and 63 are reserved for use by libc. |
| 24 | * Bits 32-61 are unallocated for potential use by libc. | |
| 24 | * Bits 33-61 are unallocated for potential use by libc. | |
| 25 | 25 | */ |
| 26 | 26 | #define HWCAP_FP		(1 << 0) |
| 27 | 27 | #define HWCAP_ASIMD		(1 << 1) |
| ... | ... | @@ -55,6 +55,7 @@ |
| 55 | 55 | #define HWCAP_SB		(1 << 29) |
| 56 | 56 | #define HWCAP_PACA		(1 << 30) |
| 57 | 57 | #define HWCAP_PACG		(1UL << 31) |
| 58 | #define HWCAP_GCS		(1UL << 32) | |
| 58 | 59 | |
| 59 | 60 | /* |
| 60 | 61 | * HWCAP2 flags - for AT_HWCAP2 |
| ... | ... | @@ -122,5 +123,10 @@ |
| 122 | 123 | #define HWCAP2_SME_SF8FMA	(1UL << 60) |
| 123 | 124 | #define HWCAP2_SME_SF8DP4	(1UL << 61) |
| 124 | 125 | #define HWCAP2_SME_SF8DP2	(1UL << 62) |
| 126 | #define HWCAP2_POE		(1UL << 63) | |
| 127 | ||
| 128 | /* | |
| 129 | * HWCAP3 flags - for AT_HWCAP3 | |
| 130 | */ | |
| 125 | 131 | |
| 126 | 132 | #endif /* __ASM_HWCAP_H */ |
| \ No newline at end of file |
lib/libc/include/aarch64-linux-any/asm/kvm.h+6| ... | ... | @@ -473,6 +473,12 @@ enum { |
| 473 | 473 | */ |
| 474 | 474 | #define KVM_SYSTEM_EVENT_RESET_FLAG_PSCI_RESET2	(1ULL << 0) |
| 475 | 475 | |
| 476 | /* | |
| 477 | * Shutdown caused by a PSCI v1.3 SYSTEM_OFF2 call. | |
| 478 | * Valid only when the system event has a type of KVM_SYSTEM_EVENT_SHUTDOWN. | |
| 479 | */ | |
| 480 | #define KVM_SYSTEM_EVENT_SHUTDOWN_FLAG_PSCI_OFF2	(1ULL << 0) | |
| 481 | ||
| 476 | 482 | /* run->fail_entry.hardware_entry_failure_reason codes. */ |
| 477 | 483 | #define KVM_EXIT_FAIL_ENTRY_CPU_UNSUPPORTED	(1ULL << 0) |
| 478 | 484 |
lib/libc/include/aarch64-linux-any/asm/mman.h+9| ... | ... | @@ -7,4 +7,13 @@ |
| 7 | 7 | #define PROT_BTI	0x10		/* BTI guarded page */ |
| 8 | 8 | #define PROT_MTE	0x20		/* Normal Tagged mapping */ |
| 9 | 9 | |
| 10 | /* Override any generic PKEY permission defines */ | |
| 11 | #define PKEY_DISABLE_EXECUTE	0x4 | |
| 12 | #define PKEY_DISABLE_READ	0x8 | |
| 13 | #undef PKEY_ACCESS_MASK | |
| 14 | #define PKEY_ACCESS_MASK (PKEY_DISABLE_ACCESS |\ | |
| 15 | 				PKEY_DISABLE_WRITE |\ | |
| 16 | 				PKEY_DISABLE_READ |\ | |
| 17 | 				PKEY_DISABLE_EXECUTE) | |
| 18 | ||
| 10 | 19 | #endif /* ! _UAPI__ASM_MMAN_H */ |
| \ No newline at end of file |
lib/libc/include/aarch64-linux-any/asm/ptrace.h+8| ... | ... | @@ -324,6 +324,14 @@ struct user_za_header { |
| 324 | 324 | #define ZA_PT_SIZE(vq)						\ |
| 325 | 325 | 	(ZA_PT_ZA_OFFSET + ZA_PT_ZA_SIZE(vq)) |
| 326 | 326 | |
| 327 | /* GCS state (NT_ARM_GCS) */ | |
| 328 | ||
| 329 | struct user_gcs { | |
| 330 | 	__u64 features_enabled; | |
| 331 | 	__u64 features_locked; | |
| 332 | 	__u64 gcspr_el0; | |
| 333 | }; | |
| 334 | ||
| 327 | 335 | #endif /* __ASSEMBLY__ */ |
| 328 | 336 | |
| 329 | 337 | #endif /* __ASM_PTRACE_H */ |
| \ No newline at end of file |
lib/libc/include/aarch64-linux-any/asm/sigcontext.h+19-3| ... | ... | @@ -98,6 +98,13 @@ struct esr_context { |
| 98 | 98 | 	__u64 esr; |
| 99 | 99 | }; |
| 100 | 100 | |
| 101 | #define POE_MAGIC	0x504f4530 | |
| 102 | ||
| 103 | struct poe_context { | |
| 104 | 	struct _aarch64_ctx head; | |
| 105 | 	__u64 por_el0; | |
| 106 | }; | |
| 107 | ||
| 101 | 108 | /* |
| 102 | 109 | * extra_context: describes extra space in the signal frame for |
| 103 | 110 | * additional structures that don't fit in sigcontext.__reserved[]. |
| ... | ... | @@ -176,6 +183,15 @@ struct zt_context { |
| 176 | 183 | 	__u16 __reserved[3]; |
| 177 | 184 | }; |
| 178 | 185 | |
| 186 | #define GCS_MAGIC	0x47435300 | |
| 187 | ||
| 188 | struct gcs_context { | |
| 189 | 	struct _aarch64_ctx head; | |
| 190 | 	__u64 gcspr; | |
| 191 | 	__u64 features_enabled; | |
| 192 | 	__u64 reserved; | |
| 193 | }; | |
| 194 | ||
| 179 | 195 | #endif /* !__ASSEMBLY__ */ |
| 180 | 196 | |
| 181 | 197 | #include <asm/sve_context.h> |
| ... | ... | @@ -320,10 +336,10 @@ struct zt_context { |
| 320 | 336 | 	((sizeof(struct za_context) + (__SVE_VQ_BYTES - 1))	\ |
| 321 | 337 | 		/ __SVE_VQ_BYTES * __SVE_VQ_BYTES) |
| 322 | 338 | |
| 323 | #define ZA_SIG_REGS_SIZE(vq) ((vq * __SVE_VQ_BYTES) * (vq * __SVE_VQ_BYTES)) | |
| 339 | #define ZA_SIG_REGS_SIZE(vq) (((vq) * __SVE_VQ_BYTES) * ((vq) * __SVE_VQ_BYTES)) | |
| 324 | 340 | |
| 325 | 341 | #define ZA_SIG_ZAV_OFFSET(vq, n) (ZA_SIG_REGS_OFFSET + \ |
| 326 | 				 (SVE_SIG_ZREG_SIZE(vq) * n)) | |
| 342 | 				 (SVE_SIG_ZREG_SIZE(vq) * (n))) | |
| 327 | 343 | |
| 328 | 344 | #define ZA_SIG_CONTEXT_SIZE(vq) \ |
| 329 | 345 | 		(ZA_SIG_REGS_OFFSET + ZA_SIG_REGS_SIZE(vq)) |
| ... | ... | @@ -334,7 +350,7 @@ struct zt_context { |
| 334 | 350 | |
| 335 | 351 | #define ZT_SIG_REGS_OFFSET sizeof(struct zt_context) |
| 336 | 352 | |
| 337 | #define ZT_SIG_REGS_SIZE(n) (ZT_SIG_REG_BYTES * n) | |
| 353 | #define ZT_SIG_REGS_SIZE(n) (ZT_SIG_REG_BYTES * (n)) | |
| 338 | 354 | |
| 339 | 355 | #define ZT_SIG_CONTEXT_SIZE(n) \ |
| 340 | 356 | 	(sizeof(struct zt_context) + ZT_SIG_REGS_SIZE(n)) |
lib/libc/include/aarch64-linux-any/asm/unistd.h+1-24| ... | ... | @@ -1,25 +1,2 @@ |
| 1 | 1 | /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ |
| 2 | /* | |
| 3 | * Copyright (C) 2012 ARM Ltd. | |
| 4 | * | |
| 5 | * This program is free software; you can redistribute it and/or modify | |
| 6 | * it under the terms of the GNU General Public License version 2 as | |
| 7 | * published by the Free Software Foundation. | |
| 8 | * | |
| 9 | * This program is distributed in the hope that it will be useful, | |
| 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
| 12 | * GNU General Public License for more details. | |
| 13 | * | |
| 14 | * You should have received a copy of the GNU General Public License | |
| 15 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | |
| 16 | */ | |
| 17 | ||
| 18 | #define __ARCH_WANT_RENAMEAT | |
| 19 | #define __ARCH_WANT_NEW_STAT | |
| 20 | #define __ARCH_WANT_SET_GET_RLIMIT | |
| 21 | #define __ARCH_WANT_TIME32_SYSCALLS | |
| 22 | #define __ARCH_WANT_SYS_CLONE3 | |
| 23 | #define __ARCH_WANT_MEMFD_SECRET | |
| 24 | ||
| 25 | #include <asm-generic/unistd.h> | |
| \ No newline at end of file | ||
| 2 | #include <asm/unistd_64.h> | |
| \ No newline at end of file |
lib/libc/include/aarch64-linux-any/asm/unistd_64.h created+328| ... | ... | @@ -0,0 +1,328 @@ |
| 1 | #ifndef _ASM_UNISTD_64_H | |
| 2 | #define _ASM_UNISTD_64_H | |
| 3 | ||
| 4 | #define __NR_io_setup 0 | |
| 5 | #define __NR_io_destroy 1 | |
| 6 | #define __NR_io_submit 2 | |
| 7 | #define __NR_io_cancel 3 | |
| 8 | #define __NR_io_getevents 4 | |
| 9 | #define __NR_setxattr 5 | |
| 10 | #define __NR_lsetxattr 6 | |
| 11 | #define __NR_fsetxattr 7 | |
| 12 | #define __NR_getxattr 8 | |
| 13 | #define __NR_lgetxattr 9 | |
| 14 | #define __NR_fgetxattr 10 | |
| 15 | #define __NR_listxattr 11 | |
| 16 | #define __NR_llistxattr 12 | |
| 17 | #define __NR_flistxattr 13 | |
| 18 | #define __NR_removexattr 14 | |
| 19 | #define __NR_lremovexattr 15 | |
| 20 | #define __NR_fremovexattr 16 | |
| 21 | #define __NR_getcwd 17 | |
| 22 | #define __NR_lookup_dcookie 18 | |
| 23 | #define __NR_eventfd2 19 | |
| 24 | #define __NR_epoll_create1 20 | |
| 25 | #define __NR_epoll_ctl 21 | |
| 26 | #define __NR_epoll_pwait 22 | |
| 27 | #define __NR_dup 23 | |
| 28 | #define __NR_dup3 24 | |
| 29 | #define __NR_fcntl 25 | |
| 30 | #define __NR_inotify_init1 26 | |
| 31 | #define __NR_inotify_add_watch 27 | |
| 32 | #define __NR_inotify_rm_watch 28 | |
| 33 | #define __NR_ioctl 29 | |
| 34 | #define __NR_ioprio_set 30 | |
| 35 | #define __NR_ioprio_get 31 | |
| 36 | #define __NR_flock 32 | |
| 37 | #define __NR_mknodat 33 | |
| 38 | #define __NR_mkdirat 34 | |
| 39 | #define __NR_unlinkat 35 | |
| 40 | #define __NR_symlinkat 36 | |
| 41 | #define __NR_linkat 37 | |
| 42 | #define __NR_renameat 38 | |
| 43 | #define __NR_umount2 39 | |
| 44 | #define __NR_mount 40 | |
| 45 | #define __NR_pivot_root 41 | |
| 46 | #define __NR_nfsservctl 42 | |
| 47 | #define __NR_statfs 43 | |
| 48 | #define __NR_fstatfs 44 | |
| 49 | #define __NR_truncate 45 | |
| 50 | #define __NR_ftruncate 46 | |
| 51 | #define __NR_fallocate 47 | |
| 52 | #define __NR_faccessat 48 | |
| 53 | #define __NR_chdir 49 | |
| 54 | #define __NR_fchdir 50 | |
| 55 | #define __NR_chroot 51 | |
| 56 | #define __NR_fchmod 52 | |
| 57 | #define __NR_fchmodat 53 | |
| 58 | #define __NR_fchownat 54 | |
| 59 | #define __NR_fchown 55 | |
| 60 | #define __NR_openat 56 | |
| 61 | #define __NR_close 57 | |
| 62 | #define __NR_vhangup 58 | |
| 63 | #define __NR_pipe2 59 | |
| 64 | #define __NR_quotactl 60 | |
| 65 | #define __NR_getdents64 61 | |
| 66 | #define __NR_lseek 62 | |
| 67 | #define __NR_read 63 | |
| 68 | #define __NR_write 64 | |
| 69 | #define __NR_readv 65 | |
| 70 | #define __NR_writev 66 | |
| 71 | #define __NR_pread64 67 | |
| 72 | #define __NR_pwrite64 68 | |
| 73 | #define __NR_preadv 69 | |
| 74 | #define __NR_pwritev 70 | |
| 75 | #define __NR_sendfile 71 | |
| 76 | #define __NR_pselect6 72 | |
| 77 | #define __NR_ppoll 73 | |
| 78 | #define __NR_signalfd4 74 | |
| 79 | #define __NR_vmsplice 75 | |
| 80 | #define __NR_splice 76 | |
| 81 | #define __NR_tee 77 | |
| 82 | #define __NR_readlinkat 78 | |
| 83 | #define __NR_newfstatat 79 | |
| 84 | #define __NR_fstat 80 | |
| 85 | #define __NR_sync 81 | |
| 86 | #define __NR_fsync 82 | |
| 87 | #define __NR_fdatasync 83 | |
| 88 | #define __NR_sync_file_range 84 | |
| 89 | #define __NR_timerfd_create 85 | |
| 90 | #define __NR_timerfd_settime 86 | |
| 91 | #define __NR_timerfd_gettime 87 | |
| 92 | #define __NR_utimensat 88 | |
| 93 | #define __NR_acct 89 | |
| 94 | #define __NR_capget 90 | |
| 95 | #define __NR_capset 91 | |
| 96 | #define __NR_personality 92 | |
| 97 | #define __NR_exit 93 | |
| 98 | #define __NR_exit_group 94 | |
| 99 | #define __NR_waitid 95 | |
| 100 | #define __NR_set_tid_address 96 | |
| 101 | #define __NR_unshare 97 | |
| 102 | #define __NR_futex 98 | |
| 103 | #define __NR_set_robust_list 99 | |
| 104 | #define __NR_get_robust_list 100 | |
| 105 | #define __NR_nanosleep 101 | |
| 106 | #define __NR_getitimer 102 | |
| 107 | #define __NR_setitimer 103 | |
| 108 | #define __NR_kexec_load 104 | |
| 109 | #define __NR_init_module 105 | |
| 110 | #define __NR_delete_module 106 | |
| 111 | #define __NR_timer_create 107 | |
| 112 | #define __NR_timer_gettime 108 | |
| 113 | #define __NR_timer_getoverrun 109 | |
| 114 | #define __NR_timer_settime 110 | |
| 115 | #define __NR_timer_delete 111 | |
| 116 | #define __NR_clock_settime 112 | |
| 117 | #define __NR_clock_gettime 113 | |
| 118 | #define __NR_clock_getres 114 | |
| 119 | #define __NR_clock_nanosleep 115 | |
| 120 | #define __NR_syslog 116 | |
| 121 | #define __NR_ptrace 117 | |
| 122 | #define __NR_sched_setparam 118 | |
| 123 | #define __NR_sched_setscheduler 119 | |
| 124 | #define __NR_sched_getscheduler 120 | |
| 125 | #define __NR_sched_getparam 121 | |
| 126 | #define __NR_sched_setaffinity 122 | |
| 127 | #define __NR_sched_getaffinity 123 | |
| 128 | #define __NR_sched_yield 124 | |
| 129 | #define __NR_sched_get_priority_max 125 | |
| 130 | #define __NR_sched_get_priority_min 126 | |
| 131 | #define __NR_sched_rr_get_interval 127 | |
| 132 | #define __NR_restart_syscall 128 | |
| 133 | #define __NR_kill 129 | |
| 134 | #define __NR_tkill 130 | |
| 135 | #define __NR_tgkill 131 | |
| 136 | #define __NR_sigaltstack 132 | |
| 137 | #define __NR_rt_sigsuspend 133 | |
| 138 | #define __NR_rt_sigaction 134 | |
| 139 | #define __NR_rt_sigprocmask 135 | |
| 140 | #define __NR_rt_sigpending 136 | |
| 141 | #define __NR_rt_sigtimedwait 137 | |
| 142 | #define __NR_rt_sigqueueinfo 138 | |
| 143 | #define __NR_rt_sigreturn 139 | |
| 144 | #define __NR_setpriority 140 | |
| 145 | #define __NR_getpriority 141 | |
| 146 | #define __NR_reboot 142 | |
| 147 | #define __NR_setregid 143 | |
| 148 | #define __NR_setgid 144 | |
| 149 | #define __NR_setreuid 145 | |
| 150 | #define __NR_setuid 146 | |
| 151 | #define __NR_setresuid 147 | |
| 152 | #define __NR_getresuid 148 | |
| 153 | #define __NR_setresgid 149 | |
| 154 | #define __NR_getresgid 150 | |
| 155 | #define __NR_setfsuid 151 | |
| 156 | #define __NR_setfsgid 152 | |
| 157 | #define __NR_times 153 | |
| 158 | #define __NR_setpgid 154 | |
| 159 | #define __NR_getpgid 155 | |
| 160 | #define __NR_getsid 156 | |
| 161 | #define __NR_setsid 157 | |
| 162 | #define __NR_getgroups 158 | |
| 163 | #define __NR_setgroups 159 | |
| 164 | #define __NR_uname 160 | |
| 165 | #define __NR_sethostname 161 | |
| 166 | #define __NR_setdomainname 162 | |
| 167 | #define __NR_getrlimit 163 | |
| 168 | #define __NR_setrlimit 164 | |
| 169 | #define __NR_getrusage 165 | |
| 170 | #define __NR_umask 166 | |
| 171 | #define __NR_prctl 167 | |
| 172 | #define __NR_getcpu 168 | |
| 173 | #define __NR_gettimeofday 169 | |
| 174 | #define __NR_settimeofday 170 | |
| 175 | #define __NR_adjtimex 171 | |
| 176 | #define __NR_getpid 172 | |
| 177 | #define __NR_getppid 173 | |
| 178 | #define __NR_getuid 174 | |
| 179 | #define __NR_geteuid 175 | |
| 180 | #define __NR_getgid 176 | |
| 181 | #define __NR_getegid 177 | |
| 182 | #define __NR_gettid 178 | |
| 183 | #define __NR_sysinfo 179 | |
| 184 | #define __NR_mq_open 180 | |
| 185 | #define __NR_mq_unlink 181 | |
| 186 | #define __NR_mq_timedsend 182 | |
| 187 | #define __NR_mq_timedreceive 183 | |
| 188 | #define __NR_mq_notify 184 | |
| 189 | #define __NR_mq_getsetattr 185 | |
| 190 | #define __NR_msgget 186 | |
| 191 | #define __NR_msgctl 187 | |
| 192 | #define __NR_msgrcv 188 | |
| 193 | #define __NR_msgsnd 189 | |
| 194 | #define __NR_semget 190 | |
| 195 | #define __NR_semctl 191 | |
| 196 | #define __NR_semtimedop 192 | |
| 197 | #define __NR_semop 193 | |
| 198 | #define __NR_shmget 194 | |
| 199 | #define __NR_shmctl 195 | |
| 200 | #define __NR_shmat 196 | |
| 201 | #define __NR_shmdt 197 | |
| 202 | #define __NR_socket 198 | |
| 203 | #define __NR_socketpair 199 | |
| 204 | #define __NR_bind 200 | |
| 205 | #define __NR_listen 201 | |
| 206 | #define __NR_accept 202 | |
| 207 | #define __NR_connect 203 | |
| 208 | #define __NR_getsockname 204 | |
| 209 | #define __NR_getpeername 205 | |
| 210 | #define __NR_sendto 206 | |
| 211 | #define __NR_recvfrom 207 | |
| 212 | #define __NR_setsockopt 208 | |
| 213 | #define __NR_getsockopt 209 | |
| 214 | #define __NR_shutdown 210 | |
| 215 | #define __NR_sendmsg 211 | |
| 216 | #define __NR_recvmsg 212 | |
| 217 | #define __NR_readahead 213 | |
| 218 | #define __NR_brk 214 | |
| 219 | #define __NR_munmap 215 | |
| 220 | #define __NR_mremap 216 | |
| 221 | #define __NR_add_key 217 | |
| 222 | #define __NR_request_key 218 | |
| 223 | #define __NR_keyctl 219 | |
| 224 | #define __NR_clone 220 | |
| 225 | #define __NR_execve 221 | |
| 226 | #define __NR_mmap 222 | |
| 227 | #define __NR_fadvise64 223 | |
| 228 | #define __NR_swapon 224 | |
| 229 | #define __NR_swapoff 225 | |
| 230 | #define __NR_mprotect 226 | |
| 231 | #define __NR_msync 227 | |
| 232 | #define __NR_mlock 228 | |
| 233 | #define __NR_munlock 229 | |
| 234 | #define __NR_mlockall 230 | |
| 235 | #define __NR_munlockall 231 | |
| 236 | #define __NR_mincore 232 | |
| 237 | #define __NR_madvise 233 | |
| 238 | #define __NR_remap_file_pages 234 | |
| 239 | #define __NR_mbind 235 | |
| 240 | #define __NR_get_mempolicy 236 | |
| 241 | #define __NR_set_mempolicy 237 | |
| 242 | #define __NR_migrate_pages 238 | |
| 243 | #define __NR_move_pages 239 | |
| 244 | #define __NR_rt_tgsigqueueinfo 240 | |
| 245 | #define __NR_perf_event_open 241 | |
| 246 | #define __NR_accept4 242 | |
| 247 | #define __NR_recvmmsg 243 | |
| 248 | #define __NR_wait4 260 | |
| 249 | #define __NR_prlimit64 261 | |
| 250 | #define __NR_fanotify_init 262 | |
| 251 | #define __NR_fanotify_mark 263 | |
| 252 | #define __NR_name_to_handle_at 264 | |
| 253 | #define __NR_open_by_handle_at 265 | |
| 254 | #define __NR_clock_adjtime 266 | |
| 255 | #define __NR_syncfs 267 | |
| 256 | #define __NR_setns 268 | |
| 257 | #define __NR_sendmmsg 269 | |
| 258 | #define __NR_process_vm_readv 270 | |
| 259 | #define __NR_process_vm_writev 271 | |
| 260 | #define __NR_kcmp 272 | |
| 261 | #define __NR_finit_module 273 | |
| 262 | #define __NR_sched_setattr 274 | |
| 263 | #define __NR_sched_getattr 275 | |
| 264 | #define __NR_renameat2 276 | |
| 265 | #define __NR_seccomp 277 | |
| 266 | #define __NR_getrandom 278 | |
| 267 | #define __NR_memfd_create 279 | |
| 268 | #define __NR_bpf 280 | |
| 269 | #define __NR_execveat 281 | |
| 270 | #define __NR_userfaultfd 282 | |
| 271 | #define __NR_membarrier 283 | |
| 272 | #define __NR_mlock2 284 | |
| 273 | #define __NR_copy_file_range 285 | |
| 274 | #define __NR_preadv2 286 | |
| 275 | #define __NR_pwritev2 287 | |
| 276 | #define __NR_pkey_mprotect 288 | |
| 277 | #define __NR_pkey_alloc 289 | |
| 278 | #define __NR_pkey_free 290 | |
| 279 | #define __NR_statx 291 | |
| 280 | #define __NR_io_pgetevents 292 | |
| 281 | #define __NR_rseq 293 | |
| 282 | #define __NR_kexec_file_load 294 | |
| 283 | #define __NR_pidfd_send_signal 424 | |
| 284 | #define __NR_io_uring_setup 425 | |
| 285 | #define __NR_io_uring_enter 426 | |
| 286 | #define __NR_io_uring_register 427 | |
| 287 | #define __NR_open_tree 428 | |
| 288 | #define __NR_move_mount 429 | |
| 289 | #define __NR_fsopen 430 | |
| 290 | #define __NR_fsconfig 431 | |
| 291 | #define __NR_fsmount 432 | |
| 292 | #define __NR_fspick 433 | |
| 293 | #define __NR_pidfd_open 434 | |
| 294 | #define __NR_clone3 435 | |
| 295 | #define __NR_close_range 436 | |
| 296 | #define __NR_openat2 437 | |
| 297 | #define __NR_pidfd_getfd 438 | |
| 298 | #define __NR_faccessat2 439 | |
| 299 | #define __NR_process_madvise 440 | |
| 300 | #define __NR_epoll_pwait2 441 | |
| 301 | #define __NR_mount_setattr 442 | |
| 302 | #define __NR_quotactl_fd 443 | |
| 303 | #define __NR_landlock_create_ruleset 444 | |
| 304 | #define __NR_landlock_add_rule 445 | |
| 305 | #define __NR_landlock_restrict_self 446 | |
| 306 | #define __NR_memfd_secret 447 | |
| 307 | #define __NR_process_mrelease 448 | |
| 308 | #define __NR_futex_waitv 449 | |
| 309 | #define __NR_set_mempolicy_home_node 450 | |
| 310 | #define __NR_cachestat 451 | |
| 311 | #define __NR_fchmodat2 452 | |
| 312 | #define __NR_map_shadow_stack 453 | |
| 313 | #define __NR_futex_wake 454 | |
| 314 | #define __NR_futex_wait 455 | |
| 315 | #define __NR_futex_requeue 456 | |
| 316 | #define __NR_statmount 457 | |
| 317 | #define __NR_listmount 458 | |
| 318 | #define __NR_lsm_get_self_attr 459 | |
| 319 | #define __NR_lsm_set_self_attr 460 | |
| 320 | #define __NR_lsm_list_modules 461 | |
| 321 | #define __NR_mseal 462 | |
| 322 | #define __NR_setxattrat 463 | |
| 323 | #define __NR_getxattrat 464 | |
| 324 | #define __NR_listxattrat 465 | |
| 325 | #define __NR_removexattrat 466 | |
| 326 | ||
| 327 | ||
| 328 | #endif /* _ASM_UNISTD_64_H */ | |
| \ No newline at end of file |
lib/libc/include/any-linux-any/asm-generic/ioctl.h+7-7| ... | ... | @@ -80,13 +80,13 @@ |
| 80 | 80 | * NOTE: _IOW means userland is writing and kernel is reading. _IOR |
| 81 | 81 | * means userland is reading and kernel is writing. |
| 82 | 82 | */ |
| 83 | #define _IO(type,nr)		_IOC(_IOC_NONE,(type),(nr),0) | |
| 84 | #define _IOR(type,nr,size)	_IOC(_IOC_READ,(type),(nr),(_IOC_TYPECHECK(size))) | |
| 85 | #define _IOW(type,nr,size)	_IOC(_IOC_WRITE,(type),(nr),(_IOC_TYPECHECK(size))) | |
| 86 | #define _IOWR(type,nr,size)	_IOC(_IOC_READ|_IOC_WRITE,(type),(nr),(_IOC_TYPECHECK(size))) | |
| 87 | #define _IOR_BAD(type,nr,size)	_IOC(_IOC_READ,(type),(nr),sizeof(size)) | |
| 88 | #define _IOW_BAD(type,nr,size)	_IOC(_IOC_WRITE,(type),(nr),sizeof(size)) | |
| 89 | #define _IOWR_BAD(type,nr,size)	_IOC(_IOC_READ|_IOC_WRITE,(type),(nr),sizeof(size)) | |
| 83 | #define _IO(type,nr)			_IOC(_IOC_NONE,(type),(nr),0) | |
| 84 | #define _IOR(type,nr,argtype)		_IOC(_IOC_READ,(type),(nr),(_IOC_TYPECHECK(argtype))) | |
| 85 | #define _IOW(type,nr,argtype)		_IOC(_IOC_WRITE,(type),(nr),(_IOC_TYPECHECK(argtype))) | |
| 86 | #define _IOWR(type,nr,argtype)		_IOC(_IOC_READ|_IOC_WRITE,(type),(nr),(_IOC_TYPECHECK(argtype))) | |
| 87 | #define _IOR_BAD(type,nr,argtype)	_IOC(_IOC_READ,(type),(nr),sizeof(argtype)) | |
| 88 | #define _IOW_BAD(type,nr,argtype)	_IOC(_IOC_WRITE,(type),(nr),sizeof(argtype)) | |
| 89 | #define _IOWR_BAD(type,nr,argtype)	_IOC(_IOC_READ|_IOC_WRITE,(type),(nr),sizeof(argtype)) | |
| 90 | 90 | |
| 91 | 91 | /* used to decode ioctl numbers.. */ |
| 92 | 92 | #define _IOC_DIR(nr)		(((nr) >> _IOC_DIRSHIFT) & _IOC_DIRMASK) |
lib/libc/include/any-linux-any/asm-generic/mman-common.h+3| ... | ... | @@ -79,6 +79,9 @@ |
| 79 | 79 | |
| 80 | 80 | #define MADV_COLLAPSE	25		/* Synchronous hugepage collapse */ |
| 81 | 81 | |
| 82 | #define MADV_GUARD_INSTALL 102		/* fatal signal on access to range */ | |
| 83 | #define MADV_GUARD_REMOVE 103		/* unguard range */ | |
| 84 | ||
| 82 | 85 | /* compatibility flags */ |
| 83 | 86 | #define MAP_FILE	0 |
| 84 | 87 |
lib/libc/include/any-linux-any/asm-generic/mman.h+4| ... | ... | @@ -19,4 +19,8 @@ |
| 19 | 19 | #define MCL_FUTURE	2		/* lock all future mappings */ |
| 20 | 20 | #define MCL_ONFAULT	4		/* lock all pages that are faulted in */ |
| 21 | 21 | |
| 22 | #define SHADOW_STACK_SET_TOKEN (1ULL << 0) /* Set up a restore token in the shadow stack */ | |
| 23 | #define SHADOW_STACK_SET_MARKER (1ULL << 1) /* Set up a top of stack marker in the shadow stack */ | |
| 24 | ||
| 25 | ||
| 22 | 26 | #endif /* __ASM_GENERIC_MMAN_H */ |
| \ No newline at end of file |
lib/libc/include/any-linux-any/asm-generic/siginfo.h+1-1| ... | ... | @@ -46,7 +46,7 @@ union __sifields { |
| 46 | 46 | 		__kernel_timer_t _tid;	/* timer id */ |
| 47 | 47 | 		int _overrun;		/* overrun count */ |
| 48 | 48 | 		sigval_t _sigval;	/* same as below */ |
| 49 | 		int _sys_private; /* not to be passed to user */ | |
| 49 | 		int _sys_private; /* Not used by the kernel. Historic leftover. Always 0. */ | |
| 50 | 50 | 	} _timer; |
| 51 | 51 | |
| 52 | 52 | 	/* POSIX.1b signals */ |
lib/libc/include/any-linux-any/asm-generic/socket.h+8| ... | ... | @@ -135,6 +135,14 @@ |
| 135 | 135 | #define SO_PASSPIDFD		76 |
| 136 | 136 | #define SO_PEERPIDFD		77 |
| 137 | 137 | |
| 138 | #define SO_DEVMEM_LINEAR	78 | |
| 139 | #define SCM_DEVMEM_LINEAR	SO_DEVMEM_LINEAR | |
| 140 | #define SO_DEVMEM_DMABUF	79 | |
| 141 | #define SCM_DEVMEM_DMABUF	SO_DEVMEM_DMABUF | |
| 142 | #define SO_DEVMEM_DONTNEED	80 | |
| 143 | ||
| 144 | #define SCM_TS_OPT_ID		81 | |
| 145 | ||
| 138 | 146 | |
| 139 | 147 | #if __BITS_PER_LONG == 64 || (defined(__x86_64__) && defined(__ILP32__)) |
| 140 | 148 | /* on 64-bit and x32, avoid the ?: operator */ |
lib/libc/include/any-linux-any/asm-generic/unistd.h+10-5| ... | ... | @@ -776,12 +776,8 @@ __SYSCALL(__NR_fsmount, sys_fsmount) |
| 776 | 776 | __SYSCALL(__NR_fspick, sys_fspick) |
| 777 | 777 | #define __NR_pidfd_open 434 |
| 778 | 778 | __SYSCALL(__NR_pidfd_open, sys_pidfd_open) |
| 779 | ||
| 780 | #ifdef __ARCH_WANT_SYS_CLONE3 | |
| 781 | 779 | #define __NR_clone3 435 |
| 782 | 780 | __SYSCALL(__NR_clone3, sys_clone3) |
| 783 | #endif | |
| 784 | ||
| 785 | 781 | #define __NR_close_range 436 |
| 786 | 782 | __SYSCALL(__NR_close_range, sys_close_range) |
| 787 | 783 | #define __NR_openat2 437 |
| ... | ... | @@ -845,8 +841,17 @@ __SYSCALL(__NR_lsm_list_modules, sys_lsm_list_modules) |
| 845 | 841 | #define __NR_mseal 462 |
| 846 | 842 | __SYSCALL(__NR_mseal, sys_mseal) |
| 847 | 843 | |
| 844 | #define __NR_setxattrat 463 | |
| 845 | __SYSCALL(__NR_setxattrat, sys_setxattrat) | |
| 846 | #define __NR_getxattrat 464 | |
| 847 | __SYSCALL(__NR_getxattrat, sys_getxattrat) | |
| 848 | #define __NR_listxattrat 465 | |
| 849 | __SYSCALL(__NR_listxattrat, sys_listxattrat) | |
| 850 | #define __NR_removexattrat 466 | |
| 851 | __SYSCALL(__NR_removexattrat, sys_removexattrat) | |
| 852 | ||
| 848 | 853 | #undef __NR_syscalls |
| 849 | #define __NR_syscalls 463 | |
| 854 | #define __NR_syscalls 467 | |
| 850 | 855 | |
| 851 | 856 | /* |
| 852 | 857 | * 32 bit systems traditionally used different |
lib/libc/include/any-linux-any/drm/amdgpu_drm.h+31-1| ... | ... | @@ -171,6 +171,8 @@ extern "C" { |
| 171 | 171 | * may override the MTYPE selected in AMDGPU_VA_OP_MAP. |
| 172 | 172 | */ |
| 173 | 173 | #define AMDGPU_GEM_CREATE_EXT_COHERENT		(1 << 15) |
| 174 | /* Set PTE.D and recompress during GTT->VRAM moves according to TILING flags. */ | |
| 175 | #define AMDGPU_GEM_CREATE_GFX12_DCC		(1 << 16) | |
| 174 | 176 | |
| 175 | 177 | struct drm_amdgpu_gem_create_in { |
| 176 | 178 | 	/** the requested memory size */ |
| ... | ... | @@ -392,7 +394,7 @@ struct drm_amdgpu_gem_userptr { |
| 392 | 394 | #define AMDGPU_TILING_NUM_BANKS_SHIFT			21 |
| 393 | 395 | #define AMDGPU_TILING_NUM_BANKS_MASK			0x3 |
| 394 | 396 | |
| 395 | /* GFX9 and later: */ | |
| 397 | /* GFX9 - GFX11: */ | |
| 396 | 398 | #define AMDGPU_TILING_SWIZZLE_MODE_SHIFT		0 |
| 397 | 399 | #define AMDGPU_TILING_SWIZZLE_MODE_MASK			0x1f |
| 398 | 400 | #define AMDGPU_TILING_DCC_OFFSET_256B_SHIFT		5 |
| ... | ... | @@ -406,6 +408,24 @@ struct drm_amdgpu_gem_userptr { |
| 406 | 408 | #define AMDGPU_TILING_SCANOUT_SHIFT			63 |
| 407 | 409 | #define AMDGPU_TILING_SCANOUT_MASK			0x1 |
| 408 | 410 | |
| 411 | /* GFX12 and later: */ | |
| 412 | #define AMDGPU_TILING_GFX12_SWIZZLE_MODE_SHIFT			0 | |
| 413 | #define AMDGPU_TILING_GFX12_SWIZZLE_MODE_MASK			0x7 | |
| 414 | /* These are DCC recompression settings for memory management: */ | |
| 415 | #define AMDGPU_TILING_GFX12_DCC_MAX_COMPRESSED_BLOCK_SHIFT	3 | |
| 416 | #define AMDGPU_TILING_GFX12_DCC_MAX_COMPRESSED_BLOCK_MASK	0x3 /* 0:64B, 1:128B, 2:256B */ | |
| 417 | #define AMDGPU_TILING_GFX12_DCC_NUMBER_TYPE_SHIFT		5 | |
| 418 | #define AMDGPU_TILING_GFX12_DCC_NUMBER_TYPE_MASK		0x7 /* CB_COLOR0_INFO.NUMBER_TYPE */ | |
| 419 | #define AMDGPU_TILING_GFX12_DCC_DATA_FORMAT_SHIFT		8 | |
| 420 | #define AMDGPU_TILING_GFX12_DCC_DATA_FORMAT_MASK		0x3f /* [0:4]:CB_COLOR0_INFO.FORMAT, [5]:MM */ | |
| 421 | /* When clearing the buffer or moving it from VRAM to GTT, don't compress and set DCC metadata | |
| 422 | * to uncompressed. Set when parts of an allocation bypass DCC and read raw data. */ | |
| 423 | #define AMDGPU_TILING_GFX12_DCC_WRITE_COMPRESS_DISABLE_SHIFT	14 | |
| 424 | #define AMDGPU_TILING_GFX12_DCC_WRITE_COMPRESS_DISABLE_MASK	0x1 | |
| 425 | /* bit gap */ | |
| 426 | #define AMDGPU_TILING_GFX12_SCANOUT_SHIFT			63 | |
| 427 | #define AMDGPU_TILING_GFX12_SCANOUT_MASK			0x1 | |
| 428 | ||
| 409 | 429 | /* Set/Get helpers for tiling flags. */ |
| 410 | 430 | #define AMDGPU_TILING_SET(field, value) \ |
| 411 | 431 | 	(((__u64)(value) & AMDGPU_TILING_##field##_MASK) << AMDGPU_TILING_##field##_SHIFT) |
| ... | ... | @@ -1268,6 +1288,16 @@ struct drm_amdgpu_info_gpuvm_fault { |
| 1268 | 1288 | #define AMDGPU_FAMILY_GC_10_3_6			149 /* GC 10.3.6 */ |
| 1269 | 1289 | #define AMDGPU_FAMILY_GC_10_3_7			151 /* GC 10.3.7 */ |
| 1270 | 1290 | #define AMDGPU_FAMILY_GC_11_5_0			150 /* GC 11.5.0 */ |
| 1291 | #define AMDGPU_FAMILY_GC_12_0_0			152 /* GC 12.0.0 */ | |
| 1292 | ||
| 1293 | /* FIXME wrong namespace! */ | |
| 1294 | struct drm_color_ctm_3x4 { | |
| 1295 | 	/* | |
| 1296 | 	 * Conversion matrix with 3x4 dimensions in S31.32 sign-magnitude | |
| 1297 | 	 * (not two's complement!) format. | |
| 1298 | 	 */ | |
| 1299 | 	__u64 matrix[12]; | |
| 1300 | }; | |
| 1271 | 1301 | |
| 1272 | 1302 | #if defined(__cplusplus) |
| 1273 | 1303 | } |
lib/libc/include/any-linux-any/drm/drm.h+17| ... | ... | @@ -1018,6 +1018,13 @@ struct drm_crtc_queue_sequence { |
| 1018 | 1018 | 	__u64 user_data;	/* user data passed to event */ |
| 1019 | 1019 | }; |
| 1020 | 1020 | |
| 1021 | #define DRM_CLIENT_NAME_MAX_LEN		64 | |
| 1022 | struct drm_set_client_name { | |
| 1023 | 	__u64 name_len; | |
| 1024 | 	__u64 name; | |
| 1025 | }; | |
| 1026 | ||
| 1027 | ||
| 1021 | 1028 | #if defined(__cplusplus) |
| 1022 | 1029 | } |
| 1023 | 1030 | #endif |
| ... | ... | @@ -1282,6 +1289,16 @@ extern "C" { |
| 1282 | 1289 | */ |
| 1283 | 1290 | #define DRM_IOCTL_MODE_CLOSEFB		DRM_IOWR(0xD0, struct drm_mode_closefb) |
| 1284 | 1291 | |
| 1292 | /** | |
| 1293 | * DRM_IOCTL_SET_CLIENT_NAME - Attach a name to a drm_file | |
| 1294 | * | |
| 1295 | * Having a name allows for easier tracking and debugging. | |
| 1296 | * The length of the name (without null ending char) must be | |
| 1297 | * <= DRM_CLIENT_NAME_MAX_LEN. | |
| 1298 | * The call will fail if the name contains whitespaces or non-printable chars. | |
| 1299 | */ | |
| 1300 | #define DRM_IOCTL_SET_CLIENT_NAME	DRM_IOWR(0xD1, struct drm_set_client_name) | |
| 1301 | ||
| 1285 | 1302 | /* |
| 1286 | 1303 | * Device specific ioctls should only be in their respective headers |
| 1287 | 1304 | * The device specific ioctl range is from 0x40 to 0x9f. |
lib/libc/include/any-linux-any/drm/drm_fourcc.h+44| ... | ... | @@ -702,6 +702,31 @@ extern "C" { |
| 702 | 702 | */ |
| 703 | 703 | #define I915_FORMAT_MOD_4_TILED_MTL_RC_CCS_CC fourcc_mod_code(INTEL, 15) |
| 704 | 704 | |
| 705 | /* | |
| 706 | * Intel Color Control Surfaces (CCS) for graphics ver. 20 unified compression | |
| 707 | * on integrated graphics | |
| 708 | * | |
| 709 | * The main surface is Tile 4 and at plane index 0. For semi-planar formats | |
| 710 | * like NV12, the Y and UV planes are Tile 4 and are located at plane indices | |
| 711 | * 0 and 1, respectively. The CCS for all planes are stored outside of the | |
| 712 | * GEM object in a reserved memory area dedicated for the storage of the | |
| 713 | * CCS data for all compressible GEM objects. | |
| 714 | */ | |
| 715 | #define I915_FORMAT_MOD_4_TILED_LNL_CCS fourcc_mod_code(INTEL, 16) | |
| 716 | ||
| 717 | /* | |
| 718 | * Intel Color Control Surfaces (CCS) for graphics ver. 20 unified compression | |
| 719 | * on discrete graphics | |
| 720 | * | |
| 721 | * The main surface is Tile 4 and at plane index 0. For semi-planar formats | |
| 722 | * like NV12, the Y and UV planes are Tile 4 and are located at plane indices | |
| 723 | * 0 and 1, respectively. The CCS for all planes are stored outside of the | |
| 724 | * GEM object in a reserved memory area dedicated for the storage of the | |
| 725 | * CCS data for all compressible GEM objects. The GEM object must be stored in | |
| 726 | * contiguous memory with a size aligned to 64KB | |
| 727 | */ | |
| 728 | #define I915_FORMAT_MOD_4_TILED_BMG_CCS fourcc_mod_code(INTEL, 17) | |
| 729 | ||
| 705 | 730 | /* |
| 706 | 731 | * Tiled, NV12MT, grouped in 64 (pixels) x 32 (lines) -sized macroblocks |
| 707 | 732 | * |
| ... | ... | @@ -1476,6 +1501,7 @@ drm_fourcc_canonicalize_nvidia_format_mod(__u64 modifier) |
| 1476 | 1501 | #define AMD_FMT_MOD_TILE_VER_GFX10 2 |
| 1477 | 1502 | #define AMD_FMT_MOD_TILE_VER_GFX10_RBPLUS 3 |
| 1478 | 1503 | #define AMD_FMT_MOD_TILE_VER_GFX11 4 |
| 1504 | #define AMD_FMT_MOD_TILE_VER_GFX12 5 | |
| 1479 | 1505 | |
| 1480 | 1506 | /* |
| 1481 | 1507 | * 64K_S is the same for GFX9/GFX10/GFX10_RBPLUS and hence has GFX9 as canonical |
| ... | ... | @@ -1486,13 +1512,31 @@ drm_fourcc_canonicalize_nvidia_format_mod(__u64 modifier) |
| 1486 | 1512 | /* |
| 1487 | 1513 | * 64K_D for non-32 bpp is the same for GFX9/GFX10/GFX10_RBPLUS and hence has |
| 1488 | 1514 | * GFX9 as canonical version. |
| 1515 | * | |
| 1516 | * 64K_D_2D on GFX12 is identical to 64K_D on GFX11. | |
| 1489 | 1517 | */ |
| 1490 | 1518 | #define AMD_FMT_MOD_TILE_GFX9_64K_D 10 |
| 1519 | #define AMD_FMT_MOD_TILE_GFX9_4K_D_X 22 | |
| 1491 | 1520 | #define AMD_FMT_MOD_TILE_GFX9_64K_S_X 25 |
| 1492 | 1521 | #define AMD_FMT_MOD_TILE_GFX9_64K_D_X 26 |
| 1493 | 1522 | #define AMD_FMT_MOD_TILE_GFX9_64K_R_X 27 |
| 1494 | 1523 | #define AMD_FMT_MOD_TILE_GFX11_256K_R_X 31 |
| 1495 | 1524 | |
| 1525 | /* Gfx12 swizzle modes: | |
| 1526 | * 0 - LINEAR | |
| 1527 | * 1 - 256B_2D - 2D block dimensions | |
| 1528 | * 2 - 4KB_2D | |
| 1529 | * 3 - 64KB_2D | |
| 1530 | * 4 - 256KB_2D | |
| 1531 | * 5 - 4KB_3D - 3D block dimensions | |
| 1532 | * 6 - 64KB_3D | |
| 1533 | * 7 - 256KB_3D | |
| 1534 | */ | |
| 1535 | #define AMD_FMT_MOD_TILE_GFX12_256B_2D 1 | |
| 1536 | #define AMD_FMT_MOD_TILE_GFX12_4K_2D 2 | |
| 1537 | #define AMD_FMT_MOD_TILE_GFX12_64K_2D 3 | |
| 1538 | #define AMD_FMT_MOD_TILE_GFX12_256K_2D 4 | |
| 1539 | ||
| 1496 | 1540 | #define AMD_FMT_MOD_DCC_BLOCK_64B 0 |
| 1497 | 1541 | #define AMD_FMT_MOD_DCC_BLOCK_128B 1 |
| 1498 | 1542 | #define AMD_FMT_MOD_DCC_BLOCK_256B 2 |
lib/libc/include/any-linux-any/drm/drm_mode.h+2-8| ... | ... | @@ -846,14 +846,6 @@ struct drm_color_ctm { |
| 846 | 846 | 	__u64 matrix[9]; |
| 847 | 847 | }; |
| 848 | 848 | |
| 849 | struct drm_color_ctm_3x4 { | |
| 850 | 	/* | |
| 851 | 	 * Conversion matrix with 3x4 dimensions in S31.32 sign-magnitude | |
| 852 | 	 * (not two's complement!) format. | |
| 853 | 	 */ | |
| 854 | 	__u64 matrix[12]; | |
| 855 | }; | |
| 856 | ||
| 857 | 849 | struct drm_color_lut { |
| 858 | 850 | 	/* |
| 859 | 851 | 	 * Values are mapped linearly to 0.0 - 1.0 range, with 0x0 == 0.0 and |
| ... | ... | @@ -867,6 +859,8 @@ struct drm_color_lut { |
| 867 | 859 | |
| 868 | 860 | /** |
| 869 | 861 | * struct drm_plane_size_hint - Plane size hints |
| 862 | * @width: The width of the plane in pixel | |
| 863 | * @height: The height of the plane in pixel | |
| 870 | 864 | * |
| 871 | 865 | * The plane SIZE_HINTS property blob contains an |
| 872 | 866 | * array of struct drm_plane_size_hint. |
lib/libc/include/any-linux-any/drm/i915_drm.h+27| ... | ... | @@ -2163,6 +2163,15 @@ struct drm_i915_gem_context_param { |
| 2163 | 2163 | * supports this per context flag. |
| 2164 | 2164 | */ |
| 2165 | 2165 | #define I915_CONTEXT_PARAM_LOW_LATENCY		0xe |
| 2166 | ||
| 2167 | /* | |
| 2168 | * I915_CONTEXT_PARAM_CONTEXT_IMAGE: | |
| 2169 | * | |
| 2170 | * Allows userspace to provide own context images. | |
| 2171 | * | |
| 2172 | * Note that this is a debug API not available on production kernel builds. | |
| 2173 | */ | |
| 2174 | #define I915_CONTEXT_PARAM_CONTEXT_IMAGE	0xf | |
| 2166 | 2175 | /* Must be kept compact -- no holes and well documented */ |
| 2167 | 2176 | |
| 2168 | 2177 | 	/** @value: Context parameter value to be set or queried */ |
| ... | ... | @@ -2564,6 +2573,24 @@ struct i915_context_param_engines { |
| 2564 | 2573 | 	struct i915_engine_class_instance engines[N__]; \ |
| 2565 | 2574 | } __attribute__((packed)) name__ |
| 2566 | 2575 | |
| 2576 | struct i915_gem_context_param_context_image { | |
| 2577 | 	/** @engine: Engine class & instance to be configured. */ | |
| 2578 | 	struct i915_engine_class_instance engine; | |
| 2579 | ||
| 2580 | 	/** @flags: One of the supported flags or zero. */ | |
| 2581 | 	__u32 flags; | |
| 2582 | #define I915_CONTEXT_IMAGE_FLAG_ENGINE_INDEX (1u << 0) | |
| 2583 | ||
| 2584 | 	/** @size: Size of the image blob pointed to by @image. */ | |
| 2585 | 	__u32 size; | |
| 2586 | ||
| 2587 | 	/** @mbz: Must be zero. */ | |
| 2588 | 	__u32 mbz; | |
| 2589 | ||
| 2590 | 	/** @image: Userspace memory containing the context image. */ | |
| 2591 | 	__u64 image; | |
| 2592 | } __attribute__((packed)); | |
| 2593 | ||
| 2567 | 2594 | /** |
| 2568 | 2595 | * struct drm_i915_gem_context_create_ext_setparam - Context parameter |
| 2569 | 2596 | * to set or query during context creation. |
lib/libc/include/any-linux-any/drm/ivpu_accel.h+69-9| ... | ... | @@ -1,6 +1,6 @@ |
| 1 | 1 | /* SPDX-License-Identifier: GPL-2.0-only WITH Linux-syscall-note */ |
| 2 | 2 | /* |
| 3 | * Copyright (C) 2020-2023 Intel Corporation | |
| 3 | * Copyright (C) 2020-2024 Intel Corporation | |
| 4 | 4 | */ |
| 5 | 5 | |
| 6 | 6 | #ifndef __UAPI_IVPU_DRM_H__ |
| ... | ... | @@ -12,15 +12,16 @@ |
| 12 | 12 | extern "C" { |
| 13 | 13 | #endif |
| 14 | 14 | |
| 15 | #define DRM_IVPU_DRIVER_MAJOR 1 | |
| 16 | #define DRM_IVPU_DRIVER_MINOR 0 | |
| 17 | ||
| 18 | 15 | #define DRM_IVPU_GET_PARAM		 0x00 |
| 19 | 16 | #define DRM_IVPU_SET_PARAM		 0x01 |
| 20 | 17 | #define DRM_IVPU_BO_CREATE		 0x02 |
| 21 | 18 | #define DRM_IVPU_BO_INFO		 0x03 |
| 22 | 19 | #define DRM_IVPU_SUBMIT			 0x05 |
| 23 | 20 | #define DRM_IVPU_BO_WAIT		 0x06 |
| 21 | #define DRM_IVPU_METRIC_STREAMER_START	 0x07 | |
| 22 | #define DRM_IVPU_METRIC_STREAMER_STOP	 0x08 | |
| 23 | #define DRM_IVPU_METRIC_STREAMER_GET_DATA 0x09 | |
| 24 | #define DRM_IVPU_METRIC_STREAMER_GET_INFO 0x0a | |
| 24 | 25 | |
| 25 | 26 | #define DRM_IOCTL_IVPU_GET_PARAM \ |
| 26 | 27 | 	DRM_IOWR(DRM_COMMAND_BASE + DRM_IVPU_GET_PARAM, struct drm_ivpu_param) |
| ... | ... | @@ -40,6 +41,22 @@ extern "C" { |
| 40 | 41 | #define DRM_IOCTL_IVPU_BO_WAIT \ |
| 41 | 42 | 	DRM_IOWR(DRM_COMMAND_BASE + DRM_IVPU_BO_WAIT, struct drm_ivpu_bo_wait) |
| 42 | 43 | |
| 44 | #define DRM_IOCTL_IVPU_METRIC_STREAMER_START \ | |
| 45 | 	DRM_IOWR(DRM_COMMAND_BASE + DRM_IVPU_METRIC_STREAMER_START, \ | |
| 46 | 		 struct drm_ivpu_metric_streamer_start) | |
| 47 | ||
| 48 | #define DRM_IOCTL_IVPU_METRIC_STREAMER_STOP \ | |
| 49 | 	DRM_IOW(DRM_COMMAND_BASE + DRM_IVPU_METRIC_STREAMER_STOP, \ | |
| 50 | 		struct drm_ivpu_metric_streamer_stop) | |
| 51 | ||
| 52 | #define DRM_IOCTL_IVPU_METRIC_STREAMER_GET_DATA \ | |
| 53 | 	DRM_IOWR(DRM_COMMAND_BASE + DRM_IVPU_METRIC_STREAMER_GET_DATA, \ | |
| 54 | 		 struct drm_ivpu_metric_streamer_get_data) | |
| 55 | ||
| 56 | #define DRM_IOCTL_IVPU_METRIC_STREAMER_GET_INFO \ | |
| 57 | 	DRM_IOWR(DRM_COMMAND_BASE + DRM_IVPU_METRIC_STREAMER_GET_INFO, \ | |
| 58 | 		 struct drm_ivpu_metric_streamer_get_data) | |
| 59 | ||
| 43 | 60 | /** |
| 44 | 61 | * DOC: contexts |
| 45 | 62 | * |
| ... | ... | @@ -241,7 +258,7 @@ struct drm_ivpu_bo_info { |
| 241 | 258 | |
| 242 | 259 | /* drm_ivpu_submit engines */ |
| 243 | 260 | #define DRM_IVPU_ENGINE_COMPUTE 0 |
| 244 | #define DRM_IVPU_ENGINE_COPY 1 | |
| 261 | #define DRM_IVPU_ENGINE_COPY 1 /* Deprecated */ | |
| 245 | 262 | |
| 246 | 263 | /** |
| 247 | 264 | * struct drm_ivpu_submit - Submit commands to the VPU |
| ... | ... | @@ -272,10 +289,6 @@ struct drm_ivpu_submit { |
| 272 | 289 | 	 * %DRM_IVPU_ENGINE_COMPUTE: |
| 273 | 290 | 	 * |
| 274 | 291 | 	 * Performs Deep Learning Neural Compute Inference Operations |
| 275 | 	 * | |
| 276 | 	 * %DRM_IVPU_ENGINE_COPY: | |
| 277 | 	 * | |
| 278 | 	 * Performs memory copy operations to/from system memory allocated for VPU | |
| 279 | 292 | 	 */ |
| 280 | 293 | 	__u32 engine; |
| 281 | 294 | |
| ... | ... | @@ -336,6 +349,53 @@ struct drm_ivpu_bo_wait { |
| 336 | 349 | 	__u32 pad; |
| 337 | 350 | }; |
| 338 | 351 | |
| 352 | /** | |
| 353 | * struct drm_ivpu_metric_streamer_start - Start collecting metric data | |
| 354 | */ | |
| 355 | struct drm_ivpu_metric_streamer_start { | |
| 356 | 	/** @metric_group_mask: Indicates metric streamer instance */ | |
| 357 | 	__u64 metric_group_mask; | |
| 358 | 	/** @sampling_period_ns: Sampling period in nanoseconds */ | |
| 359 | 	__u64 sampling_period_ns; | |
| 360 | 	/** | |
| 361 | 	 * @read_period_samples: | |
| 362 | 	 * | |
| 363 | 	 * Number of samples after which user space will try to read the data. | |
| 364 | 	 * Reading the data after significantly longer period may cause data loss. | |
| 365 | 	 */ | |
| 366 | 	__u32 read_period_samples; | |
| 367 | 	/** @sample_size: Returned size of a single sample in bytes */ | |
| 368 | 	__u32 sample_size; | |
| 369 | 	/** @max_data_size: Returned max @data_size from %DRM_IOCTL_IVPU_METRIC_STREAMER_GET_DATA */ | |
| 370 | 	__u32 max_data_size; | |
| 371 | }; | |
| 372 | ||
| 373 | /** | |
| 374 | * struct drm_ivpu_metric_streamer_get_data - Copy collected metric data | |
| 375 | */ | |
| 376 | struct drm_ivpu_metric_streamer_get_data { | |
| 377 | 	/** @metric_group_mask: Indicates metric streamer instance */ | |
| 378 | 	__u64 metric_group_mask; | |
| 379 | 	/** @buffer_ptr: A pointer to a destination for the copied data */ | |
| 380 | 	__u64 buffer_ptr; | |
| 381 | 	/** @buffer_size: Size of the destination buffer */ | |
| 382 | 	__u64 buffer_size; | |
| 383 | 	/** | |
| 384 | 	 * @data_size: Returned size of copied metric data | |
| 385 | 	 * | |
| 386 | 	 * If the @buffer_size is zero, returns the amount of data ready to be copied. | |
| 387 | 	 */ | |
| 388 | 	__u64 data_size; | |
| 389 | }; | |
| 390 | ||
| 391 | /** | |
| 392 | * struct drm_ivpu_metric_streamer_stop - Stop collecting metric data | |
| 393 | */ | |
| 394 | struct drm_ivpu_metric_streamer_stop { | |
| 395 | 	/** @metric_group_mask: Indicates metric streamer instance */ | |
| 396 | 	__u64 metric_group_mask; | |
| 397 | }; | |
| 398 | ||
| 339 | 399 | #if defined(__cplusplus) |
| 340 | 400 | } |
| 341 | 401 | #endif |
lib/libc/include/any-linux-any/drm/msm_drm.h+7-1| ... | ... | @@ -87,6 +87,9 @@ struct drm_msm_timespec { |
| 87 | 87 | #define MSM_PARAM_VA_START 0x0e /* RO: start of valid GPU iova range */ |
| 88 | 88 | #define MSM_PARAM_VA_SIZE 0x0f /* RO: size of valid GPU iova range (bytes) */ |
| 89 | 89 | #define MSM_PARAM_HIGHEST_BANK_BIT 0x10 /* RO */ |
| 90 | #define MSM_PARAM_RAYTRACING 0x11 /* RO */ | |
| 91 | #define MSM_PARAM_UBWC_SWIZZLE 0x12 /* RO */ | |
| 92 | #define MSM_PARAM_MACROTILE_MODE 0x13 /* RO */ | |
| 90 | 93 | |
| 91 | 94 | /* For backwards compat. The original support for preemption was based on |
| 92 | 95 | * a single ring per priority level so # of priority levels equals the # |
| ... | ... | @@ -344,7 +347,10 @@ struct drm_msm_gem_madvise { |
| 344 | 347 | * backwards compatibility as a "default" submitqueue |
| 345 | 348 | */ |
| 346 | 349 | |
| 347 | #define MSM_SUBMITQUEUE_FLAGS (0) | |
| 350 | #define MSM_SUBMITQUEUE_ALLOW_PREEMPT	0x00000001 | |
| 351 | #define MSM_SUBMITQUEUE_FLAGS		 ( \ | |
| 352 | 		MSM_SUBMITQUEUE_ALLOW_PREEMPT | \ | |
| 353 | 		0) | |
| 348 | 354 | |
| 349 | 355 | /* |
| 350 | 356 | * The submitqueue priority should be between 0 and MSM_PARAM_PRIORITIES-1, |
lib/libc/include/any-linux-any/drm/panfrost_drm.h+3| ... | ... | @@ -40,6 +40,7 @@ extern "C" { |
| 40 | 40 | #define DRM_IOCTL_PANFROST_PERFCNT_DUMP		DRM_IOW(DRM_COMMAND_BASE + DRM_PANFROST_PERFCNT_DUMP, struct drm_panfrost_perfcnt_dump) |
| 41 | 41 | |
| 42 | 42 | #define PANFROST_JD_REQ_FS (1 << 0) |
| 43 | #define PANFROST_JD_REQ_CYCLE_COUNT (1 << 1) | |
| 43 | 44 | /** |
| 44 | 45 | * struct drm_panfrost_submit - ioctl argument for submitting commands to the 3D |
| 45 | 46 | * engine. |
| ... | ... | @@ -172,6 +173,8 @@ enum drm_panfrost_param { |
| 172 | 173 | 	DRM_PANFROST_PARAM_NR_CORE_GROUPS, |
| 173 | 174 | 	DRM_PANFROST_PARAM_THREAD_TLS_ALLOC, |
| 174 | 175 | 	DRM_PANFROST_PARAM_AFBC_FEATURES, |
| 176 | 	DRM_PANFROST_PARAM_SYSTEM_TIMESTAMP, | |
| 177 | 	DRM_PANFROST_PARAM_SYSTEM_TIMESTAMP_FREQUENCY, | |
| 175 | 178 | }; |
| 176 | 179 | |
| 177 | 180 | struct drm_panfrost_get_param { |
lib/libc/include/any-linux-any/drm/panthor_drm.h+56-1| ... | ... | @@ -260,6 +260,14 @@ enum drm_panthor_dev_query_type { |
| 260 | 260 | |
| 261 | 261 | 	/** @DRM_PANTHOR_DEV_QUERY_CSIF_INFO: Query command-stream interface information. */ |
| 262 | 262 | 	DRM_PANTHOR_DEV_QUERY_CSIF_INFO, |
| 263 | ||
| 264 | 	/** @DRM_PANTHOR_DEV_QUERY_TIMESTAMP_INFO: Query timestamp information. */ | |
| 265 | 	DRM_PANTHOR_DEV_QUERY_TIMESTAMP_INFO, | |
| 266 | ||
| 267 | 	/** | |
| 268 | 	 * @DRM_PANTHOR_DEV_QUERY_GROUP_PRIORITIES_INFO: Query allowed group priorities information. | |
| 269 | 	 */ | |
| 270 | 	DRM_PANTHOR_DEV_QUERY_GROUP_PRIORITIES_INFO, | |
| 263 | 271 | }; |
| 264 | 272 | |
| 265 | 273 | /** |
| ... | ... | @@ -377,6 +385,42 @@ struct drm_panthor_csif_info { |
| 377 | 385 | 	__u32 pad; |
| 378 | 386 | }; |
| 379 | 387 | |
| 388 | /** | |
| 389 | * struct drm_panthor_timestamp_info - Timestamp information | |
| 390 | * | |
| 391 | * Structure grouping all queryable information relating to the GPU timestamp. | |
| 392 | */ | |
| 393 | struct drm_panthor_timestamp_info { | |
| 394 | 	/** | |
| 395 | 	 * @timestamp_frequency: The frequency of the timestamp timer or 0 if | |
| 396 | 	 * unknown. | |
| 397 | 	 */ | |
| 398 | 	__u64 timestamp_frequency; | |
| 399 | ||
| 400 | 	/** @current_timestamp: The current timestamp. */ | |
| 401 | 	__u64 current_timestamp; | |
| 402 | ||
| 403 | 	/** @timestamp_offset: The offset of the timestamp timer. */ | |
| 404 | 	__u64 timestamp_offset; | |
| 405 | }; | |
| 406 | ||
| 407 | /** | |
| 408 | * struct drm_panthor_group_priorities_info - Group priorities information | |
| 409 | * | |
| 410 | * Structure grouping all queryable information relating to the allowed group priorities. | |
| 411 | */ | |
| 412 | struct drm_panthor_group_priorities_info { | |
| 413 | 	/** | |
| 414 | 	 * @allowed_mask: Bitmask of the allowed group priorities. | |
| 415 | 	 * | |
| 416 | 	 * Each bit represents a variant of the enum drm_panthor_group_priority. | |
| 417 | 	 */ | |
| 418 | 	__u8 allowed_mask; | |
| 419 | ||
| 420 | 	/** @pad: Padding fields, MBZ. */ | |
| 421 | 	__u8 pad[3]; | |
| 422 | }; | |
| 423 | ||
| 380 | 424 | /** |
| 381 | 425 | * struct drm_panthor_dev_query - Arguments passed to DRM_PANTHOR_IOCTL_DEV_QUERY |
| 382 | 426 | */ |
| ... | ... | @@ -692,8 +736,19 @@ enum drm_panthor_group_priority { |
| 692 | 736 | 	/** @PANTHOR_GROUP_PRIORITY_MEDIUM: Medium priority group. */ |
| 693 | 737 | 	PANTHOR_GROUP_PRIORITY_MEDIUM, |
| 694 | 738 | |
| 695 | 	/** @PANTHOR_GROUP_PRIORITY_HIGH: High priority group. */ | |
| 739 | 	/** | |
| 740 | 	 * @PANTHOR_GROUP_PRIORITY_HIGH: High priority group. | |
| 741 | 	 * | |
| 742 | 	 * Requires CAP_SYS_NICE or DRM_MASTER. | |
| 743 | 	 */ | |
| 696 | 744 | 	PANTHOR_GROUP_PRIORITY_HIGH, |
| 745 | ||
| 746 | 	/** | |
| 747 | 	 * @PANTHOR_GROUP_PRIORITY_REALTIME: Realtime priority group. | |
| 748 | 	 * | |
| 749 | 	 * Requires CAP_SYS_NICE or DRM_MASTER. | |
| 750 | 	 */ | |
| 751 | 	PANTHOR_GROUP_PRIORITY_REALTIME, | |
| 697 | 752 | }; |
| 698 | 753 | |
| 699 | 754 | /** |
lib/libc/include/any-linux-any/drm/v3d_drm.h+49| ... | ... | @@ -42,6 +42,7 @@ extern "C" { |
| 42 | 42 | #define DRM_V3D_PERFMON_DESTROY 0x09 |
| 43 | 43 | #define DRM_V3D_PERFMON_GET_VALUES 0x0a |
| 44 | 44 | #define DRM_V3D_SUBMIT_CPU 0x0b |
| 45 | #define DRM_V3D_PERFMON_GET_COUNTER 0x0c | |
| 45 | 46 | |
| 46 | 47 | #define DRM_IOCTL_V3D_SUBMIT_CL DRM_IOWR(DRM_COMMAND_BASE + DRM_V3D_SUBMIT_CL, struct drm_v3d_submit_cl) |
| 47 | 48 | #define DRM_IOCTL_V3D_WAIT_BO DRM_IOWR(DRM_COMMAND_BASE + DRM_V3D_WAIT_BO, struct drm_v3d_wait_bo) |
| ... | ... | @@ -58,6 +59,8 @@ extern "C" { |
| 58 | 59 | #define DRM_IOCTL_V3D_PERFMON_GET_VALUES DRM_IOWR(DRM_COMMAND_BASE + DRM_V3D_PERFMON_GET_VALUES, \ |
| 59 | 60 | 						 struct drm_v3d_perfmon_get_values) |
| 60 | 61 | #define DRM_IOCTL_V3D_SUBMIT_CPU DRM_IOW(DRM_COMMAND_BASE + DRM_V3D_SUBMIT_CPU, struct drm_v3d_submit_cpu) |
| 62 | #define DRM_IOCTL_V3D_PERFMON_GET_COUNTER DRM_IOWR(DRM_COMMAND_BASE + DRM_V3D_PERFMON_GET_COUNTER, \ | |
| 63 | 						 struct drm_v3d_perfmon_get_counter) | |
| 61 | 64 | |
| 62 | 65 | #define DRM_V3D_SUBMIT_CL_FLUSH_CACHE 0x01 |
| 63 | 66 | #define DRM_V3D_SUBMIT_EXTENSION		 0x02 |
| ... | ... | @@ -286,6 +289,8 @@ enum drm_v3d_param { |
| 286 | 289 | 	DRM_V3D_PARAM_SUPPORTS_PERFMON, |
| 287 | 290 | 	DRM_V3D_PARAM_SUPPORTS_MULTISYNC_EXT, |
| 288 | 291 | 	DRM_V3D_PARAM_SUPPORTS_CPU_QUEUE, |
| 292 | 	DRM_V3D_PARAM_MAX_PERF_COUNTERS, | |
| 293 | 	DRM_V3D_PARAM_SUPPORTS_SUPER_PAGES, | |
| 289 | 294 | }; |
| 290 | 295 | |
| 291 | 296 | struct drm_v3d_get_param { |
| ... | ... | @@ -599,6 +604,16 @@ struct drm_v3d_submit_cpu { |
| 599 | 604 | 	__u64 extensions; |
| 600 | 605 | }; |
| 601 | 606 | |
| 607 | /* The performance counters index represented by this enum are deprecated and | |
| 608 | * must no longer be used. These counters are only valid for V3D 4.2. | |
| 609 | * | |
| 610 | * In order to check for performance counter information, | |
| 611 | * use DRM_IOCTL_V3D_PERFMON_GET_COUNTER. | |
| 612 | * | |
| 613 | * Don't use V3D_PERFCNT_NUM to retrieve the maximum number of performance | |
| 614 | * counters. You should use DRM_IOCTL_V3D_GET_PARAM with the following | |
| 615 | * parameter: DRM_V3D_PARAM_MAX_PERF_COUNTERS. | |
| 616 | */ | |
| 602 | 617 | enum { |
| 603 | 618 | 	V3D_PERFCNT_FEP_VALID_PRIMTS_NO_PIXELS, |
| 604 | 619 | 	V3D_PERFCNT_FEP_VALID_PRIMS, |
| ... | ... | @@ -717,6 +732,40 @@ struct drm_v3d_perfmon_get_values { |
| 717 | 732 | 	__u64 values_ptr; |
| 718 | 733 | }; |
| 719 | 734 | |
| 735 | #define DRM_V3D_PERFCNT_MAX_NAME 64 | |
| 736 | #define DRM_V3D_PERFCNT_MAX_CATEGORY 32 | |
| 737 | #define DRM_V3D_PERFCNT_MAX_DESCRIPTION 256 | |
| 738 | ||
| 739 | /** | |
| 740 | * struct drm_v3d_perfmon_get_counter - ioctl to get the description of a | |
| 741 | * performance counter | |
| 742 | * | |
| 743 | * As userspace needs to retrieve information about the performance counters | |
| 744 | * available, this IOCTL allows users to get information about a performance | |
| 745 | * counter (name, category and description). | |
| 746 | */ | |
| 747 | struct drm_v3d_perfmon_get_counter { | |
| 748 | 	/* | |
| 749 | 	 * Counter ID | |
| 750 | 	 * | |
| 751 | 	 * Must be smaller than the maximum number of performance counters, which | |
| 752 | 	 * can be retrieve through DRM_V3D_PARAM_MAX_PERF_COUNTERS. | |
| 753 | 	 */ | |
| 754 | 	__u8 counter; | |
| 755 | ||
| 756 | 	/* Name of the counter */ | |
| 757 | 	__u8 name[DRM_V3D_PERFCNT_MAX_NAME]; | |
| 758 | ||
| 759 | 	/* Category of the counter */ | |
| 760 | 	__u8 category[DRM_V3D_PERFCNT_MAX_CATEGORY]; | |
| 761 | ||
| 762 | 	/* Description of the counter */ | |
| 763 | 	__u8 description[DRM_V3D_PERFCNT_MAX_DESCRIPTION]; | |
| 764 | ||
| 765 | 	/* mbz */ | |
| 766 | 	__u8 reserved[7]; | |
| 767 | }; | |
| 768 | ||
| 720 | 769 | #if defined(__cplusplus) |
| 721 | 770 | } |
| 722 | 771 | #endif |
lib/libc/include/any-linux-any/drm/xe_drm.h+363-2| ... | ... | @@ -80,6 +80,7 @@ extern "C" { |
| 80 | 80 | * - &DRM_IOCTL_XE_EXEC_QUEUE_GET_PROPERTY |
| 81 | 81 | * - &DRM_IOCTL_XE_EXEC |
| 82 | 82 | * - &DRM_IOCTL_XE_WAIT_USER_FENCE |
| 83 | * - &DRM_IOCTL_XE_OBSERVATION | |
| 83 | 84 | */ |
| 84 | 85 | |
| 85 | 86 | /* |
| ... | ... | @@ -100,6 +101,8 @@ extern "C" { |
| 100 | 101 | #define DRM_XE_EXEC_QUEUE_GET_PROPERTY	0x08 |
| 101 | 102 | #define DRM_XE_EXEC			0x09 |
| 102 | 103 | #define DRM_XE_WAIT_USER_FENCE		0x0a |
| 104 | #define DRM_XE_OBSERVATION		0x0b | |
| 105 | ||
| 103 | 106 | /* Must be kept compact -- no holes */ |
| 104 | 107 | |
| 105 | 108 | #define DRM_IOCTL_XE_DEVICE_QUERY		DRM_IOWR(DRM_COMMAND_BASE + DRM_XE_DEVICE_QUERY, struct drm_xe_device_query) |
| ... | ... | @@ -113,6 +116,7 @@ extern "C" { |
| 113 | 116 | #define DRM_IOCTL_XE_EXEC_QUEUE_GET_PROPERTY	DRM_IOWR(DRM_COMMAND_BASE + DRM_XE_EXEC_QUEUE_GET_PROPERTY, struct drm_xe_exec_queue_get_property) |
| 114 | 117 | #define DRM_IOCTL_XE_EXEC			DRM_IOW(DRM_COMMAND_BASE + DRM_XE_EXEC, struct drm_xe_exec) |
| 115 | 118 | #define DRM_IOCTL_XE_WAIT_USER_FENCE		DRM_IOWR(DRM_COMMAND_BASE + DRM_XE_WAIT_USER_FENCE, struct drm_xe_wait_user_fence) |
| 119 | #define DRM_IOCTL_XE_OBSERVATION		DRM_IOW(DRM_COMMAND_BASE + DRM_XE_OBSERVATION, struct drm_xe_observation_param) | |
| 116 | 120 | |
| 117 | 121 | /** |
| 118 | 122 | * DOC: Xe IOCTL Extensions |
| ... | ... | @@ -508,11 +512,21 @@ struct drm_xe_query_gt_list { |
| 508 | 512 | * containing the following in mask: |
| 509 | 513 | * ``DSS_COMPUTE ff ff ff ff 00 00 00 00`` |
| 510 | 514 | * means 32 DSS are available for compute. |
| 515 | * - %DRM_XE_TOPO_L3_BANK - To query the mask of enabled L3 banks. This type | |
| 516 | * may be omitted if the driver is unable to query the mask from the | |
| 517 | * hardware. | |
| 511 | 518 | * - %DRM_XE_TOPO_EU_PER_DSS - To query the mask of Execution Units (EU) |
| 512 | 519 | * available per Dual Sub Slices (DSS). For example a query response |
| 513 | 520 | * containing the following in mask: |
| 514 | 521 | * ``EU_PER_DSS ff ff 00 00 00 00 00 00`` |
| 515 | * means each DSS has 16 EU. | |
| 522 | * means each DSS has 16 SIMD8 EUs. This type may be omitted if device | |
| 523 | * doesn't have SIMD8 EUs. | |
| 524 | * - %DRM_XE_TOPO_SIMD16_EU_PER_DSS - To query the mask of SIMD16 Execution | |
| 525 | * Units (EU) available per Dual Sub Slices (DSS). For example a query | |
| 526 | * response containing the following in mask: | |
| 527 | * ``SIMD16_EU_PER_DSS ff ff 00 00 00 00 00 00`` | |
| 528 | * means each DSS has 16 SIMD16 EUs. This type may be omitted if device | |
| 529 | * doesn't have SIMD16 EUs. | |
| 516 | 530 | */ |
| 517 | 531 | struct drm_xe_query_topology_mask { |
| 518 | 532 | 	/** @gt_id: GT ID the mask is associated with */ |
| ... | ... | @@ -520,7 +534,9 @@ struct drm_xe_query_topology_mask { |
| 520 | 534 | |
| 521 | 535 | #define DRM_XE_TOPO_DSS_GEOMETRY	1 |
| 522 | 536 | #define DRM_XE_TOPO_DSS_COMPUTE		2 |
| 537 | #define DRM_XE_TOPO_L3_BANK		3 | |
| 523 | 538 | #define DRM_XE_TOPO_EU_PER_DSS		4 |
| 539 | #define DRM_XE_TOPO_SIMD16_EU_PER_DSS	5 | |
| 524 | 540 | 	/** @type: type of mask */ |
| 525 | 541 | 	__u16 type; |
| 526 | 542 | |
| ... | ... | @@ -683,6 +699,7 @@ struct drm_xe_device_query { |
| 683 | 699 | #define DRM_XE_DEVICE_QUERY_GT_TOPOLOGY		5 |
| 684 | 700 | #define DRM_XE_DEVICE_QUERY_ENGINE_CYCLES	6 |
| 685 | 701 | #define DRM_XE_DEVICE_QUERY_UC_FW_VERSION	7 |
| 702 | #define DRM_XE_DEVICE_QUERY_OA_UNITS		8 | |
| 686 | 703 | 	/** @query: The type of data to query */ |
| 687 | 704 | 	__u32 query; |
| 688 | 705 | |
| ... | ... | @@ -776,7 +793,13 @@ struct drm_xe_gem_create { |
| 776 | 793 | #define DRM_XE_GEM_CPU_CACHING_WC 2 |
| 777 | 794 | 	/** |
| 778 | 795 | 	 * @cpu_caching: The CPU caching mode to select for this object. If |
| 779 | 	 * mmaping the object the mode selected here will also be used. | |
| 796 | 	 * mmaping the object the mode selected here will also be used. The | |
| 797 | 	 * exception is when mapping system memory (including data evicted | |
| 798 | 	 * to system) on discrete GPUs. The caching mode selected will | |
| 799 | 	 * then be overridden to DRM_XE_GEM_CPU_CACHING_WB, and coherency | |
| 800 | 	 * between GPU- and CPU is guaranteed. The caching mode of | |
| 801 | 	 * existing CPU-mappings will be updated transparently to | |
| 802 | 	 * user-space clients. | |
| 780 | 803 | 	 */ |
| 781 | 804 | 	__u16 cpu_caching; |
| 782 | 805 | 	/** @pad: MBZ */ |
| ... | ... | @@ -1368,6 +1391,344 @@ struct drm_xe_wait_user_fence { |
| 1368 | 1391 | 	__u64 reserved[2]; |
| 1369 | 1392 | }; |
| 1370 | 1393 | |
| 1394 | /** | |
| 1395 | * enum drm_xe_observation_type - Observation stream types | |
| 1396 | */ | |
| 1397 | enum drm_xe_observation_type { | |
| 1398 | 	/** @DRM_XE_OBSERVATION_TYPE_OA: OA observation stream type */ | |
| 1399 | 	DRM_XE_OBSERVATION_TYPE_OA, | |
| 1400 | }; | |
| 1401 | ||
| 1402 | /** | |
| 1403 | * enum drm_xe_observation_op - Observation stream ops | |
| 1404 | */ | |
| 1405 | enum drm_xe_observation_op { | |
| 1406 | 	/** @DRM_XE_OBSERVATION_OP_STREAM_OPEN: Open an observation stream */ | |
| 1407 | 	DRM_XE_OBSERVATION_OP_STREAM_OPEN, | |
| 1408 | ||
| 1409 | 	/** @DRM_XE_OBSERVATION_OP_ADD_CONFIG: Add observation stream config */ | |
| 1410 | 	DRM_XE_OBSERVATION_OP_ADD_CONFIG, | |
| 1411 | ||
| 1412 | 	/** @DRM_XE_OBSERVATION_OP_REMOVE_CONFIG: Remove observation stream config */ | |
| 1413 | 	DRM_XE_OBSERVATION_OP_REMOVE_CONFIG, | |
| 1414 | }; | |
| 1415 | ||
| 1416 | /** | |
| 1417 | * struct drm_xe_observation_param - Input of &DRM_XE_OBSERVATION | |
| 1418 | * | |
| 1419 | * The observation layer enables multiplexing observation streams of | |
| 1420 | * multiple types. The actual params for a particular stream operation are | |
| 1421 | * supplied via the @param pointer (use __copy_from_user to get these | |
| 1422 | * params). | |
| 1423 | */ | |
| 1424 | struct drm_xe_observation_param { | |
| 1425 | 	/** @extensions: Pointer to the first extension struct, if any */ | |
| 1426 | 	__u64 extensions; | |
| 1427 | 	/** @observation_type: observation stream type, of enum @drm_xe_observation_type */ | |
| 1428 | 	__u64 observation_type; | |
| 1429 | 	/** @observation_op: observation stream op, of enum @drm_xe_observation_op */ | |
| 1430 | 	__u64 observation_op; | |
| 1431 | 	/** @param: Pointer to actual stream params */ | |
| 1432 | 	__u64 param; | |
| 1433 | }; | |
| 1434 | ||
| 1435 | /** | |
| 1436 | * enum drm_xe_observation_ioctls - Observation stream fd ioctl's | |
| 1437 | * | |
| 1438 | * Information exchanged between userspace and kernel for observation fd | |
| 1439 | * ioctl's is stream type specific | |
| 1440 | */ | |
| 1441 | enum drm_xe_observation_ioctls { | |
| 1442 | 	/** @DRM_XE_OBSERVATION_IOCTL_ENABLE: Enable data capture for an observation stream */ | |
| 1443 | 	DRM_XE_OBSERVATION_IOCTL_ENABLE = _IO('i', 0x0), | |
| 1444 | ||
| 1445 | 	/** @DRM_XE_OBSERVATION_IOCTL_DISABLE: Disable data capture for a observation stream */ | |
| 1446 | 	DRM_XE_OBSERVATION_IOCTL_DISABLE = _IO('i', 0x1), | |
| 1447 | ||
| 1448 | 	/** @DRM_XE_OBSERVATION_IOCTL_CONFIG: Change observation stream configuration */ | |
| 1449 | 	DRM_XE_OBSERVATION_IOCTL_CONFIG = _IO('i', 0x2), | |
| 1450 | ||
| 1451 | 	/** @DRM_XE_OBSERVATION_IOCTL_STATUS: Return observation stream status */ | |
| 1452 | 	DRM_XE_OBSERVATION_IOCTL_STATUS = _IO('i', 0x3), | |
| 1453 | ||
| 1454 | 	/** @DRM_XE_OBSERVATION_IOCTL_INFO: Return observation stream info */ | |
| 1455 | 	DRM_XE_OBSERVATION_IOCTL_INFO = _IO('i', 0x4), | |
| 1456 | }; | |
| 1457 | ||
| 1458 | /** | |
| 1459 | * enum drm_xe_oa_unit_type - OA unit types | |
| 1460 | */ | |
| 1461 | enum drm_xe_oa_unit_type { | |
| 1462 | 	/** | |
| 1463 | 	 * @DRM_XE_OA_UNIT_TYPE_OAG: OAG OA unit. OAR/OAC are considered | |
| 1464 | 	 * sub-types of OAG. For OAR/OAC, use OAG. | |
| 1465 | 	 */ | |
| 1466 | 	DRM_XE_OA_UNIT_TYPE_OAG, | |
| 1467 | ||
| 1468 | 	/** @DRM_XE_OA_UNIT_TYPE_OAM: OAM OA unit */ | |
| 1469 | 	DRM_XE_OA_UNIT_TYPE_OAM, | |
| 1470 | }; | |
| 1471 | ||
| 1472 | /** | |
| 1473 | * struct drm_xe_oa_unit - describe OA unit | |
| 1474 | */ | |
| 1475 | struct drm_xe_oa_unit { | |
| 1476 | 	/** @extensions: Pointer to the first extension struct, if any */ | |
| 1477 | 	__u64 extensions; | |
| 1478 | ||
| 1479 | 	/** @oa_unit_id: OA unit ID */ | |
| 1480 | 	__u32 oa_unit_id; | |
| 1481 | ||
| 1482 | 	/** @oa_unit_type: OA unit type of @drm_xe_oa_unit_type */ | |
| 1483 | 	__u32 oa_unit_type; | |
| 1484 | ||
| 1485 | 	/** @capabilities: OA capabilities bit-mask */ | |
| 1486 | 	__u64 capabilities; | |
| 1487 | #define DRM_XE_OA_CAPS_BASE		(1 << 0) | |
| 1488 | #define DRM_XE_OA_CAPS_SYNCS		(1 << 1) | |
| 1489 | #define DRM_XE_OA_CAPS_OA_BUFFER_SIZE	(1 << 2) | |
| 1490 | #define DRM_XE_OA_CAPS_WAIT_NUM_REPORTS	(1 << 3) | |
| 1491 | ||
| 1492 | 	/** @oa_timestamp_freq: OA timestamp freq */ | |
| 1493 | 	__u64 oa_timestamp_freq; | |
| 1494 | ||
| 1495 | 	/** @reserved: MBZ */ | |
| 1496 | 	__u64 reserved[4]; | |
| 1497 | ||
| 1498 | 	/** @num_engines: number of engines in @eci array */ | |
| 1499 | 	__u64 num_engines; | |
| 1500 | ||
| 1501 | 	/** @eci: engines attached to this OA unit */ | |
| 1502 | 	struct drm_xe_engine_class_instance eci[]; | |
| 1503 | }; | |
| 1504 | ||
| 1505 | /** | |
| 1506 | * struct drm_xe_query_oa_units - describe OA units | |
| 1507 | * | |
| 1508 | * If a query is made with a struct drm_xe_device_query where .query | |
| 1509 | * is equal to DRM_XE_DEVICE_QUERY_OA_UNITS, then the reply uses struct | |
| 1510 | * drm_xe_query_oa_units in .data. | |
| 1511 | * | |
| 1512 | * OA unit properties for all OA units can be accessed using a code block | |
| 1513 | * such as the one below: | |
| 1514 | * | |
| 1515 | * .. code-block:: C | |
| 1516 | * | |
| 1517 | *	struct drm_xe_query_oa_units *qoa; | |
| 1518 | *	struct drm_xe_oa_unit *oau; | |
| 1519 | *	u8 *poau; | |
| 1520 | * | |
| 1521 | *	// malloc qoa and issue DRM_XE_DEVICE_QUERY_OA_UNITS. Then: | |
| 1522 | *	poau = (u8 *)&qoa->oa_units[0]; | |
| 1523 | *	for (int i = 0; i < qoa->num_oa_units; i++) { | |
| 1524 | *		oau = (struct drm_xe_oa_unit *)poau; | |
| 1525 | *		// Access 'struct drm_xe_oa_unit' fields here | |
| 1526 | *		poau += sizeof(*oau) + oau->num_engines * sizeof(oau->eci[0]); | |
| 1527 | *	} | |
| 1528 | */ | |
| 1529 | struct drm_xe_query_oa_units { | |
| 1530 | 	/** @extensions: Pointer to the first extension struct, if any */ | |
| 1531 | 	__u64 extensions; | |
| 1532 | 	/** @num_oa_units: number of OA units returned in oau[] */ | |
| 1533 | 	__u32 num_oa_units; | |
| 1534 | 	/** @pad: MBZ */ | |
| 1535 | 	__u32 pad; | |
| 1536 | 	/** | |
| 1537 | 	 * @oa_units: struct @drm_xe_oa_unit array returned for this device. | |
| 1538 | 	 * Written below as a u64 array to avoid problems with nested flexible | |
| 1539 | 	 * arrays with some compilers | |
| 1540 | 	 */ | |
| 1541 | 	__u64 oa_units[]; | |
| 1542 | }; | |
| 1543 | ||
| 1544 | /** | |
| 1545 | * enum drm_xe_oa_format_type - OA format types as specified in PRM/Bspec | |
| 1546 | * 52198/60942 | |
| 1547 | */ | |
| 1548 | enum drm_xe_oa_format_type { | |
| 1549 | 	/** @DRM_XE_OA_FMT_TYPE_OAG: OAG report format */ | |
| 1550 | 	DRM_XE_OA_FMT_TYPE_OAG, | |
| 1551 | 	/** @DRM_XE_OA_FMT_TYPE_OAR: OAR report format */ | |
| 1552 | 	DRM_XE_OA_FMT_TYPE_OAR, | |
| 1553 | 	/** @DRM_XE_OA_FMT_TYPE_OAM: OAM report format */ | |
| 1554 | 	DRM_XE_OA_FMT_TYPE_OAM, | |
| 1555 | 	/** @DRM_XE_OA_FMT_TYPE_OAC: OAC report format */ | |
| 1556 | 	DRM_XE_OA_FMT_TYPE_OAC, | |
| 1557 | 	/** @DRM_XE_OA_FMT_TYPE_OAM_MPEC: OAM SAMEDIA or OAM MPEC report format */ | |
| 1558 | 	DRM_XE_OA_FMT_TYPE_OAM_MPEC, | |
| 1559 | 	/** @DRM_XE_OA_FMT_TYPE_PEC: PEC report format */ | |
| 1560 | 	DRM_XE_OA_FMT_TYPE_PEC, | |
| 1561 | }; | |
| 1562 | ||
| 1563 | /** | |
| 1564 | * enum drm_xe_oa_property_id - OA stream property id's | |
| 1565 | * | |
| 1566 | * Stream params are specified as a chain of @drm_xe_ext_set_property | |
| 1567 | * struct's, with @property values from enum @drm_xe_oa_property_id and | |
| 1568 | * @drm_xe_user_extension base.name set to @DRM_XE_OA_EXTENSION_SET_PROPERTY. | |
| 1569 | * @param field in struct @drm_xe_observation_param points to the first | |
| 1570 | * @drm_xe_ext_set_property struct. | |
| 1571 | * | |
| 1572 | * Exactly the same mechanism is also used for stream reconfiguration using the | |
| 1573 | * @DRM_XE_OBSERVATION_IOCTL_CONFIG observation stream fd ioctl, though only a | |
| 1574 | * subset of properties below can be specified for stream reconfiguration. | |
| 1575 | */ | |
| 1576 | enum drm_xe_oa_property_id { | |
| 1577 | #define DRM_XE_OA_EXTENSION_SET_PROPERTY	0 | |
| 1578 | 	/** | |
| 1579 | 	 * @DRM_XE_OA_PROPERTY_OA_UNIT_ID: ID of the OA unit on which to open | |
| 1580 | 	 * the OA stream, see @oa_unit_id in 'struct | |
| 1581 | 	 * drm_xe_query_oa_units'. Defaults to 0 if not provided. | |
| 1582 | 	 */ | |
| 1583 | 	DRM_XE_OA_PROPERTY_OA_UNIT_ID = 1, | |
| 1584 | ||
| 1585 | 	/** | |
| 1586 | 	 * @DRM_XE_OA_PROPERTY_SAMPLE_OA: A value of 1 requests inclusion of raw | |
| 1587 | 	 * OA unit reports or stream samples in a global buffer attached to an | |
| 1588 | 	 * OA unit. | |
| 1589 | 	 */ | |
| 1590 | 	DRM_XE_OA_PROPERTY_SAMPLE_OA, | |
| 1591 | ||
| 1592 | 	/** | |
| 1593 | 	 * @DRM_XE_OA_PROPERTY_OA_METRIC_SET: OA metrics defining contents of OA | |
| 1594 | 	 * reports, previously added via @DRM_XE_OBSERVATION_OP_ADD_CONFIG. | |
| 1595 | 	 */ | |
| 1596 | 	DRM_XE_OA_PROPERTY_OA_METRIC_SET, | |
| 1597 | ||
| 1598 | 	/** @DRM_XE_OA_PROPERTY_OA_FORMAT: OA counter report format */ | |
| 1599 | 	DRM_XE_OA_PROPERTY_OA_FORMAT, | |
| 1600 | 	/* | |
| 1601 | 	 * OA_FORMAT's are specified the same way as in PRM/Bspec 52198/60942, | |
| 1602 | 	 * in terms of the following quantities: a. enum @drm_xe_oa_format_type | |
| 1603 | 	 * b. Counter select c. Counter size and d. BC report. Also refer to the | |
| 1604 | 	 * oa_formats array in drivers/gpu/drm/xe/xe_oa.c. | |
| 1605 | 	 */ | |
| 1606 | #define DRM_XE_OA_FORMAT_MASK_FMT_TYPE		(0xffu << 0) | |
| 1607 | #define DRM_XE_OA_FORMAT_MASK_COUNTER_SEL	(0xffu << 8) | |
| 1608 | #define DRM_XE_OA_FORMAT_MASK_COUNTER_SIZE	(0xffu << 16) | |
| 1609 | #define DRM_XE_OA_FORMAT_MASK_BC_REPORT		(0xffu << 24) | |
| 1610 | ||
| 1611 | 	/** | |
| 1612 | 	 * @DRM_XE_OA_PROPERTY_OA_PERIOD_EXPONENT: Requests periodic OA unit | |
| 1613 | 	 * sampling with sampling frequency proportional to 2^(period_exponent + 1) | |
| 1614 | 	 */ | |
| 1615 | 	DRM_XE_OA_PROPERTY_OA_PERIOD_EXPONENT, | |
| 1616 | ||
| 1617 | 	/** | |
| 1618 | 	 * @DRM_XE_OA_PROPERTY_OA_DISABLED: A value of 1 will open the OA | |
| 1619 | 	 * stream in a DISABLED state (see @DRM_XE_OBSERVATION_IOCTL_ENABLE). | |
| 1620 | 	 */ | |
| 1621 | 	DRM_XE_OA_PROPERTY_OA_DISABLED, | |
| 1622 | ||
| 1623 | 	/** | |
| 1624 | 	 * @DRM_XE_OA_PROPERTY_EXEC_QUEUE_ID: Open the stream for a specific | |
| 1625 | 	 * @exec_queue_id. OA queries can be executed on this exec queue. | |
| 1626 | 	 */ | |
| 1627 | 	DRM_XE_OA_PROPERTY_EXEC_QUEUE_ID, | |
| 1628 | ||
| 1629 | 	/** | |
| 1630 | 	 * @DRM_XE_OA_PROPERTY_OA_ENGINE_INSTANCE: Optional engine instance to | |
| 1631 | 	 * pass along with @DRM_XE_OA_PROPERTY_EXEC_QUEUE_ID or will default to 0. | |
| 1632 | 	 */ | |
| 1633 | 	DRM_XE_OA_PROPERTY_OA_ENGINE_INSTANCE, | |
| 1634 | ||
| 1635 | 	/** | |
| 1636 | 	 * @DRM_XE_OA_PROPERTY_NO_PREEMPT: Allow preemption and timeslicing | |
| 1637 | 	 * to be disabled for the stream exec queue. | |
| 1638 | 	 */ | |
| 1639 | 	DRM_XE_OA_PROPERTY_NO_PREEMPT, | |
| 1640 | ||
| 1641 | 	/** | |
| 1642 | 	 * @DRM_XE_OA_PROPERTY_NUM_SYNCS: Number of syncs in the sync array | |
| 1643 | 	 * specified in @DRM_XE_OA_PROPERTY_SYNCS | |
| 1644 | 	 */ | |
| 1645 | 	DRM_XE_OA_PROPERTY_NUM_SYNCS, | |
| 1646 | ||
| 1647 | 	/** | |
| 1648 | 	 * @DRM_XE_OA_PROPERTY_SYNCS: Pointer to struct @drm_xe_sync array | |
| 1649 | 	 * with array size specified via @DRM_XE_OA_PROPERTY_NUM_SYNCS. OA | |
| 1650 | 	 * configuration will wait till input fences signal. Output fences | |
| 1651 | 	 * will signal after the new OA configuration takes effect. For | |
| 1652 | 	 * @DRM_XE_SYNC_TYPE_USER_FENCE, @addr is a user pointer, similar | |
| 1653 | 	 * to the VM bind case. | |
| 1654 | 	 */ | |
| 1655 | 	DRM_XE_OA_PROPERTY_SYNCS, | |
| 1656 | ||
| 1657 | 	/** | |
| 1658 | 	 * @DRM_XE_OA_PROPERTY_OA_BUFFER_SIZE: Size of OA buffer to be | |
| 1659 | 	 * allocated by the driver in bytes. Supported sizes are powers of | |
| 1660 | 	 * 2 from 128 KiB to 128 MiB. When not specified, a 16 MiB OA | |
| 1661 | 	 * buffer is allocated by default. | |
| 1662 | 	 */ | |
| 1663 | 	DRM_XE_OA_PROPERTY_OA_BUFFER_SIZE, | |
| 1664 | ||
| 1665 | 	/** | |
| 1666 | 	 * @DRM_XE_OA_PROPERTY_WAIT_NUM_REPORTS: Number of reports to wait | |
| 1667 | 	 * for before unblocking poll or read | |
| 1668 | 	 */ | |
| 1669 | 	DRM_XE_OA_PROPERTY_WAIT_NUM_REPORTS, | |
| 1670 | }; | |
| 1671 | ||
| 1672 | /** | |
| 1673 | * struct drm_xe_oa_config - OA metric configuration | |
| 1674 | * | |
| 1675 | * Multiple OA configs can be added using @DRM_XE_OBSERVATION_OP_ADD_CONFIG. A | |
| 1676 | * particular config can be specified when opening an OA stream using | |
| 1677 | * @DRM_XE_OA_PROPERTY_OA_METRIC_SET property. | |
| 1678 | */ | |
| 1679 | struct drm_xe_oa_config { | |
| 1680 | 	/** @extensions: Pointer to the first extension struct, if any */ | |
| 1681 | 	__u64 extensions; | |
| 1682 | ||
| 1683 | 	/** @uuid: String formatted like "%\08x-%\04x-%\04x-%\04x-%\012x" */ | |
| 1684 | 	char uuid[36]; | |
| 1685 | ||
| 1686 | 	/** @n_regs: Number of regs in @regs_ptr */ | |
| 1687 | 	__u32 n_regs; | |
| 1688 | ||
| 1689 | 	/** | |
| 1690 | 	 * @regs_ptr: Pointer to (register address, value) pairs for OA config | |
| 1691 | 	 * registers. Expected length of buffer is: (2 * sizeof(u32) * @n_regs). | |
| 1692 | 	 */ | |
| 1693 | 	__u64 regs_ptr; | |
| 1694 | }; | |
| 1695 | ||
| 1696 | /** | |
| 1697 | * struct drm_xe_oa_stream_status - OA stream status returned from | |
| 1698 | * @DRM_XE_OBSERVATION_IOCTL_STATUS observation stream fd ioctl. Userspace can | |
| 1699 | * call the ioctl to query stream status in response to EIO errno from | |
| 1700 | * observation fd read(). | |
| 1701 | */ | |
| 1702 | struct drm_xe_oa_stream_status { | |
| 1703 | 	/** @extensions: Pointer to the first extension struct, if any */ | |
| 1704 | 	__u64 extensions; | |
| 1705 | ||
| 1706 | 	/** @oa_status: OA stream status (see Bspec 46717/61226) */ | |
| 1707 | 	__u64 oa_status; | |
| 1708 | #define DRM_XE_OASTATUS_MMIO_TRG_Q_FULL		(1 << 3) | |
| 1709 | #define DRM_XE_OASTATUS_COUNTER_OVERFLOW	(1 << 2) | |
| 1710 | #define DRM_XE_OASTATUS_BUFFER_OVERFLOW		(1 << 1) | |
| 1711 | #define DRM_XE_OASTATUS_REPORT_LOST		(1 << 0) | |
| 1712 | ||
| 1713 | 	/** @reserved: reserved for future use */ | |
| 1714 | 	__u64 reserved[3]; | |
| 1715 | }; | |
| 1716 | ||
| 1717 | /** | |
| 1718 | * struct drm_xe_oa_stream_info - OA stream info returned from | |
| 1719 | * @DRM_XE_OBSERVATION_IOCTL_INFO observation stream fd ioctl | |
| 1720 | */ | |
| 1721 | struct drm_xe_oa_stream_info { | |
| 1722 | 	/** @extensions: Pointer to the first extension struct, if any */ | |
| 1723 | 	__u64 extensions; | |
| 1724 | ||
| 1725 | 	/** @oa_buf_size: OA buffer size */ | |
| 1726 | 	__u64 oa_buf_size; | |
| 1727 | ||
| 1728 | 	/** @reserved: reserved for future use */ | |
| 1729 | 	__u64 reserved[3]; | |
| 1730 | }; | |
| 1731 | ||
| 1371 | 1732 | #if defined(__cplusplus) |
| 1372 | 1733 | } |
| 1373 | 1734 | #endif |
lib/libc/include/any-linux-any/linux/android/binder.h+36| ... | ... | @@ -236,6 +236,12 @@ struct binder_frozen_status_info { |
| 236 | 236 | 	__u32 async_recv; |
| 237 | 237 | }; |
| 238 | 238 | |
| 239 | struct binder_frozen_state_info { | |
| 240 | 	binder_uintptr_t cookie; | |
| 241 | 	__u32 is_frozen; | |
| 242 | 	__u32 reserved; | |
| 243 | }; | |
| 244 | ||
| 239 | 245 | /* struct binder_extened_error - extended error information |
| 240 | 246 | * @id:		identifier for the failed operation |
| 241 | 247 | * @command:	command as defined by binder_driver_return_protocol |
| ... | ... | @@ -467,6 +473,17 @@ enum binder_driver_return_protocol { |
| 467 | 473 | 	/* |
| 468 | 474 | 	 * The target of the last async transaction is frozen. No parameters. |
| 469 | 475 | 	 */ |
| 476 | ||
| 477 | 	BR_FROZEN_BINDER = _IOR('r', 21, struct binder_frozen_state_info), | |
| 478 | 	/* | |
| 479 | 	 * The cookie and a boolean (is_frozen) that indicates whether the process | |
| 480 | 	 * transitioned into a frozen or an unfrozen state. | |
| 481 | 	 */ | |
| 482 | ||
| 483 | 	BR_CLEAR_FREEZE_NOTIFICATION_DONE = _IOR('r', 22, binder_uintptr_t), | |
| 484 | 	/* | |
| 485 | 	 * void *: cookie | |
| 486 | 	 */ | |
| 470 | 487 | }; |
| 471 | 488 | |
| 472 | 489 | enum binder_driver_command_protocol { |
| ... | ... | @@ -550,6 +567,25 @@ enum binder_driver_command_protocol { |
| 550 | 567 | 	/* |
| 551 | 568 | 	 * binder_transaction_data_sg: the sent command. |
| 552 | 569 | 	 */ |
| 570 | ||
| 571 | 	BC_REQUEST_FREEZE_NOTIFICATION = | |
| 572 | 			_IOW('c', 19, struct binder_handle_cookie), | |
| 573 | 	/* | |
| 574 | 	 * int: handle | |
| 575 | 	 * void *: cookie | |
| 576 | 	 */ | |
| 577 | ||
| 578 | 	BC_CLEAR_FREEZE_NOTIFICATION = _IOW('c', 20, | |
| 579 | 					 struct binder_handle_cookie), | |
| 580 | 	/* | |
| 581 | 	 * int: handle | |
| 582 | 	 * void *: cookie | |
| 583 | 	 */ | |
| 584 | ||
| 585 | 	BC_FREEZE_NOTIFICATION_DONE = _IOW('c', 21, binder_uintptr_t), | |
| 586 | 	/* | |
| 587 | 	 * void *: cookie | |
| 588 | 	 */ | |
| 553 | 589 | }; |
| 554 | 590 | |
| 555 | 591 | #endif /* _LINUX_BINDER_H */ |
| \ No newline at end of file |
lib/libc/include/any-linux-any/linux/audit.h+3| ... | ... | @@ -143,6 +143,9 @@ |
| 143 | 143 | #define AUDIT_MAC_UNLBL_STCDEL	1417	/* NetLabel: del a static label */ |
| 144 | 144 | #define AUDIT_MAC_CALIPSO_ADD	1418	/* NetLabel: add CALIPSO DOI entry */ |
| 145 | 145 | #define AUDIT_MAC_CALIPSO_DEL	1419	/* NetLabel: del CALIPSO DOI entry */ |
| 146 | #define AUDIT_IPE_ACCESS	1420	/* IPE denial or grant */ | |
| 147 | #define AUDIT_IPE_CONFIG_CHANGE	1421	/* IPE config change */ | |
| 148 | #define AUDIT_IPE_POLICY_LOAD	1422	/* IPE policy load */ | |
| 146 | 149 | |
| 147 | 150 | #define AUDIT_FIRST_KERN_ANOM_MSG 1700 |
| 148 | 151 | #define AUDIT_LAST_KERN_ANOM_MSG 1799 |
lib/libc/include/any-linux-any/linux/auto_fs.h+1-1| ... | ... | @@ -21,7 +21,7 @@ |
| 21 | 21 | #define AUTOFS_MIN_PROTO_VERSION	3 |
| 22 | 22 | #define AUTOFS_MAX_PROTO_VERSION	5 |
| 23 | 23 | |
| 24 | #define AUTOFS_PROTO_SUBVERSION		5 | |
| 24 | #define AUTOFS_PROTO_SUBVERSION		6 | |
| 25 | 25 | |
| 26 | 26 | /* |
| 27 | 27 | * The wait_queue_token (autofs_wqt_t) is part of a structure which is passed |
lib/libc/include/any-linux-any/linux/batadv_packet.h+16-13| ... | ... | @@ -9,6 +9,7 @@ |
| 9 | 9 | |
| 10 | 10 | #include <asm/byteorder.h> |
| 11 | 11 | #include <linux/if_ether.h> |
| 12 | #include <linux/stddef.h> | |
| 12 | 13 | #include <linux/types.h> |
| 13 | 14 | |
| 14 | 15 | /** |
| ... | ... | @@ -592,19 +593,6 @@ struct batadv_tvlv_gateway_data { |
| 592 | 593 | 	__be32 bandwidth_up; |
| 593 | 594 | }; |
| 594 | 595 | |
| 595 | /** | |
| 596 | * struct batadv_tvlv_tt_data - tt data propagated through the tt tvlv container | |
| 597 | * @flags: translation table flags (see batadv_tt_data_flags) | |
| 598 | * @ttvn: translation table version number | |
| 599 | * @num_vlan: number of announced VLANs. In the TVLV this struct is followed by | |
| 600 | * one batadv_tvlv_tt_vlan_data object per announced vlan | |
| 601 | */ | |
| 602 | struct batadv_tvlv_tt_data { | |
| 603 | 	__u8 flags; | |
| 604 | 	__u8 ttvn; | |
| 605 | 	__be16 num_vlan; | |
| 606 | }; | |
| 607 | ||
| 608 | 596 | /** |
| 609 | 597 | * struct batadv_tvlv_tt_vlan_data - vlan specific tt data propagated through |
| 610 | 598 | * the tt tvlv container |
| ... | ... | @@ -618,6 +606,21 @@ struct batadv_tvlv_tt_vlan_data { |
| 618 | 606 | 	__u16 reserved; |
| 619 | 607 | }; |
| 620 | 608 | |
| 609 | /** | |
| 610 | * struct batadv_tvlv_tt_data - tt data propagated through the tt tvlv container | |
| 611 | * @flags: translation table flags (see batadv_tt_data_flags) | |
| 612 | * @ttvn: translation table version number | |
| 613 | * @num_vlan: number of announced VLANs. In the TVLV this struct is followed by | |
| 614 | * one batadv_tvlv_tt_vlan_data object per announced vlan | |
| 615 | * @vlan_data: array of batadv_tvlv_tt_vlan_data objects | |
| 616 | */ | |
| 617 | struct batadv_tvlv_tt_data { | |
| 618 | 	__u8 flags; | |
| 619 | 	__u8 ttvn; | |
| 620 | 	__be16 num_vlan; | |
| 621 | 	struct batadv_tvlv_tt_vlan_data vlan_data[] __counted_by_be(num_vlan); | |
| 622 | }; | |
| 623 | ||
| 621 | 624 | /** |
| 622 | 625 | * struct batadv_tvlv_tt_change - translation table diff data |
| 623 | 626 | * @flags: status indicators concerning the non-mesh client (see |
lib/libc/include/any-linux-any/linux/bits.h+3| ... | ... | @@ -12,4 +12,7 @@ |
| 12 | 12 | (((~_ULL(0)) - (_ULL(1) << (l)) + 1) & \ |
| 13 | 13 | (~_ULL(0) >> (__BITS_PER_LONG_LONG - 1 - (h)))) |
| 14 | 14 | |
| 15 | #define __GENMASK_U128(h, l) \ | |
| 16 | 	((_BIT128((h)) << 1) - (_BIT128(l))) | |
| 17 | ||
| 15 | 18 | #endif /* _LINUX_BITS_H */ |
| \ No newline at end of file |
lib/libc/include/any-linux-any/linux/blkdev.h created+14| ... | ... | @@ -0,0 +1,14 @@ |
| 1 | /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ | |
| 2 | #ifndef _LINUX_BLKDEV_H | |
| 3 | #define _LINUX_BLKDEV_H | |
| 4 | ||
| 5 | #include <linux/ioctl.h> | |
| 6 | #include <linux/types.h> | |
| 7 | ||
| 8 | /* | |
| 9 | * io_uring block file commands, see IORING_OP_URING_CMD. | |
| 10 | * It's a different number space from ioctl(), reuse the block's code 0x12. | |
| 11 | */ | |
| 12 | #define BLOCK_URING_CMD_DISCARD			_IO(0x12, 0) | |
| 13 | ||
| 14 | #endif | |
| \ No newline at end of file |
lib/libc/include/any-linux-any/linux/bpf.h+40-23| ... | ... | @@ -1116,11 +1116,15 @@ enum bpf_attach_type { |
| 1116 | 1116 | 	BPF_NETKIT_PRIMARY, |
| 1117 | 1117 | 	BPF_NETKIT_PEER, |
| 1118 | 1118 | 	BPF_TRACE_KPROBE_SESSION, |
| 1119 | 	BPF_TRACE_UPROBE_SESSION, | |
| 1119 | 1120 | 	__MAX_BPF_ATTACH_TYPE |
| 1120 | 1121 | }; |
| 1121 | 1122 | |
| 1122 | 1123 | #define MAX_BPF_ATTACH_TYPE __MAX_BPF_ATTACH_TYPE |
| 1123 | 1124 | |
| 1125 | /* Add BPF_LINK_TYPE(type, name) in bpf_types.h to keep bpf_link_type_strs[] | |
| 1126 | * in sync with the definitions below. | |
| 1127 | */ | |
| 1124 | 1128 | enum bpf_link_type { |
| 1125 | 1129 | 	BPF_LINK_TYPE_UNSPEC = 0, |
| 1126 | 1130 | 	BPF_LINK_TYPE_RAW_TRACEPOINT = 1, |
| ... | ... | @@ -1425,6 +1429,8 @@ enum { |
| 1425 | 1429 | #define BPF_F_TEST_RUN_ON_CPU	(1U << 0) |
| 1426 | 1430 | /* If set, XDP frames will be transmitted after processing */ |
| 1427 | 1431 | #define BPF_F_TEST_XDP_LIVE_FRAMES	(1U << 1) |
| 1432 | /* If set, apply CHECKSUM_COMPLETE to skb and validate the checksum */ | |
| 1433 | #define BPF_F_TEST_SKB_CHECKSUM_COMPLETE	(1U << 2) | |
| 1428 | 1434 | |
| 1429 | 1435 | /* type for BPF_ENABLE_STATS */ |
| 1430 | 1436 | enum bpf_stats_type { |
| ... | ... | @@ -1968,6 +1974,8 @@ union bpf_attr { |
| 1968 | 1974 | * 		program. |
| 1969 | 1975 | * 	Return |
| 1970 | 1976 | * 		The SMP id of the processor running the program. |
| 1977 | * 	Attributes | |
| 1978 | * 		__bpf_fastcall | |
| 1971 | 1979 | * |
| 1972 | 1980 | * long bpf_skb_store_bytes(struct sk_buff *skb, u32 offset, const void *from, u32 len, u64 flags) |
| 1973 | 1981 | * 	Description |
| ... | ... | @@ -2849,7 +2857,7 @@ union bpf_attr { |
| 2849 | 2857 | * 		 **TCP_SYNCNT**, **TCP_USER_TIMEOUT**, **TCP_NOTSENT_LOWAT**, |
| 2850 | 2858 | * 		 **TCP_NODELAY**, **TCP_MAXSEG**, **TCP_WINDOW_CLAMP**, |
| 2851 | 2859 | * 		 **TCP_THIN_LINEAR_TIMEOUTS**, **TCP_BPF_DELACK_MAX**, |
| 2852 | * 		 **TCP_BPF_RTO_MIN**. | |
| 2860 | *		 **TCP_BPF_RTO_MIN**, **TCP_BPF_SOCK_OPS_CB_FLAGS**. | |
| 2853 | 2861 | * 		* **IPPROTO_IP**, which supports *optname* **IP_TOS**. |
| 2854 | 2862 | * 		* **IPPROTO_IPV6**, which supports the following *optname*\ s: |
| 2855 | 2863 | * 		 **IPV6_TCLASS**, **IPV6_AUTOFLOWLABEL**. |
| ... | ... | @@ -3099,10 +3107,6 @@ union bpf_attr { |
| 3099 | 3107 | * 		with the **CONFIG_BPF_KPROBE_OVERRIDE** configuration |
| 3100 | 3108 | * 		option, and in this case it only works on functions tagged with |
| 3101 | 3109 | * 		**ALLOW_ERROR_INJECTION** in the kernel code. |
| 3102 | * | |
| 3103 | * 		Also, the helper is only available for the architectures having | |
| 3104 | * 		the CONFIG_FUNCTION_ERROR_INJECTION option. As of this writing, | |
| 3105 | * 		x86 architecture is the only one to support this feature. | |
| 3106 | 3110 | * 	Return |
| 3107 | 3111 | * 		0 |
| 3108 | 3112 | * |
| ... | ... | @@ -5367,7 +5371,7 @@ union bpf_attr { |
| 5367 | 5371 | *		Currently, the **flags** must be 0. Currently, nr_loops is |
| 5368 | 5372 | *		limited to 1 << 23 (~8 million) loops. |
| 5369 | 5373 | * |
| 5370 | *		long (\*callback_fn)(u32 index, void \*ctx); | |
| 5374 | *		long (\*callback_fn)(u64 index, void \*ctx); | |
| 5371 | 5375 | * |
| 5372 | 5376 | *		where **index** is the current index in the loop. The index |
| 5373 | 5377 | *		is zero-indexed. |
| ... | ... | @@ -5517,11 +5521,12 @@ union bpf_attr { |
| 5517 | 5521 | *		**-EOPNOTSUPP** if the hash calculation failed or **-EINVAL** if |
| 5518 | 5522 | *		invalid arguments are passed. |
| 5519 | 5523 | * |
| 5520 | * void *bpf_kptr_xchg(void *map_value, void *ptr) | |
| 5524 | * void *bpf_kptr_xchg(void *dst, void *ptr) | |
| 5521 | 5525 | *	Description |
| 5522 | *		Exchange kptr at pointer *map_value* with *ptr*, and return the | |
| 5523 | *		old value. *ptr* can be NULL, otherwise it must be a referenced | |
| 5524 | *		pointer which will be released when this helper is called. | |
| 5526 | *		Exchange kptr at pointer *dst* with *ptr*, and return the old value. | |
| 5527 | *		*dst* can be map value or local kptr. *ptr* can be NULL, otherwise | |
| 5528 | *		it must be a referenced pointer which will be released when this helper | |
| 5529 | *		is called. | |
| 5525 | 5530 | *	Return |
| 5526 | 5531 | *		The old value of kptr (which can be NULL). The returned pointer |
| 5527 | 5532 | *		if not NULL, is a reference which must be released using its |
| ... | ... | @@ -6044,11 +6049,6 @@ enum { |
| 6044 | 6049 | 	BPF_F_MARK_ENFORCE		= (1ULL << 6), |
| 6045 | 6050 | }; |
| 6046 | 6051 | |
| 6047 | /* BPF_FUNC_clone_redirect and BPF_FUNC_redirect flags. */ | |
| 6048 | enum { | |
| 6049 | 	BPF_F_INGRESS			= (1ULL << 0), | |
| 6050 | }; | |
| 6051 | ||
| 6052 | 6052 | /* BPF_FUNC_skb_set_tunnel_key and BPF_FUNC_skb_get_tunnel_key flags. */ |
| 6053 | 6053 | enum { |
| 6054 | 6054 | 	BPF_F_TUNINFO_IPV6		= (1ULL << 0), |
| ... | ... | @@ -6195,10 +6195,12 @@ enum { |
| 6195 | 6195 | 	BPF_F_BPRM_SECUREEXEC	= (1ULL << 0), |
| 6196 | 6196 | }; |
| 6197 | 6197 | |
| 6198 | /* Flags for bpf_redirect_map helper */ | |
| 6198 | /* Flags for bpf_redirect and bpf_redirect_map helpers */ | |
| 6199 | 6199 | enum { |
| 6200 | 	BPF_F_BROADCAST		= (1ULL << 3), | |
| 6201 | 	BPF_F_EXCLUDE_INGRESS	= (1ULL << 4), | |
| 6200 | 	BPF_F_INGRESS		= (1ULL << 0), /* used for skb path */ | |
| 6201 | 	BPF_F_BROADCAST		= (1ULL << 3), /* used for XDP path */ | |
| 6202 | 	BPF_F_EXCLUDE_INGRESS	= (1ULL << 4), /* used for XDP path */ | |
| 6203 | #define BPF_F_REDIRECT_FLAGS (BPF_F_INGRESS | BPF_F_BROADCAST | BPF_F_EXCLUDE_INGRESS) | |
| 6202 | 6204 | }; |
| 6203 | 6205 | |
| 6204 | 6206 | #define __bpf_md_ptr(type, name)	\ |
| ... | ... | @@ -6207,12 +6209,17 @@ union {					\ |
| 6207 | 6209 | 	__u64 :64;			\ |
| 6208 | 6210 | } __attribute__((aligned(8))) |
| 6209 | 6211 | |
| 6212 | /* The enum used in skb->tstamp_type. It specifies the clock type | |
| 6213 | * of the time stored in the skb->tstamp. | |
| 6214 | */ | |
| 6210 | 6215 | enum { |
| 6211 | 	BPF_SKB_TSTAMP_UNSPEC, | |
| 6212 | 	BPF_SKB_TSTAMP_DELIVERY_MONO,	/* tstamp has mono delivery time */ | |
| 6213 | 	/* For any BPF_SKB_TSTAMP_* that the bpf prog cannot handle, | |
| 6214 | 	 * the bpf prog should handle it like BPF_SKB_TSTAMP_UNSPEC | |
| 6215 | 	 * and try to deduce it by ingress, egress or skb->sk->sk_clockid. | |
| 6216 | 	BPF_SKB_TSTAMP_UNSPEC = 0,		/* DEPRECATED */ | |
| 6217 | 	BPF_SKB_TSTAMP_DELIVERY_MONO = 1,	/* DEPRECATED */ | |
| 6218 | 	BPF_SKB_CLOCK_REALTIME = 0, | |
| 6219 | 	BPF_SKB_CLOCK_MONOTONIC = 1, | |
| 6220 | 	BPF_SKB_CLOCK_TAI = 2, | |
| 6221 | 	/* For any future BPF_SKB_CLOCK_* that the bpf prog cannot handle, | |
| 6222 | 	 * the bpf prog can try to deduce it by ingress/egress/skb->sk->sk_clockid. | |
| 6216 | 6223 | 	 */ |
| 6217 | 6224 | }; |
| 6218 | 6225 | |
| ... | ... | @@ -7073,6 +7080,7 @@ enum { |
| 7073 | 7080 | 	TCP_BPF_SYN		= 1005, /* Copy the TCP header */ |
| 7074 | 7081 | 	TCP_BPF_SYN_IP		= 1006, /* Copy the IP[46] and TCP header */ |
| 7075 | 7082 | 	TCP_BPF_SYN_MAC = 1007, /* Copy the MAC, IP[46], and TCP header */ |
| 7083 | 	TCP_BPF_SOCK_OPS_CB_FLAGS = 1008, /* Get or Set TCP sock ops flags */ | |
| 7076 | 7084 | }; |
| 7077 | 7085 | |
| 7078 | 7086 | enum { |
| ... | ... | @@ -7505,4 +7513,13 @@ struct bpf_iter_num { |
| 7505 | 7513 | 	__u64 __opaque[1]; |
| 7506 | 7514 | } __attribute__((aligned(8))); |
| 7507 | 7515 | |
| 7516 | /* | |
| 7517 | * Flags to control BPF kfunc behaviour. | |
| 7518 | * - BPF_F_PAD_ZEROS: Pad destination buffer with zeros. (See the respective | |
| 7519 | * helper documentation for details.) | |
| 7520 | */ | |
| 7521 | enum bpf_kfunc_flags { | |
| 7522 | 	BPF_F_PAD_ZEROS = (1ULL << 0), | |
| 7523 | }; | |
| 7524 | ||
| 7508 | 7525 | #endif /* __LINUX_BPF_H__ */ |
| \ No newline at end of file |
lib/libc/include/any-linux-any/linux/btrfs.h+25| ... | ... | @@ -1047,6 +1047,29 @@ struct btrfs_ioctl_encoded_io_args { |
| 1047 | 1047 | #define BTRFS_ENCODED_IO_ENCRYPTION_NONE 0 |
| 1048 | 1048 | #define BTRFS_ENCODED_IO_ENCRYPTION_TYPES 1 |
| 1049 | 1049 | |
| 1050 | /* | |
| 1051 | * Wait for subvolume cleaning process. This queries the kernel queue and it | |
| 1052 | * can change between the calls. | |
| 1053 | * | |
| 1054 | * - FOR_ONE	- specify the subvolid | |
| 1055 | * - FOR_QUEUED - wait for all currently queued | |
| 1056 | * - COUNT	- count number of queued | |
| 1057 | * - PEEK_FIRST - read which is the first in the queue (to be cleaned or being | |
| 1058 | * 		 cleaned already), or 0 if the queue is empty | |
| 1059 | * - PEEK_LAST - read the last subvolid in the queue, or 0 if the queue is empty | |
| 1060 | */ | |
| 1061 | struct btrfs_ioctl_subvol_wait { | |
| 1062 | 	__u64 subvolid; | |
| 1063 | 	__u32 mode; | |
| 1064 | 	__u32 count; | |
| 1065 | }; | |
| 1066 | ||
| 1067 | #define BTRFS_SUBVOL_SYNC_WAIT_FOR_ONE		(0) | |
| 1068 | #define BTRFS_SUBVOL_SYNC_WAIT_FOR_QUEUED	(1) | |
| 1069 | #define BTRFS_SUBVOL_SYNC_COUNT			(2) | |
| 1070 | #define BTRFS_SUBVOL_SYNC_PEEK_FIRST		(3) | |
| 1071 | #define BTRFS_SUBVOL_SYNC_PEEK_LAST		(4) | |
| 1072 | ||
| 1050 | 1073 | /* Error codes as returned by the kernel */ |
| 1051 | 1074 | enum btrfs_err_code { |
| 1052 | 1075 | 	BTRFS_ERROR_DEV_RAID1_MIN_NOT_MET = 1, |
| ... | ... | @@ -1179,6 +1202,8 @@ enum btrfs_err_code { |
| 1179 | 1202 | 				 struct btrfs_ioctl_encoded_io_args) |
| 1180 | 1203 | #define BTRFS_IOC_ENCODED_WRITE _IOW(BTRFS_IOCTL_MAGIC, 64, \ |
| 1181 | 1204 | 				 struct btrfs_ioctl_encoded_io_args) |
| 1205 | #define BTRFS_IOC_SUBVOL_SYNC_WAIT _IOW(BTRFS_IOCTL_MAGIC, 65, \ | |
| 1206 | 					struct btrfs_ioctl_subvol_wait) | |
| 1182 | 1207 | |
| 1183 | 1208 | #ifdef __cplusplus |
| 1184 | 1209 | } |
lib/libc/include/any-linux-any/linux/btrfs_tree.h+9-13| ... | ... | @@ -743,21 +743,9 @@ struct btrfs_raid_stride { |
| 743 | 743 | 	__le64 physical; |
| 744 | 744 | } __attribute__ ((__packed__)); |
| 745 | 745 | |
| 746 | /* The stripe_extent::encoding, 1:1 mapping of enum btrfs_raid_types. */ | |
| 747 | #define BTRFS_STRIPE_RAID0	1 | |
| 748 | #define BTRFS_STRIPE_RAID1	2 | |
| 749 | #define BTRFS_STRIPE_DUP	3 | |
| 750 | #define BTRFS_STRIPE_RAID10	4 | |
| 751 | #define BTRFS_STRIPE_RAID5	5 | |
| 752 | #define BTRFS_STRIPE_RAID6	6 | |
| 753 | #define BTRFS_STRIPE_RAID1C3	7 | |
| 754 | #define BTRFS_STRIPE_RAID1C4	8 | |
| 755 | ||
| 756 | 746 | struct btrfs_stripe_extent { |
| 757 | 	__u8 encoding; | |
| 758 | 	__u8 reserved[7]; | |
| 759 | 747 | 	/* An array of raid strides this stripe is composed of. */ |
| 760 | 	struct btrfs_raid_stride strides[]; | |
| 748 | 	__DECLARE_FLEX_ARRAY(struct btrfs_raid_stride, strides); | |
| 761 | 749 | } __attribute__ ((__packed__)); |
| 762 | 750 | |
| 763 | 751 | #define BTRFS_HEADER_FLAG_WRITTEN	(1ULL << 0) |
| ... | ... | @@ -773,6 +761,14 @@ struct btrfs_stripe_extent { |
| 773 | 761 | #define BTRFS_SUPER_FLAG_CHANGING_FSID	(1ULL << 35) |
| 774 | 762 | #define BTRFS_SUPER_FLAG_CHANGING_FSID_V2 (1ULL << 36) |
| 775 | 763 | |
| 764 | /* | |
| 765 | * Those are temporaray flags utilized by btrfs-progs to do offline conversion. | |
| 766 | * They are rejected by kernel. | |
| 767 | * But still keep them all here to avoid conflicts. | |
| 768 | */ | |
| 769 | #define BTRFS_SUPER_FLAG_CHANGING_BG_TREE	(1ULL << 38) | |
| 770 | #define BTRFS_SUPER_FLAG_CHANGING_DATA_CSUM	(1ULL << 39) | |
| 771 | #define BTRFS_SUPER_FLAG_CHANGING_META_CSUM	(1ULL << 40) | |
| 776 | 772 | |
| 777 | 773 | /* |
| 778 | 774 | * items in the extent btree are used to record the objectid of the |
lib/libc/include/any-linux-any/linux/can/isotp.h+1-1| ... | ... | @@ -2,7 +2,7 @@ |
| 2 | 2 | /* |
| 3 | 3 | * linux/can/isotp.h |
| 4 | 4 | * |
| 5 | * Definitions for isotp CAN sockets (ISO 15765-2:2016) | |
| 5 | * Definitions for ISO 15765-2 CAN transport protocol sockets | |
| 6 | 6 | * |
| 7 | 7 | * Copyright (c) 2020 Volkswagen Group Electronic Research |
| 8 | 8 | * All rights reserved. |
lib/libc/include/any-linux-any/linux/cec.h+8-1| ... | ... | @@ -132,6 +132,8 @@ static __inline__ void cec_msg_init(struct cec_msg *msg, |
| 132 | 132 | * Set the msg destination to the orig initiator and the msg initiator to the |
| 133 | 133 | * orig destination. Note that msg and orig may be the same pointer, in which |
| 134 | 134 | * case the change is done in place. |
| 135 | * | |
| 136 | * It also zeroes the reply, timeout and flags fields. | |
| 135 | 137 | */ |
| 136 | 138 | static __inline__ void cec_msg_set_reply_to(struct cec_msg *msg, |
| 137 | 139 | 					struct cec_msg *orig) |
| ... | ... | @@ -139,7 +141,9 @@ static __inline__ void cec_msg_set_reply_to(struct cec_msg *msg, |
| 139 | 141 | 	/* The destination becomes the initiator and vice versa */ |
| 140 | 142 | 	msg->msg[0] = (cec_msg_destination(orig) << 4) | |
| 141 | 143 | 		 cec_msg_initiator(orig); |
| 142 | 	msg->reply = msg->timeout = 0; | |
| 144 | 	msg->reply = 0; | |
| 145 | 	msg->timeout = 0; | |
| 146 | 	msg->flags = 0; | |
| 143 | 147 | } |
| 144 | 148 | |
| 145 | 149 | /** |
| ... | ... | @@ -165,6 +169,7 @@ static __inline__ int cec_msg_recv_is_rx_result(const struct cec_msg *msg) |
| 165 | 169 | /* cec_msg flags field */ |
| 166 | 170 | #define CEC_MSG_FL_REPLY_TO_FOLLOWERS	(1 << 0) |
| 167 | 171 | #define CEC_MSG_FL_RAW			(1 << 1) |
| 172 | #define CEC_MSG_FL_REPLY_VENDOR_ID	(1 << 2) | |
| 168 | 173 | |
| 169 | 174 | /* cec_msg tx/rx_status field */ |
| 170 | 175 | #define CEC_TX_STATUS_OK		(1 << 0) |
| ... | ... | @@ -339,6 +344,8 @@ static __inline__ int cec_is_unconfigured(__u16 log_addr_mask) |
| 339 | 344 | #define CEC_CAP_MONITOR_PIN	(1 << 7) |
| 340 | 345 | /* CEC_ADAP_G_CONNECTOR_INFO is available */ |
| 341 | 346 | #define CEC_CAP_CONNECTOR_INFO	(1 << 8) |
| 347 | /* CEC_MSG_FL_REPLY_VENDOR_ID is available */ | |
| 348 | #define CEC_CAP_REPLY_VENDOR_ID	(1 << 9) | |
| 342 | 349 | |
| 343 | 350 | /** |
| 344 | 351 | * struct cec_caps - CEC capabilities structure. |
lib/libc/include/any-linux-any/linux/const.h+17| ... | ... | @@ -28,6 +28,23 @@ |
| 28 | 28 | #define _BITUL(x)	(_UL(1) << (x)) |
| 29 | 29 | #define _BITULL(x)	(_ULL(1) << (x)) |
| 30 | 30 | |
| 31 | #if !defined(__ASSEMBLY__) | |
| 32 | /* | |
| 33 | * Missing __asm__ support | |
| 34 | * | |
| 35 | * __BIT128() would not work in the __asm__ code, as it shifts an | |
| 36 | * 'unsigned __init128' data type as direct representation of | |
| 37 | * 128 bit constants is not supported in the gcc compiler, as | |
| 38 | * they get silently truncated. | |
| 39 | * | |
| 40 | * TODO: Please revisit this implementation when gcc compiler | |
| 41 | * starts representing 128 bit constants directly like long | |
| 42 | * and unsigned long etc. Subsequently drop the comment for | |
| 43 | * GENMASK_U128() which would then start supporting __asm__ code. | |
| 44 | */ | |
| 45 | #define _BIT128(x)	((unsigned __int128)(1) << (x)) | |
| 46 | #endif | |
| 47 | ||
| 31 | 48 | #define __ALIGN_KERNEL(x, a)		__ALIGN_KERNEL_MASK(x, (__typeof__(x))(a) - 1) |
| 32 | 49 | #define __ALIGN_KERNEL_MASK(x, mask)	(((x) + (mask)) & ~(mask)) |
| 33 | 50 |
lib/libc/include/any-linux-any/linux/cryptouser.h+5| ... | ... | @@ -64,6 +64,7 @@ enum crypto_attr_type_t { |
| 64 | 64 | 	CRYPTOCFGA_STAT_AKCIPHER,	/* No longer supported, do not use. */ |
| 65 | 65 | 	CRYPTOCFGA_STAT_KPP,		/* No longer supported, do not use. */ |
| 66 | 66 | 	CRYPTOCFGA_STAT_ACOMP,		/* No longer supported, do not use. */ |
| 67 | 	CRYPTOCFGA_REPORT_SIG,		/* struct crypto_report_sig */ | |
| 67 | 68 | 	__CRYPTOCFGA_MAX |
| 68 | 69 | |
| 69 | 70 | #define CRYPTOCFGA_MAX (__CRYPTOCFGA_MAX - 1) |
| ... | ... | @@ -207,6 +208,10 @@ struct crypto_report_acomp { |
| 207 | 208 | 	char type[CRYPTO_MAX_NAME]; |
| 208 | 209 | }; |
| 209 | 210 | |
| 211 | struct crypto_report_sig { | |
| 212 | 	char type[CRYPTO_MAX_NAME]; | |
| 213 | }; | |
| 214 | ||
| 210 | 215 | #define CRYPTO_REPORT_MAXSIZE (sizeof(struct crypto_user_alg) + \ |
| 211 | 216 | 			 sizeof(struct crypto_report_blkcipher)) |
| 212 | 217 |
lib/libc/include/any-linux-any/linux/dlm.h+2| ... | ... | @@ -71,6 +71,8 @@ struct dlm_lksb { |
| 71 | 71 | /* DLM_LSFL_TIMEWARN is deprecated and reserved. DO NOT USE! */ |
| 72 | 72 | #define DLM_LSFL_TIMEWARN	0x00000002 |
| 73 | 73 | #define DLM_LSFL_NEWEXCL 	0x00000008 |
| 74 | /* currently reserved due in-kernel use */ | |
| 75 | #define __DLM_LSFL_RESERVED0	0x00000010 | |
| 74 | 76 | |
| 75 | 77 | |
| 76 | 78 | #endif /* __DLM_DOT_H__ */ |
| \ No newline at end of file |
lib/libc/include/any-linux-any/linux/dma-heap.h+1-1| ... | ... | @@ -19,7 +19,7 @@ |
| 19 | 19 | #define DMA_HEAP_VALID_FD_FLAGS (O_CLOEXEC | O_ACCMODE) |
| 20 | 20 | |
| 21 | 21 | /* Currently no heap flags */ |
| 22 | #define DMA_HEAP_VALID_HEAP_FLAGS (0) | |
| 22 | #define DMA_HEAP_VALID_HEAP_FLAGS (0ULL) | |
| 23 | 23 | |
| 24 | 24 | /** |
| 25 | 25 | * struct dma_heap_allocation_data - metadata passed from userspace for |
lib/libc/include/any-linux-any/linux/dpll.h+27| ... | ... | @@ -79,6 +79,29 @@ enum dpll_lock_status_error { |
| 79 | 79 | 	DPLL_LOCK_STATUS_ERROR_MAX = (__DPLL_LOCK_STATUS_ERROR_MAX - 1) |
| 80 | 80 | }; |
| 81 | 81 | |
| 82 | /* | |
| 83 | * level of quality of a clock device. This mainly applies when the dpll | |
| 84 | * lock-status is DPLL_LOCK_STATUS_HOLDOVER. The current list is defined | |
| 85 | * according to the table 11-7 contained in ITU-T G.8264/Y.1364 document. One | |
| 86 | * may extend this list freely by other ITU-T defined clock qualities, or | |
| 87 | * different ones defined by another standardization body (for those, please | |
| 88 | * use different prefix). | |
| 89 | */ | |
| 90 | enum dpll_clock_quality_level { | |
| 91 | 	DPLL_CLOCK_QUALITY_LEVEL_ITU_OPT1_PRC = 1, | |
| 92 | 	DPLL_CLOCK_QUALITY_LEVEL_ITU_OPT1_SSU_A, | |
| 93 | 	DPLL_CLOCK_QUALITY_LEVEL_ITU_OPT1_SSU_B, | |
| 94 | 	DPLL_CLOCK_QUALITY_LEVEL_ITU_OPT1_EEC1, | |
| 95 | 	DPLL_CLOCK_QUALITY_LEVEL_ITU_OPT1_PRTC, | |
| 96 | 	DPLL_CLOCK_QUALITY_LEVEL_ITU_OPT1_EPRTC, | |
| 97 | 	DPLL_CLOCK_QUALITY_LEVEL_ITU_OPT1_EEEC, | |
| 98 | 	DPLL_CLOCK_QUALITY_LEVEL_ITU_OPT1_EPRC, | |
| 99 | ||
| 100 | 	/* private: */ | |
| 101 | 	__DPLL_CLOCK_QUALITY_LEVEL_MAX, | |
| 102 | 	DPLL_CLOCK_QUALITY_LEVEL_MAX = (__DPLL_CLOCK_QUALITY_LEVEL_MAX - 1) | |
| 103 | }; | |
| 104 | ||
| 82 | 105 | #define DPLL_TEMP_DIVIDER	1000 |
| 83 | 106 | |
| 84 | 107 | /** |
| ... | ... | @@ -180,6 +203,7 @@ enum dpll_a { |
| 180 | 203 | 	DPLL_A_TEMP, |
| 181 | 204 | 	DPLL_A_TYPE, |
| 182 | 205 | 	DPLL_A_LOCK_STATUS_ERROR, |
| 206 | 	DPLL_A_CLOCK_QUALITY_LEVEL, | |
| 183 | 207 | |
| 184 | 208 | 	__DPLL_A_MAX, |
| 185 | 209 | 	DPLL_A_MAX = (__DPLL_A_MAX - 1) |
| ... | ... | @@ -210,6 +234,9 @@ enum dpll_a_pin { |
| 210 | 234 | 	DPLL_A_PIN_PHASE_ADJUST, |
| 211 | 235 | 	DPLL_A_PIN_PHASE_OFFSET, |
| 212 | 236 | 	DPLL_A_PIN_FRACTIONAL_FREQUENCY_OFFSET, |
| 237 | 	DPLL_A_PIN_ESYNC_FREQUENCY, | |
| 238 | 	DPLL_A_PIN_ESYNC_FREQUENCY_SUPPORTED, | |
| 239 | 	DPLL_A_PIN_ESYNC_PULSE, | |
| 213 | 240 | |
| 214 | 241 | 	__DPLL_A_PIN_MAX, |
| 215 | 242 | 	DPLL_A_PIN_MAX = (__DPLL_A_PIN_MAX - 1) |
lib/libc/include/any-linux-any/linux/elf.h+4| ... | ... | @@ -411,6 +411,7 @@ typedef struct elf64_shdr { |
| 411 | 411 | #define NT_X86_XSTATE	0x202		/* x86 extended state using xsave */ |
| 412 | 412 | /* Old binutils treats 0x203 as a CET state */ |
| 413 | 413 | #define NT_X86_SHSTK	0x204		/* x86 SHSTK state */ |
| 414 | #define NT_X86_XSAVE_LAYOUT	0x205	/* XSAVE layout description */ | |
| 414 | 415 | #define NT_S390_HIGH_GPRS	0x300	/* s390 upper register halves */ |
| 415 | 416 | #define NT_S390_TIMER	0x301		/* s390 timer register */ |
| 416 | 417 | #define NT_S390_TODCMP	0x302		/* s390 TOD clock comparator register */ |
| ... | ... | @@ -441,6 +442,8 @@ typedef struct elf64_shdr { |
| 441 | 442 | #define NT_ARM_ZA	0x40c		/* ARM SME ZA registers */ |
| 442 | 443 | #define NT_ARM_ZT	0x40d		/* ARM SME ZT registers */ |
| 443 | 444 | #define NT_ARM_FPMR	0x40e		/* ARM floating point mode register */ |
| 445 | #define NT_ARM_POE	0x40f		/* ARM POE registers */ | |
| 446 | #define NT_ARM_GCS	0x410		/* ARM GCS state */ | |
| 444 | 447 | #define NT_ARC_V2	0x600		/* ARCv2 accumulator/extra registers */ |
| 445 | 448 | #define NT_VMCOREDD	0x700		/* Vmcore Device Dump Note */ |
| 446 | 449 | #define NT_MIPS_DSP	0x800		/* MIPS DSP ASE registers */ |
| ... | ... | @@ -448,6 +451,7 @@ typedef struct elf64_shdr { |
| 448 | 451 | #define NT_MIPS_MSA	0x802		/* MIPS SIMD registers */ |
| 449 | 452 | #define NT_RISCV_CSR	0x900		/* RISC-V Control and Status Registers */ |
| 450 | 453 | #define NT_RISCV_VECTOR	0x901		/* RISC-V vector registers */ |
| 454 | #define NT_RISCV_TAGGED_ADDR_CTRL 0x902	/* RISC-V tagged address control (prctl()) */ | |
| 451 | 455 | #define NT_LOONGARCH_CPUCFG	0xa00	/* LoongArch CPU config registers */ |
| 452 | 456 | #define NT_LOONGARCH_CSR	0xa01	/* LoongArch control and status registers */ |
| 453 | 457 | #define NT_LOONGARCH_LSX	0xa02	/* LoongArch Loongson SIMD Extension registers */ |
lib/libc/include/any-linux-any/linux/ethtool.h+231| ... | ... | @@ -750,6 +750,197 @@ enum ethtool_module_power_mode { |
| 750 | 750 | 	ETHTOOL_MODULE_POWER_MODE_HIGH, |
| 751 | 751 | }; |
| 752 | 752 | |
| 753 | /** | |
| 754 | * enum ethtool_c33_pse_ext_state - groups of PSE extended states | |
| 755 | * functions. IEEE 802.3-2022 33.2.4.4 Variables | |
| 756 | * | |
| 757 | * @ETHTOOL_C33_PSE_EXT_STATE_ERROR_CONDITION: Group of error_condition states | |
| 758 | * @ETHTOOL_C33_PSE_EXT_STATE_MR_MPS_VALID: Group of mr_mps_valid states | |
| 759 | * @ETHTOOL_C33_PSE_EXT_STATE_MR_PSE_ENABLE: Group of mr_pse_enable states | |
| 760 | * @ETHTOOL_C33_PSE_EXT_STATE_OPTION_DETECT_TED: Group of option_detect_ted | |
| 761 | *	states | |
| 762 | * @ETHTOOL_C33_PSE_EXT_STATE_OPTION_VPORT_LIM: Group of option_vport_lim states | |
| 763 | * @ETHTOOL_C33_PSE_EXT_STATE_OVLD_DETECTED: Group of ovld_detected states | |
| 764 | * @ETHTOOL_C33_PSE_EXT_STATE_PD_DLL_POWER_TYPE: Group of pd_dll_power_type | |
| 765 | *	states | |
| 766 | * @ETHTOOL_C33_PSE_EXT_STATE_POWER_NOT_AVAILABLE: Group of power_not_available | |
| 767 | *	states | |
| 768 | * @ETHTOOL_C33_PSE_EXT_STATE_SHORT_DETECTED: Group of short_detected states | |
| 769 | */ | |
| 770 | enum ethtool_c33_pse_ext_state { | |
| 771 | 	ETHTOOL_C33_PSE_EXT_STATE_ERROR_CONDITION = 1, | |
| 772 | 	ETHTOOL_C33_PSE_EXT_STATE_MR_MPS_VALID, | |
| 773 | 	ETHTOOL_C33_PSE_EXT_STATE_MR_PSE_ENABLE, | |
| 774 | 	ETHTOOL_C33_PSE_EXT_STATE_OPTION_DETECT_TED, | |
| 775 | 	ETHTOOL_C33_PSE_EXT_STATE_OPTION_VPORT_LIM, | |
| 776 | 	ETHTOOL_C33_PSE_EXT_STATE_OVLD_DETECTED, | |
| 777 | 	ETHTOOL_C33_PSE_EXT_STATE_PD_DLL_POWER_TYPE, | |
| 778 | 	ETHTOOL_C33_PSE_EXT_STATE_POWER_NOT_AVAILABLE, | |
| 779 | 	ETHTOOL_C33_PSE_EXT_STATE_SHORT_DETECTED, | |
| 780 | }; | |
| 781 | ||
| 782 | /** | |
| 783 | * enum ethtool_c33_pse_ext_substate_mr_mps_valid - mr_mps_valid states | |
| 784 | * functions. IEEE 802.3-2022 33.2.4.4 Variables | |
| 785 | * | |
| 786 | * @ETHTOOL_C33_PSE_EXT_SUBSTATE_MR_MPS_VALID_DETECTED_UNDERLOAD: Underload | |
| 787 | *	state | |
| 788 | * @ETHTOOL_C33_PSE_EXT_SUBSTATE_MR_MPS_VALID_CONNECTION_OPEN: Port is not | |
| 789 | *	connected | |
| 790 | * | |
| 791 | * The PSE monitors either the DC or AC Maintain Power Signature | |
| 792 | * (MPS, see 33.2.9.1). This variable indicates the presence or absence of | |
| 793 | * a valid MPS. | |
| 794 | */ | |
| 795 | enum ethtool_c33_pse_ext_substate_mr_mps_valid { | |
| 796 | 	ETHTOOL_C33_PSE_EXT_SUBSTATE_MR_MPS_VALID_DETECTED_UNDERLOAD = 1, | |
| 797 | 	ETHTOOL_C33_PSE_EXT_SUBSTATE_MR_MPS_VALID_CONNECTION_OPEN, | |
| 798 | }; | |
| 799 | ||
| 800 | /** | |
| 801 | * enum ethtool_c33_pse_ext_substate_error_condition - error_condition states | |
| 802 | * functions. IEEE 802.3-2022 33.2.4.4 Variables | |
| 803 | * | |
| 804 | * @ETHTOOL_C33_PSE_EXT_SUBSTATE_ERROR_CONDITION_NON_EXISTING_PORT: Non-existing | |
| 805 | *	port number | |
| 806 | * @ETHTOOL_C33_PSE_EXT_SUBSTATE_ERROR_CONDITION_UNDEFINED_PORT: Undefined port | |
| 807 | * @ETHTOOL_C33_PSE_EXT_SUBSTATE_ERROR_CONDITION_INTERNAL_HW_FAULT: Internal | |
| 808 | *	hardware fault | |
| 809 | * @ETHTOOL_C33_PSE_EXT_SUBSTATE_ERROR_CONDITION_COMM_ERROR_AFTER_FORCE_ON: | |
| 810 | *	Communication error after force on | |
| 811 | * @ETHTOOL_C33_PSE_EXT_SUBSTATE_ERROR_CONDITION_UNKNOWN_PORT_STATUS: Unknown | |
| 812 | *	port status | |
| 813 | * @ETHTOOL_C33_PSE_EXT_SUBSTATE_ERROR_CONDITION_HOST_CRASH_TURN_OFF: Host | |
| 814 | *	crash turn off | |
| 815 | * @ETHTOOL_C33_PSE_EXT_SUBSTATE_ERROR_CONDITION_HOST_CRASH_FORCE_SHUTDOWN: | |
| 816 | *	Host crash force shutdown | |
| 817 | * @ETHTOOL_C33_PSE_EXT_SUBSTATE_ERROR_CONDITION_CONFIG_CHANGE: Configuration | |
| 818 | *	change | |
| 819 | * @ETHTOOL_C33_PSE_EXT_SUBSTATE_ERROR_CONDITION_DETECTED_OVER_TEMP: Over | |
| 820 | *	temperature detected | |
| 821 | * | |
| 822 | * error_condition is a variable indicating the status of | |
| 823 | * implementation-specific fault conditions or optionally other system faults | |
| 824 | * that prevent the PSE from meeting the specifications in Table 33–11 and that | |
| 825 | * require the PSE not to source power. These error conditions are different | |
| 826 | * from those monitored by the state diagrams in Figure 33–10. | |
| 827 | */ | |
| 828 | enum ethtool_c33_pse_ext_substate_error_condition { | |
| 829 | 	ETHTOOL_C33_PSE_EXT_SUBSTATE_ERROR_CONDITION_NON_EXISTING_PORT = 1, | |
| 830 | 	ETHTOOL_C33_PSE_EXT_SUBSTATE_ERROR_CONDITION_UNDEFINED_PORT, | |
| 831 | 	ETHTOOL_C33_PSE_EXT_SUBSTATE_ERROR_CONDITION_INTERNAL_HW_FAULT, | |
| 832 | 	ETHTOOL_C33_PSE_EXT_SUBSTATE_ERROR_CONDITION_COMM_ERROR_AFTER_FORCE_ON, | |
| 833 | 	ETHTOOL_C33_PSE_EXT_SUBSTATE_ERROR_CONDITION_UNKNOWN_PORT_STATUS, | |
| 834 | 	ETHTOOL_C33_PSE_EXT_SUBSTATE_ERROR_CONDITION_HOST_CRASH_TURN_OFF, | |
| 835 | 	ETHTOOL_C33_PSE_EXT_SUBSTATE_ERROR_CONDITION_HOST_CRASH_FORCE_SHUTDOWN, | |
| 836 | 	ETHTOOL_C33_PSE_EXT_SUBSTATE_ERROR_CONDITION_CONFIG_CHANGE, | |
| 837 | 	ETHTOOL_C33_PSE_EXT_SUBSTATE_ERROR_CONDITION_DETECTED_OVER_TEMP, | |
| 838 | }; | |
| 839 | ||
| 840 | /** | |
| 841 | * enum ethtool_c33_pse_ext_substate_mr_pse_enable - mr_pse_enable states | |
| 842 | * functions. IEEE 802.3-2022 33.2.4.4 Variables | |
| 843 | * | |
| 844 | * @ETHTOOL_C33_PSE_EXT_SUBSTATE_MR_PSE_ENABLE_DISABLE_PIN_ACTIVE: Disable | |
| 845 | *	pin active | |
| 846 | * | |
| 847 | * mr_pse_enable is control variable that selects PSE operation and test | |
| 848 | * functions. | |
| 849 | */ | |
| 850 | enum ethtool_c33_pse_ext_substate_mr_pse_enable { | |
| 851 | 	ETHTOOL_C33_PSE_EXT_SUBSTATE_MR_PSE_ENABLE_DISABLE_PIN_ACTIVE = 1, | |
| 852 | }; | |
| 853 | ||
| 854 | /** | |
| 855 | * enum ethtool_c33_pse_ext_substate_option_detect_ted - option_detect_ted | |
| 856 | *	states functions. IEEE 802.3-2022 33.2.4.4 Variables | |
| 857 | * | |
| 858 | * @ETHTOOL_C33_PSE_EXT_SUBSTATE_OPTION_DETECT_TED_DET_IN_PROCESS: Detection | |
| 859 | *	in process | |
| 860 | * @ETHTOOL_C33_PSE_EXT_SUBSTATE_OPTION_DETECT_TED_CONNECTION_CHECK_ERROR: | |
| 861 | *	Connection check error | |
| 862 | * | |
| 863 | * option_detect_ted is a variable indicating if detection can be performed | |
| 864 | * by the PSE during the ted_timer interval. | |
| 865 | */ | |
| 866 | enum ethtool_c33_pse_ext_substate_option_detect_ted { | |
| 867 | 	ETHTOOL_C33_PSE_EXT_SUBSTATE_OPTION_DETECT_TED_DET_IN_PROCESS = 1, | |
| 868 | 	ETHTOOL_C33_PSE_EXT_SUBSTATE_OPTION_DETECT_TED_CONNECTION_CHECK_ERROR, | |
| 869 | }; | |
| 870 | ||
| 871 | /** | |
| 872 | * enum ethtool_c33_pse_ext_substate_option_vport_lim - option_vport_lim states | |
| 873 | * functions. IEEE 802.3-2022 33.2.4.4 Variables | |
| 874 | * | |
| 875 | * @ETHTOOL_C33_PSE_EXT_SUBSTATE_OPTION_VPORT_LIM_HIGH_VOLTAGE: Main supply | |
| 876 | *	voltage is high | |
| 877 | * @ETHTOOL_C33_PSE_EXT_SUBSTATE_OPTION_VPORT_LIM_LOW_VOLTAGE: Main supply | |
| 878 | *	voltage is low | |
| 879 | * @ETHTOOL_C33_PSE_EXT_SUBSTATE_OPTION_VPORT_LIM_VOLTAGE_INJECTION: Voltage | |
| 880 | *	injection into the port | |
| 881 | * | |
| 882 | * option_vport_lim is an optional variable indicates if VPSE is out of the | |
| 883 | * operating range during normal operating state. | |
| 884 | */ | |
| 885 | enum ethtool_c33_pse_ext_substate_option_vport_lim { | |
| 886 | 	ETHTOOL_C33_PSE_EXT_SUBSTATE_OPTION_VPORT_LIM_HIGH_VOLTAGE = 1, | |
| 887 | 	ETHTOOL_C33_PSE_EXT_SUBSTATE_OPTION_VPORT_LIM_LOW_VOLTAGE, | |
| 888 | 	ETHTOOL_C33_PSE_EXT_SUBSTATE_OPTION_VPORT_LIM_VOLTAGE_INJECTION, | |
| 889 | }; | |
| 890 | ||
| 891 | /** | |
| 892 | * enum ethtool_c33_pse_ext_substate_ovld_detected - ovld_detected states | |
| 893 | * functions. IEEE 802.3-2022 33.2.4.4 Variables | |
| 894 | * | |
| 895 | * @ETHTOOL_C33_PSE_EXT_SUBSTATE_OVLD_DETECTED_OVERLOAD: Overload state | |
| 896 | * | |
| 897 | * ovld_detected is a variable indicating if the PSE output current has been | |
| 898 | * in an overload condition (see 33.2.7.6) for at least TCUT of a one-second | |
| 899 | * sliding time. | |
| 900 | */ | |
| 901 | enum ethtool_c33_pse_ext_substate_ovld_detected { | |
| 902 | 	ETHTOOL_C33_PSE_EXT_SUBSTATE_OVLD_DETECTED_OVERLOAD = 1, | |
| 903 | }; | |
| 904 | ||
| 905 | /** | |
| 906 | * enum ethtool_c33_pse_ext_substate_power_not_available - power_not_available | |
| 907 | *	states functions. IEEE 802.3-2022 33.2.4.4 Variables | |
| 908 | * | |
| 909 | * @ETHTOOL_C33_PSE_EXT_SUBSTATE_POWER_NOT_AVAILABLE_BUDGET_EXCEEDED: Power | |
| 910 | *	budget exceeded for the controller | |
| 911 | * @ETHTOOL_C33_PSE_EXT_SUBSTATE_POWER_NOT_AVAILABLE_PORT_PW_LIMIT_EXCEEDS_CONTROLLER_BUDGET: | |
| 912 | *	Configured port power limit exceeded controller power budget | |
| 913 | * @ETHTOOL_C33_PSE_EXT_SUBSTATE_POWER_NOT_AVAILABLE_PD_REQUEST_EXCEEDS_PORT_LIMIT: | |
| 914 | *	Power request from PD exceeds port limit | |
| 915 | * @ETHTOOL_C33_PSE_EXT_SUBSTATE_POWER_NOT_AVAILABLE_HW_PW_LIMIT: Power | |
| 916 | *	denied due to Hardware power limit | |
| 917 | * | |
| 918 | * power_not_available is a variable that is asserted in an | |
| 919 | * implementation-dependent manner when the PSE is no longer capable of | |
| 920 | * sourcing sufficient power to support the attached PD. Sufficient power | |
| 921 | * is defined by classification; see 33.2.6. | |
| 922 | */ | |
| 923 | enum ethtool_c33_pse_ext_substate_power_not_available { | |
| 924 | 	ETHTOOL_C33_PSE_EXT_SUBSTATE_POWER_NOT_AVAILABLE_BUDGET_EXCEEDED = 1, | |
| 925 | 	ETHTOOL_C33_PSE_EXT_SUBSTATE_POWER_NOT_AVAILABLE_PORT_PW_LIMIT_EXCEEDS_CONTROLLER_BUDGET, | |
| 926 | 	ETHTOOL_C33_PSE_EXT_SUBSTATE_POWER_NOT_AVAILABLE_PD_REQUEST_EXCEEDS_PORT_LIMIT, | |
| 927 | 	ETHTOOL_C33_PSE_EXT_SUBSTATE_POWER_NOT_AVAILABLE_HW_PW_LIMIT, | |
| 928 | }; | |
| 929 | ||
| 930 | /** | |
| 931 | * enum ethtool_c33_pse_ext_substate_short_detected - short_detected states | |
| 932 | * functions. IEEE 802.3-2022 33.2.4.4 Variables | |
| 933 | * | |
| 934 | * @ETHTOOL_C33_PSE_EXT_SUBSTATE_SHORT_DETECTED_SHORT_CONDITION: Short | |
| 935 | *	condition was detected | |
| 936 | * | |
| 937 | * short_detected is a variable indicating if the PSE output current has been | |
| 938 | * in a short circuit condition for TLIM within a sliding window (see 33.2.7.7). | |
| 939 | */ | |
| 940 | enum ethtool_c33_pse_ext_substate_short_detected { | |
| 941 | 	ETHTOOL_C33_PSE_EXT_SUBSTATE_SHORT_DETECTED_SHORT_CONDITION = 1, | |
| 942 | }; | |
| 943 | ||
| 753 | 944 | /** |
| 754 | 945 | * enum ethtool_pse_types - Types of PSE controller. |
| 755 | 946 | * @ETHTOOL_PSE_UNKNOWN: Type of PSE controller is unknown |
| ... | ... | @@ -875,6 +1066,24 @@ enum ethtool_mm_verify_status { |
| 875 | 1066 | 	ETHTOOL_MM_VERIFY_STATUS_DISABLED, |
| 876 | 1067 | }; |
| 877 | 1068 | |
| 1069 | /** | |
| 1070 | * enum ethtool_module_fw_flash_status - plug-in module firmware flashing status | |
| 1071 | * @ETHTOOL_MODULE_FW_FLASH_STATUS_STARTED: The firmware flashing process has | |
| 1072 | *	started. | |
| 1073 | * @ETHTOOL_MODULE_FW_FLASH_STATUS_IN_PROGRESS: The firmware flashing process | |
| 1074 | *	is in progress. | |
| 1075 | * @ETHTOOL_MODULE_FW_FLASH_STATUS_COMPLETED: The firmware flashing process was | |
| 1076 | *	completed successfully. | |
| 1077 | * @ETHTOOL_MODULE_FW_FLASH_STATUS_ERROR: The firmware flashing process was | |
| 1078 | *	stopped due to an error. | |
| 1079 | */ | |
| 1080 | enum ethtool_module_fw_flash_status { | |
| 1081 | 	ETHTOOL_MODULE_FW_FLASH_STATUS_STARTED = 1, | |
| 1082 | 	ETHTOOL_MODULE_FW_FLASH_STATUS_IN_PROGRESS, | |
| 1083 | 	ETHTOOL_MODULE_FW_FLASH_STATUS_COMPLETED, | |
| 1084 | 	ETHTOOL_MODULE_FW_FLASH_STATUS_ERROR, | |
| 1085 | }; | |
| 1086 | ||
| 878 | 1087 | /** |
| 879 | 1088 | * struct ethtool_gstrings - string set for data tagging |
| 880 | 1089 | * @cmd: Command number = %ETHTOOL_GSTRINGS |
| ... | ... | @@ -1843,6 +2052,7 @@ enum ethtool_link_mode_bit_indices { |
| 1843 | 2052 | 	ETHTOOL_LINK_MODE_10baseT1S_Full_BIT		 = 99, |
| 1844 | 2053 | 	ETHTOOL_LINK_MODE_10baseT1S_Half_BIT		 = 100, |
| 1845 | 2054 | 	ETHTOOL_LINK_MODE_10baseT1S_P2MP_Half_BIT	 = 101, |
| 2055 | 	ETHTOOL_LINK_MODE_10baseT1BRR_Full_BIT		 = 102, | |
| 1846 | 2056 | |
| 1847 | 2057 | 	/* must be last entry */ |
| 1848 | 2058 | 	__ETHTOOL_LINK_MODE_MASK_NBITS |
| ... | ... | @@ -2314,6 +2524,11 @@ struct ethtool_link_settings { |
| 2314 | 2524 | 	__u8	master_slave_state; |
| 2315 | 2525 | 	__u8	rate_matching; |
| 2316 | 2526 | 	__u32	reserved[7]; |
| 2527 | 	/* Linux builds with -Wflex-array-member-not-at-end but does | |
| 2528 | 	 * not use the "link_mode_masks" member. Leave it defined for | |
| 2529 | 	 * userspace for now, and when userspace wants to start using | |
| 2530 | 	 * -Wfamnae, we'll need a new solution. | |
| 2531 | 	 */ | |
| 2317 | 2532 | 	__u32	link_mode_masks[]; |
| 2318 | 2533 | 	/* layout of link_mode_masks fields: |
| 2319 | 2534 | 	 * __u32 map_supported[link_mode_masks_nwords]; |
| ... | ... | @@ -2321,4 +2536,20 @@ struct ethtool_link_settings { |
| 2321 | 2536 | 	 * __u32 map_lp_advertising[link_mode_masks_nwords]; |
| 2322 | 2537 | 	 */ |
| 2323 | 2538 | }; |
| 2539 | ||
| 2540 | /** | |
| 2541 | * enum phy_upstream - Represents the upstream component a given PHY device | |
| 2542 | * is connected to, as in what is on the other end of the MII bus. Most PHYs | |
| 2543 | * will be attached to an Ethernet MAC controller, but in some cases, there's | |
| 2544 | * an intermediate PHY used as a media-converter, which will driver another | |
| 2545 | * MII interface as its output. | |
| 2546 | * @PHY_UPSTREAM_MAC: Upstream component is a MAC (a switch port, | |
| 2547 | *		 or ethernet controller) | |
| 2548 | * @PHY_UPSTREAM_PHY: Upstream component is a PHY (likely a media converter) | |
| 2549 | */ | |
| 2550 | enum phy_upstream { | |
| 2551 | 	PHY_UPSTREAM_MAC, | |
| 2552 | 	PHY_UPSTREAM_PHY, | |
| 2553 | }; | |
| 2554 | ||
| 2324 | 2555 | #endif /* _LINUX_ETHTOOL_H */ |
| \ No newline at end of file |
lib/libc/include/any-linux-any/linux/ethtool_netlink.h+89| ... | ... | @@ -57,6 +57,8 @@ enum { |
| 57 | 57 | 	ETHTOOL_MSG_PLCA_GET_STATUS, |
| 58 | 58 | 	ETHTOOL_MSG_MM_GET, |
| 59 | 59 | 	ETHTOOL_MSG_MM_SET, |
| 60 | 	ETHTOOL_MSG_MODULE_FW_FLASH_ACT, | |
| 61 | 	ETHTOOL_MSG_PHY_GET, | |
| 60 | 62 | |
| 61 | 63 | 	/* add new constants above here */ |
| 62 | 64 | 	__ETHTOOL_MSG_USER_CNT, |
| ... | ... | @@ -109,6 +111,9 @@ enum { |
| 109 | 111 | 	ETHTOOL_MSG_PLCA_NTF, |
| 110 | 112 | 	ETHTOOL_MSG_MM_GET_REPLY, |
| 111 | 113 | 	ETHTOOL_MSG_MM_NTF, |
| 114 | 	ETHTOOL_MSG_MODULE_FW_FLASH_NTF, | |
| 115 | 	ETHTOOL_MSG_PHY_GET_REPLY, | |
| 116 | 	ETHTOOL_MSG_PHY_NTF, | |
| 112 | 117 | |
| 113 | 118 | 	/* add new constants above here */ |
| 114 | 119 | 	__ETHTOOL_MSG_KERNEL_CNT, |
| ... | ... | @@ -132,6 +137,7 @@ enum { |
| 132 | 137 | 	ETHTOOL_A_HEADER_DEV_INDEX,		/* u32 */ |
| 133 | 138 | 	ETHTOOL_A_HEADER_DEV_NAME,		/* string */ |
| 134 | 139 | 	ETHTOOL_A_HEADER_FLAGS,			/* u32 - ETHTOOL_FLAG_* */ |
| 140 | 	ETHTOOL_A_HEADER_PHY_INDEX,		/* u32 */ | |
| 135 | 141 | |
| 136 | 142 | 	/* add new constants above here */ |
| 137 | 143 | 	__ETHTOOL_A_HEADER_CNT, |
| ... | ... | @@ -415,12 +421,34 @@ enum { |
| 415 | 421 | 	ETHTOOL_A_COALESCE_TX_AGGR_MAX_BYTES,		/* u32 */ |
| 416 | 422 | 	ETHTOOL_A_COALESCE_TX_AGGR_MAX_FRAMES,		/* u32 */ |
| 417 | 423 | 	ETHTOOL_A_COALESCE_TX_AGGR_TIME_USECS,		/* u32 */ |
| 424 | 	/* nest - _A_PROFILE_IRQ_MODERATION */ | |
| 425 | 	ETHTOOL_A_COALESCE_RX_PROFILE, | |
| 426 | 	/* nest - _A_PROFILE_IRQ_MODERATION */ | |
| 427 | 	ETHTOOL_A_COALESCE_TX_PROFILE, | |
| 418 | 428 | |
| 419 | 429 | 	/* add new constants above here */ |
| 420 | 430 | 	__ETHTOOL_A_COALESCE_CNT, |
| 421 | 431 | 	ETHTOOL_A_COALESCE_MAX = (__ETHTOOL_A_COALESCE_CNT - 1) |
| 422 | 432 | }; |
| 423 | 433 | |
| 434 | enum { | |
| 435 | 	ETHTOOL_A_PROFILE_UNSPEC, | |
| 436 | 	/* nest, _A_IRQ_MODERATION_* */ | |
| 437 | 	ETHTOOL_A_PROFILE_IRQ_MODERATION, | |
| 438 | 	__ETHTOOL_A_PROFILE_CNT, | |
| 439 | 	ETHTOOL_A_PROFILE_MAX = (__ETHTOOL_A_PROFILE_CNT - 1) | |
| 440 | }; | |
| 441 | ||
| 442 | enum { | |
| 443 | 	ETHTOOL_A_IRQ_MODERATION_UNSPEC, | |
| 444 | 	ETHTOOL_A_IRQ_MODERATION_USEC,			/* u32 */ | |
| 445 | 	ETHTOOL_A_IRQ_MODERATION_PKTS,			/* u32 */ | |
| 446 | 	ETHTOOL_A_IRQ_MODERATION_COMPS,			/* u32 */ | |
| 447 | ||
| 448 | 	__ETHTOOL_A_IRQ_MODERATION_CNT, | |
| 449 | 	ETHTOOL_A_IRQ_MODERATION_MAX = (__ETHTOOL_A_IRQ_MODERATION_CNT - 1) | |
| 450 | }; | |
| 451 | ||
| 424 | 452 | /* PAUSE */ |
| 425 | 453 | |
| 426 | 454 | enum { |
| ... | ... | @@ -532,6 +560,10 @@ enum { |
| 532 | 560 | 	 * a regular 100 Ohm cable and a part with the abnormal impedance value |
| 533 | 561 | 	 */ |
| 534 | 562 | 	ETHTOOL_A_CABLE_RESULT_CODE_IMPEDANCE_MISMATCH, |
| 563 | 	/* TDR not possible due to high noise level */ | |
| 564 | 	ETHTOOL_A_CABLE_RESULT_CODE_NOISE, | |
| 565 | 	/* TDR resolution not possible / out of distance */ | |
| 566 | 	ETHTOOL_A_CABLE_RESULT_CODE_RESOLUTION_NOT_POSSIBLE, | |
| 535 | 567 | }; |
| 536 | 568 | |
| 537 | 569 | enum { |
| ... | ... | @@ -541,10 +573,20 @@ enum { |
| 541 | 573 | 	ETHTOOL_A_CABLE_PAIR_D, |
| 542 | 574 | }; |
| 543 | 575 | |
| 576 | /* Information source for specific results. */ | |
| 577 | enum { | |
| 578 | 	ETHTOOL_A_CABLE_INF_SRC_UNSPEC, | |
| 579 | 	/* Results provided by the Time Domain Reflectometry (TDR) */ | |
| 580 | 	ETHTOOL_A_CABLE_INF_SRC_TDR, | |
| 581 | 	/* Results provided by the Active Link Cable Diagnostic (ALCD) */ | |
| 582 | 	ETHTOOL_A_CABLE_INF_SRC_ALCD, | |
| 583 | }; | |
| 584 | ||
| 544 | 585 | enum { |
| 545 | 586 | 	ETHTOOL_A_CABLE_RESULT_UNSPEC, |
| 546 | 587 | 	ETHTOOL_A_CABLE_RESULT_PAIR,		/* u8 ETHTOOL_A_CABLE_PAIR_ */ |
| 547 | 588 | 	ETHTOOL_A_CABLE_RESULT_CODE,		/* u8 ETHTOOL_A_CABLE_RESULT_CODE_ */ |
| 589 | 	ETHTOOL_A_CABLE_RESULT_SRC,		/* u32 ETHTOOL_A_CABLE_INF_SRC_ */ | |
| 548 | 590 | |
| 549 | 591 | 	__ETHTOOL_A_CABLE_RESULT_CNT, |
| 550 | 592 | 	ETHTOOL_A_CABLE_RESULT_MAX = (__ETHTOOL_A_CABLE_RESULT_CNT - 1) |
| ... | ... | @@ -554,6 +596,7 @@ enum { |
| 554 | 596 | 	ETHTOOL_A_CABLE_FAULT_LENGTH_UNSPEC, |
| 555 | 597 | 	ETHTOOL_A_CABLE_FAULT_LENGTH_PAIR,	/* u8 ETHTOOL_A_CABLE_PAIR_ */ |
| 556 | 598 | 	ETHTOOL_A_CABLE_FAULT_LENGTH_CM,	/* u32 */ |
| 599 | 	ETHTOOL_A_CABLE_FAULT_LENGTH_SRC,	/* u32 ETHTOOL_A_CABLE_INF_SRC_ */ | |
| 557 | 600 | |
| 558 | 601 | 	__ETHTOOL_A_CABLE_FAULT_LENGTH_CNT, |
| 559 | 602 | 	ETHTOOL_A_CABLE_FAULT_LENGTH_MAX = (__ETHTOOL_A_CABLE_FAULT_LENGTH_CNT - 1) |
| ... | ... | @@ -906,6 +949,12 @@ enum { |
| 906 | 949 | }; |
| 907 | 950 | |
| 908 | 951 | /* Power Sourcing Equipment */ |
| 952 | enum { | |
| 953 | 	ETHTOOL_A_C33_PSE_PW_LIMIT_UNSPEC, | |
| 954 | 	ETHTOOL_A_C33_PSE_PW_LIMIT_MIN,	/* u32 */ | |
| 955 | 	ETHTOOL_A_C33_PSE_PW_LIMIT_MAX,	/* u32 */ | |
| 956 | }; | |
| 957 | ||
| 909 | 958 | enum { |
| 910 | 959 | 	ETHTOOL_A_PSE_UNSPEC, |
| 911 | 960 | 	ETHTOOL_A_PSE_HEADER,			/* nest - _A_HEADER_* */ |
| ... | ... | @@ -915,6 +964,12 @@ enum { |
| 915 | 964 | 	ETHTOOL_A_C33_PSE_ADMIN_STATE,		/* u32 */ |
| 916 | 965 | 	ETHTOOL_A_C33_PSE_ADMIN_CONTROL,	/* u32 */ |
| 917 | 966 | 	ETHTOOL_A_C33_PSE_PW_D_STATUS,		/* u32 */ |
| 967 | 	ETHTOOL_A_C33_PSE_PW_CLASS,		/* u32 */ | |
| 968 | 	ETHTOOL_A_C33_PSE_ACTUAL_PW,		/* u32 */ | |
| 969 | 	ETHTOOL_A_C33_PSE_EXT_STATE,		/* u32 */ | |
| 970 | 	ETHTOOL_A_C33_PSE_EXT_SUBSTATE,		/* u32 */ | |
| 971 | 	ETHTOOL_A_C33_PSE_AVAIL_PW_LIMIT,	/* u32 */ | |
| 972 | 	ETHTOOL_A_C33_PSE_PW_LIMIT_RANGES,	/* nest - _C33_PSE_PW_LIMIT_* */ | |
| 918 | 973 | |
| 919 | 974 | 	/* add new constants above here */ |
| 920 | 975 | 	__ETHTOOL_A_PSE_CNT, |
| ... | ... | @@ -929,6 +984,7 @@ enum { |
| 929 | 984 | 	ETHTOOL_A_RSS_INDIR,		/* binary */ |
| 930 | 985 | 	ETHTOOL_A_RSS_HKEY,		/* binary */ |
| 931 | 986 | 	ETHTOOL_A_RSS_INPUT_XFRM,	/* u32 */ |
| 987 | 	ETHTOOL_A_RSS_START_CONTEXT,	/* u32 */ | |
| 932 | 988 | |
| 933 | 989 | 	__ETHTOOL_A_RSS_CNT, |
| 934 | 990 | 	ETHTOOL_A_RSS_MAX = (__ETHTOOL_A_RSS_CNT - 1), |
| ... | ... | @@ -996,6 +1052,39 @@ enum { |
| 996 | 1052 | 	ETHTOOL_A_MM_MAX = (__ETHTOOL_A_MM_CNT - 1) |
| 997 | 1053 | }; |
| 998 | 1054 | |
| 1055 | /* MODULE_FW_FLASH */ | |
| 1056 | ||
| 1057 | enum { | |
| 1058 | 	ETHTOOL_A_MODULE_FW_FLASH_UNSPEC, | |
| 1059 | 	ETHTOOL_A_MODULE_FW_FLASH_HEADER,		/* nest - _A_HEADER_* */ | |
| 1060 | 	ETHTOOL_A_MODULE_FW_FLASH_FILE_NAME,		/* string */ | |
| 1061 | 	ETHTOOL_A_MODULE_FW_FLASH_PASSWORD,		/* u32 */ | |
| 1062 | 	ETHTOOL_A_MODULE_FW_FLASH_STATUS,		/* u32 */ | |
| 1063 | 	ETHTOOL_A_MODULE_FW_FLASH_STATUS_MSG,		/* string */ | |
| 1064 | 	ETHTOOL_A_MODULE_FW_FLASH_DONE,			/* uint */ | |
| 1065 | 	ETHTOOL_A_MODULE_FW_FLASH_TOTAL,		/* uint */ | |
| 1066 | ||
| 1067 | 	/* add new constants above here */ | |
| 1068 | 	__ETHTOOL_A_MODULE_FW_FLASH_CNT, | |
| 1069 | 	ETHTOOL_A_MODULE_FW_FLASH_MAX = (__ETHTOOL_A_MODULE_FW_FLASH_CNT - 1) | |
| 1070 | }; | |
| 1071 | ||
| 1072 | enum { | |
| 1073 | 	ETHTOOL_A_PHY_UNSPEC, | |
| 1074 | 	ETHTOOL_A_PHY_HEADER,			/* nest - _A_HEADER_* */ | |
| 1075 | 	ETHTOOL_A_PHY_INDEX,			/* u32 */ | |
| 1076 | 	ETHTOOL_A_PHY_DRVNAME,			/* string */ | |
| 1077 | 	ETHTOOL_A_PHY_NAME,			/* string */ | |
| 1078 | 	ETHTOOL_A_PHY_UPSTREAM_TYPE,		/* u32 */ | |
| 1079 | 	ETHTOOL_A_PHY_UPSTREAM_INDEX,		/* u32 */ | |
| 1080 | 	ETHTOOL_A_PHY_UPSTREAM_SFP_NAME,	/* string */ | |
| 1081 | 	ETHTOOL_A_PHY_DOWNSTREAM_SFP_NAME,	/* string */ | |
| 1082 | ||
| 1083 | 	/* add new constants above here */ | |
| 1084 | 	__ETHTOOL_A_PHY_CNT, | |
| 1085 | 	ETHTOOL_A_PHY_MAX = (__ETHTOOL_A_PHY_CNT - 1) | |
| 1086 | }; | |
| 1087 | ||
| 999 | 1088 | /* generic netlink info */ |
| 1000 | 1089 | #define ETHTOOL_GENL_NAME "ethtool" |
| 1001 | 1090 | #define ETHTOOL_GENL_VERSION 1 |
lib/libc/include/any-linux-any/linux/exfat.h created+25| ... | ... | @@ -0,0 +1,25 @@ |
| 1 | /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ | |
| 2 | /* | |
| 3 | * Copyright (C) 2024 Unisoc Technologies Co., Ltd. | |
| 4 | */ | |
| 5 | ||
| 6 | #ifndef _LINUX_EXFAT_H | |
| 7 | #define _LINUX_EXFAT_H | |
| 8 | #include <linux/types.h> | |
| 9 | #include <linux/ioctl.h> | |
| 10 | ||
| 11 | /* | |
| 12 | * exfat-specific ioctl commands | |
| 13 | */ | |
| 14 | ||
| 15 | #define EXFAT_IOC_SHUTDOWN _IOR('X', 125, __u32) | |
| 16 | ||
| 17 | /* | |
| 18 | * Flags used by EXFAT_IOC_SHUTDOWN | |
| 19 | */ | |
| 20 | ||
| 21 | #define EXFAT_GOING_DOWN_DEFAULT	0x0	/* default with full sync */ | |
| 22 | #define EXFAT_GOING_DOWN_FULLSYNC	0x1 /* going down with full sync*/ | |
| 23 | #define EXFAT_GOING_DOWN_NOSYNC 0x2 /* going down */ | |
| 24 | ||
| 25 | #endif /* _LINUX_EXFAT_H */ | |
| \ No newline at end of file |
lib/libc/include/any-linux-any/linux/f2fs.h+1| ... | ... | @@ -43,6 +43,7 @@ |
| 43 | 43 | #define F2FS_IOC_DECOMPRESS_FILE	_IO(F2FS_IOCTL_MAGIC, 23) |
| 44 | 44 | #define F2FS_IOC_COMPRESS_FILE		_IO(F2FS_IOCTL_MAGIC, 24) |
| 45 | 45 | #define F2FS_IOC_START_ATOMIC_REPLACE	_IO(F2FS_IOCTL_MAGIC, 25) |
| 46 | #define F2FS_IOC_GET_DEV_ALIAS_FILE	_IOR(F2FS_IOCTL_MAGIC, 26, __u32) | |
| 46 | 47 | |
| 47 | 48 | /* |
| 48 | 49 | * should be same as XFS_IOC_GOINGDOWN. |
lib/libc/include/any-linux-any/linux/falloc.h+1| ... | ... | @@ -2,6 +2,7 @@ |
| 2 | 2 | #ifndef _FALLOC_H_ |
| 3 | 3 | #define _FALLOC_H_ |
| 4 | 4 | |
| 5 | #define FALLOC_FL_ALLOCATE_RANGE 0x00 /* allocate range */ | |
| 5 | 6 | #define FALLOC_FL_KEEP_SIZE	0x01 /* default is extend size */ |
| 6 | 7 | #define FALLOC_FL_PUNCH_HOLE	0x02 /* de-allocates range */ |
| 7 | 8 | #define FALLOC_FL_NO_HIDE_STALE	0x04 /* reserved codepoint */ |
lib/libc/include/any-linux-any/linux/fanotify.h+1| ... | ... | @@ -60,6 +60,7 @@ |
| 60 | 60 | #define FAN_REPORT_DIR_FID	0x00000400	/* Report unique directory id */ |
| 61 | 61 | #define FAN_REPORT_NAME		0x00000800	/* Report events with name */ |
| 62 | 62 | #define FAN_REPORT_TARGET_FID	0x00001000	/* Report dirent target id */ |
| 63 | #define FAN_REPORT_FD_ERROR	0x00002000	/* event->fd can report error */ | |
| 63 | 64 | |
| 64 | 65 | /* Convenience macro - FAN_REPORT_NAME requires FAN_REPORT_DIR_FID */ |
| 65 | 66 | #define FAN_REPORT_DFID_NAME	(FAN_REPORT_DIR_FID | FAN_REPORT_NAME) |
lib/libc/include/any-linux-any/linux/fcntl.h+61-25| ... | ... | @@ -16,6 +16,9 @@ |
| 16 | 16 | |
| 17 | 17 | #define F_DUPFD_QUERY	(F_LINUX_SPECIFIC_BASE + 3) |
| 18 | 18 | |
| 19 | /* Was the file just created? */ | |
| 20 | #define F_CREATED_QUERY	(F_LINUX_SPECIFIC_BASE + 4) | |
| 21 | ||
| 19 | 22 | /* |
| 20 | 23 | * Cancel a blocking posix lock; internal use only until we expose an |
| 21 | 24 | * asynchronous lock api to userspace: |
| ... | ... | @@ -87,36 +90,69 @@ |
| 87 | 90 | #define DN_ATTRIB	0x00000020	/* File changed attibutes */ |
| 88 | 91 | #define DN_MULTISHOT	0x80000000	/* Don't remove notifier */ |
| 89 | 92 | |
| 93 | #define AT_FDCWD		-100 /* Special value for dirfd used to | |
| 94 | 					 indicate openat should use the | |
| 95 | 					 current working directory. */ | |
| 96 | ||
| 97 | ||
| 98 | /* Generic flags for the *at(2) family of syscalls. */ | |
| 99 | ||
| 100 | /* Reserved for per-syscall flags	0xff. */ | |
| 101 | #define AT_SYMLINK_NOFOLLOW		0x100 /* Do not follow symbolic | |
| 102 | 						 links. */ | |
| 103 | /* Reserved for per-syscall flags	0x200 */ | |
| 104 | #define AT_SYMLINK_FOLLOW		0x400 /* Follow symbolic links. */ | |
| 105 | #define AT_NO_AUTOMOUNT			0x800	/* Suppress terminal automount | |
| 106 | 						 traversal. */ | |
| 107 | #define AT_EMPTY_PATH			0x1000	/* Allow empty relative | |
| 108 | 						 pathname to operate on dirfd | |
| 109 | 						 directly. */ | |
| 90 | 110 | /* |
| 91 | * The constants AT_REMOVEDIR and AT_EACCESS have the same value. AT_EACCESS is | |
| 92 | * meaningful only to faccessat, while AT_REMOVEDIR is meaningful only to | |
| 93 | * unlinkat. The two functions do completely different things and therefore, | |
| 94 | * the flags can be allowed to overlap. For example, passing AT_REMOVEDIR to | |
| 95 | * faccessat would be undefined behavior and thus treating it equivalent to | |
| 96 | * AT_EACCESS is valid undefined behavior. | |
| 111 | * These flags are currently statx(2)-specific, but they could be made generic | |
| 112 | * in the future and so they should not be used for other per-syscall flags. | |
| 97 | 113 | */ |
| 98 | #define AT_FDCWD		-100 /* Special value used to indicate | |
| 99 | openat should use the current | |
| 100 | working directory. */ | |
| 101 | #define AT_SYMLINK_NOFOLLOW	0x100 /* Do not follow symbolic links. */ | |
| 114 | #define AT_STATX_SYNC_TYPE		0x6000	/* Type of synchronisation required from statx() */ | |
| 115 | #define AT_STATX_SYNC_AS_STAT		0x0000	/* - Do whatever stat() does */ | |
| 116 | #define AT_STATX_FORCE_SYNC		0x2000	/* - Force the attributes to be sync'd with the server */ | |
| 117 | #define AT_STATX_DONT_SYNC		0x4000	/* - Don't sync attributes with the server */ | |
| 118 | ||
| 119 | #define AT_RECURSIVE			0x8000	/* Apply to the entire subtree */ | |
| 120 | ||
| 121 | /* | |
| 122 | * Per-syscall flags for the *at(2) family of syscalls. | |
| 123 | * | |
| 124 | * These are flags that are so syscall-specific that a user passing these flags | |
| 125 | * to the wrong syscall is so "clearly wrong" that we can safely call such | |
| 126 | * usage "undefined behaviour". | |
| 127 | * | |
| 128 | * For example, the constants AT_REMOVEDIR and AT_EACCESS have the same value. | |
| 129 | * AT_EACCESS is meaningful only to faccessat, while AT_REMOVEDIR is meaningful | |
| 130 | * only to unlinkat. The two functions do completely different things and | |
| 131 | * therefore, the flags can be allowed to overlap. For example, passing | |
| 132 | * AT_REMOVEDIR to faccessat would be undefined behavior and thus treating it | |
| 133 | * equivalent to AT_EACCESS is valid undefined behavior. | |
| 134 | * | |
| 135 | * Note for implementers: When picking a new per-syscall AT_* flag, try to | |
| 136 | * reuse already existing flags first. This leaves us with as many unused bits | |
| 137 | * as possible, so we can use them for generic bits in the future if necessary. | |
| 138 | */ | |
| 139 | ||
| 140 | /* Flags for renameat2(2) (must match legacy RENAME_* flags). */ | |
| 141 | #define AT_RENAME_NOREPLACE	0x0001 | |
| 142 | #define AT_RENAME_EXCHANGE	0x0002 | |
| 143 | #define AT_RENAME_WHITEOUT	0x0004 | |
| 144 | ||
| 145 | /* Flag for faccessat(2). */ | |
| 102 | 146 | #define AT_EACCESS		0x200	/* Test access permitted for |
| 103 | 147 | effective IDs, not real IDs. */ |
| 148 | /* Flag for unlinkat(2). */ | |
| 104 | 149 | #define AT_REMOVEDIR		0x200 /* Remove directory instead of |
| 105 | 150 | unlinking file. */ |
| 106 | #define AT_SYMLINK_FOLLOW	0x400 /* Follow symbolic links. */ | |
| 107 | #define AT_NO_AUTOMOUNT		0x800	/* Suppress terminal automount traversal */ | |
| 108 | #define AT_EMPTY_PATH		0x1000	/* Allow empty relative pathname */ | |
| 109 | ||
| 110 | #define AT_STATX_SYNC_TYPE	0x6000	/* Type of synchronisation required from statx() */ | |
| 111 | #define AT_STATX_SYNC_AS_STAT	0x0000	/* - Do whatever stat() does */ | |
| 112 | #define AT_STATX_FORCE_SYNC	0x2000	/* - Force the attributes to be sync'd with the server */ | |
| 113 | #define AT_STATX_DONT_SYNC	0x4000	/* - Don't sync attributes with the server */ | |
| 114 | ||
| 115 | #define AT_RECURSIVE		0x8000	/* Apply to the entire subtree */ | |
| 116 | ||
| 117 | /* Flags for name_to_handle_at(2). We reuse AT_ flag space to save bits... */ | |
| 118 | #define AT_HANDLE_FID		AT_REMOVEDIR	/* file handle is needed to | |
| 119 | 					compare object identity and may not | |
| 120 | 					be usable to open_by_handle_at(2) */ | |
| 151 | /* Flags for name_to_handle_at(2). */ | |
| 152 | #define AT_HANDLE_FID		0x200	/* File handle is needed to compare | |
| 153 | 					 object identity and may not be | |
| 154 | 					 usable with open_by_handle_at(2). */ | |
| 155 | #define AT_HANDLE_MNT_ID_UNIQUE	0x001	/* Return the u64 unique mount ID. */ | |
| 156 | #define AT_HANDLE_CONNECTABLE	0x002	/* Request a connectable file handle */ | |
| 121 | 157 | |
| 122 | 158 | #endif /* _LINUX_FCNTL_H */ |
| \ No newline at end of file |
lib/libc/include/any-linux-any/linux/fib_rules.h+1| ... | ... | @@ -67,6 +67,7 @@ enum { |
| 67 | 67 | 	FRA_IP_PROTO,	/* ip proto */ |
| 68 | 68 | 	FRA_SPORT_RANGE, /* sport */ |
| 69 | 69 | 	FRA_DPORT_RANGE, /* dport */ |
| 70 | 	FRA_DSCP,	/* dscp */ | |
| 70 | 71 | 	__FRA_MAX |
| 71 | 72 | }; |
| 72 | 73 |
lib/libc/include/any-linux-any/linux/fs.h+161-2| ... | ... | @@ -325,12 +325,17 @@ typedef int __bitwise __kernel_rwf_t; |
| 325 | 325 | /* per-IO negation of O_APPEND */ |
| 326 | 326 | #define RWF_NOAPPEND	((__kernel_rwf_t)0x00000020) |
| 327 | 327 | |
| 328 | /* Atomic Write */ | |
| 329 | #define RWF_ATOMIC	((__kernel_rwf_t)0x00000040) | |
| 330 | ||
| 328 | 331 | /* mask of flags supported by the kernel */ |
| 329 | 332 | #define RWF_SUPPORTED	(RWF_HIPRI | RWF_DSYNC | RWF_SYNC | RWF_NOWAIT |\ |
| 330 | 			 RWF_APPEND | RWF_NOAPPEND) | |
| 333 | 			 RWF_APPEND | RWF_NOAPPEND | RWF_ATOMIC) | |
| 334 | ||
| 335 | #define PROCFS_IOCTL_MAGIC 'f' | |
| 331 | 336 | |
| 332 | 337 | /* Pagemap ioctl */ |
| 333 | #define PAGEMAP_SCAN	_IOWR('f', 16, struct pm_scan_arg) | |
| 338 | #define PAGEMAP_SCAN	_IOWR(PROCFS_IOCTL_MAGIC, 16, struct pm_scan_arg) | |
| 334 | 339 | |
| 335 | 340 | /* Bitmasks provided in pm_scan_args masks and reported in page_region.categories. */ |
| 336 | 341 | #define PAGE_IS_WPALLOWED	(1 << 0) |
| ... | ... | @@ -389,4 +394,158 @@ struct pm_scan_arg { |
| 389 | 394 | 	__u64 return_mask; |
| 390 | 395 | }; |
| 391 | 396 | |
| 397 | /* /proc/<pid>/maps ioctl */ | |
| 398 | #define PROCMAP_QUERY	_IOWR(PROCFS_IOCTL_MAGIC, 17, struct procmap_query) | |
| 399 | ||
| 400 | enum procmap_query_flags { | |
| 401 | 	/* | |
| 402 | 	 * VMA permission flags. | |
| 403 | 	 * | |
| 404 | 	 * Can be used as part of procmap_query.query_flags field to look up | |
| 405 | 	 * only VMAs satisfying specified subset of permissions. E.g., specifying | |
| 406 | 	 * PROCMAP_QUERY_VMA_READABLE only will return both readable and read/write VMAs, | |
| 407 | 	 * while having PROCMAP_QUERY_VMA_READABLE | PROCMAP_QUERY_VMA_WRITABLE will only | |
| 408 | 	 * return read/write VMAs, though both executable/non-executable and | |
| 409 | 	 * private/shared will be ignored. | |
| 410 | 	 * | |
| 411 | 	 * PROCMAP_QUERY_VMA_* flags are also returned in procmap_query.vma_flags | |
| 412 | 	 * field to specify actual VMA permissions. | |
| 413 | 	 */ | |
| 414 | 	PROCMAP_QUERY_VMA_READABLE		= 0x01, | |
| 415 | 	PROCMAP_QUERY_VMA_WRITABLE		= 0x02, | |
| 416 | 	PROCMAP_QUERY_VMA_EXECUTABLE		= 0x04, | |
| 417 | 	PROCMAP_QUERY_VMA_SHARED		= 0x08, | |
| 418 | 	/* | |
| 419 | 	 * Query modifier flags. | |
| 420 | 	 * | |
| 421 | 	 * By default VMA that covers provided address is returned, or -ENOENT | |
| 422 | 	 * is returned. With PROCMAP_QUERY_COVERING_OR_NEXT_VMA flag set, closest | |
| 423 | 	 * VMA with vma_start > addr will be returned if no covering VMA is | |
| 424 | 	 * found. | |
| 425 | 	 * | |
| 426 | 	 * PROCMAP_QUERY_FILE_BACKED_VMA instructs query to consider only VMAs that | |
| 427 | 	 * have file backing. Can be combined with PROCMAP_QUERY_COVERING_OR_NEXT_VMA | |
| 428 | 	 * to iterate all VMAs with file backing. | |
| 429 | 	 */ | |
| 430 | 	PROCMAP_QUERY_COVERING_OR_NEXT_VMA	= 0x10, | |
| 431 | 	PROCMAP_QUERY_FILE_BACKED_VMA		= 0x20, | |
| 432 | }; | |
| 433 | ||
| 434 | /* | |
| 435 | * Input/output argument structured passed into ioctl() call. It can be used | |
| 436 | * to query a set of VMAs (Virtual Memory Areas) of a process. | |
| 437 | * | |
| 438 | * Each field can be one of three kinds, marked in a short comment to the | |
| 439 | * right of the field: | |
| 440 | * - "in", input argument, user has to provide this value, kernel doesn't modify it; | |
| 441 | * - "out", output argument, kernel sets this field with VMA data; | |
| 442 | * - "in/out", input and output argument; user provides initial value (used | |
| 443 | * to specify maximum allowable buffer size), and kernel sets it to actual | |
| 444 | * amount of data written (or zero, if there is no data). | |
| 445 | * | |
| 446 | * If matching VMA is found (according to criterias specified by | |
| 447 | * query_addr/query_flags, all the out fields are filled out, and ioctl() | |
| 448 | * returns 0. If there is no matching VMA, -ENOENT will be returned. | |
| 449 | * In case of any other error, negative error code other than -ENOENT is | |
| 450 | * returned. | |
| 451 | * | |
| 452 | * Most of the data is similar to the one returned as text in /proc/<pid>/maps | |
| 453 | * file, but procmap_query provides more querying flexibility. There are no | |
| 454 | * consistency guarantees between subsequent ioctl() calls, but data returned | |
| 455 | * for matched VMA is self-consistent. | |
| 456 | */ | |
| 457 | struct procmap_query { | |
| 458 | 	/* Query struct size, for backwards/forward compatibility */ | |
| 459 | 	__u64 size; | |
| 460 | 	/* | |
| 461 | 	 * Query flags, a combination of enum procmap_query_flags values. | |
| 462 | 	 * Defines query filtering and behavior, see enum procmap_query_flags. | |
| 463 | 	 * | |
| 464 | 	 * Input argument, provided by user. Kernel doesn't modify it. | |
| 465 | 	 */ | |
| 466 | 	__u64 query_flags;		/* in */ | |
| 467 | 	/* | |
| 468 | 	 * Query address. By default, VMA that covers this address will | |
| 469 | 	 * be looked up. PROCMAP_QUERY_* flags above modify this default | |
| 470 | 	 * behavior further. | |
| 471 | 	 * | |
| 472 | 	 * Input argument, provided by user. Kernel doesn't modify it. | |
| 473 | 	 */ | |
| 474 | 	__u64 query_addr;		/* in */ | |
| 475 | 	/* VMA starting (inclusive) and ending (exclusive) address, if VMA is found. */ | |
| 476 | 	__u64 vma_start;		/* out */ | |
| 477 | 	__u64 vma_end;			/* out */ | |
| 478 | 	/* VMA permissions flags. A combination of PROCMAP_QUERY_VMA_* flags. */ | |
| 479 | 	__u64 vma_flags;		/* out */ | |
| 480 | 	/* VMA backing page size granularity. */ | |
| 481 | 	__u64 vma_page_size;		/* out */ | |
| 482 | 	/* | |
| 483 | 	 * VMA file offset. If VMA has file backing, this specifies offset | |
| 484 | 	 * within the file that VMA's start address corresponds to. | |
| 485 | 	 * Is set to zero if VMA has no backing file. | |
| 486 | 	 */ | |
| 487 | 	__u64 vma_offset;		/* out */ | |
| 488 | 	/* Backing file's inode number, or zero, if VMA has no backing file. */ | |
| 489 | 	__u64 inode;			/* out */ | |
| 490 | 	/* Backing file's device major/minor number, or zero, if VMA has no backing file. */ | |
| 491 | 	__u32 dev_major;		/* out */ | |
| 492 | 	__u32 dev_minor;		/* out */ | |
| 493 | 	/* | |
| 494 | 	 * If set to non-zero value, signals the request to return VMA name | |
| 495 | 	 * (i.e., VMA's backing file's absolute path, with " (deleted)" suffix | |
| 496 | 	 * appended, if file was unlinked from FS) for matched VMA. VMA name | |
| 497 | 	 * can also be some special name (e.g., "[heap]", "[stack]") or could | |
| 498 | 	 * be even user-supplied with prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME). | |
| 499 | 	 * | |
| 500 | 	 * Kernel will set this field to zero, if VMA has no associated name. | |
| 501 | 	 * Otherwise kernel will return actual amount of bytes filled in | |
| 502 | 	 * user-supplied buffer (see vma_name_addr field below), including the | |
| 503 | 	 * terminating zero. | |
| 504 | 	 * | |
| 505 | 	 * If VMA name is longer that user-supplied maximum buffer size, | |
| 506 | 	 * -E2BIG error is returned. | |
| 507 | 	 * | |
| 508 | 	 * If this field is set to non-zero value, vma_name_addr should point | |
| 509 | 	 * to valid user space memory buffer of at least vma_name_size bytes. | |
| 510 | 	 * If set to zero, vma_name_addr should be set to zero as well | |
| 511 | 	 */ | |
| 512 | 	__u32 vma_name_size;		/* in/out */ | |
| 513 | 	/* | |
| 514 | 	 * If set to non-zero value, signals the request to extract and return | |
| 515 | 	 * VMA's backing file's build ID, if the backing file is an ELF file | |
| 516 | 	 * and it contains embedded build ID. | |
| 517 | 	 * | |
| 518 | 	 * Kernel will set this field to zero, if VMA has no backing file, | |
| 519 | 	 * backing file is not an ELF file, or ELF file has no build ID | |
| 520 | 	 * embedded. | |
| 521 | 	 * | |
| 522 | 	 * Build ID is a binary value (not a string). Kernel will set | |
| 523 | 	 * build_id_size field to exact number of bytes used for build ID. | |
| 524 | 	 * If build ID is requested and present, but needs more bytes than | |
| 525 | 	 * user-supplied maximum buffer size (see build_id_addr field below), | |
| 526 | 	 * -E2BIG error will be returned. | |
| 527 | 	 * | |
| 528 | 	 * If this field is set to non-zero value, build_id_addr should point | |
| 529 | 	 * to valid user space memory buffer of at least build_id_size bytes. | |
| 530 | 	 * If set to zero, build_id_addr should be set to zero as well | |
| 531 | 	 */ | |
| 532 | 	__u32 build_id_size;		/* in/out */ | |
| 533 | 	/* | |
| 534 | 	 * User-supplied address of a buffer of at least vma_name_size bytes | |
| 535 | 	 * for kernel to fill with matched VMA's name (see vma_name_size field | |
| 536 | 	 * description above for details). | |
| 537 | 	 * | |
| 538 | 	 * Should be set to zero if VMA name should not be returned. | |
| 539 | 	 */ | |
| 540 | 	__u64 vma_name_addr;		/* in */ | |
| 541 | 	/* | |
| 542 | 	 * User-supplied address of a buffer of at least build_id_size bytes | |
| 543 | 	 * for kernel to fill with matched VMA's ELF build ID, if available | |
| 544 | 	 * (see build_id_size field description above for details). | |
| 545 | 	 * | |
| 546 | 	 * Should be set to zero if build ID should not be returned. | |
| 547 | 	 */ | |
| 548 | 	__u64 build_id_addr;		/* in */ | |
| 549 | }; | |
| 550 | ||
| 392 | 551 | #endif /* _LINUX_FS_H */ |
| \ No newline at end of file |
lib/libc/include/any-linux-any/linux/fuse.h+21-1| ... | ... | @@ -217,6 +217,9 @@ |
| 217 | 217 | * - add backing_id to fuse_open_out, add FOPEN_PASSTHROUGH open flag |
| 218 | 218 | * - add FUSE_NO_EXPORT_SUPPORT init flag |
| 219 | 219 | * - add FUSE_NOTIFY_RESEND, add FUSE_HAS_RESEND init flag |
| 220 | * | |
| 221 | * 7.41 | |
| 222 | * - add FUSE_ALLOW_IDMAP | |
| 220 | 223 | */ |
| 221 | 224 | |
| 222 | 225 | #ifndef _LINUX_FUSE_H |
| ... | ... | @@ -248,7 +251,7 @@ |
| 248 | 251 | #define FUSE_KERNEL_VERSION 7 |
| 249 | 252 | |
| 250 | 253 | /** Minor version number of this interface */ |
| 251 | #define FUSE_KERNEL_MINOR_VERSION 40 | |
| 254 | #define FUSE_KERNEL_MINOR_VERSION 41 | |
| 252 | 255 | |
| 253 | 256 | /** The node ID of the root inode */ |
| 254 | 257 | #define FUSE_ROOT_ID 1 |
| ... | ... | @@ -417,6 +420,7 @@ struct fuse_file_lock { |
| 417 | 420 | * FUSE_NO_EXPORT_SUPPORT: explicitly disable export support |
| 418 | 421 | * FUSE_HAS_RESEND: kernel supports resending pending requests, and the high bit |
| 419 | 422 | *		 of the request ID indicates resend requests |
| 423 | * FUSE_ALLOW_IDMAP: allow creation of idmapped mounts | |
| 420 | 424 | */ |
| 421 | 425 | #define FUSE_ASYNC_READ		(1 << 0) |
| 422 | 426 | #define FUSE_POSIX_LOCKS	(1 << 1) |
| ... | ... | @@ -462,6 +466,7 @@ struct fuse_file_lock { |
| 462 | 466 | |
| 463 | 467 | /* Obsolete alias for FUSE_DIRECT_IO_ALLOW_MMAP */ |
| 464 | 468 | #define FUSE_DIRECT_IO_RELAX	FUSE_DIRECT_IO_ALLOW_MMAP |
| 469 | #define FUSE_ALLOW_IDMAP	(1ULL << 40) | |
| 465 | 470 | |
| 466 | 471 | /** |
| 467 | 472 | * CUSE INIT request/reply flags |
| ... | ... | @@ -980,6 +985,21 @@ struct fuse_fallocate_in { |
| 980 | 985 | */ |
| 981 | 986 | #define FUSE_UNIQUE_RESEND (1ULL << 63) |
| 982 | 987 | |
| 988 | /** | |
| 989 | * This value will be set by the kernel to | |
| 990 | * (struct fuse_in_header).{uid,gid} fields in | |
| 991 | * case when: | |
| 992 | * - fuse daemon enabled FUSE_ALLOW_IDMAP | |
| 993 | * - idmapping information is not available and uid/gid | |
| 994 | * can not be mapped in accordance with an idmapping. | |
| 995 | * | |
| 996 | * Note: an idmapping information always available | |
| 997 | * for inode creation operations like: | |
| 998 | * FUSE_MKNOD, FUSE_SYMLINK, FUSE_MKDIR, FUSE_TMPFILE, | |
| 999 | * FUSE_CREATE and FUSE_RENAME2 (with RENAME_WHITEOUT). | |
| 1000 | */ | |
| 1001 | #define FUSE_INVALID_UIDGID ((uint32_t)(-1)) | |
| 1002 | ||
| 983 | 1003 | struct fuse_in_header { |
| 984 | 1004 | 	uint32_t	len; |
| 985 | 1005 | 	uint32_t	opcode; |
lib/libc/include/any-linux-any/linux/hidraw.h+1| ... | ... | @@ -46,6 +46,7 @@ struct hidraw_devinfo { |
| 46 | 46 | /* The first byte of SOUTPUT and GOUTPUT is the report number */ |
| 47 | 47 | #define HIDIOCSOUTPUT(len) _IOC(_IOC_WRITE|_IOC_READ, 'H', 0x0B, len) |
| 48 | 48 | #define HIDIOCGOUTPUT(len) _IOC(_IOC_WRITE|_IOC_READ, 'H', 0x0C, len) |
| 49 | #define HIDIOCREVOKE	 _IOW('H', 0x0D, int) /* Revoke device access */ | |
| 49 | 50 | |
| 50 | 51 | #define HIDRAW_FIRST_MINOR 0 |
| 51 | 52 | #define HIDRAW_MAX_DEVICES 64 |
lib/libc/include/any-linux-any/linux/if_link.h+17| ... | ... | @@ -377,6 +377,7 @@ enum { |
| 377 | 377 | 	IFLA_GSO_IPV4_MAX_SIZE, |
| 378 | 378 | 	IFLA_GRO_IPV4_MAX_SIZE, |
| 379 | 379 | 	IFLA_DPLL_PIN, |
| 380 | 	IFLA_MAX_PACING_OFFLOAD_HORIZON, | |
| 380 | 381 | 	__IFLA_MAX |
| 381 | 382 | }; |
| 382 | 383 | |
| ... | ... | @@ -1290,6 +1291,19 @@ enum netkit_mode { |
| 1290 | 1291 | 	NETKIT_L3, |
| 1291 | 1292 | }; |
| 1292 | 1293 | |
| 1294 | /* NETKIT_SCRUB_NONE leaves clearing skb->{mark,priority} up to | |
| 1295 | * the BPF program if attached. This also means the latter can | |
| 1296 | * consume the two fields if they were populated earlier. | |
| 1297 | * | |
| 1298 | * NETKIT_SCRUB_DEFAULT zeroes skb->{mark,priority} fields before | |
| 1299 | * invoking the attached BPF program when the peer device resides | |
| 1300 | * in a different network namespace. This is the default behavior. | |
| 1301 | */ | |
| 1302 | enum netkit_scrub { | |
| 1303 | 	NETKIT_SCRUB_NONE, | |
| 1304 | 	NETKIT_SCRUB_DEFAULT, | |
| 1305 | }; | |
| 1306 | ||
| 1293 | 1307 | enum { |
| 1294 | 1308 | 	IFLA_NETKIT_UNSPEC, |
| 1295 | 1309 | 	IFLA_NETKIT_PEER_INFO, |
| ... | ... | @@ -1297,6 +1311,8 @@ enum { |
| 1297 | 1311 | 	IFLA_NETKIT_POLICY, |
| 1298 | 1312 | 	IFLA_NETKIT_PEER_POLICY, |
| 1299 | 1313 | 	IFLA_NETKIT_MODE, |
| 1314 | 	IFLA_NETKIT_SCRUB, | |
| 1315 | 	IFLA_NETKIT_PEER_SCRUB, | |
| 1300 | 1316 | 	__IFLA_NETKIT_MAX, |
| 1301 | 1317 | }; |
| 1302 | 1318 | #define IFLA_NETKIT_MAX	(__IFLA_NETKIT_MAX - 1) |
| ... | ... | @@ -1940,6 +1956,7 @@ struct ifla_rmnet_flags { |
| 1940 | 1956 | enum { |
| 1941 | 1957 | 	IFLA_MCTP_UNSPEC, |
| 1942 | 1958 | 	IFLA_MCTP_NET, |
| 1959 | 	IFLA_MCTP_PHYS_BINDING, | |
| 1943 | 1960 | 	__IFLA_MCTP_MAX, |
| 1944 | 1961 | }; |
| 1945 | 1962 |
lib/libc/include/any-linux-any/linux/if_packet.h+4-3| ... | ... | @@ -230,8 +230,8 @@ struct tpacket_hdr_v1 { |
| 230 | 230 | 	 * ts_first_pkt: |
| 231 | 231 | 	 *		Is always the time-stamp when the block was opened. |
| 232 | 232 | 	 *		Case a)	ZERO packets |
| 233 | 	 *			No packets to deal with but atleast you know the | |
| 234 | 	 *			time-interval of this block. | |
| 233 | 	 *			No packets to deal with but at least you know | |
| 234 | 	 *			the time-interval of this block. | |
| 235 | 235 | 	 *		Case b) Non-zero packets |
| 236 | 236 | 	 *			Use the ts of the first packet in the block. |
| 237 | 237 | 	 * |
| ... | ... | @@ -265,7 +265,8 @@ enum tpacket_versions { |
| 265 | 265 | - struct tpacket_hdr |
| 266 | 266 | - pad to TPACKET_ALIGNMENT=16 |
| 267 | 267 | - struct sockaddr_ll |
| 268 | - Gap, chosen so that packet data (Start+tp_net) alignes to TPACKET_ALIGNMENT=16 | |
| 268 | - Gap, chosen so that packet data (Start+tp_net) aligns to | |
| 269 | TPACKET_ALIGNMENT=16 | |
| 269 | 270 | - Start+tp_mac: [ Optional MAC header ] |
| 270 | 271 | - Start+tp_net: Packet data, aligned to TPACKET_ALIGNMENT=16. |
| 271 | 272 | - Pad to align to TPACKET_ALIGNMENT=16 |
lib/libc/include/any-linux-any/linux/if_xdp.h+4| ... | ... | @@ -41,6 +41,10 @@ |
| 41 | 41 | */ |
| 42 | 42 | #define XDP_UMEM_TX_SW_CSUM		(1 << 1) |
| 43 | 43 | |
| 44 | /* Request to reserve tx_metadata_len bytes of per-chunk metadata. | |
| 45 | */ | |
| 46 | #define XDP_UMEM_TX_METADATA_LEN	(1 << 2) | |
| 47 | ||
| 44 | 48 | struct sockaddr_xdp { |
| 45 | 49 | 	__u16 sxdp_family; |
| 46 | 50 | 	__u16 sxdp_flags; |
lib/libc/include/any-linux-any/linux/iio/buffer.h+22| ... | ... | @@ -5,6 +5,28 @@ |
| 5 | 5 | #ifndef _IIO_BUFFER_H_ |
| 6 | 6 | #define _IIO_BUFFER_H_ |
| 7 | 7 | |
| 8 | #include <linux/types.h> | |
| 9 | ||
| 10 | /* Flags for iio_dmabuf.flags */ | |
| 11 | #define IIO_BUFFER_DMABUF_CYCLIC		(1 << 0) | |
| 12 | #define IIO_BUFFER_DMABUF_SUPPORTED_FLAGS	0x00000001 | |
| 13 | ||
| 14 | /** | |
| 15 | * struct iio_dmabuf - Descriptor for a single IIO DMABUF object | |
| 16 | * @fd:		file descriptor of the DMABUF object | |
| 17 | * @flags:	one or more IIO_BUFFER_DMABUF_* flags | |
| 18 | * @bytes_used:	number of bytes used in this DMABUF for the data transfer. | |
| 19 | *		Should generally be set to the DMABUF's size. | |
| 20 | */ | |
| 21 | struct iio_dmabuf { | |
| 22 | 	__u32 fd; | |
| 23 | 	__u32 flags; | |
| 24 | 	__u64 bytes_used; | |
| 25 | }; | |
| 26 | ||
| 8 | 27 | #define IIO_BUFFER_GET_FD_IOCTL			_IOWR('i', 0x91, int) |
| 28 | #define IIO_BUFFER_DMABUF_ATTACH_IOCTL		_IOW('i', 0x92, int) | |
| 29 | #define IIO_BUFFER_DMABUF_DETACH_IOCTL		_IOW('i', 0x93, int) | |
| 30 | #define IIO_BUFFER_DMABUF_ENQUEUE_IOCTL		_IOW('i', 0x94, struct iio_dmabuf) | |
| 9 | 31 | |
| 10 | 32 | #endif /* _IIO_BUFFER_H_ */ |
| \ No newline at end of file |
lib/libc/include/any-linux-any/linux/iio/types.h+1| ... | ... | @@ -51,6 +51,7 @@ enum iio_chan_type { |
| 51 | 51 | 	IIO_DELTA_VELOCITY, |
| 52 | 52 | 	IIO_COLORTEMP, |
| 53 | 53 | 	IIO_CHROMATICITY, |
| 54 | 	IIO_ATTENTION, | |
| 54 | 55 | }; |
| 55 | 56 | |
| 56 | 57 | enum iio_modifier { |
lib/libc/include/any-linux-any/linux/in.h+3-1| ... | ... | @@ -81,6 +81,8 @@ enum { |
| 81 | 81 | #define IPPROTO_ETHERNET	IPPROTO_ETHERNET |
| 82 | 82 | IPPROTO_RAW = 255,		/* Raw IP packets			*/ |
| 83 | 83 | #define IPPROTO_RAW		IPPROTO_RAW |
| 84 | IPPROTO_SMC = 256,		/* Shared Memory Communications		*/ | |
| 85 | #define IPPROTO_SMC		IPPROTO_SMC | |
| 84 | 86 | IPPROTO_MPTCP = 262,		/* Multipath TCP connection		*/ |
| 85 | 87 | #define IPPROTO_MPTCP		IPPROTO_MPTCP |
| 86 | 88 | IPPROTO_MAX |
| ... | ... | @@ -139,7 +141,7 @@ struct in_addr { |
| 139 | 141 | */ |
| 140 | 142 | #define IP_PMTUDISC_INTERFACE		4 |
| 141 | 143 | /* weaker version of IP_PMTUDISC_INTERFACE, which allows packets to get |
| 142 | * fragmented if they exeed the interface mtu | |
| 144 | * fragmented if they exceed the interface mtu | |
| 143 | 145 | */ |
| 144 | 146 | #define IP_PMTUDISC_OMIT		5 |
| 145 | 147 |
lib/libc/include/any-linux-any/linux/inet_diag.h+1-1| ... | ... | @@ -143,7 +143,7 @@ enum { |
| 143 | 143 | 	INET_DIAG_SHUTDOWN, |
| 144 | 144 | |
| 145 | 145 | 	/* |
| 146 | 	 * Next extenstions cannot be requested in struct inet_diag_req_v2: | |
| 146 | 	 * Next extensions cannot be requested in struct inet_diag_req_v2: | |
| 147 | 147 | 	 * its field idiag_ext has only 8 bits. |
| 148 | 148 | 	 */ |
| 149 | 149 |
lib/libc/include/any-linux-any/linux/input-event-codes.h+1| ... | ... | @@ -519,6 +519,7 @@ |
| 519 | 519 | #define KEY_NOTIFICATION_CENTER	0x1bc	/* Show/hide the notification center */ |
| 520 | 520 | #define KEY_PICKUP_PHONE	0x1bd	/* Answer incoming call */ |
| 521 | 521 | #define KEY_HANGUP_PHONE	0x1be	/* Decline incoming call */ |
| 522 | #define KEY_LINK_PHONE		0x1bf /* AL Phone Syncing */ | |
| 522 | 523 | |
| 523 | 524 | #define KEY_DEL_EOL		0x1c0 |
| 524 | 525 | #define KEY_DEL_EOS		0x1c1 |
lib/libc/include/any-linux-any/linux/io_uring.h+143-4| ... | ... | @@ -200,6 +200,9 @@ enum io_uring_sqe_flags_bit { |
| 200 | 200 | */ |
| 201 | 201 | #define IORING_SETUP_NO_SQARRAY		(1U << 16) |
| 202 | 202 | |
| 203 | /* Use hybrid poll in iopoll process */ | |
| 204 | #define IORING_SETUP_HYBRID_IOPOLL	(1U << 17) | |
| 205 | ||
| 203 | 206 | enum io_uring_op { |
| 204 | 207 | 	IORING_OP_NOP, |
| 205 | 208 | 	IORING_OP_READV, |
| ... | ... | @@ -257,6 +260,8 @@ enum io_uring_op { |
| 257 | 260 | 	IORING_OP_FUTEX_WAITV, |
| 258 | 261 | 	IORING_OP_FIXED_FD_INSTALL, |
| 259 | 262 | 	IORING_OP_FTRUNCATE, |
| 263 | 	IORING_OP_BIND, | |
| 264 | 	IORING_OP_LISTEN, | |
| 260 | 265 | |
| 261 | 266 | 	/* this goes last, obviously */ |
| 262 | 267 | 	IORING_OP_LAST, |
| ... | ... | @@ -414,12 +419,15 @@ enum io_uring_msg_ring_flags { |
| 414 | 419 | * IORING_NOP_INJECT_RESULT	Inject result from sqe->result |
| 415 | 420 | */ |
| 416 | 421 | #define IORING_NOP_INJECT_RESULT	(1U << 0) |
| 422 | #define IORING_NOP_FILE			(1U << 1) | |
| 423 | #define IORING_NOP_FIXED_FILE		(1U << 2) | |
| 424 | #define IORING_NOP_FIXED_BUFFER		(1U << 3) | |
| 417 | 425 | |
| 418 | 426 | /* |
| 419 | 427 | * IO completion data structure (Completion Queue Entry) |
| 420 | 428 | */ |
| 421 | 429 | struct io_uring_cqe { |
| 422 | 	__u64	user_data;	/* sqe->data submission passed back */ | |
| 430 | 	__u64	user_data;	/* sqe->user_data value passed back */ | |
| 423 | 431 | 	__s32	res;		/* result code for this event */ |
| 424 | 432 | 	__u32	flags; |
| 425 | 433 | |
| ... | ... | @@ -438,11 +446,21 @@ struct io_uring_cqe { |
| 438 | 446 | * IORING_CQE_F_SOCK_NONEMPTY	If set, more data to read after socket recv |
| 439 | 447 | * IORING_CQE_F_NOTIF	Set for notification CQEs. Can be used to distinct |
| 440 | 448 | * 			them from sends. |
| 449 | * IORING_CQE_F_BUF_MORE If set, the buffer ID set in the completion will get | |
| 450 | *			more completions. In other words, the buffer is being | |
| 451 | *			partially consumed, and will be used by the kernel for | |
| 452 | *			more completions. This is only set for buffers used via | |
| 453 | *			the incremental buffer consumption, as provided by | |
| 454 | *			a ring buffer setup with IOU_PBUF_RING_INC. For any | |
| 455 | *			other provided buffer type, all completions with a | |
| 456 | *			buffer passed back is automatically returned to the | |
| 457 | *			application. | |
| 441 | 458 | */ |
| 442 | 459 | #define IORING_CQE_F_BUFFER		(1U << 0) |
| 443 | 460 | #define IORING_CQE_F_MORE		(1U << 1) |
| 444 | 461 | #define IORING_CQE_F_SOCK_NONEMPTY	(1U << 2) |
| 445 | 462 | #define IORING_CQE_F_NOTIF		(1U << 3) |
| 463 | #define IORING_CQE_F_BUF_MORE		(1U << 4) | |
| 446 | 464 | |
| 447 | 465 | #define IORING_CQE_BUFFER_SHIFT		16 |
| 448 | 466 | |
| ... | ... | @@ -505,6 +523,8 @@ struct io_cqring_offsets { |
| 505 | 523 | #define IORING_ENTER_SQ_WAIT		(1U << 2) |
| 506 | 524 | #define IORING_ENTER_EXT_ARG		(1U << 3) |
| 507 | 525 | #define IORING_ENTER_REGISTERED_RING	(1U << 4) |
| 526 | #define IORING_ENTER_ABS_TIMER		(1U << 5) | |
| 527 | #define IORING_ENTER_EXT_ARG_REG	(1U << 6) | |
| 508 | 528 | |
| 509 | 529 | /* |
| 510 | 530 | * Passed in for io_uring_setup(2). Copied back with updated info on success |
| ... | ... | @@ -540,6 +560,7 @@ struct io_uring_params { |
| 540 | 560 | #define IORING_FEAT_LINKED_FILE		(1U << 12) |
| 541 | 561 | #define IORING_FEAT_REG_REG_RING	(1U << 13) |
| 542 | 562 | #define IORING_FEAT_RECVSEND_BUNDLE	(1U << 14) |
| 563 | #define IORING_FEAT_MIN_TIMEOUT		(1U << 15) | |
| 543 | 564 | |
| 544 | 565 | /* |
| 545 | 566 | * io_uring_register(2) opcodes and arguments |
| ... | ... | @@ -593,6 +614,21 @@ enum io_uring_register_op { |
| 593 | 614 | 	IORING_REGISTER_NAPI			= 27, |
| 594 | 615 | 	IORING_UNREGISTER_NAPI			= 28, |
| 595 | 616 | |
| 617 | 	IORING_REGISTER_CLOCK			= 29, | |
| 618 | ||
| 619 | 	/* clone registered buffers from source ring to current ring */ | |
| 620 | 	IORING_REGISTER_CLONE_BUFFERS		= 30, | |
| 621 | ||
| 622 | 	/* send MSG_RING without having a ring */ | |
| 623 | 	IORING_REGISTER_SEND_MSG_RING		= 31, | |
| 624 | ||
| 625 | 	/* 32 reserved for zc rx */ | |
| 626 | ||
| 627 | 	/* resize CQ ring */ | |
| 628 | 	IORING_REGISTER_RESIZE_RINGS		= 33, | |
| 629 | ||
| 630 | 	IORING_REGISTER_MEM_REGION		= 34, | |
| 631 | ||
| 596 | 632 | 	/* this goes last */ |
| 597 | 633 | 	IORING_REGISTER_LAST, |
| 598 | 634 | |
| ... | ... | @@ -613,6 +649,31 @@ struct io_uring_files_update { |
| 613 | 649 | 	__aligned_u64 /* __s32 * */ fds; |
| 614 | 650 | }; |
| 615 | 651 | |
| 652 | enum { | |
| 653 | 	/* initialise with user provided memory pointed by user_addr */ | |
| 654 | 	IORING_MEM_REGION_TYPE_USER		= 1, | |
| 655 | }; | |
| 656 | ||
| 657 | struct io_uring_region_desc { | |
| 658 | 	__u64 user_addr; | |
| 659 | 	__u64 size; | |
| 660 | 	__u32 flags; | |
| 661 | 	__u32 id; | |
| 662 | 	__u64 mmap_offset; | |
| 663 | 	__u64 __resv[4]; | |
| 664 | }; | |
| 665 | ||
| 666 | enum { | |
| 667 | 	/* expose the region as registered wait arguments */ | |
| 668 | 	IORING_MEM_REGION_REG_WAIT_ARG		= 1, | |
| 669 | }; | |
| 670 | ||
| 671 | struct io_uring_mem_region_reg { | |
| 672 | 	__u64 region_uptr; /* struct io_uring_region_desc * */ | |
| 673 | 	__u64 flags; | |
| 674 | 	__u64 __resv[2]; | |
| 675 | }; | |
| 676 | ||
| 616 | 677 | /* |
| 617 | 678 | * Register a fully sparse file space, rather than pass in an array of all |
| 618 | 679 | * -1 file descriptors. |
| ... | ... | @@ -673,6 +734,25 @@ struct io_uring_restriction { |
| 673 | 734 | 	__u32 resv2[3]; |
| 674 | 735 | }; |
| 675 | 736 | |
| 737 | struct io_uring_clock_register { | |
| 738 | 	__u32	clockid; | |
| 739 | 	__u32	__resv[3]; | |
| 740 | }; | |
| 741 | ||
| 742 | enum { | |
| 743 | 	IORING_REGISTER_SRC_REGISTERED	= (1U << 0), | |
| 744 | 	IORING_REGISTER_DST_REPLACE	= (1U << 1), | |
| 745 | }; | |
| 746 | ||
| 747 | struct io_uring_clone_buffers { | |
| 748 | 	__u32	src_fd; | |
| 749 | 	__u32	flags; | |
| 750 | 	__u32	src_off; | |
| 751 | 	__u32	dst_off; | |
| 752 | 	__u32	nr; | |
| 753 | 	__u32	pad[3]; | |
| 754 | }; | |
| 755 | ||
| 676 | 756 | struct io_uring_buf { |
| 677 | 757 | 	__u64	addr; |
| 678 | 758 | 	__u32	len; |
| ... | ... | @@ -705,9 +785,17 @@ struct io_uring_buf_ring { |
| 705 | 785 | *			mmap(2) with the offset set as: |
| 706 | 786 | *			IORING_OFF_PBUF_RING | (bgid << IORING_OFF_PBUF_SHIFT) |
| 707 | 787 | *			to get a virtual mapping for the ring. |
| 788 | * IOU_PBUF_RING_INC:	If set, buffers consumed from this buffer ring can be | |
| 789 | *			consumed incrementally. Normally one (or more) buffers | |
| 790 | *			are fully consumed. With incremental consumptions, it's | |
| 791 | *			feasible to register big ranges of buffers, and each | |
| 792 | *			use of it will consume only as much as it needs. This | |
| 793 | *			requires that both the kernel and application keep | |
| 794 | *			track of where the current read/recv index is at. | |
| 708 | 795 | */ |
| 709 | 796 | enum io_uring_register_pbuf_ring_flags { |
| 710 | 797 | 	IOU_PBUF_RING_MMAP	= 1, |
| 798 | 	IOU_PBUF_RING_INC	= 2, | |
| 711 | 799 | }; |
| 712 | 800 | |
| 713 | 801 | /* argument for IORING_(UN)REGISTER_PBUF_RING */ |
| ... | ... | @@ -726,12 +814,40 @@ struct io_uring_buf_status { |
| 726 | 814 | 	__u32	resv[8]; |
| 727 | 815 | }; |
| 728 | 816 | |
| 817 | enum io_uring_napi_op { | |
| 818 | 	/* register/ungister backward compatible opcode */ | |
| 819 | 	IO_URING_NAPI_REGISTER_OP = 0, | |
| 820 | ||
| 821 | 	/* opcodes to update napi_list when static tracking is used */ | |
| 822 | 	IO_URING_NAPI_STATIC_ADD_ID = 1, | |
| 823 | 	IO_URING_NAPI_STATIC_DEL_ID = 2 | |
| 824 | }; | |
| 825 | ||
| 826 | enum io_uring_napi_tracking_strategy { | |
| 827 | 	/* value must be 0 for backward compatibility */ | |
| 828 | 	IO_URING_NAPI_TRACKING_DYNAMIC = 0, | |
| 829 | 	IO_URING_NAPI_TRACKING_STATIC = 1, | |
| 830 | 	IO_URING_NAPI_TRACKING_INACTIVE = 255 | |
| 831 | }; | |
| 832 | ||
| 729 | 833 | /* argument for IORING_(UN)REGISTER_NAPI */ |
| 730 | 834 | struct io_uring_napi { |
| 731 | 835 | 	__u32	busy_poll_to; |
| 732 | 836 | 	__u8	prefer_busy_poll; |
| 733 | 	__u8	pad[3]; | |
| 734 | 	__u64	resv; | |
| 837 | ||
| 838 | 	/* a io_uring_napi_op value */ | |
| 839 | 	__u8	opcode; | |
| 840 | 	__u8	pad[2]; | |
| 841 | ||
| 842 | 	/* | |
| 843 | 	 * for IO_URING_NAPI_REGISTER_OP, it is a | |
| 844 | 	 * io_uring_napi_tracking_strategy value. | |
| 845 | 	 * | |
| 846 | 	 * for IO_URING_NAPI_STATIC_ADD_ID/IO_URING_NAPI_STATIC_DEL_ID | |
| 847 | 	 * it is the napi id to add/del from napi_list. | |
| 848 | 	 */ | |
| 849 | 	__u32	op_param; | |
| 850 | 	__u32	resv; | |
| 735 | 851 | }; |
| 736 | 852 | |
| 737 | 853 | /* |
| ... | ... | @@ -753,10 +869,33 @@ enum io_uring_register_restriction_op { |
| 753 | 869 | 	IORING_RESTRICTION_LAST |
| 754 | 870 | }; |
| 755 | 871 | |
| 872 | enum { | |
| 873 | 	IORING_REG_WAIT_TS		= (1U << 0), | |
| 874 | }; | |
| 875 | ||
| 876 | /* | |
| 877 | * Argument for io_uring_enter(2) with | |
| 878 | * IORING_GETEVENTS | IORING_ENTER_EXT_ARG_REG set, where the actual argument | |
| 879 | * is an index into a previously registered fixed wait region described by | |
| 880 | * the below structure. | |
| 881 | */ | |
| 882 | struct io_uring_reg_wait { | |
| 883 | 	struct __kernel_timespec	ts; | |
| 884 | 	__u32				min_wait_usec; | |
| 885 | 	__u32				flags; | |
| 886 | 	__u64				sigmask; | |
| 887 | 	__u32				sigmask_sz; | |
| 888 | 	__u32				pad[3]; | |
| 889 | 	__u64				pad2[2]; | |
| 890 | }; | |
| 891 | ||
| 892 | /* | |
| 893 | * Argument for io_uring_enter(2) with IORING_GETEVENTS | IORING_ENTER_EXT_ARG | |
| 894 | */ | |
| 756 | 895 | struct io_uring_getevents_arg { |
| 757 | 896 | 	__u64	sigmask; |
| 758 | 897 | 	__u32	sigmask_sz; |
| 759 | 	__u32	pad; | |
| 898 | 	__u32	min_wait_usec; | |
| 760 | 899 | 	__u64	ts; |
| 761 | 900 | }; |
| 762 | 901 |
lib/libc/include/any-linux-any/linux/ioam6_iptunnel.h+6| ... | ... | @@ -50,6 +50,12 @@ enum { |
| 50 | 50 | 	IOAM6_IPTUNNEL_FREQ_K,		/* u32 */ |
| 51 | 51 | 	IOAM6_IPTUNNEL_FREQ_N,		/* u32 */ |
| 52 | 52 | |
| 53 | 	/* Tunnel src address. | |
| 54 | 	 * For encap,auto modes. | |
| 55 | 	 * Optional (automatic if not provided). | |
| 56 | 	 */ | |
| 57 | 	IOAM6_IPTUNNEL_SRC,		/* struct in6_addr */ | |
| 58 | ||
| 53 | 59 | 	__IOAM6_IPTUNNEL_MAX, |
| 54 | 60 | }; |
| 55 | 61 |
lib/libc/include/any-linux-any/linux/iommufd.h+351-29| ... | ... | @@ -4,8 +4,8 @@ |
| 4 | 4 | #ifndef _IOMMUFD_H |
| 5 | 5 | #define _IOMMUFD_H |
| 6 | 6 | |
| 7 | #include <linux/types.h> | |
| 8 | 7 | #include <linux/ioctl.h> |
| 8 | #include <linux/types.h> | |
| 9 | 9 | |
| 10 | 10 | #define IOMMUFD_TYPE (';') |
| 11 | 11 | |
| ... | ... | @@ -37,19 +37,24 @@ |
| 37 | 37 | enum { |
| 38 | 38 | 	IOMMUFD_CMD_BASE = 0x80, |
| 39 | 39 | 	IOMMUFD_CMD_DESTROY = IOMMUFD_CMD_BASE, |
| 40 | 	IOMMUFD_CMD_IOAS_ALLOC, | |
| 41 | 	IOMMUFD_CMD_IOAS_ALLOW_IOVAS, | |
| 42 | 	IOMMUFD_CMD_IOAS_COPY, | |
| 43 | 	IOMMUFD_CMD_IOAS_IOVA_RANGES, | |
| 44 | 	IOMMUFD_CMD_IOAS_MAP, | |
| 45 | 	IOMMUFD_CMD_IOAS_UNMAP, | |
| 46 | 	IOMMUFD_CMD_OPTION, | |
| 47 | 	IOMMUFD_CMD_VFIO_IOAS, | |
| 48 | 	IOMMUFD_CMD_HWPT_ALLOC, | |
| 49 | 	IOMMUFD_CMD_GET_HW_INFO, | |
| 50 | 	IOMMUFD_CMD_HWPT_SET_DIRTY_TRACKING, | |
| 51 | 	IOMMUFD_CMD_HWPT_GET_DIRTY_BITMAP, | |
| 52 | 	IOMMUFD_CMD_HWPT_INVALIDATE, | |
| 40 | 	IOMMUFD_CMD_IOAS_ALLOC = 0x81, | |
| 41 | 	IOMMUFD_CMD_IOAS_ALLOW_IOVAS = 0x82, | |
| 42 | 	IOMMUFD_CMD_IOAS_COPY = 0x83, | |
| 43 | 	IOMMUFD_CMD_IOAS_IOVA_RANGES = 0x84, | |
| 44 | 	IOMMUFD_CMD_IOAS_MAP = 0x85, | |
| 45 | 	IOMMUFD_CMD_IOAS_UNMAP = 0x86, | |
| 46 | 	IOMMUFD_CMD_OPTION = 0x87, | |
| 47 | 	IOMMUFD_CMD_VFIO_IOAS = 0x88, | |
| 48 | 	IOMMUFD_CMD_HWPT_ALLOC = 0x89, | |
| 49 | 	IOMMUFD_CMD_GET_HW_INFO = 0x8a, | |
| 50 | 	IOMMUFD_CMD_HWPT_SET_DIRTY_TRACKING = 0x8b, | |
| 51 | 	IOMMUFD_CMD_HWPT_GET_DIRTY_BITMAP = 0x8c, | |
| 52 | 	IOMMUFD_CMD_HWPT_INVALIDATE = 0x8d, | |
| 53 | 	IOMMUFD_CMD_FAULT_QUEUE_ALLOC = 0x8e, | |
| 54 | 	IOMMUFD_CMD_IOAS_MAP_FILE = 0x8f, | |
| 55 | 	IOMMUFD_CMD_VIOMMU_ALLOC = 0x90, | |
| 56 | 	IOMMUFD_CMD_VDEVICE_ALLOC = 0x91, | |
| 57 | 	IOMMUFD_CMD_IOAS_CHANGE_PROCESS = 0x92, | |
| 53 | 58 | }; |
| 54 | 59 | |
| 55 | 60 | /** |
| ... | ... | @@ -212,6 +217,30 @@ struct iommu_ioas_map { |
| 212 | 217 | }; |
| 213 | 218 | #define IOMMU_IOAS_MAP _IO(IOMMUFD_TYPE, IOMMUFD_CMD_IOAS_MAP) |
| 214 | 219 | |
| 220 | /** | |
| 221 | * struct iommu_ioas_map_file - ioctl(IOMMU_IOAS_MAP_FILE) | |
| 222 | * @size: sizeof(struct iommu_ioas_map_file) | |
| 223 | * @flags: same as for iommu_ioas_map | |
| 224 | * @ioas_id: same as for iommu_ioas_map | |
| 225 | * @fd: the memfd to map | |
| 226 | * @start: byte offset from start of file to map from | |
| 227 | * @length: same as for iommu_ioas_map | |
| 228 | * @iova: same as for iommu_ioas_map | |
| 229 | * | |
| 230 | * Set an IOVA mapping from a memfd file. All other arguments and semantics | |
| 231 | * match those of IOMMU_IOAS_MAP. | |
| 232 | */ | |
| 233 | struct iommu_ioas_map_file { | |
| 234 | 	__u32 size; | |
| 235 | 	__u32 flags; | |
| 236 | 	__u32 ioas_id; | |
| 237 | 	__s32 fd; | |
| 238 | 	__aligned_u64 start; | |
| 239 | 	__aligned_u64 length; | |
| 240 | 	__aligned_u64 iova; | |
| 241 | }; | |
| 242 | #define IOMMU_IOAS_MAP_FILE _IO(IOMMUFD_TYPE, IOMMUFD_CMD_IOAS_MAP_FILE) | |
| 243 | ||
| 215 | 244 | /** |
| 216 | 245 | * struct iommu_ioas_copy - ioctl(IOMMU_IOAS_COPY) |
| 217 | 246 | * @size: sizeof(struct iommu_ioas_copy) |
| ... | ... | @@ -268,7 +297,7 @@ struct iommu_ioas_unmap { |
| 268 | 297 | * ioctl(IOMMU_OPTION_HUGE_PAGES) |
| 269 | 298 | * @IOMMU_OPTION_RLIMIT_MODE: |
| 270 | 299 | * Change how RLIMIT_MEMLOCK accounting works. The caller must have privilege |
| 271 | * to invoke this. Value 0 (default) is user based accouting, 1 uses process | |
| 300 | * to invoke this. Value 0 (default) is user based accounting, 1 uses process | |
| 272 | 301 | * based accounting. Global option, object_id must be 0 |
| 273 | 302 | * @IOMMU_OPTION_HUGE_PAGES: |
| 274 | 303 | * Value 1 (default) allows contiguous pages to be combined when generating |
| ... | ... | @@ -356,10 +385,21 @@ struct iommu_vfio_ioas { |
| 356 | 385 | * the parent HWPT in a nesting configuration. |
| 357 | 386 | * @IOMMU_HWPT_ALLOC_DIRTY_TRACKING: Dirty tracking support for device IOMMU is |
| 358 | 387 | * enforced on device attachment |
| 388 | * @IOMMU_HWPT_FAULT_ID_VALID: The fault_id field of hwpt allocation data is | |
| 389 | * valid. | |
| 390 | * @IOMMU_HWPT_ALLOC_PASID: Requests a domain that can be used with PASID. The | |
| 391 | * domain can be attached to any PASID on the device. | |
| 392 | * Any domain attached to the non-PASID part of the | |
| 393 | * device must also be flagged, otherwise attaching a | |
| 394 | * PASID will blocked. | |
| 395 | * If IOMMU does not support PASID it will return | |
| 396 | * error (-EOPNOTSUPP). | |
| 359 | 397 | */ |
| 360 | 398 | enum iommufd_hwpt_alloc_flags { |
| 361 | 399 | 	IOMMU_HWPT_ALLOC_NEST_PARENT = 1 << 0, |
| 362 | 400 | 	IOMMU_HWPT_ALLOC_DIRTY_TRACKING = 1 << 1, |
| 401 | 	IOMMU_HWPT_FAULT_ID_VALID = 1 << 2, | |
| 402 | 	IOMMU_HWPT_ALLOC_PASID = 1 << 3, | |
| 363 | 403 | }; |
| 364 | 404 | |
| 365 | 405 | /** |
| ... | ... | @@ -390,14 +430,36 @@ struct iommu_hwpt_vtd_s1 { |
| 390 | 430 | 	__u32 __reserved; |
| 391 | 431 | }; |
| 392 | 432 | |
| 433 | /** | |
| 434 | * struct iommu_hwpt_arm_smmuv3 - ARM SMMUv3 nested STE | |
| 435 | * (IOMMU_HWPT_DATA_ARM_SMMUV3) | |
| 436 | * | |
| 437 | * @ste: The first two double words of the user space Stream Table Entry for | |
| 438 | * the translation. Must be little-endian. | |
| 439 | * Allowed fields: (Refer to "5.2 Stream Table Entry" in SMMUv3 HW Spec) | |
| 440 | * - word-0: V, Cfg, S1Fmt, S1ContextPtr, S1CDMax | |
| 441 | * - word-1: EATS, S1DSS, S1CIR, S1COR, S1CSH, S1STALLD | |
| 442 | * | |
| 443 | * -EIO will be returned if @ste is not legal or contains any non-allowed field. | |
| 444 | * Cfg can be used to select a S1, Bypass or Abort configuration. A Bypass | |
| 445 | * nested domain will translate the same as the nesting parent. The S1 will | |
| 446 | * install a Context Descriptor Table pointing at userspace memory translated | |
| 447 | * by the nesting parent. | |
| 448 | */ | |
| 449 | struct iommu_hwpt_arm_smmuv3 { | |
| 450 | 	__aligned_le64 ste[2]; | |
| 451 | }; | |
| 452 | ||
| 393 | 453 | /** |
| 394 | 454 | * enum iommu_hwpt_data_type - IOMMU HWPT Data Type |
| 395 | 455 | * @IOMMU_HWPT_DATA_NONE: no data |
| 396 | 456 | * @IOMMU_HWPT_DATA_VTD_S1: Intel VT-d stage-1 page table |
| 457 | * @IOMMU_HWPT_DATA_ARM_SMMUV3: ARM SMMUv3 Context Descriptor Table | |
| 397 | 458 | */ |
| 398 | 459 | enum iommu_hwpt_data_type { |
| 399 | 	IOMMU_HWPT_DATA_NONE, | |
| 400 | 	IOMMU_HWPT_DATA_VTD_S1, | |
| 460 | 	IOMMU_HWPT_DATA_NONE = 0, | |
| 461 | 	IOMMU_HWPT_DATA_VTD_S1 = 1, | |
| 462 | 	IOMMU_HWPT_DATA_ARM_SMMUV3 = 2, | |
| 401 | 463 | }; |
| 402 | 464 | |
| 403 | 465 | /** |
| ... | ... | @@ -405,12 +467,15 @@ enum iommu_hwpt_data_type { |
| 405 | 467 | * @size: sizeof(struct iommu_hwpt_alloc) |
| 406 | 468 | * @flags: Combination of enum iommufd_hwpt_alloc_flags |
| 407 | 469 | * @dev_id: The device to allocate this HWPT for |
| 408 | * @pt_id: The IOAS or HWPT to connect this HWPT to | |
| 470 | * @pt_id: The IOAS or HWPT or vIOMMU to connect this HWPT to | |
| 409 | 471 | * @out_hwpt_id: The ID of the new HWPT |
| 410 | 472 | * @__reserved: Must be 0 |
| 411 | 473 | * @data_type: One of enum iommu_hwpt_data_type |
| 412 | 474 | * @data_len: Length of the type specific data |
| 413 | 475 | * @data_uptr: User pointer to the type specific data |
| 476 | * @fault_id: The ID of IOMMUFD_FAULT object. Valid only if flags field of | |
| 477 | * IOMMU_HWPT_FAULT_ID_VALID is set. | |
| 478 | * @__reserved2: Padding to 64-bit alignment. Must be 0. | |
| 414 | 479 | * |
| 415 | 480 | * Explicitly allocate a hardware page table object. This is the same object |
| 416 | 481 | * type that is returned by iommufd_device_attach() and represents the |
| ... | ... | @@ -421,11 +486,13 @@ enum iommu_hwpt_data_type { |
| 421 | 486 | * IOMMU_HWPT_DATA_NONE. The HWPT can be allocated as a parent HWPT for a |
| 422 | 487 | * nesting configuration by passing IOMMU_HWPT_ALLOC_NEST_PARENT via @flags. |
| 423 | 488 | * |
| 424 | * A user-managed nested HWPT will be created from a given parent HWPT via | |
| 425 | * @pt_id, in which the parent HWPT must be allocated previously via the | |
| 426 | * same ioctl from a given IOAS (@pt_id). In this case, the @data_type | |
| 427 | * must be set to a pre-defined type corresponding to an I/O page table | |
| 428 | * type supported by the underlying IOMMU hardware. | |
| 489 | * A user-managed nested HWPT will be created from a given vIOMMU (wrapping a | |
| 490 | * parent HWPT) or a parent HWPT via @pt_id, in which the parent HWPT must be | |
| 491 | * allocated previously via the same ioctl from a given IOAS (@pt_id). In this | |
| 492 | * case, the @data_type must be set to a pre-defined type corresponding to an | |
| 493 | * I/O page table type supported by the underlying IOMMU hardware. The device | |
| 494 | * via @dev_id and the vIOMMU via @pt_id must be associated to the same IOMMU | |
| 495 | * instance. | |
| 429 | 496 | * |
| 430 | 497 | * If the @data_type is set to IOMMU_HWPT_DATA_NONE, @data_len and |
| 431 | 498 | * @data_uptr should be zero. Otherwise, both @data_len and @data_uptr |
| ... | ... | @@ -441,6 +508,8 @@ struct iommu_hwpt_alloc { |
| 441 | 508 | 	__u32 data_type; |
| 442 | 509 | 	__u32 data_len; |
| 443 | 510 | 	__aligned_u64 data_uptr; |
| 511 | 	__u32 fault_id; | |
| 512 | 	__u32 __reserved2; | |
| 444 | 513 | }; |
| 445 | 514 | #define IOMMU_HWPT_ALLOC _IO(IOMMUFD_TYPE, IOMMUFD_CMD_HWPT_ALLOC) |
| 446 | 515 | |
| ... | ... | @@ -475,15 +544,59 @@ struct iommu_hw_info_vtd { |
| 475 | 544 | 	__aligned_u64 ecap_reg; |
| 476 | 545 | }; |
| 477 | 546 | |
| 547 | /** | |
| 548 | * struct iommu_hw_info_arm_smmuv3 - ARM SMMUv3 hardware information | |
| 549 | * (IOMMU_HW_INFO_TYPE_ARM_SMMUV3) | |
| 550 | * | |
| 551 | * @flags: Must be set to 0 | |
| 552 | * @__reserved: Must be 0 | |
| 553 | * @idr: Implemented features for ARM SMMU Non-secure programming interface | |
| 554 | * @iidr: Information about the implementation and implementer of ARM SMMU, | |
| 555 | * and architecture version supported | |
| 556 | * @aidr: ARM SMMU architecture version | |
| 557 | * | |
| 558 | * For the details of @idr, @iidr and @aidr, please refer to the chapters | |
| 559 | * from 6.3.1 to 6.3.6 in the SMMUv3 Spec. | |
| 560 | * | |
| 561 | * This reports the raw HW capability, and not all bits are meaningful to be | |
| 562 | * read by userspace. Only the following fields should be used: | |
| 563 | * | |
| 564 | * idr[0]: ST_LEVEL, TERM_MODEL, STALL_MODEL, TTENDIAN , CD2L, ASID16, TTF | |
| 565 | * idr[1]: SIDSIZE, SSIDSIZE | |
| 566 | * idr[3]: BBML, RIL | |
| 567 | * idr[5]: VAX, GRAN64K, GRAN16K, GRAN4K | |
| 568 | * | |
| 569 | * - S1P should be assumed to be true if a NESTED HWPT can be created | |
| 570 | * - VFIO/iommufd only support platforms with COHACC, it should be assumed to be | |
| 571 | * true. | |
| 572 | * - ATS is a per-device property. If the VMM describes any devices as ATS | |
| 573 | * capable in ACPI/DT it should set the corresponding idr. | |
| 574 | * | |
| 575 | * This list may expand in future (eg E0PD, AIE, PBHA, D128, DS etc). It is | |
| 576 | * important that VMMs do not read bits outside the list to allow for | |
| 577 | * compatibility with future kernels. Several features in the SMMUv3 | |
| 578 | * architecture are not currently supported by the kernel for nesting: HTTU, | |
| 579 | * BTM, MPAM and others. | |
| 580 | */ | |
| 581 | struct iommu_hw_info_arm_smmuv3 { | |
| 582 | 	__u32 flags; | |
| 583 | 	__u32 __reserved; | |
| 584 | 	__u32 idr[6]; | |
| 585 | 	__u32 iidr; | |
| 586 | 	__u32 aidr; | |
| 587 | }; | |
| 588 | ||
| 478 | 589 | /** |
| 479 | 590 | * enum iommu_hw_info_type - IOMMU Hardware Info Types |
| 480 | 591 | * @IOMMU_HW_INFO_TYPE_NONE: Used by the drivers that do not report hardware |
| 481 | 592 | * info |
| 482 | 593 | * @IOMMU_HW_INFO_TYPE_INTEL_VTD: Intel VT-d iommu info type |
| 594 | * @IOMMU_HW_INFO_TYPE_ARM_SMMUV3: ARM SMMUv3 iommu info type | |
| 483 | 595 | */ |
| 484 | 596 | enum iommu_hw_info_type { |
| 485 | 	IOMMU_HW_INFO_TYPE_NONE, | |
| 486 | 	IOMMU_HW_INFO_TYPE_INTEL_VTD, | |
| 597 | 	IOMMU_HW_INFO_TYPE_NONE = 0, | |
| 598 | 	IOMMU_HW_INFO_TYPE_INTEL_VTD = 1, | |
| 599 | 	IOMMU_HW_INFO_TYPE_ARM_SMMUV3 = 2, | |
| 487 | 600 | }; |
| 488 | 601 | |
| 489 | 602 | /** |
| ... | ... | @@ -618,9 +731,11 @@ struct iommu_hwpt_get_dirty_bitmap { |
| 618 | 731 | * enum iommu_hwpt_invalidate_data_type - IOMMU HWPT Cache Invalidation |
| 619 | 732 | * Data Type |
| 620 | 733 | * @IOMMU_HWPT_INVALIDATE_DATA_VTD_S1: Invalidation data for VTD_S1 |
| 734 | * @IOMMU_VIOMMU_INVALIDATE_DATA_ARM_SMMUV3: Invalidation data for ARM SMMUv3 | |
| 621 | 735 | */ |
| 622 | 736 | enum iommu_hwpt_invalidate_data_type { |
| 623 | 	IOMMU_HWPT_INVALIDATE_DATA_VTD_S1, | |
| 737 | 	IOMMU_HWPT_INVALIDATE_DATA_VTD_S1 = 0, | |
| 738 | 	IOMMU_VIOMMU_INVALIDATE_DATA_ARM_SMMUV3 = 1, | |
| 624 | 739 | }; |
| 625 | 740 | |
| 626 | 741 | /** |
| ... | ... | @@ -659,10 +774,32 @@ struct iommu_hwpt_vtd_s1_invalidate { |
| 659 | 774 | 	__u32 __reserved; |
| 660 | 775 | }; |
| 661 | 776 | |
| 777 | /** | |
| 778 | * struct iommu_viommu_arm_smmuv3_invalidate - ARM SMMUv3 cache invalidation | |
| 779 | * (IOMMU_VIOMMU_INVALIDATE_DATA_ARM_SMMUV3) | |
| 780 | * @cmd: 128-bit cache invalidation command that runs in SMMU CMDQ. | |
| 781 | * Must be little-endian. | |
| 782 | * | |
| 783 | * Supported command list only when passing in a vIOMMU via @hwpt_id: | |
| 784 | * CMDQ_OP_TLBI_NSNH_ALL | |
| 785 | * CMDQ_OP_TLBI_NH_VA | |
| 786 | * CMDQ_OP_TLBI_NH_VAA | |
| 787 | * CMDQ_OP_TLBI_NH_ALL | |
| 788 | * CMDQ_OP_TLBI_NH_ASID | |
| 789 | * CMDQ_OP_ATC_INV | |
| 790 | * CMDQ_OP_CFGI_CD | |
| 791 | * CMDQ_OP_CFGI_CD_ALL | |
| 792 | * | |
| 793 | * -EIO will be returned if the command is not supported. | |
| 794 | */ | |
| 795 | struct iommu_viommu_arm_smmuv3_invalidate { | |
| 796 | 	__aligned_le64 cmd[2]; | |
| 797 | }; | |
| 798 | ||
| 662 | 799 | /** |
| 663 | 800 | * struct iommu_hwpt_invalidate - ioctl(IOMMU_HWPT_INVALIDATE) |
| 664 | 801 | * @size: sizeof(struct iommu_hwpt_invalidate) |
| 665 | * @hwpt_id: ID of a nested HWPT for cache invalidation | |
| 802 | * @hwpt_id: ID of a nested HWPT or a vIOMMU, for cache invalidation | |
| 666 | 803 | * @data_uptr: User pointer to an array of driver-specific cache invalidation |
| 667 | 804 | * data. |
| 668 | 805 | * @data_type: One of enum iommu_hwpt_invalidate_data_type, defining the data |
| ... | ... | @@ -673,8 +810,11 @@ struct iommu_hwpt_vtd_s1_invalidate { |
| 673 | 810 | * Output the number of requests successfully handled by kernel. |
| 674 | 811 | * @__reserved: Must be 0. |
| 675 | 812 | * |
| 676 | * Invalidate the iommu cache for user-managed page table. Modifications on a | |
| 677 | * user-managed page table should be followed by this operation to sync cache. | |
| 813 | * Invalidate iommu cache for user-managed page table or vIOMMU. Modifications | |
| 814 | * on a user-managed page table should be followed by this operation, if a HWPT | |
| 815 | * is passed in via @hwpt_id. Other caches, such as device cache or descriptor | |
| 816 | * cache can be flushed if a vIOMMU is passed in via the @hwpt_id field. | |
| 817 | * | |
| 678 | 818 | * Each ioctl can support one or more cache invalidation requests in the array |
| 679 | 819 | * that has a total size of @entry_len * @entry_num. |
| 680 | 820 | * |
| ... | ... | @@ -692,4 +832,186 @@ struct iommu_hwpt_invalidate { |
| 692 | 832 | 	__u32 __reserved; |
| 693 | 833 | }; |
| 694 | 834 | #define IOMMU_HWPT_INVALIDATE _IO(IOMMUFD_TYPE, IOMMUFD_CMD_HWPT_INVALIDATE) |
| 835 | ||
| 836 | /** | |
| 837 | * enum iommu_hwpt_pgfault_flags - flags for struct iommu_hwpt_pgfault | |
| 838 | * @IOMMU_PGFAULT_FLAGS_PASID_VALID: The pasid field of the fault data is | |
| 839 | * valid. | |
| 840 | * @IOMMU_PGFAULT_FLAGS_LAST_PAGE: It's the last fault of a fault group. | |
| 841 | */ | |
| 842 | enum iommu_hwpt_pgfault_flags { | |
| 843 | 	IOMMU_PGFAULT_FLAGS_PASID_VALID		= (1 << 0), | |
| 844 | 	IOMMU_PGFAULT_FLAGS_LAST_PAGE		= (1 << 1), | |
| 845 | }; | |
| 846 | ||
| 847 | /** | |
| 848 | * enum iommu_hwpt_pgfault_perm - perm bits for struct iommu_hwpt_pgfault | |
| 849 | * @IOMMU_PGFAULT_PERM_READ: request for read permission | |
| 850 | * @IOMMU_PGFAULT_PERM_WRITE: request for write permission | |
| 851 | * @IOMMU_PGFAULT_PERM_EXEC: (PCIE 10.4.1) request with a PASID that has the | |
| 852 | * Execute Requested bit set in PASID TLP Prefix. | |
| 853 | * @IOMMU_PGFAULT_PERM_PRIV: (PCIE 10.4.1) request with a PASID that has the | |
| 854 | * Privileged Mode Requested bit set in PASID TLP | |
| 855 | * Prefix. | |
| 856 | */ | |
| 857 | enum iommu_hwpt_pgfault_perm { | |
| 858 | 	IOMMU_PGFAULT_PERM_READ			= (1 << 0), | |
| 859 | 	IOMMU_PGFAULT_PERM_WRITE		= (1 << 1), | |
| 860 | 	IOMMU_PGFAULT_PERM_EXEC			= (1 << 2), | |
| 861 | 	IOMMU_PGFAULT_PERM_PRIV			= (1 << 3), | |
| 862 | }; | |
| 863 | ||
| 864 | /** | |
| 865 | * struct iommu_hwpt_pgfault - iommu page fault data | |
| 866 | * @flags: Combination of enum iommu_hwpt_pgfault_flags | |
| 867 | * @dev_id: id of the originated device | |
| 868 | * @pasid: Process Address Space ID | |
| 869 | * @grpid: Page Request Group Index | |
| 870 | * @perm: Combination of enum iommu_hwpt_pgfault_perm | |
| 871 | * @__reserved: Must be 0. | |
| 872 | * @addr: Fault address | |
| 873 | * @length: a hint of how much data the requestor is expecting to fetch. For | |
| 874 | * example, if the PRI initiator knows it is going to do a 10MB | |
| 875 | * transfer, it could fill in 10MB and the OS could pre-fault in | |
| 876 | * 10MB of IOVA. It's default to 0 if there's no such hint. | |
| 877 | * @cookie: kernel-managed cookie identifying a group of fault messages. The | |
| 878 | * cookie number encoded in the last page fault of the group should | |
| 879 | * be echoed back in the response message. | |
| 880 | */ | |
| 881 | struct iommu_hwpt_pgfault { | |
| 882 | 	__u32 flags; | |
| 883 | 	__u32 dev_id; | |
| 884 | 	__u32 pasid; | |
| 885 | 	__u32 grpid; | |
| 886 | 	__u32 perm; | |
| 887 | 	__u32 __reserved; | |
| 888 | 	__aligned_u64 addr; | |
| 889 | 	__u32 length; | |
| 890 | 	__u32 cookie; | |
| 891 | }; | |
| 892 | ||
| 893 | /** | |
| 894 | * enum iommufd_page_response_code - Return status of fault handlers | |
| 895 | * @IOMMUFD_PAGE_RESP_SUCCESS: Fault has been handled and the page tables | |
| 896 | * populated, retry the access. This is the | |
| 897 | * "Success" defined in PCI 10.4.2.1. | |
| 898 | * @IOMMUFD_PAGE_RESP_INVALID: Could not handle this fault, don't retry the | |
| 899 | * access. This is the "Invalid Request" in PCI | |
| 900 | * 10.4.2.1. | |
| 901 | */ | |
| 902 | enum iommufd_page_response_code { | |
| 903 | 	IOMMUFD_PAGE_RESP_SUCCESS = 0, | |
| 904 | 	IOMMUFD_PAGE_RESP_INVALID = 1, | |
| 905 | }; | |
| 906 | ||
| 907 | /** | |
| 908 | * struct iommu_hwpt_page_response - IOMMU page fault response | |
| 909 | * @cookie: The kernel-managed cookie reported in the fault message. | |
| 910 | * @code: One of response code in enum iommufd_page_response_code. | |
| 911 | */ | |
| 912 | struct iommu_hwpt_page_response { | |
| 913 | 	__u32 cookie; | |
| 914 | 	__u32 code; | |
| 915 | }; | |
| 916 | ||
| 917 | /** | |
| 918 | * struct iommu_fault_alloc - ioctl(IOMMU_FAULT_QUEUE_ALLOC) | |
| 919 | * @size: sizeof(struct iommu_fault_alloc) | |
| 920 | * @flags: Must be 0 | |
| 921 | * @out_fault_id: The ID of the new FAULT | |
| 922 | * @out_fault_fd: The fd of the new FAULT | |
| 923 | * | |
| 924 | * Explicitly allocate a fault handling object. | |
| 925 | */ | |
| 926 | struct iommu_fault_alloc { | |
| 927 | 	__u32 size; | |
| 928 | 	__u32 flags; | |
| 929 | 	__u32 out_fault_id; | |
| 930 | 	__u32 out_fault_fd; | |
| 931 | }; | |
| 932 | #define IOMMU_FAULT_QUEUE_ALLOC _IO(IOMMUFD_TYPE, IOMMUFD_CMD_FAULT_QUEUE_ALLOC) | |
| 933 | ||
| 934 | /** | |
| 935 | * enum iommu_viommu_type - Virtual IOMMU Type | |
| 936 | * @IOMMU_VIOMMU_TYPE_DEFAULT: Reserved for future use | |
| 937 | * @IOMMU_VIOMMU_TYPE_ARM_SMMUV3: ARM SMMUv3 driver specific type | |
| 938 | */ | |
| 939 | enum iommu_viommu_type { | |
| 940 | 	IOMMU_VIOMMU_TYPE_DEFAULT = 0, | |
| 941 | 	IOMMU_VIOMMU_TYPE_ARM_SMMUV3 = 1, | |
| 942 | }; | |
| 943 | ||
| 944 | /** | |
| 945 | * struct iommu_viommu_alloc - ioctl(IOMMU_VIOMMU_ALLOC) | |
| 946 | * @size: sizeof(struct iommu_viommu_alloc) | |
| 947 | * @flags: Must be 0 | |
| 948 | * @type: Type of the virtual IOMMU. Must be defined in enum iommu_viommu_type | |
| 949 | * @dev_id: The device's physical IOMMU will be used to back the virtual IOMMU | |
| 950 | * @hwpt_id: ID of a nesting parent HWPT to associate to | |
| 951 | * @out_viommu_id: Output virtual IOMMU ID for the allocated object | |
| 952 | * | |
| 953 | * Allocate a virtual IOMMU object, representing the underlying physical IOMMU's | |
| 954 | * virtualization support that is a security-isolated slice of the real IOMMU HW | |
| 955 | * that is unique to a specific VM. Operations global to the IOMMU are connected | |
| 956 | * to the vIOMMU, such as: | |
| 957 | * - Security namespace for guest owned ID, e.g. guest-controlled cache tags | |
| 958 | * - Non-device-affiliated event reporting, e.g. invalidation queue errors | |
| 959 | * - Access to a sharable nesting parent pagetable across physical IOMMUs | |
| 960 | * - Virtualization of various platforms IDs, e.g. RIDs and others | |
| 961 | * - Delivery of paravirtualized invalidation | |
| 962 | * - Direct assigned invalidation queues | |
| 963 | * - Direct assigned interrupts | |
| 964 | */ | |
| 965 | struct iommu_viommu_alloc { | |
| 966 | 	__u32 size; | |
| 967 | 	__u32 flags; | |
| 968 | 	__u32 type; | |
| 969 | 	__u32 dev_id; | |
| 970 | 	__u32 hwpt_id; | |
| 971 | 	__u32 out_viommu_id; | |
| 972 | }; | |
| 973 | #define IOMMU_VIOMMU_ALLOC _IO(IOMMUFD_TYPE, IOMMUFD_CMD_VIOMMU_ALLOC) | |
| 974 | ||
| 975 | /** | |
| 976 | * struct iommu_vdevice_alloc - ioctl(IOMMU_VDEVICE_ALLOC) | |
| 977 | * @size: sizeof(struct iommu_vdevice_alloc) | |
| 978 | * @viommu_id: vIOMMU ID to associate with the virtual device | |
| 979 | * @dev_id: The physical device to allocate a virtual instance on the vIOMMU | |
| 980 | * @out_vdevice_id: Object handle for the vDevice. Pass to IOMMU_DESTORY | |
| 981 | * @virt_id: Virtual device ID per vIOMMU, e.g. vSID of ARM SMMUv3, vDeviceID | |
| 982 | * of AMD IOMMU, and vRID of a nested Intel VT-d to a Context Table | |
| 983 | * | |
| 984 | * Allocate a virtual device instance (for a physical device) against a vIOMMU. | |
| 985 | * This instance holds the device's information (related to its vIOMMU) in a VM. | |
| 986 | */ | |
| 987 | struct iommu_vdevice_alloc { | |
| 988 | 	__u32 size; | |
| 989 | 	__u32 viommu_id; | |
| 990 | 	__u32 dev_id; | |
| 991 | 	__u32 out_vdevice_id; | |
| 992 | 	__aligned_u64 virt_id; | |
| 993 | }; | |
| 994 | #define IOMMU_VDEVICE_ALLOC _IO(IOMMUFD_TYPE, IOMMUFD_CMD_VDEVICE_ALLOC) | |
| 995 | ||
| 996 | /** | |
| 997 | * struct iommu_ioas_change_process - ioctl(VFIO_IOAS_CHANGE_PROCESS) | |
| 998 | * @size: sizeof(struct iommu_ioas_change_process) | |
| 999 | * @__reserved: Must be 0 | |
| 1000 | * | |
| 1001 | * This transfers pinned memory counts for every memory map in every IOAS | |
| 1002 | * in the context to the current process. This only supports maps created | |
| 1003 | * with IOMMU_IOAS_MAP_FILE, and returns EINVAL if other maps are present. | |
| 1004 | * If the ioctl returns a failure status, then nothing is changed. | |
| 1005 | * | |
| 1006 | * This API is useful for transferring operation of a device from one process | |
| 1007 | * to another, such as during userland live update. | |
| 1008 | */ | |
| 1009 | struct iommu_ioas_change_process { | |
| 1010 | 	__u32 size; | |
| 1011 | 	__u32 __reserved; | |
| 1012 | }; | |
| 1013 | ||
| 1014 | #define IOMMU_IOAS_CHANGE_PROCESS \ | |
| 1015 | 	_IO(IOMMUFD_TYPE, IOMMUFD_CMD_IOAS_CHANGE_PROCESS) | |
| 1016 | ||
| 695 | 1017 | #endif |
| \ No newline at end of file |
lib/libc/include/any-linux-any/linux/kernel-page-flags.h+1-1| ... | ... | @@ -7,7 +7,7 @@ |
| 7 | 7 | */ |
| 8 | 8 | |
| 9 | 9 | #define KPF_LOCKED		0 |
| 10 | #define KPF_ERROR		1 | |
| 10 | #define KPF_ERROR		1	/* Now unused */ | |
| 11 | 11 | #define KPF_REFERENCED		2 |
| 12 | 12 | #define KPF_UPTODATE		3 |
| 13 | 13 | #define KPF_DIRTY		4 |
lib/libc/include/any-linux-any/linux/kfd_ioctl.h+96-14| ... | ... | @@ -41,9 +41,11 @@ |
| 41 | 41 | * - 1.13 - Add debugger API |
| 42 | 42 | * - 1.14 - Update kfd_event_data |
| 43 | 43 | * - 1.15 - Enable managing mappings in compute VMs with GEM_VA ioctl |
| 44 | * - 1.16 - Add contiguous VRAM allocation flag | |
| 45 | * - 1.17 - Add SDMA queue creation with target SDMA engine ID | |
| 44 | 46 | */ |
| 45 | 47 | #define KFD_IOCTL_MAJOR_VERSION 1 |
| 46 | #define KFD_IOCTL_MINOR_VERSION 15 | |
| 48 | #define KFD_IOCTL_MINOR_VERSION 17 | |
| 47 | 49 | |
| 48 | 50 | struct kfd_ioctl_get_version_args { |
| 49 | 51 | 	__u32 major_version;	/* from KFD */ |
| ... | ... | @@ -55,6 +57,7 @@ struct kfd_ioctl_get_version_args { |
| 55 | 57 | #define KFD_IOC_QUEUE_TYPE_SDMA			0x1 |
| 56 | 58 | #define KFD_IOC_QUEUE_TYPE_COMPUTE_AQL		0x2 |
| 57 | 59 | #define KFD_IOC_QUEUE_TYPE_SDMA_XGMI		0x3 |
| 60 | #define KFD_IOC_QUEUE_TYPE_SDMA_BY_ENG_ID	0x4 | |
| 58 | 61 | |
| 59 | 62 | #define KFD_MAX_QUEUE_PERCENTAGE	100 |
| 60 | 63 | #define KFD_MAX_QUEUE_PRIORITY		15 |
| ... | ... | @@ -77,6 +80,8 @@ struct kfd_ioctl_create_queue_args { |
| 77 | 80 | 	__u64 ctx_save_restore_address; /* to KFD */ |
| 78 | 81 | 	__u32 ctx_save_restore_size;	/* to KFD */ |
| 79 | 82 | 	__u32 ctl_stack_size;		/* to KFD */ |
| 83 | 	__u32 sdma_engine_id;		/* to KFD */ | |
| 84 | 	__u32 pad; | |
| 80 | 85 | }; |
| 81 | 86 | |
| 82 | 87 | struct kfd_ioctl_destroy_queue_args { |
| ... | ... | @@ -407,6 +412,7 @@ struct kfd_ioctl_acquire_vm_args { |
| 407 | 412 | #define KFD_IOC_ALLOC_MEM_FLAGS_COHERENT	(1 << 26) |
| 408 | 413 | #define KFD_IOC_ALLOC_MEM_FLAGS_UNCACHED	(1 << 25) |
| 409 | 414 | #define KFD_IOC_ALLOC_MEM_FLAGS_EXT_COHERENT	(1 << 24) |
| 415 | #define KFD_IOC_ALLOC_MEM_FLAGS_CONTIGUOUS	(1 << 23) | |
| 410 | 416 | |
| 411 | 417 | /* Allocate memory for later SVM (shared virtual memory) mapping. |
| 412 | 418 | * |
| ... | ... | @@ -534,26 +540,29 @@ enum kfd_smi_event { |
| 534 | 540 | 	KFD_SMI_EVENT_ALL_PROCESS = 64 |
| 535 | 541 | }; |
| 536 | 542 | |
| 543 | /* The reason of the page migration event */ | |
| 537 | 544 | enum KFD_MIGRATE_TRIGGERS { |
| 538 | 	KFD_MIGRATE_TRIGGER_PREFETCH, | |
| 539 | 	KFD_MIGRATE_TRIGGER_PAGEFAULT_GPU, | |
| 540 | 	KFD_MIGRATE_TRIGGER_PAGEFAULT_CPU, | |
| 541 | 	KFD_MIGRATE_TRIGGER_TTM_EVICTION | |
| 545 | 	KFD_MIGRATE_TRIGGER_PREFETCH,		/* Prefetch to GPU VRAM or system memory */ | |
| 546 | 	KFD_MIGRATE_TRIGGER_PAGEFAULT_GPU,	/* GPU page fault recover */ | |
| 547 | 	KFD_MIGRATE_TRIGGER_PAGEFAULT_CPU,	/* CPU page fault recover */ | |
| 548 | 	KFD_MIGRATE_TRIGGER_TTM_EVICTION	/* TTM eviction */ | |
| 542 | 549 | }; |
| 543 | 550 | |
| 551 | /* The reason of user queue evition event */ | |
| 544 | 552 | enum KFD_QUEUE_EVICTION_TRIGGERS { |
| 545 | 	KFD_QUEUE_EVICTION_TRIGGER_SVM, | |
| 546 | 	KFD_QUEUE_EVICTION_TRIGGER_USERPTR, | |
| 547 | 	KFD_QUEUE_EVICTION_TRIGGER_TTM, | |
| 548 | 	KFD_QUEUE_EVICTION_TRIGGER_SUSPEND, | |
| 549 | 	KFD_QUEUE_EVICTION_CRIU_CHECKPOINT, | |
| 550 | 	KFD_QUEUE_EVICTION_CRIU_RESTORE | |
| 553 | 	KFD_QUEUE_EVICTION_TRIGGER_SVM,		/* SVM buffer migration */ | |
| 554 | 	KFD_QUEUE_EVICTION_TRIGGER_USERPTR,	/* userptr movement */ | |
| 555 | 	KFD_QUEUE_EVICTION_TRIGGER_TTM,		/* TTM move buffer */ | |
| 556 | 	KFD_QUEUE_EVICTION_TRIGGER_SUSPEND,	/* GPU suspend */ | |
| 557 | 	KFD_QUEUE_EVICTION_CRIU_CHECKPOINT,	/* CRIU checkpoint */ | |
| 558 | 	KFD_QUEUE_EVICTION_CRIU_RESTORE		/* CRIU restore */ | |
| 551 | 559 | }; |
| 552 | 560 | |
| 561 | /* The reason of unmap buffer from GPU event */ | |
| 553 | 562 | enum KFD_SVM_UNMAP_TRIGGERS { |
| 554 | 	KFD_SVM_UNMAP_TRIGGER_MMU_NOTIFY, | |
| 555 | 	KFD_SVM_UNMAP_TRIGGER_MMU_NOTIFY_MIGRATE, | |
| 556 | 	KFD_SVM_UNMAP_TRIGGER_UNMAP_FROM_CPU | |
| 563 | 	KFD_SVM_UNMAP_TRIGGER_MMU_NOTIFY,	/* MMU notifier CPU buffer movement */ | |
| 564 | 	KFD_SVM_UNMAP_TRIGGER_MMU_NOTIFY_MIGRATE,/* MMU notifier page migration */ | |
| 565 | 	KFD_SVM_UNMAP_TRIGGER_UNMAP_FROM_CPU	/* Unmap to free the buffer */ | |
| 557 | 566 | }; |
| 558 | 567 | |
| 559 | 568 | #define KFD_SMI_EVENT_MASK_FROM_INDEX(i) (1ULL << ((i) - 1)) |
| ... | ... | @@ -564,6 +573,78 @@ struct kfd_ioctl_smi_events_args { |
| 564 | 573 | 	__u32 anon_fd;	/* from KFD */ |
| 565 | 574 | }; |
| 566 | 575 | |
| 576 | /* | |
| 577 | * SVM event tracing via SMI system management interface | |
| 578 | * | |
| 579 | * Open event file descriptor | |
| 580 | * use ioctl AMDKFD_IOC_SMI_EVENTS, pass in gpuid and return a anonymous file | |
| 581 | * descriptor to receive SMI events. | |
| 582 | * If calling with sudo permission, then file descriptor can be used to receive | |
| 583 | * SVM events from all processes, otherwise, to only receive SVM events of same | |
| 584 | * process. | |
| 585 | * | |
| 586 | * To enable the SVM event | |
| 587 | * Write event file descriptor with KFD_SMI_EVENT_MASK_FROM_INDEX(event) bitmap | |
| 588 | * mask to start record the event to the kfifo, use bitmap mask combination | |
| 589 | * for multiple events. New event mask will overwrite the previous event mask. | |
| 590 | * KFD_SMI_EVENT_MASK_FROM_INDEX(KFD_SMI_EVENT_ALL_PROCESS) bit requires sudo | |
| 591 | * permisson to receive SVM events from all process. | |
| 592 | * | |
| 593 | * To receive the event | |
| 594 | * Application can poll file descriptor to wait for the events, then read event | |
| 595 | * from the file into a buffer. Each event is one line string message, starting | |
| 596 | * with the event id, then the event specific information. | |
| 597 | * | |
| 598 | * To decode event information | |
| 599 | * The following event format string macro can be used with sscanf to decode | |
| 600 | * the specific event information. | |
| 601 | * event triggers: the reason to generate the event, defined as enum for unmap, | |
| 602 | * eviction and migrate events. | |
| 603 | * node, from, to, prefetch_loc, preferred_loc: GPU ID, or 0 for system memory. | |
| 604 | * addr: user mode address, in pages | |
| 605 | * size: in pages | |
| 606 | * pid: the process ID to generate the event | |
| 607 | * ns: timestamp in nanosecond-resolution, starts at system boot time but | |
| 608 | * stops during suspend | |
| 609 | * migrate_update: GPU page fault is recovered by 'M' for migrate, 'U' for update | |
| 610 | * rw: 'W' for write page fault, 'R' for read page fault | |
| 611 | * rescheduled: 'R' if the queue restore failed and rescheduled to try again | |
| 612 | * error_code: migrate failure error code, 0 if no error | |
| 613 | */ | |
| 614 | #define KFD_EVENT_FMT_UPDATE_GPU_RESET(reset_seq_num, reset_cause)\ | |
| 615 | 		"%x %s\n", (reset_seq_num), (reset_cause) | |
| 616 | ||
| 617 | #define KFD_EVENT_FMT_THERMAL_THROTTLING(bitmask, counter)\ | |
| 618 | 		"%llx:%llx\n", (bitmask), (counter) | |
| 619 | ||
| 620 | #define KFD_EVENT_FMT_VMFAULT(pid, task_name)\ | |
| 621 | 		"%x:%s\n", (pid), (task_name) | |
| 622 | ||
| 623 | #define KFD_EVENT_FMT_PAGEFAULT_START(ns, pid, addr, node, rw)\ | |
| 624 | 		"%lld -%d @%lx(%x) %c\n", (ns), (pid), (addr), (node), (rw) | |
| 625 | ||
| 626 | #define KFD_EVENT_FMT_PAGEFAULT_END(ns, pid, addr, node, migrate_update)\ | |
| 627 | 		"%lld -%d @%lx(%x) %c\n", (ns), (pid), (addr), (node), (migrate_update) | |
| 628 | ||
| 629 | #define KFD_EVENT_FMT_MIGRATE_START(ns, pid, start, size, from, to, prefetch_loc,\ | |
| 630 | 		preferred_loc, migrate_trigger)\ | |
| 631 | 		"%lld -%d @%lx(%lx) %x->%x %x:%x %d\n", (ns), (pid), (start), (size),\ | |
| 632 | 		(from), (to), (prefetch_loc), (preferred_loc), (migrate_trigger) | |
| 633 | ||
| 634 | #define KFD_EVENT_FMT_MIGRATE_END(ns, pid, start, size, from, to, migrate_trigger, error_code) \ | |
| 635 | 		"%lld -%d @%lx(%lx) %x->%x %d %d\n", (ns), (pid), (start), (size),\ | |
| 636 | 		(from), (to), (migrate_trigger), (error_code) | |
| 637 | ||
| 638 | #define KFD_EVENT_FMT_QUEUE_EVICTION(ns, pid, node, evict_trigger)\ | |
| 639 | 		"%lld -%d %x %d\n", (ns), (pid), (node), (evict_trigger) | |
| 640 | ||
| 641 | #define KFD_EVENT_FMT_QUEUE_RESTORE(ns, pid, node, rescheduled)\ | |
| 642 | 		"%lld -%d %x %c\n", (ns), (pid), (node), (rescheduled) | |
| 643 | ||
| 644 | #define KFD_EVENT_FMT_UNMAP_FROM_GPU(ns, pid, addr, size, node, unmap_trigger)\ | |
| 645 | 		"%lld -%d @%lx(%lx) %x %d\n", (ns), (pid), (addr), (size),\ | |
| 646 | 		(node), (unmap_trigger) | |
| 647 | ||
| 567 | 648 | /************************************************************************************************** |
| 568 | 649 | * CRIU IOCTLs (Checkpoint Restore In Userspace) |
| 569 | 650 | * |
| ... | ... | @@ -852,6 +933,7 @@ enum kfd_dbg_trap_address_watch_mode { |
| 852 | 933 | /* Additional wave settings */ |
| 853 | 934 | enum kfd_dbg_trap_flags { |
| 854 | 935 | 	KFD_DBG_TRAP_FLAG_SINGLE_MEM_OP = 1, |
| 936 | 	KFD_DBG_TRAP_FLAG_SINGLE_ALU_OP = 2, | |
| 855 | 937 | }; |
| 856 | 938 | |
| 857 | 939 | /* Trap exceptions */ |
lib/libc/include/any-linux-any/linux/kfd_sysfs.h+11-9| ... | ... | @@ -51,15 +51,17 @@ |
| 51 | 51 | /* Old buggy user mode depends on this being 0 */ |
| 52 | 52 | #define HSA_CAP_RESERVED_WAS_SRAM_EDCSUPPORTED	0x00080000 |
| 53 | 53 | |
| 54 | #define HSA_CAP_MEM_EDCSUPPORTED		0x00100000 | |
| 55 | #define HSA_CAP_RASEVENTNOTIFY			0x00200000 | |
| 56 | #define HSA_CAP_ASIC_REVISION_MASK		0x03c00000 | |
| 57 | #define HSA_CAP_ASIC_REVISION_SHIFT		22 | |
| 58 | #define HSA_CAP_SRAM_EDCSUPPORTED		0x04000000 | |
| 59 | #define HSA_CAP_SVMAPI_SUPPORTED		0x08000000 | |
| 60 | #define HSA_CAP_FLAGS_COHERENTHOSTACCESS	0x10000000 | |
| 61 | #define HSA_CAP_TRAP_DEBUG_FIRMWARE_SUPPORTED 0x20000000 | |
| 62 | #define HSA_CAP_RESERVED			0xe00f8000 | |
| 54 | #define HSA_CAP_MEM_EDCSUPPORTED				0x00100000 | |
| 55 | #define HSA_CAP_RASEVENTNOTIFY					0x00200000 | |
| 56 | #define HSA_CAP_ASIC_REVISION_MASK				0x03c00000 | |
| 57 | #define HSA_CAP_ASIC_REVISION_SHIFT				22 | |
| 58 | #define HSA_CAP_SRAM_EDCSUPPORTED				0x04000000 | |
| 59 | #define HSA_CAP_SVMAPI_SUPPORTED				0x08000000 | |
| 60 | #define HSA_CAP_FLAGS_COHERENTHOSTACCESS			0x10000000 | |
| 61 | #define HSA_CAP_TRAP_DEBUG_FIRMWARE_SUPPORTED			0x20000000 | |
| 62 | #define HSA_CAP_TRAP_DEBUG_PRECISE_ALU_OPERATIONS_SUPPORTED	0x40000000 | |
| 63 | #define HSA_CAP_PER_QUEUE_RESET_SUPPORTED			0x80000000 | |
| 64 | #define HSA_CAP_RESERVED					0x000f8000 | |
| 63 | 65 | |
| 64 | 66 | /* debug_prop bits in node properties */ |
| 65 | 67 | #define HSA_DBG_WATCH_ADDR_MASK_LO_BIT_MASK 0x0000000f |
lib/libc/include/any-linux-any/linux/kvm.h+30-1| ... | ... | @@ -192,11 +192,20 @@ struct kvm_xen_exit { |
| 192 | 192 | /* Flags that describe what fields in emulation_failure hold valid data. */ |
| 193 | 193 | #define KVM_INTERNAL_ERROR_EMULATION_FLAG_INSTRUCTION_BYTES (1ULL << 0) |
| 194 | 194 | |
| 195 | /* | |
| 196 | * struct kvm_run can be modified by userspace at any time, so KVM must be | |
| 197 | * careful to avoid TOCTOU bugs. In order to protect KVM, HINT_UNSAFE_IN_KVM() | |
| 198 | * renames fields in struct kvm_run from <symbol> to <symbol>__unsafe when | |
| 199 | * compiled into the kernel, ensuring that any use within KVM is obvious and | |
| 200 | * gets extra scrutiny. | |
| 201 | */ | |
| 202 | #define HINT_UNSAFE_IN_KVM(_symbol) _symbol | |
| 203 | ||
| 195 | 204 | /* for KVM_RUN, returned by mmap(vcpu_fd, offset=0) */ |
| 196 | 205 | struct kvm_run { |
| 197 | 206 | 	/* in */ |
| 198 | 207 | 	__u8 request_interrupt_window; |
| 199 | 	__u8 immediate_exit; | |
| 208 | 	__u8 HINT_UNSAFE_IN_KVM(immediate_exit); | |
| 200 | 209 | 	__u8 padding1[6]; |
| 201 | 210 | |
| 202 | 211 | 	/* out */ |
| ... | ... | @@ -913,6 +922,9 @@ struct kvm_enable_cap { |
| 913 | 922 | #define KVM_CAP_MEMORY_ATTRIBUTES 233 |
| 914 | 923 | #define KVM_CAP_GUEST_MEMFD 234 |
| 915 | 924 | #define KVM_CAP_VM_TYPES 235 |
| 925 | #define KVM_CAP_PRE_FAULT_MEMORY 236 | |
| 926 | #define KVM_CAP_X86_APIC_BUS_CYCLES_NS 237 | |
| 927 | #define KVM_CAP_X86_GUEST_MODE 238 | |
| 916 | 928 | |
| 917 | 929 | struct kvm_irq_routing_irqchip { |
| 918 | 930 | 	__u32 irqchip; |
| ... | ... | @@ -1138,7 +1150,15 @@ enum kvm_device_type { |
| 1138 | 1150 | #define KVM_DEV_TYPE_ARM_PV_TIME	KVM_DEV_TYPE_ARM_PV_TIME |
| 1139 | 1151 | 	KVM_DEV_TYPE_RISCV_AIA, |
| 1140 | 1152 | #define KVM_DEV_TYPE_RISCV_AIA		KVM_DEV_TYPE_RISCV_AIA |
| 1153 | 	KVM_DEV_TYPE_LOONGARCH_IPI, | |
| 1154 | #define KVM_DEV_TYPE_LOONGARCH_IPI	KVM_DEV_TYPE_LOONGARCH_IPI | |
| 1155 | 	KVM_DEV_TYPE_LOONGARCH_EIOINTC, | |
| 1156 | #define KVM_DEV_TYPE_LOONGARCH_EIOINTC	KVM_DEV_TYPE_LOONGARCH_EIOINTC | |
| 1157 | 	KVM_DEV_TYPE_LOONGARCH_PCHPIC, | |
| 1158 | #define KVM_DEV_TYPE_LOONGARCH_PCHPIC	KVM_DEV_TYPE_LOONGARCH_PCHPIC | |
| 1159 | ||
| 1141 | 1160 | 	KVM_DEV_TYPE_MAX, |
| 1161 | ||
| 1142 | 1162 | }; |
| 1143 | 1163 | |
| 1144 | 1164 | struct kvm_vfio_spapr_tce { |
| ... | ... | @@ -1544,4 +1564,13 @@ struct kvm_create_guest_memfd { |
| 1544 | 1564 | 	__u64 reserved[6]; |
| 1545 | 1565 | }; |
| 1546 | 1566 | |
| 1567 | #define KVM_PRE_FAULT_MEMORY	_IOWR(KVMIO, 0xd5, struct kvm_pre_fault_memory) | |
| 1568 | ||
| 1569 | struct kvm_pre_fault_memory { | |
| 1570 | 	__u64 gpa; | |
| 1571 | 	__u64 size; | |
| 1572 | 	__u64 flags; | |
| 1573 | 	__u64 padding[5]; | |
| 1574 | }; | |
| 1575 | ||
| 1547 | 1576 | #endif /* __LINUX_KVM_H */ |
| \ No newline at end of file |
lib/libc/include/any-linux-any/linux/landlock.h+67-29| ... | ... | @@ -12,31 +12,44 @@ |
| 12 | 12 | #include <linux/types.h> |
| 13 | 13 | |
| 14 | 14 | /** |
| 15 | * struct landlock_ruleset_attr - Ruleset definition | |
| 15 | * struct landlock_ruleset_attr - Ruleset definition. | |
| 16 | 16 | * |
| 17 | * Argument of sys_landlock_create_ruleset(). This structure can grow in | |
| 18 | * future versions. | |
| 17 | * Argument of sys_landlock_create_ruleset(). | |
| 18 | * | |
| 19 | * This structure defines a set of *handled access rights*, a set of actions on | |
| 20 | * different object types, which should be denied by default when the ruleset is | |
| 21 | * enacted. Vice versa, access rights that are not specifically listed here are | |
| 22 | * not going to be denied by this ruleset when it is enacted. | |
| 23 | * | |
| 24 | * For historical reasons, the %LANDLOCK_ACCESS_FS_REFER right is always denied | |
| 25 | * by default, even when its bit is not set in @handled_access_fs. In order to | |
| 26 | * add new rules with this access right, the bit must still be set explicitly | |
| 27 | * (cf. `Filesystem flags`_). | |
| 28 | * | |
| 29 | * The explicit listing of *handled access rights* is required for backwards | |
| 30 | * compatibility reasons. In most use cases, processes that use Landlock will | |
| 31 | * *handle* a wide range or all access rights that they know about at build time | |
| 32 | * (and that they have tested with a kernel that supported them all). | |
| 33 | * | |
| 34 | * This structure can grow in future Landlock versions. | |
| 19 | 35 | */ |
| 20 | 36 | struct landlock_ruleset_attr { |
| 21 | 37 | 	/** |
| 22 | 	 * @handled_access_fs: Bitmask of actions (cf. `Filesystem flags`_) | |
| 23 | 	 * that is handled by this ruleset and should then be forbidden if no | |
| 24 | 	 * rule explicitly allow them: it is a deny-by-default list that should | |
| 25 | 	 * contain as much Landlock access rights as possible. Indeed, all | |
| 26 | 	 * Landlock filesystem access rights that are not part of | |
| 27 | 	 * handled_access_fs are allowed. This is needed for backward | |
| 28 | 	 * compatibility reasons. One exception is the | |
| 29 | 	 * %LANDLOCK_ACCESS_FS_REFER access right, which is always implicitly | |
| 30 | 	 * handled, but must still be explicitly handled to add new rules with | |
| 31 | 	 * this access right. | |
| 38 | 	 * @handled_access_fs: Bitmask of handled filesystem actions | |
| 39 | 	 * (cf. `Filesystem flags`_). | |
| 32 | 40 | 	 */ |
| 33 | 41 | 	__u64 handled_access_fs; |
| 34 | 42 | 	/** |
| 35 | 	 * @handled_access_net: Bitmask of actions (cf. `Network flags`_) | |
| 36 | 	 * that is handled by this ruleset and should then be forbidden if no | |
| 37 | 	 * rule explicitly allow them. | |
| 43 | 	 * @handled_access_net: Bitmask of handled network actions (cf. `Network | |
| 44 | 	 * flags`_). | |
| 38 | 45 | 	 */ |
| 39 | 46 | 	__u64 handled_access_net; |
| 47 | 	/** | |
| 48 | 	 * @scoped: Bitmask of scopes (cf. `Scope flags`_) | |
| 49 | 	 * restricting a Landlock domain from accessing outside | |
| 50 | 	 * resources (e.g. IPCs). | |
| 51 | 	 */ | |
| 52 | 	__u64 scoped; | |
| 40 | 53 | }; |
| 41 | 54 | |
| 42 | 55 | /* |
| ... | ... | @@ -97,20 +110,21 @@ struct landlock_path_beneath_attr { |
| 97 | 110 | */ |
| 98 | 111 | struct landlock_net_port_attr { |
| 99 | 112 | 	/** |
| 100 | 	 * @allowed_access: Bitmask of allowed access network for a port | |
| 113 | 	 * @allowed_access: Bitmask of allowed network actions for a port | |
| 101 | 114 | 	 * (cf. `Network flags`_). |
| 102 | 115 | 	 */ |
| 103 | 116 | 	__u64 allowed_access; |
| 104 | 117 | 	/** |
| 105 | 118 | 	 * @port: Network port in host endianness. |
| 106 | 119 | 	 * |
| 107 | 	 * It should be noted that port 0 passed to :manpage:`bind(2)` will | |
| 108 | 	 * bind to an available port from a specific port range. This can be | |
| 109 | 	 * configured thanks to the ``/proc/sys/net/ipv4/ip_local_port_range`` | |
| 110 | 	 * sysctl (also used for IPv6). A Landlock rule with port 0 and the | |
| 111 | 	 * ``LANDLOCK_ACCESS_NET_BIND_TCP`` right means that requesting to bind | |
| 112 | 	 * on port 0 is allowed and it will automatically translate to binding | |
| 113 | 	 * on the related port range. | |
| 120 | 	 * It should be noted that port 0 passed to :manpage:`bind(2)` will bind | |
| 121 | 	 * to an available port from the ephemeral port range. This can be | |
| 122 | 	 * configured with the ``/proc/sys/net/ipv4/ip_local_port_range`` sysctl | |
| 123 | 	 * (also used for IPv6). | |
| 124 | 	 * | |
| 125 | 	 * A Landlock rule with port 0 and the ``LANDLOCK_ACCESS_NET_BIND_TCP`` | |
| 126 | 	 * right means that requesting to bind on port 0 is allowed and it will | |
| 127 | 	 * automatically translate to binding on the related port range. | |
| 114 | 128 | 	 */ |
| 115 | 129 | 	__u64 port; |
| 116 | 130 | }; |
| ... | ... | @@ -131,10 +145,10 @@ struct landlock_net_port_attr { |
| 131 | 145 | * The following access rights apply only to files: |
| 132 | 146 | * |
| 133 | 147 | * - %LANDLOCK_ACCESS_FS_EXECUTE: Execute a file. |
| 134 | * - %LANDLOCK_ACCESS_FS_WRITE_FILE: Open a file with write access. Note that | |
| 135 | * you might additionally need the %LANDLOCK_ACCESS_FS_TRUNCATE right in order | |
| 136 | * to overwrite files with :manpage:`open(2)` using ``O_TRUNC`` or | |
| 137 | * :manpage:`creat(2)`. | |
| 148 | * - %LANDLOCK_ACCESS_FS_WRITE_FILE: Open a file with write access. When | |
| 149 | * opening files for writing, you will often additionally need the | |
| 150 | * %LANDLOCK_ACCESS_FS_TRUNCATE right. In many cases, these system calls | |
| 151 | * truncate existing files when overwriting them (e.g., :manpage:`creat(2)`). | |
| 138 | 152 | * - %LANDLOCK_ACCESS_FS_READ_FILE: Open a file with read access. |
| 139 | 153 | * - %LANDLOCK_ACCESS_FS_TRUNCATE: Truncate a file with :manpage:`truncate(2)`, |
| 140 | 154 | * :manpage:`ftruncate(2)`, :manpage:`creat(2)`, or :manpage:`open(2)` with |
| ... | ... | @@ -256,7 +270,7 @@ struct landlock_net_port_attr { |
| 256 | 270 | * These flags enable to restrict a sandboxed process to a set of network |
| 257 | 271 | * actions. This is supported since the Landlock ABI version 4. |
| 258 | 272 | * |
| 259 | * TCP sockets with allowed actions: | |
| 273 | * The following access rights apply to TCP port numbers: | |
| 260 | 274 | * |
| 261 | 275 | * - %LANDLOCK_ACCESS_NET_BIND_TCP: Bind a TCP socket to a local port. |
| 262 | 276 | * - %LANDLOCK_ACCESS_NET_CONNECT_TCP: Connect an active TCP socket to |
| ... | ... | @@ -266,4 +280,28 @@ struct landlock_net_port_attr { |
| 266 | 280 | #define LANDLOCK_ACCESS_NET_BIND_TCP			(1ULL << 0) |
| 267 | 281 | #define LANDLOCK_ACCESS_NET_CONNECT_TCP			(1ULL << 1) |
| 268 | 282 | /* clang-format on */ |
| 283 | ||
| 284 | /** | |
| 285 | * DOC: scope | |
| 286 | * | |
| 287 | * Scope flags | |
| 288 | * ~~~~~~~~~~~ | |
| 289 | * | |
| 290 | * These flags enable to isolate a sandboxed process from a set of IPC actions. | |
| 291 | * Setting a flag for a ruleset will isolate the Landlock domain to forbid | |
| 292 | * connections to resources outside the domain. | |
| 293 | * | |
| 294 | * Scopes: | |
| 295 | * | |
| 296 | * - %LANDLOCK_SCOPE_ABSTRACT_UNIX_SOCKET: Restrict a sandboxed process from | |
| 297 | * connecting to an abstract UNIX socket created by a process outside the | |
| 298 | * related Landlock domain (e.g. a parent domain or a non-sandboxed process). | |
| 299 | * - %LANDLOCK_SCOPE_SIGNAL: Restrict a sandboxed process from sending a signal | |
| 300 | * to another process outside the domain. | |
| 301 | */ | |
| 302 | /* clang-format off */ | |
| 303 | #define LANDLOCK_SCOPE_ABSTRACT_UNIX_SOCKET		(1ULL << 0) | |
| 304 | #define LANDLOCK_SCOPE_SIGNAL		 (1ULL << 1) | |
| 305 | /* clang-format on*/ | |
| 306 | ||
| 269 | 307 | #endif /* _LINUX_LANDLOCK_H */ |
| \ No newline at end of file |
lib/libc/include/any-linux-any/linux/libc-compat.h-36| ... | ... | @@ -140,25 +140,6 @@ |
| 140 | 140 | |
| 141 | 141 | #endif /* _NETINET_IN_H */ |
| 142 | 142 | |
| 143 | /* Coordinate with glibc netipx/ipx.h header. */ | |
| 144 | #if defined(__NETIPX_IPX_H) | |
| 145 | ||
| 146 | #define __UAPI_DEF_SOCKADDR_IPX			0 | |
| 147 | #define __UAPI_DEF_IPX_ROUTE_DEFINITION		0 | |
| 148 | #define __UAPI_DEF_IPX_INTERFACE_DEFINITION	0 | |
| 149 | #define __UAPI_DEF_IPX_CONFIG_DATA		0 | |
| 150 | #define __UAPI_DEF_IPX_ROUTE_DEF		0 | |
| 151 | ||
| 152 | #else /* defined(__NETIPX_IPX_H) */ | |
| 153 | ||
| 154 | #define __UAPI_DEF_SOCKADDR_IPX			1 | |
| 155 | #define __UAPI_DEF_IPX_ROUTE_DEFINITION		1 | |
| 156 | #define __UAPI_DEF_IPX_INTERFACE_DEFINITION	1 | |
| 157 | #define __UAPI_DEF_IPX_CONFIG_DATA		1 | |
| 158 | #define __UAPI_DEF_IPX_ROUTE_DEF		1 | |
| 159 | ||
| 160 | #endif /* defined(__NETIPX_IPX_H) */ | |
| 161 | ||
| 162 | 143 | /* Definitions for xattr.h */ |
| 163 | 144 | #if defined(_SYS_XATTR_H) |
| 164 | 145 | #define __UAPI_DEF_XATTR		0 |
| ... | ... | @@ -240,23 +221,6 @@ |
| 240 | 221 | #define __UAPI_DEF_IP6_MTUINFO		1 |
| 241 | 222 | #endif |
| 242 | 223 | |
| 243 | /* Definitions for ipx.h */ | |
| 244 | #ifndef __UAPI_DEF_SOCKADDR_IPX | |
| 245 | #define __UAPI_DEF_SOCKADDR_IPX			1 | |
| 246 | #endif | |
| 247 | #ifndef __UAPI_DEF_IPX_ROUTE_DEFINITION | |
| 248 | #define __UAPI_DEF_IPX_ROUTE_DEFINITION		1 | |
| 249 | #endif | |
| 250 | #ifndef __UAPI_DEF_IPX_INTERFACE_DEFINITION | |
| 251 | #define __UAPI_DEF_IPX_INTERFACE_DEFINITION	1 | |
| 252 | #endif | |
| 253 | #ifndef __UAPI_DEF_IPX_CONFIG_DATA | |
| 254 | #define __UAPI_DEF_IPX_CONFIG_DATA		1 | |
| 255 | #endif | |
| 256 | #ifndef __UAPI_DEF_IPX_ROUTE_DEF | |
| 257 | #define __UAPI_DEF_IPX_ROUTE_DEF		1 | |
| 258 | #endif | |
| 259 | ||
| 260 | 224 | /* Definitions for xattr.h */ |
| 261 | 225 | #ifndef __UAPI_DEF_XATTR |
| 262 | 226 | #define __UAPI_DEF_XATTR		1 |
lib/libc/include/any-linux-any/linux/lsm.h+1| ... | ... | @@ -64,6 +64,7 @@ struct lsm_ctx { |
| 64 | 64 | #define LSM_ID_LANDLOCK		110 |
| 65 | 65 | #define LSM_ID_IMA		111 |
| 66 | 66 | #define LSM_ID_EVM		112 |
| 67 | #define LSM_ID_IPE		113 | |
| 67 | 68 | |
| 68 | 69 | /* |
| 69 | 70 | * LSM_ATTR_XXX definitions identify different LSM attributes |
lib/libc/include/any-linux-any/linux/mdio.h+1| ... | ... | @@ -23,6 +23,7 @@ |
| 23 | 23 | #define MDIO_MMD_DTEXS		5	/* DTE Extender Sublayer */ |
| 24 | 24 | #define MDIO_MMD_TC		6	/* Transmission Convergence */ |
| 25 | 25 | #define MDIO_MMD_AN		7	/* Auto-Negotiation */ |
| 26 | #define MDIO_MMD_POWER_UNIT	13	/* PHY Power Unit */ | |
| 26 | 27 | #define MDIO_MMD_C22EXT		29	/* Clause 22 extension */ |
| 27 | 28 | #define MDIO_MMD_VEND1		30	/* Vendor specific 1 */ |
| 28 | 29 | #define MDIO_MMD_VEND2		31	/* Vendor specific 2 */ |
lib/libc/include/any-linux-any/linux/media-bus-format.h+3-1| ... | ... | @@ -34,7 +34,7 @@ |
| 34 | 34 | |
| 35 | 35 | #define MEDIA_BUS_FMT_FIXED			0x0001 |
| 36 | 36 | |
| 37 | /* RGB - next is	0x1026 */ | |
| 37 | /* RGB - next is	0x1028 */ | |
| 38 | 38 | #define MEDIA_BUS_FMT_RGB444_1X12		0x1016 |
| 39 | 39 | #define MEDIA_BUS_FMT_RGB444_2X8_PADHI_BE	0x1001 |
| 40 | 40 | #define MEDIA_BUS_FMT_RGB444_2X8_PADHI_LE	0x1002 |
| ... | ... | @@ -68,6 +68,8 @@ |
| 68 | 68 | #define MEDIA_BUS_FMT_ARGB8888_1X32		0x100d |
| 69 | 69 | #define MEDIA_BUS_FMT_RGB888_1X32_PADHI		0x100f |
| 70 | 70 | #define MEDIA_BUS_FMT_RGB101010_1X30		0x1018 |
| 71 | #define MEDIA_BUS_FMT_RGB101010_1X7X5_SPWG	0x1026 | |
| 72 | #define MEDIA_BUS_FMT_RGB101010_1X7X5_JEIDA	0x1027 | |
| 71 | 73 | #define MEDIA_BUS_FMT_RGB666_1X36_CPADLO	0x1020 |
| 72 | 74 | #define MEDIA_BUS_FMT_RGB888_1X36_CPADLO	0x1021 |
| 73 | 75 | #define MEDIA_BUS_FMT_RGB121212_1X36		0x1019 |
lib/libc/include/any-linux-any/linux/media/raspberrypi/pisp_be_config.h created+968| ... | ... | @@ -0,0 +1,968 @@ |
| 1 | /* SPDX-License-Identifier: GPL-2.0-only WITH Linux-syscall-note */ | |
| 2 | /* | |
| 3 | * PiSP Back End configuration definitions. | |
| 4 | * | |
| 5 | * Copyright (C) 2021 - Raspberry Pi Ltd | |
| 6 | * | |
| 7 | */ | |
| 8 | #ifndef _PISP_BE_CONFIG_H_ | |
| 9 | #define _PISP_BE_CONFIG_H_ | |
| 10 | ||
| 11 | #include <linux/types.h> | |
| 12 | ||
| 13 | #include "pisp_common.h" | |
| 14 | ||
| 15 | /* byte alignment for inputs */ | |
| 16 | #define PISP_BACK_END_INPUT_ALIGN 4u | |
| 17 | /* alignment for compressed inputs */ | |
| 18 | #define PISP_BACK_END_COMPRESSED_ALIGN 8u | |
| 19 | /* minimum required byte alignment for outputs */ | |
| 20 | #define PISP_BACK_END_OUTPUT_MIN_ALIGN 16u | |
| 21 | /* preferred byte alignment for outputs */ | |
| 22 | #define PISP_BACK_END_OUTPUT_MAX_ALIGN 64u | |
| 23 | ||
| 24 | /* minimum allowed tile width anywhere in the pipeline */ | |
| 25 | #define PISP_BACK_END_MIN_TILE_WIDTH 16u | |
| 26 | /* minimum allowed tile width anywhere in the pipeline */ | |
| 27 | #define PISP_BACK_END_MIN_TILE_HEIGHT 16u | |
| 28 | ||
| 29 | #define PISP_BACK_END_NUM_OUTPUTS 2 | |
| 30 | #define PISP_BACK_END_HOG_OUTPUT 1 | |
| 31 | ||
| 32 | #define PISP_BACK_END_NUM_TILES 64 | |
| 33 | ||
| 34 | enum pisp_be_bayer_enable { | |
| 35 | 	PISP_BE_BAYER_ENABLE_INPUT = 0x000001, | |
| 36 | 	PISP_BE_BAYER_ENABLE_DECOMPRESS = 0x000002, | |
| 37 | 	PISP_BE_BAYER_ENABLE_DPC = 0x000004, | |
| 38 | 	PISP_BE_BAYER_ENABLE_GEQ = 0x000008, | |
| 39 | 	PISP_BE_BAYER_ENABLE_TDN_INPUT = 0x000010, | |
| 40 | 	PISP_BE_BAYER_ENABLE_TDN_DECOMPRESS = 0x000020, | |
| 41 | 	PISP_BE_BAYER_ENABLE_TDN = 0x000040, | |
| 42 | 	PISP_BE_BAYER_ENABLE_TDN_COMPRESS = 0x000080, | |
| 43 | 	PISP_BE_BAYER_ENABLE_TDN_OUTPUT = 0x000100, | |
| 44 | 	PISP_BE_BAYER_ENABLE_SDN = 0x000200, | |
| 45 | 	PISP_BE_BAYER_ENABLE_BLC = 0x000400, | |
| 46 | 	PISP_BE_BAYER_ENABLE_STITCH_INPUT = 0x000800, | |
| 47 | 	PISP_BE_BAYER_ENABLE_STITCH_DECOMPRESS = 0x001000, | |
| 48 | 	PISP_BE_BAYER_ENABLE_STITCH = 0x002000, | |
| 49 | 	PISP_BE_BAYER_ENABLE_STITCH_COMPRESS = 0x004000, | |
| 50 | 	PISP_BE_BAYER_ENABLE_STITCH_OUTPUT = 0x008000, | |
| 51 | 	PISP_BE_BAYER_ENABLE_WBG = 0x010000, | |
| 52 | 	PISP_BE_BAYER_ENABLE_CDN = 0x020000, | |
| 53 | 	PISP_BE_BAYER_ENABLE_LSC = 0x040000, | |
| 54 | 	PISP_BE_BAYER_ENABLE_TONEMAP = 0x080000, | |
| 55 | 	PISP_BE_BAYER_ENABLE_CAC = 0x100000, | |
| 56 | 	PISP_BE_BAYER_ENABLE_DEBIN = 0x200000, | |
| 57 | 	PISP_BE_BAYER_ENABLE_DEMOSAIC = 0x400000, | |
| 58 | }; | |
| 59 | ||
| 60 | enum pisp_be_rgb_enable { | |
| 61 | 	PISP_BE_RGB_ENABLE_INPUT = 0x000001, | |
| 62 | 	PISP_BE_RGB_ENABLE_CCM = 0x000002, | |
| 63 | 	PISP_BE_RGB_ENABLE_SAT_CONTROL = 0x000004, | |
| 64 | 	PISP_BE_RGB_ENABLE_YCBCR = 0x000008, | |
| 65 | 	PISP_BE_RGB_ENABLE_FALSE_COLOUR = 0x000010, | |
| 66 | 	PISP_BE_RGB_ENABLE_SHARPEN = 0x000020, | |
| 67 | 	/* Preferred colours would occupy 0x000040 */ | |
| 68 | 	PISP_BE_RGB_ENABLE_YCBCR_INVERSE = 0x000080, | |
| 69 | 	PISP_BE_RGB_ENABLE_GAMMA = 0x000100, | |
| 70 | 	PISP_BE_RGB_ENABLE_CSC0 = 0x000200, | |
| 71 | 	PISP_BE_RGB_ENABLE_CSC1 = 0x000400, | |
| 72 | 	PISP_BE_RGB_ENABLE_DOWNSCALE0 = 0x001000, | |
| 73 | 	PISP_BE_RGB_ENABLE_DOWNSCALE1 = 0x002000, | |
| 74 | 	PISP_BE_RGB_ENABLE_RESAMPLE0 = 0x008000, | |
| 75 | 	PISP_BE_RGB_ENABLE_RESAMPLE1 = 0x010000, | |
| 76 | 	PISP_BE_RGB_ENABLE_OUTPUT0 = 0x040000, | |
| 77 | 	PISP_BE_RGB_ENABLE_OUTPUT1 = 0x080000, | |
| 78 | 	PISP_BE_RGB_ENABLE_HOG = 0x200000 | |
| 79 | }; | |
| 80 | ||
| 81 | #define PISP_BE_RGB_ENABLE_CSC(i) (PISP_BE_RGB_ENABLE_CSC0 << (i)) | |
| 82 | #define PISP_BE_RGB_ENABLE_DOWNSCALE(i) (PISP_BE_RGB_ENABLE_DOWNSCALE0 << (i)) | |
| 83 | #define PISP_BE_RGB_ENABLE_RESAMPLE(i) (PISP_BE_RGB_ENABLE_RESAMPLE0 << (i)) | |
| 84 | #define PISP_BE_RGB_ENABLE_OUTPUT(i) (PISP_BE_RGB_ENABLE_OUTPUT0 << (i)) | |
| 85 | ||
| 86 | /* | |
| 87 | * We use the enable flags to show when blocks are "dirty", but we need some | |
| 88 | * extra ones too. | |
| 89 | */ | |
| 90 | enum pisp_be_dirty { | |
| 91 | 	PISP_BE_DIRTY_GLOBAL = 0x0001, | |
| 92 | 	PISP_BE_DIRTY_SH_FC_COMBINE = 0x0002, | |
| 93 | 	PISP_BE_DIRTY_CROP = 0x0004 | |
| 94 | }; | |
| 95 | ||
| 96 | /** | |
| 97 | * struct pisp_be_global_config - PiSP global enable bitmaps | |
| 98 | * @bayer_enables:	Bayer input enable flags | |
| 99 | * @rgb_enables:	RGB output enable flags | |
| 100 | * @bayer_order:	Bayer input format ordering | |
| 101 | * @pad:		Padding bytes | |
| 102 | */ | |
| 103 | struct pisp_be_global_config { | |
| 104 | 	__u32 bayer_enables; | |
| 105 | 	__u32 rgb_enables; | |
| 106 | 	__u8 bayer_order; | |
| 107 | 	__u8 pad[3]; | |
| 108 | } __attribute__((packed)); | |
| 109 | ||
| 110 | /** | |
| 111 | * struct pisp_be_input_buffer_config - PiSP Back End input buffer | |
| 112 | * @addr:		Input buffer address | |
| 113 | */ | |
| 114 | struct pisp_be_input_buffer_config { | |
| 115 | 	/* low 32 bits followed by high 32 bits (for each of up to 3 planes) */ | |
| 116 | 	__u32 addr[3][2]; | |
| 117 | } __attribute__((packed)); | |
| 118 | ||
| 119 | /** | |
| 120 | * struct pisp_be_dpc_config - PiSP Back End DPC config | |
| 121 | * | |
| 122 | * Defective Pixel Correction configuration | |
| 123 | * | |
| 124 | * @coeff_level:	Coefficient for the darkest neighbouring pixel value | |
| 125 | * @coeff_range:	Coefficient for the range of pixels for this Bayer channel | |
| 126 | * @pad:		Padding byte | |
| 127 | * @flags:		DPC configuration flags | |
| 128 | */ | |
| 129 | struct pisp_be_dpc_config { | |
| 130 | 	__u8 coeff_level; | |
| 131 | 	__u8 coeff_range; | |
| 132 | 	__u8 pad; | |
| 133 | #define PISP_BE_DPC_FLAG_FOLDBACK 1 | |
| 134 | 	__u8 flags; | |
| 135 | } __attribute__((packed)); | |
| 136 | ||
| 137 | /** | |
| 138 | * struct pisp_be_geq_config - PiSP Back End GEQ config | |
| 139 | * | |
| 140 | * Green Equalisation configuration | |
| 141 | * | |
| 142 | * @offset:		Offset value for threshold calculation | |
| 143 | * @slope_sharper:	Slope/Sharper configuration | |
| 144 | * @min:		Minimum value the threshold may have | |
| 145 | * @max:		Maximum value the threshold may have | |
| 146 | */ | |
| 147 | struct pisp_be_geq_config { | |
| 148 | 	__u16 offset; | |
| 149 | #define PISP_BE_GEQ_SHARPER (1U << 15) | |
| 150 | #define PISP_BE_GEQ_SLOPE ((1 << 10) - 1) | |
| 151 | 	/* top bit is the "sharper" flag, slope value is bottom 10 bits */ | |
| 152 | 	__u16 slope_sharper; | |
| 153 | 	__u16 min; | |
| 154 | 	__u16 max; | |
| 155 | } __attribute__((packed)); | |
| 156 | ||
| 157 | /** | |
| 158 | * struct pisp_be_tdn_input_buffer_config - PiSP Back End TDN input buffer | |
| 159 | * @addr:		TDN input buffer address | |
| 160 | */ | |
| 161 | struct pisp_be_tdn_input_buffer_config { | |
| 162 | 	/* low 32 bits followed by high 32 bits */ | |
| 163 | 	__u32 addr[2]; | |
| 164 | } __attribute__((packed)); | |
| 165 | ||
| 166 | /** | |
| 167 | * struct pisp_be_tdn_config - PiSP Back End TDN config | |
| 168 | * | |
| 169 | * Temporal Denoise configuration | |
| 170 | * | |
| 171 | * @black_level:	Black level value subtracted from pixels | |
| 172 | * @ratio:		Multiplier for the LTA input frame | |
| 173 | * @noise_constant:	Constant offset value used in noise estimation | |
| 174 | * @noise_slope:	Noise estimation multiplier | |
| 175 | * @threshold:		Threshold for TDN operations | |
| 176 | * @reset:		Disable TDN operations | |
| 177 | * @pad:		Padding byte | |
| 178 | */ | |
| 179 | struct pisp_be_tdn_config { | |
| 180 | 	__u16 black_level; | |
| 181 | 	__u16 ratio; | |
| 182 | 	__u16 noise_constant; | |
| 183 | 	__u16 noise_slope; | |
| 184 | 	__u16 threshold; | |
| 185 | 	__u8 reset; | |
| 186 | 	__u8 pad; | |
| 187 | } __attribute__((packed)); | |
| 188 | ||
| 189 | /** | |
| 190 | * struct pisp_be_tdn_output_buffer_config - PiSP Back End TDN output buffer | |
| 191 | * @addr:		TDN output buffer address | |
| 192 | */ | |
| 193 | struct pisp_be_tdn_output_buffer_config { | |
| 194 | 	/* low 32 bits followed by high 32 bits */ | |
| 195 | 	__u32 addr[2]; | |
| 196 | } __attribute__((packed)); | |
| 197 | ||
| 198 | /** | |
| 199 | * struct pisp_be_sdn_config - PiSP Back End SDN config | |
| 200 | * | |
| 201 | * Spatial Denoise configuration | |
| 202 | * | |
| 203 | * @black_level:	Black level subtracted from pixel for noise estimation | |
| 204 | * @leakage:		Proportion of the original undenoised value to mix in | |
| 205 | *			denoised output | |
| 206 | * @pad:		Padding byte | |
| 207 | * @noise_constant:	Noise constant used for noise estimation | |
| 208 | * @noise_slope:	Noise slope value used for noise estimation | |
| 209 | * @noise_constant2:	Second noise constant used for noise estimation | |
| 210 | * @noise_slope2:	Second slope value used for noise estimation | |
| 211 | */ | |
| 212 | struct pisp_be_sdn_config { | |
| 213 | 	__u16 black_level; | |
| 214 | 	__u8 leakage; | |
| 215 | 	__u8 pad; | |
| 216 | 	__u16 noise_constant; | |
| 217 | 	__u16 noise_slope; | |
| 218 | 	__u16 noise_constant2; | |
| 219 | 	__u16 noise_slope2; | |
| 220 | } __attribute__((packed)); | |
| 221 | ||
| 222 | /** | |
| 223 | * struct pisp_be_stitch_input_buffer_config - PiSP Back End Stitch input | |
| 224 | * @addr:		Stitch input buffer address | |
| 225 | */ | |
| 226 | struct pisp_be_stitch_input_buffer_config { | |
| 227 | 	/* low 32 bits followed by high 32 bits */ | |
| 228 | 	__u32 addr[2]; | |
| 229 | } __attribute__((packed)); | |
| 230 | ||
| 231 | #define PISP_BE_STITCH_STREAMING_LONG 0x8000 | |
| 232 | #define PISP_BE_STITCH_EXPOSURE_RATIO_MASK 0x7fff | |
| 233 | ||
| 234 | /** | |
| 235 | * struct pisp_be_stitch_config - PiSP Back End Stitch config | |
| 236 | * | |
| 237 | * Stitch block configuration | |
| 238 | * | |
| 239 | * @threshold_lo:		Low threshold value | |
| 240 | * @threshold_diff_power:	Low and high threshold difference | |
| 241 | * @pad:			Padding bytes | |
| 242 | * @exposure_ratio:		Multiplier to convert long exposure pixels into | |
| 243 | *				short exposure pixels | |
| 244 | * @motion_threshold_256:	Motion threshold above which short exposure | |
| 245 | *				pixels are used | |
| 246 | * @motion_threshold_recip:	Reciprocal of motion_threshold_256 value | |
| 247 | */ | |
| 248 | struct pisp_be_stitch_config { | |
| 249 | 	__u16 threshold_lo; | |
| 250 | 	__u8 threshold_diff_power; | |
| 251 | 	__u8 pad; | |
| 252 | ||
| 253 | 	/* top bit indicates whether streaming input is the long exposure */ | |
| 254 | 	__u16 exposure_ratio; | |
| 255 | ||
| 256 | 	__u8 motion_threshold_256; | |
| 257 | 	__u8 motion_threshold_recip; | |
| 258 | } __attribute__((packed)); | |
| 259 | ||
| 260 | /** | |
| 261 | * struct pisp_be_stitch_output_buffer_config - PiSP Back End Stitch output | |
| 262 | * @addr:		Stitch input buffer address | |
| 263 | */ | |
| 264 | struct pisp_be_stitch_output_buffer_config { | |
| 265 | 	/* low 32 bits followed by high 32 bits */ | |
| 266 | 	__u32 addr[2]; | |
| 267 | } __attribute__((packed)); | |
| 268 | ||
| 269 | /** | |
| 270 | * struct pisp_be_cdn_config - PiSP Back End CDN config | |
| 271 | * | |
| 272 | * Colour Denoise configuration | |
| 273 | * | |
| 274 | * @thresh:		Constant for noise estimation | |
| 275 | * @iir_strength:	Relative strength of the IIR part of the filter | |
| 276 | * @g_adjust:		Proportion of the change assigned to the G channel | |
| 277 | */ | |
| 278 | struct pisp_be_cdn_config { | |
| 279 | 	__u16 thresh; | |
| 280 | 	__u8 iir_strength; | |
| 281 | 	__u8 g_adjust; | |
| 282 | } __attribute__((packed)); | |
| 283 | ||
| 284 | #define PISP_BE_LSC_LOG_GRID_SIZE 5 | |
| 285 | #define PISP_BE_LSC_GRID_SIZE (1 << PISP_BE_LSC_LOG_GRID_SIZE) | |
| 286 | #define PISP_BE_LSC_STEP_PRECISION 18 | |
| 287 | ||
| 288 | /** | |
| 289 | * struct pisp_be_lsc_config - PiSP Back End LSC config | |
| 290 | * | |
| 291 | * Lens Shading Correction configuration | |
| 292 | * | |
| 293 | * @grid_step_x:	Reciprocal of cell size width | |
| 294 | * @grid_step_y:	Reciprocal of cell size height | |
| 295 | * @lut_packed:		Jointly-coded RGB gains for each LSC grid | |
| 296 | */ | |
| 297 | struct pisp_be_lsc_config { | |
| 298 | 	/* (1<<18) / grid_cell_width */ | |
| 299 | 	__u16 grid_step_x; | |
| 300 | 	/* (1<<18) / grid_cell_height */ | |
| 301 | 	__u16 grid_step_y; | |
| 302 | 	/* RGB gains jointly encoded in 32 bits */ | |
| 303 | #define PISP_BE_LSC_LUT_SIZE	(PISP_BE_LSC_GRID_SIZE + 1) | |
| 304 | 	__u32 lut_packed[PISP_BE_LSC_LUT_SIZE][PISP_BE_LSC_LUT_SIZE]; | |
| 305 | } __attribute__((packed)); | |
| 306 | ||
| 307 | /** | |
| 308 | * struct pisp_be_lsc_extra - PiSP Back End LSC Extra config | |
| 309 | * @offset_x:		Horizontal offset into the LSC table of this tile | |
| 310 | * @offset_y:		Vertical offset into the LSC table of this tile | |
| 311 | */ | |
| 312 | struct pisp_be_lsc_extra { | |
| 313 | 	__u16 offset_x; | |
| 314 | 	__u16 offset_y; | |
| 315 | } __attribute__((packed)); | |
| 316 | ||
| 317 | #define PISP_BE_CAC_LOG_GRID_SIZE 3 | |
| 318 | #define PISP_BE_CAC_GRID_SIZE (1 << PISP_BE_CAC_LOG_GRID_SIZE) | |
| 319 | #define PISP_BE_CAC_STEP_PRECISION 20 | |
| 320 | ||
| 321 | /** | |
| 322 | * struct pisp_be_cac_config - PiSP Back End CAC config | |
| 323 | * | |
| 324 | * Chromatic Aberration Correction config | |
| 325 | * | |
| 326 | * @grid_step_x:	Reciprocal of cell size width | |
| 327 | * @grid_step_y:	Reciprocal of cell size height | |
| 328 | * @lut:		Pixel shift for the CAC grid | |
| 329 | */ | |
| 330 | struct pisp_be_cac_config { | |
| 331 | 	/* (1<<20) / grid_cell_width */ | |
| 332 | 	__u16 grid_step_x; | |
| 333 | 	/* (1<<20) / grid_cell_height */ | |
| 334 | 	__u16 grid_step_y; | |
| 335 | 	/* [gridy][gridx][rb][xy] */ | |
| 336 | #define PISP_BE_CAC_LUT_SIZE		(PISP_BE_CAC_GRID_SIZE + 1) | |
| 337 | 	__s8 lut[PISP_BE_CAC_LUT_SIZE][PISP_BE_CAC_LUT_SIZE][2][2]; | |
| 338 | } __attribute__((packed)); | |
| 339 | ||
| 340 | /** | |
| 341 | * struct pisp_be_cac_extra - PiSP Back End CAC extra config | |
| 342 | * @offset_x:		Horizontal offset into the CAC table of this tile | |
| 343 | * @offset_y:		Horizontal offset into the CAC table of this tile | |
| 344 | */ | |
| 345 | struct pisp_be_cac_extra { | |
| 346 | 	__u16 offset_x; | |
| 347 | 	__u16 offset_y; | |
| 348 | } __attribute__((packed)); | |
| 349 | ||
| 350 | #define PISP_BE_DEBIN_NUM_COEFFS 4 | |
| 351 | ||
| 352 | /** | |
| 353 | * struct pisp_be_debin_config - PiSP Back End Debin config | |
| 354 | * | |
| 355 | * Debinning configuration | |
| 356 | * | |
| 357 | * @coeffs:		Filter coefficients for debinning | |
| 358 | * @h_enable:		Horizontal debinning enable | |
| 359 | * @v_enable:		Vertical debinning enable | |
| 360 | * @pad:		Padding bytes | |
| 361 | */ | |
| 362 | struct pisp_be_debin_config { | |
| 363 | 	__s8 coeffs[PISP_BE_DEBIN_NUM_COEFFS]; | |
| 364 | 	__s8 h_enable; | |
| 365 | 	__s8 v_enable; | |
| 366 | 	__s8 pad[2]; | |
| 367 | } __attribute__((packed)); | |
| 368 | ||
| 369 | #define PISP_BE_TONEMAP_LUT_SIZE 64 | |
| 370 | ||
| 371 | /** | |
| 372 | * struct pisp_be_tonemap_config - PiSP Back End Tonemap config | |
| 373 | * | |
| 374 | * Tonemapping configuration | |
| 375 | * | |
| 376 | * @detail_constant:	Constant value for threshold calculation | |
| 377 | * @detail_slope:	Slope value for threshold calculation | |
| 378 | * @iir_strength:	Relative strength of the IIR fiter | |
| 379 | * @strength:		Strength factor | |
| 380 | * @lut:		Look-up table for tonemap curve | |
| 381 | */ | |
| 382 | struct pisp_be_tonemap_config { | |
| 383 | 	__u16 detail_constant; | |
| 384 | 	__u16 detail_slope; | |
| 385 | 	__u16 iir_strength; | |
| 386 | 	__u16 strength; | |
| 387 | 	__u32 lut[PISP_BE_TONEMAP_LUT_SIZE]; | |
| 388 | } __attribute__((packed)); | |
| 389 | ||
| 390 | /** | |
| 391 | * struct pisp_be_demosaic_config - PiSP Back End Demosaic config | |
| 392 | * | |
| 393 | * Demosaic configuration | |
| 394 | * | |
| 395 | * @sharper:		Use other Bayer channels to increase sharpness | |
| 396 | * @fc_mode:		Built-in false colour suppression mode | |
| 397 | * @pad:		Padding bytes | |
| 398 | */ | |
| 399 | struct pisp_be_demosaic_config { | |
| 400 | 	__u8 sharper; | |
| 401 | 	__u8 fc_mode; | |
| 402 | 	__u8 pad[2]; | |
| 403 | } __attribute__((packed)); | |
| 404 | ||
| 405 | /** | |
| 406 | * struct pisp_be_ccm_config - PiSP Back End CCM config | |
| 407 | * | |
| 408 | * Colour Correction Matrix configuration | |
| 409 | * | |
| 410 | * @coeffs:		Matrix coefficients | |
| 411 | * @pad:		Padding bytes | |
| 412 | * @offsets:		Offsets triplet | |
| 413 | */ | |
| 414 | struct pisp_be_ccm_config { | |
| 415 | 	__s16 coeffs[9]; | |
| 416 | 	__u8 pad[2]; | |
| 417 | 	__s32 offsets[3]; | |
| 418 | } __attribute__((packed)); | |
| 419 | ||
| 420 | /** | |
| 421 | * struct pisp_be_sat_control_config - PiSP Back End SAT config | |
| 422 | * | |
| 423 | * Saturation Control configuration | |
| 424 | * | |
| 425 | * @shift_r:		Left shift for Red colour channel | |
| 426 | * @shift_g:		Left shift for Green colour channel | |
| 427 | * @shift_b:		Left shift for Blue colour channel | |
| 428 | * @pad:		Padding byte | |
| 429 | */ | |
| 430 | struct pisp_be_sat_control_config { | |
| 431 | 	__u8 shift_r; | |
| 432 | 	__u8 shift_g; | |
| 433 | 	__u8 shift_b; | |
| 434 | 	__u8 pad; | |
| 435 | } __attribute__((packed)); | |
| 436 | ||
| 437 | /** | |
| 438 | * struct pisp_be_false_colour_config - PiSP Back End False Colour config | |
| 439 | * | |
| 440 | * False Colour configuration | |
| 441 | * | |
| 442 | * @distance:		Distance of neighbouring pixels, either 1 or 2 | |
| 443 | * @pad:		Padding bytes | |
| 444 | */ | |
| 445 | struct pisp_be_false_colour_config { | |
| 446 | 	__u8 distance; | |
| 447 | 	__u8 pad[3]; | |
| 448 | } __attribute__((packed)); | |
| 449 | ||
| 450 | #define PISP_BE_SHARPEN_SIZE 5 | |
| 451 | #define PISP_BE_SHARPEN_FUNC_NUM_POINTS 9 | |
| 452 | ||
| 453 | /** | |
| 454 | * struct pisp_be_sharpen_config - PiSP Back End Sharpening config | |
| 455 | * | |
| 456 | * Sharpening configuration | |
| 457 | * | |
| 458 | * @kernel0:		Coefficient for filter 0 | |
| 459 | * @pad0:		Padding byte | |
| 460 | * @kernel1:		Coefficient for filter 1 | |
| 461 | * @pad1:		Padding byte | |
| 462 | * @kernel2:		Coefficient for filter 2 | |
| 463 | * @pad2:		Padding byte | |
| 464 | * @kernel3:		Coefficient for filter 3 | |
| 465 | * @pad3:		Padding byte | |
| 466 | * @kernel4:		Coefficient for filter 4 | |
| 467 | * @pad4:		Padding byte | |
| 468 | * @threshold_offset0:	Offset for filter 0 response calculation | |
| 469 | * @threshold_slope0:	Slope multiplier for the filter 0 response calculation | |
| 470 | * @scale0:		Scale factor for filter 0 response calculation | |
| 471 | * @pad5:		Padding byte | |
| 472 | * @threshold_offset1:	Offset for filter 0 response calculation | |
| 473 | * @threshold_slope1:	Slope multiplier for the filter 0 response calculation | |
| 474 | * @scale1:		Scale factor for filter 0 response calculation | |
| 475 | * @pad6:		Padding byte | |
| 476 | * @threshold_offset2:	Offset for filter 0 response calculation | |
| 477 | * @threshold_slope2:	Slope multiplier for the filter 0 response calculation | |
| 478 | * @scale2:		Scale factor for filter 0 response calculation | |
| 479 | * @pad7:		Padding byte | |
| 480 | * @threshold_offset3:	Offset for filter 0 response calculation | |
| 481 | * @threshold_slope3:	Slope multiplier for the filter 0 response calculation | |
| 482 | * @scale3:		Scale factor for filter 0 response calculation | |
| 483 | * @pad8:		Padding byte | |
| 484 | * @threshold_offset4:	Offset for filter 0 response calculation | |
| 485 | * @threshold_slope4:	Slope multiplier for the filter 0 response calculation | |
| 486 | * @scale4:		Scale factor for filter 0 response calculation | |
| 487 | * @pad9:		Padding byte | |
| 488 | * @positive_strength:	Factor to scale the positive sharpening strength | |
| 489 | * @positive_pre_limit:	Maximum allowed possible positive sharpening value | |
| 490 | * @positive_func:	Gain factor applied to positive sharpening response | |
| 491 | * @positive_limit:	Final gain factor applied to positive sharpening | |
| 492 | * @negative_strength:	Factor to scale the negative sharpening strength | |
| 493 | * @negative_pre_limit:	Maximum allowed possible negative sharpening value | |
| 494 | * @negative_func:	Gain factor applied to negative sharpening response | |
| 495 | * @negative_limit:	Final gain factor applied to negative sharpening | |
| 496 | * @enables:		Filter enable mask | |
| 497 | * @white:		White output pixel filter mask | |
| 498 | * @black:		Black output pixel filter mask | |
| 499 | * @grey:		Grey output pixel filter mask | |
| 500 | */ | |
| 501 | struct pisp_be_sharpen_config { | |
| 502 | 	__s8 kernel0[PISP_BE_SHARPEN_SIZE * PISP_BE_SHARPEN_SIZE]; | |
| 503 | 	__s8 pad0[3]; | |
| 504 | 	__s8 kernel1[PISP_BE_SHARPEN_SIZE * PISP_BE_SHARPEN_SIZE]; | |
| 505 | 	__s8 pad1[3]; | |
| 506 | 	__s8 kernel2[PISP_BE_SHARPEN_SIZE * PISP_BE_SHARPEN_SIZE]; | |
| 507 | 	__s8 pad2[3]; | |
| 508 | 	__s8 kernel3[PISP_BE_SHARPEN_SIZE * PISP_BE_SHARPEN_SIZE]; | |
| 509 | 	__s8 pad3[3]; | |
| 510 | 	__s8 kernel4[PISP_BE_SHARPEN_SIZE * PISP_BE_SHARPEN_SIZE]; | |
| 511 | 	__s8 pad4[3]; | |
| 512 | 	__u16 threshold_offset0; | |
| 513 | 	__u16 threshold_slope0; | |
| 514 | 	__u16 scale0; | |
| 515 | 	__u16 pad5; | |
| 516 | 	__u16 threshold_offset1; | |
| 517 | 	__u16 threshold_slope1; | |
| 518 | 	__u16 scale1; | |
| 519 | 	__u16 pad6; | |
| 520 | 	__u16 threshold_offset2; | |
| 521 | 	__u16 threshold_slope2; | |
| 522 | 	__u16 scale2; | |
| 523 | 	__u16 pad7; | |
| 524 | 	__u16 threshold_offset3; | |
| 525 | 	__u16 threshold_slope3; | |
| 526 | 	__u16 scale3; | |
| 527 | 	__u16 pad8; | |
| 528 | 	__u16 threshold_offset4; | |
| 529 | 	__u16 threshold_slope4; | |
| 530 | 	__u16 scale4; | |
| 531 | 	__u16 pad9; | |
| 532 | 	__u16 positive_strength; | |
| 533 | 	__u16 positive_pre_limit; | |
| 534 | 	__u16 positive_func[PISP_BE_SHARPEN_FUNC_NUM_POINTS]; | |
| 535 | 	__u16 positive_limit; | |
| 536 | 	__u16 negative_strength; | |
| 537 | 	__u16 negative_pre_limit; | |
| 538 | 	__u16 negative_func[PISP_BE_SHARPEN_FUNC_NUM_POINTS]; | |
| 539 | 	__u16 negative_limit; | |
| 540 | 	__u8 enables; | |
| 541 | 	__u8 white; | |
| 542 | 	__u8 black; | |
| 543 | 	__u8 grey; | |
| 544 | } __attribute__((packed)); | |
| 545 | ||
| 546 | /** | |
| 547 | * struct pisp_be_sh_fc_combine_config - PiSP Back End Sharpening and | |
| 548 | *					 False Colour config | |
| 549 | * | |
| 550 | * Sharpening and False Colour configuration | |
| 551 | * | |
| 552 | * @y_factor:		Control amount of desaturation of pixels being darkened | |
| 553 | * @c1_factor:		Control amount of brightening of a pixel for the Cb | |
| 554 | *			channel | |
| 555 | * @c2_factor:		Control amount of brightening of a pixel for the Cr | |
| 556 | *			channel | |
| 557 | * @pad:		Padding byte | |
| 558 | */ | |
| 559 | struct pisp_be_sh_fc_combine_config { | |
| 560 | 	__u8 y_factor; | |
| 561 | 	__u8 c1_factor; | |
| 562 | 	__u8 c2_factor; | |
| 563 | 	__u8 pad; | |
| 564 | } __attribute__((packed)); | |
| 565 | ||
| 566 | #define PISP_BE_GAMMA_LUT_SIZE 64 | |
| 567 | ||
| 568 | /** | |
| 569 | * struct pisp_be_gamma_config - PiSP Back End Gamma configuration | |
| 570 | * @lut:		Gamma curve look-up table | |
| 571 | */ | |
| 572 | struct pisp_be_gamma_config { | |
| 573 | 	__u32 lut[PISP_BE_GAMMA_LUT_SIZE]; | |
| 574 | } __attribute__((packed)); | |
| 575 | ||
| 576 | /** | |
| 577 | * struct pisp_be_crop_config - PiSP Back End Crop config | |
| 578 | * | |
| 579 | * Crop configuration | |
| 580 | * | |
| 581 | * @offset_x:		Number of pixels cropped from the left of the tile | |
| 582 | * @offset_y:		Number of pixels cropped from the top of the tile | |
| 583 | * @width:		Width of the cropped tile output | |
| 584 | * @height:		Height of the cropped tile output | |
| 585 | */ | |
| 586 | struct pisp_be_crop_config { | |
| 587 | 	__u16 offset_x, offset_y; | |
| 588 | 	__u16 width, height; | |
| 589 | } __attribute__((packed)); | |
| 590 | ||
| 591 | #define PISP_BE_RESAMPLE_FILTER_SIZE 96 | |
| 592 | ||
| 593 | /** | |
| 594 | * struct pisp_be_resample_config - PiSP Back End Resampling config | |
| 595 | * | |
| 596 | * Resample configuration | |
| 597 | * | |
| 598 | * @scale_factor_h:	Horizontal scale factor | |
| 599 | * @scale_factor_v:	Vertical scale factor | |
| 600 | * @coef:		Resample coefficients | |
| 601 | */ | |
| 602 | struct pisp_be_resample_config { | |
| 603 | 	__u16 scale_factor_h, scale_factor_v; | |
| 604 | 	__s16 coef[PISP_BE_RESAMPLE_FILTER_SIZE]; | |
| 605 | } __attribute__((packed)); | |
| 606 | ||
| 607 | /** | |
| 608 | * struct pisp_be_resample_extra - PiSP Back End Resample config | |
| 609 | * | |
| 610 | * Resample configuration | |
| 611 | * | |
| 612 | * @scaled_width:	Width in pixels of the scaled output | |
| 613 | * @scaled_height:	Height in pixels of the scaled output | |
| 614 | * @initial_phase_h:	Initial horizontal phase | |
| 615 | * @initial_phase_v:	Initial vertical phase | |
| 616 | */ | |
| 617 | struct pisp_be_resample_extra { | |
| 618 | 	__u16 scaled_width; | |
| 619 | 	__u16 scaled_height; | |
| 620 | 	__s16 initial_phase_h[3]; | |
| 621 | 	__s16 initial_phase_v[3]; | |
| 622 | } __attribute__((packed)); | |
| 623 | ||
| 624 | /** | |
| 625 | * struct pisp_be_downscale_config - PiSP Back End Downscale config | |
| 626 | * | |
| 627 | * Downscale configuration | |
| 628 | * | |
| 629 | * @scale_factor_h:	Horizontal scale factor | |
| 630 | * @scale_factor_v:	Vertical scale factor | |
| 631 | * @scale_recip_h:	Horizontal reciprocal factor | |
| 632 | * @scale_recip_v:	Vertical reciprocal factor | |
| 633 | */ | |
| 634 | struct pisp_be_downscale_config { | |
| 635 | 	__u16 scale_factor_h; | |
| 636 | 	__u16 scale_factor_v; | |
| 637 | 	__u16 scale_recip_h; | |
| 638 | 	__u16 scale_recip_v; | |
| 639 | } __attribute__((packed)); | |
| 640 | ||
| 641 | /** | |
| 642 | * struct pisp_be_downscale_extra - PiSP Back End Downscale Extra config | |
| 643 | * @scaled_width:	Scaled image width | |
| 644 | * @scaled_height:	Scaled image height | |
| 645 | */ | |
| 646 | struct pisp_be_downscale_extra { | |
| 647 | 	__u16 scaled_width; | |
| 648 | 	__u16 scaled_height; | |
| 649 | } __attribute__((packed)); | |
| 650 | ||
| 651 | /** | |
| 652 | * struct pisp_be_hog_config - PiSP Back End HOG config | |
| 653 | * | |
| 654 | * Histogram of Oriented Gradients configuration | |
| 655 | * | |
| 656 | * @compute_signed:	Set 0 for unsigned gradients, 1 for signed | |
| 657 | * @channel_mix:	Channels proportions to use | |
| 658 | * @stride:		Stride in bytes between blocks directly below | |
| 659 | */ | |
| 660 | struct pisp_be_hog_config { | |
| 661 | 	__u8 compute_signed; | |
| 662 | 	__u8 channel_mix[3]; | |
| 663 | 	__u32 stride; | |
| 664 | } __attribute__((packed)); | |
| 665 | ||
| 666 | struct pisp_be_axi_config { | |
| 667 | 	__u8 r_qos; /* Read QoS */ | |
| 668 | 	__u8 r_cache_prot; /* Read { prot[2:0], cache[3:0] } */ | |
| 669 | 	__u8 w_qos; /* Write QoS */ | |
| 670 | 	__u8 w_cache_prot; /* Write { prot[2:0], cache[3:0] } */ | |
| 671 | } __attribute__((packed)); | |
| 672 | ||
| 673 | /** | |
| 674 | * enum pisp_be_transform - PiSP Back End Transform flags | |
| 675 | * @PISP_BE_TRANSFORM_NONE:	No transform | |
| 676 | * @PISP_BE_TRANSFORM_HFLIP:	Horizontal flip | |
| 677 | * @PISP_BE_TRANSFORM_VFLIP:	Vertical flip | |
| 678 | * @PISP_BE_TRANSFORM_ROT180:	180 degress rotation | |
| 679 | */ | |
| 680 | enum pisp_be_transform { | |
| 681 | 	PISP_BE_TRANSFORM_NONE = 0x0, | |
| 682 | 	PISP_BE_TRANSFORM_HFLIP = 0x1, | |
| 683 | 	PISP_BE_TRANSFORM_VFLIP = 0x2, | |
| 684 | 	PISP_BE_TRANSFORM_ROT180 = | |
| 685 | 		(PISP_BE_TRANSFORM_HFLIP | PISP_BE_TRANSFORM_VFLIP) | |
| 686 | }; | |
| 687 | ||
| 688 | struct pisp_be_output_format_config { | |
| 689 | 	struct pisp_image_format_config image; | |
| 690 | 	__u8 transform; | |
| 691 | 	__u8 pad[3]; | |
| 692 | 	__u16 lo; | |
| 693 | 	__u16 hi; | |
| 694 | 	__u16 lo2; | |
| 695 | 	__u16 hi2; | |
| 696 | } __attribute__((packed)); | |
| 697 | ||
| 698 | /** | |
| 699 | * struct pisp_be_output_buffer_config - PiSP Back End Output buffer | |
| 700 | * @addr:		Output buffer address | |
| 701 | */ | |
| 702 | struct pisp_be_output_buffer_config { | |
| 703 | 	/* low 32 bits followed by high 32 bits (for each of 3 planes) */ | |
| 704 | 	__u32 addr[3][2]; | |
| 705 | } __attribute__((packed)); | |
| 706 | ||
| 707 | /** | |
| 708 | * struct pisp_be_hog_buffer_config - PiSP Back End HOG buffer | |
| 709 | * @addr:		HOG buffer address | |
| 710 | */ | |
| 711 | struct pisp_be_hog_buffer_config { | |
| 712 | 	/* low 32 bits followed by high 32 bits */ | |
| 713 | 	__u32 addr[2]; | |
| 714 | } __attribute__((packed)); | |
| 715 | ||
| 716 | /** | |
| 717 | * struct pisp_be_config - RaspberryPi PiSP Back End Processing configuration | |
| 718 | * | |
| 719 | * @input_buffer:		Input buffer addresses | |
| 720 | * @tdn_input_buffer:		TDN input buffer addresses | |
| 721 | * @stitch_input_buffer:	Stitch input buffer addresses | |
| 722 | * @tdn_output_buffer:		TDN output buffer addresses | |
| 723 | * @stitch_output_buffer:	Stitch output buffer addresses | |
| 724 | * @output_buffer:		Output buffers addresses | |
| 725 | * @hog_buffer:			HOG buffer addresses | |
| 726 | * @global:			Global PiSP configuration | |
| 727 | * @input_format:		Input image format | |
| 728 | * @decompress:			Decompress configuration | |
| 729 | * @dpc:			Defective Pixel Correction configuration | |
| 730 | * @geq:			Green Equalisation configuration | |
| 731 | * @tdn_input_format:		Temporal Denoise input format | |
| 732 | * @tdn_decompress:		Temporal Denoise decompress configuration | |
| 733 | * @tdn:			Temporal Denoise configuration | |
| 734 | * @tdn_compress:		Temporal Denoise compress configuration | |
| 735 | * @tdn_output_format:		Temporal Denoise output format | |
| 736 | * @sdn:			Spatial Denoise configuration | |
| 737 | * @blc:			Black Level Correction configuration | |
| 738 | * @stitch_compress:		Stitch compress configuration | |
| 739 | * @stitch_output_format:	Stitch output format | |
| 740 | * @stitch_input_format:	Stitch input format | |
| 741 | * @stitch_decompress:		Stitch decompress configuration | |
| 742 | * @stitch:			Stitch configuration | |
| 743 | * @lsc:			Lens Shading Correction configuration | |
| 744 | * @wbg:			White Balance Gain configuration | |
| 745 | * @cdn:			Colour Denoise configuration | |
| 746 | * @cac:			Colour Aberration Correction configuration | |
| 747 | * @debin:			Debinning configuration | |
| 748 | * @tonemap:			Tonemapping configuration | |
| 749 | * @demosaic:			Demosaicing configuration | |
| 750 | * @ccm:			Colour Correction Matrix configuration | |
| 751 | * @sat_control:		Saturation Control configuration | |
| 752 | * @ycbcr:			YCbCr colour correction configuration | |
| 753 | * @sharpen:			Sharpening configuration | |
| 754 | * @false_colour:		False colour correction | |
| 755 | * @sh_fc_combine:		Sharpening and False Colour correction | |
| 756 | * @ycbcr_inverse:		Inverse YCbCr colour correction | |
| 757 | * @gamma:			Gamma curve configuration | |
| 758 | * @csc:			Color Space Conversion configuration | |
| 759 | * @downscale:			Downscale configuration | |
| 760 | * @resample:			Resampling configuration | |
| 761 | * @output_format:		Output format configuration | |
| 762 | * @hog:			HOG configuration | |
| 763 | * @axi:			AXI bus configuration | |
| 764 | * @lsc_extra:			LSC extra info | |
| 765 | * @cac_extra:			CAC extra info | |
| 766 | * @downscale_extra:		Downscaler extra info | |
| 767 | * @resample_extra:		Resample extra info | |
| 768 | * @crop:			Crop configuration | |
| 769 | * @hog_format:			HOG format info | |
| 770 | * @dirty_flags_bayer:		Bayer enable dirty flags | |
| 771 | *				(:c:type:`pisp_be_bayer_enable`) | |
| 772 | * @dirty_flags_rgb:		RGB enable dirty flags | |
| 773 | *				(:c:type:`pisp_be_rgb_enable`) | |
| 774 | * @dirty_flags_extra:		Extra dirty flags | |
| 775 | */ | |
| 776 | struct pisp_be_config { | |
| 777 | 	/* I/O configuration: */ | |
| 778 | 	struct pisp_be_input_buffer_config input_buffer; | |
| 779 | 	struct pisp_be_tdn_input_buffer_config tdn_input_buffer; | |
| 780 | 	struct pisp_be_stitch_input_buffer_config stitch_input_buffer; | |
| 781 | 	struct pisp_be_tdn_output_buffer_config tdn_output_buffer; | |
| 782 | 	struct pisp_be_stitch_output_buffer_config stitch_output_buffer; | |
| 783 | 	struct pisp_be_output_buffer_config | |
| 784 | 				output_buffer[PISP_BACK_END_NUM_OUTPUTS]; | |
| 785 | 	struct pisp_be_hog_buffer_config hog_buffer; | |
| 786 | 	/* Processing configuration: */ | |
| 787 | 	struct pisp_be_global_config global; | |
| 788 | 	struct pisp_image_format_config input_format; | |
| 789 | 	struct pisp_decompress_config decompress; | |
| 790 | 	struct pisp_be_dpc_config dpc; | |
| 791 | 	struct pisp_be_geq_config geq; | |
| 792 | 	struct pisp_image_format_config tdn_input_format; | |
| 793 | 	struct pisp_decompress_config tdn_decompress; | |
| 794 | 	struct pisp_be_tdn_config tdn; | |
| 795 | 	struct pisp_compress_config tdn_compress; | |
| 796 | 	struct pisp_image_format_config tdn_output_format; | |
| 797 | 	struct pisp_be_sdn_config sdn; | |
| 798 | 	struct pisp_bla_config blc; | |
| 799 | 	struct pisp_compress_config stitch_compress; | |
| 800 | 	struct pisp_image_format_config stitch_output_format; | |
| 801 | 	struct pisp_image_format_config stitch_input_format; | |
| 802 | 	struct pisp_decompress_config stitch_decompress; | |
| 803 | 	struct pisp_be_stitch_config stitch; | |
| 804 | 	struct pisp_be_lsc_config lsc; | |
| 805 | 	struct pisp_wbg_config wbg; | |
| 806 | 	struct pisp_be_cdn_config cdn; | |
| 807 | 	struct pisp_be_cac_config cac; | |
| 808 | 	struct pisp_be_debin_config debin; | |
| 809 | 	struct pisp_be_tonemap_config tonemap; | |
| 810 | 	struct pisp_be_demosaic_config demosaic; | |
| 811 | 	struct pisp_be_ccm_config ccm; | |
| 812 | 	struct pisp_be_sat_control_config sat_control; | |
| 813 | 	struct pisp_be_ccm_config ycbcr; | |
| 814 | 	struct pisp_be_sharpen_config sharpen; | |
| 815 | 	struct pisp_be_false_colour_config false_colour; | |
| 816 | 	struct pisp_be_sh_fc_combine_config sh_fc_combine; | |
| 817 | 	struct pisp_be_ccm_config ycbcr_inverse; | |
| 818 | 	struct pisp_be_gamma_config gamma; | |
| 819 | 	struct pisp_be_ccm_config csc[PISP_BACK_END_NUM_OUTPUTS]; | |
| 820 | 	struct pisp_be_downscale_config downscale[PISP_BACK_END_NUM_OUTPUTS]; | |
| 821 | 	struct pisp_be_resample_config resample[PISP_BACK_END_NUM_OUTPUTS]; | |
| 822 | 	struct pisp_be_output_format_config | |
| 823 | 				output_format[PISP_BACK_END_NUM_OUTPUTS]; | |
| 824 | 	struct pisp_be_hog_config hog; | |
| 825 | 	struct pisp_be_axi_config axi; | |
| 826 | 	/* Non-register fields: */ | |
| 827 | 	struct pisp_be_lsc_extra lsc_extra; | |
| 828 | 	struct pisp_be_cac_extra cac_extra; | |
| 829 | 	struct pisp_be_downscale_extra | |
| 830 | 				downscale_extra[PISP_BACK_END_NUM_OUTPUTS]; | |
| 831 | 	struct pisp_be_resample_extra resample_extra[PISP_BACK_END_NUM_OUTPUTS]; | |
| 832 | 	struct pisp_be_crop_config crop; | |
| 833 | 	struct pisp_image_format_config hog_format; | |
| 834 | 	__u32 dirty_flags_bayer; /* these use pisp_be_bayer_enable */ | |
| 835 | 	__u32 dirty_flags_rgb; /* use pisp_be_rgb_enable */ | |
| 836 | 	__u32 dirty_flags_extra; /* these use pisp_be_dirty_t */ | |
| 837 | } __attribute__((packed)); | |
| 838 | ||
| 839 | /** | |
| 840 | * enum pisp_tile_edge - PiSP Back End Tile position | |
| 841 | * @PISP_LEFT_EDGE:		Left edge tile | |
| 842 | * @PISP_RIGHT_EDGE:		Right edge tile | |
| 843 | * @PISP_TOP_EDGE:		Top edge tile | |
| 844 | * @PISP_BOTTOM_EDGE:		Bottom edge tile | |
| 845 | */ | |
| 846 | enum pisp_tile_edge { | |
| 847 | 	PISP_LEFT_EDGE = (1 << 0), | |
| 848 | 	PISP_RIGHT_EDGE = (1 << 1), | |
| 849 | 	PISP_TOP_EDGE = (1 << 2), | |
| 850 | 	PISP_BOTTOM_EDGE = (1 << 3) | |
| 851 | }; | |
| 852 | ||
| 853 | /** | |
| 854 | * struct pisp_tile - Raspberry Pi PiSP Back End tile configuration | |
| 855 | * | |
| 856 | * Tile parameters: each set of tile parameters is a 160-bytes block of data | |
| 857 | * which contains the tile processing parameters. | |
| 858 | * | |
| 859 | * @edge:			Edge tile flag | |
| 860 | * @pad0:			Padding bytes | |
| 861 | * @input_addr_offset:		Top-left pixel offset, in bytes | |
| 862 | * @input_addr_offset2:		Top-left pixel offset, in bytes for the second/ | |
| 863 | *				third image planes | |
| 864 | * @input_offset_x:		Horizontal offset in pixels of this tile in the | |
| 865 | *				input image | |
| 866 | * @input_offset_y:		Vertical offset in pixels of this tile in the | |
| 867 | *				input image | |
| 868 | * @input_width:		Width in pixels of this tile | |
| 869 | * @input_height:		Height in pixels of the this tile | |
| 870 | * @tdn_input_addr_offset:	TDN input image offset, in bytes | |
| 871 | * @tdn_output_addr_offset:	TDN output image offset, in bytes | |
| 872 | * @stitch_input_addr_offset:	Stitch input image offset, in bytes | |
| 873 | * @stitch_output_addr_offset:	Stitch output image offset, in bytes | |
| 874 | * @lsc_grid_offset_x:		Horizontal offset in the LSC table for this tile | |
| 875 | * @lsc_grid_offset_y:		Vertical offset in the LSC table for this tile | |
| 876 | * @cac_grid_offset_x:		Horizontal offset in the CAC table for this tile | |
| 877 | * @cac_grid_offset_y:		Horizontal offset in the CAC table for this tile | |
| 878 | * @crop_x_start:		Number of pixels cropped from the left of the | |
| 879 | *				tile | |
| 880 | * @crop_x_end:			Number of pixels cropped from the right of the | |
| 881 | *				tile | |
| 882 | * @crop_y_start:		Number of pixels cropped from the top of the | |
| 883 | *				tile | |
| 884 | * @crop_y_end:			Number of pixels cropped from the bottom of the | |
| 885 | *				tile | |
| 886 | * @downscale_phase_x:		Initial horizontal phase in pixels | |
| 887 | * @downscale_phase_y:		Initial vertical phase in pixels | |
| 888 | * @resample_in_width:		Width in pixels of the tile entering the | |
| 889 | *				Resample block | |
| 890 | * @resample_in_height:		Height in pixels of the tile entering the | |
| 891 | *				Resample block | |
| 892 | * @resample_phase_x:		Initial horizontal phase for the Resample block | |
| 893 | * @resample_phase_y:		Initial vertical phase for the Resample block | |
| 894 | * @output_offset_x:		Horizontal offset in pixels where the tile will | |
| 895 | *				be written into the output image | |
| 896 | * @output_offset_y:		Vertical offset in pixels where the tile will be | |
| 897 | *				written into the output image | |
| 898 | * @output_width:		Width in pixels in the output image of this tile | |
| 899 | * @output_height:		Height in pixels in the output image of this tile | |
| 900 | * @output_addr_offset:		Offset in bytes into the output buffer | |
| 901 | * @output_addr_offset2:	Offset in bytes into the output buffer for the | |
| 902 | *				second and third plane | |
| 903 | * @output_hog_addr_offset:	Offset in bytes into the HOG buffer where | |
| 904 | *				results of this tile are to be written | |
| 905 | */ | |
| 906 | struct pisp_tile { | |
| 907 | 	__u8 edge; /* enum pisp_tile_edge */ | |
| 908 | 	__u8 pad0[3]; | |
| 909 | 	/* 4 bytes */ | |
| 910 | 	__u32 input_addr_offset; | |
| 911 | 	__u32 input_addr_offset2; | |
| 912 | 	__u16 input_offset_x; | |
| 913 | 	__u16 input_offset_y; | |
| 914 | 	__u16 input_width; | |
| 915 | 	__u16 input_height; | |
| 916 | 	/* 20 bytes */ | |
| 917 | 	__u32 tdn_input_addr_offset; | |
| 918 | 	__u32 tdn_output_addr_offset; | |
| 919 | 	__u32 stitch_input_addr_offset; | |
| 920 | 	__u32 stitch_output_addr_offset; | |
| 921 | 	/* 36 bytes */ | |
| 922 | 	__u32 lsc_grid_offset_x; | |
| 923 | 	__u32 lsc_grid_offset_y; | |
| 924 | 	/* 44 bytes */ | |
| 925 | 	__u32 cac_grid_offset_x; | |
| 926 | 	__u32 cac_grid_offset_y; | |
| 927 | 	/* 52 bytes */ | |
| 928 | 	__u16 crop_x_start[PISP_BACK_END_NUM_OUTPUTS]; | |
| 929 | 	__u16 crop_x_end[PISP_BACK_END_NUM_OUTPUTS]; | |
| 930 | 	__u16 crop_y_start[PISP_BACK_END_NUM_OUTPUTS]; | |
| 931 | 	__u16 crop_y_end[PISP_BACK_END_NUM_OUTPUTS]; | |
| 932 | 	/* 68 bytes */ | |
| 933 | 	/* Ordering is planes then branches */ | |
| 934 | 	__u16 downscale_phase_x[3 * PISP_BACK_END_NUM_OUTPUTS]; | |
| 935 | 	__u16 downscale_phase_y[3 * PISP_BACK_END_NUM_OUTPUTS]; | |
| 936 | 	/* 92 bytes */ | |
| 937 | 	__u16 resample_in_width[PISP_BACK_END_NUM_OUTPUTS]; | |
| 938 | 	__u16 resample_in_height[PISP_BACK_END_NUM_OUTPUTS]; | |
| 939 | 	/* 100 bytes */ | |
| 940 | 	/* Ordering is planes then branches */ | |
| 941 | 	__u16 resample_phase_x[3 * PISP_BACK_END_NUM_OUTPUTS]; | |
| 942 | 	__u16 resample_phase_y[3 * PISP_BACK_END_NUM_OUTPUTS]; | |
| 943 | 	/* 124 bytes */ | |
| 944 | 	__u16 output_offset_x[PISP_BACK_END_NUM_OUTPUTS]; | |
| 945 | 	__u16 output_offset_y[PISP_BACK_END_NUM_OUTPUTS]; | |
| 946 | 	__u16 output_width[PISP_BACK_END_NUM_OUTPUTS]; | |
| 947 | 	__u16 output_height[PISP_BACK_END_NUM_OUTPUTS]; | |
| 948 | 	/* 140 bytes */ | |
| 949 | 	__u32 output_addr_offset[PISP_BACK_END_NUM_OUTPUTS]; | |
| 950 | 	__u32 output_addr_offset2[PISP_BACK_END_NUM_OUTPUTS]; | |
| 951 | 	/* 156 bytes */ | |
| 952 | 	__u32 output_hog_addr_offset; | |
| 953 | 	/* 160 bytes */ | |
| 954 | } __attribute__((packed)); | |
| 955 | ||
| 956 | /** | |
| 957 | * struct pisp_be_tiles_config - Raspberry Pi PiSP Back End configuration | |
| 958 | * @tiles:	Tile descriptors | |
| 959 | * @num_tiles:	Number of tiles | |
| 960 | * @config:	PiSP Back End configuration | |
| 961 | */ | |
| 962 | struct pisp_be_tiles_config { | |
| 963 | 	struct pisp_be_config config; | |
| 964 | 	struct pisp_tile tiles[PISP_BACK_END_NUM_TILES]; | |
| 965 | 	__u32 num_tiles; | |
| 966 | } __attribute__((packed)); | |
| 967 | ||
| 968 | #endif /* _PISP_BE_CONFIG_H_ */ | |
| \ No newline at end of file |
lib/libc/include/any-linux-any/linux/media/raspberrypi/pisp_common.h created+202| ... | ... | @@ -0,0 +1,202 @@ |
| 1 | /* SPDX-License-Identifier: GPL-2.0-only WITH Linux-syscall-note */ | |
| 2 | /* | |
| 3 | * RP1 PiSP common definitions. | |
| 4 | * | |
| 5 | * Copyright (C) 2021 - Raspberry Pi Ltd. | |
| 6 | * | |
| 7 | */ | |
| 8 | #ifndef _PISP_COMMON_H_ | |
| 9 | #define _PISP_COMMON_H_ | |
| 10 | ||
| 11 | #include <linux/types.h> | |
| 12 | ||
| 13 | struct pisp_image_format_config { | |
| 14 | 	/* size in pixels */ | |
| 15 | 	__u16 width; | |
| 16 | 	__u16 height; | |
| 17 | 	/* must match struct pisp_image_format below */ | |
| 18 | 	__u32 format; | |
| 19 | 	__s32 stride; | |
| 20 | 	/* some planar image formats will need a second stride */ | |
| 21 | 	__s32 stride2; | |
| 22 | } __attribute__((packed)); | |
| 23 | ||
| 24 | enum pisp_bayer_order { | |
| 25 | 	/* | |
| 26 | 	 * Note how bayer_order&1 tells you if G is on the even pixels of the | |
| 27 | 	 * checkerboard or not, and bayer_order&2 tells you if R is on the even | |
| 28 | 	 * rows or is swapped with B. Note that if the top (of the 8) bits is | |
| 29 | 	 * set, this denotes a monochrome or greyscale image, and the lower bits | |
| 30 | 	 * should all be ignored. | |
| 31 | 	 */ | |
| 32 | 	PISP_BAYER_ORDER_RGGB = 0, | |
| 33 | 	PISP_BAYER_ORDER_GBRG = 1, | |
| 34 | 	PISP_BAYER_ORDER_BGGR = 2, | |
| 35 | 	PISP_BAYER_ORDER_GRBG = 3, | |
| 36 | 	PISP_BAYER_ORDER_GREYSCALE = 128 | |
| 37 | }; | |
| 38 | ||
| 39 | enum pisp_image_format { | |
| 40 | 	/* | |
| 41 | 	 * Precise values are mostly tbd. Generally these will be portmanteau | |
| 42 | 	 * values comprising bit fields and flags. This format must be shared | |
| 43 | 	 * throughout the PiSP. | |
| 44 | 	 */ | |
| 45 | 	PISP_IMAGE_FORMAT_BPS_8 = 0x00000000, | |
| 46 | 	PISP_IMAGE_FORMAT_BPS_10 = 0x00000001, | |
| 47 | 	PISP_IMAGE_FORMAT_BPS_12 = 0x00000002, | |
| 48 | 	PISP_IMAGE_FORMAT_BPS_16 = 0x00000003, | |
| 49 | 	PISP_IMAGE_FORMAT_BPS_MASK = 0x00000003, | |
| 50 | ||
| 51 | 	PISP_IMAGE_FORMAT_PLANARITY_INTERLEAVED = 0x00000000, | |
| 52 | 	PISP_IMAGE_FORMAT_PLANARITY_SEMI_PLANAR = 0x00000010, | |
| 53 | 	PISP_IMAGE_FORMAT_PLANARITY_PLANAR = 0x00000020, | |
| 54 | 	PISP_IMAGE_FORMAT_PLANARITY_MASK = 0x00000030, | |
| 55 | ||
| 56 | 	PISP_IMAGE_FORMAT_SAMPLING_444 = 0x00000000, | |
| 57 | 	PISP_IMAGE_FORMAT_SAMPLING_422 = 0x00000100, | |
| 58 | 	PISP_IMAGE_FORMAT_SAMPLING_420 = 0x00000200, | |
| 59 | 	PISP_IMAGE_FORMAT_SAMPLING_MASK = 0x00000300, | |
| 60 | ||
| 61 | 	PISP_IMAGE_FORMAT_ORDER_NORMAL = 0x00000000, | |
| 62 | 	PISP_IMAGE_FORMAT_ORDER_SWAPPED = 0x00001000, | |
| 63 | ||
| 64 | 	PISP_IMAGE_FORMAT_SHIFT_0 = 0x00000000, | |
| 65 | 	PISP_IMAGE_FORMAT_SHIFT_1 = 0x00010000, | |
| 66 | 	PISP_IMAGE_FORMAT_SHIFT_2 = 0x00020000, | |
| 67 | 	PISP_IMAGE_FORMAT_SHIFT_3 = 0x00030000, | |
| 68 | 	PISP_IMAGE_FORMAT_SHIFT_4 = 0x00040000, | |
| 69 | 	PISP_IMAGE_FORMAT_SHIFT_5 = 0x00050000, | |
| 70 | 	PISP_IMAGE_FORMAT_SHIFT_6 = 0x00060000, | |
| 71 | 	PISP_IMAGE_FORMAT_SHIFT_7 = 0x00070000, | |
| 72 | 	PISP_IMAGE_FORMAT_SHIFT_8 = 0x00080000, | |
| 73 | 	PISP_IMAGE_FORMAT_SHIFT_MASK = 0x000f0000, | |
| 74 | ||
| 75 | 	PISP_IMAGE_FORMAT_BPP_32 = 0x00100000, | |
| 76 | ||
| 77 | 	PISP_IMAGE_FORMAT_UNCOMPRESSED = 0x00000000, | |
| 78 | 	PISP_IMAGE_FORMAT_COMPRESSION_MODE_1 = 0x01000000, | |
| 79 | 	PISP_IMAGE_FORMAT_COMPRESSION_MODE_2 = 0x02000000, | |
| 80 | 	PISP_IMAGE_FORMAT_COMPRESSION_MODE_3 = 0x03000000, | |
| 81 | 	PISP_IMAGE_FORMAT_COMPRESSION_MASK = 0x03000000, | |
| 82 | ||
| 83 | 	PISP_IMAGE_FORMAT_HOG_SIGNED = 0x04000000, | |
| 84 | 	PISP_IMAGE_FORMAT_HOG_UNSIGNED = 0x08000000, | |
| 85 | 	PISP_IMAGE_FORMAT_INTEGRAL_IMAGE = 0x10000000, | |
| 86 | 	PISP_IMAGE_FORMAT_WALLPAPER_ROLL = 0x20000000, | |
| 87 | 	PISP_IMAGE_FORMAT_THREE_CHANNEL = 0x40000000, | |
| 88 | ||
| 89 | 	/* Lastly a few specific instantiations of the above. */ | |
| 90 | 	PISP_IMAGE_FORMAT_SINGLE_16 = PISP_IMAGE_FORMAT_BPS_16, | |
| 91 | 	PISP_IMAGE_FORMAT_THREE_16 = PISP_IMAGE_FORMAT_BPS_16 | | |
| 92 | 				 PISP_IMAGE_FORMAT_THREE_CHANNEL | |
| 93 | }; | |
| 94 | ||
| 95 | #define PISP_IMAGE_FORMAT_BPS_8(fmt) \ | |
| 96 | 	(((fmt) & PISP_IMAGE_FORMAT_BPS_MASK) == PISP_IMAGE_FORMAT_BPS_8) | |
| 97 | #define PISP_IMAGE_FORMAT_BPS_10(fmt) \ | |
| 98 | 	(((fmt) & PISP_IMAGE_FORMAT_BPS_MASK) == PISP_IMAGE_FORMAT_BPS_10) | |
| 99 | #define PISP_IMAGE_FORMAT_BPS_12(fmt) \ | |
| 100 | 	(((fmt) & PISP_IMAGE_FORMAT_BPS_MASK) == PISP_IMAGE_FORMAT_BPS_12) | |
| 101 | #define PISP_IMAGE_FORMAT_BPS_16(fmt) \ | |
| 102 | 	(((fmt) & PISP_IMAGE_FORMAT_BPS_MASK) == PISP_IMAGE_FORMAT_BPS_16) | |
| 103 | #define PISP_IMAGE_FORMAT_BPS(fmt) \ | |
| 104 | 	(((fmt) & PISP_IMAGE_FORMAT_BPS_MASK) ? \ | |
| 105 | 	 8 + (2 << (((fmt) & PISP_IMAGE_FORMAT_BPS_MASK) - 1)) : 8) | |
| 106 | #define PISP_IMAGE_FORMAT_SHIFT(fmt) \ | |
| 107 | 	(((fmt) & PISP_IMAGE_FORMAT_SHIFT_MASK) / PISP_IMAGE_FORMAT_SHIFT_1) | |
| 108 | #define PISP_IMAGE_FORMAT_THREE_CHANNEL(fmt) \ | |
| 109 | 	((fmt) & PISP_IMAGE_FORMAT_THREE_CHANNEL) | |
| 110 | #define PISP_IMAGE_FORMAT_SINGLE_CHANNEL(fmt) \ | |
| 111 | 	(!((fmt) & PISP_IMAGE_FORMAT_THREE_CHANNEL)) | |
| 112 | #define PISP_IMAGE_FORMAT_COMPRESSED(fmt) \ | |
| 113 | 	(((fmt) & PISP_IMAGE_FORMAT_COMPRESSION_MASK) != \ | |
| 114 | 	 PISP_IMAGE_FORMAT_UNCOMPRESSED) | |
| 115 | #define PISP_IMAGE_FORMAT_SAMPLING_444(fmt) \ | |
| 116 | 	(((fmt) & PISP_IMAGE_FORMAT_SAMPLING_MASK) == \ | |
| 117 | 	 PISP_IMAGE_FORMAT_SAMPLING_444) | |
| 118 | #define PISP_IMAGE_FORMAT_SAMPLING_422(fmt) \ | |
| 119 | 	(((fmt) & PISP_IMAGE_FORMAT_SAMPLING_MASK) == \ | |
| 120 | 	 PISP_IMAGE_FORMAT_SAMPLING_422) | |
| 121 | #define PISP_IMAGE_FORMAT_SAMPLING_420(fmt) \ | |
| 122 | 	(((fmt) & PISP_IMAGE_FORMAT_SAMPLING_MASK) == \ | |
| 123 | 	 PISP_IMAGE_FORMAT_SAMPLING_420) | |
| 124 | #define PISP_IMAGE_FORMAT_ORDER_NORMAL(fmt) \ | |
| 125 | 	(!((fmt) & PISP_IMAGE_FORMAT_ORDER_SWAPPED)) | |
| 126 | #define PISP_IMAGE_FORMAT_ORDER_SWAPPED(fmt) \ | |
| 127 | 	((fmt) & PISP_IMAGE_FORMAT_ORDER_SWAPPED) | |
| 128 | #define PISP_IMAGE_FORMAT_INTERLEAVED(fmt) \ | |
| 129 | 	(((fmt) & PISP_IMAGE_FORMAT_PLANARITY_MASK) == \ | |
| 130 | 	 PISP_IMAGE_FORMAT_PLANARITY_INTERLEAVED) | |
| 131 | #define PISP_IMAGE_FORMAT_SEMIPLANAR(fmt) \ | |
| 132 | 	(((fmt) & PISP_IMAGE_FORMAT_PLANARITY_MASK) == \ | |
| 133 | 	 PISP_IMAGE_FORMAT_PLANARITY_SEMI_PLANAR) | |
| 134 | #define PISP_IMAGE_FORMAT_PLANAR(fmt) \ | |
| 135 | 	(((fmt) & PISP_IMAGE_FORMAT_PLANARITY_MASK) == \ | |
| 136 | 	 PISP_IMAGE_FORMAT_PLANARITY_PLANAR) | |
| 137 | #define PISP_IMAGE_FORMAT_WALLPAPER(fmt) \ | |
| 138 | 	((fmt) & PISP_IMAGE_FORMAT_WALLPAPER_ROLL) | |
| 139 | #define PISP_IMAGE_FORMAT_BPP_32(fmt) ((fmt) & PISP_IMAGE_FORMAT_BPP_32) | |
| 140 | #define PISP_IMAGE_FORMAT_HOG(fmt) \ | |
| 141 | 	((fmt) & \ | |
| 142 | 	 (PISP_IMAGE_FORMAT_HOG_SIGNED | PISP_IMAGE_FORMAT_HOG_UNSIGNED)) | |
| 143 | ||
| 144 | #define PISP_WALLPAPER_WIDTH 128 /* in bytes */ | |
| 145 | ||
| 146 | struct pisp_bla_config { | |
| 147 | 	__u16 black_level_r; | |
| 148 | 	__u16 black_level_gr; | |
| 149 | 	__u16 black_level_gb; | |
| 150 | 	__u16 black_level_b; | |
| 151 | 	__u16 output_black_level; | |
| 152 | 	__u8 pad[2]; | |
| 153 | } __attribute__((packed)); | |
| 154 | ||
| 155 | struct pisp_wbg_config { | |
| 156 | 	__u16 gain_r; | |
| 157 | 	__u16 gain_g; | |
| 158 | 	__u16 gain_b; | |
| 159 | 	__u8 pad[2]; | |
| 160 | } __attribute__((packed)); | |
| 161 | ||
| 162 | struct pisp_compress_config { | |
| 163 | 	/* value subtracted from incoming data */ | |
| 164 | 	__u16 offset; | |
| 165 | 	__u8 pad; | |
| 166 | 	/* 1 => Companding; 2 => Delta (recommended); 3 => Combined (for HDR) */ | |
| 167 | 	__u8 mode; | |
| 168 | } __attribute__((packed)); | |
| 169 | ||
| 170 | struct pisp_decompress_config { | |
| 171 | 	/* value added to reconstructed data */ | |
| 172 | 	__u16 offset; | |
| 173 | 	__u8 pad; | |
| 174 | 	/* 1 => Companding; 2 => Delta (recommended); 3 => Combined (for HDR) */ | |
| 175 | 	__u8 mode; | |
| 176 | } __attribute__((packed)); | |
| 177 | ||
| 178 | enum pisp_axi_flags { | |
| 179 | 	/* | |
| 180 | 	 * round down bursts to end at a 32-byte boundary, to align following | |
| 181 | 	 * bursts | |
| 182 | 	 */ | |
| 183 | 	PISP_AXI_FLAG_ALIGN = 128, | |
| 184 | 	/* for FE writer: force WSTRB high, to pad output to 16-byte boundary */ | |
| 185 | 	PISP_AXI_FLAG_PAD = 64, | |
| 186 | 	/* for FE writer: Use Output FIFO level to trigger "panic" */ | |
| 187 | 	PISP_AXI_FLAG_PANIC = 32, | |
| 188 | }; | |
| 189 | ||
| 190 | struct pisp_axi_config { | |
| 191 | 	/* | |
| 192 | 	 * burst length minus one, which must be in the range 0:15; OR'd with | |
| 193 | 	 * flags | |
| 194 | 	 */ | |
| 195 | 	__u8 maxlen_flags; | |
| 196 | 	/* { prot[2:0], cache[3:0] } fields, echoed on AXI bus */ | |
| 197 | 	__u8 cache_prot; | |
| 198 | 	/* QoS field(s) (4x4 bits for FE writer; 4 bits for other masters) */ | |
| 199 | 	__u16 qos; | |
| 200 | } __attribute__((packed)); | |
| 201 | ||
| 202 | #endif /* _PISP_COMMON_H_ */ | |
| \ No newline at end of file |
lib/libc/include/any-linux-any/linux/media/raspberrypi/pisp_fe_config.h created+273| ... | ... | @@ -0,0 +1,273 @@ |
| 1 | /* SPDX-License-Identifier: GPL-2.0-only WITH Linux-syscall-note */ | |
| 2 | /* | |
| 3 | * RP1 PiSP Front End Driver Configuration structures | |
| 4 | * | |
| 5 | * Copyright (C) 2021 - Raspberry Pi Ltd. | |
| 6 | * | |
| 7 | */ | |
| 8 | #ifndef _PISP_FE_CONFIG_ | |
| 9 | #define _PISP_FE_CONFIG_ | |
| 10 | ||
| 11 | #include <linux/types.h> | |
| 12 | ||
| 13 | #include "pisp_common.h" | |
| 14 | #include "pisp_fe_statistics.h" | |
| 15 | ||
| 16 | #define PISP_FE_NUM_OUTPUTS 2 | |
| 17 | ||
| 18 | enum pisp_fe_enable { | |
| 19 | 	PISP_FE_ENABLE_INPUT = 0x000001, | |
| 20 | 	PISP_FE_ENABLE_DECOMPRESS = 0x000002, | |
| 21 | 	PISP_FE_ENABLE_DECOMPAND = 0x000004, | |
| 22 | 	PISP_FE_ENABLE_BLA = 0x000008, | |
| 23 | 	PISP_FE_ENABLE_DPC = 0x000010, | |
| 24 | 	PISP_FE_ENABLE_STATS_CROP = 0x000020, | |
| 25 | 	PISP_FE_ENABLE_DECIMATE = 0x000040, | |
| 26 | 	PISP_FE_ENABLE_BLC = 0x000080, | |
| 27 | 	PISP_FE_ENABLE_CDAF_STATS = 0x000100, | |
| 28 | 	PISP_FE_ENABLE_AWB_STATS = 0x000200, | |
| 29 | 	PISP_FE_ENABLE_RGBY = 0x000400, | |
| 30 | 	PISP_FE_ENABLE_LSC = 0x000800, | |
| 31 | 	PISP_FE_ENABLE_AGC_STATS = 0x001000, | |
| 32 | 	PISP_FE_ENABLE_CROP0 = 0x010000, | |
| 33 | 	PISP_FE_ENABLE_DOWNSCALE0 = 0x020000, | |
| 34 | 	PISP_FE_ENABLE_COMPRESS0 = 0x040000, | |
| 35 | 	PISP_FE_ENABLE_OUTPUT0 = 0x080000, | |
| 36 | 	PISP_FE_ENABLE_CROP1 = 0x100000, | |
| 37 | 	PISP_FE_ENABLE_DOWNSCALE1 = 0x200000, | |
| 38 | 	PISP_FE_ENABLE_COMPRESS1 = 0x400000, | |
| 39 | 	PISP_FE_ENABLE_OUTPUT1 = 0x800000 | |
| 40 | }; | |
| 41 | ||
| 42 | #define PISP_FE_ENABLE_CROP(i) (PISP_FE_ENABLE_CROP0 << (4 * (i))) | |
| 43 | #define PISP_FE_ENABLE_DOWNSCALE(i) (PISP_FE_ENABLE_DOWNSCALE0 << (4 * (i))) | |
| 44 | #define PISP_FE_ENABLE_COMPRESS(i) (PISP_FE_ENABLE_COMPRESS0 << (4 * (i))) | |
| 45 | #define PISP_FE_ENABLE_OUTPUT(i) (PISP_FE_ENABLE_OUTPUT0 << (4 * (i))) | |
| 46 | ||
| 47 | /* | |
| 48 | * We use the enable flags to show when blocks are "dirty", but we need some | |
| 49 | * extra ones too. | |
| 50 | */ | |
| 51 | enum pisp_fe_dirty { | |
| 52 | 	PISP_FE_DIRTY_GLOBAL = 0x0001, | |
| 53 | 	PISP_FE_DIRTY_FLOATING = 0x0002, | |
| 54 | 	PISP_FE_DIRTY_OUTPUT_AXI = 0x0004 | |
| 55 | }; | |
| 56 | ||
| 57 | struct pisp_fe_global_config { | |
| 58 | 	__u32 enables; | |
| 59 | 	__u8 bayer_order; | |
| 60 | 	__u8 pad[3]; | |
| 61 | } __attribute__((packed)); | |
| 62 | ||
| 63 | struct pisp_fe_input_axi_config { | |
| 64 | 	/* burst length minus one, in the range 0..15; OR'd with flags */ | |
| 65 | 	__u8 maxlen_flags; | |
| 66 | 	/* { prot[2:0], cache[3:0] } fields */ | |
| 67 | 	__u8 cache_prot; | |
| 68 | 	/* QoS (only 4 LS bits are used) */ | |
| 69 | 	__u16 qos; | |
| 70 | } __attribute__((packed)); | |
| 71 | ||
| 72 | struct pisp_fe_output_axi_config { | |
| 73 | 	/* burst length minus one, in the range 0..15; OR'd with flags */ | |
| 74 | 	__u8 maxlen_flags; | |
| 75 | 	/* { prot[2:0], cache[3:0] } fields */ | |
| 76 | 	__u8 cache_prot; | |
| 77 | 	/* QoS (4 bitfields of 4 bits each for different panic levels) */ | |
| 78 | 	__u16 qos; | |
| 79 | 	/* For Panic mode: Output FIFO panic threshold */ | |
| 80 | 	__u16 thresh; | |
| 81 | 	/* For Panic mode: Output FIFO statistics throttle threshold */ | |
| 82 | 	__u16 throttle; | |
| 83 | } __attribute__((packed)); | |
| 84 | ||
| 85 | struct pisp_fe_input_config { | |
| 86 | 	__u8 streaming; | |
| 87 | 	__u8 pad[3]; | |
| 88 | 	struct pisp_image_format_config format; | |
| 89 | 	struct pisp_fe_input_axi_config axi; | |
| 90 | 	/* Extra cycles delay before issuing each burst request */ | |
| 91 | 	__u8 holdoff; | |
| 92 | 	__u8 pad2[3]; | |
| 93 | } __attribute__((packed)); | |
| 94 | ||
| 95 | struct pisp_fe_output_config { | |
| 96 | 	struct pisp_image_format_config format; | |
| 97 | 	__u16 ilines; | |
| 98 | 	__u8 pad[2]; | |
| 99 | } __attribute__((packed)); | |
| 100 | ||
| 101 | struct pisp_fe_input_buffer_config { | |
| 102 | 	__u32 addr_lo; | |
| 103 | 	__u32 addr_hi; | |
| 104 | 	__u16 frame_id; | |
| 105 | 	__u16 pad; | |
| 106 | } __attribute__((packed)); | |
| 107 | ||
| 108 | #define PISP_FE_DECOMPAND_LUT_SIZE 65 | |
| 109 | ||
| 110 | struct pisp_fe_decompand_config { | |
| 111 | 	__u16 lut[PISP_FE_DECOMPAND_LUT_SIZE]; | |
| 112 | 	__u16 pad; | |
| 113 | } __attribute__((packed)); | |
| 114 | ||
| 115 | struct pisp_fe_dpc_config { | |
| 116 | 	__u8 coeff_level; | |
| 117 | 	__u8 coeff_range; | |
| 118 | 	__u8 coeff_range2; | |
| 119 | #define PISP_FE_DPC_FLAG_FOLDBACK 1 | |
| 120 | #define PISP_FE_DPC_FLAG_VFLAG 2 | |
| 121 | 	__u8 flags; | |
| 122 | } __attribute__((packed)); | |
| 123 | ||
| 124 | #define PISP_FE_LSC_LUT_SIZE 16 | |
| 125 | ||
| 126 | struct pisp_fe_lsc_config { | |
| 127 | 	__u8 shift; | |
| 128 | 	__u8 pad0; | |
| 129 | 	__u16 scale; | |
| 130 | 	__u16 centre_x; | |
| 131 | 	__u16 centre_y; | |
| 132 | 	__u16 lut[PISP_FE_LSC_LUT_SIZE]; | |
| 133 | } __attribute__((packed)); | |
| 134 | ||
| 135 | struct pisp_fe_rgby_config { | |
| 136 | 	__u16 gain_r; | |
| 137 | 	__u16 gain_g; | |
| 138 | 	__u16 gain_b; | |
| 139 | 	__u8 maxflag; | |
| 140 | 	__u8 pad; | |
| 141 | } __attribute__((packed)); | |
| 142 | ||
| 143 | struct pisp_fe_agc_stats_config { | |
| 144 | 	__u16 offset_x; | |
| 145 | 	__u16 offset_y; | |
| 146 | 	__u16 size_x; | |
| 147 | 	__u16 size_y; | |
| 148 | 	/* each weight only 4 bits */ | |
| 149 | 	__u8 weights[PISP_AGC_STATS_NUM_ZONES / 2]; | |
| 150 | 	__u16 row_offset_x; | |
| 151 | 	__u16 row_offset_y; | |
| 152 | 	__u16 row_size_x; | |
| 153 | 	__u16 row_size_y; | |
| 154 | 	__u8 row_shift; | |
| 155 | 	__u8 float_shift; | |
| 156 | 	__u8 pad1[2]; | |
| 157 | } __attribute__((packed)); | |
| 158 | ||
| 159 | struct pisp_fe_awb_stats_config { | |
| 160 | 	__u16 offset_x; | |
| 161 | 	__u16 offset_y; | |
| 162 | 	__u16 size_x; | |
| 163 | 	__u16 size_y; | |
| 164 | 	__u8 shift; | |
| 165 | 	__u8 pad[3]; | |
| 166 | 	__u16 r_lo; | |
| 167 | 	__u16 r_hi; | |
| 168 | 	__u16 g_lo; | |
| 169 | 	__u16 g_hi; | |
| 170 | 	__u16 b_lo; | |
| 171 | 	__u16 b_hi; | |
| 172 | } __attribute__((packed)); | |
| 173 | ||
| 174 | struct pisp_fe_floating_stats_region { | |
| 175 | 	__u16 offset_x; | |
| 176 | 	__u16 offset_y; | |
| 177 | 	__u16 size_x; | |
| 178 | 	__u16 size_y; | |
| 179 | } __attribute__((packed)); | |
| 180 | ||
| 181 | struct pisp_fe_floating_stats_config { | |
| 182 | 	struct pisp_fe_floating_stats_region | |
| 183 | 		regions[PISP_FLOATING_STATS_NUM_ZONES]; | |
| 184 | } __attribute__((packed)); | |
| 185 | ||
| 186 | #define PISP_FE_CDAF_NUM_WEIGHTS 8 | |
| 187 | ||
| 188 | struct pisp_fe_cdaf_stats_config { | |
| 189 | 	__u16 noise_constant; | |
| 190 | 	__u16 noise_slope; | |
| 191 | 	__u16 offset_x; | |
| 192 | 	__u16 offset_y; | |
| 193 | 	__u16 size_x; | |
| 194 | 	__u16 size_y; | |
| 195 | 	__u16 skip_x; | |
| 196 | 	__u16 skip_y; | |
| 197 | 	__u32 mode; | |
| 198 | } __attribute__((packed)); | |
| 199 | ||
| 200 | struct pisp_fe_stats_buffer_config { | |
| 201 | 	__u32 addr_lo; | |
| 202 | 	__u32 addr_hi; | |
| 203 | } __attribute__((packed)); | |
| 204 | ||
| 205 | struct pisp_fe_crop_config { | |
| 206 | 	__u16 offset_x; | |
| 207 | 	__u16 offset_y; | |
| 208 | 	__u16 width; | |
| 209 | 	__u16 height; | |
| 210 | } __attribute__((packed)); | |
| 211 | ||
| 212 | enum pisp_fe_downscale_flags { | |
| 213 | 	/* downscale the four Bayer components independently... */ | |
| 214 | 	DOWNSCALE_BAYER = 1, | |
| 215 | 	/* ...without trying to preserve their spatial relationship */ | |
| 216 | 	DOWNSCALE_BIN = 2, | |
| 217 | }; | |
| 218 | ||
| 219 | struct pisp_fe_downscale_config { | |
| 220 | 	__u8 xin; | |
| 221 | 	__u8 xout; | |
| 222 | 	__u8 yin; | |
| 223 | 	__u8 yout; | |
| 224 | 	__u8 flags; /* enum pisp_fe_downscale_flags */ | |
| 225 | 	__u8 pad[3]; | |
| 226 | 	__u16 output_width; | |
| 227 | 	__u16 output_height; | |
| 228 | } __attribute__((packed)); | |
| 229 | ||
| 230 | struct pisp_fe_output_buffer_config { | |
| 231 | 	__u32 addr_lo; | |
| 232 | 	__u32 addr_hi; | |
| 233 | } __attribute__((packed)); | |
| 234 | ||
| 235 | /* Each of the two output channels/branches: */ | |
| 236 | struct pisp_fe_output_branch_config { | |
| 237 | 	struct pisp_fe_crop_config crop; | |
| 238 | 	struct pisp_fe_downscale_config downscale; | |
| 239 | 	struct pisp_compress_config compress; | |
| 240 | 	struct pisp_fe_output_config output; | |
| 241 | 	__u32 pad; | |
| 242 | } __attribute__((packed)); | |
| 243 | ||
| 244 | /* And finally one to rule them all: */ | |
| 245 | struct pisp_fe_config { | |
| 246 | 	/* I/O configuration: */ | |
| 247 | 	struct pisp_fe_stats_buffer_config stats_buffer; | |
| 248 | 	struct pisp_fe_output_buffer_config output_buffer[PISP_FE_NUM_OUTPUTS]; | |
| 249 | 	struct pisp_fe_input_buffer_config input_buffer; | |
| 250 | 	/* processing configuration: */ | |
| 251 | 	struct pisp_fe_global_config global; | |
| 252 | 	struct pisp_fe_input_config input; | |
| 253 | 	struct pisp_decompress_config decompress; | |
| 254 | 	struct pisp_fe_decompand_config decompand; | |
| 255 | 	struct pisp_bla_config bla; | |
| 256 | 	struct pisp_fe_dpc_config dpc; | |
| 257 | 	struct pisp_fe_crop_config stats_crop; | |
| 258 | 	__u32 spare1; /* placeholder for future decimate configuration */ | |
| 259 | 	struct pisp_bla_config blc; | |
| 260 | 	struct pisp_fe_rgby_config rgby; | |
| 261 | 	struct pisp_fe_lsc_config lsc; | |
| 262 | 	struct pisp_fe_agc_stats_config agc_stats; | |
| 263 | 	struct pisp_fe_awb_stats_config awb_stats; | |
| 264 | 	struct pisp_fe_cdaf_stats_config cdaf_stats; | |
| 265 | 	struct pisp_fe_floating_stats_config floating_stats; | |
| 266 | 	struct pisp_fe_output_axi_config output_axi; | |
| 267 | 	struct pisp_fe_output_branch_config ch[PISP_FE_NUM_OUTPUTS]; | |
| 268 | 	/* non-register fields: */ | |
| 269 | 	__u32 dirty_flags; /* these use pisp_fe_enable */ | |
| 270 | 	__u32 dirty_flags_extra; /* these use pisp_fe_dirty */ | |
| 271 | } __attribute__((packed)); | |
| 272 | ||
| 273 | #endif /* _PISP_FE_CONFIG_ */ | |
| \ No newline at end of file |
lib/libc/include/any-linux-any/linux/media/raspberrypi/pisp_fe_statistics.h created+64| ... | ... | @@ -0,0 +1,64 @@ |
| 1 | /* SPDX-License-Identifier: GPL-2.0-only WITH Linux-syscall-note */ | |
| 2 | /* | |
| 3 | * RP1 PiSP Front End statistics definitions | |
| 4 | * | |
| 5 | * Copyright (C) 2021 - Raspberry Pi Ltd. | |
| 6 | * | |
| 7 | */ | |
| 8 | #ifndef _PISP_FE_STATISTICS_H_ | |
| 9 | #define _PISP_FE_STATISTICS_H_ | |
| 10 | ||
| 11 | #include <linux/types.h> | |
| 12 | ||
| 13 | #define PISP_FLOATING_STATS_NUM_ZONES 4 | |
| 14 | #define PISP_AGC_STATS_NUM_BINS 1024 | |
| 15 | #define PISP_AGC_STATS_SIZE 16 | |
| 16 | #define PISP_AGC_STATS_NUM_ZONES (PISP_AGC_STATS_SIZE * PISP_AGC_STATS_SIZE) | |
| 17 | #define PISP_AGC_STATS_NUM_ROW_SUMS 512 | |
| 18 | ||
| 19 | struct pisp_agc_statistics_zone { | |
| 20 | 	__u64 Y_sum; | |
| 21 | 	__u32 counted; | |
| 22 | 	__u32 pad; | |
| 23 | } __attribute__((packed)); | |
| 24 | ||
| 25 | struct pisp_agc_statistics { | |
| 26 | 	__u32 row_sums[PISP_AGC_STATS_NUM_ROW_SUMS]; | |
| 27 | 	/* | |
| 28 | 	 * 32-bits per bin means an image (just less than) 16384x16384 pixels | |
| 29 | 	 * in size can weight every pixel from 0 to 15. | |
| 30 | 	 */ | |
| 31 | 	__u32 histogram[PISP_AGC_STATS_NUM_BINS]; | |
| 32 | 	struct pisp_agc_statistics_zone floating[PISP_FLOATING_STATS_NUM_ZONES]; | |
| 33 | } __attribute__((packed)); | |
| 34 | ||
| 35 | #define PISP_AWB_STATS_SIZE 32 | |
| 36 | #define PISP_AWB_STATS_NUM_ZONES (PISP_AWB_STATS_SIZE * PISP_AWB_STATS_SIZE) | |
| 37 | ||
| 38 | struct pisp_awb_statistics_zone { | |
| 39 | 	__u32 R_sum; | |
| 40 | 	__u32 G_sum; | |
| 41 | 	__u32 B_sum; | |
| 42 | 	__u32 counted; | |
| 43 | } __attribute__((packed)); | |
| 44 | ||
| 45 | struct pisp_awb_statistics { | |
| 46 | 	struct pisp_awb_statistics_zone zones[PISP_AWB_STATS_NUM_ZONES]; | |
| 47 | 	struct pisp_awb_statistics_zone floating[PISP_FLOATING_STATS_NUM_ZONES]; | |
| 48 | } __attribute__((packed)); | |
| 49 | ||
| 50 | #define PISP_CDAF_STATS_SIZE 8 | |
| 51 | #define PISP_CDAF_STATS_NUM_FOMS (PISP_CDAF_STATS_SIZE * PISP_CDAF_STATS_SIZE) | |
| 52 | ||
| 53 | struct pisp_cdaf_statistics { | |
| 54 | 	__u64 foms[PISP_CDAF_STATS_NUM_FOMS]; | |
| 55 | 	__u64 floating[PISP_FLOATING_STATS_NUM_ZONES]; | |
| 56 | } __attribute__((packed)); | |
| 57 | ||
| 58 | struct pisp_statistics { | |
| 59 | 	struct pisp_awb_statistics awb; | |
| 60 | 	struct pisp_agc_statistics agc; | |
| 61 | 	struct pisp_cdaf_statistics cdaf; | |
| 62 | } __attribute__((packed)); | |
| 63 | ||
| 64 | #endif /* _PISP_FE_STATISTICS_H_ */ | |
| \ No newline at end of file |
lib/libc/include/any-linux-any/linux/mman.h+1| ... | ... | @@ -17,6 +17,7 @@ |
| 17 | 17 | #define MAP_SHARED	0x01		/* Share changes */ |
| 18 | 18 | #define MAP_PRIVATE	0x02		/* Changes are private */ |
| 19 | 19 | #define MAP_SHARED_VALIDATE 0x03	/* share + validate extension flags */ |
| 20 | #define MAP_DROPPABLE	0x08		/* Zero memory under memory pressure. */ | |
| 20 | 21 | |
| 21 | 22 | /* |
| 22 | 23 | * Huge page size encoding when MAP_HUGETLB is specified, and a huge page |
lib/libc/include/any-linux-any/linux/mount.h+18-2| ... | ... | @@ -154,7 +154,7 @@ struct mount_attr { |
| 154 | 154 | */ |
| 155 | 155 | struct statmount { |
| 156 | 156 | 	__u32 size;		/* Total size, including strings */ |
| 157 | 	__u32 __spare1; | |
| 157 | 	__u32 mnt_opts;		/* [str] Options (comma separated, escaped) */ | |
| 158 | 158 | 	__u64 mask;		/* What results were written */ |
| 159 | 159 | 	__u32 sb_dev_major;	/* Device ID */ |
| 160 | 160 | 	__u32 sb_dev_minor; |
| ... | ... | @@ -172,7 +172,14 @@ struct statmount { |
| 172 | 172 | 	__u64 propagate_from;	/* Propagation from in current namespace */ |
| 173 | 173 | 	__u32 mnt_root;		/* [str] Root of mount relative to root of fs */ |
| 174 | 174 | 	__u32 mnt_point;	/* [str] Mountpoint relative to current root */ |
| 175 | 	__u64 __spare2[50]; | |
| 175 | 	__u64 mnt_ns_id;	/* ID of the mount namespace */ | |
| 176 | 	__u32 fs_subtype;	/* [str] Subtype of fs_type (if any) */ | |
| 177 | 	__u32 sb_source;	/* [str] Source string of the mount */ | |
| 178 | 	__u32 opt_num;		/* Number of fs options */ | |
| 179 | 	__u32 opt_array;	/* [str] Array of nul terminated fs options */ | |
| 180 | 	__u32 opt_sec_num;	/* Number of security options */ | |
| 181 | 	__u32 opt_sec_array;	/* [str] Array of nul terminated security options */ | |
| 182 | 	__u64 __spare2[46]; | |
| 176 | 183 | 	char str[];		/* Variable size part containing strings */ |
| 177 | 184 | }; |
| 178 | 185 | |
| ... | ... | @@ -188,10 +195,12 @@ struct mnt_id_req { |
| 188 | 195 | 	__u32 spare; |
| 189 | 196 | 	__u64 mnt_id; |
| 190 | 197 | 	__u64 param; |
| 198 | 	__u64 mnt_ns_id; | |
| 191 | 199 | }; |
| 192 | 200 | |
| 193 | 201 | /* List of all mnt_id_req versions. */ |
| 194 | 202 | #define MNT_ID_REQ_SIZE_VER0	24 /* sizeof first published struct */ |
| 203 | #define MNT_ID_REQ_SIZE_VER1	32 /* sizeof second published struct */ | |
| 195 | 204 | |
| 196 | 205 | /* |
| 197 | 206 | * @mask bits for statmount(2) |
| ... | ... | @@ -202,10 +211,17 @@ struct mnt_id_req { |
| 202 | 211 | #define STATMOUNT_MNT_ROOT		0x00000008U	/* Want/got mnt_root */ |
| 203 | 212 | #define STATMOUNT_MNT_POINT		0x00000010U	/* Want/got mnt_point */ |
| 204 | 213 | #define STATMOUNT_FS_TYPE		0x00000020U	/* Want/got fs_type */ |
| 214 | #define STATMOUNT_MNT_NS_ID		0x00000040U	/* Want/got mnt_ns_id */ | |
| 215 | #define STATMOUNT_MNT_OPTS		0x00000080U	/* Want/got mnt_opts */ | |
| 216 | #define STATMOUNT_FS_SUBTYPE		0x00000100U	/* Want/got fs_subtype */ | |
| 217 | #define STATMOUNT_SB_SOURCE		0x00000200U	/* Want/got sb_source */ | |
| 218 | #define STATMOUNT_OPT_ARRAY		0x00000400U	/* Want/got opt_... */ | |
| 219 | #define STATMOUNT_OPT_SEC_ARRAY		0x00000800U	/* Want/got opt_sec... */ | |
| 205 | 220 | |
| 206 | 221 | /* |
| 207 | 222 | * Special @mnt_id values that can be passed to listmount |
| 208 | 223 | */ |
| 209 | 224 | #define LSMT_ROOT		0xffffffffffffffff	/* root mount */ |
| 225 | #define LISTMOUNT_REVERSE	(1 << 0) /* List later mounts first */ | |
| 210 | 226 | |
| 211 | 227 | #endif /* _LINUX_MOUNT_H */ |
| \ No newline at end of file |
lib/libc/include/any-linux-any/linux/mptcp_pm.h+26-24| ... | ... | @@ -12,31 +12,33 @@ |
| 12 | 12 | /** |
| 13 | 13 | * enum mptcp_event_type |
| 14 | 14 | * @MPTCP_EVENT_UNSPEC: unused event |
| 15 | * @MPTCP_EVENT_CREATED: token, family, saddr4 | saddr6, daddr4 | daddr6, | |
| 16 | * sport, dport A new MPTCP connection has been created. It is the good time | |
| 17 | * to allocate memory and send ADD_ADDR if needed. Depending on the | |
| 15 | * @MPTCP_EVENT_CREATED: A new MPTCP connection has been created. It is the | |
| 16 | * good time to allocate memory and send ADD_ADDR if needed. Depending on the | |
| 18 | 17 | * traffic-patterns it can take a long time until the MPTCP_EVENT_ESTABLISHED |
| 19 | * is sent. | |
| 20 | * @MPTCP_EVENT_ESTABLISHED: token, family, saddr4 | saddr6, daddr4 | daddr6, | |
| 21 | * sport, dport A MPTCP connection is established (can start new subflows). | |
| 22 | * @MPTCP_EVENT_CLOSED: token A MPTCP connection has stopped. | |
| 23 | * @MPTCP_EVENT_ANNOUNCED: token, rem_id, family, daddr4 | daddr6 [, dport] A | |
| 24 | * new address has been announced by the peer. | |
| 25 | * @MPTCP_EVENT_REMOVED: token, rem_id An address has been lost by the peer. | |
| 26 | * @MPTCP_EVENT_SUB_ESTABLISHED: token, family, loc_id, rem_id, saddr4 | | |
| 27 | * saddr6, daddr4 | daddr6, sport, dport, backup, if_idx [, error] A new | |
| 28 | * subflow has been established. 'error' should not be set. | |
| 29 | * @MPTCP_EVENT_SUB_CLOSED: token, family, loc_id, rem_id, saddr4 | saddr6, | |
| 30 | * daddr4 | daddr6, sport, dport, backup, if_idx [, error] A subflow has been | |
| 31 | * closed. An error (copy of sk_err) could be set if an error has been | |
| 32 | * detected for this subflow. | |
| 33 | * @MPTCP_EVENT_SUB_PRIORITY: token, family, loc_id, rem_id, saddr4 | saddr6, | |
| 34 | * daddr4 | daddr6, sport, dport, backup, if_idx [, error] The priority of a | |
| 35 | * subflow has changed. 'error' should not be set. | |
| 36 | * @MPTCP_EVENT_LISTENER_CREATED: family, sport, saddr4 | saddr6 A new PM | |
| 37 | * listener is created. | |
| 38 | * @MPTCP_EVENT_LISTENER_CLOSED: family, sport, saddr4 | saddr6 A PM listener | |
| 39 | * is closed. | |
| 18 | * is sent. Attributes: token, family, saddr4 | saddr6, daddr4 | daddr6, | |
| 19 | * sport, dport, server-side. | |
| 20 | * @MPTCP_EVENT_ESTABLISHED: A MPTCP connection is established (can start new | |
| 21 | * subflows). Attributes: token, family, saddr4 | saddr6, daddr4 | daddr6, | |
| 22 | * sport, dport, server-side. | |
| 23 | * @MPTCP_EVENT_CLOSED: A MPTCP connection has stopped. Attribute: token. | |
| 24 | * @MPTCP_EVENT_ANNOUNCED: A new address has been announced by the peer. | |
| 25 | * Attributes: token, rem_id, family, daddr4 | daddr6 [, dport]. | |
| 26 | * @MPTCP_EVENT_REMOVED: An address has been lost by the peer. Attributes: | |
| 27 | * token, rem_id. | |
| 28 | * @MPTCP_EVENT_SUB_ESTABLISHED: A new subflow has been established. 'error' | |
| 29 | * should not be set. Attributes: token, family, loc_id, rem_id, saddr4 | | |
| 30 | * saddr6, daddr4 | daddr6, sport, dport, backup, if_idx [, error]. | |
| 31 | * @MPTCP_EVENT_SUB_CLOSED: A subflow has been closed. An error (copy of | |
| 32 | * sk_err) could be set if an error has been detected for this subflow. | |
| 33 | * Attributes: token, family, loc_id, rem_id, saddr4 | saddr6, daddr4 | | |
| 34 | * daddr6, sport, dport, backup, if_idx [, error]. | |
| 35 | * @MPTCP_EVENT_SUB_PRIORITY: The priority of a subflow has changed. 'error' | |
| 36 | * should not be set. Attributes: token, family, loc_id, rem_id, saddr4 | | |
| 37 | * saddr6, daddr4 | daddr6, sport, dport, backup, if_idx [, error]. | |
| 38 | * @MPTCP_EVENT_LISTENER_CREATED: A new PM listener is created. Attributes: | |
| 39 | * family, sport, saddr4 | saddr6. | |
| 40 | * @MPTCP_EVENT_LISTENER_CLOSED: A PM listener is closed. Attributes: family, | |
| 41 | * sport, saddr4 | saddr6. | |
| 40 | 42 | */ |
| 41 | 43 | enum mptcp_event_type { |
| 42 | 44 | 	MPTCP_EVENT_UNSPEC, |
lib/libc/include/any-linux-any/linux/nbd.h+6-2| ... | ... | @@ -42,8 +42,9 @@ enum { |
| 42 | 42 | 	NBD_CMD_WRITE = 1, |
| 43 | 43 | 	NBD_CMD_DISC = 2, |
| 44 | 44 | 	NBD_CMD_FLUSH = 3, |
| 45 | 	NBD_CMD_TRIM = 4 | |
| 45 | 	NBD_CMD_TRIM = 4, | |
| 46 | 46 | 	/* userspace defines additional extension commands */ |
| 47 | 	NBD_CMD_WRITE_ZEROES = 6, | |
| 47 | 48 | }; |
| 48 | 49 | |
| 49 | 50 | /* values for flags field, these are server interaction specific. */ |
| ... | ... | @@ -51,12 +52,15 @@ enum { |
| 51 | 52 | #define NBD_FLAG_READ_ONLY	(1 << 1) /* device is read-only */ |
| 52 | 53 | #define NBD_FLAG_SEND_FLUSH	(1 << 2) /* can flush writeback cache */ |
| 53 | 54 | #define NBD_FLAG_SEND_FUA	(1 << 3) /* send FUA (forced unit access) */ |
| 54 | /* there is a gap here to match userspace */ | |
| 55 | #define NBD_FLAG_ROTATIONAL	(1 << 4) /* device is rotational */ | |
| 55 | 56 | #define NBD_FLAG_SEND_TRIM	(1 << 5) /* send trim/discard */ |
| 57 | #define NBD_FLAG_SEND_WRITE_ZEROES (1 << 6) /* supports WRITE_ZEROES */ | |
| 58 | /* there is a gap here to match userspace */ | |
| 56 | 59 | #define NBD_FLAG_CAN_MULTI_CONN	(1 << 8)	/* Server supports multiple connections per export. */ |
| 57 | 60 | |
| 58 | 61 | /* values for cmd flags in the upper 16 bits of request type */ |
| 59 | 62 | #define NBD_CMD_FLAG_FUA	(1 << 16) /* FUA (forced unit access) op */ |
| 63 | #define NBD_CMD_FLAG_NO_HOLE	(1 << 17) /* Do not punch a hole for WRITE_ZEROES */ | |
| 60 | 64 | |
| 61 | 65 | /* These are client behavior specific flags. */ |
| 62 | 66 | #define NBD_CFLAG_DESTROY_ON_DISCONNECT	(1 << 0) /* delete the nbd device on |
lib/libc/include/any-linux-any/linux/net_shaper.h created+95| ... | ... | @@ -0,0 +1,95 @@ |
| 1 | /* SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause) */ | |
| 2 | /* Do not edit directly, auto-generated from: */ | |
| 3 | /*	Documentation/netlink/specs/net_shaper.yaml */ | |
| 4 | /* YNL-GEN uapi header */ | |
| 5 | ||
| 6 | #ifndef _LINUX_NET_SHAPER_H | |
| 7 | #define _LINUX_NET_SHAPER_H | |
| 8 | ||
| 9 | #define NET_SHAPER_FAMILY_NAME		"net-shaper" | |
| 10 | #define NET_SHAPER_FAMILY_VERSION	1 | |
| 11 | ||
| 12 | /** | |
| 13 | * enum net_shaper_scope - Defines the shaper @id interpretation. | |
| 14 | * @NET_SHAPER_SCOPE_UNSPEC: The scope is not specified. | |
| 15 | * @NET_SHAPER_SCOPE_NETDEV: The main shaper for the given network device. | |
| 16 | * @NET_SHAPER_SCOPE_QUEUE: The shaper is attached to the given device queue, | |
| 17 | * the @id represents the queue number. | |
| 18 | * @NET_SHAPER_SCOPE_NODE: The shaper allows grouping of queues or other node | |
| 19 | * shapers; can be nested in either @netdev shapers or other @node shapers, | |
| 20 | * allowing placement in any location of the scheduling tree, except leaves | |
| 21 | * and root. | |
| 22 | */ | |
| 23 | enum net_shaper_scope { | |
| 24 | 	NET_SHAPER_SCOPE_UNSPEC, | |
| 25 | 	NET_SHAPER_SCOPE_NETDEV, | |
| 26 | 	NET_SHAPER_SCOPE_QUEUE, | |
| 27 | 	NET_SHAPER_SCOPE_NODE, | |
| 28 | ||
| 29 | 	/* private: */ | |
| 30 | 	__NET_SHAPER_SCOPE_MAX, | |
| 31 | 	NET_SHAPER_SCOPE_MAX = (__NET_SHAPER_SCOPE_MAX - 1) | |
| 32 | }; | |
| 33 | ||
| 34 | /** | |
| 35 | * enum net_shaper_metric - Different metric supported by the shaper. | |
| 36 | * @NET_SHAPER_METRIC_BPS: Shaper operates on a bits per second basis. | |
| 37 | * @NET_SHAPER_METRIC_PPS: Shaper operates on a packets per second basis. | |
| 38 | */ | |
| 39 | enum net_shaper_metric { | |
| 40 | 	NET_SHAPER_METRIC_BPS, | |
| 41 | 	NET_SHAPER_METRIC_PPS, | |
| 42 | }; | |
| 43 | ||
| 44 | enum { | |
| 45 | 	NET_SHAPER_A_HANDLE = 1, | |
| 46 | 	NET_SHAPER_A_METRIC, | |
| 47 | 	NET_SHAPER_A_BW_MIN, | |
| 48 | 	NET_SHAPER_A_BW_MAX, | |
| 49 | 	NET_SHAPER_A_BURST, | |
| 50 | 	NET_SHAPER_A_PRIORITY, | |
| 51 | 	NET_SHAPER_A_WEIGHT, | |
| 52 | 	NET_SHAPER_A_IFINDEX, | |
| 53 | 	NET_SHAPER_A_PARENT, | |
| 54 | 	NET_SHAPER_A_LEAVES, | |
| 55 | ||
| 56 | 	__NET_SHAPER_A_MAX, | |
| 57 | 	NET_SHAPER_A_MAX = (__NET_SHAPER_A_MAX - 1) | |
| 58 | }; | |
| 59 | ||
| 60 | enum { | |
| 61 | 	NET_SHAPER_A_HANDLE_SCOPE = 1, | |
| 62 | 	NET_SHAPER_A_HANDLE_ID, | |
| 63 | ||
| 64 | 	__NET_SHAPER_A_HANDLE_MAX, | |
| 65 | 	NET_SHAPER_A_HANDLE_MAX = (__NET_SHAPER_A_HANDLE_MAX - 1) | |
| 66 | }; | |
| 67 | ||
| 68 | enum { | |
| 69 | 	NET_SHAPER_A_CAPS_IFINDEX = 1, | |
| 70 | 	NET_SHAPER_A_CAPS_SCOPE, | |
| 71 | 	NET_SHAPER_A_CAPS_SUPPORT_METRIC_BPS, | |
| 72 | 	NET_SHAPER_A_CAPS_SUPPORT_METRIC_PPS, | |
| 73 | 	NET_SHAPER_A_CAPS_SUPPORT_NESTING, | |
| 74 | 	NET_SHAPER_A_CAPS_SUPPORT_BW_MIN, | |
| 75 | 	NET_SHAPER_A_CAPS_SUPPORT_BW_MAX, | |
| 76 | 	NET_SHAPER_A_CAPS_SUPPORT_BURST, | |
| 77 | 	NET_SHAPER_A_CAPS_SUPPORT_PRIORITY, | |
| 78 | 	NET_SHAPER_A_CAPS_SUPPORT_WEIGHT, | |
| 79 | ||
| 80 | 	__NET_SHAPER_A_CAPS_MAX, | |
| 81 | 	NET_SHAPER_A_CAPS_MAX = (__NET_SHAPER_A_CAPS_MAX - 1) | |
| 82 | }; | |
| 83 | ||
| 84 | enum { | |
| 85 | 	NET_SHAPER_CMD_GET = 1, | |
| 86 | 	NET_SHAPER_CMD_SET, | |
| 87 | 	NET_SHAPER_CMD_DELETE, | |
| 88 | 	NET_SHAPER_CMD_GROUP, | |
| 89 | 	NET_SHAPER_CMD_CAP_GET, | |
| 90 | ||
| 91 | 	__NET_SHAPER_CMD_MAX, | |
| 92 | 	NET_SHAPER_CMD_MAX = (__NET_SHAPER_CMD_MAX - 1) | |
| 93 | }; | |
| 94 | ||
| 95 | #endif /* _LINUX_NET_SHAPER_H */ | |
| \ No newline at end of file |
lib/libc/include/any-linux-any/linux/net_tstamp.h+2-1| ... | ... | @@ -32,8 +32,9 @@ enum { |
| 32 | 32 | 	SOF_TIMESTAMPING_OPT_TX_SWHW = (1<<14), |
| 33 | 33 | 	SOF_TIMESTAMPING_BIND_PHC = (1 << 15), |
| 34 | 34 | 	SOF_TIMESTAMPING_OPT_ID_TCP = (1 << 16), |
| 35 | 	SOF_TIMESTAMPING_OPT_RX_FILTER = (1 << 17), | |
| 35 | 36 | |
| 36 | 	SOF_TIMESTAMPING_LAST = SOF_TIMESTAMPING_OPT_ID_TCP, | |
| 37 | 	SOF_TIMESTAMPING_LAST = SOF_TIMESTAMPING_OPT_RX_FILTER, | |
| 37 | 38 | 	SOF_TIMESTAMPING_MASK = (SOF_TIMESTAMPING_LAST - 1) | |
| 38 | 39 | 				 SOF_TIMESTAMPING_LAST |
| 39 | 40 | }; |
lib/libc/include/any-linux-any/linux/netdev.h+17| ... | ... | @@ -93,6 +93,7 @@ enum { |
| 93 | 93 | 	NETDEV_A_PAGE_POOL_INFLIGHT, |
| 94 | 94 | 	NETDEV_A_PAGE_POOL_INFLIGHT_MEM, |
| 95 | 95 | 	NETDEV_A_PAGE_POOL_DETACH_TIME, |
| 96 | 	NETDEV_A_PAGE_POOL_DMABUF, | |
| 96 | 97 | |
| 97 | 98 | 	__NETDEV_A_PAGE_POOL_MAX, |
| 98 | 99 | 	NETDEV_A_PAGE_POOL_MAX = (__NETDEV_A_PAGE_POOL_MAX - 1) |
| ... | ... | @@ -121,6 +122,9 @@ enum { |
| 121 | 122 | 	NETDEV_A_NAPI_ID, |
| 122 | 123 | 	NETDEV_A_NAPI_IRQ, |
| 123 | 124 | 	NETDEV_A_NAPI_PID, |
| 125 | 	NETDEV_A_NAPI_DEFER_HARD_IRQS, | |
| 126 | 	NETDEV_A_NAPI_GRO_FLUSH_TIMEOUT, | |
| 127 | 	NETDEV_A_NAPI_IRQ_SUSPEND_TIMEOUT, | |
| 124 | 128 | |
| 125 | 129 | 	__NETDEV_A_NAPI_MAX, |
| 126 | 130 | 	NETDEV_A_NAPI_MAX = (__NETDEV_A_NAPI_MAX - 1) |
| ... | ... | @@ -131,6 +135,7 @@ enum { |
| 131 | 135 | 	NETDEV_A_QUEUE_IFINDEX, |
| 132 | 136 | 	NETDEV_A_QUEUE_TYPE, |
| 133 | 137 | 	NETDEV_A_QUEUE_NAPI_ID, |
| 138 | 	NETDEV_A_QUEUE_DMABUF, | |
| 134 | 139 | |
| 135 | 140 | 	__NETDEV_A_QUEUE_MAX, |
| 136 | 141 | 	NETDEV_A_QUEUE_MAX = (__NETDEV_A_QUEUE_MAX - 1) |
| ... | ... | @@ -173,6 +178,16 @@ enum { |
| 173 | 178 | 	NETDEV_A_QSTATS_MAX = (__NETDEV_A_QSTATS_MAX - 1) |
| 174 | 179 | }; |
| 175 | 180 | |
| 181 | enum { | |
| 182 | 	NETDEV_A_DMABUF_IFINDEX = 1, | |
| 183 | 	NETDEV_A_DMABUF_QUEUES, | |
| 184 | 	NETDEV_A_DMABUF_FD, | |
| 185 | 	NETDEV_A_DMABUF_ID, | |
| 186 | ||
| 187 | 	__NETDEV_A_DMABUF_MAX, | |
| 188 | 	NETDEV_A_DMABUF_MAX = (__NETDEV_A_DMABUF_MAX - 1) | |
| 189 | }; | |
| 190 | ||
| 176 | 191 | enum { |
| 177 | 192 | 	NETDEV_CMD_DEV_GET = 1, |
| 178 | 193 | 	NETDEV_CMD_DEV_ADD_NTF, |
| ... | ... | @@ -186,6 +201,8 @@ enum { |
| 186 | 201 | 	NETDEV_CMD_QUEUE_GET, |
| 187 | 202 | 	NETDEV_CMD_NAPI_GET, |
| 188 | 203 | 	NETDEV_CMD_QSTATS_GET, |
| 204 | 	NETDEV_CMD_BIND_RX, | |
| 205 | 	NETDEV_CMD_NAPI_SET, | |
| 189 | 206 | |
| 190 | 207 | 	__NETDEV_CMD_MAX, |
| 191 | 208 | 	NETDEV_CMD_MAX = (__NETDEV_CMD_MAX - 1) |
lib/libc/include/any-linux-any/linux/netfilter/nf_tables.h+18-6| ... | ... | @@ -436,7 +436,7 @@ enum nft_set_elem_flags { |
| 436 | 436 | * @NFTA_SET_ELEM_KEY: key value (NLA_NESTED: nft_data) |
| 437 | 437 | * @NFTA_SET_ELEM_DATA: data value of mapping (NLA_NESTED: nft_data_attributes) |
| 438 | 438 | * @NFTA_SET_ELEM_FLAGS: bitmask of nft_set_elem_flags (NLA_U32) |
| 439 | * @NFTA_SET_ELEM_TIMEOUT: timeout value (NLA_U64) | |
| 439 | * @NFTA_SET_ELEM_TIMEOUT: timeout value, zero means never times out (NLA_U64) | |
| 440 | 440 | * @NFTA_SET_ELEM_EXPIRATION: expiration time (NLA_U64) |
| 441 | 441 | * @NFTA_SET_ELEM_USERDATA: user data (NLA_BINARY) |
| 442 | 442 | * @NFTA_SET_ELEM_EXPR: expression (NLA_NESTED: nft_expr_attributes) |
| ... | ... | @@ -564,16 +564,26 @@ enum nft_immediate_attributes { |
| 564 | 564 | /** |
| 565 | 565 | * enum nft_bitwise_ops - nf_tables bitwise operations |
| 566 | 566 | * |
| 567 | * @NFT_BITWISE_BOOL: mask-and-xor operation used to implement NOT, AND, OR and | |
| 568 | * XOR boolean operations | |
| 567 | * @NFT_BITWISE_MASK_XOR: mask-and-xor operation used to implement NOT, AND, OR | |
| 568 | * and XOR boolean operations | |
| 569 | 569 | * @NFT_BITWISE_LSHIFT: left-shift operation |
| 570 | 570 | * @NFT_BITWISE_RSHIFT: right-shift operation |
| 571 | * @NFT_BITWISE_AND: and operation | |
| 572 | * @NFT_BITWISE_OR: or operation | |
| 573 | * @NFT_BITWISE_XOR: xor operation | |
| 571 | 574 | */ |
| 572 | 575 | enum nft_bitwise_ops { |
| 573 | 	NFT_BITWISE_BOOL, | |
| 576 | 	NFT_BITWISE_MASK_XOR, | |
| 574 | 577 | 	NFT_BITWISE_LSHIFT, |
| 575 | 578 | 	NFT_BITWISE_RSHIFT, |
| 579 | 	NFT_BITWISE_AND, | |
| 580 | 	NFT_BITWISE_OR, | |
| 581 | 	NFT_BITWISE_XOR, | |
| 576 | 582 | }; |
| 583 | /* | |
| 584 | * Old name for NFT_BITWISE_MASK_XOR. Retained for backwards-compatibility. | |
| 585 | */ | |
| 586 | #define NFT_BITWISE_BOOL NFT_BITWISE_MASK_XOR | |
| 577 | 587 | |
| 578 | 588 | /** |
| 579 | 589 | * enum nft_bitwise_attributes - nf_tables bitwise expression netlink attributes |
| ... | ... | @@ -586,6 +596,7 @@ enum nft_bitwise_ops { |
| 586 | 596 | * @NFTA_BITWISE_OP: type of operation (NLA_U32: nft_bitwise_ops) |
| 587 | 597 | * @NFTA_BITWISE_DATA: argument for non-boolean operations |
| 588 | 598 | * (NLA_NESTED: nft_data_attributes) |
| 599 | * @NFTA_BITWISE_SREG2: second source register (NLA_U32: nft_registers) | |
| 589 | 600 | * |
| 590 | 601 | * The bitwise expression supports boolean and shift operations. It implements |
| 591 | 602 | * the boolean operations by performing the following operation: |
| ... | ... | @@ -609,6 +620,7 @@ enum nft_bitwise_attributes { |
| 609 | 620 | 	NFTA_BITWISE_XOR, |
| 610 | 621 | 	NFTA_BITWISE_OP, |
| 611 | 622 | 	NFTA_BITWISE_DATA, |
| 623 | 	NFTA_BITWISE_SREG2, | |
| 612 | 624 | 	__NFTA_BITWISE_MAX |
| 613 | 625 | }; |
| 614 | 626 | #define NFTA_BITWISE_MAX	(__NFTA_BITWISE_MAX - 1) |
| ... | ... | @@ -1376,7 +1388,7 @@ enum nft_secmark_attributes { |
| 1376 | 1388 | #define NFTA_SECMARK_MAX	(__NFTA_SECMARK_MAX - 1) |
| 1377 | 1389 | |
| 1378 | 1390 | /* Max security context length */ |
| 1379 | #define NFT_SECMARK_CTX_MAXLEN		256 | |
| 1391 | #define NFT_SECMARK_CTX_MAXLEN		4096 | |
| 1380 | 1392 | |
| 1381 | 1393 | /** |
| 1382 | 1394 | * enum nft_reject_types - nf_tables reject expression reject types |
| ... | ... | @@ -1694,7 +1706,7 @@ enum nft_flowtable_flags { |
| 1694 | 1706 | * |
| 1695 | 1707 | * @NFTA_FLOWTABLE_TABLE: name of the table containing the expression (NLA_STRING) |
| 1696 | 1708 | * @NFTA_FLOWTABLE_NAME: name of this flow table (NLA_STRING) |
| 1697 | * @NFTA_FLOWTABLE_HOOK: netfilter hook configuration(NLA_U32) | |
| 1709 | * @NFTA_FLOWTABLE_HOOK: netfilter hook configuration (NLA_NESTED) | |
| 1698 | 1710 | * @NFTA_FLOWTABLE_USE: number of references to this flow table (NLA_U32) |
| 1699 | 1711 | * @NFTA_FLOWTABLE_HANDLE: object handle (NLA_U64) |
| 1700 | 1712 | * @NFTA_FLOWTABLE_FLAGS: flags (NLA_U32) |
lib/libc/include/any-linux-any/linux/nexthop.h+9-1| ... | ... | @@ -16,10 +16,15 @@ struct nhmsg { |
| 16 | 16 | struct nexthop_grp { |
| 17 | 17 | 	__u32	id;	 /* nexthop id - must exist */ |
| 18 | 18 | 	__u8	weight; /* weight of this nexthop */ |
| 19 | 	__u8	resvd1; | |
| 19 | 	__u8	weight_high;	/* high order bits of weight */ | |
| 20 | 20 | 	__u16	resvd2; |
| 21 | 21 | }; |
| 22 | 22 | |
| 23 | static __inline__ __u16 nexthop_grp_weight(const struct nexthop_grp *entry) | |
| 24 | { | |
| 25 | 	return ((entry->weight_high << 8) | entry->weight) + 1; | |
| 26 | } | |
| 27 | ||
| 23 | 28 | enum { |
| 24 | 29 | 	NEXTHOP_GRP_TYPE_MPATH, /* hash-threshold nexthop group |
| 25 | 30 | 				 * default type if not specified |
| ... | ... | @@ -33,6 +38,9 @@ enum { |
| 33 | 38 | #define NHA_OP_FLAG_DUMP_STATS		BIT(0) |
| 34 | 39 | #define NHA_OP_FLAG_DUMP_HW_STATS	BIT(1) |
| 35 | 40 | |
| 41 | /* Response OP_FLAGS. */ | |
| 42 | #define NHA_OP_FLAG_RESP_GRP_RESVD_0	BIT(31)	/* Dump clears resvd fields. */ | |
| 43 | ||
| 36 | 44 | enum { |
| 37 | 45 | 	NHA_UNSPEC, |
| 38 | 46 | 	NHA_ID,		/* u32; id for nexthop. id == 0 means auto-assign */ |
lib/libc/include/any-linux-any/linux/nfc.h+3| ... | ... | @@ -164,6 +164,7 @@ enum nfc_commands { |
| 164 | 164 | * @NFC_ATTR_VENDOR_SUBCMD: Vendor specific sub command |
| 165 | 165 | * @NFC_ATTR_VENDOR_DATA: Vendor specific data, to be optionally passed |
| 166 | 166 | *	to a vendor specific command implementation |
| 167 | * @NFC_ATTR_TARGET_ATS: ISO 14443 type A target Answer To Select | |
| 167 | 168 | */ |
| 168 | 169 | enum nfc_attrs { |
| 169 | 170 | 	NFC_ATTR_UNSPEC, |
| ... | ... | @@ -198,6 +199,7 @@ enum nfc_attrs { |
| 198 | 199 | 	NFC_ATTR_VENDOR_ID, |
| 199 | 200 | 	NFC_ATTR_VENDOR_SUBCMD, |
| 200 | 201 | 	NFC_ATTR_VENDOR_DATA, |
| 202 | 	NFC_ATTR_TARGET_ATS, | |
| 201 | 203 | /* private: internal use only */ |
| 202 | 204 | 	__NFC_ATTR_AFTER_LAST |
| 203 | 205 | }; |
| ... | ... | @@ -225,6 +227,7 @@ enum nfc_sdp_attr { |
| 225 | 227 | #define NFC_GB_MAXSIZE			48 |
| 226 | 228 | #define NFC_FIRMWARE_NAME_MAXSIZE	32 |
| 227 | 229 | #define NFC_ISO15693_UID_MAXSIZE	8 |
| 230 | #define NFC_ATS_MAXSIZE			20 | |
| 228 | 231 | |
| 229 | 232 | /* NFC protocols */ |
| 230 | 233 | #define NFC_PROTO_JEWEL		1 |
lib/libc/include/any-linux-any/linux/nfs4.h+4| ... | ... | @@ -46,6 +46,7 @@ |
| 46 | 46 | #define NFS4_OPEN_RESULT_CONFIRM		0x0002 |
| 47 | 47 | #define NFS4_OPEN_RESULT_LOCKTYPE_POSIX		0x0004 |
| 48 | 48 | #define NFS4_OPEN_RESULT_PRESERVE_UNLINKED	0x0008 |
| 49 | #define NFS4_OPEN_RESULT_NO_OPEN_STATEID	0x0010 | |
| 49 | 50 | #define NFS4_OPEN_RESULT_MAY_NOTIFY_LOCK	0x0020 |
| 50 | 51 | |
| 51 | 52 | #define NFS4_SHARE_ACCESS_MASK	0x000F |
| ... | ... | @@ -69,6 +70,9 @@ |
| 69 | 70 | #define NFS4_SHARE_SIGNAL_DELEG_WHEN_RESRC_AVAIL	0x10000 |
| 70 | 71 | #define NFS4_SHARE_PUSH_DELEG_WHEN_UNCONTENDED		0x20000 |
| 71 | 72 | |
| 73 | #define NFS4_SHARE_WANT_DELEG_TIMESTAMPS		0x100000 | |
| 74 | #define NFS4_SHARE_WANT_OPEN_XOR_DELEGATION		0x200000 | |
| 75 | ||
| 72 | 76 | #define NFS4_CDFC4_FORE	0x1 |
| 73 | 77 | #define NFS4_CDFC4_BACK 0x2 |
| 74 | 78 | #define NFS4_CDFC4_BOTH 0x3 |
lib/libc/include/any-linux-any/linux/nfsd_netlink.h+10| ... | ... | @@ -70,6 +70,14 @@ enum { |
| 70 | 70 | 	NFSD_A_SERVER_SOCK_MAX = (__NFSD_A_SERVER_SOCK_MAX - 1) |
| 71 | 71 | }; |
| 72 | 72 | |
| 73 | enum { | |
| 74 | 	NFSD_A_POOL_MODE_MODE = 1, | |
| 75 | 	NFSD_A_POOL_MODE_NPOOLS, | |
| 76 | ||
| 77 | 	__NFSD_A_POOL_MODE_MAX, | |
| 78 | 	NFSD_A_POOL_MODE_MAX = (__NFSD_A_POOL_MODE_MAX - 1) | |
| 79 | }; | |
| 80 | ||
| 73 | 81 | enum { |
| 74 | 82 | 	NFSD_CMD_RPC_STATUS_GET = 1, |
| 75 | 83 | 	NFSD_CMD_THREADS_SET, |
| ... | ... | @@ -78,6 +86,8 @@ enum { |
| 78 | 86 | 	NFSD_CMD_VERSION_GET, |
| 79 | 87 | 	NFSD_CMD_LISTENER_SET, |
| 80 | 88 | 	NFSD_CMD_LISTENER_GET, |
| 89 | 	NFSD_CMD_POOL_MODE_SET, | |
| 90 | 	NFSD_CMD_POOL_MODE_GET, | |
| 81 | 91 | |
| 82 | 92 | 	__NFSD_CMD_MAX, |
| 83 | 93 | 	NFSD_CMD_MAX = (__NFSD_CMD_MAX - 1) |
lib/libc/include/any-linux-any/linux/nl80211.h+81| ... | ... | @@ -2052,6 +2052,10 @@ enum nl80211_commands { |
| 2052 | 2052 | * @NL80211_ATTR_INTERFACE_COMBINATIONS: Nested attribute listing the supported |
| 2053 | 2053 | *	interface combinations. In each nested item, it contains attributes |
| 2054 | 2054 | *	defined in &enum nl80211_if_combination_attrs. |
| 2055 | *	If the wiphy uses multiple radios (@NL80211_ATTR_WIPHY_RADIOS is set), | |
| 2056 | *	this attribute contains the interface combinations of the first radio. | |
| 2057 | *	See @NL80211_ATTR_WIPHY_INTERFACE_COMBINATIONS for the global wiphy | |
| 2058 | *	combinations for the sum of all radios. | |
| 2055 | 2059 | * @NL80211_ATTR_SOFTWARE_IFTYPES: Nested attribute (just like |
| 2056 | 2060 | *	%NL80211_ATTR_SUPPORTED_IFTYPES) containing the interface types that |
| 2057 | 2061 | *	are managed in software: interfaces of these types aren't subject to |
| ... | ... | @@ -2856,6 +2860,17 @@ enum nl80211_commands { |
| 2856 | 2860 | *	%NL80211_CMD_ASSOCIATE indicating the SPP A-MSDUs |
| 2857 | 2861 | *	are used on this connection |
| 2858 | 2862 | * |
| 2863 | * @NL80211_ATTR_WIPHY_RADIOS: Nested attribute describing physical radios | |
| 2864 | *	belonging to this wiphy. See &enum nl80211_wiphy_radio_attrs. | |
| 2865 | * | |
| 2866 | * @NL80211_ATTR_WIPHY_INTERFACE_COMBINATIONS: Nested attribute listing the | |
| 2867 | *	supported interface combinations for all radios combined. In each | |
| 2868 | *	nested item, it contains attributes defined in | |
| 2869 | *	&enum nl80211_if_combination_attrs. | |
| 2870 | * | |
| 2871 | * @NL80211_ATTR_VIF_RADIO_MASK: Bitmask of allowed radios (u32). | |
| 2872 | *	A value of 0 means all radios. | |
| 2873 | * | |
| 2859 | 2874 | * @NUM_NL80211_ATTR: total number of nl80211_attrs available |
| 2860 | 2875 | * @NL80211_ATTR_MAX: highest attribute number currently defined |
| 2861 | 2876 | * @__NL80211_ATTR_AFTER_LAST: internal use |
| ... | ... | @@ -3401,6 +3416,11 @@ enum nl80211_attrs { |
| 3401 | 3416 | |
| 3402 | 3417 | 	NL80211_ATTR_ASSOC_SPP_AMSDU, |
| 3403 | 3418 | |
| 3419 | 	NL80211_ATTR_WIPHY_RADIOS, | |
| 3420 | 	NL80211_ATTR_WIPHY_INTERFACE_COMBINATIONS, | |
| 3421 | ||
| 3422 | 	NL80211_ATTR_VIF_RADIO_MASK, | |
| 3423 | ||
| 3404 | 3424 | 	/* add attributes here, update the policy in nl80211.c */ |
| 3405 | 3425 | |
| 3406 | 3426 | 	__NL80211_ATTR_AFTER_LAST, |
| ... | ... | @@ -4277,6 +4297,8 @@ enum nl80211_wmm_rule { |
| 4277 | 4297 | * @NL80211_FREQUENCY_ATTR_CAN_MONITOR: This channel can be used in monitor |
| 4278 | 4298 | *	mode despite other (regulatory) restrictions, even if the channel is |
| 4279 | 4299 | *	otherwise completely disabled. |
| 4300 | * @NL80211_FREQUENCY_ATTR_ALLOW_6GHZ_VLP_AP: This channel can be used for a | |
| 4301 | *	very low power (VLP) AP, despite being NO_IR. | |
| 4280 | 4302 | * @NL80211_FREQUENCY_ATTR_MAX: highest frequency attribute number |
| 4281 | 4303 | *	currently defined |
| 4282 | 4304 | * @__NL80211_FREQUENCY_ATTR_AFTER_LAST: internal use |
| ... | ... | @@ -4320,6 +4342,7 @@ enum nl80211_frequency_attr { |
| 4320 | 4342 | 	NL80211_FREQUENCY_ATTR_NO_6GHZ_VLP_CLIENT, |
| 4321 | 4343 | 	NL80211_FREQUENCY_ATTR_NO_6GHZ_AFC_CLIENT, |
| 4322 | 4344 | 	NL80211_FREQUENCY_ATTR_CAN_MONITOR, |
| 4345 | 	NL80211_FREQUENCY_ATTR_ALLOW_6GHZ_VLP_AP, | |
| 4323 | 4346 | |
| 4324 | 4347 | 	/* keep last */ |
| 4325 | 4348 | 	__NL80211_FREQUENCY_ATTR_AFTER_LAST, |
| ... | ... | @@ -4529,6 +4552,8 @@ enum nl80211_sched_scan_match_attr { |
| 4529 | 4552 | *	Should be used together with %NL80211_RRF_DFS only. |
| 4530 | 4553 | * @NL80211_RRF_NO_6GHZ_VLP_CLIENT: Client connection to VLP AP not allowed |
| 4531 | 4554 | * @NL80211_RRF_NO_6GHZ_AFC_CLIENT: Client connection to AFC AP not allowed |
| 4555 | * @NL80211_RRF_ALLOW_6GHZ_VLP_AP: Very low power (VLP) AP can be permitted | |
| 4556 | *	despite NO_IR configuration. | |
| 4532 | 4557 | */ |
| 4533 | 4558 | enum nl80211_reg_rule_flags { |
| 4534 | 4559 | 	NL80211_RRF_NO_OFDM		= 1<<0, |
| ... | ... | @@ -4553,6 +4578,7 @@ enum nl80211_reg_rule_flags { |
| 4553 | 4578 | 	NL80211_RRF_DFS_CONCURRENT	= 1<<21, |
| 4554 | 4579 | 	NL80211_RRF_NO_6GHZ_VLP_CLIENT	= 1<<22, |
| 4555 | 4580 | 	NL80211_RRF_NO_6GHZ_AFC_CLIENT	= 1<<23, |
| 4581 | 	NL80211_RRF_ALLOW_6GHZ_VLP_AP	= 1<<24, | |
| 4556 | 4582 | }; |
| 4557 | 4583 | |
| 4558 | 4584 | #define NL80211_RRF_PASSIVE_SCAN	NL80211_RRF_NO_IR |
| ... | ... | @@ -4677,6 +4703,7 @@ enum nl80211_survey_info { |
| 4677 | 4703 | *	overrides all other flags. |
| 4678 | 4704 | * @NL80211_MNTR_FLAG_ACTIVE: use the configured MAC address |
| 4679 | 4705 | *	and ACK incoming unicast packets. |
| 4706 | * @NL80211_MNTR_FLAG_SKIP_TX: do not pass local tx packets | |
| 4680 | 4707 | * |
| 4681 | 4708 | * @__NL80211_MNTR_FLAG_AFTER_LAST: internal use |
| 4682 | 4709 | * @NL80211_MNTR_FLAG_MAX: highest possible monitor flag |
| ... | ... | @@ -4689,6 +4716,7 @@ enum nl80211_mntr_flags { |
| 4689 | 4716 | 	NL80211_MNTR_FLAG_OTHER_BSS, |
| 4690 | 4717 | 	NL80211_MNTR_FLAG_COOK_FRAMES, |
| 4691 | 4718 | 	NL80211_MNTR_FLAG_ACTIVE, |
| 4719 | 	NL80211_MNTR_FLAG_SKIP_TX, | |
| 4692 | 4720 | |
| 4693 | 4721 | 	/* keep last */ |
| 4694 | 4722 | 	__NL80211_MNTR_FLAG_AFTER_LAST, |
| ... | ... | @@ -7999,4 +8027,57 @@ enum nl80211_ap_settings_flags { |
| 7999 | 8027 | 	NL80211_AP_SETTINGS_SA_QUERY_OFFLOAD_SUPPORT	= 1 << 1, |
| 8000 | 8028 | }; |
| 8001 | 8029 | |
| 8030 | /** | |
| 8031 | * enum nl80211_wiphy_radio_attrs - wiphy radio attributes | |
| 8032 | * | |
| 8033 | * @__NL80211_WIPHY_RADIO_ATTR_INVALID: Invalid | |
| 8034 | * | |
| 8035 | * @NL80211_WIPHY_RADIO_ATTR_INDEX: Index of this radio (u32) | |
| 8036 | * @NL80211_WIPHY_RADIO_ATTR_FREQ_RANGE: Frequency range supported by this | |
| 8037 | *	radio. Attribute may be present multiple times. | |
| 8038 | * @NL80211_WIPHY_RADIO_ATTR_INTERFACE_COMBINATION: Supported interface | |
| 8039 | *	combination for this radio. Attribute may be present multiple times | |
| 8040 | *	and contains attributes defined in &enum nl80211_if_combination_attrs. | |
| 8041 | * @NL80211_WIPHY_RADIO_ATTR_ANTENNA_MASK: bitmask (u32) of antennas | |
| 8042 | *	connected to this radio. | |
| 8043 | * | |
| 8044 | * @__NL80211_WIPHY_RADIO_ATTR_LAST: Internal | |
| 8045 | * @NL80211_WIPHY_RADIO_ATTR_MAX: Highest attribute | |
| 8046 | */ | |
| 8047 | enum nl80211_wiphy_radio_attrs { | |
| 8048 | 	__NL80211_WIPHY_RADIO_ATTR_INVALID, | |
| 8049 | ||
| 8050 | 	NL80211_WIPHY_RADIO_ATTR_INDEX, | |
| 8051 | 	NL80211_WIPHY_RADIO_ATTR_FREQ_RANGE, | |
| 8052 | 	NL80211_WIPHY_RADIO_ATTR_INTERFACE_COMBINATION, | |
| 8053 | 	NL80211_WIPHY_RADIO_ATTR_ANTENNA_MASK, | |
| 8054 | ||
| 8055 | 	/* keep last */ | |
| 8056 | 	__NL80211_WIPHY_RADIO_ATTR_LAST, | |
| 8057 | 	NL80211_WIPHY_RADIO_ATTR_MAX = __NL80211_WIPHY_RADIO_ATTR_LAST - 1, | |
| 8058 | }; | |
| 8059 | ||
| 8060 | /** | |
| 8061 | * enum nl80211_wiphy_radio_freq_range - wiphy radio frequency range | |
| 8062 | * | |
| 8063 | * @__NL80211_WIPHY_RADIO_FREQ_ATTR_INVALID: Invalid | |
| 8064 | * | |
| 8065 | * @NL80211_WIPHY_RADIO_FREQ_ATTR_START: Frequency range start (u32). | |
| 8066 | *	The unit is kHz. | |
| 8067 | * @NL80211_WIPHY_RADIO_FREQ_ATTR_END: Frequency range end (u32). | |
| 8068 | *	The unit is kHz. | |
| 8069 | * | |
| 8070 | * @__NL80211_WIPHY_RADIO_FREQ_ATTR_LAST: Internal | |
| 8071 | * @NL80211_WIPHY_RADIO_FREQ_ATTR_MAX: Highest attribute | |
| 8072 | */ | |
| 8073 | enum nl80211_wiphy_radio_freq_range { | |
| 8074 | 	__NL80211_WIPHY_RADIO_FREQ_ATTR_INVALID, | |
| 8075 | ||
| 8076 | 	NL80211_WIPHY_RADIO_FREQ_ATTR_START, | |
| 8077 | 	NL80211_WIPHY_RADIO_FREQ_ATTR_END, | |
| 8078 | ||
| 8079 | 	__NL80211_WIPHY_RADIO_FREQ_ATTR_LAST, | |
| 8080 | 	NL80211_WIPHY_RADIO_FREQ_ATTR_MAX = __NL80211_WIPHY_RADIO_FREQ_ATTR_LAST - 1, | |
| 8081 | }; | |
| 8082 | ||
| 8002 | 8083 | #endif /* __LINUX_NL80211_H */ |
| \ No newline at end of file |
lib/libc/include/any-linux-any/linux/nsfs.h+26| ... | ... | @@ -3,6 +3,7 @@ |
| 3 | 3 | #define __LINUX_NSFS_H |
| 4 | 4 | |
| 5 | 5 | #include <linux/ioctl.h> |
| 6 | #include <linux/types.h> | |
| 6 | 7 | |
| 7 | 8 | #define NSIO	0xb7 |
| 8 | 9 | |
| ... | ... | @@ -15,5 +16,30 @@ |
| 15 | 16 | #define NS_GET_NSTYPE		_IO(NSIO, 0x3) |
| 16 | 17 | /* Get owner UID (in the caller's user namespace) for a user namespace */ |
| 17 | 18 | #define NS_GET_OWNER_UID	_IO(NSIO, 0x4) |
| 19 | /* Get the id for a mount namespace */ | |
| 20 | #define NS_GET_MNTNS_ID		_IOR(NSIO, 0x5, __u64) | |
| 21 | /* Translate pid from target pid namespace into the caller's pid namespace. */ | |
| 22 | #define NS_GET_PID_FROM_PIDNS	_IOR(NSIO, 0x6, int) | |
| 23 | /* Return thread-group leader id of pid in the callers pid namespace. */ | |
| 24 | #define NS_GET_TGID_FROM_PIDNS	_IOR(NSIO, 0x7, int) | |
| 25 | /* Translate pid from caller's pid namespace into a target pid namespace. */ | |
| 26 | #define NS_GET_PID_IN_PIDNS	_IOR(NSIO, 0x8, int) | |
| 27 | /* Return thread-group leader id of pid in the target pid namespace. */ | |
| 28 | #define NS_GET_TGID_IN_PIDNS	_IOR(NSIO, 0x9, int) | |
| 29 | ||
| 30 | struct mnt_ns_info { | |
| 31 | 	__u32 size; | |
| 32 | 	__u32 nr_mounts; | |
| 33 | 	__u64 mnt_ns_id; | |
| 34 | }; | |
| 35 | ||
| 36 | #define MNT_NS_INFO_SIZE_VER0 16 /* size of first published struct */ | |
| 37 | ||
| 38 | /* Get information about namespace. */ | |
| 39 | #define NS_MNT_GET_INFO		_IOR(NSIO, 10, struct mnt_ns_info) | |
| 40 | /* Get next namespace. */ | |
| 41 | #define NS_MNT_GET_NEXT		_IOR(NSIO, 11, struct mnt_ns_info) | |
| 42 | /* Get previous namespace. */ | |
| 43 | #define NS_MNT_GET_PREV		_IOR(NSIO, 12, struct mnt_ns_info) | |
| 18 | 44 | |
| 19 | 45 | #endif /* __LINUX_NSFS_H */ |
| \ No newline at end of file |
lib/libc/include/any-linux-any/linux/openvswitch.h+30-1| ... | ... | @@ -649,7 +649,8 @@ enum ovs_flow_attr { |
| 649 | 649 | * Actions are passed as nested attributes. |
| 650 | 650 | * |
| 651 | 651 | * Executes the specified actions with the given probability on a per-packet |
| 652 | * basis. | |
| 652 | * basis. Nested actions will be able to access the probability value of the | |
| 653 | * parent @OVS_ACTION_ATTR_SAMPLE. | |
| 653 | 654 | */ |
| 654 | 655 | enum ovs_sample_attr { |
| 655 | 656 | 	OVS_SAMPLE_ATTR_UNSPEC, |
| ... | ... | @@ -886,6 +887,31 @@ enum ovs_check_pkt_len_attr { |
| 886 | 887 | #define OVS_CHECK_PKT_LEN_ATTR_MAX (__OVS_CHECK_PKT_LEN_ATTR_MAX - 1) |
| 887 | 888 | |
| 888 | 889 | |
| 890 | #define OVS_PSAMPLE_COOKIE_MAX_SIZE 16 | |
| 891 | /** | |
| 892 | * enum ovs_psample_attr - Attributes for %OVS_ACTION_ATTR_PSAMPLE | |
| 893 | * action. | |
| 894 | * | |
| 895 | * @OVS_PSAMPLE_ATTR_GROUP: 32-bit number to identify the source of the | |
| 896 | * sample. | |
| 897 | * @OVS_PSAMPLE_ATTR_COOKIE: An optional variable-length binary cookie that | |
| 898 | * contains user-defined metadata. The maximum length is | |
| 899 | * OVS_PSAMPLE_COOKIE_MAX_SIZE bytes. | |
| 900 | * | |
| 901 | * Sends the packet to the psample multicast group with the specified group and | |
| 902 | * cookie. It is possible to combine this action with the | |
| 903 | * %OVS_ACTION_ATTR_TRUNC action to limit the size of the sample. | |
| 904 | */ | |
| 905 | enum ovs_psample_attr { | |
| 906 | 	OVS_PSAMPLE_ATTR_GROUP = 1,	/* u32 number. */ | |
| 907 | 	OVS_PSAMPLE_ATTR_COOKIE,	/* Optional, user specified cookie. */ | |
| 908 | ||
| 909 | 	/* private: */ | |
| 910 | 	__OVS_PSAMPLE_ATTR_MAX | |
| 911 | }; | |
| 912 | ||
| 913 | #define OVS_PSAMPLE_ATTR_MAX (__OVS_PSAMPLE_ATTR_MAX - 1) | |
| 914 | ||
| 889 | 915 | /** |
| 890 | 916 | * enum ovs_action_attr - Action types. |
| 891 | 917 | * |
| ... | ... | @@ -938,6 +964,8 @@ enum ovs_check_pkt_len_attr { |
| 938 | 964 | * of l3 tunnel flag in the tun_flags field of OVS_ACTION_ATTR_ADD_MPLS |
| 939 | 965 | * argument. |
| 940 | 966 | * @OVS_ACTION_ATTR_DROP: Explicit drop action. |
| 967 | * @OVS_ACTION_ATTR_PSAMPLE: Send a sample of the packet to external observers | |
| 968 | * via psample. | |
| 941 | 969 | * |
| 942 | 970 | * Only a single header can be set with a single %OVS_ACTION_ATTR_SET. Not all |
| 943 | 971 | * fields within a header are modifiable, e.g. the IPv4 protocol and fragment |
| ... | ... | @@ -976,6 +1004,7 @@ enum ovs_action_attr { |
| 976 | 1004 | 	OVS_ACTION_ATTR_ADD_MPLS, /* struct ovs_action_add_mpls. */ |
| 977 | 1005 | 	OVS_ACTION_ATTR_DEC_TTL, /* Nested OVS_DEC_TTL_ATTR_*. */ |
| 978 | 1006 | 	OVS_ACTION_ATTR_DROP, /* u32 error code. */ |
| 1007 | 	OVS_ACTION_ATTR_PSAMPLE, /* Nested OVS_PSAMPLE_ATTR_*. */ | |
| 979 | 1008 | |
| 980 | 1009 | 	__OVS_ACTION_ATTR_MAX,	 /* Nothing past this will be accepted |
| 981 | 1010 | 				 * from userspace. */ |
lib/libc/include/any-linux-any/linux/pci_regs.h+69-10| ... | ... | @@ -340,7 +340,8 @@ |
| 340 | 340 | #define PCI_MSIX_ENTRY_UPPER_ADDR	0x4 /* Message Upper Address */ |
| 341 | 341 | #define PCI_MSIX_ENTRY_DATA		0x8 /* Message Data */ |
| 342 | 342 | #define PCI_MSIX_ENTRY_VECTOR_CTRL	0xc /* Vector Control */ |
| 343 | #define PCI_MSIX_ENTRY_CTRL_MASKBIT	0x00000001 | |
| 343 | #define PCI_MSIX_ENTRY_CTRL_MASKBIT	0x00000001 /* Mask Bit */ | |
| 344 | #define PCI_MSIX_ENTRY_CTRL_ST		0xffff0000 /* Steering Tag */ | |
| 344 | 345 | |
| 345 | 346 | /* CompactPCI Hotswap Register */ |
| 346 | 347 | |
| ... | ... | @@ -634,9 +635,11 @@ |
| 634 | 635 | #define PCI_EXP_RTCTL_SENFEE	0x0002	/* System Error on Non-Fatal Error */ |
| 635 | 636 | #define PCI_EXP_RTCTL_SEFEE	0x0004	/* System Error on Fatal Error */ |
| 636 | 637 | #define PCI_EXP_RTCTL_PMEIE	0x0008	/* PME Interrupt Enable */ |
| 637 | #define PCI_EXP_RTCTL_CRSSVE	0x0010	/* CRS Software Visibility Enable */ | |
| 638 | #define PCI_EXP_RTCTL_RRS_SVE	0x0010	/* Config RRS Software Visibility Enable */ | |
| 639 | #define PCI_EXP_RTCTL_CRSSVE PCI_EXP_RTCTL_RRS_SVE /* compatibility */ | |
| 638 | 640 | #define PCI_EXP_RTCAP		0x1e	/* Root Capabilities */ |
| 639 | #define PCI_EXP_RTCAP_CRSVIS	0x0001	/* CRS Software Visibility capability */ | |
| 641 | #define PCI_EXP_RTCAP_RRS_SV	0x0001	/* Config RRS Software Visibility */ | |
| 642 | #define PCI_EXP_RTCAP_CRSVIS PCI_EXP_RTCAP_RRS_SV /* compatibility */ | |
| 640 | 643 | #define PCI_EXP_RTSTA		0x20	/* Root Status */ |
| 641 | 644 | #define PCI_EXP_RTSTA_PME_RQ_ID 0x0000ffff /* PME Requester ID */ |
| 642 | 645 | #define PCI_EXP_RTSTA_PME	0x00010000 /* PME status */ |
| ... | ... | @@ -657,6 +660,7 @@ |
| 657 | 660 | #define PCI_EXP_DEVCAP2_ATOMIC_COMP64	0x00000100 /* 64b AtomicOp completion */ |
| 658 | 661 | #define PCI_EXP_DEVCAP2_ATOMIC_COMP128	0x00000200 /* 128b AtomicOp completion */ |
| 659 | 662 | #define PCI_EXP_DEVCAP2_LTR		0x00000800 /* Latency tolerance reporting */ |
| 663 | #define PCI_EXP_DEVCAP2_TPH_COMP_MASK	0x00003000 /* TPH completer support */ | |
| 660 | 664 | #define PCI_EXP_DEVCAP2_OBFF_MASK	0x000c0000 /* OBFF support mechanism */ |
| 661 | 665 | #define PCI_EXP_DEVCAP2_OBFF_MSG	0x00040000 /* New message signaling */ |
| 662 | 666 | #define PCI_EXP_DEVCAP2_OBFF_WAKE	0x00080000 /* Re-use WAKE# for OBFF */ |
| ... | ... | @@ -676,6 +680,7 @@ |
| 676 | 680 | #define PCI_EXP_DEVSTA2		0x2a	/* Device Status 2 */ |
| 677 | 681 | #define PCI_CAP_EXP_RC_ENDPOINT_SIZEOF_V2 0x2c	/* end of v2 EPs w/o link */ |
| 678 | 682 | #define PCI_EXP_LNKCAP2		0x2c	/* Link Capabilities 2 */ |
| 683 | #define PCI_EXP_LNKCAP2_SLS		0x000000fe /* Supported Link Speeds Vector */ | |
| 679 | 684 | #define PCI_EXP_LNKCAP2_SLS_2_5GB	0x00000002 /* Supported Speed 2.5GT/s */ |
| 680 | 685 | #define PCI_EXP_LNKCAP2_SLS_5_0GB	0x00000004 /* Supported Speed 5GT/s */ |
| 681 | 686 | #define PCI_EXP_LNKCAP2_SLS_8_0GB	0x00000008 /* Supported Speed 8GT/s */ |
| ... | ... | @@ -740,6 +745,7 @@ |
| 740 | 745 | #define PCI_EXT_CAP_ID_DVSEC	0x23	/* Designated Vendor-Specific */ |
| 741 | 746 | #define PCI_EXT_CAP_ID_DLF	0x25	/* Data Link Feature */ |
| 742 | 747 | #define PCI_EXT_CAP_ID_PL_16GT	0x26	/* Physical Layer 16.0 GT/s */ |
| 748 | #define PCI_EXT_CAP_ID_NPEM	0x29	/* Native PCIe Enclosure Management */ | |
| 743 | 749 | #define PCI_EXT_CAP_ID_PL_32GT 0x2A /* Physical Layer 32.0 GT/s */ |
| 744 | 750 | #define PCI_EXT_CAP_ID_DOE	0x2E	/* Data Object Exchange */ |
| 745 | 751 | #define PCI_EXT_CAP_ID_MAX	PCI_EXT_CAP_ID_DOE |
| ... | ... | @@ -1020,15 +1026,34 @@ |
| 1020 | 1026 | #define PCI_DPA_CAP_SUBSTATE_MASK	0x1F	/* # substates - 1 */ |
| 1021 | 1027 | #define PCI_DPA_BASE_SIZEOF	16	/* size with 0 substates */ |
| 1022 | 1028 | |
| 1029 | /* TPH Completer Support */ | |
| 1030 | #define PCI_EXP_DEVCAP2_TPH_COMP_NONE		0x0 /* None */ | |
| 1031 | #define PCI_EXP_DEVCAP2_TPH_COMP_TPH_ONLY	0x1 /* TPH only */ | |
| 1032 | #define PCI_EXP_DEVCAP2_TPH_COMP_EXT_TPH	0x3 /* TPH and Extended TPH */ | |
| 1033 | ||
| 1023 | 1034 | /* TPH Requester */ |
| 1024 | 1035 | #define PCI_TPH_CAP		4	/* capability register */ |
| 1025 | #define PCI_TPH_CAP_LOC_MASK	0x600	/* location mask */ | |
| 1026 | #define PCI_TPH_LOC_NONE	0x000	/* no location */ | |
| 1027 | #define PCI_TPH_LOC_CAP	0x200	/* in capability */ | |
| 1028 | #define PCI_TPH_LOC_MSIX	0x400	/* in MSI-X */ | |
| 1029 | #define PCI_TPH_CAP_ST_MASK	0x07FF0000	/* ST table mask */ | |
| 1030 | #define PCI_TPH_CAP_ST_SHIFT	16	/* ST table shift */ | |
| 1031 | #define PCI_TPH_BASE_SIZEOF	0xc	/* size with no ST table */ | |
| 1036 | #define PCI_TPH_CAP_ST_NS	0x00000001 /* No ST Mode Supported */ | |
| 1037 | #define PCI_TPH_CAP_ST_IV	0x00000002 /* Interrupt Vector Mode Supported */ | |
| 1038 | #define PCI_TPH_CAP_ST_DS	0x00000004 /* Device Specific Mode Supported */ | |
| 1039 | #define PCI_TPH_CAP_EXT_TPH	0x00000100 /* Ext TPH Requester Supported */ | |
| 1040 | #define PCI_TPH_CAP_LOC_MASK	0x00000600 /* ST Table Location */ | |
| 1041 | #define PCI_TPH_LOC_NONE	0x00000000 /* Not present */ | |
| 1042 | #define PCI_TPH_LOC_CAP	0x00000200 /* In capability */ | |
| 1043 | #define PCI_TPH_LOC_MSIX	0x00000400 /* In MSI-X */ | |
| 1044 | #define PCI_TPH_CAP_ST_MASK	0x07FF0000 /* ST Table Size */ | |
| 1045 | #define PCI_TPH_CAP_ST_SHIFT	16	/* ST Table Size shift */ | |
| 1046 | #define PCI_TPH_BASE_SIZEOF	0xc	/* Size with no ST table */ | |
| 1047 | ||
| 1048 | #define PCI_TPH_CTRL		8	/* control register */ | |
| 1049 | #define PCI_TPH_CTRL_MODE_SEL_MASK	0x00000007 /* ST Mode Select */ | |
| 1050 | #define PCI_TPH_ST_NS_MODE		0x0 /* No ST Mode */ | |
| 1051 | #define PCI_TPH_ST_IV_MODE		0x1 /* Interrupt Vector Mode */ | |
| 1052 | #define PCI_TPH_ST_DS_MODE		0x2 /* Device Specific Mode */ | |
| 1053 | #define PCI_TPH_CTRL_REQ_EN_MASK	0x00000300 /* TPH Requester Enable */ | |
| 1054 | #define PCI_TPH_REQ_DISABLE		0x0 /* No TPH requests allowed */ | |
| 1055 | #define PCI_TPH_REQ_TPH_ONLY		0x1 /* TPH only requests allowed */ | |
| 1056 | #define PCI_TPH_REQ_EXT_TPH		0x3 /* Extended TPH requests allowed */ | |
| 1032 | 1057 | |
| 1033 | 1058 | /* Downstream Port Containment */ |
| 1034 | 1059 | #define PCI_EXP_DPC_CAP			0x04	/* DPC Capability */ |
| ... | ... | @@ -1121,6 +1146,40 @@ |
| 1121 | 1146 | #define PCI_PL_16GT_LE_CTRL_USP_TX_PRESET_MASK		0x000000F0 |
| 1122 | 1147 | #define PCI_PL_16GT_LE_CTRL_USP_TX_PRESET_SHIFT	4 |
| 1123 | 1148 | |
| 1149 | /* Native PCIe Enclosure Management */ | |
| 1150 | #define PCI_NPEM_CAP 0x04 /* NPEM capability register */ | |
| 1151 | #define PCI_NPEM_CAP_CAPABLE 0x00000001 /* NPEM Capable */ | |
| 1152 | ||
| 1153 | #define PCI_NPEM_CTRL 0x08 /* NPEM control register */ | |
| 1154 | #define PCI_NPEM_CTRL_ENABLE 0x00000001 /* NPEM Enable */ | |
| 1155 | ||
| 1156 | /* | |
| 1157 | * Native PCIe Enclosure Management indication bits and Reset command bit | |
| 1158 | * are corresponding for capability and control registers. | |
| 1159 | */ | |
| 1160 | #define PCI_NPEM_CMD_RESET 0x00000002 /* Reset Command */ | |
| 1161 | #define PCI_NPEM_IND_OK 0x00000004 /* OK */ | |
| 1162 | #define PCI_NPEM_IND_LOCATE 0x00000008 /* Locate */ | |
| 1163 | #define PCI_NPEM_IND_FAIL 0x00000010 /* Fail */ | |
| 1164 | #define PCI_NPEM_IND_REBUILD 0x00000020 /* Rebuild */ | |
| 1165 | #define PCI_NPEM_IND_PFA 0x00000040 /* Predicted Failure Analysis */ | |
| 1166 | #define PCI_NPEM_IND_HOTSPARE 0x00000080 /* Hot Spare */ | |
| 1167 | #define PCI_NPEM_IND_ICA 0x00000100 /* In Critical Array */ | |
| 1168 | #define PCI_NPEM_IND_IFA 0x00000200 /* In Failed Array */ | |
| 1169 | #define PCI_NPEM_IND_IDT 0x00000400 /* Device Type */ | |
| 1170 | #define PCI_NPEM_IND_DISABLED 0x00000800 /* Disabled */ | |
| 1171 | #define PCI_NPEM_IND_SPEC_0 0x01000000 | |
| 1172 | #define PCI_NPEM_IND_SPEC_1 0x02000000 | |
| 1173 | #define PCI_NPEM_IND_SPEC_2 0x04000000 | |
| 1174 | #define PCI_NPEM_IND_SPEC_3 0x08000000 | |
| 1175 | #define PCI_NPEM_IND_SPEC_4 0x10000000 | |
| 1176 | #define PCI_NPEM_IND_SPEC_5 0x20000000 | |
| 1177 | #define PCI_NPEM_IND_SPEC_6 0x40000000 | |
| 1178 | #define PCI_NPEM_IND_SPEC_7 0x80000000 | |
| 1179 | ||
| 1180 | #define PCI_NPEM_STATUS 0x0c /* NPEM status register */ | |
| 1181 | #define PCI_NPEM_STATUS_CC 0x00000001 /* Command Completed */ | |
| 1182 | ||
| 1124 | 1183 | /* Data Object Exchange */ |
| 1125 | 1184 | #define PCI_DOE_CAP		0x04 /* DOE Capabilities Register */ |
| 1126 | 1185 | #define PCI_DOE_CAP_INT_SUP			0x00000001 /* Interrupt Support */ |
lib/libc/include/any-linux-any/linux/perf_event.h+14-3| ... | ... | @@ -511,7 +511,16 @@ struct perf_event_attr { |
| 511 | 511 | 	__u16	sample_max_stack; |
| 512 | 512 | 	__u16	__reserved_2; |
| 513 | 513 | 	__u32	aux_sample_size; |
| 514 | 	__u32	__reserved_3; | |
| 514 | ||
| 515 | 	union { | |
| 516 | 		__u32	aux_action; | |
| 517 | 		struct { | |
| 518 | 			__u32	aux_start_paused : 1, /* start AUX area tracing paused */ | |
| 519 | 				aux_pause : 1, /* on overflow, pause AUX area tracing */ | |
| 520 | 				aux_resume : 1, /* on overflow, resume AUX area tracing */ | |
| 521 | 				__reserved_3 : 29; | |
| 522 | 		}; | |
| 523 | 	}; | |
| 515 | 524 | |
| 516 | 525 | 	/* |
| 517 | 526 | 	 * User provided data if sigtrap=1, passed back to user via |
| ... | ... | @@ -1349,12 +1358,14 @@ union perf_mem_data_src { |
| 1349 | 1358 | #define PERF_MEM_LVLNUM_L2	0x02 /* L2 */ |
| 1350 | 1359 | #define PERF_MEM_LVLNUM_L3	0x03 /* L3 */ |
| 1351 | 1360 | #define PERF_MEM_LVLNUM_L4	0x04 /* L4 */ |
| 1352 | /* 5-0x7 available */ | |
| 1361 | #define PERF_MEM_LVLNUM_L2_MHB	0x05 /* L2 Miss Handling Buffer */ | |
| 1362 | #define PERF_MEM_LVLNUM_MSC	0x06 /* Memory-side Cache */ | |
| 1363 | /* 0x7 available */ | |
| 1353 | 1364 | #define PERF_MEM_LVLNUM_UNC	0x08 /* Uncached */ |
| 1354 | 1365 | #define PERF_MEM_LVLNUM_CXL	0x09 /* CXL */ |
| 1355 | 1366 | #define PERF_MEM_LVLNUM_IO	0x0a /* I/O */ |
| 1356 | 1367 | #define PERF_MEM_LVLNUM_ANY_CACHE 0x0b /* Any cache */ |
| 1357 | #define PERF_MEM_LVLNUM_LFB	0x0c /* LFB */ | |
| 1368 | #define PERF_MEM_LVLNUM_LFB	0x0c /* LFB / L1 Miss Handling Buffer */ | |
| 1358 | 1369 | #define PERF_MEM_LVLNUM_RAM	0x0d /* RAM */ |
| 1359 | 1370 | #define PERF_MEM_LVLNUM_PMEM	0x0e /* PMEM */ |
| 1360 | 1371 | #define PERF_MEM_LVLNUM_NA	0x0f /* N/A */ |
lib/libc/include/any-linux-any/linux/pidfd.h+64| ... | ... | @@ -5,6 +5,7 @@ |
| 5 | 5 | |
| 6 | 6 | #include <linux/types.h> |
| 7 | 7 | #include <linux/fcntl.h> |
| 8 | #include <linux/ioctl.h> | |
| 8 | 9 | |
| 9 | 10 | /* Flags for pidfd_open(). */ |
| 10 | 11 | #define PIDFD_NONBLOCK	O_NONBLOCK |
| ... | ... | @@ -15,4 +16,67 @@ |
| 15 | 16 | #define PIDFD_SIGNAL_THREAD_GROUP	(1UL << 1) |
| 16 | 17 | #define PIDFD_SIGNAL_PROCESS_GROUP	(1UL << 2) |
| 17 | 18 | |
| 19 | /* Flags for pidfd_info. */ | |
| 20 | #define PIDFD_INFO_PID			(1UL << 0) /* Always returned, even if not requested */ | |
| 21 | #define PIDFD_INFO_CREDS		(1UL << 1) /* Always returned, even if not requested */ | |
| 22 | #define PIDFD_INFO_CGROUPID		(1UL << 2) /* Always returned if available, even if not requested */ | |
| 23 | ||
| 24 | #define PIDFD_INFO_SIZE_VER0		64 /* sizeof first published struct */ | |
| 25 | ||
| 26 | struct pidfd_info { | |
| 27 | 	/* | |
| 28 | 	 * This mask is similar to the request_mask in statx(2). | |
| 29 | 	 * | |
| 30 | 	 * Userspace indicates what extensions or expensive-to-calculate fields | |
| 31 | 	 * they want by setting the corresponding bits in mask. The kernel | |
| 32 | 	 * will ignore bits that it does not know about. | |
| 33 | 	 * | |
| 34 | 	 * When filling the structure, the kernel will only set bits | |
| 35 | 	 * corresponding to the fields that were actually filled by the kernel. | |
| 36 | 	 * This also includes any future extensions that might be automatically | |
| 37 | 	 * filled. If the structure size is too small to contain a field | |
| 38 | 	 * (requested or not), to avoid confusion the mask will not | |
| 39 | 	 * contain a bit for that field. | |
| 40 | 	 * | |
| 41 | 	 * As such, userspace MUST verify that mask contains the | |
| 42 | 	 * corresponding flags after the ioctl(2) returns to ensure that it is | |
| 43 | 	 * using valid data. | |
| 44 | 	 */ | |
| 45 | 	__u64 mask; | |
| 46 | 	/* | |
| 47 | 	 * The information contained in the following fields might be stale at the | |
| 48 | 	 * time it is received, as the target process might have exited as soon as | |
| 49 | 	 * the IOCTL was processed, and there is no way to avoid that. However, it | |
| 50 | 	 * is guaranteed that if the call was successful, then the information was | |
| 51 | 	 * correct and referred to the intended process at the time the work was | |
| 52 | 	 * performed. */ | |
| 53 | 	__u64 cgroupid; | |
| 54 | 	__u32 pid; | |
| 55 | 	__u32 tgid; | |
| 56 | 	__u32 ppid; | |
| 57 | 	__u32 ruid; | |
| 58 | 	__u32 rgid; | |
| 59 | 	__u32 euid; | |
| 60 | 	__u32 egid; | |
| 61 | 	__u32 suid; | |
| 62 | 	__u32 sgid; | |
| 63 | 	__u32 fsuid; | |
| 64 | 	__u32 fsgid; | |
| 65 | 	__u32 spare0[1]; | |
| 66 | }; | |
| 67 | ||
| 68 | #define PIDFS_IOCTL_MAGIC 0xFF | |
| 69 | ||
| 70 | #define PIDFD_GET_CGROUP_NAMESPACE _IO(PIDFS_IOCTL_MAGIC, 1) | |
| 71 | #define PIDFD_GET_IPC_NAMESPACE _IO(PIDFS_IOCTL_MAGIC, 2) | |
| 72 | #define PIDFD_GET_MNT_NAMESPACE _IO(PIDFS_IOCTL_MAGIC, 3) | |
| 73 | #define PIDFD_GET_NET_NAMESPACE _IO(PIDFS_IOCTL_MAGIC, 4) | |
| 74 | #define PIDFD_GET_PID_NAMESPACE _IO(PIDFS_IOCTL_MAGIC, 5) | |
| 75 | #define PIDFD_GET_PID_FOR_CHILDREN_NAMESPACE _IO(PIDFS_IOCTL_MAGIC, 6) | |
| 76 | #define PIDFD_GET_TIME_NAMESPACE _IO(PIDFS_IOCTL_MAGIC, 7) | |
| 77 | #define PIDFD_GET_TIME_FOR_CHILDREN_NAMESPACE _IO(PIDFS_IOCTL_MAGIC, 8) | |
| 78 | #define PIDFD_GET_USER_NAMESPACE _IO(PIDFS_IOCTL_MAGIC, 9) | |
| 79 | #define PIDFD_GET_UTS_NAMESPACE _IO(PIDFS_IOCTL_MAGIC, 10) | |
| 80 | #define PIDFD_GET_INFO _IOWR(PIDFS_IOCTL_MAGIC, 11, struct pidfd_info) | |
| 81 | ||
| 18 | 82 | #endif /* _LINUX_PIDFD_H */ |
| \ No newline at end of file |
lib/libc/include/any-linux-any/linux/pkt_cls.h+23-10| ... | ... | @@ -246,16 +246,19 @@ struct tc_u32_key { |
| 246 | 246 | }; |
| 247 | 247 | |
| 248 | 248 | struct tc_u32_sel { |
| 249 | 	unsigned char		flags; | |
| 250 | 	unsigned char		offshift; | |
| 251 | 	unsigned char		nkeys; | |
| 252 | ||
| 253 | 	__be16			offmask; | |
| 254 | 	__u16			off; | |
| 255 | 	short			offoff; | |
| 256 | ||
| 257 | 	short			hoff; | |
| 258 | 	__be32			hmask; | |
| 249 | 	/* New members MUST be added within the __struct_group() macro below. */ | |
| 250 | 	__struct_group(tc_u32_sel_hdr, hdr, /* no attrs */, | |
| 251 | 		unsigned char		flags; | |
| 252 | 		unsigned char		offshift; | |
| 253 | 		unsigned char		nkeys; | |
| 254 | ||
| 255 | 		__be16			offmask; | |
| 256 | 		__u16			off; | |
| 257 | 		short			offoff; | |
| 258 | ||
| 259 | 		short			hoff; | |
| 260 | 		__be32			hmask; | |
| 261 | 	); | |
| 259 | 262 | 	struct tc_u32_key	keys[]; |
| 260 | 263 | }; |
| 261 | 264 | |
| ... | ... | @@ -554,6 +557,9 @@ enum { |
| 554 | 557 | 	TCA_FLOWER_KEY_SPI,		/* be32 */ |
| 555 | 558 | 	TCA_FLOWER_KEY_SPI_MASK,	/* be32 */ |
| 556 | 559 | |
| 560 | 	TCA_FLOWER_KEY_ENC_FLAGS,	/* be32 */ | |
| 561 | 	TCA_FLOWER_KEY_ENC_FLAGS_MASK,	/* be32 */ | |
| 562 | ||
| 557 | 563 | 	__TCA_FLOWER_MAX, |
| 558 | 564 | }; |
| 559 | 565 | |
| ... | ... | @@ -674,8 +680,15 @@ enum { |
| 674 | 680 | enum { |
| 675 | 681 | 	TCA_FLOWER_KEY_FLAGS_IS_FRAGMENT = (1 << 0), |
| 676 | 682 | 	TCA_FLOWER_KEY_FLAGS_FRAG_IS_FIRST = (1 << 1), |
| 683 | 	TCA_FLOWER_KEY_FLAGS_TUNNEL_CSUM = (1 << 2), | |
| 684 | 	TCA_FLOWER_KEY_FLAGS_TUNNEL_DONT_FRAGMENT = (1 << 3), | |
| 685 | 	TCA_FLOWER_KEY_FLAGS_TUNNEL_OAM = (1 << 4), | |
| 686 | 	TCA_FLOWER_KEY_FLAGS_TUNNEL_CRIT_OPT = (1 << 5), | |
| 687 | 	__TCA_FLOWER_KEY_FLAGS_MAX, | |
| 677 | 688 | }; |
| 678 | 689 | |
| 690 | #define TCA_FLOWER_KEY_FLAGS_MAX (__TCA_FLOWER_KEY_FLAGS_MAX - 1) | |
| 691 | ||
| 679 | 692 | enum { |
| 680 | 693 | 	TCA_FLOWER_KEY_CFM_OPT_UNSPEC, |
| 681 | 694 | 	TCA_FLOWER_KEY_CFM_MD_LEVEL, |
lib/libc/include/any-linux-any/linux/pkt_sched.h+2| ... | ... | @@ -836,6 +836,8 @@ enum { |
| 836 | 836 | |
| 837 | 837 | 	TCA_FQ_WEIGHTS,		/* Weights for each band */ |
| 838 | 838 | |
| 839 | 	TCA_FQ_OFFLOAD_HORIZON, /* dequeue paced packets within this horizon immediately (us units) */ | |
| 840 | ||
| 839 | 841 | 	__TCA_FQ_MAX |
| 840 | 842 | }; |
| 841 | 843 |
lib/libc/include/any-linux-any/linux/prctl.h+26-1| ... | ... | @@ -230,7 +230,7 @@ struct prctl_mm_map { |
| 230 | 230 | # define PR_PAC_APDBKEY			(1UL << 3) |
| 231 | 231 | # define PR_PAC_APGAKEY			(1UL << 4) |
| 232 | 232 | |
| 233 | /* Tagged user address controls for arm64 */ | |
| 233 | /* Tagged user address controls for arm64 and RISC-V */ | |
| 234 | 234 | #define PR_SET_TAGGED_ADDR_CTRL		55 |
| 235 | 235 | #define PR_GET_TAGGED_ADDR_CTRL		56 |
| 236 | 236 | # define PR_TAGGED_ADDR_ENABLE		(1UL << 0) |
| ... | ... | @@ -244,6 +244,9 @@ struct prctl_mm_map { |
| 244 | 244 | # define PR_MTE_TAG_MASK		(0xffffUL << PR_MTE_TAG_SHIFT) |
| 245 | 245 | /* Unused; kept only for source compatibility */ |
| 246 | 246 | # define PR_MTE_TCF_SHIFT		1 |
| 247 | /* RISC-V pointer masking tag length */ | |
| 248 | # define PR_PMLEN_SHIFT			24 | |
| 249 | # define PR_PMLEN_MASK			(0x7fUL << PR_PMLEN_SHIFT) | |
| 247 | 250 | |
| 248 | 251 | /* Control reclaim behavior when allocating memory */ |
| 249 | 252 | #define PR_SET_IO_FLUSHER		57 |
| ... | ... | @@ -328,4 +331,26 @@ struct prctl_mm_map { |
| 328 | 331 | # define PR_PPC_DEXCR_CTRL_CLEAR_ONEXEC	0x10 /* Clear the aspect on exec */ |
| 329 | 332 | # define PR_PPC_DEXCR_CTRL_MASK		0x1f |
| 330 | 333 | |
| 334 | /* | |
| 335 | * Get the current shadow stack configuration for the current thread, | |
| 336 | * this will be the value configured via PR_SET_SHADOW_STACK_STATUS. | |
| 337 | */ | |
| 338 | #define PR_GET_SHADOW_STACK_STATUS 74 | |
| 339 | ||
| 340 | /* | |
| 341 | * Set the current shadow stack configuration. Enabling the shadow | |
| 342 | * stack will cause a shadow stack to be allocated for the thread. | |
| 343 | */ | |
| 344 | #define PR_SET_SHADOW_STACK_STATUS 75 | |
| 345 | # define PR_SHADOW_STACK_ENABLE (1UL << 0) | |
| 346 | # define PR_SHADOW_STACK_WRITE		(1UL << 1) | |
| 347 | # define PR_SHADOW_STACK_PUSH		(1UL << 2) | |
| 348 | ||
| 349 | /* | |
| 350 | * Prevent further changes to the specified shadow stack | |
| 351 | * configuration. All bits may be locked via this call, including | |
| 352 | * undefined bits. | |
| 353 | */ | |
| 354 | #define PR_LOCK_SHADOW_STACK_STATUS 76 | |
| 355 | ||
| 331 | 356 | #endif /* _LINUX_PRCTL_H */ |
| \ No newline at end of file |
lib/libc/include/any-linux-any/linux/psample.h+10-1| ... | ... | @@ -8,7 +8,11 @@ enum { |
| 8 | 8 | 	PSAMPLE_ATTR_ORIGSIZE, |
| 9 | 9 | 	PSAMPLE_ATTR_SAMPLE_GROUP, |
| 10 | 10 | 	PSAMPLE_ATTR_GROUP_SEQ, |
| 11 | 	PSAMPLE_ATTR_SAMPLE_RATE, | |
| 11 | 	PSAMPLE_ATTR_SAMPLE_RATE,	/* u32, ratio between observed and | |
| 12 | 					 * sampled packets or scaled probability | |
| 13 | 					 * if PSAMPLE_ATTR_SAMPLE_PROBABILITY | |
| 14 | 					 * is set. | |
| 15 | 					 */ | |
| 12 | 16 | 	PSAMPLE_ATTR_DATA, |
| 13 | 17 | 	PSAMPLE_ATTR_GROUP_REFCOUNT, |
| 14 | 18 | 	PSAMPLE_ATTR_TUNNEL, |
| ... | ... | @@ -19,6 +23,11 @@ enum { |
| 19 | 23 | 	PSAMPLE_ATTR_LATENCY,		/* u64, nanoseconds */ |
| 20 | 24 | 	PSAMPLE_ATTR_TIMESTAMP,		/* u64, nanoseconds */ |
| 21 | 25 | 	PSAMPLE_ATTR_PROTO,		/* u16 */ |
| 26 | 	PSAMPLE_ATTR_USER_COOKIE,	/* binary, user provided data */ | |
| 27 | 	PSAMPLE_ATTR_SAMPLE_PROBABILITY,/* no argument, interpret rate in | |
| 28 | 					 * PSAMPLE_ATTR_SAMPLE_RATE as a | |
| 29 | 					 * probability scaled 0 - U32_MAX. | |
| 30 | 					 */ | |
| 22 | 31 | |
| 23 | 32 | 	__PSAMPLE_ATTR_MAX |
| 24 | 33 | }; |
lib/libc/include/any-linux-any/linux/psci.h+5| ... | ... | @@ -59,6 +59,7 @@ |
| 59 | 59 | #define PSCI_1_1_FN_SYSTEM_RESET2		PSCI_0_2_FN(18) |
| 60 | 60 | #define PSCI_1_1_FN_MEM_PROTECT			PSCI_0_2_FN(19) |
| 61 | 61 | #define PSCI_1_1_FN_MEM_PROTECT_CHECK_RANGE	PSCI_0_2_FN(20) |
| 62 | #define PSCI_1_3_FN_SYSTEM_OFF2			PSCI_0_2_FN(21) | |
| 62 | 63 | |
| 63 | 64 | #define PSCI_1_0_FN64_CPU_DEFAULT_SUSPEND	PSCI_0_2_FN64(12) |
| 64 | 65 | #define PSCI_1_0_FN64_NODE_HW_STATE		PSCI_0_2_FN64(13) |
| ... | ... | @@ -68,6 +69,7 @@ |
| 68 | 69 | |
| 69 | 70 | #define PSCI_1_1_FN64_SYSTEM_RESET2		PSCI_0_2_FN64(18) |
| 70 | 71 | #define PSCI_1_1_FN64_MEM_PROTECT_CHECK_RANGE	PSCI_0_2_FN64(20) |
| 72 | #define PSCI_1_3_FN64_SYSTEM_OFF2		PSCI_0_2_FN64(21) | |
| 71 | 73 | |
| 72 | 74 | /* PSCI v0.2 power state encoding for CPU_SUSPEND function */ |
| 73 | 75 | #define PSCI_0_2_POWER_STATE_ID_MASK		0xffff |
| ... | ... | @@ -100,6 +102,9 @@ |
| 100 | 102 | #define PSCI_1_1_RESET_TYPE_SYSTEM_WARM_RESET	0 |
| 101 | 103 | #define PSCI_1_1_RESET_TYPE_VENDOR_START	0x80000000U |
| 102 | 104 | |
| 105 | /* PSCI v1.3 hibernate type for SYSTEM_OFF2 */ | |
| 106 | #define PSCI_1_3_OFF_TYPE_HIBERNATE_OFF		BIT(0) | |
| 107 | ||
| 103 | 108 | /* PSCI version decoding (independent of PSCI version) */ |
| 104 | 109 | #define PSCI_VERSION_MAJOR_SHIFT		16 |
| 105 | 110 | #define PSCI_VERSION_MINOR_MASK			\ |
lib/libc/include/any-linux-any/linux/psp-sev.h+28| ... | ... | @@ -31,6 +31,7 @@ enum { |
| 31 | 31 | 	SNP_PLATFORM_STATUS, |
| 32 | 32 | 	SNP_COMMIT, |
| 33 | 33 | 	SNP_SET_CONFIG, |
| 34 | 	SNP_VLEK_LOAD, | |
| 34 | 35 | |
| 35 | 36 | 	SEV_MAX, |
| 36 | 37 | }; |
| ... | ... | @@ -50,6 +51,7 @@ typedef enum { |
| 50 | 51 | 	SEV_RET_INVALID_PLATFORM_STATE, |
| 51 | 52 | 	SEV_RET_INVALID_GUEST_STATE, |
| 52 | 53 | 	SEV_RET_INAVLID_CONFIG, |
| 54 | 	SEV_RET_INVALID_CONFIG = SEV_RET_INAVLID_CONFIG, | |
| 53 | 55 | 	SEV_RET_INVALID_LEN, |
| 54 | 56 | 	SEV_RET_ALREADY_OWNED, |
| 55 | 57 | 	SEV_RET_INVALID_CERTIFICATE, |
| ... | ... | @@ -214,6 +216,32 @@ struct sev_user_data_snp_config { |
| 214 | 216 | 	__u8 rsvd1[52]; |
| 215 | 217 | } __attribute__((packed)); |
| 216 | 218 | |
| 219 | /** | |
| 220 | * struct sev_data_snp_vlek_load - SNP_VLEK_LOAD structure | |
| 221 | * | |
| 222 | * @len: length of the command buffer read by the PSP | |
| 223 | * @vlek_wrapped_version: version of wrapped VLEK hashstick (Must be 0h) | |
| 224 | * @rsvd: reserved | |
| 225 | * @vlek_wrapped_address: address of a wrapped VLEK hashstick | |
| 226 | * (struct sev_user_data_snp_wrapped_vlek_hashstick) | |
| 227 | */ | |
| 228 | struct sev_user_data_snp_vlek_load { | |
| 229 | 	__u32 len;				/* In */ | |
| 230 | 	__u8 vlek_wrapped_version;		/* In */ | |
| 231 | 	__u8 rsvd[3];				/* In */ | |
| 232 | 	__u64 vlek_wrapped_address;		/* In */ | |
| 233 | } __attribute__((packed)); | |
| 234 | ||
| 235 | /** | |
| 236 | * struct sev_user_data_snp_vlek_wrapped_vlek_hashstick - Wrapped VLEK data | |
| 237 | * | |
| 238 | * @data: Opaque data provided by AMD KDS (as described in SEV-SNP Firmware ABI | |
| 239 | * 1.54, SNP_VLEK_LOAD) | |
| 240 | */ | |
| 241 | struct sev_user_data_snp_wrapped_vlek_hashstick { | |
| 242 | 	__u8 data[432];				/* In */ | |
| 243 | } __attribute__((packed)); | |
| 244 | ||
| 217 | 245 | /** |
| 218 | 246 | * struct sev_issue_cmd - SEV ioctl parameters |
| 219 | 247 | * |
lib/libc/include/any-linux-any/linux/ptp_clock.h+18-6| ... | ... | @@ -155,13 +155,25 @@ struct ptp_sys_offset { |
| 155 | 155 | 	struct ptp_clock_time ts[2 * PTP_MAX_SAMPLES + 1]; |
| 156 | 156 | }; |
| 157 | 157 | |
| 158 | /* | |
| 159 | * ptp_sys_offset_extended - data structure for IOCTL operation | |
| 160 | *			 PTP_SYS_OFFSET_EXTENDED | |
| 161 | * | |
| 162 | * @n_samples:	Desired number of measurements. | |
| 163 | * @clockid:	clockid of a clock-base used for pre/post timestamps. | |
| 164 | * @rsv:	Reserved for future use. | |
| 165 | * @ts:		Array of samples in the form [pre-TS, PHC, post-TS]. The | |
| 166 | *		kernel provides @n_samples. | |
| 167 | * | |
| 168 | * Starting from kernel 6.12 and onwards, the first word of the reserved-field | |
| 169 | * is used for @clockid. That's backward compatible since previous kernel | |
| 170 | * expect all three reserved words (@rsv[3]) to be 0 while the clockid (first | |
| 171 | * word in the new structure) for CLOCK_REALTIME is '0'. | |
| 172 | */ | |
| 158 | 173 | struct ptp_sys_offset_extended { |
| 159 | 	unsigned int n_samples; /* Desired number of measurements. */ | |
| 160 | 	unsigned int rsv[3]; /* Reserved for future use. */ | |
| 161 | 	/* | |
| 162 | 	 * Array of [system, phc, system] time stamps. The kernel will provide | |
| 163 | 	 * 3*n_samples time stamps. | |
| 164 | 	 */ | |
| 174 | 	unsigned int n_samples; | |
| 175 | 	__kernel_clockid_t clockid; | |
| 176 | 	unsigned int rsv[2]; | |
| 165 | 177 | 	struct ptp_clock_time ts[PTP_MAX_SAMPLES][3]; |
| 166 | 178 | }; |
| 167 | 179 |
lib/libc/include/any-linux-any/linux/raid/md_p.h+1-1| ... | ... | @@ -233,7 +233,7 @@ struct mdp_superblock_1 { |
| 233 | 233 | 	char	set_name[32];	/* set and interpreted by user-space */ |
| 234 | 234 | |
| 235 | 235 | 	__le64	ctime;		/* lo 40 bits are seconds, top 24 are microseconds or 0*/ |
| 236 | 	__le32	level;		/* 0,1,4,5 */ | |
| 236 | 	__le32	level;		/* 0,1,4,5, -1 (linear) */ | |
| 237 | 237 | 	__le32	layout;		/* only for raid5 and raid10 currently */ |
| 238 | 238 | 	__le64	size;		/* used size of component devices, in 512byte sectors */ |
| 239 | 239 |
lib/libc/include/any-linux-any/linux/raid/md_u.h+2| ... | ... | @@ -103,6 +103,8 @@ typedef struct mdu_array_info_s { |
| 103 | 103 | |
| 104 | 104 | } mdu_array_info_t; |
| 105 | 105 | |
| 106 | #define LEVEL_LINEAR		(-1) | |
| 107 | ||
| 106 | 108 | /* we need a value for 'no level specified' and 0 |
| 107 | 109 | * means 'raid0', so we need something else. This is |
| 108 | 110 | * for internal use only |
lib/libc/include/any-linux-any/linux/random.h+16-1| ... | ... | @@ -20,7 +20,7 @@ |
| 20 | 20 | /* Add to (or subtract from) the entropy count. (Superuser only.) */ |
| 21 | 21 | #define RNDADDTOENTCNT	_IOW( 'R', 0x01, int ) |
| 22 | 22 | |
| 23 | /* Get the contents of the entropy pool. (Superuser only.) */ | |
| 23 | /* Get the contents of the entropy pool. (Superuser only.) (Removed in 2.6.9-rc2.) */ | |
| 24 | 24 | #define RNDGETPOOL	_IOR( 'R', 0x02, int [2] ) |
| 25 | 25 | |
| 26 | 26 | /* |
| ... | ... | @@ -55,4 +55,19 @@ struct rand_pool_info { |
| 55 | 55 | #define GRND_RANDOM	0x0002 |
| 56 | 56 | #define GRND_INSECURE	0x0004 |
| 57 | 57 | |
| 58 | /** | |
| 59 | * struct vgetrandom_opaque_params - arguments for allocating memory for vgetrandom | |
| 60 | * | |
| 61 | * @size_per_opaque_state:	Size of each state that is to be passed to vgetrandom(). | |
| 62 | * @mmap_prot:			Value of the prot argument in mmap(2). | |
| 63 | * @mmap_flags:			Value of the flags argument in mmap(2). | |
| 64 | * @reserved:			Reserved for future use. | |
| 65 | */ | |
| 66 | struct vgetrandom_opaque_params { | |
| 67 | 	__u32 size_of_opaque_state; | |
| 68 | 	__u32 mmap_prot; | |
| 69 | 	__u32 mmap_flags; | |
| 70 | 	__u32 reserved[13]; | |
| 71 | }; | |
| 72 | ||
| 58 | 73 | #endif /* _LINUX_RANDOM_H */ |
| \ No newline at end of file |
lib/libc/include/any-linux-any/linux/reiserfs_fs.h deleted-27| ... | ... | @@ -1,27 +0,0 @@ |
| 1 | /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ | |
| 2 | /* | |
| 3 | * Copyright 1996, 1997, 1998 Hans Reiser, see reiserfs/README for licensing and copyright details | |
| 4 | */ | |
| 5 | #ifndef _LINUX_REISER_FS_H | |
| 6 | #define _LINUX_REISER_FS_H | |
| 7 | ||
| 8 | #include <linux/types.h> | |
| 9 | #include <linux/magic.h> | |
| 10 | ||
| 11 | /* | |
| 12 | * include/linux/reiser_fs.h | |
| 13 | * | |
| 14 | * Reiser File System constants and structures | |
| 15 | * | |
| 16 | */ | |
| 17 | ||
| 18 | /* ioctl's command */ | |
| 19 | #define REISERFS_IOC_UNPACK		_IOW(0xCD,1,long) | |
| 20 | /* define following flags to be the same as in ext2, so that chattr(1), | |
| 21 | lsattr(1) will work with us. */ | |
| 22 | #define REISERFS_IOC_GETFLAGS		FS_IOC_GETFLAGS | |
| 23 | #define REISERFS_IOC_SETFLAGS		FS_IOC_SETFLAGS | |
| 24 | #define REISERFS_IOC_GETVERSION		FS_IOC_GETVERSION | |
| 25 | #define REISERFS_IOC_SETVERSION		FS_IOC_SETVERSION | |
| 26 | ||
| 27 | #endif				/* _LINUX_REISER_FS_H */ | |
| \ No newline at end of file |
lib/libc/include/any-linux-any/linux/reiserfs_xattr.h deleted-25| ... | ... | @@ -1,25 +0,0 @@ |
| 1 | /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ | |
| 2 | /* | |
| 3 | File: linux/reiserfs_xattr.h | |
| 4 | */ | |
| 5 | ||
| 6 | #ifndef _LINUX_REISERFS_XATTR_H | |
| 7 | #define _LINUX_REISERFS_XATTR_H | |
| 8 | ||
| 9 | #include <linux/types.h> | |
| 10 | ||
| 11 | /* Magic value in header */ | |
| 12 | #define REISERFS_XATTR_MAGIC 0x52465841	/* "RFXA" */ | |
| 13 | ||
| 14 | struct reiserfs_xattr_header { | |
| 15 | 	__le32 h_magic;		/* magic number for identification */ | |
| 16 | 	__le32 h_hash;		/* hash of the value */ | |
| 17 | }; | |
| 18 | ||
| 19 | struct reiserfs_security_handle { | |
| 20 | 	const char *name; | |
| 21 | 	void *value; | |
| 22 | 	__kernel_size_t length; | |
| 23 | }; | |
| 24 | ||
| 25 | #endif /* _LINUX_REISERFS_XATTR_H */ | |
| \ No newline at end of file |
lib/libc/include/any-linux-any/linux/rkisp1-config.h+578| ... | ... | @@ -164,6 +164,11 @@ |
| 164 | 164 | #define RKISP1_CIF_ISP_DPF_MAX_NLF_COEFFS 17 |
| 165 | 165 | #define RKISP1_CIF_ISP_DPF_MAX_SPATIAL_COEFFS 6 |
| 166 | 166 | |
| 167 | /* | |
| 168 | * Compand | |
| 169 | */ | |
| 170 | #define RKISP1_CIF_ISP_COMPAND_NUM_POINTS	64 | |
| 171 | ||
| 167 | 172 | /* |
| 168 | 173 | * Measurement types |
| 169 | 174 | */ |
| ... | ... | @@ -851,6 +856,39 @@ struct rkisp1_params_cfg { |
| 851 | 856 | 	struct rkisp1_cif_isp_isp_other_cfg others; |
| 852 | 857 | }; |
| 853 | 858 | |
| 859 | /** | |
| 860 | * struct rkisp1_cif_isp_compand_bls_config - Rockchip ISP1 Companding parameters (BLS) | |
| 861 | * @r: Fixed subtraction value for Bayer pattern R | |
| 862 | * @gr: Fixed subtraction value for Bayer pattern Gr | |
| 863 | * @gb: Fixed subtraction value for Bayer pattern Gb | |
| 864 | * @b: Fixed subtraction value for Bayer pattern B | |
| 865 | * | |
| 866 | * The values will be subtracted from the sensor values. Note that unlike the | |
| 867 | * dedicated BLS block, the BLS values in the compander are 20-bit unsigned. | |
| 868 | */ | |
| 869 | struct rkisp1_cif_isp_compand_bls_config { | |
| 870 | 	__u32 r; | |
| 871 | 	__u32 gr; | |
| 872 | 	__u32 gb; | |
| 873 | 	__u32 b; | |
| 874 | }; | |
| 875 | ||
| 876 | /** | |
| 877 | * struct rkisp1_cif_isp_compand_curve_config - Rockchip ISP1 Companding | |
| 878 | * parameters (expand and compression curves) | |
| 879 | * @px: Compand curve x-values. Each value stores the distance from the | |
| 880 | * previous x-value, expressed as log2 of the distance on 5 bits. | |
| 881 | * @x: Compand curve x-values. The functionality of these parameters are | |
| 882 | * unknown due to do a lack of hardware documentation, but these are left | |
| 883 | * here for future compatibility purposes. | |
| 884 | * @y: Compand curve y-values | |
| 885 | */ | |
| 886 | struct rkisp1_cif_isp_compand_curve_config { | |
| 887 | 	__u8 px[RKISP1_CIF_ISP_COMPAND_NUM_POINTS]; | |
| 888 | 	__u32 x[RKISP1_CIF_ISP_COMPAND_NUM_POINTS]; | |
| 889 | 	__u32 y[RKISP1_CIF_ISP_COMPAND_NUM_POINTS]; | |
| 890 | }; | |
| 891 | ||
| 854 | 892 | /*---------- PART2: Measurement Statistics ------------*/ |
| 855 | 893 | |
| 856 | 894 | /** |
| ... | ... | @@ -996,4 +1034,544 @@ struct rkisp1_stat_buffer { |
| 996 | 1034 | 	struct rkisp1_cif_isp_stat params; |
| 997 | 1035 | }; |
| 998 | 1036 | |
| 1037 | /*---------- PART3: Extensible Configuration Parameters ------------*/ | |
| 1038 | ||
| 1039 | /** | |
| 1040 | * enum rkisp1_ext_params_block_type - RkISP1 extensible params block type | |
| 1041 | * | |
| 1042 | * @RKISP1_EXT_PARAMS_BLOCK_TYPE_BLS: Black level subtraction | |
| 1043 | * @RKISP1_EXT_PARAMS_BLOCK_TYPE_DPCC: Defect pixel cluster correction | |
| 1044 | * @RKISP1_EXT_PARAMS_BLOCK_TYPE_SDG: Sensor de-gamma | |
| 1045 | * @RKISP1_EXT_PARAMS_BLOCK_TYPE_AWB_GAIN: Auto white balance gains | |
| 1046 | * @RKISP1_EXT_PARAMS_BLOCK_TYPE_FLT: ISP filtering | |
| 1047 | * @RKISP1_EXT_PARAMS_BLOCK_TYPE_BDM: Bayer de-mosaic | |
| 1048 | * @RKISP1_EXT_PARAMS_BLOCK_TYPE_CTK: Cross-talk correction | |
| 1049 | * @RKISP1_EXT_PARAMS_BLOCK_TYPE_GOC: Gamma out correction | |
| 1050 | * @RKISP1_EXT_PARAMS_BLOCK_TYPE_DPF: De-noise pre-filter | |
| 1051 | * @RKISP1_EXT_PARAMS_BLOCK_TYPE_DPF_STRENGTH: De-noise pre-filter strength | |
| 1052 | * @RKISP1_EXT_PARAMS_BLOCK_TYPE_CPROC: Color processing | |
| 1053 | * @RKISP1_EXT_PARAMS_BLOCK_TYPE_IE: Image effects | |
| 1054 | * @RKISP1_EXT_PARAMS_BLOCK_TYPE_LSC: Lens shading correction | |
| 1055 | * @RKISP1_EXT_PARAMS_BLOCK_TYPE_AWB_MEAS: Auto white balance statistics | |
| 1056 | * @RKISP1_EXT_PARAMS_BLOCK_TYPE_HST_MEAS: Histogram statistics | |
| 1057 | * @RKISP1_EXT_PARAMS_BLOCK_TYPE_AEC_MEAS: Auto exposure statistics | |
| 1058 | * @RKISP1_EXT_PARAMS_BLOCK_TYPE_AFC_MEAS: Auto-focus statistics | |
| 1059 | * @RKISP1_EXT_PARAMS_BLOCK_TYPE_COMPAND_BLS: BLS in the compand block | |
| 1060 | * @RKISP1_EXT_PARAMS_BLOCK_TYPE_COMPAND_EXPAND: Companding expand curve | |
| 1061 | * @RKISP1_EXT_PARAMS_BLOCK_TYPE_COMPAND_COMPRESS: Companding compress curve | |
| 1062 | */ | |
| 1063 | enum rkisp1_ext_params_block_type { | |
| 1064 | 	RKISP1_EXT_PARAMS_BLOCK_TYPE_BLS, | |
| 1065 | 	RKISP1_EXT_PARAMS_BLOCK_TYPE_DPCC, | |
| 1066 | 	RKISP1_EXT_PARAMS_BLOCK_TYPE_SDG, | |
| 1067 | 	RKISP1_EXT_PARAMS_BLOCK_TYPE_AWB_GAIN, | |
| 1068 | 	RKISP1_EXT_PARAMS_BLOCK_TYPE_FLT, | |
| 1069 | 	RKISP1_EXT_PARAMS_BLOCK_TYPE_BDM, | |
| 1070 | 	RKISP1_EXT_PARAMS_BLOCK_TYPE_CTK, | |
| 1071 | 	RKISP1_EXT_PARAMS_BLOCK_TYPE_GOC, | |
| 1072 | 	RKISP1_EXT_PARAMS_BLOCK_TYPE_DPF, | |
| 1073 | 	RKISP1_EXT_PARAMS_BLOCK_TYPE_DPF_STRENGTH, | |
| 1074 | 	RKISP1_EXT_PARAMS_BLOCK_TYPE_CPROC, | |
| 1075 | 	RKISP1_EXT_PARAMS_BLOCK_TYPE_IE, | |
| 1076 | 	RKISP1_EXT_PARAMS_BLOCK_TYPE_LSC, | |
| 1077 | 	RKISP1_EXT_PARAMS_BLOCK_TYPE_AWB_MEAS, | |
| 1078 | 	RKISP1_EXT_PARAMS_BLOCK_TYPE_HST_MEAS, | |
| 1079 | 	RKISP1_EXT_PARAMS_BLOCK_TYPE_AEC_MEAS, | |
| 1080 | 	RKISP1_EXT_PARAMS_BLOCK_TYPE_AFC_MEAS, | |
| 1081 | 	RKISP1_EXT_PARAMS_BLOCK_TYPE_COMPAND_BLS, | |
| 1082 | 	RKISP1_EXT_PARAMS_BLOCK_TYPE_COMPAND_EXPAND, | |
| 1083 | 	RKISP1_EXT_PARAMS_BLOCK_TYPE_COMPAND_COMPRESS, | |
| 1084 | }; | |
| 1085 | ||
| 1086 | #define RKISP1_EXT_PARAMS_FL_BLOCK_DISABLE	(1U << 0) | |
| 1087 | #define RKISP1_EXT_PARAMS_FL_BLOCK_ENABLE	(1U << 1) | |
| 1088 | ||
| 1089 | /** | |
| 1090 | * struct rkisp1_ext_params_block_header - RkISP1 extensible parameters block | |
| 1091 | *					 header | |
| 1092 | * | |
| 1093 | * This structure represents the common part of all the ISP configuration | |
| 1094 | * blocks. Each parameters block shall embed an instance of this structure type | |
| 1095 | * as its first member, followed by the block-specific configuration data. The | |
| 1096 | * driver inspects this common header to discern the block type and its size and | |
| 1097 | * properly handle the block content by casting it to the correct block-specific | |
| 1098 | * type. | |
| 1099 | * | |
| 1100 | * The @type field is one of the values enumerated by | |
| 1101 | * :c:type:`rkisp1_ext_params_block_type` and specifies how the data should be | |
| 1102 | * interpreted by the driver. The @size field specifies the size of the | |
| 1103 | * parameters block and is used by the driver for validation purposes. | |
| 1104 | * | |
| 1105 | * The @flags field is a bitmask of per-block flags RKISP1_EXT_PARAMS_FL_*. | |
| 1106 | * | |
| 1107 | * When userspace wants to configure and enable an ISP block it shall fully | |
| 1108 | * populate the block configuration and set the | |
| 1109 | * RKISP1_EXT_PARAMS_FL_BLOCK_ENABLE bit in the @flags field. | |
| 1110 | * | |
| 1111 | * When userspace simply wants to disable an ISP block the | |
| 1112 | * RKISP1_EXT_PARAMS_FL_BLOCK_DISABLE bit should be set in @flags field. The | |
| 1113 | * driver ignores the rest of the block configuration structure in this case. | |
| 1114 | * | |
| 1115 | * If a new configuration of an ISP block has to be applied userspace shall | |
| 1116 | * fully populate the ISP block configuration and omit setting the | |
| 1117 | * RKISP1_EXT_PARAMS_FL_BLOCK_ENABLE and RKISP1_EXT_PARAMS_FL_BLOCK_DISABLE bits | |
| 1118 | * in the @flags field. | |
| 1119 | * | |
| 1120 | * Setting both the RKISP1_EXT_PARAMS_FL_BLOCK_ENABLE and | |
| 1121 | * RKISP1_EXT_PARAMS_FL_BLOCK_DISABLE bits in the @flags field is not allowed | |
| 1122 | * and not accepted by the driver. | |
| 1123 | * | |
| 1124 | * Userspace is responsible for correctly populating the parameters block header | |
| 1125 | * fields (@type, @flags and @size) and the block-specific parameters. | |
| 1126 | * | |
| 1127 | * For example: | |
| 1128 | * | |
| 1129 | * .. code-block:: c | |
| 1130 | * | |
| 1131 | *	void populate_bls(struct rkisp1_ext_params_block_header *block) { | |
| 1132 | *		struct rkisp1_ext_params_bls_config *bls = | |
| 1133 | *			(struct rkisp1_ext_params_bls_config *)block; | |
| 1134 | * | |
| 1135 | *		bls->header.type = RKISP1_EXT_PARAMS_BLOCK_ID_BLS; | |
| 1136 | *		bls->header.flags = RKISP1_EXT_PARAMS_FL_BLOCK_ENABLE; | |
| 1137 | *		bls->header.size = sizeof(*bls); | |
| 1138 | * | |
| 1139 | *		bls->config.enable_auto = 0; | |
| 1140 | *		bls->config.fixed_val.r = blackLevelRed_; | |
| 1141 | *		bls->config.fixed_val.gr = blackLevelGreenR_; | |
| 1142 | *		bls->config.fixed_val.gb = blackLevelGreenB_; | |
| 1143 | *		bls->config.fixed_val.b = blackLevelBlue_; | |
| 1144 | *	} | |
| 1145 | * | |
| 1146 | * @type: The parameters block type, see | |
| 1147 | *	 :c:type:`rkisp1_ext_params_block_type` | |
| 1148 | * @flags: A bitmask of block flags | |
| 1149 | * @size: Size (in bytes) of the parameters block, including this header | |
| 1150 | */ | |
| 1151 | struct rkisp1_ext_params_block_header { | |
| 1152 | 	__u16 type; | |
| 1153 | 	__u16 flags; | |
| 1154 | 	__u32 size; | |
| 1155 | }; | |
| 1156 | ||
| 1157 | /** | |
| 1158 | * struct rkisp1_ext_params_bls_config - RkISP1 extensible params BLS config | |
| 1159 | * | |
| 1160 | * RkISP1 extensible parameters Black Level Subtraction configuration block. | |
| 1161 | * Identified by :c:type:`RKISP1_EXT_PARAMS_BLOCK_TYPE_BLS`. | |
| 1162 | * | |
| 1163 | * @header: The RkISP1 extensible parameters header, see | |
| 1164 | *	 :c:type:`rkisp1_ext_params_block_header` | |
| 1165 | * @config: Black Level Subtraction configuration, see | |
| 1166 | *	 :c:type:`rkisp1_cif_isp_bls_config` | |
| 1167 | */ | |
| 1168 | struct rkisp1_ext_params_bls_config { | |
| 1169 | 	struct rkisp1_ext_params_block_header header; | |
| 1170 | 	struct rkisp1_cif_isp_bls_config config; | |
| 1171 | } __attribute__((aligned(8))); | |
| 1172 | ||
| 1173 | /** | |
| 1174 | * struct rkisp1_ext_params_dpcc_config - RkISP1 extensible params DPCC config | |
| 1175 | * | |
| 1176 | * RkISP1 extensible parameters Defective Pixel Cluster Correction configuration | |
| 1177 | * block. Identified by :c:type:`RKISP1_EXT_PARAMS_BLOCK_TYPE_DPCC`. | |
| 1178 | * | |
| 1179 | * @header: The RkISP1 extensible parameters header, see | |
| 1180 | *	 :c:type:`rkisp1_ext_params_block_header` | |
| 1181 | * @config: Defective Pixel Cluster Correction configuration, see | |
| 1182 | *	 :c:type:`rkisp1_cif_isp_dpcc_config` | |
| 1183 | */ | |
| 1184 | struct rkisp1_ext_params_dpcc_config { | |
| 1185 | 	struct rkisp1_ext_params_block_header header; | |
| 1186 | 	struct rkisp1_cif_isp_dpcc_config config; | |
| 1187 | } __attribute__((aligned(8))); | |
| 1188 | ||
| 1189 | /** | |
| 1190 | * struct rkisp1_ext_params_sdg_config - RkISP1 extensible params SDG config | |
| 1191 | * | |
| 1192 | * RkISP1 extensible parameters Sensor Degamma configuration block. Identified | |
| 1193 | * by :c:type:`RKISP1_EXT_PARAMS_BLOCK_TYPE_SDG`. | |
| 1194 | * | |
| 1195 | * @header: The RkISP1 extensible parameters header, see | |
| 1196 | *	 :c:type:`rkisp1_ext_params_block_header` | |
| 1197 | * @config: Sensor Degamma configuration, see | |
| 1198 | *	 :c:type:`rkisp1_cif_isp_sdg_config` | |
| 1199 | */ | |
| 1200 | struct rkisp1_ext_params_sdg_config { | |
| 1201 | 	struct rkisp1_ext_params_block_header header; | |
| 1202 | 	struct rkisp1_cif_isp_sdg_config config; | |
| 1203 | } __attribute__((aligned(8))); | |
| 1204 | ||
| 1205 | /** | |
| 1206 | * struct rkisp1_ext_params_lsc_config - RkISP1 extensible params LSC config | |
| 1207 | * | |
| 1208 | * RkISP1 extensible parameters Lens Shading Correction configuration block. | |
| 1209 | * Identified by :c:type:`RKISP1_EXT_PARAMS_BLOCK_TYPE_LSC`. | |
| 1210 | * | |
| 1211 | * @header: The RkISP1 extensible parameters header, see | |
| 1212 | *	 :c:type:`rkisp1_ext_params_block_header` | |
| 1213 | * @config: Lens Shading Correction configuration, see | |
| 1214 | *	 :c:type:`rkisp1_cif_isp_lsc_config` | |
| 1215 | */ | |
| 1216 | struct rkisp1_ext_params_lsc_config { | |
| 1217 | 	struct rkisp1_ext_params_block_header header; | |
| 1218 | 	struct rkisp1_cif_isp_lsc_config config; | |
| 1219 | } __attribute__((aligned(8))); | |
| 1220 | ||
| 1221 | /** | |
| 1222 | * struct rkisp1_ext_params_awb_gain_config - RkISP1 extensible params AWB | |
| 1223 | *					 gain config | |
| 1224 | * | |
| 1225 | * RkISP1 extensible parameters Auto-White Balance Gains configuration block. | |
| 1226 | * Identified by :c:type:`RKISP1_EXT_PARAMS_BLOCK_TYPE_AWB_GAIN`. | |
| 1227 | * | |
| 1228 | * @header: The RkISP1 extensible parameters header, see | |
| 1229 | *	 :c:type:`rkisp1_ext_params_block_header` | |
| 1230 | * @config: Auto-White Balance Gains configuration, see | |
| 1231 | *	 :c:type:`rkisp1_cif_isp_awb_gain_config` | |
| 1232 | */ | |
| 1233 | struct rkisp1_ext_params_awb_gain_config { | |
| 1234 | 	struct rkisp1_ext_params_block_header header; | |
| 1235 | 	struct rkisp1_cif_isp_awb_gain_config config; | |
| 1236 | } __attribute__((aligned(8))); | |
| 1237 | ||
| 1238 | /** | |
| 1239 | * struct rkisp1_ext_params_flt_config - RkISP1 extensible params FLT config | |
| 1240 | * | |
| 1241 | * RkISP1 extensible parameters Filter configuration block. Identified by | |
| 1242 | * :c:type:`RKISP1_EXT_PARAMS_BLOCK_TYPE_FLT`. | |
| 1243 | * | |
| 1244 | * @header: The RkISP1 extensible parameters header, see | |
| 1245 | *	 :c:type:`rkisp1_ext_params_block_header` | |
| 1246 | * @config: Filter configuration, see :c:type:`rkisp1_cif_isp_flt_config` | |
| 1247 | */ | |
| 1248 | struct rkisp1_ext_params_flt_config { | |
| 1249 | 	struct rkisp1_ext_params_block_header header; | |
| 1250 | 	struct rkisp1_cif_isp_flt_config config; | |
| 1251 | } __attribute__((aligned(8))); | |
| 1252 | ||
| 1253 | /** | |
| 1254 | * struct rkisp1_ext_params_bdm_config - RkISP1 extensible params BDM config | |
| 1255 | * | |
| 1256 | * RkISP1 extensible parameters Demosaicing configuration block. Identified by | |
| 1257 | * :c:type:`RKISP1_EXT_PARAMS_BLOCK_TYPE_BDM`. | |
| 1258 | * | |
| 1259 | * @header: The RkISP1 extensible parameters header, see | |
| 1260 | *	 :c:type:`rkisp1_ext_params_block_header` | |
| 1261 | * @config: Demosaicing configuration, see :c:type:`rkisp1_cif_isp_bdm_config` | |
| 1262 | */ | |
| 1263 | struct rkisp1_ext_params_bdm_config { | |
| 1264 | 	struct rkisp1_ext_params_block_header header; | |
| 1265 | 	struct rkisp1_cif_isp_bdm_config config; | |
| 1266 | } __attribute__((aligned(8))); | |
| 1267 | ||
| 1268 | /** | |
| 1269 | * struct rkisp1_ext_params_ctk_config - RkISP1 extensible params CTK config | |
| 1270 | * | |
| 1271 | * RkISP1 extensible parameters Cross-Talk configuration block. Identified by | |
| 1272 | * :c:type:`RKISP1_EXT_PARAMS_BLOCK_TYPE_CTK`. | |
| 1273 | * | |
| 1274 | * @header: The RkISP1 extensible parameters header, see | |
| 1275 | *	 :c:type:`rkisp1_ext_params_block_header` | |
| 1276 | * @config: Cross-Talk configuration, see :c:type:`rkisp1_cif_isp_ctk_config` | |
| 1277 | */ | |
| 1278 | struct rkisp1_ext_params_ctk_config { | |
| 1279 | 	struct rkisp1_ext_params_block_header header; | |
| 1280 | 	struct rkisp1_cif_isp_ctk_config config; | |
| 1281 | } __attribute__((aligned(8))); | |
| 1282 | ||
| 1283 | /** | |
| 1284 | * struct rkisp1_ext_params_goc_config - RkISP1 extensible params GOC config | |
| 1285 | * | |
| 1286 | * RkISP1 extensible parameters Gamma-Out configuration block. Identified by | |
| 1287 | * :c:type:`RKISP1_EXT_PARAMS_BLOCK_TYPE_GOC`. | |
| 1288 | * | |
| 1289 | * @header: The RkISP1 extensible parameters header, see | |
| 1290 | *	 :c:type:`rkisp1_ext_params_block_header` | |
| 1291 | * @config: Gamma-Out configuration, see :c:type:`rkisp1_cif_isp_goc_config` | |
| 1292 | */ | |
| 1293 | struct rkisp1_ext_params_goc_config { | |
| 1294 | 	struct rkisp1_ext_params_block_header header; | |
| 1295 | 	struct rkisp1_cif_isp_goc_config config; | |
| 1296 | } __attribute__((aligned(8))); | |
| 1297 | ||
| 1298 | /** | |
| 1299 | * struct rkisp1_ext_params_dpf_config - RkISP1 extensible params DPF config | |
| 1300 | * | |
| 1301 | * RkISP1 extensible parameters De-noise Pre-Filter configuration block. | |
| 1302 | * Identified by :c:type:`RKISP1_EXT_PARAMS_BLOCK_TYPE_DPF`. | |
| 1303 | * | |
| 1304 | * @header: The RkISP1 extensible parameters header, see | |
| 1305 | *	 :c:type:`rkisp1_ext_params_block_header` | |
| 1306 | * @config: De-noise Pre-Filter configuration, see | |
| 1307 | *	 :c:type:`rkisp1_cif_isp_dpf_config` | |
| 1308 | */ | |
| 1309 | struct rkisp1_ext_params_dpf_config { | |
| 1310 | 	struct rkisp1_ext_params_block_header header; | |
| 1311 | 	struct rkisp1_cif_isp_dpf_config config; | |
| 1312 | } __attribute__((aligned(8))); | |
| 1313 | ||
| 1314 | /** | |
| 1315 | * struct rkisp1_ext_params_dpf_strength_config - RkISP1 extensible params DPF | |
| 1316 | *						 strength config | |
| 1317 | * | |
| 1318 | * RkISP1 extensible parameters De-noise Pre-Filter strength configuration | |
| 1319 | * block. Identified by :c:type:`RKISP1_EXT_PARAMS_BLOCK_TYPE_DPF_STRENGTH`. | |
| 1320 | * | |
| 1321 | * @header: The RkISP1 extensible parameters header, see | |
| 1322 | *	 :c:type:`rkisp1_ext_params_block_header` | |
| 1323 | * @config: De-noise Pre-Filter strength configuration, see | |
| 1324 | *	 :c:type:`rkisp1_cif_isp_dpf_strength_config` | |
| 1325 | */ | |
| 1326 | struct rkisp1_ext_params_dpf_strength_config { | |
| 1327 | 	struct rkisp1_ext_params_block_header header; | |
| 1328 | 	struct rkisp1_cif_isp_dpf_strength_config config; | |
| 1329 | } __attribute__((aligned(8))); | |
| 1330 | ||
| 1331 | /** | |
| 1332 | * struct rkisp1_ext_params_cproc_config - RkISP1 extensible params CPROC config | |
| 1333 | * | |
| 1334 | * RkISP1 extensible parameters Color Processing configuration block. | |
| 1335 | * Identified by :c:type:`RKISP1_EXT_PARAMS_BLOCK_TYPE_CPROC`. | |
| 1336 | * | |
| 1337 | * @header: The RkISP1 extensible parameters header, see | |
| 1338 | *	 :c:type:`rkisp1_ext_params_block_header` | |
| 1339 | * @config: Color processing configuration, see | |
| 1340 | *	 :c:type:`rkisp1_cif_isp_cproc_config` | |
| 1341 | */ | |
| 1342 | struct rkisp1_ext_params_cproc_config { | |
| 1343 | 	struct rkisp1_ext_params_block_header header; | |
| 1344 | 	struct rkisp1_cif_isp_cproc_config config; | |
| 1345 | } __attribute__((aligned(8))); | |
| 1346 | ||
| 1347 | /** | |
| 1348 | * struct rkisp1_ext_params_ie_config - RkISP1 extensible params IE config | |
| 1349 | * | |
| 1350 | * RkISP1 extensible parameters Image Effect configuration block. Identified by | |
| 1351 | * :c:type:`RKISP1_EXT_PARAMS_BLOCK_TYPE_IE`. | |
| 1352 | * | |
| 1353 | * @header: The RkISP1 extensible parameters header, see | |
| 1354 | *	 :c:type:`rkisp1_ext_params_block_header` | |
| 1355 | * @config: Image Effect configuration, see :c:type:`rkisp1_cif_isp_ie_config` | |
| 1356 | */ | |
| 1357 | struct rkisp1_ext_params_ie_config { | |
| 1358 | 	struct rkisp1_ext_params_block_header header; | |
| 1359 | 	struct rkisp1_cif_isp_ie_config config; | |
| 1360 | } __attribute__((aligned(8))); | |
| 1361 | ||
| 1362 | /** | |
| 1363 | * struct rkisp1_ext_params_awb_meas_config - RkISP1 extensible params AWB | |
| 1364 | *					 Meas config | |
| 1365 | * | |
| 1366 | * RkISP1 extensible parameters Auto-White Balance Measurement configuration | |
| 1367 | * block. Identified by :c:type:`RKISP1_EXT_PARAMS_BLOCK_TYPE_AWB_MEAS`. | |
| 1368 | * | |
| 1369 | * @header: The RkISP1 extensible parameters header, see | |
| 1370 | *	 :c:type:`rkisp1_ext_params_block_header` | |
| 1371 | * @config: Auto-White Balance measure configuration, see | |
| 1372 | *	 :c:type:`rkisp1_cif_isp_awb_meas_config` | |
| 1373 | */ | |
| 1374 | struct rkisp1_ext_params_awb_meas_config { | |
| 1375 | 	struct rkisp1_ext_params_block_header header; | |
| 1376 | 	struct rkisp1_cif_isp_awb_meas_config config; | |
| 1377 | } __attribute__((aligned(8))); | |
| 1378 | ||
| 1379 | /** | |
| 1380 | * struct rkisp1_ext_params_hst_config - RkISP1 extensible params Histogram config | |
| 1381 | * | |
| 1382 | * RkISP1 extensible parameters Histogram statistics configuration block. | |
| 1383 | * Identified by :c:type:`RKISP1_EXT_PARAMS_BLOCK_TYPE_HST_MEAS`. | |
| 1384 | * | |
| 1385 | * @header: The RkISP1 extensible parameters header, see | |
| 1386 | *	 :c:type:`rkisp1_ext_params_block_header` | |
| 1387 | * @config: Histogram statistics configuration, see | |
| 1388 | *	 :c:type:`rkisp1_cif_isp_hst_config` | |
| 1389 | */ | |
| 1390 | struct rkisp1_ext_params_hst_config { | |
| 1391 | 	struct rkisp1_ext_params_block_header header; | |
| 1392 | 	struct rkisp1_cif_isp_hst_config config; | |
| 1393 | } __attribute__((aligned(8))); | |
| 1394 | ||
| 1395 | /** | |
| 1396 | * struct rkisp1_ext_params_aec_config - RkISP1 extensible params AEC config | |
| 1397 | * | |
| 1398 | * RkISP1 extensible parameters Auto-Exposure statistics configuration block. | |
| 1399 | * Identified by :c:type:`RKISP1_EXT_PARAMS_BLOCK_TYPE_AEC_MEAS`. | |
| 1400 | * | |
| 1401 | * @header: The RkISP1 extensible parameters header, see | |
| 1402 | *	 :c:type:`rkisp1_ext_params_block_header` | |
| 1403 | * @config: Auto-Exposure statistics configuration, see | |
| 1404 | *	 :c:type:`rkisp1_cif_isp_aec_config` | |
| 1405 | */ | |
| 1406 | struct rkisp1_ext_params_aec_config { | |
| 1407 | 	struct rkisp1_ext_params_block_header header; | |
| 1408 | 	struct rkisp1_cif_isp_aec_config config; | |
| 1409 | } __attribute__((aligned(8))); | |
| 1410 | ||
| 1411 | /** | |
| 1412 | * struct rkisp1_ext_params_afc_config - RkISP1 extensible params AFC config | |
| 1413 | * | |
| 1414 | * RkISP1 extensible parameters Auto-Focus statistics configuration block. | |
| 1415 | * Identified by :c:type:`RKISP1_EXT_PARAMS_BLOCK_TYPE_AFC_MEAS`. | |
| 1416 | * | |
| 1417 | * @header: The RkISP1 extensible parameters header, see | |
| 1418 | *	 :c:type:`rkisp1_ext_params_block_header` | |
| 1419 | * @config: Auto-Focus statistics configuration, see | |
| 1420 | *	 :c:type:`rkisp1_cif_isp_afc_config` | |
| 1421 | */ | |
| 1422 | struct rkisp1_ext_params_afc_config { | |
| 1423 | 	struct rkisp1_ext_params_block_header header; | |
| 1424 | 	struct rkisp1_cif_isp_afc_config config; | |
| 1425 | } __attribute__((aligned(8))); | |
| 1426 | ||
| 1427 | /** | |
| 1428 | * struct rkisp1_ext_params_compand_bls_config - RkISP1 extensible params | |
| 1429 | * Compand BLS config | |
| 1430 | * | |
| 1431 | * RkISP1 extensible parameters Companding configuration block (black level | |
| 1432 | * subtraction). Identified by :c:type:`RKISP1_EXT_PARAMS_BLOCK_TYPE_COMPAND_BLS`. | |
| 1433 | * | |
| 1434 | * @header: The RkISP1 extensible parameters header, see | |
| 1435 | *	 :c:type:`rkisp1_ext_params_block_header` | |
| 1436 | * @config: Companding BLS configuration, see | |
| 1437 | *	 :c:type:`rkisp1_cif_isp_compand_bls_config` | |
| 1438 | */ | |
| 1439 | struct rkisp1_ext_params_compand_bls_config { | |
| 1440 | 	struct rkisp1_ext_params_block_header header; | |
| 1441 | 	struct rkisp1_cif_isp_compand_bls_config config; | |
| 1442 | } __attribute__((aligned(8))); | |
| 1443 | ||
| 1444 | /** | |
| 1445 | * struct rkisp1_ext_params_compand_curve_config - RkISP1 extensible params | |
| 1446 | * Compand curve config | |
| 1447 | * | |
| 1448 | * RkISP1 extensible parameters Companding configuration block (expand and | |
| 1449 | * compression curves). Identified by | |
| 1450 | * :c:type:`RKISP1_EXT_PARAMS_BLOCK_TYPE_COMPAND_EXPAND` or | |
| 1451 | * :c:type:`RKISP1_EXT_PARAMS_BLOCK_TYPE_COMPAND_COMPRESS`. | |
| 1452 | * | |
| 1453 | * @header: The RkISP1 extensible parameters header, see | |
| 1454 | *	 :c:type:`rkisp1_ext_params_block_header` | |
| 1455 | * @config: Companding curve configuration, see | |
| 1456 | *	 :c:type:`rkisp1_cif_isp_compand_curve_config` | |
| 1457 | */ | |
| 1458 | struct rkisp1_ext_params_compand_curve_config { | |
| 1459 | 	struct rkisp1_ext_params_block_header header; | |
| 1460 | 	struct rkisp1_cif_isp_compand_curve_config config; | |
| 1461 | } __attribute__((aligned(8))); | |
| 1462 | ||
| 1463 | /* | |
| 1464 | * The rkisp1_ext_params_compand_curve_config structure is counted twice as it | |
| 1465 | * is used for both the COMPAND_EXPAND and COMPAND_COMPRESS block types. | |
| 1466 | */ | |
| 1467 | #define RKISP1_EXT_PARAMS_MAX_SIZE					\ | |
| 1468 | 	(sizeof(struct rkisp1_ext_params_bls_config)			+\ | |
| 1469 | 	sizeof(struct rkisp1_ext_params_dpcc_config)			+\ | |
| 1470 | 	sizeof(struct rkisp1_ext_params_sdg_config)			+\ | |
| 1471 | 	sizeof(struct rkisp1_ext_params_lsc_config)			+\ | |
| 1472 | 	sizeof(struct rkisp1_ext_params_awb_gain_config)		+\ | |
| 1473 | 	sizeof(struct rkisp1_ext_params_flt_config)			+\ | |
| 1474 | 	sizeof(struct rkisp1_ext_params_bdm_config)			+\ | |
| 1475 | 	sizeof(struct rkisp1_ext_params_ctk_config)			+\ | |
| 1476 | 	sizeof(struct rkisp1_ext_params_goc_config)			+\ | |
| 1477 | 	sizeof(struct rkisp1_ext_params_dpf_config)			+\ | |
| 1478 | 	sizeof(struct rkisp1_ext_params_dpf_strength_config)		+\ | |
| 1479 | 	sizeof(struct rkisp1_ext_params_cproc_config)			+\ | |
| 1480 | 	sizeof(struct rkisp1_ext_params_ie_config)			+\ | |
| 1481 | 	sizeof(struct rkisp1_ext_params_awb_meas_config)		+\ | |
| 1482 | 	sizeof(struct rkisp1_ext_params_hst_config)			+\ | |
| 1483 | 	sizeof(struct rkisp1_ext_params_aec_config)			+\ | |
| 1484 | 	sizeof(struct rkisp1_ext_params_afc_config)			+\ | |
| 1485 | 	sizeof(struct rkisp1_ext_params_compand_bls_config)		+\ | |
| 1486 | 	sizeof(struct rkisp1_ext_params_compand_curve_config)		+\ | |
| 1487 | 	sizeof(struct rkisp1_ext_params_compand_curve_config)) | |
| 1488 | ||
| 1489 | /** | |
| 1490 | * enum rksip1_ext_param_buffer_version - RkISP1 extensible parameters version | |
| 1491 | * | |
| 1492 | * @RKISP1_EXT_PARAM_BUFFER_V1: First version of RkISP1 extensible parameters | |
| 1493 | */ | |
| 1494 | enum rksip1_ext_param_buffer_version { | |
| 1495 | 	RKISP1_EXT_PARAM_BUFFER_V1 = 1, | |
| 1496 | }; | |
| 1497 | ||
| 1498 | /** | |
| 1499 | * struct rkisp1_ext_params_cfg - RkISP1 extensible parameters configuration | |
| 1500 | * | |
| 1501 | * This struct contains the configuration parameters of the RkISP1 ISP | |
| 1502 | * algorithms, serialized by userspace into a data buffer. Each configuration | |
| 1503 | * parameter block is represented by a block-specific structure which contains a | |
| 1504 | * :c:type:`rkisp1_ext_params_block_header` entry as first member. Userspace | |
| 1505 | * populates the @data buffer with configuration parameters for the blocks that | |
| 1506 | * it intends to configure. As a consequence, the data buffer effective size | |
| 1507 | * changes according to the number of ISP blocks that userspace intends to | |
| 1508 | * configure and is set by userspace in the @data_size field. | |
| 1509 | * | |
| 1510 | * The parameters buffer is versioned by the @version field to allow modifying | |
| 1511 | * and extending its definition. Userspace shall populate the @version field to | |
| 1512 | * inform the driver about the version it intends to use. The driver will parse | |
| 1513 | * and handle the @data buffer according to the data layout specific to the | |
| 1514 | * indicated version and return an error if the desired version is not | |
| 1515 | * supported. | |
| 1516 | * | |
| 1517 | * Currently the single RKISP1_EXT_PARAM_BUFFER_V1 version is supported. | |
| 1518 | * When a new format version will be added, a mechanism for userspace to query | |
| 1519 | * the supported format versions will be implemented in the form of a read-only | |
| 1520 | * V4L2 control. If such control is not available, userspace should assume only | |
| 1521 | * RKISP1_EXT_PARAM_BUFFER_V1 is supported by the driver. | |
| 1522 | * | |
| 1523 | * For each ISP block that userspace wants to configure, a block-specific | |
| 1524 | * structure is appended to the @data buffer, one after the other without gaps | |
| 1525 | * in between nor overlaps. Userspace shall populate the @data_size field with | |
| 1526 | * the effective size, in bytes, of the @data buffer. | |
| 1527 | * | |
| 1528 | * The expected memory layout of the parameters buffer is:: | |
| 1529 | * | |
| 1530 | *	+-------------------- struct rkisp1_ext_params_cfg -------------------+ | |
| 1531 | *	| version = RKISP_EXT_PARAMS_BUFFER_V1; | | |
| 1532 | *	| data_size = sizeof(struct rkisp1_ext_params_bls_config) | | |
| 1533 | *	| + sizeof(struct rkisp1_ext_params_dpcc_config); | | |
| 1534 | *	| +------------------------- data ---------------------------------+ | | |
| 1535 | *	| | +------------- struct rkisp1_ext_params_bls_config -----------+ | | | |
| 1536 | *	| | | +-------- struct rkisp1_ext_params_block_header ---------+ | | | | |
| 1537 | *	| | | | type = RKISP1_EXT_PARAMS_BLOCK_TYPE_BLS; | | | | | |
| 1538 | *	| | | | flags = RKISP1_EXT_PARAMS_FL_BLOCK_ENABLE; | | | | | |
| 1539 | *	| | | | size = sizeof(struct rkisp1_ext_params_bls_config); | | | | | |
| 1540 | *	| | | +---------------------------------------------------------+ | | | | |
| 1541 | *	| | | +---------- struct rkisp1_cif_isp_bls_config -------------+ | | | | |
| 1542 | *	| | | | enable_auto = 0; | | | | | |
| 1543 | *	| | | | fixed_val.r = 256; | | | | | |
| 1544 | *	| | | | fixed_val.gr = 256; | | | | | |
| 1545 | *	| | | | fixed_val.gb = 256; | | | | | |
| 1546 | *	| | | | fixed_val.b = 256; | | | | | |
| 1547 | *	| | | +---------------------------------------------------------+ | | | | |
| 1548 | *	| | +------------ struct rkisp1_ext_params_dpcc_config -----------+ | | | |
| 1549 | *	| | | +-------- struct rkisp1_ext_params_block_header ---------+ | | | | |
| 1550 | *	| | | | type = RKISP1_EXT_PARAMS_BLOCK_TYPE_DPCC; | | | | | |
| 1551 | *	| | | | flags = RKISP1_EXT_PARAMS_FL_BLOCK_ENABLE; | | | | | |
| 1552 | *	| | | | size = sizeof(struct rkisp1_ext_params_dpcc_config); | | | | | |
| 1553 | *	| | | +---------------------------------------------------------+ | | | | |
| 1554 | *	| | | +---------- struct rkisp1_cif_isp_dpcc_config ------------+ | | | | |
| 1555 | *	| | | | mode = RKISP1_CIF_ISP_DPCC_MODE_STAGE1_ENABLE; | | | | | |
| 1556 | *	| | | | output_mode = | | | | | |
| 1557 | *	| | | | RKISP1_CIF_ISP_DPCC_OUTPUT_MODE_STAGE1_INCL_G_CENTER; | | | | | |
| 1558 | *	| | | | set_use = ... ; | | | | | |
| 1559 | *	| | | | ... = ... ; | | | | | |
| 1560 | *	| | | +---------------------------------------------------------+ | | | | |
| 1561 | *	| | +-------------------------------------------------------------+ | | | |
| 1562 | *	| +-----------------------------------------------------------------+ | | |
| 1563 | *	+---------------------------------------------------------------------+ | |
| 1564 | * | |
| 1565 | * @version: The RkISP1 extensible parameters buffer version, see | |
| 1566 | *	 :c:type:`rksip1_ext_param_buffer_version` | |
| 1567 | * @data_size: The RkISP1 configuration data effective size, excluding this | |
| 1568 | *	 header | |
| 1569 | * @data: The RkISP1 extensible configuration data blocks | |
| 1570 | */ | |
| 1571 | struct rkisp1_ext_params_cfg { | |
| 1572 | 	__u32 version; | |
| 1573 | 	__u32 data_size; | |
| 1574 | 	__u8 data[RKISP1_EXT_PARAMS_MAX_SIZE]; | |
| 1575 | }; | |
| 1576 | ||
| 999 | 1577 | #endif /* _RKISP1_CONFIG_H */ |
| \ No newline at end of file |
lib/libc/include/any-linux-any/linux/rtnetlink.h+1-1| ... | ... | @@ -174,7 +174,7 @@ enum { |
| 174 | 174 | #define RTM_GETLINKPROP	RTM_GETLINKPROP |
| 175 | 175 | |
| 176 | 176 | 	RTM_NEWVLAN = 112, |
| 177 | #define RTM_NEWNVLAN	RTM_NEWVLAN | |
| 177 | #define RTM_NEWVLAN	RTM_NEWVLAN | |
| 178 | 178 | 	RTM_DELVLAN, |
| 179 | 179 | #define RTM_DELVLAN	RTM_DELVLAN |
| 180 | 180 | 	RTM_GETVLAN, |
lib/libc/include/any-linux-any/linux/sched.h+1| ... | ... | @@ -118,6 +118,7 @@ struct clone_args { |
| 118 | 118 | /* SCHED_ISO: reserved but not implemented yet */ |
| 119 | 119 | #define SCHED_IDLE		5 |
| 120 | 120 | #define SCHED_DEADLINE		6 |
| 121 | #define SCHED_EXT		7 | |
| 121 | 122 | |
| 122 | 123 | /* Can be ORed in to make sure the process is reverted back to SCHED_NORMAL on fork */ |
| 123 | 124 | #define SCHED_RESET_ON_FORK 0x40000000 |
lib/libc/include/any-linux-any/linux/sched/types.h+3-3| ... | ... | @@ -58,9 +58,9 @@ |
| 58 | 58 | * |
| 59 | 59 | * This is reflected by the following fields of the sched_attr structure: |
| 60 | 60 | * |
| 61 | * @sched_deadline	representative of the task's deadline | |
| 62 | * @sched_runtime	representative of the task's runtime | |
| 63 | * @sched_period	representative of the task's period | |
| 61 | * @sched_deadline	representative of the task's deadline in nanoseconds | |
| 62 | * @sched_runtime	representative of the task's runtime in nanoseconds | |
| 63 | * @sched_period	representative of the task's period in nanoseconds | |
| 64 | 64 | * |
| 65 | 65 | * Given this task model, there are a multiplicity of scheduling algorithms |
| 66 | 66 | * and policies, that can be used to ensure all the tasks will make their |
lib/libc/include/any-linux-any/linux/sed-opal.h+1| ... | ... | @@ -215,5 +215,6 @@ struct opal_revert_lsp { |
| 215 | 215 | #define IOC_OPAL_GET_GEOMETRY _IOR('p', 238, struct opal_geometry) |
| 216 | 216 | #define IOC_OPAL_DISCOVERY _IOW('p', 239, struct opal_discovery) |
| 217 | 217 | #define IOC_OPAL_REVERT_LSP _IOW('p', 240, struct opal_revert_lsp) |
| 218 | #define IOC_OPAL_SET_SID_PW _IOW('p', 241, struct opal_new_pw) | |
| 218 | 219 | |
| 219 | 220 | #endif /* _SED_OPAL_H */ |
| \ No newline at end of file |
lib/libc/include/any-linux-any/linux/serio.h+1| ... | ... | @@ -83,5 +83,6 @@ |
| 83 | 83 | #define SERIO_PULSE8_CEC	0x40 |
| 84 | 84 | #define SERIO_RAINSHADOW_CEC	0x41 |
| 85 | 85 | #define SERIO_FSIA6B	0x42 |
| 86 | #define SERIO_EXTRON_DA_HD_4K_PLUS	0x43 | |
| 86 | 87 | |
| 87 | 88 | #endif /* _SERIO_H */ |
| \ No newline at end of file |
lib/libc/include/any-linux-any/linux/sev-guest.h+3| ... | ... | @@ -89,6 +89,9 @@ struct snp_ext_report_req { |
| 89 | 89 | #define SNP_GUEST_FW_ERR_MASK		GENMASK_ULL(31, 0) |
| 90 | 90 | #define SNP_GUEST_VMM_ERR_SHIFT		32 |
| 91 | 91 | #define SNP_GUEST_VMM_ERR(x)		(((u64)x) << SNP_GUEST_VMM_ERR_SHIFT) |
| 92 | #define SNP_GUEST_FW_ERR(x)		((x) & SNP_GUEST_FW_ERR_MASK) | |
| 93 | #define SNP_GUEST_ERR(vmm_err, fw_err)	(SNP_GUEST_VMM_ERR(vmm_err) | \ | |
| 94 | 					 SNP_GUEST_FW_ERR(fw_err)) | |
| 92 | 95 | |
| 93 | 96 | #define SNP_GUEST_VMM_ERR_INVALID_LEN	1 |
| 94 | 97 | #define SNP_GUEST_VMM_ERR_BUSY		2 |
lib/libc/include/any-linux-any/linux/smc.h+6| ... | ... | @@ -127,6 +127,8 @@ enum { |
| 127 | 127 | 	SMC_NLA_LGR_R_NET_COOKIE,	/* u64 */ |
| 128 | 128 | 	SMC_NLA_LGR_R_PAD,		/* flag */ |
| 129 | 129 | 	SMC_NLA_LGR_R_BUF_TYPE,		/* u8 */ |
| 130 | 	SMC_NLA_LGR_R_SNDBUF_ALLOC,	/* uint */ | |
| 131 | 	SMC_NLA_LGR_R_RMB_ALLOC,	/* uint */ | |
| 130 | 132 | 	__SMC_NLA_LGR_R_MAX, |
| 131 | 133 | 	SMC_NLA_LGR_R_MAX = __SMC_NLA_LGR_R_MAX - 1 |
| 132 | 134 | }; |
| ... | ... | @@ -162,6 +164,8 @@ enum { |
| 162 | 164 | 	SMC_NLA_LGR_D_V2_COMMON,	/* nest */ |
| 163 | 165 | 	SMC_NLA_LGR_D_EXT_GID,		/* u64 */ |
| 164 | 166 | 	SMC_NLA_LGR_D_PEER_EXT_GID,	/* u64 */ |
| 167 | 	SMC_NLA_LGR_D_SNDBUF_ALLOC,	/* uint */ | |
| 168 | 	SMC_NLA_LGR_D_DMB_ALLOC,	/* uint */ | |
| 165 | 169 | 	__SMC_NLA_LGR_D_MAX, |
| 166 | 170 | 	SMC_NLA_LGR_D_MAX = __SMC_NLA_LGR_D_MAX - 1 |
| 167 | 171 | }; |
| ... | ... | @@ -249,6 +253,8 @@ enum { |
| 249 | 253 | 	SMC_NLA_STATS_T_TX_BYTES,	/* u64 */ |
| 250 | 254 | 	SMC_NLA_STATS_T_RX_CNT,		/* u64 */ |
| 251 | 255 | 	SMC_NLA_STATS_T_TX_CNT,		/* u64 */ |
| 256 | 	SMC_NLA_STATS_T_RX_RMB_USAGE,	/* uint */ | |
| 257 | 	SMC_NLA_STATS_T_TX_RMB_USAGE,	/* uint */ | |
| 252 | 258 | 	__SMC_NLA_STATS_T_MAX, |
| 253 | 259 | 	SMC_NLA_STATS_T_MAX = __SMC_NLA_STATS_T_MAX - 1 |
| 254 | 260 | }; |
lib/libc/include/any-linux-any/linux/spi/spi.h+3-2| ... | ... | @@ -28,7 +28,8 @@ |
| 28 | 28 | #define	SPI_RX_OCTAL		_BITUL(14)	/* receive with 8 wires */ |
| 29 | 29 | #define	SPI_3WIRE_HIZ		_BITUL(15)	/* high impedance turnaround */ |
| 30 | 30 | #define	SPI_RX_CPHA_FLIP	_BITUL(16)	/* flip CPHA on Rx only xfer */ |
| 31 | #define SPI_MOSI_IDLE_LOW	_BITUL(17)	/* leave mosi line low when idle */ | |
| 31 | #define SPI_MOSI_IDLE_LOW	_BITUL(17)	/* leave MOSI line low when idle */ | |
| 32 | #define SPI_MOSI_IDLE_HIGH	_BITUL(18)	/* leave MOSI line high when idle */ | |
| 32 | 33 | |
| 33 | 34 | /* |
| 34 | 35 | * All the bits defined above should be covered by SPI_MODE_USER_MASK. |
| ... | ... | @@ -38,6 +39,6 @@ |
| 38 | 39 | * These bits must not overlap. A static assert check should make sure of that. |
| 39 | 40 | * If adding extra bits, make sure to increase the bit index below as well. |
| 40 | 41 | */ |
| 41 | #define SPI_MODE_USER_MASK	(_BITUL(18) - 1) | |
| 42 | #define SPI_MODE_USER_MASK	(_BITUL(19) - 1) | |
| 42 | 43 | |
| 43 | 44 | #endif /* _SPI_H */ |
| \ No newline at end of file |
lib/libc/include/any-linux-any/linux/stat.h+9-1| ... | ... | @@ -128,7 +128,13 @@ struct statx { |
| 128 | 128 | 	__u32	stx_dio_offset_align;	/* File offset alignment for direct I/O */ |
| 129 | 129 | 	/* 0xa0 */ |
| 130 | 130 | 	__u64	stx_subvol;	/* Subvolume identifier */ |
| 131 | 	__u64	__spare3[11];	/* Spare space for future expansion */ | |
| 131 | 	__u32	stx_atomic_write_unit_min;	/* Min atomic write unit in bytes */ | |
| 132 | 	__u32	stx_atomic_write_unit_max;	/* Max atomic write unit in bytes */ | |
| 133 | 	/* 0xb0 */ | |
| 134 | 	__u32 stx_atomic_write_segments_max;	/* Max atomic write segment count */ | |
| 135 | 	__u32 __spare1[1]; | |
| 136 | 	/* 0xb8 */ | |
| 137 | 	__u64	__spare3[9];	/* Spare space for future expansion */ | |
| 132 | 138 | 	/* 0x100 */ |
| 133 | 139 | }; |
| 134 | 140 | |
| ... | ... | @@ -157,6 +163,7 @@ struct statx { |
| 157 | 163 | #define STATX_DIOALIGN		0x00002000U	/* Want/got direct I/O alignment info */ |
| 158 | 164 | #define STATX_MNT_ID_UNIQUE	0x00004000U	/* Want/got extended stx_mount_id */ |
| 159 | 165 | #define STATX_SUBVOL		0x00008000U	/* Want/got stx_subvol */ |
| 166 | #define STATX_WRITE_ATOMIC	0x00010000U	/* Want/got atomic_write_* fields */ | |
| 160 | 167 | |
| 161 | 168 | #define STATX__RESERVED		0x80000000U	/* Reserved for future struct statx expansion */ |
| 162 | 169 | |
| ... | ... | @@ -190,6 +197,7 @@ struct statx { |
| 190 | 197 | #define STATX_ATTR_MOUNT_ROOT		0x00002000 /* Root of a mount */ |
| 191 | 198 | #define STATX_ATTR_VERITY		0x00100000 /* [I] Verity protected file */ |
| 192 | 199 | #define STATX_ATTR_DAX			0x00200000 /* File is currently in DAX state */ |
| 200 | #define STATX_ATTR_WRITE_ATOMIC		0x00400000 /* File supports atomic write operations */ | |
| 193 | 201 | |
| 194 | 202 | |
| 195 | 203 | #endif /* _LINUX_STAT_H */ |
| \ No newline at end of file |
lib/libc/include/any-linux-any/linux/stddef.h+10-3| ... | ... | @@ -8,6 +8,13 @@ |
| 8 | 8 | #define __always_inline __inline__ |
| 9 | 9 | #endif |
| 10 | 10 | |
| 11 | /* Not all C++ standards support type declarations inside an anonymous union */ | |
| 12 | #ifndef __cplusplus | |
| 13 | #define __struct_group_tag(TAG)		TAG | |
| 14 | #else | |
| 15 | #define __struct_group_tag(TAG) | |
| 16 | #endif | |
| 17 | ||
| 11 | 18 | /** |
| 12 | 19 | * __struct_group() - Create a mirrored named and anonyomous struct |
| 13 | 20 | * |
| ... | ... | @@ -20,13 +27,13 @@ |
| 20 | 27 | * and size: one anonymous and one named. The former's members can be used |
| 21 | 28 | * normally without sub-struct naming, and the latter can be used to |
| 22 | 29 | * reason about the start, end, and size of the group of struct members. |
| 23 | * The named struct can also be explicitly tagged for layer reuse, as well | |
| 24 | * as both having struct attributes appended. | |
| 30 | * The named struct can also be explicitly tagged for layer reuse (C only), | |
| 31 | * as well as both having struct attributes appended. | |
| 25 | 32 | */ |
| 26 | 33 | #define __struct_group(TAG, NAME, ATTRS, MEMBERS...) \ |
| 27 | 34 | 	union { \ |
| 28 | 35 | 		struct { MEMBERS } ATTRS; \ |
| 29 | 		struct TAG { MEMBERS } ATTRS NAME; \ | |
| 36 | 		struct __struct_group_tag(TAG) { MEMBERS } ATTRS NAME; \ | |
| 30 | 37 | 	} ATTRS |
| 31 | 38 | |
| 32 | 39 | #ifdef __cplusplus |
lib/libc/include/any-linux-any/linux/tcp_metrics.h+16| ... | ... | @@ -27,6 +27,22 @@ enum tcp_metric_index { |
| 27 | 27 | |
| 28 | 28 | #define TCP_METRIC_MAX	(__TCP_METRIC_MAX - 1) |
| 29 | 29 | |
| 30 | /* Re-define enum tcp_metric_index, again, using the values carried | |
| 31 | * as netlink attribute types. | |
| 32 | */ | |
| 33 | enum { | |
| 34 | 	TCP_METRICS_A_METRICS_RTT = 1, | |
| 35 | 	TCP_METRICS_A_METRICS_RTTVAR, | |
| 36 | 	TCP_METRICS_A_METRICS_SSTHRESH, | |
| 37 | 	TCP_METRICS_A_METRICS_CWND, | |
| 38 | 	TCP_METRICS_A_METRICS_REODERING, | |
| 39 | 	TCP_METRICS_A_METRICS_RTT_US, | |
| 40 | 	TCP_METRICS_A_METRICS_RTTVAR_US, | |
| 41 | ||
| 42 | 	__TCP_METRICS_A_METRICS_MAX | |
| 43 | }; | |
| 44 | #define TCP_METRICS_A_METRICS_MAX (__TCP_METRICS_A_METRICS_MAX - 1) | |
| 45 | ||
| 30 | 46 | enum { |
| 31 | 47 | 	TCP_METRICS_ATTR_UNSPEC, |
| 32 | 48 | 	TCP_METRICS_ATTR_ADDR_IPV4,		/* u32 */ |
lib/libc/include/any-linux-any/linux/thermal.h+22-7| ... | ... | @@ -3,6 +3,8 @@ |
| 3 | 3 | #define _LINUX_THERMAL_H |
| 4 | 4 | |
| 5 | 5 | #define THERMAL_NAME_LENGTH	20 |
| 6 | #define THERMAL_THRESHOLD_WAY_UP	0x1 | |
| 7 | #define THERMAL_THRESHOLD_WAY_DOWN	0x2 | |
| 6 | 8 | |
| 7 | 9 | enum thermal_device_mode { |
| 8 | 10 | 	THERMAL_DEVICE_DISABLED = 0, |
| ... | ... | @@ -18,7 +20,7 @@ enum thermal_trip_type { |
| 18 | 20 | |
| 19 | 21 | /* Adding event notification support elements */ |
| 20 | 22 | #define THERMAL_GENL_FAMILY_NAME		"thermal" |
| 21 | #define THERMAL_GENL_VERSION			0x01 | |
| 23 | #define THERMAL_GENL_VERSION			0x02 | |
| 22 | 24 | #define THERMAL_GENL_SAMPLING_GROUP_NAME	"sampling" |
| 23 | 25 | #define THERMAL_GENL_EVENT_GROUP_NAME		"event" |
| 24 | 26 | |
| ... | ... | @@ -48,6 +50,10 @@ enum thermal_genl_attr { |
| 48 | 50 | 	THERMAL_GENL_ATTR_CPU_CAPABILITY_ID, |
| 49 | 51 | 	THERMAL_GENL_ATTR_CPU_CAPABILITY_PERFORMANCE, |
| 50 | 52 | 	THERMAL_GENL_ATTR_CPU_CAPABILITY_EFFICIENCY, |
| 53 | 	THERMAL_GENL_ATTR_THRESHOLD, | |
| 54 | 	THERMAL_GENL_ATTR_THRESHOLD_TEMP, | |
| 55 | 	THERMAL_GENL_ATTR_THRESHOLD_DIRECTION, | |
| 56 | 	THERMAL_GENL_ATTR_TZ_PREV_TEMP, | |
| 51 | 57 | 	__THERMAL_GENL_ATTR_MAX, |
| 52 | 58 | }; |
| 53 | 59 | #define THERMAL_GENL_ATTR_MAX (__THERMAL_GENL_ATTR_MAX - 1) |
| ... | ... | @@ -75,6 +81,11 @@ enum thermal_genl_event { |
| 75 | 81 | 	THERMAL_GENL_EVENT_CDEV_STATE_UPDATE,	/* Cdev state updated */ |
| 76 | 82 | 	THERMAL_GENL_EVENT_TZ_GOV_CHANGE,	/* Governor policy changed */ |
| 77 | 83 | 	THERMAL_GENL_EVENT_CPU_CAPABILITY_CHANGE,	/* CPU capability changed */ |
| 84 | 	THERMAL_GENL_EVENT_THRESHOLD_ADD,	/* A thresold has been added */ | |
| 85 | 	THERMAL_GENL_EVENT_THRESHOLD_DELETE,	/* A thresold has been deleted */ | |
| 86 | 	THERMAL_GENL_EVENT_THRESHOLD_FLUSH,	/* All thresolds have been deleted */ | |
| 87 | 	THERMAL_GENL_EVENT_THRESHOLD_UP,	/* A thresold has been crossed the way up */ | |
| 88 | 	THERMAL_GENL_EVENT_THRESHOLD_DOWN,	/* A thresold has been crossed the way down */ | |
| 78 | 89 | 	__THERMAL_GENL_EVENT_MAX, |
| 79 | 90 | }; |
| 80 | 91 | #define THERMAL_GENL_EVENT_MAX (__THERMAL_GENL_EVENT_MAX - 1) |
| ... | ... | @@ -82,12 +93,16 @@ enum thermal_genl_event { |
| 82 | 93 | /* Commands supported by the thermal_genl_family */ |
| 83 | 94 | enum thermal_genl_cmd { |
| 84 | 95 | 	THERMAL_GENL_CMD_UNSPEC, |
| 85 | 	THERMAL_GENL_CMD_TZ_GET_ID,	/* List of thermal zones id */ | |
| 86 | 	THERMAL_GENL_CMD_TZ_GET_TRIP,	/* List of thermal trips */ | |
| 87 | 	THERMAL_GENL_CMD_TZ_GET_TEMP,	/* Get the thermal zone temperature */ | |
| 88 | 	THERMAL_GENL_CMD_TZ_GET_GOV,	/* Get the thermal zone governor */ | |
| 89 | 	THERMAL_GENL_CMD_TZ_GET_MODE,	/* Get the thermal zone mode */ | |
| 90 | 	THERMAL_GENL_CMD_CDEV_GET,	/* List of cdev id */ | |
| 96 | 	THERMAL_GENL_CMD_TZ_GET_ID,		/* List of thermal zones id */ | |
| 97 | 	THERMAL_GENL_CMD_TZ_GET_TRIP,		/* List of thermal trips */ | |
| 98 | 	THERMAL_GENL_CMD_TZ_GET_TEMP,		/* Get the thermal zone temperature */ | |
| 99 | 	THERMAL_GENL_CMD_TZ_GET_GOV,		/* Get the thermal zone governor */ | |
| 100 | 	THERMAL_GENL_CMD_TZ_GET_MODE,		/* Get the thermal zone mode */ | |
| 101 | 	THERMAL_GENL_CMD_CDEV_GET,		/* List of cdev id */ | |
| 102 | 	THERMAL_GENL_CMD_THRESHOLD_GET,		/* List of thresholds */ | |
| 103 | 	THERMAL_GENL_CMD_THRESHOLD_ADD,		/* Add a threshold */ | |
| 104 | 	THERMAL_GENL_CMD_THRESHOLD_DELETE,	/* Delete a threshold */ | |
| 105 | 	THERMAL_GENL_CMD_THRESHOLD_FLUSH,	/* Flush all the thresholds */ | |
| 91 | 106 | 	__THERMAL_GENL_CMD_MAX, |
| 92 | 107 | }; |
| 93 | 108 | #define THERMAL_GENL_CMD_MAX (__THERMAL_GENL_CMD_MAX - 1) |
lib/libc/include/any-linux-any/linux/types.h+1| ... | ... | @@ -48,6 +48,7 @@ typedef __u32 __bitwise __wsum; |
| 48 | 48 | * No conversions are necessary between 32-bit user-space and a 64-bit kernel. |
| 49 | 49 | */ |
| 50 | 50 | #define __aligned_u64 __u64 __attribute__((aligned(8))) |
| 51 | #define __aligned_s64 __s64 __attribute__((aligned(8))) | |
| 51 | 52 | #define __aligned_be64 __be64 __attribute__((aligned(8))) |
| 52 | 53 | #define __aligned_le64 __le64 __attribute__((aligned(8))) |
| 53 | 54 |
lib/libc/include/any-linux-any/linux/ublk_cmd.h+25-1| ... | ... | @@ -147,8 +147,18 @@ |
| 147 | 147 | */ |
| 148 | 148 | #define UBLK_F_NEED_GET_DATA (1UL << 2) |
| 149 | 149 | |
| 150 | /* | |
| 151 | * - Block devices are recoverable if ublk server exits and restarts | |
| 152 | * - Outstanding I/O when ublk server exits is met with errors | |
| 153 | * - I/O issued while there is no ublk server queues | |
| 154 | */ | |
| 150 | 155 | #define UBLK_F_USER_RECOVERY	(1UL << 3) |
| 151 | 156 | |
| 157 | /* | |
| 158 | * - Block devices are recoverable if ublk server exits and restarts | |
| 159 | * - Outstanding I/O when ublk server exits is reissued | |
| 160 | * - I/O issued while there is no ublk server queues | |
| 161 | */ | |
| 152 | 162 | #define UBLK_F_USER_RECOVERY_REISSUE	(1UL << 4) |
| 153 | 163 | |
| 154 | 164 | /* |
| ... | ... | @@ -175,7 +185,13 @@ |
| 175 | 185 | /* use ioctl encoding for uring command */ |
| 176 | 186 | #define UBLK_F_CMD_IOCTL_ENCODE	(1UL << 6) |
| 177 | 187 | |
| 178 | /* Copy between request and user buffer by pread()/pwrite() */ | |
| 188 | /* | |
| 189 | * Copy between request and user buffer by pread()/pwrite() | |
| 190 | * | |
| 191 | * Not available for UBLK_F_UNPRIVILEGED_DEV, otherwise userspace may | |
| 192 | * deceive us by not filling request buffer, then kernel uninitialized | |
| 193 | * data may be leaked. | |
| 194 | */ | |
| 179 | 195 | #define UBLK_F_USER_COPY	(1UL << 7) |
| 180 | 196 | |
| 181 | 197 | /* |
| ... | ... | @@ -184,10 +200,18 @@ |
| 184 | 200 | */ |
| 185 | 201 | #define UBLK_F_ZONED (1ULL << 8) |
| 186 | 202 | |
| 203 | /* | |
| 204 | * - Block devices are recoverable if ublk server exits and restarts | |
| 205 | * - Outstanding I/O when ublk server exits is met with errors | |
| 206 | * - I/O issued while there is no ublk server is met with errors | |
| 207 | */ | |
| 208 | #define UBLK_F_USER_RECOVERY_FAIL_IO (1ULL << 9) | |
| 209 | ||
| 187 | 210 | /* device state */ |
| 188 | 211 | #define UBLK_S_DEV_DEAD	0 |
| 189 | 212 | #define UBLK_S_DEV_LIVE	1 |
| 190 | 213 | #define UBLK_S_DEV_QUIESCED	2 |
| 214 | #define UBLK_S_DEV_FAIL_IO 	3 | |
| 191 | 215 | |
| 192 | 216 | /* shipped via sqe->cmd of io_uring command */ |
| 193 | 217 | struct ublksrv_ctrl_cmd { |
lib/libc/include/any-linux-any/linux/udp.h+1-1| ... | ... | @@ -31,7 +31,7 @@ struct udphdr { |
| 31 | 31 | #define UDP_CORK	1	/* Never send partially complete segments */ |
| 32 | 32 | #define UDP_ENCAP	100	/* Set the socket to accept encapsulated packets */ |
| 33 | 33 | #define UDP_NO_CHECK6_TX 101	/* Disable sending checksum for UDP6X */ |
| 34 | #define UDP_NO_CHECK6_RX 102	/* Disable accpeting checksum for UDP6 */ | |
| 34 | #define UDP_NO_CHECK6_RX 102	/* Disable accepting checksum for UDP6 */ | |
| 35 | 35 | #define UDP_SEGMENT	103	/* Set GSO segmentation size */ |
| 36 | 36 | #define UDP_GRO		104	/* This socket can receive UDP GRO packets */ |
| 37 | 37 |
lib/libc/include/any-linux-any/linux/uio.h+18| ... | ... | @@ -20,6 +20,24 @@ struct iovec |
| 20 | 20 | 	__kernel_size_t iov_len; /* Must be size_t (1003.1g) */ |
| 21 | 21 | }; |
| 22 | 22 | |
| 23 | struct dmabuf_cmsg { | |
| 24 | 	__u64 frag_offset;	/* offset into the dmabuf where the frag starts. | |
| 25 | 				 */ | |
| 26 | 	__u32 frag_size;	/* size of the frag. */ | |
| 27 | 	__u32 frag_token;	/* token representing this frag for | |
| 28 | 				 * DEVMEM_DONTNEED. | |
| 29 | 				 */ | |
| 30 | 	__u32 dmabuf_id;	/* dmabuf id this frag belongs to. */ | |
| 31 | 	__u32 flags;		/* Currently unused. Reserved for future | |
| 32 | 				 * uses. | |
| 33 | 				 */ | |
| 34 | }; | |
| 35 | ||
| 36 | struct dmabuf_token { | |
| 37 | 	__u32 token_start; | |
| 38 | 	__u32 token_count; | |
| 39 | }; | |
| 40 | ||
| 23 | 41 | /* |
| 24 | 42 | *	UIO_MAXIOV shall be at least 16 1003.1g (5.4.1.1) |
| 25 | 43 | */ |
lib/libc/include/any-linux-any/linux/um_timetravel.h+176-14| ... | ... | @@ -1,17 +1,6 @@ |
| 1 | /* SPDX-License-Identifier: BSD-3-Clause */ | |
| 1 | 2 | /* |
| 2 | * Permission to use, copy, modify, and/or distribute this software for any | |
| 3 | * purpose with or without fee is hereby granted, provided that the above | |
| 4 | * copyright notice and this permission notice appear in all copies. | |
| 5 | * | |
| 6 | * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES | |
| 7 | * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF | |
| 8 | * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR | |
| 9 | * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES | |
| 10 | * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN | |
| 11 | * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF | |
| 12 | * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. | |
| 13 | * | |
| 14 | * Copyright (C) 2019 Intel Corporation | |
| 3 | * Copyright (C) 2019 - 2023 Intel Corporation | |
| 15 | 4 | */ |
| 16 | 5 | #ifndef _LINUX_UM_TIMETRAVEL_H |
| 17 | 6 | #define _LINUX_UM_TIMETRAVEL_H |
| ... | ... | @@ -50,6 +39,36 @@ struct um_timetravel_msg { |
| 50 | 39 | 	__u64 time; |
| 51 | 40 | }; |
| 52 | 41 | |
| 42 | /* max number of file descriptors that can be sent/received in a message */ | |
| 43 | #define UM_TIMETRAVEL_MAX_FDS 2 | |
| 44 | ||
| 45 | /** | |
| 46 | * enum um_timetravel_shared_mem_fds - fds sent in ACK message for START message | |
| 47 | */ | |
| 48 | enum um_timetravel_shared_mem_fds { | |
| 49 | 	/** | |
| 50 | 	 * @UM_TIMETRAVEL_SHARED_MEMFD: Index of the shared memory file | |
| 51 | 	 *	descriptor in the control message | |
| 52 | 	 */ | |
| 53 | 	UM_TIMETRAVEL_SHARED_MEMFD, | |
| 54 | 	/** | |
| 55 | 	 * @UM_TIMETRAVEL_SHARED_LOGFD: Index of the logging file descriptor | |
| 56 | 	 *	in the control message | |
| 57 | 	 */ | |
| 58 | 	UM_TIMETRAVEL_SHARED_LOGFD, | |
| 59 | 	UM_TIMETRAVEL_SHARED_MAX_FDS, | |
| 60 | }; | |
| 61 | ||
| 62 | /** | |
| 63 | * enum um_timetravel_start_ack - ack-time mask for start message | |
| 64 | */ | |
| 65 | enum um_timetravel_start_ack { | |
| 66 | 	/** | |
| 67 | 	 * @UM_TIMETRAVEL_START_ACK_ID: client ID that controller allocated. | |
| 68 | 	 */ | |
| 69 | 	UM_TIMETRAVEL_START_ACK_ID = 0xffff, | |
| 70 | }; | |
| 71 | ||
| 53 | 72 | /** |
| 54 | 73 | * enum um_timetravel_ops - Operation codes |
| 55 | 74 | */ |
| ... | ... | @@ -57,7 +76,9 @@ enum um_timetravel_ops { |
| 57 | 76 | 	/** |
| 58 | 77 | 	 * @UM_TIMETRAVEL_ACK: response (ACK) to any previous message, |
| 59 | 78 | 	 *	this usually doesn't carry any data in the 'time' field |
| 60 | 	 *	unless otherwise specified below | |
| 79 | 	 *	unless otherwise specified below, note: while using shared | |
| 80 | 	 *	memory no ACK for WAIT and RUN messages, for more info see | |
| 81 | 	 *	&struct um_timetravel_schedshm. | |
| 61 | 82 | 	 */ |
| 62 | 83 | 	UM_TIMETRAVEL_ACK		= 0, |
| 63 | 84 | |
| ... | ... | @@ -123,6 +144,147 @@ enum um_timetravel_ops { |
| 123 | 144 | 	 *	the simulation. |
| 124 | 145 | 	 */ |
| 125 | 146 | 	UM_TIMETRAVEL_GET_TOD		= 8, |
| 147 | ||
| 148 | 	/** | |
| 149 | 	 * @UM_TIMETRAVEL_BROADCAST: Send/Receive a broadcast message. | |
| 150 | 	 *	This message can be used to sync all components in the system | |
| 151 | 	 *	with a single message, if the calender gets the message, the | |
| 152 | 	 *	calender broadcast the message to all components, and if a | |
| 153 | 	 *	component receives it it should act based on it e.g print a | |
| 154 | 	 *	message to it's log system. | |
| 155 | 	 *	(calendar <-> host) | |
| 156 | 	 */ | |
| 157 | 	UM_TIMETRAVEL_BROADCAST		= 9, | |
| 158 | }; | |
| 159 | ||
| 160 | /* version of struct um_timetravel_schedshm */ | |
| 161 | #define UM_TIMETRAVEL_SCHEDSHM_VERSION 2 | |
| 162 | ||
| 163 | /** | |
| 164 | * enum um_timetravel_schedshm_cap - time travel capabilities of every client | |
| 165 | * | |
| 166 | * These flags must be set immediately after processing the ACK to | |
| 167 | * the START message, before sending any message to the controller. | |
| 168 | */ | |
| 169 | enum um_timetravel_schedshm_cap { | |
| 170 | 	/** | |
| 171 | 	 * @UM_TIMETRAVEL_SCHEDSHM_CAP_TIME_SHARE: client can read current time | |
| 172 | 	 *	update internal time request to shared memory and read | |
| 173 | 	 *	free until and send no Ack on RUN and doesn't expect ACK on | |
| 174 | 	 *	WAIT. | |
| 175 | 	 */ | |
| 176 | 	UM_TIMETRAVEL_SCHEDSHM_CAP_TIME_SHARE = 0x1, | |
| 177 | }; | |
| 178 | ||
| 179 | /** | |
| 180 | * enum um_timetravel_schedshm_flags - time travel flags of every client | |
| 181 | */ | |
| 182 | enum um_timetravel_schedshm_flags { | |
| 183 | 	/** | |
| 184 | 	 * @UM_TIMETRAVEL_SCHEDSHM_FLAGS_REQ_RUN: client has a request to run. | |
| 185 | 	 *	It's set by client when it has a request to run, if (and only | |
| 186 | 	 *	if) the @running_id points to a client that is able to use | |
| 187 | 	 *	shared memory, i.e. has %UM_TIMETRAVEL_SCHEDSHM_CAP_TIME_SHARE | |
| 188 | 	 *	(this includes the client itself). Otherwise, a message must | |
| 189 | 	 *	be used. | |
| 190 | 	 */ | |
| 191 | 	UM_TIMETRAVEL_SCHEDSHM_FLAGS_REQ_RUN = 0x1, | |
| 192 | }; | |
| 193 | ||
| 194 | /** | |
| 195 | * DOC: Time travel shared memory overview | |
| 196 | * | |
| 197 | * The main purpose of the shared memory is to avoid all time travel message | |
| 198 | * that don't need any action, for example current time can be held in shared | |
| 199 | * memory without the need of any client to send a message UM_TIMETRAVEL_GET | |
| 200 | * in order to know what's the time. | |
| 201 | * | |
| 202 | * Since this is shared memory with all clients and controller and controller | |
| 203 | * creates the shared memory space, all time values are absolute to controller | |
| 204 | * time. So first time client connects to shared memory mode it should take the | |
| 205 | * current_time value in shared memory and keep it internally as a diff to | |
| 206 | * shared memory times, and once shared memory is initialized, any interaction | |
| 207 | * with the controller must happen in the controller time domain, including any | |
| 208 | * messages (for clients that are not using shared memory, the controller will | |
| 209 | * handle an offset and make the clients think they start at time zero.) | |
| 210 | * | |
| 211 | * Along with the shared memory file descriptor is sent to the client a logging | |
| 212 | * file descriptor, to have all logs related to shared memory, | |
| 213 | * logged into one place. note: to have all logs synced into log file at write, | |
| 214 | * file should be flushed (fflush) after writing to it. | |
| 215 | * | |
| 216 | * To avoid memory corruption, we define below for each field who can write to | |
| 217 | * it at what time, defined in the structure fields. | |
| 218 | * | |
| 219 | * To avoid having to pack this struct, all fields in it must be naturally aligned | |
| 220 | * (i.e. aligned to their size). | |
| 221 | */ | |
| 222 | ||
| 223 | /** | |
| 224 | * union um_timetravel_schedshm_client - UM time travel client struct | |
| 225 | * | |
| 226 | * Every entity using the shared memory including the controller has a place in | |
| 227 | * the um_timetravel_schedshm clients array, that holds info related to the client | |
| 228 | * using the shared memory, and can be set only by the client after it gets the | |
| 229 | * fd memory. | |
| 230 | * | |
| 231 | * @capa: bit fields with client capabilities see | |
| 232 | *	&enum um_timetravel_schedshm_cap, set by client once after getting the | |
| 233 | *	shared memory file descriptor. | |
| 234 | * @flags: bit fields for flags see &enum um_timetravel_schedshm_flags for doc. | |
| 235 | * @req_time: request time to run, set by client on every request it needs. | |
| 236 | * @name: unique id sent to the controller by client with START message. | |
| 237 | */ | |
| 238 | union um_timetravel_schedshm_client { | |
| 239 | 	struct { | |
| 240 | 		__u32 capa; | |
| 241 | 		__u32 flags; | |
| 242 | 		__u64 req_time; | |
| 243 | 		__u64 name; | |
| 244 | 	}; | |
| 245 | 	char reserve[128]; /* reserved for future usage */ | |
| 126 | 246 | }; |
| 127 | 247 | |
| 248 | /** | |
| 249 | * struct um_timetravel_schedshm - UM time travel shared memory struct | |
| 250 | * | |
| 251 | * @hdr: header fields: | |
| 252 | * @version: Current version struct UM_TIMETRAVEL_SCHEDSHM_VERSION, | |
| 253 | *	set by controller once at init, clients must check this after mapping | |
| 254 | *	and work without shared memory if they cannot handle the indicated | |
| 255 | *	version. | |
| 256 | * @len: Length of all the memory including header (@hdr), clients should once | |
| 257 | *	per connection first mmap the header and take the length (@len) to remap the entire size. | |
| 258 | *	This is done in order to support dynamic struct size letting number of | |
| 259 | *	clients be dynamic based on controller support. | |
| 260 | * @free_until: Stores the next request to run by any client, in order for the | |
| 261 | *	current client to know how long it can still run. A client needs to (at | |
| 262 | *	least) reload this value immediately after communicating with any other | |
| 263 | *	client, since the controller will update this field when a new request | |
| 264 | *	is made by any client. Clients also must update this value when they | |
| 265 | *	insert/update an own request into the shared memory while not running | |
| 266 | *	themselves, and the new request is before than the current value. | |
| 267 | * current_time: Current time, can only be set by the client in running state | |
| 268 | *	(indicated by @running_id), though that client may only run until @free_until, | |
| 269 | *	so it must remain smaller than @free_until. | |
| 270 | * @running_id: The current client in state running, set before a client is | |
| 271 | *	notified that it's now running. | |
| 272 | * @max_clients: size of @clients array, set once at init by the controller. | |
| 273 | * @clients: clients array see &union um_timetravel_schedshm_client for doc, | |
| 274 | *	set only by client. | |
| 275 | */ | |
| 276 | struct um_timetravel_schedshm { | |
| 277 | 	union { | |
| 278 | 		struct { | |
| 279 | 			__u32 version; | |
| 280 | 			__u32 len; | |
| 281 | 			__u64 free_until; | |
| 282 | 			__u64 current_time; | |
| 283 | 			__u16 running_id; | |
| 284 | 			__u16 max_clients; | |
| 285 | 		}; | |
| 286 | 		char hdr[4096]; /* align to 4K page size */ | |
| 287 | 	}; | |
| 288 | 	union um_timetravel_schedshm_client clients[]; | |
| 289 | }; | |
| 128 | 290 | #endif /* _LINUX_UM_TIMETRAVEL_H */ |
| \ No newline at end of file |
lib/libc/include/any-linux-any/linux/usb/ch9.h+6-2| ... | ... | @@ -254,6 +254,9 @@ struct usb_ctrlrequest { |
| 254 | 254 | #define USB_DT_DEVICE_CAPABILITY	0x10 |
| 255 | 255 | #define USB_DT_WIRELESS_ENDPOINT_COMP	0x11 |
| 256 | 256 | #define USB_DT_WIRE_ADAPTER		0x21 |
| 257 | /* From USB Device Firmware Upgrade Specification, Revision 1.1 */ | |
| 258 | #define USB_DT_DFU_FUNCTIONAL		0x21 | |
| 259 | /* these are from the Wireless USB spec */ | |
| 257 | 260 | #define USB_DT_RPIPE			0x22 |
| 258 | 261 | #define USB_DT_CS_RADIO_CONTROL		0x23 |
| 259 | 262 | /* From the T10 UAS specification */ |
| ... | ... | @@ -329,9 +332,10 @@ struct usb_device_descriptor { |
| 329 | 332 | #define USB_CLASS_USB_TYPE_C_BRIDGE	0x12 |
| 330 | 333 | #define USB_CLASS_MISC			0xef |
| 331 | 334 | #define USB_CLASS_APP_SPEC		0xfe |
| 332 | #define USB_CLASS_VENDOR_SPEC		0xff | |
| 335 | #define USB_SUBCLASS_DFU			0x01 | |
| 333 | 336 | |
| 334 | #define USB_SUBCLASS_VENDOR_SPEC	0xff | |
| 337 | #define USB_CLASS_VENDOR_SPEC		0xff | |
| 338 | #define USB_SUBCLASS_VENDOR_SPEC		0xff | |
| 335 | 339 | |
| 336 | 340 | /*-------------------------------------------------------------------------*/ |
| 337 | 341 |
lib/libc/include/any-linux-any/linux/usb/functionfs.h+89-8| ... | ... | @@ -3,6 +3,7 @@ |
| 3 | 3 | #define __LINUX_FUNCTIONFS_H__ |
| 4 | 4 | |
| 5 | 5 | |
| 6 | #include <linux/const.h> | |
| 6 | 7 | #include <linux/types.h> |
| 7 | 8 | #include <linux/ioctl.h> |
| 8 | 9 | |
| ... | ... | @@ -37,6 +38,31 @@ struct usb_endpoint_descriptor_no_audio { |
| 37 | 38 | 	__u8 bInterval; |
| 38 | 39 | } __attribute__((packed)); |
| 39 | 40 | |
| 41 | /** | |
| 42 | * struct usb_dfu_functional_descriptor - DFU Functional descriptor | |
| 43 | * @bLength:		Size of the descriptor (bytes) | |
| 44 | * @bDescriptorType:	USB_DT_DFU_FUNCTIONAL | |
| 45 | * @bmAttributes:	DFU attributes | |
| 46 | * @wDetachTimeOut:	Maximum time to wait after DFU_DETACH (ms, le16) | |
| 47 | * @wTransferSize:	Maximum number of bytes per control-write (le16) | |
| 48 | * @bcdDFUVersion:	DFU Spec version (BCD, le16) | |
| 49 | */ | |
| 50 | struct usb_dfu_functional_descriptor { | |
| 51 | 	__u8 bLength; | |
| 52 | 	__u8 bDescriptorType; | |
| 53 | 	__u8 bmAttributes; | |
| 54 | 	__le16 wDetachTimeOut; | |
| 55 | 	__le16 wTransferSize; | |
| 56 | 	__le16 bcdDFUVersion; | |
| 57 | } __attribute__ ((packed)); | |
| 58 | ||
| 59 | /* from DFU functional descriptor bmAttributes */ | |
| 60 | #define DFU_FUNC_ATT_CAN_DOWNLOAD	_BITUL(0) | |
| 61 | #define DFU_FUNC_ATT_CAN_UPLOAD		_BITUL(1) | |
| 62 | #define DFU_FUNC_ATT_MANIFEST_TOLERANT	_BITUL(2) | |
| 63 | #define DFU_FUNC_ATT_WILL_DETACH	_BITUL(3) | |
| 64 | ||
| 65 | ||
| 40 | 66 | struct usb_functionfs_descs_head_v2 { |
| 41 | 67 | 	__le32 magic; |
| 42 | 68 | 	__le32 length; |
| ... | ... | @@ -103,23 +129,38 @@ struct usb_ffs_dmabuf_transfer_req { |
| 103 | 129 | } __attribute__((packed)); |
| 104 | 130 | |
| 105 | 131 | |
| 106 | /* | |
| 132 | /** | |
| 133 | * DOC: descriptors | |
| 134 | * | |
| 107 | 135 | * Descriptors format: |
| 108 | 136 | * |
| 137 | * +-----+-----------+--------------+--------------------------------------+ | |
| 109 | 138 | * | off | name | type | description | |
| 110 | * |-----+-----------+--------------+--------------------------------------| | |
| 139 | * +-----+-----------+--------------+--------------------------------------+ | |
| 111 | 140 | * | 0 | magic | LE32 | FUNCTIONFS_DESCRIPTORS_MAGIC_V2 | |
| 141 | * +-----+-----------+--------------+--------------------------------------+ | |
| 112 | 142 | * | 4 | length | LE32 | length of the whole data chunk | |
| 143 | * +-----+-----------+--------------+--------------------------------------+ | |
| 113 | 144 | * | 8 | flags | LE32 | combination of functionfs_flags | |
| 145 | * +-----+-----------+--------------+--------------------------------------+ | |
| 114 | 146 | * | | eventfd | LE32 | eventfd file descriptor | |
| 147 | * +-----+-----------+--------------+--------------------------------------+ | |
| 115 | 148 | * | | fs_count | LE32 | number of full-speed descriptors | |
| 149 | * +-----+-----------+--------------+--------------------------------------+ | |
| 116 | 150 | * | | hs_count | LE32 | number of high-speed descriptors | |
| 151 | * +-----+-----------+--------------+--------------------------------------+ | |
| 117 | 152 | * | | ss_count | LE32 | number of super-speed descriptors | |
| 153 | * +-----+-----------+--------------+--------------------------------------+ | |
| 118 | 154 | * | | os_count | LE32 | number of MS OS descriptors | |
| 155 | * +-----+-----------+--------------+--------------------------------------+ | |
| 119 | 156 | * | | fs_descrs | Descriptor[] | list of full-speed descriptors | |
| 157 | * +-----+-----------+--------------+--------------------------------------+ | |
| 120 | 158 | * | | hs_descrs | Descriptor[] | list of high-speed descriptors | |
| 159 | * +-----+-----------+--------------+--------------------------------------+ | |
| 121 | 160 | * | | ss_descrs | Descriptor[] | list of super-speed descriptors | |
| 161 | * +-----+-----------+--------------+--------------------------------------+ | |
| 122 | 162 | * | | os_descrs | OSDesc[] | list of MS OS descriptors | |
| 163 | * +-----+-----------+--------------+--------------------------------------+ | |
| 123 | 164 | * |
| 124 | 165 | * Depending on which flags are set, various fields may be missing in the |
| 125 | 166 | * structure. Any flags that are not recognised cause the whole block to be |
| ... | ... | @@ -127,71 +168,111 @@ struct usb_ffs_dmabuf_transfer_req { |
| 127 | 168 | * |
| 128 | 169 | * Legacy descriptors format (deprecated as of 3.14): |
| 129 | 170 | * |
| 171 | * +-----+-----------+--------------+--------------------------------------+ | |
| 130 | 172 | * | off | name | type | description | |
| 131 | * |-----+-----------+--------------+--------------------------------------| | |
| 173 | * +-----+-----------+--------------+--------------------------------------+ | |
| 132 | 174 | * | 0 | magic | LE32 | FUNCTIONFS_DESCRIPTORS_MAGIC | |
| 175 | * +-----+-----------+--------------+--------------------------------------+ | |
| 133 | 176 | * | 4 | length | LE32 | length of the whole data chunk | |
| 177 | * +-----+-----------+--------------+--------------------------------------+ | |
| 134 | 178 | * | 8 | fs_count | LE32 | number of full-speed descriptors | |
| 179 | * +-----+-----------+--------------+--------------------------------------+ | |
| 135 | 180 | * | 12 | hs_count | LE32 | number of high-speed descriptors | |
| 181 | * +-----+-----------+--------------+--------------------------------------+ | |
| 136 | 182 | * | 16 | fs_descrs | Descriptor[] | list of full-speed descriptors | |
| 183 | * +-----+-----------+--------------+--------------------------------------+ | |
| 137 | 184 | * | | hs_descrs | Descriptor[] | list of high-speed descriptors | |
| 185 | * +-----+-----------+--------------+--------------------------------------+ | |
| 138 | 186 | * |
| 139 | 187 | * All numbers must be in little endian order. |
| 140 | 188 | * |
| 141 | 189 | * Descriptor[] is an array of valid USB descriptors which have the following |
| 142 | 190 | * format: |
| 143 | 191 | * |
| 192 | * +-----+-----------------+------+--------------------------+ | |
| 144 | 193 | * | off | name | type | description | |
| 145 | * |-----+-----------------+------+--------------------------| | |
| 194 | * +-----+-----------------+------+--------------------------+ | |
| 146 | 195 | * | 0 | bLength | U8 | length of the descriptor | |
| 196 | * +-----+-----------------+------+--------------------------+ | |
| 147 | 197 | * | 1 | bDescriptorType | U8 | descriptor type | |
| 198 | * +-----+-----------------+------+--------------------------+ | |
| 148 | 199 | * | 2 | payload | | descriptor's payload | |
| 200 | * +-----+-----------------+------+--------------------------+ | |
| 149 | 201 | * |
| 150 | 202 | * OSDesc[] is an array of valid MS OS Feature Descriptors which have one of |
| 151 | 203 | * the following formats: |
| 152 | 204 | * |
| 205 | * +-----+-----------------+------+--------------------------+ | |
| 153 | 206 | * | off | name | type | description | |
| 154 | * |-----+-----------------+------+--------------------------| | |
| 207 | * +-----+-----------------+------+--------------------------+ | |
| 155 | 208 | * | 0 | inteface | U8 | related interface number | |
| 209 | * +-----+-----------------+------+--------------------------+ | |
| 156 | 210 | * | 1 | dwLength | U32 | length of the descriptor | |
| 211 | * +-----+-----------------+------+--------------------------+ | |
| 157 | 212 | * | 5 | bcdVersion | U16 | currently supported: 1 | |
| 213 | * +-----+-----------------+------+--------------------------+ | |
| 158 | 214 | * | 7 | wIndex | U16 | currently supported: 4 | |
| 215 | * +-----+-----------------+------+--------------------------+ | |
| 159 | 216 | * | 9 | bCount | U8 | number of ext. compat. | |
| 217 | * +-----+-----------------+------+--------------------------+ | |
| 160 | 218 | * | 10 | Reserved | U8 | 0 | |
| 219 | * +-----+-----------------+------+--------------------------+ | |
| 161 | 220 | * | 11 | ExtCompat[] | | list of ext. compat. d. | |
| 221 | * +-----+-----------------+------+--------------------------+ | |
| 162 | 222 | * |
| 223 | * +-----+-----------------+------+--------------------------+ | |
| 163 | 224 | * | off | name | type | description | |
| 164 | * |-----+-----------------+------+--------------------------| | |
| 225 | * +-----+-----------------+------+--------------------------+ | |
| 165 | 226 | * | 0 | inteface | U8 | related interface number | |
| 227 | * +-----+-----------------+------+--------------------------+ | |
| 166 | 228 | * | 1 | dwLength | U32 | length of the descriptor | |
| 229 | * +-----+-----------------+------+--------------------------+ | |
| 167 | 230 | * | 5 | bcdVersion | U16 | currently supported: 1 | |
| 231 | * +-----+-----------------+------+--------------------------+ | |
| 168 | 232 | * | 7 | wIndex | U16 | currently supported: 5 | |
| 233 | * +-----+-----------------+------+--------------------------+ | |
| 169 | 234 | * | 9 | wCount | U16 | number of ext. compat. | |
| 235 | * +-----+-----------------+------+--------------------------+ | |
| 170 | 236 | * | 11 | ExtProp[] | | list of ext. prop. d. | |
| 237 | * +-----+-----------------+------+--------------------------+ | |
| 171 | 238 | * |
| 172 | 239 | * ExtCompat[] is an array of valid Extended Compatiblity descriptors |
| 173 | 240 | * which have the following format: |
| 174 | 241 | * |
| 242 | * +-----+-----------------------+------+-------------------------------------+ | |
| 175 | 243 | * | off | name | type | description | |
| 176 | * |-----+-----------------------+------+-------------------------------------| | |
| 244 | * +-----+-----------------------+------+-------------------------------------+ | |
| 177 | 245 | * | 0 | bFirstInterfaceNumber | U8 | index of the interface or of the 1st| |
| 246 | * +-----+-----------------------+------+-------------------------------------+ | |
| 178 | 247 | * | | | | interface in an IAD group | |
| 248 | * +-----+-----------------------+------+-------------------------------------+ | |
| 179 | 249 | * | 1 | Reserved | U8 | 1 | |
| 250 | * +-----+-----------------------+------+-------------------------------------+ | |
| 180 | 251 | * | 2 | CompatibleID | U8[8]| compatible ID string | |
| 252 | * +-----+-----------------------+------+-------------------------------------+ | |
| 181 | 253 | * | 10 | SubCompatibleID | U8[8]| subcompatible ID string | |
| 254 | * +-----+-----------------------+------+-------------------------------------+ | |
| 182 | 255 | * | 18 | Reserved | U8[6]| 0 | |
| 256 | * +-----+-----------------------+------+-------------------------------------+ | |
| 183 | 257 | * |
| 184 | 258 | * ExtProp[] is an array of valid Extended Properties descriptors |
| 185 | 259 | * which have the following format: |
| 186 | 260 | * |
| 261 | * +-----+-----------------------+------+-------------------------------------+ | |
| 187 | 262 | * | off | name | type | description | |
| 188 | * |-----+-----------------------+------+-------------------------------------| | |
| 263 | * +-----+-----------------------+------+-------------------------------------+ | |
| 189 | 264 | * | 0 | dwSize | U32 | length of the descriptor | |
| 265 | * +-----+-----------------------+------+-------------------------------------+ | |
| 190 | 266 | * | 4 | dwPropertyDataType | U32 | 1..7 | |
| 267 | * +-----+-----------------------+------+-------------------------------------+ | |
| 191 | 268 | * | 8 | wPropertyNameLength | U16 | bPropertyName length (NL) | |
| 269 | * +-----+-----------------------+------+-------------------------------------+ | |
| 192 | 270 | * | 10 | bPropertyName |U8[NL]| name of this property | |
| 271 | * +-----+-----------------------+------+-------------------------------------+ | |
| 193 | 272 | * |10+NL| dwPropertyDataLength | U32 | bPropertyData length (DL) | |
| 273 | * +-----+-----------------------+------+-------------------------------------+ | |
| 194 | 274 | * |14+NL| bProperty |U8[DL]| payload of this property | |
| 275 | * +-----+-----------------------+------+-------------------------------------+ | |
| 195 | 276 | */ |
| 196 | 277 | |
| 197 | 278 | struct usb_functionfs_strings_head { |
lib/libc/include/any-linux-any/linux/usb/g_hid.h created+40| ... | ... | @@ -0,0 +1,40 @@ |
| 1 | /* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */ | |
| 2 | ||
| 3 | #ifndef __UAPI_LINUX_USB_G_HID_H | |
| 4 | #define __UAPI_LINUX_USB_G_HID_H | |
| 5 | ||
| 6 | #include <linux/types.h> | |
| 7 | ||
| 8 | /* Maximum HID report length for High-Speed USB (i.e. USB 2.0) */ | |
| 9 | #define MAX_REPORT_LENGTH 64 | |
| 10 | ||
| 11 | /** | |
| 12 | * struct usb_hidg_report - response to GET_REPORT | |
| 13 | * @report_id: report ID that this is a response for | |
| 14 | * @userspace_req: | |
| 15 | * !0 this report is used for any pending GET_REPORT request | |
| 16 | * but wait on userspace to issue a new report on future requests | |
| 17 | * 0 this report is to be used for any future GET_REPORT requests | |
| 18 | * @length: length of the report response | |
| 19 | * @data: report response | |
| 20 | * @padding: padding for 32/64 bit compatibility | |
| 21 | * | |
| 22 | * Structure used by GADGET_HID_WRITE_GET_REPORT ioctl on /dev/hidg*. | |
| 23 | */ | |
| 24 | struct usb_hidg_report { | |
| 25 | 	__u8 report_id; | |
| 26 | 	__u8 userspace_req; | |
| 27 | 	__u16 length; | |
| 28 | 	__u8 data[MAX_REPORT_LENGTH]; | |
| 29 | 	__u8 padding[4]; | |
| 30 | }; | |
| 31 | ||
| 32 | /* The 'g' code is used by gadgetfs and hid gadget ioctl requests. | |
| 33 | * Don't add any colliding codes to either driver, and keep | |
| 34 | * them in unique ranges. | |
| 35 | */ | |
| 36 | ||
| 37 | #define GADGET_HID_READ_GET_REPORT_ID _IOR('g', 0x41, __u8) | |
| 38 | #define GADGET_HID_WRITE_GET_REPORT _IOW('g', 0x42, struct usb_hidg_report) | |
| 39 | ||
| 40 | #endif /* __UAPI_LINUX_USB_G_HID_H */ | |
| \ No newline at end of file |
lib/libc/include/any-linux-any/linux/usb/gadgetfs.h+1-1| ... | ... | @@ -62,7 +62,7 @@ struct usb_gadgetfs_event { |
| 62 | 62 | }; |
| 63 | 63 | |
| 64 | 64 | |
| 65 | /* The 'g' code is also used by printer gadget ioctl requests. | |
| 65 | /* The 'g' code is also used by printer and hid gadget ioctl requests. | |
| 66 | 66 | * Don't add any colliding codes to either driver, and keep |
| 67 | 67 | * them in unique ranges (size 0x20 for now). |
| 68 | 68 | */ |
lib/libc/include/any-linux-any/linux/usb/video.h+58| ... | ... | @@ -597,4 +597,62 @@ struct UVC_FRAME_MJPEG(n) {				\ |
| 597 | 597 | 	__le32 dwFrameInterval[n];			\ |
| 598 | 598 | } __attribute__ ((packed)) |
| 599 | 599 | |
| 600 | /* Frame Based Payload - 3.1.1. Frame Based Video Format Descriptor */ | |
| 601 | struct uvc_format_framebased { | |
| 602 | 	__u8 bLength; | |
| 603 | 	__u8 bDescriptorType; | |
| 604 | 	__u8 bDescriptorSubType; | |
| 605 | 	__u8 bFormatIndex; | |
| 606 | 	__u8 bNumFrameDescriptors; | |
| 607 | 	__u8 guidFormat[16]; | |
| 608 | 	__u8 bBitsPerPixel; | |
| 609 | 	__u8 bDefaultFrameIndex; | |
| 610 | 	__u8 bAspectRatioX; | |
| 611 | 	__u8 bAspectRatioY; | |
| 612 | 	__u8 bmInterfaceFlags; | |
| 613 | 	__u8 bCopyProtect; | |
| 614 | 	__u8 bVariableSize; | |
| 615 | } __attribute__((__packed__)); | |
| 616 | ||
| 617 | #define UVC_DT_FORMAT_FRAMEBASED_SIZE 28 | |
| 618 | ||
| 619 | /* Frame Based Payload - 3.1.2. Frame Based Video Frame Descriptor */ | |
| 620 | struct uvc_frame_framebased { | |
| 621 | 	__u8 bLength; | |
| 622 | 	__u8 bDescriptorType; | |
| 623 | 	__u8 bDescriptorSubType; | |
| 624 | 	__u8 bFrameIndex; | |
| 625 | 	__u8 bmCapabilities; | |
| 626 | 	__u16 wWidth; | |
| 627 | 	__u16 wHeight; | |
| 628 | 	__u32 dwMinBitRate; | |
| 629 | 	__u32 dwMaxBitRate; | |
| 630 | 	__u32 dwDefaultFrameInterval; | |
| 631 | 	__u8 bFrameIntervalType; | |
| 632 | 	__u32 dwBytesPerLine; | |
| 633 | 	__u32 dwFrameInterval[]; | |
| 634 | } __attribute__((__packed__)); | |
| 635 | ||
| 636 | #define UVC_DT_FRAME_FRAMEBASED_SIZE(n) (26+4*(n)) | |
| 637 | ||
| 638 | #define UVC_FRAME_FRAMEBASED(n) \ | |
| 639 | 	uvc_frame_framebased_##n | |
| 640 | ||
| 641 | #define DECLARE_UVC_FRAME_FRAMEBASED(n)			\ | |
| 642 | struct UVC_FRAME_FRAMEBASED(n) {			\ | |
| 643 | 	__u8 bLength;					\ | |
| 644 | 	__u8 bDescriptorType;				\ | |
| 645 | 	__u8 bDescriptorSubType; \ | |
| 646 | 	__u8 bFrameIndex; \ | |
| 647 | 	__u8 bmCapabilities; \ | |
| 648 | 	__u16 wWidth; \ | |
| 649 | 	__u16 wHeight; \ | |
| 650 | 	__u32 dwMinBitRate; \ | |
| 651 | 	__u32 dwMaxBitRate; \ | |
| 652 | 	__u32 dwDefaultFrameInterval; \ | |
| 653 | 	__u8 bFrameIntervalType; \ | |
| 654 | 	__u32 dwBytesPerLine; \ | |
| 655 | 	__u32 dwFrameInterval[n]; \ | |
| 656 | } __attribute__ ((packed)) | |
| 657 | ||
| 600 | 658 | #endif /* __LINUX_USB_VIDEO_H */ |
| \ No newline at end of file |
lib/libc/include/any-linux-any/linux/v4l2-controls.h+2| ... | ... | @@ -894,6 +894,8 @@ enum v4l2_mpeg_video_av1_level { |
| 894 | 894 | 	V4L2_MPEG_VIDEO_AV1_LEVEL_7_3 = 23 |
| 895 | 895 | }; |
| 896 | 896 | |
| 897 | #define V4L2_CID_MPEG_VIDEO_AVERAGE_QP (V4L2_CID_CODEC_BASE + 657) | |
| 898 | ||
| 897 | 899 | /* MPEG-class control IDs specific to the CX2341x driver as defined by V4L2 */ |
| 898 | 900 | #define V4L2_CID_CODEC_CX2341X_BASE				(V4L2_CTRL_CLASS_CODEC | 0x1000) |
| 899 | 901 | #define V4L2_CID_MPEG_CX2341X_VIDEO_SPATIAL_FILTER_MODE		(V4L2_CID_CODEC_CX2341X_BASE+0) |
lib/libc/include/any-linux-any/linux/v4l2-dv-timings.h+1-1| ... | ... | @@ -2,7 +2,7 @@ |
| 2 | 2 | /* |
| 3 | 3 | * V4L2 DV timings header. |
| 4 | 4 | * |
| 5 | * Copyright (C) 2012-2016 Hans Verkuil <hans.verkuil@cisco.com> | |
| 5 | * Copyright (C) 2012-2016 Hans Verkuil <hansverk@cisco.com> | |
| 6 | 6 | */ |
| 7 | 7 | |
| 8 | 8 | #ifndef _V4L2_DV_TIMINGS_H |
lib/libc/include/any-linux-any/linux/vbox_vmmdev_types.h+4-1| ... | ... | @@ -282,7 +282,10 @@ struct vmmdev_hgcm_pagelist { |
| 282 | 282 | 	__u32 flags; /** VMMDEV_HGCM_F_PARM_*. */ |
| 283 | 283 | 	__u16 offset_first_page; /** Data offset in the first page. */ |
| 284 | 284 | 	__u16 page_count; /** Number of pages. */ |
| 285 | 	__u64 pages[1]; /** Page addresses. */ | |
| 285 | 	union { | |
| 286 | 		__u64 unused;	/** Deprecated place-holder for first "pages" entry. */ | |
| 287 | 		__DECLARE_FLEX_ARRAY(__u64, pages); /** Page addresses. */ | |
| 288 | 	}; | |
| 286 | 289 | }; |
| 287 | 290 | VMMDEV_ASSERT_SIZE(vmmdev_hgcm_pagelist, 4 + 2 + 2 + 8); |
| 288 | 291 |
lib/libc/include/any-linux-any/linux/vdpa.h+1| ... | ... | @@ -19,6 +19,7 @@ enum vdpa_command { |
| 19 | 19 | 	VDPA_CMD_DEV_GET,		/* can dump */ |
| 20 | 20 | 	VDPA_CMD_DEV_CONFIG_GET,	/* can dump */ |
| 21 | 21 | 	VDPA_CMD_DEV_VSTATS_GET, |
| 22 | 	VDPA_CMD_DEV_ATTR_SET, | |
| 22 | 23 | }; |
| 23 | 24 | |
| 24 | 25 | enum vdpa_attr { |
lib/libc/include/any-linux-any/linux/version.h+3-3| ... | ... | @@ -1,5 +1,5 @@ |
| 1 | #define LINUX_VERSION_CODE 395776 | |
| 1 | #define LINUX_VERSION_CODE 396548 | |
| 2 | 2 | #define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + ((c) > 255 ? 255 : (c))) |
| 3 | 3 | #define LINUX_VERSION_MAJOR 6 |
| 4 | #define LINUX_VERSION_PATCHLEVEL 10 | |
| 5 | #define LINUX_VERSION_SUBLEVEL 0 | |
| \ No newline at end of file | ||
| 4 | #define LINUX_VERSION_PATCHLEVEL 13 | |
| 5 | #define LINUX_VERSION_SUBLEVEL 4 | |
| \ No newline at end of file |
lib/libc/include/any-linux-any/linux/vfio.h+1-1| ... | ... | @@ -35,7 +35,7 @@ |
| 35 | 35 | #define VFIO_EEH			5 |
| 36 | 36 | |
| 37 | 37 | /* Two-stage IOMMU */ |
| 38 | #define VFIO_TYPE1_NESTING_IOMMU	6	/* Implies v2 */ | |
| 38 | #define __VFIO_RESERVED_TYPE1_NESTING_IOMMU	6	/* Implies v2 */ | |
| 39 | 39 | |
| 40 | 40 | #define VFIO_SPAPR_TCE_v2_IOMMU		7 |
| 41 | 41 |
lib/libc/include/any-linux-any/linux/videodev2.h+25| ... | ... | @@ -475,6 +475,7 @@ struct v4l2_capability { |
| 475 | 475 | #define V4L2_CAP_META_CAPTURE		0x00800000 /* Is a metadata capture device */ |
| 476 | 476 | |
| 477 | 477 | #define V4L2_CAP_READWRITE 0x01000000 /* read/write systemcalls */ |
| 478 | #define V4L2_CAP_EDID			0x02000000 /* Is an EDID-only device */ | |
| 478 | 479 | #define V4L2_CAP_STREAMING 0x04000000 /* streaming I/O ioctls */ |
| 479 | 480 | #define V4L2_CAP_META_OUTPUT		0x08000000 /* Is a metadata output device */ |
| 480 | 481 | |
| ... | ... | @@ -555,6 +556,8 @@ struct v4l2_pix_format { |
| 555 | 556 | |
| 556 | 557 | /* RGB formats (6 or 8 bytes per pixel) */ |
| 557 | 558 | #define V4L2_PIX_FMT_BGR48_12 v4l2_fourcc('B', '3', '1', '2') /* 48 BGR 12-bit per component */ |
| 559 | #define V4L2_PIX_FMT_BGR48 v4l2_fourcc('B', 'G', 'R', '6') /* 48 BGR 16-bit per component */ | |
| 560 | #define V4L2_PIX_FMT_RGB48 v4l2_fourcc('R', 'G', 'B', '6') /* 48 RGB 16-bit per component */ | |
| 558 | 561 | #define V4L2_PIX_FMT_ABGR64_12 v4l2_fourcc('B', '4', '1', '2') /* 64 BGRA 12-bit per component */ |
| 559 | 562 | |
| 560 | 563 | /* Grey formats */ |
| ... | ... | @@ -768,6 +771,7 @@ struct v4l2_pix_format { |
| 768 | 771 | #define V4L2_PIX_FMT_S5C_UYVY_JPG v4l2_fourcc('S', '5', 'C', 'I') /* S5C73M3 interleaved UYVY/JPEG */ |
| 769 | 772 | #define V4L2_PIX_FMT_Y8I v4l2_fourcc('Y', '8', 'I', ' ') /* Greyscale 8-bit L/R interleaved */ |
| 770 | 773 | #define V4L2_PIX_FMT_Y12I v4l2_fourcc('Y', '1', '2', 'I') /* Greyscale 12-bit L/R interleaved */ |
| 774 | #define V4L2_PIX_FMT_Y16I v4l2_fourcc('Y', '1', '6', 'I') /* Greyscale 16-bit L/R interleaved */ | |
| 771 | 775 | #define V4L2_PIX_FMT_Z16 v4l2_fourcc('Z', '1', '6', ' ') /* Depth data 16-bit */ |
| 772 | 776 | #define V4L2_PIX_FMT_MT21C v4l2_fourcc('M', 'T', '2', '1') /* Mediatek compressed block mode */ |
| 773 | 777 | #define V4L2_PIX_FMT_MM21 v4l2_fourcc('M', 'M', '2', '1') /* Mediatek 8-bit block mode, two non-contiguous planes */ |
| ... | ... | @@ -787,6 +791,18 @@ struct v4l2_pix_format { |
| 787 | 791 | #define V4L2_PIX_FMT_IPU3_SGRBG10	v4l2_fourcc('i', 'p', '3', 'G') /* IPU3 packed 10-bit GRBG bayer */ |
| 788 | 792 | #define V4L2_PIX_FMT_IPU3_SRGGB10	v4l2_fourcc('i', 'p', '3', 'r') /* IPU3 packed 10-bit RGGB bayer */ |
| 789 | 793 | |
| 794 | /* Raspberry Pi PiSP compressed formats. */ | |
| 795 | #define V4L2_PIX_FMT_PISP_COMP1_RGGB	v4l2_fourcc('P', 'C', '1', 'R') /* PiSP 8-bit mode 1 compressed RGGB bayer */ | |
| 796 | #define V4L2_PIX_FMT_PISP_COMP1_GRBG	v4l2_fourcc('P', 'C', '1', 'G') /* PiSP 8-bit mode 1 compressed GRBG bayer */ | |
| 797 | #define V4L2_PIX_FMT_PISP_COMP1_GBRG	v4l2_fourcc('P', 'C', '1', 'g') /* PiSP 8-bit mode 1 compressed GBRG bayer */ | |
| 798 | #define V4L2_PIX_FMT_PISP_COMP1_BGGR	v4l2_fourcc('P', 'C', '1', 'B') /* PiSP 8-bit mode 1 compressed BGGR bayer */ | |
| 799 | #define V4L2_PIX_FMT_PISP_COMP1_MONO	v4l2_fourcc('P', 'C', '1', 'M') /* PiSP 8-bit mode 1 compressed monochrome */ | |
| 800 | #define V4L2_PIX_FMT_PISP_COMP2_RGGB	v4l2_fourcc('P', 'C', '2', 'R') /* PiSP 8-bit mode 2 compressed RGGB bayer */ | |
| 801 | #define V4L2_PIX_FMT_PISP_COMP2_GRBG	v4l2_fourcc('P', 'C', '2', 'G') /* PiSP 8-bit mode 2 compressed GRBG bayer */ | |
| 802 | #define V4L2_PIX_FMT_PISP_COMP2_GBRG	v4l2_fourcc('P', 'C', '2', 'g') /* PiSP 8-bit mode 2 compressed GBRG bayer */ | |
| 803 | #define V4L2_PIX_FMT_PISP_COMP2_BGGR	v4l2_fourcc('P', 'C', '2', 'B') /* PiSP 8-bit mode 2 compressed BGGR bayer */ | |
| 804 | #define V4L2_PIX_FMT_PISP_COMP2_MONO	v4l2_fourcc('P', 'C', '2', 'M') /* PiSP 8-bit mode 2 compressed monochrome */ | |
| 805 | ||
| 790 | 806 | /* SDR formats - used only for Software Defined Radio devices */ |
| 791 | 807 | #define V4L2_SDR_FMT_CU8 v4l2_fourcc('C', 'U', '0', '8') /* IQ u8 */ |
| 792 | 808 | #define V4L2_SDR_FMT_CU16LE v4l2_fourcc('C', 'U', '1', '6') /* IQ u16le */ |
| ... | ... | @@ -813,6 +829,12 @@ struct v4l2_pix_format { |
| 813 | 829 | /* Vendor specific - used for RK_ISP1 camera sub-system */ |
| 814 | 830 | #define V4L2_META_FMT_RK_ISP1_PARAMS	v4l2_fourcc('R', 'K', '1', 'P') /* Rockchip ISP1 3A Parameters */ |
| 815 | 831 | #define V4L2_META_FMT_RK_ISP1_STAT_3A	v4l2_fourcc('R', 'K', '1', 'S') /* Rockchip ISP1 3A Statistics */ |
| 832 | #define V4L2_META_FMT_RK_ISP1_EXT_PARAMS	v4l2_fourcc('R', 'K', '1', 'E') /* Rockchip ISP1 3a Extensible Parameters */ | |
| 833 | ||
| 834 | /* Vendor specific - used for RaspberryPi PiSP */ | |
| 835 | #define V4L2_META_FMT_RPI_BE_CFG	v4l2_fourcc('R', 'P', 'B', 'C') /* PiSP BE configuration */ | |
| 836 | #define V4L2_META_FMT_RPI_FE_CFG	v4l2_fourcc('R', 'P', 'F', 'C') /* PiSP FE configuration */ | |
| 837 | #define V4L2_META_FMT_RPI_FE_STATS	v4l2_fourcc('R', 'P', 'F', 'S') /* PiSP FE stats */ | |
| 816 | 838 | |
| 817 | 839 | |
| 818 | 840 | /* priv field value to indicates that subsequent fields are valid. */ |
| ... | ... | @@ -847,6 +869,9 @@ struct v4l2_fmtdesc { |
| 847 | 869 | #define V4L2_FMT_FLAG_CSC_QUANTIZATION		0x0100 |
| 848 | 870 | #define V4L2_FMT_FLAG_META_LINE_BASED		0x0200 |
| 849 | 871 | |
| 872 | /* Format description flag, to be ORed with the index */ | |
| 873 | #define V4L2_FMTDESC_FLAG_ENUM_ALL		0x80000000 | |
| 874 | ||
| 850 | 875 | 	/* Frame Size and frame rate enumeration */ |
| 851 | 876 | /* |
| 852 | 877 | *	F R A M E S I Z E E N U M E R A T I O N |
lib/libc/include/any-linux-any/linux/virtio_balloon.h+14-2| ... | ... | @@ -71,7 +71,13 @@ struct virtio_balloon_config { |
| 71 | 71 | #define VIRTIO_BALLOON_S_CACHES 7 /* Disk caches */ |
| 72 | 72 | #define VIRTIO_BALLOON_S_HTLB_PGALLOC 8 /* Hugetlb page allocations */ |
| 73 | 73 | #define VIRTIO_BALLOON_S_HTLB_PGFAIL 9 /* Hugetlb page allocation failures */ |
| 74 | #define VIRTIO_BALLOON_S_NR 10 | |
| 74 | #define VIRTIO_BALLOON_S_OOM_KILL 10 /* OOM killer invocations */ | |
| 75 | #define VIRTIO_BALLOON_S_ALLOC_STALL 11 /* Stall count of memory allocatoin */ | |
| 76 | #define VIRTIO_BALLOON_S_ASYNC_SCAN 12 /* Amount of memory scanned asynchronously */ | |
| 77 | #define VIRTIO_BALLOON_S_DIRECT_SCAN 13 /* Amount of memory scanned directly */ | |
| 78 | #define VIRTIO_BALLOON_S_ASYNC_RECLAIM 14 /* Amount of memory reclaimed asynchronously */ | |
| 79 | #define VIRTIO_BALLOON_S_DIRECT_RECLAIM 15 /* Amount of memory reclaimed directly */ | |
| 80 | #define VIRTIO_BALLOON_S_NR 16 | |
| 75 | 81 | |
| 76 | 82 | #define VIRTIO_BALLOON_S_NAMES_WITH_PREFIX(VIRTIO_BALLOON_S_NAMES_prefix) { \ |
| 77 | 83 | 	VIRTIO_BALLOON_S_NAMES_prefix "swap-in", \ |
| ... | ... | @@ -83,7 +89,13 @@ struct virtio_balloon_config { |
| 83 | 89 | 	VIRTIO_BALLOON_S_NAMES_prefix "available-memory", \ |
| 84 | 90 | 	VIRTIO_BALLOON_S_NAMES_prefix "disk-caches", \ |
| 85 | 91 | 	VIRTIO_BALLOON_S_NAMES_prefix "hugetlb-allocations", \ |
| 86 | 	VIRTIO_BALLOON_S_NAMES_prefix "hugetlb-failures" \ | |
| 92 | 	VIRTIO_BALLOON_S_NAMES_prefix "hugetlb-failures", \ | |
| 93 | 	VIRTIO_BALLOON_S_NAMES_prefix "oom-kills", \ | |
| 94 | 	VIRTIO_BALLOON_S_NAMES_prefix "alloc-stalls", \ | |
| 95 | 	VIRTIO_BALLOON_S_NAMES_prefix "async-scans", \ | |
| 96 | 	VIRTIO_BALLOON_S_NAMES_prefix "direct-scans", \ | |
| 97 | 	VIRTIO_BALLOON_S_NAMES_prefix "async-reclaims", \ | |
| 98 | 	VIRTIO_BALLOON_S_NAMES_prefix "direct-reclaims" \ | |
| 87 | 99 | } |
| 88 | 100 | |
| 89 | 101 | #define VIRTIO_BALLOON_S_NAMES VIRTIO_BALLOON_S_NAMES_WITH_PREFIX("") |
lib/libc/include/any-linux-any/linux/virtio_crypto.h+1| ... | ... | @@ -329,6 +329,7 @@ struct virtio_crypto_op_header { |
| 329 | 329 | 	VIRTIO_CRYPTO_OPCODE(VIRTIO_CRYPTO_SERVICE_AKCIPHER, 0x00) |
| 330 | 330 | #define VIRTIO_CRYPTO_AKCIPHER_DECRYPT \ |
| 331 | 331 | 	VIRTIO_CRYPTO_OPCODE(VIRTIO_CRYPTO_SERVICE_AKCIPHER, 0x01) |
| 332 | 	/* akcipher sign/verify opcodes are deprecated */ | |
| 332 | 333 | #define VIRTIO_CRYPTO_AKCIPHER_SIGN \ |
| 333 | 334 | 	VIRTIO_CRYPTO_OPCODE(VIRTIO_CRYPTO_SERVICE_AKCIPHER, 0x02) |
| 334 | 335 | #define VIRTIO_CRYPTO_AKCIPHER_VERIFY \ |
lib/libc/include/any-linux-any/linux/virtio_gpu.h+1| ... | ... | @@ -311,6 +311,7 @@ struct virtio_gpu_cmd_submit { |
| 311 | 311 | #define VIRTIO_GPU_CAPSET_VIRGL2 2 |
| 312 | 312 | /* 3 is reserved for gfxstream */ |
| 313 | 313 | #define VIRTIO_GPU_CAPSET_VENUS 4 |
| 314 | #define VIRTIO_GPU_CAPSET_DRM 6 | |
| 314 | 315 | |
| 315 | 316 | /* VIRTIO_GPU_CMD_GET_CAPSET_INFO */ |
| 316 | 317 | struct virtio_gpu_get_capset_info { |
lib/libc/include/any-linux-any/linux/virtio_pci.h+131| ... | ... | @@ -40,6 +40,7 @@ |
| 40 | 40 | #define _LINUX_VIRTIO_PCI_H |
| 41 | 41 | |
| 42 | 42 | #include <linux/types.h> |
| 43 | #include <linux/kernel.h> | |
| 43 | 44 | |
| 44 | 45 | #ifndef VIRTIO_PCI_NO_LEGACY |
| 45 | 46 | |
| ... | ... | @@ -240,6 +241,17 @@ struct virtio_pci_cfg_cap { |
| 240 | 241 | #define VIRTIO_ADMIN_CMD_LEGACY_DEV_CFG_READ		0x5 |
| 241 | 242 | #define VIRTIO_ADMIN_CMD_LEGACY_NOTIFY_INFO		0x6 |
| 242 | 243 | |
| 244 | /* Device parts access commands. */ | |
| 245 | #define VIRTIO_ADMIN_CMD_CAP_ID_LIST_QUERY		0x7 | |
| 246 | #define VIRTIO_ADMIN_CMD_DEVICE_CAP_GET			0x8 | |
| 247 | #define VIRTIO_ADMIN_CMD_DRIVER_CAP_SET			0x9 | |
| 248 | #define VIRTIO_ADMIN_CMD_RESOURCE_OBJ_CREATE		0xa | |
| 249 | #define VIRTIO_ADMIN_CMD_RESOURCE_OBJ_DESTROY		0xd | |
| 250 | #define VIRTIO_ADMIN_CMD_DEV_PARTS_METADATA_GET		0xe | |
| 251 | #define VIRTIO_ADMIN_CMD_DEV_PARTS_GET			0xf | |
| 252 | #define VIRTIO_ADMIN_CMD_DEV_PARTS_SET			0x10 | |
| 253 | #define VIRTIO_ADMIN_CMD_DEV_MODE_SET			0x11 | |
| 254 | ||
| 243 | 255 | struct virtio_admin_cmd_hdr { |
| 244 | 256 | 	__le16 opcode; |
| 245 | 257 | 	/* |
| ... | ... | @@ -286,4 +298,123 @@ struct virtio_admin_cmd_notify_info_result { |
| 286 | 298 | 	struct virtio_admin_cmd_notify_info_data entries[VIRTIO_ADMIN_CMD_MAX_NOTIFY_INFO]; |
| 287 | 299 | }; |
| 288 | 300 | |
| 301 | #define VIRTIO_DEV_PARTS_CAP 0x0000 | |
| 302 | ||
| 303 | struct virtio_dev_parts_cap { | |
| 304 | 	__u8 get_parts_resource_objects_limit; | |
| 305 | 	__u8 set_parts_resource_objects_limit; | |
| 306 | }; | |
| 307 | ||
| 308 | #define MAX_CAP_ID __KERNEL_DIV_ROUND_UP(VIRTIO_DEV_PARTS_CAP + 1, 64) | |
| 309 | ||
| 310 | struct virtio_admin_cmd_query_cap_id_result { | |
| 311 | 	__le64 supported_caps[MAX_CAP_ID]; | |
| 312 | }; | |
| 313 | ||
| 314 | struct virtio_admin_cmd_cap_get_data { | |
| 315 | 	__le16 id; | |
| 316 | 	__u8 reserved[6]; | |
| 317 | }; | |
| 318 | ||
| 319 | struct virtio_admin_cmd_cap_set_data { | |
| 320 | 	__le16 id; | |
| 321 | 	__u8 reserved[6]; | |
| 322 | 	__u8 cap_specific_data[]; | |
| 323 | }; | |
| 324 | ||
| 325 | struct virtio_admin_cmd_resource_obj_cmd_hdr { | |
| 326 | 	__le16 type; | |
| 327 | 	__u8 reserved[2]; | |
| 328 | 	__le32 id; /* Indicates unique resource object id per resource object type */ | |
| 329 | }; | |
| 330 | ||
| 331 | struct virtio_admin_cmd_resource_obj_create_data { | |
| 332 | 	struct virtio_admin_cmd_resource_obj_cmd_hdr hdr; | |
| 333 | 	__le64 flags; | |
| 334 | 	__u8 resource_obj_specific_data[]; | |
| 335 | }; | |
| 336 | ||
| 337 | #define VIRTIO_RESOURCE_OBJ_DEV_PARTS 0 | |
| 338 | ||
| 339 | #define VIRTIO_RESOURCE_OBJ_DEV_PARTS_TYPE_GET 0 | |
| 340 | #define VIRTIO_RESOURCE_OBJ_DEV_PARTS_TYPE_SET 1 | |
| 341 | ||
| 342 | struct virtio_resource_obj_dev_parts { | |
| 343 | 	__u8 type; | |
| 344 | 	__u8 reserved[7]; | |
| 345 | }; | |
| 346 | ||
| 347 | #define VIRTIO_ADMIN_CMD_DEV_PARTS_METADATA_TYPE_SIZE 0 | |
| 348 | #define VIRTIO_ADMIN_CMD_DEV_PARTS_METADATA_TYPE_COUNT 1 | |
| 349 | #define VIRTIO_ADMIN_CMD_DEV_PARTS_METADATA_TYPE_LIST 2 | |
| 350 | ||
| 351 | struct virtio_admin_cmd_dev_parts_metadata_data { | |
| 352 | 	struct virtio_admin_cmd_resource_obj_cmd_hdr hdr; | |
| 353 | 	__u8 type; | |
| 354 | 	__u8 reserved[7]; | |
| 355 | }; | |
| 356 | ||
| 357 | #define VIRTIO_DEV_PART_F_OPTIONAL 0 | |
| 358 | ||
| 359 | struct virtio_dev_part_hdr { | |
| 360 | 	__le16 part_type; | |
| 361 | 	__u8 flags; | |
| 362 | 	__u8 reserved; | |
| 363 | 	union { | |
| 364 | 		struct { | |
| 365 | 			__le32 offset; | |
| 366 | 			__le32 reserved; | |
| 367 | 		} pci_common_cfg; | |
| 368 | 		struct { | |
| 369 | 			__le16 index; | |
| 370 | 			__u8 reserved[6]; | |
| 371 | 		} vq_index; | |
| 372 | 	} selector; | |
| 373 | 	__le32 length; | |
| 374 | }; | |
| 375 | ||
| 376 | struct virtio_dev_part { | |
| 377 | 	struct virtio_dev_part_hdr hdr; | |
| 378 | 	__u8 value[]; | |
| 379 | }; | |
| 380 | ||
| 381 | struct virtio_admin_cmd_dev_parts_metadata_result { | |
| 382 | 	union { | |
| 383 | 		struct { | |
| 384 | 			__le32 size; | |
| 385 | 			__le32 reserved; | |
| 386 | 		} parts_size; | |
| 387 | 		struct { | |
| 388 | 			__le32 count; | |
| 389 | 			__le32 reserved; | |
| 390 | 		} hdr_list_count; | |
| 391 | 		struct { | |
| 392 | 			__le32 count; | |
| 393 | 			__le32 reserved; | |
| 394 | 			struct virtio_dev_part_hdr hdrs[]; | |
| 395 | 		} hdr_list; | |
| 396 | 	}; | |
| 397 | }; | |
| 398 | ||
| 399 | #define VIRTIO_ADMIN_CMD_DEV_PARTS_GET_TYPE_SELECTED 0 | |
| 400 | #define VIRTIO_ADMIN_CMD_DEV_PARTS_GET_TYPE_ALL 1 | |
| 401 | ||
| 402 | struct virtio_admin_cmd_dev_parts_get_data { | |
| 403 | 	struct virtio_admin_cmd_resource_obj_cmd_hdr hdr; | |
| 404 | 	__u8 type; | |
| 405 | 	__u8 reserved[7]; | |
| 406 | 	struct virtio_dev_part_hdr hdr_list[]; | |
| 407 | }; | |
| 408 | ||
| 409 | struct virtio_admin_cmd_dev_parts_set_data { | |
| 410 | 	struct virtio_admin_cmd_resource_obj_cmd_hdr hdr; | |
| 411 | 	struct virtio_dev_part parts[]; | |
| 412 | }; | |
| 413 | ||
| 414 | #define VIRTIO_ADMIN_CMD_DEV_MODE_F_STOPPED 0 | |
| 415 | ||
| 416 | struct virtio_admin_cmd_dev_mode_set_data { | |
| 417 | 	__u8 flags; | |
| 418 | }; | |
| 419 | ||
| 289 | 420 | #endif |
| \ No newline at end of file |
lib/libc/include/any-linux-any/linux/vmclock-abi.h created+182| ... | ... | @@ -0,0 +1,182 @@ |
| 1 | /* SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-2-Clause) */ | |
| 2 | ||
| 3 | /* | |
| 4 | * This structure provides a vDSO-style clock to VM guests, exposing the | |
| 5 | * relationship (or lack thereof) between the CPU clock (TSC, timebase, arch | |
| 6 | * counter, etc.) and real time. It is designed to address the problem of | |
| 7 | * live migration, which other clock enlightenments do not. | |
| 8 | * | |
| 9 | * When a guest is live migrated, this affects the clock in two ways. | |
| 10 | * | |
| 11 | * First, even between identical hosts the actual frequency of the underlying | |
| 12 | * counter will change within the tolerances of its specification (typically | |
| 13 | * ±50PPM, or 4 seconds a day). This frequency also varies over time on the | |
| 14 | * same host, but can be tracked by NTP as it generally varies slowly. With | |
| 15 | * live migration there is a step change in the frequency, with no warning. | |
| 16 | * | |
| 17 | * Second, there may be a step change in the value of the counter itself, as | |
| 18 | * its accuracy is limited by the precision of the NTP synchronization on the | |
| 19 | * source and destination hosts. | |
| 20 | * | |
| 21 | * So any calibration (NTP, PTP, etc.) which the guest has done on the source | |
| 22 | * host before migration is invalid, and needs to be redone on the new host. | |
| 23 | * | |
| 24 | * In its most basic mode, this structure provides only an indication to the | |
| 25 | * guest that live migration has occurred. This allows the guest to know that | |
| 26 | * its clock is invalid and take remedial action. For applications that need | |
| 27 | * reliable accurate timestamps (e.g. distributed databases), the structure | |
| 28 | * can be mapped all the way to userspace. This allows the application to see | |
| 29 | * directly for itself that the clock is disrupted and take appropriate | |
| 30 | * action, even when using a vDSO-style method to get the time instead of a | |
| 31 | * system call. | |
| 32 | * | |
| 33 | * In its more advanced mode. this structure can also be used to expose the | |
| 34 | * precise relationship of the CPU counter to real time, as calibrated by the | |
| 35 | * host. This means that userspace applications can have accurate time | |
| 36 | * immediately after live migration, rather than having to pause operations | |
| 37 | * and wait for NTP to recover. This mode does, of course, rely on the | |
| 38 | * counter being reliable and consistent across CPUs. | |
| 39 | * | |
| 40 | * Note that this must be true UTC, never with smeared leap seconds. If a | |
| 41 | * guest wishes to construct a smeared clock, it can do so. Presenting a | |
| 42 | * smeared clock through this interface would be problematic because it | |
| 43 | * actually messes with the apparent counter *period*. A linear smearing | |
| 44 | * of 1 ms per second would effectively tweak the counter period by 1000PPM | |
| 45 | * at the start/end of the smearing period, while a sinusoidal smear would | |
| 46 | * basically be impossible to represent. | |
| 47 | * | |
| 48 | * This structure is offered with the intent that it be adopted into the | |
| 49 | * nascent virtio-rtc standard, as a virtio-rtc that does not address the live | |
| 50 | * migration problem seems a little less than fit for purpose. For that | |
| 51 | * reason, certain fields use precisely the same numeric definitions as in | |
| 52 | * the virtio-rtc proposal. The structure can also be exposed through an ACPI | |
| 53 | * device with the CID "VMCLOCK", modelled on the "VMGENID" device except for | |
| 54 | * the fact that it uses a real _CRS to convey the address of the structure | |
| 55 | * (which should be a full page, to allow for mapping directly to userspace). | |
| 56 | */ | |
| 57 | ||
| 58 | #ifndef __VMCLOCK_ABI_H__ | |
| 59 | #define __VMCLOCK_ABI_H__ | |
| 60 | ||
| 61 | #include <linux/types.h> | |
| 62 | ||
| 63 | struct vmclock_abi { | |
| 64 | 	/* CONSTANT FIELDS */ | |
| 65 | 	__le32 magic; | |
| 66 | #define VMCLOCK_MAGIC	0x4b4c4356 /* "VCLK" */ | |
| 67 | 	__le32 size;		/* Size of region containing this structure */ | |
| 68 | 	__le16 version;	/* 1 */ | |
| 69 | 	__u8 counter_id; /* Matches VIRTIO_RTC_COUNTER_xxx except INVALID */ | |
| 70 | #define VMCLOCK_COUNTER_ARM_VCNT	0 | |
| 71 | #define VMCLOCK_COUNTER_X86_TSC		1 | |
| 72 | #define VMCLOCK_COUNTER_INVALID		0xff | |
| 73 | 	__u8 time_type; /* Matches VIRTIO_RTC_TYPE_xxx */ | |
| 74 | #define VMCLOCK_TIME_UTC			0	/* Since 1970-01-01 00:00:00z */ | |
| 75 | #define VMCLOCK_TIME_TAI			1	/* Since 1970-01-01 00:00:00z */ | |
| 76 | #define VMCLOCK_TIME_MONOTONIC			2	/* Since undefined epoch */ | |
| 77 | #define VMCLOCK_TIME_INVALID_SMEARED		3	/* Not supported */ | |
| 78 | #define VMCLOCK_TIME_INVALID_MAYBE_SMEARED	4	/* Not supported */ | |
| 79 | ||
| 80 | 	/* NON-CONSTANT FIELDS PROTECTED BY SEQCOUNT LOCK */ | |
| 81 | 	__le32 seq_count;	/* Low bit means an update is in progress */ | |
| 82 | 	/* | |
| 83 | 	 * This field changes to another non-repeating value when the CPU | |
| 84 | 	 * counter is disrupted, for example on live migration. This lets | |
| 85 | 	 * the guest know that it should discard any calibration it has | |
| 86 | 	 * performed of the counter against external sources (NTP/PTP/etc.). | |
| 87 | 	 */ | |
| 88 | 	__le64 disruption_marker; | |
| 89 | 	__le64 flags; | |
| 90 | 	/* Indicates that the tai_offset_sec field is valid */ | |
| 91 | #define VMCLOCK_FLAG_TAI_OFFSET_VALID		(1 << 0) | |
| 92 | 	/* | |
| 93 | 	 * Optionally used to notify guests of pending maintenance events. | |
| 94 | 	 * A guest which provides latency-sensitive services may wish to | |
| 95 | 	 * remove itself from service if an event is coming up. Two flags | |
| 96 | 	 * indicate the approximate imminence of the event. | |
| 97 | 	 */ | |
| 98 | #define VMCLOCK_FLAG_DISRUPTION_SOON		(1 << 1) /* About a day */ | |
| 99 | #define VMCLOCK_FLAG_DISRUPTION_IMMINENT	(1 << 2) /* About an hour */ | |
| 100 | #define VMCLOCK_FLAG_PERIOD_ESTERROR_VALID	(1 << 3) | |
| 101 | #define VMCLOCK_FLAG_PERIOD_MAXERROR_VALID	(1 << 4) | |
| 102 | #define VMCLOCK_FLAG_TIME_ESTERROR_VALID	(1 << 5) | |
| 103 | #define VMCLOCK_FLAG_TIME_MAXERROR_VALID	(1 << 6) | |
| 104 | 	/* | |
| 105 | 	 * If the MONOTONIC flag is set then (other than leap seconds) it is | |
| 106 | 	 * guaranteed that the time calculated according this structure at | |
| 107 | 	 * any given moment shall never appear to be later than the time | |
| 108 | 	 * calculated via the structure at any *later* moment. | |
| 109 | 	 * | |
| 110 | 	 * In particular, a timestamp based on a counter reading taken | |
| 111 | 	 * immediately after setting the low bit of seq_count (and the | |
| 112 | 	 * associated memory barrier), using the previously-valid time and | |
| 113 | 	 * period fields, shall never be later than a timestamp based on | |
| 114 | 	 * a counter reading taken immediately before *clearing* the low | |
| 115 | 	 * bit again after the update, using the about-to-be-valid fields. | |
| 116 | 	 */ | |
| 117 | #define VMCLOCK_FLAG_TIME_MONOTONIC		(1 << 7) | |
| 118 | ||
| 119 | 	__u8 pad[2]; | |
| 120 | 	__u8 clock_status; | |
| 121 | #define VMCLOCK_STATUS_UNKNOWN		0 | |
| 122 | #define VMCLOCK_STATUS_INITIALIZING	1 | |
| 123 | #define VMCLOCK_STATUS_SYNCHRONIZED	2 | |
| 124 | #define VMCLOCK_STATUS_FREERUNNING	3 | |
| 125 | #define VMCLOCK_STATUS_UNRELIABLE	4 | |
| 126 | ||
| 127 | 	/* | |
| 128 | 	 * The time exposed through this device is never smeared. This field | |
| 129 | 	 * corresponds to the 'subtype' field in virtio-rtc, which indicates | |
| 130 | 	 * the smearing method. However in this case it provides a *hint* to | |
| 131 | 	 * the guest operating system, such that *if* the guest OS wants to | |
| 132 | 	 * provide its users with an alternative clock which does not follow | |
| 133 | 	 * UTC, it may do so in a fashion consistent with the other systems | |
| 134 | 	 * in the nearby environment. | |
| 135 | 	 */ | |
| 136 | 	__u8 leap_second_smearing_hint; /* Matches VIRTIO_RTC_SUBTYPE_xxx */ | |
| 137 | #define VMCLOCK_SMEARING_STRICT		0 | |
| 138 | #define VMCLOCK_SMEARING_NOON_LINEAR	1 | |
| 139 | #define VMCLOCK_SMEARING_UTC_SLS	2 | |
| 140 | 	__le16 tai_offset_sec; /* Actually two's complement signed */ | |
| 141 | 	__u8 leap_indicator; | |
| 142 | 	/* | |
| 143 | 	 * This field is based on the VIRTIO_RTC_LEAP_xxx values as defined | |
| 144 | 	 * in the current draft of virtio-rtc, but since smearing cannot be | |
| 145 | 	 * used with the shared memory device, some values are not used. | |
| 146 | 	 * | |
| 147 | 	 * The _POST_POS and _POST_NEG values allow the guest to perform | |
| 148 | 	 * its own smearing during the day or so after a leap second when | |
| 149 | 	 * such smearing may need to continue being applied for a leap | |
| 150 | 	 * second which is now theoretically "historical". | |
| 151 | 	 */ | |
| 152 | #define VMCLOCK_LEAP_NONE	0x00	/* No known nearby leap second */ | |
| 153 | #define VMCLOCK_LEAP_PRE_POS	0x01	/* Positive leap second at EOM */ | |
| 154 | #define VMCLOCK_LEAP_PRE_NEG	0x02	/* Negative leap second at EOM */ | |
| 155 | #define VMCLOCK_LEAP_POS	0x03	/* Set during 23:59:60 second */ | |
| 156 | #define VMCLOCK_LEAP_POST_POS	0x04 | |
| 157 | #define VMCLOCK_LEAP_POST_NEG	0x05 | |
| 158 | ||
| 159 | 	/* Bit shift for counter_period_frac_sec and its error rate */ | |
| 160 | 	__u8 counter_period_shift; | |
| 161 | 	/* | |
| 162 | 	 * Paired values of counter and UTC at a given point in time. | |
| 163 | 	 */ | |
| 164 | 	__le64 counter_value; | |
| 165 | 	/* | |
| 166 | 	 * Counter period, and error margin of same. The unit of these | |
| 167 | 	 * fields is 1/2^(64 + counter_period_shift) of a second. | |
| 168 | 	 */ | |
| 169 | 	__le64 counter_period_frac_sec; | |
| 170 | 	__le64 counter_period_esterror_rate_frac_sec; | |
| 171 | 	__le64 counter_period_maxerror_rate_frac_sec; | |
| 172 | ||
| 173 | 	/* | |
| 174 | 	 * Time according to time_type field above. | |
| 175 | 	 */ | |
| 176 | 	__le64 time_sec;		/* Seconds since time_type epoch */ | |
| 177 | 	__le64 time_frac_sec;		/* Units of 1/2^64 of a second */ | |
| 178 | 	__le64 time_esterror_nanosec; | |
| 179 | 	__le64 time_maxerror_nanosec; | |
| 180 | }; | |
| 181 | ||
| 182 | #endif /* __VMCLOCK_ABI_H__ */ | |
| \ No newline at end of file |
lib/libc/include/any-linux-any/linux/xattr.h+7| ... | ... | @@ -11,6 +11,7 @@ |
| 11 | 11 | */ |
| 12 | 12 | |
| 13 | 13 | #include <linux/libc-compat.h> |
| 14 | #include <linux/types.h> | |
| 14 | 15 | |
| 15 | 16 | #ifndef _LINUX_XATTR_H |
| 16 | 17 | #define _LINUX_XATTR_H |
| ... | ... | @@ -20,6 +21,12 @@ |
| 20 | 21 | |
| 21 | 22 | #define XATTR_CREATE	0x1	/* set value, fail if attr already exists */ |
| 22 | 23 | #define XATTR_REPLACE	0x2	/* set value, fail if attr does not exist */ |
| 24 | ||
| 25 | struct xattr_args { | |
| 26 | 	__aligned_u64 value; | |
| 27 | 	__u32 size; | |
| 28 | 	__u32 flags; | |
| 29 | }; | |
| 23 | 30 | #endif |
| 24 | 31 | |
| 25 | 32 | /* Namespaces */ |
lib/libc/include/any-linux-any/linux/xfrm.h+3| ... | ... | @@ -321,6 +321,8 @@ enum xfrm_attr_type_t { |
| 321 | 321 | 	XFRMA_IF_ID,		/* __u32 */ |
| 322 | 322 | 	XFRMA_MTIMER_THRESH,	/* __u32 in seconds for input SA */ |
| 323 | 323 | 	XFRMA_SA_DIR,		/* __u8 */ |
| 324 | 	XFRMA_NAT_KEEPALIVE_INTERVAL,	/* __u32 in seconds for NAT keepalive */ | |
| 325 | 	XFRMA_SA_PCPU,		/* __u32 */ | |
| 324 | 326 | 	__XFRMA_MAX |
| 325 | 327 | |
| 326 | 328 | #define XFRMA_OUTPUT_MARK XFRMA_SET_MARK	/* Compatibility */ |
| ... | ... | @@ -436,6 +438,7 @@ struct xfrm_userpolicy_info { |
| 436 | 438 | #define XFRM_POLICY_LOCALOK	1	/* Allow user to override global policy */ |
| 437 | 439 | 	/* Automatically expand selector to include matching ICMP payloads. */ |
| 438 | 440 | #define XFRM_POLICY_ICMP	2 |
| 441 | #define XFRM_POLICY_CPU_ACQUIRE	4 | |
| 439 | 442 | 	__u8				share; |
| 440 | 443 | }; |
| 441 | 444 |
lib/libc/include/any-linux-any/linux/zorro_ids.h+3| ... | ... | @@ -449,6 +449,9 @@ |
| 449 | 449 | #define ZORRO_PROD_VMC_ISDN_BLASTER_Z2				ZORRO_ID(VMC, 0x01, 0) |
| 450 | 450 | #define ZORRO_PROD_VMC_HYPERCOM_4				ZORRO_ID(VMC, 0x02, 0) |
| 451 | 451 | |
| 452 | #define ZORRO_MANUF_CSLAB					0x1400 | |
| 453 | #define ZORRO_PROD_CSLAB_WARP_1260				ZORRO_ID(CSLAB, 0x65, 0) | |
| 454 | ||
| 452 | 455 | #define ZORRO_MANUF_INFORMATION					0x157C |
| 453 | 456 | #define ZORRO_PROD_INFORMATION_ISDN_ENGINE_I			ZORRO_ID(INFORMATION, 0x64, 0) |
| 454 | 457 |
lib/libc/include/any-linux-any/misc/fastrpc.h-3| ... | ... | @@ -8,14 +8,11 @@ |
| 8 | 8 | #define FASTRPC_IOCTL_ALLOC_DMA_BUFF	_IOWR('R', 1, struct fastrpc_alloc_dma_buf) |
| 9 | 9 | #define FASTRPC_IOCTL_FREE_DMA_BUFF	_IOWR('R', 2, __u32) |
| 10 | 10 | #define FASTRPC_IOCTL_INVOKE		_IOWR('R', 3, struct fastrpc_invoke) |
| 11 | /* This ioctl is only supported with secure device nodes */ | |
| 12 | 11 | #define FASTRPC_IOCTL_INIT_ATTACH	_IO('R', 4) |
| 13 | 12 | #define FASTRPC_IOCTL_INIT_CREATE	_IOWR('R', 5, struct fastrpc_init_create) |
| 14 | 13 | #define FASTRPC_IOCTL_MMAP		_IOWR('R', 6, struct fastrpc_req_mmap) |
| 15 | 14 | #define FASTRPC_IOCTL_MUNMAP		_IOWR('R', 7, struct fastrpc_req_munmap) |
| 16 | /* This ioctl is only supported with secure device nodes */ | |
| 17 | 15 | #define FASTRPC_IOCTL_INIT_ATTACH_SNS	_IO('R', 8) |
| 18 | /* This ioctl is only supported with secure device nodes */ | |
| 19 | 16 | #define FASTRPC_IOCTL_INIT_CREATE_STATIC _IOWR('R', 9, struct fastrpc_init_create_static) |
| 20 | 17 | #define FASTRPC_IOCTL_MEM_MAP		_IOWR('R', 10, struct fastrpc_mem_map) |
| 21 | 18 | #define FASTRPC_IOCTL_MEM_UNMAP		_IOWR('R', 11, struct fastrpc_mem_unmap) |
lib/libc/include/any-linux-any/misc/mrvl_cn10k_dpi.h created+39| ... | ... | @@ -0,0 +1,39 @@ |
| 1 | /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ | |
| 2 | /* | |
| 3 | * Marvell Octeon CN10K DPI driver | |
| 4 | * | |
| 5 | * Copyright (C) 2024 Marvell. | |
| 6 | * | |
| 7 | */ | |
| 8 | ||
| 9 | #ifndef __MRVL_CN10K_DPI_H__ | |
| 10 | #define __MRVL_CN10K_DPI_H__ | |
| 11 | ||
| 12 | #include <linux/types.h> | |
| 13 | ||
| 14 | #define DPI_MAX_ENGINES 6 | |
| 15 | ||
| 16 | struct dpi_mps_mrrs_cfg { | |
| 17 | 	__u16 max_read_req_sz; /* Max read request size */ | |
| 18 | 	__u16 max_payload_sz; /* Max payload size */ | |
| 19 | 	__u16 port; /* Ebus port */ | |
| 20 | 	__u16 reserved; /* Reserved */ | |
| 21 | }; | |
| 22 | ||
| 23 | struct dpi_engine_cfg { | |
| 24 | 	__u64 fifo_mask; /* FIFO size mask in KBytes */ | |
| 25 | 	__u16 molr[DPI_MAX_ENGINES]; /* Max outstanding load requests */ | |
| 26 | 	__u16 update_molr; /* '1' to update engine MOLR */ | |
| 27 | 	__u16 reserved; /* Reserved */ | |
| 28 | }; | |
| 29 | ||
| 30 | /* DPI ioctl numbers */ | |
| 31 | #define DPI_MAGIC_NUM	0xB8 | |
| 32 | ||
| 33 | /* Set MPS & MRRS parameters */ | |
| 34 | #define DPI_MPS_MRRS_CFG _IOW(DPI_MAGIC_NUM, 1, struct dpi_mps_mrrs_cfg) | |
| 35 | ||
| 36 | /* Set Engine FIFO configuration */ | |
| 37 | #define DPI_ENGINE_CFG _IOW(DPI_MAGIC_NUM, 2, struct dpi_engine_cfg) | |
| 38 | ||
| 39 | #endif /* __MRVL_CN10K_DPI_H__ */ | |
| \ No newline at end of file |
lib/libc/include/any-linux-any/rdma/bnxt_re-abi.h+14-1| ... | ... | @@ -55,7 +55,7 @@ enum { |
| 55 | 55 | 	BNXT_RE_UCNTX_CMASK_WC_DPI_ENABLED = 0x04ULL, |
| 56 | 56 | 	BNXT_RE_UCNTX_CMASK_DBR_PACING_ENABLED = 0x08ULL, |
| 57 | 57 | 	BNXT_RE_UCNTX_CMASK_POW2_DISABLED = 0x10ULL, |
| 58 | 	BNXT_RE_COMP_MASK_UCNTX_HW_RETX_ENABLED = 0x40, | |
| 58 | 	BNXT_RE_UCNTX_CMASK_MSN_TABLE_ENABLED = 0x40, | |
| 59 | 59 | }; |
| 60 | 60 | |
| 61 | 61 | enum bnxt_re_wqe_mode { |
| ... | ... | @@ -66,6 +66,7 @@ enum bnxt_re_wqe_mode { |
| 66 | 66 | |
| 67 | 67 | enum { |
| 68 | 68 | 	BNXT_RE_COMP_MASK_REQ_UCNTX_POW2_SUPPORT = 0x01, |
| 69 | 	BNXT_RE_COMP_MASK_REQ_UCNTX_VAR_WQE_SUPPORT = 0x02, | |
| 69 | 70 | }; |
| 70 | 71 | |
| 71 | 72 | struct bnxt_re_uctx_req { |
| ... | ... | @@ -118,10 +119,16 @@ struct bnxt_re_resize_cq_req { |
| 118 | 119 | 	__aligned_u64 cq_va; |
| 119 | 120 | }; |
| 120 | 121 | |
| 122 | enum bnxt_re_qp_mask { | |
| 123 | 	BNXT_RE_QP_REQ_MASK_VAR_WQE_SQ_SLOTS = 0x1, | |
| 124 | }; | |
| 125 | ||
| 121 | 126 | struct bnxt_re_qp_req { |
| 122 | 127 | 	__aligned_u64 qpsva; |
| 123 | 128 | 	__aligned_u64 qprva; |
| 124 | 129 | 	__aligned_u64 qp_handle; |
| 130 | 	__aligned_u64 comp_mask; | |
| 131 | 	__u32 sq_slots; | |
| 125 | 132 | }; |
| 126 | 133 | |
| 127 | 134 | struct bnxt_re_qp_resp { |
| ... | ... | @@ -134,8 +141,14 @@ struct bnxt_re_srq_req { |
| 134 | 141 | 	__aligned_u64 srq_handle; |
| 135 | 142 | }; |
| 136 | 143 | |
| 144 | enum bnxt_re_srq_mask { | |
| 145 | 	BNXT_RE_SRQ_TOGGLE_PAGE_SUPPORT = 0x1, | |
| 146 | }; | |
| 147 | ||
| 137 | 148 | struct bnxt_re_srq_resp { |
| 138 | 149 | 	__u32 srqid; |
| 150 | 	__u32 rsvd; /* padding */ | |
| 151 | 	__aligned_u64 comp_mask; | |
| 139 | 152 | }; |
| 140 | 153 | |
| 141 | 154 | enum bnxt_re_shpg_offt { |
lib/libc/include/any-linux-any/rdma/efa-abi.h+2-1| ... | ... | @@ -95,7 +95,8 @@ struct efa_ibv_create_qp { |
| 95 | 95 | 	__u32 sq_ring_size; /* bytes */ |
| 96 | 96 | 	__u32 driver_qp_type; |
| 97 | 97 | 	__u16 flags; |
| 98 | 	__u8 reserved_90[6]; | |
| 98 | 	__u8 sl; | |
| 99 | 	__u8 reserved_98[5]; | |
| 99 | 100 | }; |
| 100 | 101 | |
| 101 | 102 | struct efa_ibv_create_qp_resp { |
lib/libc/include/any-linux-any/rdma/ib_user_ioctl_cmds.h+3-4| ... | ... | @@ -37,9 +37,6 @@ |
| 37 | 37 | #define UVERBS_ID_NS_MASK 0xF000 |
| 38 | 38 | #define UVERBS_ID_NS_SHIFT 12 |
| 39 | 39 | |
| 40 | #define UVERBS_UDATA_DRIVER_DATA_NS	1 | |
| 41 | #define UVERBS_UDATA_DRIVER_DATA_FLAG	(1UL << UVERBS_ID_NS_SHIFT) | |
| 42 | ||
| 43 | 40 | enum uverbs_default_objects { |
| 44 | 41 | 	UVERBS_OBJECT_DEVICE, /* No instances of DEVICE are allowed */ |
| 45 | 42 | 	UVERBS_OBJECT_PD, |
| ... | ... | @@ -61,8 +58,10 @@ enum uverbs_default_objects { |
| 61 | 58 | }; |
| 62 | 59 | |
| 63 | 60 | enum { |
| 64 | 	UVERBS_ATTR_UHW_IN = UVERBS_UDATA_DRIVER_DATA_FLAG, | |
| 61 | 	UVERBS_ID_DRIVER_NS = 1UL << UVERBS_ID_NS_SHIFT, | |
| 62 | 	UVERBS_ATTR_UHW_IN = UVERBS_ID_DRIVER_NS, | |
| 65 | 63 | 	UVERBS_ATTR_UHW_OUT, |
| 64 | 	UVERBS_ID_DRIVER_NS_WITH_UHW, | |
| 66 | 65 | }; |
| 67 | 66 | |
| 68 | 67 | enum uverbs_methods_device { |
lib/libc/include/any-linux-any/rdma/mana-abi.h+9| ... | ... | @@ -45,6 +45,15 @@ struct mana_ib_create_qp_resp { |
| 45 | 45 | 	__u32 reserved; |
| 46 | 46 | }; |
| 47 | 47 | |
| 48 | struct mana_ib_create_rc_qp { | |
| 49 | 	__aligned_u64 queue_buf[4]; | |
| 50 | 	__u32 queue_size[4]; | |
| 51 | }; | |
| 52 | ||
| 53 | struct mana_ib_create_rc_qp_resp { | |
| 54 | 	__u32 queue_id[4]; | |
| 55 | }; | |
| 56 | ||
| 48 | 57 | struct mana_ib_create_wq { |
| 49 | 58 | 	__aligned_u64 wq_buf_addr; |
| 50 | 59 | 	__u32 wq_buf_size; |
lib/libc/include/any-linux-any/rdma/mlx5-abi.h+5| ... | ... | @@ -252,6 +252,7 @@ enum mlx5_ib_query_dev_resp_flags { |
| 252 | 252 | 	MLX5_IB_QUERY_DEV_RESP_FLAGS_CQE_128B_PAD = 1 << 1, |
| 253 | 253 | 	MLX5_IB_QUERY_DEV_RESP_PACKET_BASED_CREDIT_MODE = 1 << 2, |
| 254 | 254 | 	MLX5_IB_QUERY_DEV_RESP_FLAGS_SCAT2CQE_DCT = 1 << 3, |
| 255 | 	MLX5_IB_QUERY_DEV_RESP_FLAGS_OOO_DP = 1 << 4, | |
| 255 | 256 | }; |
| 256 | 257 | |
| 257 | 258 | enum mlx5_ib_tunnel_offloads { |
| ... | ... | @@ -439,6 +440,10 @@ struct mlx5_ib_burst_info { |
| 439 | 440 | 	__u16 reserved; |
| 440 | 441 | }; |
| 441 | 442 | |
| 443 | enum mlx5_ib_modify_qp_mask { | |
| 444 | 	MLX5_IB_MODIFY_QP_OOO_DP = 1 << 0, | |
| 445 | }; | |
| 446 | ||
| 442 | 447 | struct mlx5_ib_modify_qp { |
| 443 | 448 | 	__u32			 comp_mask; |
| 444 | 449 | 	struct mlx5_ib_burst_info burst_info; |
lib/libc/include/any-linux-any/rdma/mlx5_user_ioctl_cmds.h+13| ... | ... | @@ -270,6 +270,14 @@ enum mlx5_ib_device_query_context_attrs { |
| 270 | 270 | 	MLX5_IB_ATTR_QUERY_CONTEXT_RESP_UCTX = (1U << UVERBS_ID_NS_SHIFT), |
| 271 | 271 | }; |
| 272 | 272 | |
| 273 | enum mlx5_ib_create_cq_attrs { | |
| 274 | 	MLX5_IB_ATTR_CREATE_CQ_UAR_INDEX = UVERBS_ID_DRIVER_NS_WITH_UHW, | |
| 275 | }; | |
| 276 | ||
| 277 | enum mlx5_ib_reg_dmabuf_mr_attrs { | |
| 278 | 	MLX5_IB_ATTR_REG_DMABUF_MR_ACCESS_FLAGS = (1U << UVERBS_ID_NS_SHIFT), | |
| 279 | }; | |
| 280 | ||
| 273 | 281 | #define MLX5_IB_DW_MATCH_PARAM 0xA0 |
| 274 | 282 | |
| 275 | 283 | struct mlx5_ib_match_params { |
| ... | ... | @@ -340,6 +348,7 @@ enum mlx5_ib_pd_methods { |
| 340 | 348 | |
| 341 | 349 | enum mlx5_ib_device_methods { |
| 342 | 350 | 	MLX5_IB_METHOD_QUERY_PORT = (1U << UVERBS_ID_NS_SHIFT), |
| 351 | 	MLX5_IB_METHOD_GET_DATA_DIRECT_SYSFS_PATH, | |
| 343 | 352 | }; |
| 344 | 353 | |
| 345 | 354 | enum mlx5_ib_query_port_attrs { |
| ... | ... | @@ -347,4 +356,8 @@ enum mlx5_ib_query_port_attrs { |
| 347 | 356 | 	MLX5_IB_ATTR_QUERY_PORT, |
| 348 | 357 | }; |
| 349 | 358 | |
| 359 | enum mlx5_ib_get_data_direct_sysfs_path_attrs { | |
| 360 | 	MLX5_IB_ATTR_GET_DATA_DIRECT_SYSFS_PATH = (1U << UVERBS_ID_NS_SHIFT), | |
| 361 | }; | |
| 362 | ||
| 350 | 363 | #endif |
| \ No newline at end of file |
lib/libc/include/any-linux-any/rdma/mlx5_user_ioctl_verbs.h+4| ... | ... | @@ -54,6 +54,10 @@ enum mlx5_ib_uapi_flow_action_packet_reformat_type { |
| 54 | 54 | 	MLX5_IB_UAPI_FLOW_ACTION_PACKET_REFORMAT_TYPE_L2_TO_L3_TUNNEL = 0x3, |
| 55 | 55 | }; |
| 56 | 56 | |
| 57 | enum mlx5_ib_uapi_reg_dmabuf_flags { | |
| 58 | 	MLX5_IB_UAPI_REG_DMABUF_ACCESS_DATA_DIRECT = 1 << 0, | |
| 59 | }; | |
| 60 | ||
| 57 | 61 | struct mlx5_ib_uapi_devx_async_cmd_hdr { |
| 58 | 62 | 	__aligned_u64	wr_id; |
| 59 | 63 | 	__u8		out_data[]; |
lib/libc/include/any-linux-any/rdma/rdma_netlink.h+40| ... | ... | @@ -15,6 +15,7 @@ enum { |
| 15 | 15 | enum { |
| 16 | 16 | 	RDMA_NL_GROUP_IWPM = 2, |
| 17 | 17 | 	RDMA_NL_GROUP_LS, |
| 18 | 	RDMA_NL_GROUP_NOTIFY, | |
| 18 | 19 | 	RDMA_NL_NUM_GROUPS |
| 19 | 20 | }; |
| 20 | 21 | |
| ... | ... | @@ -301,6 +302,12 @@ enum rdma_nldev_command { |
| 301 | 302 | |
| 302 | 303 | 	RDMA_NLDEV_CMD_RES_SRQ_GET_RAW, |
| 303 | 304 | |
| 305 | 	RDMA_NLDEV_CMD_NEWDEV, | |
| 306 | ||
| 307 | 	RDMA_NLDEV_CMD_DELDEV, | |
| 308 | ||
| 309 | 	RDMA_NLDEV_CMD_MONITOR, | |
| 310 | ||
| 304 | 311 | 	RDMA_NLDEV_NUM_OPS |
| 305 | 312 | }; |
| 306 | 313 | |
| ... | ... | @@ -564,6 +571,15 @@ enum rdma_nldev_attr { |
| 564 | 571 | 	 */ |
| 565 | 572 | 	RDMA_NLDEV_ATTR_RES_SUBTYPE,		/* string */ |
| 566 | 573 | |
| 574 | 	RDMA_NLDEV_ATTR_DEV_TYPE,		/* u8 */ | |
| 575 | ||
| 576 | 	RDMA_NLDEV_ATTR_PARENT_NAME,		/* string */ | |
| 577 | ||
| 578 | 	RDMA_NLDEV_ATTR_NAME_ASSIGN_TYPE,	/* u8 */ | |
| 579 | ||
| 580 | 	RDMA_NLDEV_ATTR_EVENT_TYPE,		/* u8 */ | |
| 581 | ||
| 582 | 	RDMA_NLDEV_SYS_ATTR_MONITOR_MODE,	/* u8 */ | |
| 567 | 583 | 	/* |
| 568 | 584 | 	 * Always the end |
| 569 | 585 | 	 */ |
| ... | ... | @@ -602,4 +618,28 @@ enum rdma_nl_counter_mask { |
| 602 | 618 | 	RDMA_COUNTER_MASK_QP_TYPE = 1, |
| 603 | 619 | 	RDMA_COUNTER_MASK_PID = 1 << 1, |
| 604 | 620 | }; |
| 621 | ||
| 622 | /* Supported rdma device types. */ | |
| 623 | enum rdma_nl_dev_type { | |
| 624 | 	RDMA_DEVICE_TYPE_SMI = 1, | |
| 625 | }; | |
| 626 | ||
| 627 | /* RDMA device name assignment types */ | |
| 628 | enum rdma_nl_name_assign_type { | |
| 629 | 	RDMA_NAME_ASSIGN_TYPE_UNKNOWN = 0, | |
| 630 | 	RDMA_NAME_ASSIGN_TYPE_USER = 1, /* Provided by user-space */ | |
| 631 | }; | |
| 632 | ||
| 633 | /* | |
| 634 | * Supported rdma monitoring event types. | |
| 635 | */ | |
| 636 | enum rdma_nl_notify_event_type { | |
| 637 | 	RDMA_REGISTER_EVENT, | |
| 638 | 	RDMA_UNREGISTER_EVENT, | |
| 639 | 	RDMA_NETDEV_ATTACH_EVENT, | |
| 640 | 	RDMA_NETDEV_DETACH_EVENT, | |
| 641 | 	RDMA_RENAME_EVENT, | |
| 642 | 	RDMA_NETDEV_RENAME_EVENT, | |
| 643 | }; | |
| 644 | ||
| 605 | 645 | #endif /* _RDMA_NETLINK_H */ |
| \ No newline at end of file |
lib/libc/include/any-linux-any/scsi/scsi_bsg_mpi3mr.h+2-1| ... | ... | @@ -296,6 +296,7 @@ struct mpi3mr_hdb_entry { |
| 296 | 296 | * multiple hdb entries. |
| 297 | 297 | * |
| 298 | 298 | * @num_hdb_types: Number of host diag buffer types supported |
| 299 | * @element_trigger_format: Element trigger format | |
| 299 | 300 | * @rsvd1: Reserved |
| 300 | 301 | * @rsvd2: Reserved |
| 301 | 302 | * @rsvd3: Reserved |
| ... | ... | @@ -303,7 +304,7 @@ struct mpi3mr_hdb_entry { |
| 303 | 304 | */ |
| 304 | 305 | struct mpi3mr_bsg_in_hdb_status { |
| 305 | 306 | 	__u8	num_hdb_types; |
| 306 | 	__u8	rsvd1; | |
| 307 | 	__u8 element_trigger_format; | |
| 307 | 308 | 	__u16	rsvd2; |
| 308 | 309 | 	__u32	rsvd3; |
| 309 | 310 | 	struct mpi3mr_hdb_entry entry[1]; |
lib/libc/include/any-linux-any/sound/asequencer.h+6-3| ... | ... | @@ -10,7 +10,7 @@ |
| 10 | 10 | #include <sound/asound.h> |
| 11 | 11 | |
| 12 | 12 | /** version of the sequencer */ |
| 13 | #define SNDRV_SEQ_VERSION SNDRV_PROTOCOL_VERSION(1, 0, 3) | |
| 13 | #define SNDRV_SEQ_VERSION SNDRV_PROTOCOL_VERSION(1, 0, 4) | |
| 14 | 14 | |
| 15 | 15 | /** |
| 16 | 16 | * definition of sequencer event types |
| ... | ... | @@ -461,6 +461,8 @@ struct snd_seq_remove_events { |
| 461 | 461 | #define SNDRV_SEQ_PORT_FLG_TIMESTAMP	(1<<1) |
| 462 | 462 | #define SNDRV_SEQ_PORT_FLG_TIME_REAL	(1<<2) |
| 463 | 463 | |
| 464 | #define SNDRV_SEQ_PORT_FLG_IS_MIDI1	(1<<3)	/* Keep MIDI 1.0 protocol */ | |
| 465 | ||
| 464 | 466 | /* port direction */ |
| 465 | 467 | #define SNDRV_SEQ_PORT_DIR_UNKNOWN	0 |
| 466 | 468 | #define SNDRV_SEQ_PORT_DIR_INPUT	1 |
| ... | ... | @@ -523,11 +525,12 @@ struct snd_seq_queue_status { |
| 523 | 525 | /* queue tempo */ |
| 524 | 526 | struct snd_seq_queue_tempo { |
| 525 | 527 | 	int queue;			/* sequencer queue */ |
| 526 | 	unsigned int tempo;		/* current tempo, us/tick */ | |
| 528 | 	unsigned int tempo;		/* current tempo, us/tick (or different time-base below) */ | |
| 527 | 529 | 	int ppq;			/* time resolution, ticks/quarter */ |
| 528 | 530 | 	unsigned int skew_value;	/* queue skew */ |
| 529 | 531 | 	unsigned int skew_base;		/* queue skew base */ |
| 530 | 	char reserved[24];		/* for the future */ | |
| 532 | 	unsigned short tempo_base;	/* tempo base in nsec unit; either 10 or 1000 */ | |
| 533 | 	char reserved[22];		/* for the future */ | |
| 531 | 534 | }; |
| 532 | 535 | |
| 533 | 536 |
lib/libc/include/any-linux-any/sound/asoc.h+1-1| ... | ... | @@ -88,7 +88,7 @@ |
| 88 | 88 | |
| 89 | 89 | /* ABI version */ |
| 90 | 90 | #define SND_SOC_TPLG_ABI_VERSION	0x5	/* current version */ |
| 91 | #define SND_SOC_TPLG_ABI_VERSION_MIN	0x4	/* oldest version supported */ | |
| 91 | #define SND_SOC_TPLG_ABI_VERSION_MIN	0x5	/* oldest version supported */ | |
| 92 | 92 | |
| 93 | 93 | /* Max size of TLV data */ |
| 94 | 94 | #define SND_SOC_TPLG_TLV_SIZE		32 |
lib/libc/include/any-linux-any/sound/asound.h+21-5| ... | ... | @@ -140,7 +140,7 @@ struct snd_hwdep_dsp_image { |
| 140 | 140 | * * |
| 141 | 141 | *****************************************************************************/ |
| 142 | 142 | |
| 143 | #define SNDRV_PCM_VERSION		SNDRV_PROTOCOL_VERSION(2, 0, 17) | |
| 143 | #define SNDRV_PCM_VERSION		SNDRV_PROTOCOL_VERSION(2, 0, 18) | |
| 144 | 144 | |
| 145 | 145 | typedef unsigned long snd_pcm_uframes_t; |
| 146 | 146 | typedef signed long snd_pcm_sframes_t; |
| ... | ... | @@ -332,7 +332,7 @@ union snd_pcm_sync_id { |
| 332 | 332 | 	unsigned char id[16]; |
| 333 | 333 | 	unsigned short id16[8]; |
| 334 | 334 | 	unsigned int id32[4]; |
| 335 | }; | |
| 335 | } __attribute__((deprecated)); | |
| 336 | 336 | |
| 337 | 337 | struct snd_pcm_info { |
| 338 | 338 | 	unsigned int device;		/* RO/WR (control): device number */ |
| ... | ... | @@ -346,7 +346,7 @@ struct snd_pcm_info { |
| 346 | 346 | 	int dev_subclass;		/* SNDRV_PCM_SUBCLASS_* */ |
| 347 | 347 | 	unsigned int subdevices_count; |
| 348 | 348 | 	unsigned int subdevices_avail; |
| 349 | 	union snd_pcm_sync_id sync;	/* hardware synchronization ID */ | |
| 349 | 	unsigned char pad1[16];		/* was: hardware synchronization ID */ | |
| 350 | 350 | 	unsigned char reserved[64];	/* reserved for future... */ |
| 351 | 351 | }; |
| 352 | 352 | |
| ... | ... | @@ -418,7 +418,8 @@ struct snd_pcm_hw_params { |
| 418 | 418 | 	unsigned int rate_num;		/* R: rate numerator */ |
| 419 | 419 | 	unsigned int rate_den;		/* R: rate denominator */ |
| 420 | 420 | 	snd_pcm_uframes_t fifo_size;	/* R: chip FIFO size in frames */ |
| 421 | 	unsigned char reserved[64];	/* reserved for future */ | |
| 421 | 	unsigned char sync[16];		/* R: synchronization ID (perfect sync - one clock source) */ | |
| 422 | 	unsigned char reserved[48];	/* reserved for future */ | |
| 422 | 423 | }; |
| 423 | 424 | |
| 424 | 425 | enum { |
| ... | ... | @@ -858,7 +859,7 @@ struct snd_ump_block_info { |
| 858 | 859 | * Timer section - /dev/snd/timer |
| 859 | 860 | */ |
| 860 | 861 | |
| 861 | #define SNDRV_TIMER_VERSION		SNDRV_PROTOCOL_VERSION(2, 0, 7) | |
| 862 | #define SNDRV_TIMER_VERSION		SNDRV_PROTOCOL_VERSION(2, 0, 8) | |
| 862 | 863 | |
| 863 | 864 | enum { |
| 864 | 865 | 	SNDRV_TIMER_CLASS_NONE = -1, |
| ... | ... | @@ -883,6 +884,7 @@ enum { |
| 883 | 884 | #define SNDRV_TIMER_GLOBAL_RTC		1	/* unused */ |
| 884 | 885 | #define SNDRV_TIMER_GLOBAL_HPET		2 |
| 885 | 886 | #define SNDRV_TIMER_GLOBAL_HRTIMER	3 |
| 887 | #define SNDRV_TIMER_GLOBAL_UDRIVEN	4 | |
| 886 | 888 | |
| 887 | 889 | /* info flags */ |
| 888 | 890 | #define SNDRV_TIMER_FLG_SLAVE		(1<<0)	/* cannot be controlled */ |
| ... | ... | @@ -961,6 +963,18 @@ struct snd_timer_status { |
| 961 | 963 | 	unsigned char reserved[64];	/* reserved */ |
| 962 | 964 | }; |
| 963 | 965 | |
| 966 | /* | |
| 967 | * This structure describes the userspace-driven timer. Such timers are purely virtual, | |
| 968 | * and can only be triggered from software (for instance, by userspace application). | |
| 969 | */ | |
| 970 | struct snd_timer_uinfo { | |
| 971 | 	/* To pretend being a normal timer, we need to know the resolution in ns. */ | |
| 972 | 	__u64 resolution; | |
| 973 | 	int fd; | |
| 974 | 	unsigned int id; | |
| 975 | 	unsigned char reserved[16]; | |
| 976 | }; | |
| 977 | ||
| 964 | 978 | #define SNDRV_TIMER_IOCTL_PVERSION	_IOR('T', 0x00, int) |
| 965 | 979 | #define SNDRV_TIMER_IOCTL_NEXT_DEVICE	_IOWR('T', 0x01, struct snd_timer_id) |
| 966 | 980 | #define SNDRV_TIMER_IOCTL_TREAD_OLD	_IOW('T', 0x02, int) |
| ... | ... | @@ -977,6 +991,8 @@ struct snd_timer_status { |
| 977 | 991 | #define SNDRV_TIMER_IOCTL_CONTINUE	_IO('T', 0xa2) |
| 978 | 992 | #define SNDRV_TIMER_IOCTL_PAUSE		_IO('T', 0xa3) |
| 979 | 993 | #define SNDRV_TIMER_IOCTL_TREAD64	_IOW('T', 0xa4, int) |
| 994 | #define SNDRV_TIMER_IOCTL_CREATE	_IOWR('T', 0xa5, struct snd_timer_uinfo) | |
| 995 | #define SNDRV_TIMER_IOCTL_TRIGGER	_IO('T', 0xa6) | |
| 980 | 996 | |
| 981 | 997 | #if __BITS_PER_LONG == 64 |
| 982 | 998 | #define SNDRV_TIMER_IOCTL_TREAD SNDRV_TIMER_IOCTL_TREAD_OLD |
lib/libc/include/any-linux-any/sound/compress_offload.h+64-2| ... | ... | @@ -14,7 +14,7 @@ |
| 14 | 14 | #include <sound/compress_params.h> |
| 15 | 15 | |
| 16 | 16 | |
| 17 | #define SNDRV_COMPRESS_VERSION SNDRV_PROTOCOL_VERSION(0, 2, 0) | |
| 17 | #define SNDRV_COMPRESS_VERSION SNDRV_PROTOCOL_VERSION(0, 3, 0) | |
| 18 | 18 | /** |
| 19 | 19 | * struct snd_compressed_buffer - compressed buffer |
| 20 | 20 | * @fragment_size: size of buffer fragment in bytes |
| ... | ... | @@ -68,7 +68,8 @@ struct snd_compr_avail { |
| 68 | 68 | |
| 69 | 69 | enum snd_compr_direction { |
| 70 | 70 | 	SND_COMPRESS_PLAYBACK = 0, |
| 71 | 	SND_COMPRESS_CAPTURE | |
| 71 | 	SND_COMPRESS_CAPTURE, | |
| 72 | 	SND_COMPRESS_ACCEL | |
| 72 | 73 | }; |
| 73 | 74 | |
| 74 | 75 | /** |
| ... | ... | @@ -127,6 +128,59 @@ struct snd_compr_metadata { |
| 127 | 128 | 	 __u32 value[8]; |
| 128 | 129 | } __attribute__((packed, aligned(4))); |
| 129 | 130 | |
| 131 | /* flags for struct snd_compr_task */ | |
| 132 | #define SND_COMPRESS_TFLG_NEW_STREAM		(1<<0)	/* mark for the new stream data */ | |
| 133 | ||
| 134 | /** | |
| 135 | * struct snd_compr_task - task primitive for non-realtime operation | |
| 136 | * @seqno: sequence number (task identifier) | |
| 137 | * @origin_seqno: previous sequence number (task identifier) - for reuse | |
| 138 | * @input_fd: data input file descriptor (dma-buf) | |
| 139 | * @output_fd: data output file descriptor (dma-buf) | |
| 140 | * @input_size: filled data in bytes (from caller, must not exceed fragment size) | |
| 141 | * @flags: see SND_COMPRESS_TFLG_* defines | |
| 142 | * @reserved: reserved for future extension | |
| 143 | */ | |
| 144 | struct snd_compr_task { | |
| 145 | 	__u64 seqno; | |
| 146 | 	__u64 origin_seqno; | |
| 147 | 	int input_fd; | |
| 148 | 	int output_fd; | |
| 149 | 	__u64 input_size; | |
| 150 | 	__u32 flags; | |
| 151 | 	__u8 reserved[16]; | |
| 152 | } __attribute__((packed, aligned(4))); | |
| 153 | ||
| 154 | /** | |
| 155 | * enum snd_compr_state - task state | |
| 156 | * @SND_COMPRESS_TASK_STATE_IDLE: task is not queued | |
| 157 | * @SND_COMPRESS_TASK_STATE_ACTIVE: task is in the queue | |
| 158 | * @SND_COMPRESS_TASK_STATE_FINISHED: task was processed, output is available | |
| 159 | */ | |
| 160 | enum snd_compr_state { | |
| 161 | 	SND_COMPRESS_TASK_STATE_IDLE = 0, | |
| 162 | 	SND_COMPRESS_TASK_STATE_ACTIVE, | |
| 163 | 	SND_COMPRESS_TASK_STATE_FINISHED | |
| 164 | }; | |
| 165 | ||
| 166 | /** | |
| 167 | * struct snd_compr_task_status - task status | |
| 168 | * @seqno: sequence number (task identifier) | |
| 169 | * @input_size: filled data in bytes (from user space) | |
| 170 | * @output_size: filled data in bytes (from driver) | |
| 171 | * @output_flags: reserved for future (all zeros - from driver) | |
| 172 | * @state: actual task state (SND_COMPRESS_TASK_STATE_*) | |
| 173 | * @reserved: reserved for future extension | |
| 174 | */ | |
| 175 | struct snd_compr_task_status { | |
| 176 | 	__u64 seqno; | |
| 177 | 	__u64 input_size; | |
| 178 | 	__u64 output_size; | |
| 179 | 	__u32 output_flags; | |
| 180 | 	__u8 state; | |
| 181 | 	__u8 reserved[15]; | |
| 182 | } __attribute__((packed, aligned(4))); | |
| 183 | ||
| 130 | 184 | /* |
| 131 | 185 | * compress path ioctl definitions |
| 132 | 186 | * SNDRV_COMPRESS_GET_CAPS: Query capability of DSP |
| ... | ... | @@ -164,6 +218,14 @@ struct snd_compr_metadata { |
| 164 | 218 | #define SNDRV_COMPRESS_DRAIN		_IO('C', 0x34) |
| 165 | 219 | #define SNDRV_COMPRESS_NEXT_TRACK	_IO('C', 0x35) |
| 166 | 220 | #define SNDRV_COMPRESS_PARTIAL_DRAIN	_IO('C', 0x36) |
| 221 | ||
| 222 | ||
| 223 | #define SNDRV_COMPRESS_TASK_CREATE	_IOWR('C', 0x60, struct snd_compr_task) | |
| 224 | #define SNDRV_COMPRESS_TASK_FREE	_IOW('C', 0x61, __u64) | |
| 225 | #define SNDRV_COMPRESS_TASK_START	_IOWR('C', 0x62, struct snd_compr_task) | |
| 226 | #define SNDRV_COMPRESS_TASK_STOP	_IOW('C', 0x63, __u64) | |
| 227 | #define SNDRV_COMPRESS_TASK_STATUS	_IOWR('C', 0x68, struct snd_compr_task_status) | |
| 228 | ||
| 167 | 229 | /* |
| 168 | 230 | * TODO |
| 169 | 231 | * 1. add mmap support |
lib/libc/include/any-linux-any/sound/sof/abi.h+1-1| ... | ... | @@ -29,7 +29,7 @@ |
| 29 | 29 | /* SOF ABI version major, minor and patch numbers */ |
| 30 | 30 | #define SOF_ABI_MAJOR 3 |
| 31 | 31 | #define SOF_ABI_MINOR 23 |
| 32 | #define SOF_ABI_PATCH 0 | |
| 32 | #define SOF_ABI_PATCH 1 | |
| 33 | 33 | |
| 34 | 34 | /* SOF ABI version number. Format within 32bit word is MMmmmppp */ |
| 35 | 35 | #define SOF_ABI_MAJOR_SHIFT	24 |
lib/libc/include/any-linux-any/xen/privcmd.h+7| ... | ... | @@ -126,6 +126,11 @@ struct privcmd_ioeventfd { |
| 126 | 126 | 	__u8 pad[2]; |
| 127 | 127 | }; |
| 128 | 128 | |
| 129 | struct privcmd_pcidev_get_gsi { | |
| 130 | 	__u32 sbdf; | |
| 131 | 	__u32 gsi; | |
| 132 | }; | |
| 133 | ||
| 129 | 134 | /* |
| 130 | 135 | * @cmd: IOCTL_PRIVCMD_HYPERCALL |
| 131 | 136 | * @arg: &privcmd_hypercall_t |
| ... | ... | @@ -157,5 +162,7 @@ struct privcmd_ioeventfd { |
| 157 | 162 | 	_IOW('P', 8, struct privcmd_irqfd) |
| 158 | 163 | #define IOCTL_PRIVCMD_IOEVENTFD					\ |
| 159 | 164 | 	_IOW('P', 9, struct privcmd_ioeventfd) |
| 165 | #define IOCTL_PRIVCMD_PCIDEV_GET_GSI				\ | |
| 166 | 	_IOC(_IOC_NONE, 'P', 10, sizeof(struct privcmd_pcidev_get_gsi)) | |
| 160 | 167 | |
| 161 | 168 | #endif /* __LINUX_PUBLIC_PRIVCMD_H__ */ |
| \ No newline at end of file |
lib/libc/include/arc-linux-any/asm/page.h+2-3| ... | ... | @@ -21,10 +21,9 @@ |
| 21 | 21 | * not available |
| 22 | 22 | */ |
| 23 | 23 | #define PAGE_SHIFT 13 |
| 24 | ||
| 25 | 24 | #define PAGE_SIZE	_BITUL(PAGE_SHIFT)	/* Default 8K */ |
| 26 | #define PAGE_OFFSET	_AC(0x80000000, UL)	/* Kernel starts at 2G onwrds */ | |
| 27 | ||
| 28 | 25 | #define PAGE_MASK	(~(PAGE_SIZE-1)) |
| 29 | 26 | |
| 27 | #define PAGE_OFFSET	_AC(0x80000000, UL)	/* Kernel starts at 2G onwrds */ | |
| 28 | ||
| 30 | 29 | #endif /* __ASM_ARC_PAGE_H */ |
| \ No newline at end of file |
lib/libc/include/arc-linux-any/asm/unistd.h+1-43| ... | ... | @@ -7,46 +7,4 @@ |
| 7 | 7 | * published by the Free Software Foundation. |
| 8 | 8 | */ |
| 9 | 9 | |
| 10 | /******** no-legacy-syscalls-ABI *******/ | |
| 11 | ||
| 12 | /* | |
| 13 | * Non-typical guard macro to enable inclusion twice in ARCH sys.c | |
| 14 | * That is how the Generic syscall wrapper generator works | |
| 15 | */ | |
| 16 | #if !defined(_UAPI_ASM_ARC_UNISTD_H) || defined(__SYSCALL) | |
| 17 | #define _ASM_ARC_UNISTD_H | |
| 18 | ||
| 19 | #define __ARCH_WANT_RENAMEAT | |
| 20 | #define __ARCH_WANT_STAT64 | |
| 21 | #define __ARCH_WANT_SET_GET_RLIMIT | |
| 22 | #define __ARCH_WANT_SYS_EXECVE | |
| 23 | #define __ARCH_WANT_SYS_CLONE | |
| 24 | #define __ARCH_WANT_SYS_CLONE3 | |
| 25 | #define __ARCH_WANT_SYS_VFORK | |
| 26 | #define __ARCH_WANT_SYS_FORK | |
| 27 | #define __ARCH_WANT_TIME32_SYSCALLS | |
| 28 | ||
| 29 | #define sys_mmap2 sys_mmap_pgoff | |
| 30 | ||
| 31 | #include <asm-generic/unistd.h> | |
| 32 | ||
| 33 | #define NR_syscalls	__NR_syscalls | |
| 34 | ||
| 35 | /* Generic syscall (fs/filesystems.c - lost in asm-generic/unistd.h */ | |
| 36 | #define __NR_sysfs		(__NR_arch_specific_syscall + 3) | |
| 37 | ||
| 38 | /* ARC specific syscall */ | |
| 39 | #define __NR_cacheflush		(__NR_arch_specific_syscall + 0) | |
| 40 | #define __NR_arc_settls		(__NR_arch_specific_syscall + 1) | |
| 41 | #define __NR_arc_gettls		(__NR_arch_specific_syscall + 2) | |
| 42 | #define __NR_arc_usr_cmpxchg	(__NR_arch_specific_syscall + 4) | |
| 43 | ||
| 44 | __SYSCALL(__NR_cacheflush, sys_cacheflush) | |
| 45 | __SYSCALL(__NR_arc_settls, sys_arc_settls) | |
| 46 | __SYSCALL(__NR_arc_gettls, sys_arc_gettls) | |
| 47 | __SYSCALL(__NR_arc_usr_cmpxchg, sys_arc_usr_cmpxchg) | |
| 48 | __SYSCALL(__NR_sysfs, sys_sysfs) | |
| 49 | ||
| 50 | #undef __SYSCALL | |
| 51 | ||
| 52 | #endif | |
| \ No newline at end of file | ||
| 10 | #include <asm/unistd_32.h> | |
| \ No newline at end of file |
lib/libc/include/arc-linux-any/asm/unistd_32.h created+352| ... | ... | @@ -0,0 +1,352 @@ |
| 1 | #ifndef _ASM_UNISTD_32_H | |
| 2 | #define _ASM_UNISTD_32_H | |
| 3 | ||
| 4 | #define __NR_io_setup 0 | |
| 5 | #define __NR_io_destroy 1 | |
| 6 | #define __NR_io_submit 2 | |
| 7 | #define __NR_io_cancel 3 | |
| 8 | #define __NR_io_getevents 4 | |
| 9 | #define __NR_setxattr 5 | |
| 10 | #define __NR_lsetxattr 6 | |
| 11 | #define __NR_fsetxattr 7 | |
| 12 | #define __NR_getxattr 8 | |
| 13 | #define __NR_lgetxattr 9 | |
| 14 | #define __NR_fgetxattr 10 | |
| 15 | #define __NR_listxattr 11 | |
| 16 | #define __NR_llistxattr 12 | |
| 17 | #define __NR_flistxattr 13 | |
| 18 | #define __NR_removexattr 14 | |
| 19 | #define __NR_lremovexattr 15 | |
| 20 | #define __NR_fremovexattr 16 | |
| 21 | #define __NR_getcwd 17 | |
| 22 | #define __NR_lookup_dcookie 18 | |
| 23 | #define __NR_eventfd2 19 | |
| 24 | #define __NR_epoll_create1 20 | |
| 25 | #define __NR_epoll_ctl 21 | |
| 26 | #define __NR_epoll_pwait 22 | |
| 27 | #define __NR_dup 23 | |
| 28 | #define __NR_dup3 24 | |
| 29 | #define __NR_fcntl64 25 | |
| 30 | #define __NR_inotify_init1 26 | |
| 31 | #define __NR_inotify_add_watch 27 | |
| 32 | #define __NR_inotify_rm_watch 28 | |
| 33 | #define __NR_ioctl 29 | |
| 34 | #define __NR_ioprio_set 30 | |
| 35 | #define __NR_ioprio_get 31 | |
| 36 | #define __NR_flock 32 | |
| 37 | #define __NR_mknodat 33 | |
| 38 | #define __NR_mkdirat 34 | |
| 39 | #define __NR_unlinkat 35 | |
| 40 | #define __NR_symlinkat 36 | |
| 41 | #define __NR_linkat 37 | |
| 42 | #define __NR_renameat 38 | |
| 43 | #define __NR_umount2 39 | |
| 44 | #define __NR_mount 40 | |
| 45 | #define __NR_pivot_root 41 | |
| 46 | #define __NR_nfsservctl 42 | |
| 47 | #define __NR_statfs64 43 | |
| 48 | #define __NR_fstatfs64 44 | |
| 49 | #define __NR_truncate64 45 | |
| 50 | #define __NR_ftruncate64 46 | |
| 51 | #define __NR_fallocate 47 | |
| 52 | #define __NR_faccessat 48 | |
| 53 | #define __NR_chdir 49 | |
| 54 | #define __NR_fchdir 50 | |
| 55 | #define __NR_chroot 51 | |
| 56 | #define __NR_fchmod 52 | |
| 57 | #define __NR_fchmodat 53 | |
| 58 | #define __NR_fchownat 54 | |
| 59 | #define __NR_fchown 55 | |
| 60 | #define __NR_openat 56 | |
| 61 | #define __NR_close 57 | |
| 62 | #define __NR_vhangup 58 | |
| 63 | #define __NR_pipe2 59 | |
| 64 | #define __NR_quotactl 60 | |
| 65 | #define __NR_getdents64 61 | |
| 66 | #define __NR_llseek 62 | |
| 67 | #define __NR_read 63 | |
| 68 | #define __NR_write 64 | |
| 69 | #define __NR_readv 65 | |
| 70 | #define __NR_writev 66 | |
| 71 | #define __NR_pread64 67 | |
| 72 | #define __NR_pwrite64 68 | |
| 73 | #define __NR_preadv 69 | |
| 74 | #define __NR_pwritev 70 | |
| 75 | #define __NR_sendfile64 71 | |
| 76 | #define __NR_pselect6 72 | |
| 77 | #define __NR_ppoll 73 | |
| 78 | #define __NR_signalfd4 74 | |
| 79 | #define __NR_vmsplice 75 | |
| 80 | #define __NR_splice 76 | |
| 81 | #define __NR_tee 77 | |
| 82 | #define __NR_readlinkat 78 | |
| 83 | #define __NR_fstatat64 79 | |
| 84 | #define __NR_fstat64 80 | |
| 85 | #define __NR_sync 81 | |
| 86 | #define __NR_fsync 82 | |
| 87 | #define __NR_fdatasync 83 | |
| 88 | #define __NR_sync_file_range 84 | |
| 89 | #define __NR_timerfd_create 85 | |
| 90 | #define __NR_timerfd_settime 86 | |
| 91 | #define __NR_timerfd_gettime 87 | |
| 92 | #define __NR_utimensat 88 | |
| 93 | #define __NR_acct 89 | |
| 94 | #define __NR_capget 90 | |
| 95 | #define __NR_capset 91 | |
| 96 | #define __NR_personality 92 | |
| 97 | #define __NR_exit 93 | |
| 98 | #define __NR_exit_group 94 | |
| 99 | #define __NR_waitid 95 | |
| 100 | #define __NR_set_tid_address 96 | |
| 101 | #define __NR_unshare 97 | |
| 102 | #define __NR_futex 98 | |
| 103 | #define __NR_set_robust_list 99 | |
| 104 | #define __NR_get_robust_list 100 | |
| 105 | #define __NR_nanosleep 101 | |
| 106 | #define __NR_getitimer 102 | |
| 107 | #define __NR_setitimer 103 | |
| 108 | #define __NR_kexec_load 104 | |
| 109 | #define __NR_init_module 105 | |
| 110 | #define __NR_delete_module 106 | |
| 111 | #define __NR_timer_create 107 | |
| 112 | #define __NR_timer_gettime 108 | |
| 113 | #define __NR_timer_getoverrun 109 | |
| 114 | #define __NR_timer_settime 110 | |
| 115 | #define __NR_timer_delete 111 | |
| 116 | #define __NR_clock_settime 112 | |
| 117 | #define __NR_clock_gettime 113 | |
| 118 | #define __NR_clock_getres 114 | |
| 119 | #define __NR_clock_nanosleep 115 | |
| 120 | #define __NR_syslog 116 | |
| 121 | #define __NR_ptrace 117 | |
| 122 | #define __NR_sched_setparam 118 | |
| 123 | #define __NR_sched_setscheduler 119 | |
| 124 | #define __NR_sched_getscheduler 120 | |
| 125 | #define __NR_sched_getparam 121 | |
| 126 | #define __NR_sched_setaffinity 122 | |
| 127 | #define __NR_sched_getaffinity 123 | |
| 128 | #define __NR_sched_yield 124 | |
| 129 | #define __NR_sched_get_priority_max 125 | |
| 130 | #define __NR_sched_get_priority_min 126 | |
| 131 | #define __NR_sched_rr_get_interval 127 | |
| 132 | #define __NR_restart_syscall 128 | |
| 133 | #define __NR_kill 129 | |
| 134 | #define __NR_tkill 130 | |
| 135 | #define __NR_tgkill 131 | |
| 136 | #define __NR_sigaltstack 132 | |
| 137 | #define __NR_rt_sigsuspend 133 | |
| 138 | #define __NR_rt_sigaction 134 | |
| 139 | #define __NR_rt_sigprocmask 135 | |
| 140 | #define __NR_rt_sigpending 136 | |
| 141 | #define __NR_rt_sigtimedwait 137 | |
| 142 | #define __NR_rt_sigqueueinfo 138 | |
| 143 | #define __NR_rt_sigreturn 139 | |
| 144 | #define __NR_setpriority 140 | |
| 145 | #define __NR_getpriority 141 | |
| 146 | #define __NR_reboot 142 | |
| 147 | #define __NR_setregid 143 | |
| 148 | #define __NR_setgid 144 | |
| 149 | #define __NR_setreuid 145 | |
| 150 | #define __NR_setuid 146 | |
| 151 | #define __NR_setresuid 147 | |
| 152 | #define __NR_getresuid 148 | |
| 153 | #define __NR_setresgid 149 | |
| 154 | #define __NR_getresgid 150 | |
| 155 | #define __NR_setfsuid 151 | |
| 156 | #define __NR_setfsgid 152 | |
| 157 | #define __NR_times 153 | |
| 158 | #define __NR_setpgid 154 | |
| 159 | #define __NR_getpgid 155 | |
| 160 | #define __NR_getsid 156 | |
| 161 | #define __NR_setsid 157 | |
| 162 | #define __NR_getgroups 158 | |
| 163 | #define __NR_setgroups 159 | |
| 164 | #define __NR_uname 160 | |
| 165 | #define __NR_sethostname 161 | |
| 166 | #define __NR_setdomainname 162 | |
| 167 | #define __NR_getrlimit 163 | |
| 168 | #define __NR_setrlimit 164 | |
| 169 | #define __NR_getrusage 165 | |
| 170 | #define __NR_umask 166 | |
| 171 | #define __NR_prctl 167 | |
| 172 | #define __NR_getcpu 168 | |
| 173 | #define __NR_gettimeofday 169 | |
| 174 | #define __NR_settimeofday 170 | |
| 175 | #define __NR_adjtimex 171 | |
| 176 | #define __NR_getpid 172 | |
| 177 | #define __NR_getppid 173 | |
| 178 | #define __NR_getuid 174 | |
| 179 | #define __NR_geteuid 175 | |
| 180 | #define __NR_getgid 176 | |
| 181 | #define __NR_getegid 177 | |
| 182 | #define __NR_gettid 178 | |
| 183 | #define __NR_sysinfo 179 | |
| 184 | #define __NR_mq_open 180 | |
| 185 | #define __NR_mq_unlink 181 | |
| 186 | #define __NR_mq_timedsend 182 | |
| 187 | #define __NR_mq_timedreceive 183 | |
| 188 | #define __NR_mq_notify 184 | |
| 189 | #define __NR_mq_getsetattr 185 | |
| 190 | #define __NR_msgget 186 | |
| 191 | #define __NR_msgctl 187 | |
| 192 | #define __NR_msgrcv 188 | |
| 193 | #define __NR_msgsnd 189 | |
| 194 | #define __NR_semget 190 | |
| 195 | #define __NR_semctl 191 | |
| 196 | #define __NR_semtimedop 192 | |
| 197 | #define __NR_semop 193 | |
| 198 | #define __NR_shmget 194 | |
| 199 | #define __NR_shmctl 195 | |
| 200 | #define __NR_shmat 196 | |
| 201 | #define __NR_shmdt 197 | |
| 202 | #define __NR_socket 198 | |
| 203 | #define __NR_socketpair 199 | |
| 204 | #define __NR_bind 200 | |
| 205 | #define __NR_listen 201 | |
| 206 | #define __NR_accept 202 | |
| 207 | #define __NR_connect 203 | |
| 208 | #define __NR_getsockname 204 | |
| 209 | #define __NR_getpeername 205 | |
| 210 | #define __NR_sendto 206 | |
| 211 | #define __NR_recvfrom 207 | |
| 212 | #define __NR_setsockopt 208 | |
| 213 | #define __NR_getsockopt 209 | |
| 214 | #define __NR_shutdown 210 | |
| 215 | #define __NR_sendmsg 211 | |
| 216 | #define __NR_recvmsg 212 | |
| 217 | #define __NR_readahead 213 | |
| 218 | #define __NR_brk 214 | |
| 219 | #define __NR_munmap 215 | |
| 220 | #define __NR_mremap 216 | |
| 221 | #define __NR_add_key 217 | |
| 222 | #define __NR_request_key 218 | |
| 223 | #define __NR_keyctl 219 | |
| 224 | #define __NR_clone 220 | |
| 225 | #define __NR_execve 221 | |
| 226 | #define __NR_mmap2 222 | |
| 227 | #define __NR_fadvise64_64 223 | |
| 228 | #define __NR_swapon 224 | |
| 229 | #define __NR_swapoff 225 | |
| 230 | #define __NR_mprotect 226 | |
| 231 | #define __NR_msync 227 | |
| 232 | #define __NR_mlock 228 | |
| 233 | #define __NR_munlock 229 | |
| 234 | #define __NR_mlockall 230 | |
| 235 | #define __NR_munlockall 231 | |
| 236 | #define __NR_mincore 232 | |
| 237 | #define __NR_madvise 233 | |
| 238 | #define __NR_remap_file_pages 234 | |
| 239 | #define __NR_mbind 235 | |
| 240 | #define __NR_get_mempolicy 236 | |
| 241 | #define __NR_set_mempolicy 237 | |
| 242 | #define __NR_migrate_pages 238 | |
| 243 | #define __NR_move_pages 239 | |
| 244 | #define __NR_rt_tgsigqueueinfo 240 | |
| 245 | #define __NR_perf_event_open 241 | |
| 246 | #define __NR_accept4 242 | |
| 247 | #define __NR_recvmmsg 243 | |
| 248 | #define __NR_cacheflush 244 | |
| 249 | #define __NR_arc_settls 245 | |
| 250 | #define __NR_arc_gettls 246 | |
| 251 | #define __NR_sysfs 247 | |
| 252 | #define __NR_arc_usr_cmpxchg 248 | |
| 253 | #define __NR_wait4 260 | |
| 254 | #define __NR_prlimit64 261 | |
| 255 | #define __NR_fanotify_init 262 | |
| 256 | #define __NR_fanotify_mark 263 | |
| 257 | #define __NR_name_to_handle_at 264 | |
| 258 | #define __NR_open_by_handle_at 265 | |
| 259 | #define __NR_clock_adjtime 266 | |
| 260 | #define __NR_syncfs 267 | |
| 261 | #define __NR_setns 268 | |
| 262 | #define __NR_sendmmsg 269 | |
| 263 | #define __NR_process_vm_readv 270 | |
| 264 | #define __NR_process_vm_writev 271 | |
| 265 | #define __NR_kcmp 272 | |
| 266 | #define __NR_finit_module 273 | |
| 267 | #define __NR_sched_setattr 274 | |
| 268 | #define __NR_sched_getattr 275 | |
| 269 | #define __NR_renameat2 276 | |
| 270 | #define __NR_seccomp 277 | |
| 271 | #define __NR_getrandom 278 | |
| 272 | #define __NR_memfd_create 279 | |
| 273 | #define __NR_bpf 280 | |
| 274 | #define __NR_execveat 281 | |
| 275 | #define __NR_userfaultfd 282 | |
| 276 | #define __NR_membarrier 283 | |
| 277 | #define __NR_mlock2 284 | |
| 278 | #define __NR_copy_file_range 285 | |
| 279 | #define __NR_preadv2 286 | |
| 280 | #define __NR_pwritev2 287 | |
| 281 | #define __NR_pkey_mprotect 288 | |
| 282 | #define __NR_pkey_alloc 289 | |
| 283 | #define __NR_pkey_free 290 | |
| 284 | #define __NR_statx 291 | |
| 285 | #define __NR_io_pgetevents 292 | |
| 286 | #define __NR_rseq 293 | |
| 287 | #define __NR_kexec_file_load 294 | |
| 288 | #define __NR_clock_gettime64 403 | |
| 289 | #define __NR_clock_settime64 404 | |
| 290 | #define __NR_clock_adjtime64 405 | |
| 291 | #define __NR_clock_getres_time64 406 | |
| 292 | #define __NR_clock_nanosleep_time64 407 | |
| 293 | #define __NR_timer_gettime64 408 | |
| 294 | #define __NR_timer_settime64 409 | |
| 295 | #define __NR_timerfd_gettime64 410 | |
| 296 | #define __NR_timerfd_settime64 411 | |
| 297 | #define __NR_utimensat_time64 412 | |
| 298 | #define __NR_pselect6_time64 413 | |
| 299 | #define __NR_ppoll_time64 414 | |
| 300 | #define __NR_io_pgetevents_time64 416 | |
| 301 | #define __NR_recvmmsg_time64 417 | |
| 302 | #define __NR_mq_timedsend_time64 418 | |
| 303 | #define __NR_mq_timedreceive_time64 419 | |
| 304 | #define __NR_semtimedop_time64 420 | |
| 305 | #define __NR_rt_sigtimedwait_time64 421 | |
| 306 | #define __NR_futex_time64 422 | |
| 307 | #define __NR_sched_rr_get_interval_time64 423 | |
| 308 | #define __NR_pidfd_send_signal 424 | |
| 309 | #define __NR_io_uring_setup 425 | |
| 310 | #define __NR_io_uring_enter 426 | |
| 311 | #define __NR_io_uring_register 427 | |
| 312 | #define __NR_open_tree 428 | |
| 313 | #define __NR_move_mount 429 | |
| 314 | #define __NR_fsopen 430 | |
| 315 | #define __NR_fsconfig 431 | |
| 316 | #define __NR_fsmount 432 | |
| 317 | #define __NR_fspick 433 | |
| 318 | #define __NR_pidfd_open 434 | |
| 319 | #define __NR_clone3 435 | |
| 320 | #define __NR_close_range 436 | |
| 321 | #define __NR_openat2 437 | |
| 322 | #define __NR_pidfd_getfd 438 | |
| 323 | #define __NR_faccessat2 439 | |
| 324 | #define __NR_process_madvise 440 | |
| 325 | #define __NR_epoll_pwait2 441 | |
| 326 | #define __NR_mount_setattr 442 | |
| 327 | #define __NR_quotactl_fd 443 | |
| 328 | #define __NR_landlock_create_ruleset 444 | |
| 329 | #define __NR_landlock_add_rule 445 | |
| 330 | #define __NR_landlock_restrict_self 446 | |
| 331 | #define __NR_process_mrelease 448 | |
| 332 | #define __NR_futex_waitv 449 | |
| 333 | #define __NR_set_mempolicy_home_node 450 | |
| 334 | #define __NR_cachestat 451 | |
| 335 | #define __NR_fchmodat2 452 | |
| 336 | #define __NR_map_shadow_stack 453 | |
| 337 | #define __NR_futex_wake 454 | |
| 338 | #define __NR_futex_wait 455 | |
| 339 | #define __NR_futex_requeue 456 | |
| 340 | #define __NR_statmount 457 | |
| 341 | #define __NR_listmount 458 | |
| 342 | #define __NR_lsm_get_self_attr 459 | |
| 343 | #define __NR_lsm_set_self_attr 460 | |
| 344 | #define __NR_lsm_list_modules 461 | |
| 345 | #define __NR_mseal 462 | |
| 346 | #define __NR_setxattrat 463 | |
| 347 | #define __NR_getxattrat 464 | |
| 348 | #define __NR_listxattrat 465 | |
| 349 | #define __NR_removexattrat 466 | |
| 350 | ||
| 351 | ||
| 352 | #endif /* _ASM_UNISTD_32_H */ | |
| \ No newline at end of file |
lib/libc/include/arm-linux-any/asm/unistd-eabi.h+4| ... | ... | @@ -416,5 +416,9 @@ |
| 416 | 416 | #define __NR_lsm_set_self_attr (__NR_SYSCALL_BASE + 460) |
| 417 | 417 | #define __NR_lsm_list_modules (__NR_SYSCALL_BASE + 461) |
| 418 | 418 | #define __NR_mseal (__NR_SYSCALL_BASE + 462) |
| 419 | #define __NR_setxattrat (__NR_SYSCALL_BASE + 463) | |
| 420 | #define __NR_getxattrat (__NR_SYSCALL_BASE + 464) | |
| 421 | #define __NR_listxattrat (__NR_SYSCALL_BASE + 465) | |
| 422 | #define __NR_removexattrat (__NR_SYSCALL_BASE + 466) | |
| 419 | 423 | |
| 420 | 424 | #endif /* _ASM_UNISTD_EABI_H */ |
| \ No newline at end of file |
lib/libc/include/arm-linux-any/asm/unistd-oabi.h+4| ... | ... | @@ -428,5 +428,9 @@ |
| 428 | 428 | #define __NR_lsm_set_self_attr (__NR_SYSCALL_BASE + 460) |
| 429 | 429 | #define __NR_lsm_list_modules (__NR_SYSCALL_BASE + 461) |
| 430 | 430 | #define __NR_mseal (__NR_SYSCALL_BASE + 462) |
| 431 | #define __NR_setxattrat (__NR_SYSCALL_BASE + 463) | |
| 432 | #define __NR_getxattrat (__NR_SYSCALL_BASE + 464) | |
| 433 | #define __NR_listxattrat (__NR_SYSCALL_BASE + 465) | |
| 434 | #define __NR_removexattrat (__NR_SYSCALL_BASE + 466) | |
| 431 | 435 | |
| 432 | 436 | #endif /* _ASM_UNISTD_OABI_H */ |
| \ No newline at end of file |
lib/libc/include/csky-linux-any/asm/unistd.h+3-12| ... | ... | @@ -1,15 +1,6 @@ |
| 1 | 1 | /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ |
| 2 | 2 | |
| 3 | #define __ARCH_WANT_STAT64 | |
| 4 | #define __ARCH_WANT_NEW_STAT | |
| 5 | #define __ARCH_WANT_SYS_CLONE | |
| 6 | #define __ARCH_WANT_SYS_CLONE3 | |
| 7 | #define __ARCH_WANT_SET_GET_RLIMIT | |
| 8 | #define __ARCH_WANT_TIME32_SYSCALLS | |
| 9 | #define __ARCH_WANT_SYNC_FILE_RANGE2 | |
| 10 | #include <asm-generic/unistd.h> | |
| 3 | #include <asm/unistd_32.h> | |
| 11 | 4 | |
| 12 | #define __NR_set_thread_area	(__NR_arch_specific_syscall + 0) | |
| 13 | __SYSCALL(__NR_set_thread_area, sys_set_thread_area) | |
| 14 | #define __NR_cacheflush		(__NR_arch_specific_syscall + 1) | |
| 15 | __SYSCALL(__NR_cacheflush, sys_cacheflush) | |
| \ No newline at end of file | ||
| 5 | #define __NR_sync_file_range2 84 | |
| 6 | #undef __NR_sync_file_range | |
| \ No newline at end of file |
lib/libc/include/csky-linux-any/asm/unistd_32.h created+348| ... | ... | @@ -0,0 +1,348 @@ |
| 1 | #ifndef _ASM_UNISTD_32_H | |
| 2 | #define _ASM_UNISTD_32_H | |
| 3 | ||
| 4 | #define __NR_io_setup 0 | |
| 5 | #define __NR_io_destroy 1 | |
| 6 | #define __NR_io_submit 2 | |
| 7 | #define __NR_io_cancel 3 | |
| 8 | #define __NR_io_getevents 4 | |
| 9 | #define __NR_setxattr 5 | |
| 10 | #define __NR_lsetxattr 6 | |
| 11 | #define __NR_fsetxattr 7 | |
| 12 | #define __NR_getxattr 8 | |
| 13 | #define __NR_lgetxattr 9 | |
| 14 | #define __NR_fgetxattr 10 | |
| 15 | #define __NR_listxattr 11 | |
| 16 | #define __NR_llistxattr 12 | |
| 17 | #define __NR_flistxattr 13 | |
| 18 | #define __NR_removexattr 14 | |
| 19 | #define __NR_lremovexattr 15 | |
| 20 | #define __NR_fremovexattr 16 | |
| 21 | #define __NR_getcwd 17 | |
| 22 | #define __NR_lookup_dcookie 18 | |
| 23 | #define __NR_eventfd2 19 | |
| 24 | #define __NR_epoll_create1 20 | |
| 25 | #define __NR_epoll_ctl 21 | |
| 26 | #define __NR_epoll_pwait 22 | |
| 27 | #define __NR_dup 23 | |
| 28 | #define __NR_dup3 24 | |
| 29 | #define __NR_fcntl64 25 | |
| 30 | #define __NR_inotify_init1 26 | |
| 31 | #define __NR_inotify_add_watch 27 | |
| 32 | #define __NR_inotify_rm_watch 28 | |
| 33 | #define __NR_ioctl 29 | |
| 34 | #define __NR_ioprio_set 30 | |
| 35 | #define __NR_ioprio_get 31 | |
| 36 | #define __NR_flock 32 | |
| 37 | #define __NR_mknodat 33 | |
| 38 | #define __NR_mkdirat 34 | |
| 39 | #define __NR_unlinkat 35 | |
| 40 | #define __NR_symlinkat 36 | |
| 41 | #define __NR_linkat 37 | |
| 42 | #define __NR_umount2 39 | |
| 43 | #define __NR_mount 40 | |
| 44 | #define __NR_pivot_root 41 | |
| 45 | #define __NR_nfsservctl 42 | |
| 46 | #define __NR_statfs64 43 | |
| 47 | #define __NR_fstatfs64 44 | |
| 48 | #define __NR_truncate64 45 | |
| 49 | #define __NR_ftruncate64 46 | |
| 50 | #define __NR_fallocate 47 | |
| 51 | #define __NR_faccessat 48 | |
| 52 | #define __NR_chdir 49 | |
| 53 | #define __NR_fchdir 50 | |
| 54 | #define __NR_chroot 51 | |
| 55 | #define __NR_fchmod 52 | |
| 56 | #define __NR_fchmodat 53 | |
| 57 | #define __NR_fchownat 54 | |
| 58 | #define __NR_fchown 55 | |
| 59 | #define __NR_openat 56 | |
| 60 | #define __NR_close 57 | |
| 61 | #define __NR_vhangup 58 | |
| 62 | #define __NR_pipe2 59 | |
| 63 | #define __NR_quotactl 60 | |
| 64 | #define __NR_getdents64 61 | |
| 65 | #define __NR_llseek 62 | |
| 66 | #define __NR_read 63 | |
| 67 | #define __NR_write 64 | |
| 68 | #define __NR_readv 65 | |
| 69 | #define __NR_writev 66 | |
| 70 | #define __NR_pread64 67 | |
| 71 | #define __NR_pwrite64 68 | |
| 72 | #define __NR_preadv 69 | |
| 73 | #define __NR_pwritev 70 | |
| 74 | #define __NR_sendfile64 71 | |
| 75 | #define __NR_pselect6 72 | |
| 76 | #define __NR_ppoll 73 | |
| 77 | #define __NR_signalfd4 74 | |
| 78 | #define __NR_vmsplice 75 | |
| 79 | #define __NR_splice 76 | |
| 80 | #define __NR_tee 77 | |
| 81 | #define __NR_readlinkat 78 | |
| 82 | #define __NR_fstatat64 79 | |
| 83 | #define __NR_fstat64 80 | |
| 84 | #define __NR_sync 81 | |
| 85 | #define __NR_fsync 82 | |
| 86 | #define __NR_fdatasync 83 | |
| 87 | #define __NR_sync_file_range 84 | |
| 88 | #define __NR_timerfd_create 85 | |
| 89 | #define __NR_timerfd_settime 86 | |
| 90 | #define __NR_timerfd_gettime 87 | |
| 91 | #define __NR_utimensat 88 | |
| 92 | #define __NR_acct 89 | |
| 93 | #define __NR_capget 90 | |
| 94 | #define __NR_capset 91 | |
| 95 | #define __NR_personality 92 | |
| 96 | #define __NR_exit 93 | |
| 97 | #define __NR_exit_group 94 | |
| 98 | #define __NR_waitid 95 | |
| 99 | #define __NR_set_tid_address 96 | |
| 100 | #define __NR_unshare 97 | |
| 101 | #define __NR_futex 98 | |
| 102 | #define __NR_set_robust_list 99 | |
| 103 | #define __NR_get_robust_list 100 | |
| 104 | #define __NR_nanosleep 101 | |
| 105 | #define __NR_getitimer 102 | |
| 106 | #define __NR_setitimer 103 | |
| 107 | #define __NR_kexec_load 104 | |
| 108 | #define __NR_init_module 105 | |
| 109 | #define __NR_delete_module 106 | |
| 110 | #define __NR_timer_create 107 | |
| 111 | #define __NR_timer_gettime 108 | |
| 112 | #define __NR_timer_getoverrun 109 | |
| 113 | #define __NR_timer_settime 110 | |
| 114 | #define __NR_timer_delete 111 | |
| 115 | #define __NR_clock_settime 112 | |
| 116 | #define __NR_clock_gettime 113 | |
| 117 | #define __NR_clock_getres 114 | |
| 118 | #define __NR_clock_nanosleep 115 | |
| 119 | #define __NR_syslog 116 | |
| 120 | #define __NR_ptrace 117 | |
| 121 | #define __NR_sched_setparam 118 | |
| 122 | #define __NR_sched_setscheduler 119 | |
| 123 | #define __NR_sched_getscheduler 120 | |
| 124 | #define __NR_sched_getparam 121 | |
| 125 | #define __NR_sched_setaffinity 122 | |
| 126 | #define __NR_sched_getaffinity 123 | |
| 127 | #define __NR_sched_yield 124 | |
| 128 | #define __NR_sched_get_priority_max 125 | |
| 129 | #define __NR_sched_get_priority_min 126 | |
| 130 | #define __NR_sched_rr_get_interval 127 | |
| 131 | #define __NR_restart_syscall 128 | |
| 132 | #define __NR_kill 129 | |
| 133 | #define __NR_tkill 130 | |
| 134 | #define __NR_tgkill 131 | |
| 135 | #define __NR_sigaltstack 132 | |
| 136 | #define __NR_rt_sigsuspend 133 | |
| 137 | #define __NR_rt_sigaction 134 | |
| 138 | #define __NR_rt_sigprocmask 135 | |
| 139 | #define __NR_rt_sigpending 136 | |
| 140 | #define __NR_rt_sigtimedwait 137 | |
| 141 | #define __NR_rt_sigqueueinfo 138 | |
| 142 | #define __NR_rt_sigreturn 139 | |
| 143 | #define __NR_setpriority 140 | |
| 144 | #define __NR_getpriority 141 | |
| 145 | #define __NR_reboot 142 | |
| 146 | #define __NR_setregid 143 | |
| 147 | #define __NR_setgid 144 | |
| 148 | #define __NR_setreuid 145 | |
| 149 | #define __NR_setuid 146 | |
| 150 | #define __NR_setresuid 147 | |
| 151 | #define __NR_getresuid 148 | |
| 152 | #define __NR_setresgid 149 | |
| 153 | #define __NR_getresgid 150 | |
| 154 | #define __NR_setfsuid 151 | |
| 155 | #define __NR_setfsgid 152 | |
| 156 | #define __NR_times 153 | |
| 157 | #define __NR_setpgid 154 | |
| 158 | #define __NR_getpgid 155 | |
| 159 | #define __NR_getsid 156 | |
| 160 | #define __NR_setsid 157 | |
| 161 | #define __NR_getgroups 158 | |
| 162 | #define __NR_setgroups 159 | |
| 163 | #define __NR_uname 160 | |
| 164 | #define __NR_sethostname 161 | |
| 165 | #define __NR_setdomainname 162 | |
| 166 | #define __NR_getrlimit 163 | |
| 167 | #define __NR_setrlimit 164 | |
| 168 | #define __NR_getrusage 165 | |
| 169 | #define __NR_umask 166 | |
| 170 | #define __NR_prctl 167 | |
| 171 | #define __NR_getcpu 168 | |
| 172 | #define __NR_gettimeofday 169 | |
| 173 | #define __NR_settimeofday 170 | |
| 174 | #define __NR_adjtimex 171 | |
| 175 | #define __NR_getpid 172 | |
| 176 | #define __NR_getppid 173 | |
| 177 | #define __NR_getuid 174 | |
| 178 | #define __NR_geteuid 175 | |
| 179 | #define __NR_getgid 176 | |
| 180 | #define __NR_getegid 177 | |
| 181 | #define __NR_gettid 178 | |
| 182 | #define __NR_sysinfo 179 | |
| 183 | #define __NR_mq_open 180 | |
| 184 | #define __NR_mq_unlink 181 | |
| 185 | #define __NR_mq_timedsend 182 | |
| 186 | #define __NR_mq_timedreceive 183 | |
| 187 | #define __NR_mq_notify 184 | |
| 188 | #define __NR_mq_getsetattr 185 | |
| 189 | #define __NR_msgget 186 | |
| 190 | #define __NR_msgctl 187 | |
| 191 | #define __NR_msgrcv 188 | |
| 192 | #define __NR_msgsnd 189 | |
| 193 | #define __NR_semget 190 | |
| 194 | #define __NR_semctl 191 | |
| 195 | #define __NR_semtimedop 192 | |
| 196 | #define __NR_semop 193 | |
| 197 | #define __NR_shmget 194 | |
| 198 | #define __NR_shmctl 195 | |
| 199 | #define __NR_shmat 196 | |
| 200 | #define __NR_shmdt 197 | |
| 201 | #define __NR_socket 198 | |
| 202 | #define __NR_socketpair 199 | |
| 203 | #define __NR_bind 200 | |
| 204 | #define __NR_listen 201 | |
| 205 | #define __NR_accept 202 | |
| 206 | #define __NR_connect 203 | |
| 207 | #define __NR_getsockname 204 | |
| 208 | #define __NR_getpeername 205 | |
| 209 | #define __NR_sendto 206 | |
| 210 | #define __NR_recvfrom 207 | |
| 211 | #define __NR_setsockopt 208 | |
| 212 | #define __NR_getsockopt 209 | |
| 213 | #define __NR_shutdown 210 | |
| 214 | #define __NR_sendmsg 211 | |
| 215 | #define __NR_recvmsg 212 | |
| 216 | #define __NR_readahead 213 | |
| 217 | #define __NR_brk 214 | |
| 218 | #define __NR_munmap 215 | |
| 219 | #define __NR_mremap 216 | |
| 220 | #define __NR_add_key 217 | |
| 221 | #define __NR_request_key 218 | |
| 222 | #define __NR_keyctl 219 | |
| 223 | #define __NR_clone 220 | |
| 224 | #define __NR_execve 221 | |
| 225 | #define __NR_mmap2 222 | |
| 226 | #define __NR_fadvise64_64 223 | |
| 227 | #define __NR_swapon 224 | |
| 228 | #define __NR_swapoff 225 | |
| 229 | #define __NR_mprotect 226 | |
| 230 | #define __NR_msync 227 | |
| 231 | #define __NR_mlock 228 | |
| 232 | #define __NR_munlock 229 | |
| 233 | #define __NR_mlockall 230 | |
| 234 | #define __NR_munlockall 231 | |
| 235 | #define __NR_mincore 232 | |
| 236 | #define __NR_madvise 233 | |
| 237 | #define __NR_remap_file_pages 234 | |
| 238 | #define __NR_mbind 235 | |
| 239 | #define __NR_get_mempolicy 236 | |
| 240 | #define __NR_set_mempolicy 237 | |
| 241 | #define __NR_migrate_pages 238 | |
| 242 | #define __NR_move_pages 239 | |
| 243 | #define __NR_rt_tgsigqueueinfo 240 | |
| 244 | #define __NR_perf_event_open 241 | |
| 245 | #define __NR_accept4 242 | |
| 246 | #define __NR_recvmmsg 243 | |
| 247 | #define __NR_set_thread_area 244 | |
| 248 | #define __NR_cacheflush 245 | |
| 249 | #define __NR_wait4 260 | |
| 250 | #define __NR_prlimit64 261 | |
| 251 | #define __NR_fanotify_init 262 | |
| 252 | #define __NR_fanotify_mark 263 | |
| 253 | #define __NR_name_to_handle_at 264 | |
| 254 | #define __NR_open_by_handle_at 265 | |
| 255 | #define __NR_clock_adjtime 266 | |
| 256 | #define __NR_syncfs 267 | |
| 257 | #define __NR_setns 268 | |
| 258 | #define __NR_sendmmsg 269 | |
| 259 | #define __NR_process_vm_readv 270 | |
| 260 | #define __NR_process_vm_writev 271 | |
| 261 | #define __NR_kcmp 272 | |
| 262 | #define __NR_finit_module 273 | |
| 263 | #define __NR_sched_setattr 274 | |
| 264 | #define __NR_sched_getattr 275 | |
| 265 | #define __NR_renameat2 276 | |
| 266 | #define __NR_seccomp 277 | |
| 267 | #define __NR_getrandom 278 | |
| 268 | #define __NR_memfd_create 279 | |
| 269 | #define __NR_bpf 280 | |
| 270 | #define __NR_execveat 281 | |
| 271 | #define __NR_userfaultfd 282 | |
| 272 | #define __NR_membarrier 283 | |
| 273 | #define __NR_mlock2 284 | |
| 274 | #define __NR_copy_file_range 285 | |
| 275 | #define __NR_preadv2 286 | |
| 276 | #define __NR_pwritev2 287 | |
| 277 | #define __NR_pkey_mprotect 288 | |
| 278 | #define __NR_pkey_alloc 289 | |
| 279 | #define __NR_pkey_free 290 | |
| 280 | #define __NR_statx 291 | |
| 281 | #define __NR_io_pgetevents 292 | |
| 282 | #define __NR_rseq 293 | |
| 283 | #define __NR_kexec_file_load 294 | |
| 284 | #define __NR_clock_gettime64 403 | |
| 285 | #define __NR_clock_settime64 404 | |
| 286 | #define __NR_clock_adjtime64 405 | |
| 287 | #define __NR_clock_getres_time64 406 | |
| 288 | #define __NR_clock_nanosleep_time64 407 | |
| 289 | #define __NR_timer_gettime64 408 | |
| 290 | #define __NR_timer_settime64 409 | |
| 291 | #define __NR_timerfd_gettime64 410 | |
| 292 | #define __NR_timerfd_settime64 411 | |
| 293 | #define __NR_utimensat_time64 412 | |
| 294 | #define __NR_pselect6_time64 413 | |
| 295 | #define __NR_ppoll_time64 414 | |
| 296 | #define __NR_io_pgetevents_time64 416 | |
| 297 | #define __NR_recvmmsg_time64 417 | |
| 298 | #define __NR_mq_timedsend_time64 418 | |
| 299 | #define __NR_mq_timedreceive_time64 419 | |
| 300 | #define __NR_semtimedop_time64 420 | |
| 301 | #define __NR_rt_sigtimedwait_time64 421 | |
| 302 | #define __NR_futex_time64 422 | |
| 303 | #define __NR_sched_rr_get_interval_time64 423 | |
| 304 | #define __NR_pidfd_send_signal 424 | |
| 305 | #define __NR_io_uring_setup 425 | |
| 306 | #define __NR_io_uring_enter 426 | |
| 307 | #define __NR_io_uring_register 427 | |
| 308 | #define __NR_open_tree 428 | |
| 309 | #define __NR_move_mount 429 | |
| 310 | #define __NR_fsopen 430 | |
| 311 | #define __NR_fsconfig 431 | |
| 312 | #define __NR_fsmount 432 | |
| 313 | #define __NR_fspick 433 | |
| 314 | #define __NR_pidfd_open 434 | |
| 315 | #define __NR_clone3 435 | |
| 316 | #define __NR_close_range 436 | |
| 317 | #define __NR_openat2 437 | |
| 318 | #define __NR_pidfd_getfd 438 | |
| 319 | #define __NR_faccessat2 439 | |
| 320 | #define __NR_process_madvise 440 | |
| 321 | #define __NR_epoll_pwait2 441 | |
| 322 | #define __NR_mount_setattr 442 | |
| 323 | #define __NR_quotactl_fd 443 | |
| 324 | #define __NR_landlock_create_ruleset 444 | |
| 325 | #define __NR_landlock_add_rule 445 | |
| 326 | #define __NR_landlock_restrict_self 446 | |
| 327 | #define __NR_process_mrelease 448 | |
| 328 | #define __NR_futex_waitv 449 | |
| 329 | #define __NR_set_mempolicy_home_node 450 | |
| 330 | #define __NR_cachestat 451 | |
| 331 | #define __NR_fchmodat2 452 | |
| 332 | #define __NR_map_shadow_stack 453 | |
| 333 | #define __NR_futex_wake 454 | |
| 334 | #define __NR_futex_wait 455 | |
| 335 | #define __NR_futex_requeue 456 | |
| 336 | #define __NR_statmount 457 | |
| 337 | #define __NR_listmount 458 | |
| 338 | #define __NR_lsm_get_self_attr 459 | |
| 339 | #define __NR_lsm_set_self_attr 460 | |
| 340 | #define __NR_lsm_list_modules 461 | |
| 341 | #define __NR_mseal 462 | |
| 342 | #define __NR_setxattrat 463 | |
| 343 | #define __NR_getxattrat 464 | |
| 344 | #define __NR_listxattrat 465 | |
| 345 | #define __NR_removexattrat 466 | |
| 346 | ||
| 347 | ||
| 348 | #endif /* _ASM_UNISTD_32_H */ | |
| \ No newline at end of file |
lib/libc/include/hexagon-linux-any/asm/unistd.h+3-11| ... | ... | @@ -27,15 +27,7 @@ |
| 27 | 27 | * See also: syscalltab.c |
| 28 | 28 | */ |
| 29 | 29 | |
| 30 | #define sys_mmap2 sys_mmap_pgoff | |
| 31 | #define __ARCH_WANT_RENAMEAT | |
| 32 | #define __ARCH_WANT_STAT64 | |
| 33 | #define __ARCH_WANT_SET_GET_RLIMIT | |
| 34 | #define __ARCH_WANT_SYS_EXECVE | |
| 35 | #define __ARCH_WANT_SYS_CLONE | |
| 36 | #define __ARCH_WANT_SYS_VFORK | |
| 37 | #define __ARCH_WANT_SYS_FORK | |
| 38 | #define __ARCH_WANT_TIME32_SYSCALLS | |
| 39 | #define __ARCH_WANT_SYNC_FILE_RANGE2 | |
| 30 | #include <asm/unistd_32.h> | |
| 40 | 31 | |
| 41 | #include <asm-generic/unistd.h> | |
| \ No newline at end of file | ||
| 32 | #define __NR_sync_file_range2 84 | |
| 33 | #undef __NR_sync_file_range | |
| \ No newline at end of file |
lib/libc/include/hexagon-linux-any/asm/unistd_32.h created+347| ... | ... | @@ -0,0 +1,347 @@ |
| 1 | #ifndef _ASM_UNISTD_32_H | |
| 2 | #define _ASM_UNISTD_32_H | |
| 3 | ||
| 4 | #define __NR_io_setup 0 | |
| 5 | #define __NR_io_destroy 1 | |
| 6 | #define __NR_io_submit 2 | |
| 7 | #define __NR_io_cancel 3 | |
| 8 | #define __NR_io_getevents 4 | |
| 9 | #define __NR_setxattr 5 | |
| 10 | #define __NR_lsetxattr 6 | |
| 11 | #define __NR_fsetxattr 7 | |
| 12 | #define __NR_getxattr 8 | |
| 13 | #define __NR_lgetxattr 9 | |
| 14 | #define __NR_fgetxattr 10 | |
| 15 | #define __NR_listxattr 11 | |
| 16 | #define __NR_llistxattr 12 | |
| 17 | #define __NR_flistxattr 13 | |
| 18 | #define __NR_removexattr 14 | |
| 19 | #define __NR_lremovexattr 15 | |
| 20 | #define __NR_fremovexattr 16 | |
| 21 | #define __NR_getcwd 17 | |
| 22 | #define __NR_lookup_dcookie 18 | |
| 23 | #define __NR_eventfd2 19 | |
| 24 | #define __NR_epoll_create1 20 | |
| 25 | #define __NR_epoll_ctl 21 | |
| 26 | #define __NR_epoll_pwait 22 | |
| 27 | #define __NR_dup 23 | |
| 28 | #define __NR_dup3 24 | |
| 29 | #define __NR_fcntl64 25 | |
| 30 | #define __NR_inotify_init1 26 | |
| 31 | #define __NR_inotify_add_watch 27 | |
| 32 | #define __NR_inotify_rm_watch 28 | |
| 33 | #define __NR_ioctl 29 | |
| 34 | #define __NR_ioprio_set 30 | |
| 35 | #define __NR_ioprio_get 31 | |
| 36 | #define __NR_flock 32 | |
| 37 | #define __NR_mknodat 33 | |
| 38 | #define __NR_mkdirat 34 | |
| 39 | #define __NR_unlinkat 35 | |
| 40 | #define __NR_symlinkat 36 | |
| 41 | #define __NR_linkat 37 | |
| 42 | #define __NR_renameat 38 | |
| 43 | #define __NR_umount2 39 | |
| 44 | #define __NR_mount 40 | |
| 45 | #define __NR_pivot_root 41 | |
| 46 | #define __NR_nfsservctl 42 | |
| 47 | #define __NR_statfs64 43 | |
| 48 | #define __NR_fstatfs64 44 | |
| 49 | #define __NR_truncate64 45 | |
| 50 | #define __NR_ftruncate64 46 | |
| 51 | #define __NR_fallocate 47 | |
| 52 | #define __NR_faccessat 48 | |
| 53 | #define __NR_chdir 49 | |
| 54 | #define __NR_fchdir 50 | |
| 55 | #define __NR_chroot 51 | |
| 56 | #define __NR_fchmod 52 | |
| 57 | #define __NR_fchmodat 53 | |
| 58 | #define __NR_fchownat 54 | |
| 59 | #define __NR_fchown 55 | |
| 60 | #define __NR_openat 56 | |
| 61 | #define __NR_close 57 | |
| 62 | #define __NR_vhangup 58 | |
| 63 | #define __NR_pipe2 59 | |
| 64 | #define __NR_quotactl 60 | |
| 65 | #define __NR_getdents64 61 | |
| 66 | #define __NR_llseek 62 | |
| 67 | #define __NR_read 63 | |
| 68 | #define __NR_write 64 | |
| 69 | #define __NR_readv 65 | |
| 70 | #define __NR_writev 66 | |
| 71 | #define __NR_pread64 67 | |
| 72 | #define __NR_pwrite64 68 | |
| 73 | #define __NR_preadv 69 | |
| 74 | #define __NR_pwritev 70 | |
| 75 | #define __NR_sendfile64 71 | |
| 76 | #define __NR_pselect6 72 | |
| 77 | #define __NR_ppoll 73 | |
| 78 | #define __NR_signalfd4 74 | |
| 79 | #define __NR_vmsplice 75 | |
| 80 | #define __NR_splice 76 | |
| 81 | #define __NR_tee 77 | |
| 82 | #define __NR_readlinkat 78 | |
| 83 | #define __NR_fstatat64 79 | |
| 84 | #define __NR_fstat64 80 | |
| 85 | #define __NR_sync 81 | |
| 86 | #define __NR_fsync 82 | |
| 87 | #define __NR_fdatasync 83 | |
| 88 | #define __NR_sync_file_range 84 | |
| 89 | #define __NR_timerfd_create 85 | |
| 90 | #define __NR_timerfd_settime 86 | |
| 91 | #define __NR_timerfd_gettime 87 | |
| 92 | #define __NR_utimensat 88 | |
| 93 | #define __NR_acct 89 | |
| 94 | #define __NR_capget 90 | |
| 95 | #define __NR_capset 91 | |
| 96 | #define __NR_personality 92 | |
| 97 | #define __NR_exit 93 | |
| 98 | #define __NR_exit_group 94 | |
| 99 | #define __NR_waitid 95 | |
| 100 | #define __NR_set_tid_address 96 | |
| 101 | #define __NR_unshare 97 | |
| 102 | #define __NR_futex 98 | |
| 103 | #define __NR_set_robust_list 99 | |
| 104 | #define __NR_get_robust_list 100 | |
| 105 | #define __NR_nanosleep 101 | |
| 106 | #define __NR_getitimer 102 | |
| 107 | #define __NR_setitimer 103 | |
| 108 | #define __NR_kexec_load 104 | |
| 109 | #define __NR_init_module 105 | |
| 110 | #define __NR_delete_module 106 | |
| 111 | #define __NR_timer_create 107 | |
| 112 | #define __NR_timer_gettime 108 | |
| 113 | #define __NR_timer_getoverrun 109 | |
| 114 | #define __NR_timer_settime 110 | |
| 115 | #define __NR_timer_delete 111 | |
| 116 | #define __NR_clock_settime 112 | |
| 117 | #define __NR_clock_gettime 113 | |
| 118 | #define __NR_clock_getres 114 | |
| 119 | #define __NR_clock_nanosleep 115 | |
| 120 | #define __NR_syslog 116 | |
| 121 | #define __NR_ptrace 117 | |
| 122 | #define __NR_sched_setparam 118 | |
| 123 | #define __NR_sched_setscheduler 119 | |
| 124 | #define __NR_sched_getscheduler 120 | |
| 125 | #define __NR_sched_getparam 121 | |
| 126 | #define __NR_sched_setaffinity 122 | |
| 127 | #define __NR_sched_getaffinity 123 | |
| 128 | #define __NR_sched_yield 124 | |
| 129 | #define __NR_sched_get_priority_max 125 | |
| 130 | #define __NR_sched_get_priority_min 126 | |
| 131 | #define __NR_sched_rr_get_interval 127 | |
| 132 | #define __NR_restart_syscall 128 | |
| 133 | #define __NR_kill 129 | |
| 134 | #define __NR_tkill 130 | |
| 135 | #define __NR_tgkill 131 | |
| 136 | #define __NR_sigaltstack 132 | |
| 137 | #define __NR_rt_sigsuspend 133 | |
| 138 | #define __NR_rt_sigaction 134 | |
| 139 | #define __NR_rt_sigprocmask 135 | |
| 140 | #define __NR_rt_sigpending 136 | |
| 141 | #define __NR_rt_sigtimedwait 137 | |
| 142 | #define __NR_rt_sigqueueinfo 138 | |
| 143 | #define __NR_rt_sigreturn 139 | |
| 144 | #define __NR_setpriority 140 | |
| 145 | #define __NR_getpriority 141 | |
| 146 | #define __NR_reboot 142 | |
| 147 | #define __NR_setregid 143 | |
| 148 | #define __NR_setgid 144 | |
| 149 | #define __NR_setreuid 145 | |
| 150 | #define __NR_setuid 146 | |
| 151 | #define __NR_setresuid 147 | |
| 152 | #define __NR_getresuid 148 | |
| 153 | #define __NR_setresgid 149 | |
| 154 | #define __NR_getresgid 150 | |
| 155 | #define __NR_setfsuid 151 | |
| 156 | #define __NR_setfsgid 152 | |
| 157 | #define __NR_times 153 | |
| 158 | #define __NR_setpgid 154 | |
| 159 | #define __NR_getpgid 155 | |
| 160 | #define __NR_getsid 156 | |
| 161 | #define __NR_setsid 157 | |
| 162 | #define __NR_getgroups 158 | |
| 163 | #define __NR_setgroups 159 | |
| 164 | #define __NR_uname 160 | |
| 165 | #define __NR_sethostname 161 | |
| 166 | #define __NR_setdomainname 162 | |
| 167 | #define __NR_getrlimit 163 | |
| 168 | #define __NR_setrlimit 164 | |
| 169 | #define __NR_getrusage 165 | |
| 170 | #define __NR_umask 166 | |
| 171 | #define __NR_prctl 167 | |
| 172 | #define __NR_getcpu 168 | |
| 173 | #define __NR_gettimeofday 169 | |
| 174 | #define __NR_settimeofday 170 | |
| 175 | #define __NR_adjtimex 171 | |
| 176 | #define __NR_getpid 172 | |
| 177 | #define __NR_getppid 173 | |
| 178 | #define __NR_getuid 174 | |
| 179 | #define __NR_geteuid 175 | |
| 180 | #define __NR_getgid 176 | |
| 181 | #define __NR_getegid 177 | |
| 182 | #define __NR_gettid 178 | |
| 183 | #define __NR_sysinfo 179 | |
| 184 | #define __NR_mq_open 180 | |
| 185 | #define __NR_mq_unlink 181 | |
| 186 | #define __NR_mq_timedsend 182 | |
| 187 | #define __NR_mq_timedreceive 183 | |
| 188 | #define __NR_mq_notify 184 | |
| 189 | #define __NR_mq_getsetattr 185 | |
| 190 | #define __NR_msgget 186 | |
| 191 | #define __NR_msgctl 187 | |
| 192 | #define __NR_msgrcv 188 | |
| 193 | #define __NR_msgsnd 189 | |
| 194 | #define __NR_semget 190 | |
| 195 | #define __NR_semctl 191 | |
| 196 | #define __NR_semtimedop 192 | |
| 197 | #define __NR_semop 193 | |
| 198 | #define __NR_shmget 194 | |
| 199 | #define __NR_shmctl 195 | |
| 200 | #define __NR_shmat 196 | |
| 201 | #define __NR_shmdt 197 | |
| 202 | #define __NR_socket 198 | |
| 203 | #define __NR_socketpair 199 | |
| 204 | #define __NR_bind 200 | |
| 205 | #define __NR_listen 201 | |
| 206 | #define __NR_accept 202 | |
| 207 | #define __NR_connect 203 | |
| 208 | #define __NR_getsockname 204 | |
| 209 | #define __NR_getpeername 205 | |
| 210 | #define __NR_sendto 206 | |
| 211 | #define __NR_recvfrom 207 | |
| 212 | #define __NR_setsockopt 208 | |
| 213 | #define __NR_getsockopt 209 | |
| 214 | #define __NR_shutdown 210 | |
| 215 | #define __NR_sendmsg 211 | |
| 216 | #define __NR_recvmsg 212 | |
| 217 | #define __NR_readahead 213 | |
| 218 | #define __NR_brk 214 | |
| 219 | #define __NR_munmap 215 | |
| 220 | #define __NR_mremap 216 | |
| 221 | #define __NR_add_key 217 | |
| 222 | #define __NR_request_key 218 | |
| 223 | #define __NR_keyctl 219 | |
| 224 | #define __NR_clone 220 | |
| 225 | #define __NR_execve 221 | |
| 226 | #define __NR_mmap2 222 | |
| 227 | #define __NR_fadvise64_64 223 | |
| 228 | #define __NR_swapon 224 | |
| 229 | #define __NR_swapoff 225 | |
| 230 | #define __NR_mprotect 226 | |
| 231 | #define __NR_msync 227 | |
| 232 | #define __NR_mlock 228 | |
| 233 | #define __NR_munlock 229 | |
| 234 | #define __NR_mlockall 230 | |
| 235 | #define __NR_munlockall 231 | |
| 236 | #define __NR_mincore 232 | |
| 237 | #define __NR_madvise 233 | |
| 238 | #define __NR_remap_file_pages 234 | |
| 239 | #define __NR_mbind 235 | |
| 240 | #define __NR_get_mempolicy 236 | |
| 241 | #define __NR_set_mempolicy 237 | |
| 242 | #define __NR_migrate_pages 238 | |
| 243 | #define __NR_move_pages 239 | |
| 244 | #define __NR_rt_tgsigqueueinfo 240 | |
| 245 | #define __NR_perf_event_open 241 | |
| 246 | #define __NR_accept4 242 | |
| 247 | #define __NR_recvmmsg 243 | |
| 248 | #define __NR_wait4 260 | |
| 249 | #define __NR_prlimit64 261 | |
| 250 | #define __NR_fanotify_init 262 | |
| 251 | #define __NR_fanotify_mark 263 | |
| 252 | #define __NR_name_to_handle_at 264 | |
| 253 | #define __NR_open_by_handle_at 265 | |
| 254 | #define __NR_clock_adjtime 266 | |
| 255 | #define __NR_syncfs 267 | |
| 256 | #define __NR_setns 268 | |
| 257 | #define __NR_sendmmsg 269 | |
| 258 | #define __NR_process_vm_readv 270 | |
| 259 | #define __NR_process_vm_writev 271 | |
| 260 | #define __NR_kcmp 272 | |
| 261 | #define __NR_finit_module 273 | |
| 262 | #define __NR_sched_setattr 274 | |
| 263 | #define __NR_sched_getattr 275 | |
| 264 | #define __NR_renameat2 276 | |
| 265 | #define __NR_seccomp 277 | |
| 266 | #define __NR_getrandom 278 | |
| 267 | #define __NR_memfd_create 279 | |
| 268 | #define __NR_bpf 280 | |
| 269 | #define __NR_execveat 281 | |
| 270 | #define __NR_userfaultfd 282 | |
| 271 | #define __NR_membarrier 283 | |
| 272 | #define __NR_mlock2 284 | |
| 273 | #define __NR_copy_file_range 285 | |
| 274 | #define __NR_preadv2 286 | |
| 275 | #define __NR_pwritev2 287 | |
| 276 | #define __NR_pkey_mprotect 288 | |
| 277 | #define __NR_pkey_alloc 289 | |
| 278 | #define __NR_pkey_free 290 | |
| 279 | #define __NR_statx 291 | |
| 280 | #define __NR_io_pgetevents 292 | |
| 281 | #define __NR_rseq 293 | |
| 282 | #define __NR_kexec_file_load 294 | |
| 283 | #define __NR_clock_gettime64 403 | |
| 284 | #define __NR_clock_settime64 404 | |
| 285 | #define __NR_clock_adjtime64 405 | |
| 286 | #define __NR_clock_getres_time64 406 | |
| 287 | #define __NR_clock_nanosleep_time64 407 | |
| 288 | #define __NR_timer_gettime64 408 | |
| 289 | #define __NR_timer_settime64 409 | |
| 290 | #define __NR_timerfd_gettime64 410 | |
| 291 | #define __NR_timerfd_settime64 411 | |
| 292 | #define __NR_utimensat_time64 412 | |
| 293 | #define __NR_pselect6_time64 413 | |
| 294 | #define __NR_ppoll_time64 414 | |
| 295 | #define __NR_io_pgetevents_time64 416 | |
| 296 | #define __NR_recvmmsg_time64 417 | |
| 297 | #define __NR_mq_timedsend_time64 418 | |
| 298 | #define __NR_mq_timedreceive_time64 419 | |
| 299 | #define __NR_semtimedop_time64 420 | |
| 300 | #define __NR_rt_sigtimedwait_time64 421 | |
| 301 | #define __NR_futex_time64 422 | |
| 302 | #define __NR_sched_rr_get_interval_time64 423 | |
| 303 | #define __NR_pidfd_send_signal 424 | |
| 304 | #define __NR_io_uring_setup 425 | |
| 305 | #define __NR_io_uring_enter 426 | |
| 306 | #define __NR_io_uring_register 427 | |
| 307 | #define __NR_open_tree 428 | |
| 308 | #define __NR_move_mount 429 | |
| 309 | #define __NR_fsopen 430 | |
| 310 | #define __NR_fsconfig 431 | |
| 311 | #define __NR_fsmount 432 | |
| 312 | #define __NR_fspick 433 | |
| 313 | #define __NR_pidfd_open 434 | |
| 314 | #define __NR_clone3 435 | |
| 315 | #define __NR_close_range 436 | |
| 316 | #define __NR_openat2 437 | |
| 317 | #define __NR_pidfd_getfd 438 | |
| 318 | #define __NR_faccessat2 439 | |
| 319 | #define __NR_process_madvise 440 | |
| 320 | #define __NR_epoll_pwait2 441 | |
| 321 | #define __NR_mount_setattr 442 | |
| 322 | #define __NR_quotactl_fd 443 | |
| 323 | #define __NR_landlock_create_ruleset 444 | |
| 324 | #define __NR_landlock_add_rule 445 | |
| 325 | #define __NR_landlock_restrict_self 446 | |
| 326 | #define __NR_process_mrelease 448 | |
| 327 | #define __NR_futex_waitv 449 | |
| 328 | #define __NR_set_mempolicy_home_node 450 | |
| 329 | #define __NR_cachestat 451 | |
| 330 | #define __NR_fchmodat2 452 | |
| 331 | #define __NR_map_shadow_stack 453 | |
| 332 | #define __NR_futex_wake 454 | |
| 333 | #define __NR_futex_wait 455 | |
| 334 | #define __NR_futex_requeue 456 | |
| 335 | #define __NR_statmount 457 | |
| 336 | #define __NR_listmount 458 | |
| 337 | #define __NR_lsm_get_self_attr 459 | |
| 338 | #define __NR_lsm_set_self_attr 460 | |
| 339 | #define __NR_lsm_list_modules 461 | |
| 340 | #define __NR_mseal 462 | |
| 341 | #define __NR_setxattrat 463 | |
| 342 | #define __NR_getxattrat 464 | |
| 343 | #define __NR_listxattrat 465 | |
| 344 | #define __NR_removexattrat 466 | |
| 345 | ||
| 346 | ||
| 347 | #endif /* _ASM_UNISTD_32_H */ | |
| \ No newline at end of file |
lib/libc/include/loongarch-linux-any/asm/hwcap.h+1| ... | ... | @@ -17,5 +17,6 @@ |
| 17 | 17 | #define HWCAP_LOONGARCH_LBT_ARM		(1 << 11) |
| 18 | 18 | #define HWCAP_LOONGARCH_LBT_MIPS	(1 << 12) |
| 19 | 19 | #define HWCAP_LOONGARCH_PTW		(1 << 13) |
| 20 | #define HWCAP_LOONGARCH_LSPW		(1 << 14) | |
| 20 | 21 | |
| 21 | 22 | #endif /* _ASM_HWCAP_H */ |
| \ No newline at end of file |
lib/libc/include/loongarch-linux-any/asm/kvm.h+44| ... | ... | @@ -8,6 +8,8 @@ |
| 8 | 8 | |
| 9 | 9 | #include <linux/types.h> |
| 10 | 10 | |
| 11 | #define __KVM_HAVE_IRQ_LINE | |
| 12 | ||
| 11 | 13 | /* |
| 12 | 14 | * KVM LoongArch specific structures and definitions. |
| 13 | 15 | * |
| ... | ... | @@ -64,6 +66,7 @@ struct kvm_fpu { |
| 64 | 66 | #define KVM_REG_LOONGARCH_KVM		(KVM_REG_LOONGARCH | 0x20000ULL) |
| 65 | 67 | #define KVM_REG_LOONGARCH_FPSIMD	(KVM_REG_LOONGARCH | 0x30000ULL) |
| 66 | 68 | #define KVM_REG_LOONGARCH_CPUCFG	(KVM_REG_LOONGARCH | 0x40000ULL) |
| 69 | #define KVM_REG_LOONGARCH_LBT		(KVM_REG_LOONGARCH | 0x50000ULL) | |
| 67 | 70 | #define KVM_REG_LOONGARCH_MASK		(KVM_REG_LOONGARCH | 0x70000ULL) |
| 68 | 71 | #define KVM_CSR_IDX_MASK		0x7fff |
| 69 | 72 | #define KVM_CPUCFG_IDX_MASK		0x7fff |
| ... | ... | @@ -77,11 +80,34 @@ struct kvm_fpu { |
| 77 | 80 | /* Debugging: Special instruction for software breakpoint */ |
| 78 | 81 | #define KVM_REG_LOONGARCH_DEBUG_INST	(KVM_REG_LOONGARCH_KVM | KVM_REG_SIZE_U64 | 3) |
| 79 | 82 | |
| 83 | /* LBT registers */ | |
| 84 | #define KVM_REG_LOONGARCH_LBT_SCR0	(KVM_REG_LOONGARCH_LBT | KVM_REG_SIZE_U64 | 1) | |
| 85 | #define KVM_REG_LOONGARCH_LBT_SCR1	(KVM_REG_LOONGARCH_LBT | KVM_REG_SIZE_U64 | 2) | |
| 86 | #define KVM_REG_LOONGARCH_LBT_SCR2	(KVM_REG_LOONGARCH_LBT | KVM_REG_SIZE_U64 | 3) | |
| 87 | #define KVM_REG_LOONGARCH_LBT_SCR3	(KVM_REG_LOONGARCH_LBT | KVM_REG_SIZE_U64 | 4) | |
| 88 | #define KVM_REG_LOONGARCH_LBT_EFLAGS	(KVM_REG_LOONGARCH_LBT | KVM_REG_SIZE_U64 | 5) | |
| 89 | #define KVM_REG_LOONGARCH_LBT_FTOP	(KVM_REG_LOONGARCH_LBT | KVM_REG_SIZE_U64 | 6) | |
| 90 | ||
| 80 | 91 | #define LOONGARCH_REG_SHIFT		3 |
| 81 | 92 | #define LOONGARCH_REG_64(TYPE, REG)	(TYPE | KVM_REG_SIZE_U64 | (REG << LOONGARCH_REG_SHIFT)) |
| 82 | 93 | #define KVM_IOC_CSRID(REG)		LOONGARCH_REG_64(KVM_REG_LOONGARCH_CSR, REG) |
| 83 | 94 | #define KVM_IOC_CPUCFG(REG)		LOONGARCH_REG_64(KVM_REG_LOONGARCH_CPUCFG, REG) |
| 95 | ||
| 96 | /* Device Control API on vm fd */ | |
| 97 | #define KVM_LOONGARCH_VM_FEAT_CTRL		0 | |
| 98 | #define KVM_LOONGARCH_VM_FEAT_LSX		0 | |
| 99 | #define KVM_LOONGARCH_VM_FEAT_LASX		1 | |
| 100 | #define KVM_LOONGARCH_VM_FEAT_X86BT		2 | |
| 101 | #define KVM_LOONGARCH_VM_FEAT_ARMBT		3 | |
| 102 | #define KVM_LOONGARCH_VM_FEAT_MIPSBT		4 | |
| 103 | #define KVM_LOONGARCH_VM_FEAT_PMU		5 | |
| 104 | #define KVM_LOONGARCH_VM_FEAT_PV_IPI		6 | |
| 105 | #define KVM_LOONGARCH_VM_FEAT_PV_STEALTIME	7 | |
| 106 | ||
| 107 | /* Device Control API on vcpu fd */ | |
| 84 | 108 | #define KVM_LOONGARCH_VCPU_CPUCFG	0 |
| 109 | #define KVM_LOONGARCH_VCPU_PVTIME_CTRL	1 | |
| 110 | #define KVM_LOONGARCH_VCPU_PVTIME_GPA	0 | |
| 85 | 111 | |
| 86 | 112 | struct kvm_debug_exit_arch { |
| 87 | 113 | }; |
| ... | ... | @@ -108,4 +134,22 @@ struct kvm_iocsr_entry { |
| 108 | 134 | #define KVM_IRQCHIP_NUM_PINS	64 |
| 109 | 135 | #define KVM_MAX_CORES		256 |
| 110 | 136 | |
| 137 | #define KVM_DEV_LOONGARCH_IPI_GRP_REGS			0x40000001 | |
| 138 | ||
| 139 | #define KVM_DEV_LOONGARCH_EXTIOI_GRP_REGS		0x40000002 | |
| 140 | ||
| 141 | #define KVM_DEV_LOONGARCH_EXTIOI_GRP_SW_STATUS		0x40000003 | |
| 142 | #define KVM_DEV_LOONGARCH_EXTIOI_SW_STATUS_NUM_CPU	0x0 | |
| 143 | #define KVM_DEV_LOONGARCH_EXTIOI_SW_STATUS_FEATURE	0x1 | |
| 144 | #define KVM_DEV_LOONGARCH_EXTIOI_SW_STATUS_STATE	0x2 | |
| 145 | ||
| 146 | #define KVM_DEV_LOONGARCH_EXTIOI_GRP_CTRL		0x40000004 | |
| 147 | #define KVM_DEV_LOONGARCH_EXTIOI_CTRL_INIT_NUM_CPU	0x0 | |
| 148 | #define KVM_DEV_LOONGARCH_EXTIOI_CTRL_INIT_FEATURE	0x1 | |
| 149 | #define KVM_DEV_LOONGARCH_EXTIOI_CTRL_LOAD_FINISHED	0x3 | |
| 150 | ||
| 151 | #define KVM_DEV_LOONGARCH_PCH_PIC_GRP_REGS	 0x40000005 | |
| 152 | #define KVM_DEV_LOONGARCH_PCH_PIC_GRP_CTRL	 0x40000006 | |
| 153 | #define KVM_DEV_LOONGARCH_PCH_PIC_CTRL_INIT	 0 | |
| 154 | ||
| 111 | 155 | #endif /* __UAPI_ASM_LOONGARCH_KVM_H */ |
| \ No newline at end of file |
lib/libc/include/loongarch-linux-any/asm/kvm_para.h created+21| ... | ... | @@ -0,0 +1,21 @@ |
| 1 | /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ | |
| 2 | #ifndef _ASM_KVM_PARA_H | |
| 3 | #define _ASM_KVM_PARA_H | |
| 4 | ||
| 5 | #include <linux/types.h> | |
| 6 | ||
| 7 | /* | |
| 8 | * CPUCFG index area: 0x40000000 -- 0x400000ff | |
| 9 | * SW emulation for KVM hypervirsor | |
| 10 | */ | |
| 11 | #define CPUCFG_KVM_BASE			0x40000000 | |
| 12 | #define CPUCFG_KVM_SIZE			0x100 | |
| 13 | #define CPUCFG_KVM_SIG			(CPUCFG_KVM_BASE + 0) | |
| 14 | #define KVM_SIGNATURE			"KVM\0" | |
| 15 | #define CPUCFG_KVM_FEATURE		(CPUCFG_KVM_BASE + 4) | |
| 16 | #define KVM_FEATURE_IPI		1 | |
| 17 | #define KVM_FEATURE_STEAL_TIME		2 | |
| 18 | /* BIT 24 - 31 are features configurable by user space vmm */ | |
| 19 | #define KVM_FEATURE_VIRT_EXTIOI	24 | |
| 20 | ||
| 21 | #endif /* _ASM_KVM_PARA_H */ | |
| \ No newline at end of file |
lib/libc/include/loongarch-linux-any/asm/ptrace.h+10| ... | ... | @@ -70,6 +70,16 @@ struct user_watch_state { |
| 70 | 70 | 	} dbg_regs[8]; |
| 71 | 71 | }; |
| 72 | 72 | |
| 73 | struct user_watch_state_v2 { | |
| 74 | 	uint64_t dbg_info; | |
| 75 | 	struct { | |
| 76 | 		uint64_t addr; | |
| 77 | 		uint64_t mask; | |
| 78 | 		uint32_t ctrl; | |
| 79 | 		uint32_t pad; | |
| 80 | 	} dbg_regs[14]; | |
| 81 | }; | |
| 82 | ||
| 73 | 83 | #define PTRACE_SYSEMU			0x1f |
| 74 | 84 | #define PTRACE_SYSEMU_SINGLESTEP	0x20 |
| 75 | 85 |
lib/libc/include/loongarch-linux-any/asm/sigcontext.h-1| ... | ... | @@ -9,7 +9,6 @@ |
| 9 | 9 | #define _ASM_SIGCONTEXT_H |
| 10 | 10 | |
| 11 | 11 | #include <linux/types.h> |
| 12 | #include <linux/posix_types.h> | |
| 13 | 12 | |
| 14 | 13 | /* FP context was used */ |
| 15 | 14 | #define SC_USED_FP		(1 << 0) |
lib/libc/include/loongarch-linux-any/asm/unistd.h+1-3| ... | ... | @@ -1,5 +1,3 @@ |
| 1 | 1 | /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ |
| 2 | #define __ARCH_WANT_SYS_CLONE | |
| 3 | #define __ARCH_WANT_SYS_CLONE3 | |
| 4 | 2 | |
| 5 | #include <asm-generic/unistd.h> | |
| \ No newline at end of file | ||
| 3 | #include <asm/unistd_64.h> | |
| \ No newline at end of file |
lib/libc/include/loongarch-linux-any/asm/unistd_64.h created+324| ... | ... | @@ -0,0 +1,324 @@ |
| 1 | #ifndef _ASM_UNISTD_64_H | |
| 2 | #define _ASM_UNISTD_64_H | |
| 3 | ||
| 4 | #define __NR_io_setup 0 | |
| 5 | #define __NR_io_destroy 1 | |
| 6 | #define __NR_io_submit 2 | |
| 7 | #define __NR_io_cancel 3 | |
| 8 | #define __NR_io_getevents 4 | |
| 9 | #define __NR_setxattr 5 | |
| 10 | #define __NR_lsetxattr 6 | |
| 11 | #define __NR_fsetxattr 7 | |
| 12 | #define __NR_getxattr 8 | |
| 13 | #define __NR_lgetxattr 9 | |
| 14 | #define __NR_fgetxattr 10 | |
| 15 | #define __NR_listxattr 11 | |
| 16 | #define __NR_llistxattr 12 | |
| 17 | #define __NR_flistxattr 13 | |
| 18 | #define __NR_removexattr 14 | |
| 19 | #define __NR_lremovexattr 15 | |
| 20 | #define __NR_fremovexattr 16 | |
| 21 | #define __NR_getcwd 17 | |
| 22 | #define __NR_lookup_dcookie 18 | |
| 23 | #define __NR_eventfd2 19 | |
| 24 | #define __NR_epoll_create1 20 | |
| 25 | #define __NR_epoll_ctl 21 | |
| 26 | #define __NR_epoll_pwait 22 | |
| 27 | #define __NR_dup 23 | |
| 28 | #define __NR_dup3 24 | |
| 29 | #define __NR_fcntl 25 | |
| 30 | #define __NR_inotify_init1 26 | |
| 31 | #define __NR_inotify_add_watch 27 | |
| 32 | #define __NR_inotify_rm_watch 28 | |
| 33 | #define __NR_ioctl 29 | |
| 34 | #define __NR_ioprio_set 30 | |
| 35 | #define __NR_ioprio_get 31 | |
| 36 | #define __NR_flock 32 | |
| 37 | #define __NR_mknodat 33 | |
| 38 | #define __NR_mkdirat 34 | |
| 39 | #define __NR_unlinkat 35 | |
| 40 | #define __NR_symlinkat 36 | |
| 41 | #define __NR_linkat 37 | |
| 42 | #define __NR_umount2 39 | |
| 43 | #define __NR_mount 40 | |
| 44 | #define __NR_pivot_root 41 | |
| 45 | #define __NR_nfsservctl 42 | |
| 46 | #define __NR_statfs 43 | |
| 47 | #define __NR_fstatfs 44 | |
| 48 | #define __NR_truncate 45 | |
| 49 | #define __NR_ftruncate 46 | |
| 50 | #define __NR_fallocate 47 | |
| 51 | #define __NR_faccessat 48 | |
| 52 | #define __NR_chdir 49 | |
| 53 | #define __NR_fchdir 50 | |
| 54 | #define __NR_chroot 51 | |
| 55 | #define __NR_fchmod 52 | |
| 56 | #define __NR_fchmodat 53 | |
| 57 | #define __NR_fchownat 54 | |
| 58 | #define __NR_fchown 55 | |
| 59 | #define __NR_openat 56 | |
| 60 | #define __NR_close 57 | |
| 61 | #define __NR_vhangup 58 | |
| 62 | #define __NR_pipe2 59 | |
| 63 | #define __NR_quotactl 60 | |
| 64 | #define __NR_getdents64 61 | |
| 65 | #define __NR_lseek 62 | |
| 66 | #define __NR_read 63 | |
| 67 | #define __NR_write 64 | |
| 68 | #define __NR_readv 65 | |
| 69 | #define __NR_writev 66 | |
| 70 | #define __NR_pread64 67 | |
| 71 | #define __NR_pwrite64 68 | |
| 72 | #define __NR_preadv 69 | |
| 73 | #define __NR_pwritev 70 | |
| 74 | #define __NR_sendfile 71 | |
| 75 | #define __NR_pselect6 72 | |
| 76 | #define __NR_ppoll 73 | |
| 77 | #define __NR_signalfd4 74 | |
| 78 | #define __NR_vmsplice 75 | |
| 79 | #define __NR_splice 76 | |
| 80 | #define __NR_tee 77 | |
| 81 | #define __NR_readlinkat 78 | |
| 82 | #define __NR_newfstatat 79 | |
| 83 | #define __NR_fstat 80 | |
| 84 | #define __NR_sync 81 | |
| 85 | #define __NR_fsync 82 | |
| 86 | #define __NR_fdatasync 83 | |
| 87 | #define __NR_sync_file_range 84 | |
| 88 | #define __NR_timerfd_create 85 | |
| 89 | #define __NR_timerfd_settime 86 | |
| 90 | #define __NR_timerfd_gettime 87 | |
| 91 | #define __NR_utimensat 88 | |
| 92 | #define __NR_acct 89 | |
| 93 | #define __NR_capget 90 | |
| 94 | #define __NR_capset 91 | |
| 95 | #define __NR_personality 92 | |
| 96 | #define __NR_exit 93 | |
| 97 | #define __NR_exit_group 94 | |
| 98 | #define __NR_waitid 95 | |
| 99 | #define __NR_set_tid_address 96 | |
| 100 | #define __NR_unshare 97 | |
| 101 | #define __NR_futex 98 | |
| 102 | #define __NR_set_robust_list 99 | |
| 103 | #define __NR_get_robust_list 100 | |
| 104 | #define __NR_nanosleep 101 | |
| 105 | #define __NR_getitimer 102 | |
| 106 | #define __NR_setitimer 103 | |
| 107 | #define __NR_kexec_load 104 | |
| 108 | #define __NR_init_module 105 | |
| 109 | #define __NR_delete_module 106 | |
| 110 | #define __NR_timer_create 107 | |
| 111 | #define __NR_timer_gettime 108 | |
| 112 | #define __NR_timer_getoverrun 109 | |
| 113 | #define __NR_timer_settime 110 | |
| 114 | #define __NR_timer_delete 111 | |
| 115 | #define __NR_clock_settime 112 | |
| 116 | #define __NR_clock_gettime 113 | |
| 117 | #define __NR_clock_getres 114 | |
| 118 | #define __NR_clock_nanosleep 115 | |
| 119 | #define __NR_syslog 116 | |
| 120 | #define __NR_ptrace 117 | |
| 121 | #define __NR_sched_setparam 118 | |
| 122 | #define __NR_sched_setscheduler 119 | |
| 123 | #define __NR_sched_getscheduler 120 | |
| 124 | #define __NR_sched_getparam 121 | |
| 125 | #define __NR_sched_setaffinity 122 | |
| 126 | #define __NR_sched_getaffinity 123 | |
| 127 | #define __NR_sched_yield 124 | |
| 128 | #define __NR_sched_get_priority_max 125 | |
| 129 | #define __NR_sched_get_priority_min 126 | |
| 130 | #define __NR_sched_rr_get_interval 127 | |
| 131 | #define __NR_restart_syscall 128 | |
| 132 | #define __NR_kill 129 | |
| 133 | #define __NR_tkill 130 | |
| 134 | #define __NR_tgkill 131 | |
| 135 | #define __NR_sigaltstack 132 | |
| 136 | #define __NR_rt_sigsuspend 133 | |
| 137 | #define __NR_rt_sigaction 134 | |
| 138 | #define __NR_rt_sigprocmask 135 | |
| 139 | #define __NR_rt_sigpending 136 | |
| 140 | #define __NR_rt_sigtimedwait 137 | |
| 141 | #define __NR_rt_sigqueueinfo 138 | |
| 142 | #define __NR_rt_sigreturn 139 | |
| 143 | #define __NR_setpriority 140 | |
| 144 | #define __NR_getpriority 141 | |
| 145 | #define __NR_reboot 142 | |
| 146 | #define __NR_setregid 143 | |
| 147 | #define __NR_setgid 144 | |
| 148 | #define __NR_setreuid 145 | |
| 149 | #define __NR_setuid 146 | |
| 150 | #define __NR_setresuid 147 | |
| 151 | #define __NR_getresuid 148 | |
| 152 | #define __NR_setresgid 149 | |
| 153 | #define __NR_getresgid 150 | |
| 154 | #define __NR_setfsuid 151 | |
| 155 | #define __NR_setfsgid 152 | |
| 156 | #define __NR_times 153 | |
| 157 | #define __NR_setpgid 154 | |
| 158 | #define __NR_getpgid 155 | |
| 159 | #define __NR_getsid 156 | |
| 160 | #define __NR_setsid 157 | |
| 161 | #define __NR_getgroups 158 | |
| 162 | #define __NR_setgroups 159 | |
| 163 | #define __NR_uname 160 | |
| 164 | #define __NR_sethostname 161 | |
| 165 | #define __NR_setdomainname 162 | |
| 166 | #define __NR_getrusage 165 | |
| 167 | #define __NR_umask 166 | |
| 168 | #define __NR_prctl 167 | |
| 169 | #define __NR_getcpu 168 | |
| 170 | #define __NR_gettimeofday 169 | |
| 171 | #define __NR_settimeofday 170 | |
| 172 | #define __NR_adjtimex 171 | |
| 173 | #define __NR_getpid 172 | |
| 174 | #define __NR_getppid 173 | |
| 175 | #define __NR_getuid 174 | |
| 176 | #define __NR_geteuid 175 | |
| 177 | #define __NR_getgid 176 | |
| 178 | #define __NR_getegid 177 | |
| 179 | #define __NR_gettid 178 | |
| 180 | #define __NR_sysinfo 179 | |
| 181 | #define __NR_mq_open 180 | |
| 182 | #define __NR_mq_unlink 181 | |
| 183 | #define __NR_mq_timedsend 182 | |
| 184 | #define __NR_mq_timedreceive 183 | |
| 185 | #define __NR_mq_notify 184 | |
| 186 | #define __NR_mq_getsetattr 185 | |
| 187 | #define __NR_msgget 186 | |
| 188 | #define __NR_msgctl 187 | |
| 189 | #define __NR_msgrcv 188 | |
| 190 | #define __NR_msgsnd 189 | |
| 191 | #define __NR_semget 190 | |
| 192 | #define __NR_semctl 191 | |
| 193 | #define __NR_semtimedop 192 | |
| 194 | #define __NR_semop 193 | |
| 195 | #define __NR_shmget 194 | |
| 196 | #define __NR_shmctl 195 | |
| 197 | #define __NR_shmat 196 | |
| 198 | #define __NR_shmdt 197 | |
| 199 | #define __NR_socket 198 | |
| 200 | #define __NR_socketpair 199 | |
| 201 | #define __NR_bind 200 | |
| 202 | #define __NR_listen 201 | |
| 203 | #define __NR_accept 202 | |
| 204 | #define __NR_connect 203 | |
| 205 | #define __NR_getsockname 204 | |
| 206 | #define __NR_getpeername 205 | |
| 207 | #define __NR_sendto 206 | |
| 208 | #define __NR_recvfrom 207 | |
| 209 | #define __NR_setsockopt 208 | |
| 210 | #define __NR_getsockopt 209 | |
| 211 | #define __NR_shutdown 210 | |
| 212 | #define __NR_sendmsg 211 | |
| 213 | #define __NR_recvmsg 212 | |
| 214 | #define __NR_readahead 213 | |
| 215 | #define __NR_brk 214 | |
| 216 | #define __NR_munmap 215 | |
| 217 | #define __NR_mremap 216 | |
| 218 | #define __NR_add_key 217 | |
| 219 | #define __NR_request_key 218 | |
| 220 | #define __NR_keyctl 219 | |
| 221 | #define __NR_clone 220 | |
| 222 | #define __NR_execve 221 | |
| 223 | #define __NR_mmap 222 | |
| 224 | #define __NR_fadvise64 223 | |
| 225 | #define __NR_swapon 224 | |
| 226 | #define __NR_swapoff 225 | |
| 227 | #define __NR_mprotect 226 | |
| 228 | #define __NR_msync 227 | |
| 229 | #define __NR_mlock 228 | |
| 230 | #define __NR_munlock 229 | |
| 231 | #define __NR_mlockall 230 | |
| 232 | #define __NR_munlockall 231 | |
| 233 | #define __NR_mincore 232 | |
| 234 | #define __NR_madvise 233 | |
| 235 | #define __NR_remap_file_pages 234 | |
| 236 | #define __NR_mbind 235 | |
| 237 | #define __NR_get_mempolicy 236 | |
| 238 | #define __NR_set_mempolicy 237 | |
| 239 | #define __NR_migrate_pages 238 | |
| 240 | #define __NR_move_pages 239 | |
| 241 | #define __NR_rt_tgsigqueueinfo 240 | |
| 242 | #define __NR_perf_event_open 241 | |
| 243 | #define __NR_accept4 242 | |
| 244 | #define __NR_recvmmsg 243 | |
| 245 | #define __NR_wait4 260 | |
| 246 | #define __NR_prlimit64 261 | |
| 247 | #define __NR_fanotify_init 262 | |
| 248 | #define __NR_fanotify_mark 263 | |
| 249 | #define __NR_name_to_handle_at 264 | |
| 250 | #define __NR_open_by_handle_at 265 | |
| 251 | #define __NR_clock_adjtime 266 | |
| 252 | #define __NR_syncfs 267 | |
| 253 | #define __NR_setns 268 | |
| 254 | #define __NR_sendmmsg 269 | |
| 255 | #define __NR_process_vm_readv 270 | |
| 256 | #define __NR_process_vm_writev 271 | |
| 257 | #define __NR_kcmp 272 | |
| 258 | #define __NR_finit_module 273 | |
| 259 | #define __NR_sched_setattr 274 | |
| 260 | #define __NR_sched_getattr 275 | |
| 261 | #define __NR_renameat2 276 | |
| 262 | #define __NR_seccomp 277 | |
| 263 | #define __NR_getrandom 278 | |
| 264 | #define __NR_memfd_create 279 | |
| 265 | #define __NR_bpf 280 | |
| 266 | #define __NR_execveat 281 | |
| 267 | #define __NR_userfaultfd 282 | |
| 268 | #define __NR_membarrier 283 | |
| 269 | #define __NR_mlock2 284 | |
| 270 | #define __NR_copy_file_range 285 | |
| 271 | #define __NR_preadv2 286 | |
| 272 | #define __NR_pwritev2 287 | |
| 273 | #define __NR_pkey_mprotect 288 | |
| 274 | #define __NR_pkey_alloc 289 | |
| 275 | #define __NR_pkey_free 290 | |
| 276 | #define __NR_statx 291 | |
| 277 | #define __NR_io_pgetevents 292 | |
| 278 | #define __NR_rseq 293 | |
| 279 | #define __NR_kexec_file_load 294 | |
| 280 | #define __NR_pidfd_send_signal 424 | |
| 281 | #define __NR_io_uring_setup 425 | |
| 282 | #define __NR_io_uring_enter 426 | |
| 283 | #define __NR_io_uring_register 427 | |
| 284 | #define __NR_open_tree 428 | |
| 285 | #define __NR_move_mount 429 | |
| 286 | #define __NR_fsopen 430 | |
| 287 | #define __NR_fsconfig 431 | |
| 288 | #define __NR_fsmount 432 | |
| 289 | #define __NR_fspick 433 | |
| 290 | #define __NR_pidfd_open 434 | |
| 291 | #define __NR_clone3 435 | |
| 292 | #define __NR_close_range 436 | |
| 293 | #define __NR_openat2 437 | |
| 294 | #define __NR_pidfd_getfd 438 | |
| 295 | #define __NR_faccessat2 439 | |
| 296 | #define __NR_process_madvise 440 | |
| 297 | #define __NR_epoll_pwait2 441 | |
| 298 | #define __NR_mount_setattr 442 | |
| 299 | #define __NR_quotactl_fd 443 | |
| 300 | #define __NR_landlock_create_ruleset 444 | |
| 301 | #define __NR_landlock_add_rule 445 | |
| 302 | #define __NR_landlock_restrict_self 446 | |
| 303 | #define __NR_process_mrelease 448 | |
| 304 | #define __NR_futex_waitv 449 | |
| 305 | #define __NR_set_mempolicy_home_node 450 | |
| 306 | #define __NR_cachestat 451 | |
| 307 | #define __NR_fchmodat2 452 | |
| 308 | #define __NR_map_shadow_stack 453 | |
| 309 | #define __NR_futex_wake 454 | |
| 310 | #define __NR_futex_wait 455 | |
| 311 | #define __NR_futex_requeue 456 | |
| 312 | #define __NR_statmount 457 | |
| 313 | #define __NR_listmount 458 | |
| 314 | #define __NR_lsm_get_self_attr 459 | |
| 315 | #define __NR_lsm_set_self_attr 460 | |
| 316 | #define __NR_lsm_list_modules 461 | |
| 317 | #define __NR_mseal 462 | |
| 318 | #define __NR_setxattrat 463 | |
| 319 | #define __NR_getxattrat 464 | |
| 320 | #define __NR_listxattrat 465 | |
| 321 | #define __NR_removexattrat 466 | |
| 322 | ||
| 323 | ||
| 324 | #endif /* _ASM_UNISTD_64_H */ | |
| \ No newline at end of file |
lib/libc/include/m68k-linux-any/asm/unistd_32.h+4| ... | ... | @@ -435,6 +435,10 @@ |
| 435 | 435 | #define __NR_lsm_set_self_attr 460 |
| 436 | 436 | #define __NR_lsm_list_modules 461 |
| 437 | 437 | #define __NR_mseal 462 |
| 438 | #define __NR_setxattrat 463 | |
| 439 | #define __NR_getxattrat 464 | |
| 440 | #define __NR_listxattrat 465 | |
| 441 | #define __NR_removexattrat 466 | |
| 438 | 442 | |
| 439 | 443 | |
| 440 | 444 | #endif /* _ASM_UNISTD_32_H */ |
| \ No newline at end of file |
lib/libc/include/mips-linux-any/asm/mman.h+3| ... | ... | @@ -105,6 +105,9 @@ |
| 105 | 105 | |
| 106 | 106 | #define MADV_COLLAPSE	25		/* Synchronous hugepage collapse */ |
| 107 | 107 | |
| 108 | #define MADV_GUARD_INSTALL 102		/* fatal signal on access to range */ | |
| 109 | #define MADV_GUARD_REMOVE 103		/* unguard range */ | |
| 110 | ||
| 108 | 111 | /* compatibility flags */ |
| 109 | 112 | #define MAP_FILE	0 |
| 110 | 113 |
lib/libc/include/mips-linux-any/asm/sigcontext.h-1| ... | ... | @@ -56,7 +56,6 @@ struct sigcontext { |
| 56 | 56 | |
| 57 | 57 | #if _MIPS_SIM == _MIPS_SIM_ABI64 || _MIPS_SIM == _MIPS_SIM_NABI32 |
| 58 | 58 | |
| 59 | #include <linux/posix_types.h> | |
| 60 | 59 | /* |
| 61 | 60 | * Keep this struct definition in sync with the sigcontext fragment |
| 62 | 61 | * in arch/mips/kernel/asm-offsets.c |
lib/libc/include/mips-linux-any/asm/socket.h+8| ... | ... | @@ -151,6 +151,14 @@ |
| 151 | 151 | #define SO_PASSPIDFD		76 |
| 152 | 152 | #define SO_PEERPIDFD		77 |
| 153 | 153 | |
| 154 | #define SO_DEVMEM_LINEAR	78 | |
| 155 | #define SCM_DEVMEM_LINEAR	SO_DEVMEM_LINEAR | |
| 156 | #define SO_DEVMEM_DMABUF	79 | |
| 157 | #define SCM_DEVMEM_DMABUF	SO_DEVMEM_DMABUF | |
| 158 | #define SO_DEVMEM_DONTNEED	80 | |
| 159 | ||
| 160 | #define SCM_TS_OPT_ID		81 | |
| 161 | ||
| 154 | 162 | |
| 155 | 163 | #if __BITS_PER_LONG == 64 |
| 156 | 164 | #define SO_TIMESTAMP		SO_TIMESTAMP_OLD |
lib/libc/include/mips-linux-any/asm/unistd_n32.h+4| ... | ... | @@ -391,5 +391,9 @@ |
| 391 | 391 | #define __NR_lsm_set_self_attr (__NR_Linux + 460) |
| 392 | 392 | #define __NR_lsm_list_modules (__NR_Linux + 461) |
| 393 | 393 | #define __NR_mseal (__NR_Linux + 462) |
| 394 | #define __NR_setxattrat (__NR_Linux + 463) | |
| 395 | #define __NR_getxattrat (__NR_Linux + 464) | |
| 396 | #define __NR_listxattrat (__NR_Linux + 465) | |
| 397 | #define __NR_removexattrat (__NR_Linux + 466) | |
| 394 | 398 | |
| 395 | 399 | #endif /* _ASM_UNISTD_N32_H */ |
| \ No newline at end of file |
lib/libc/include/mips-linux-any/asm/unistd_n64.h+4| ... | ... | @@ -367,5 +367,9 @@ |
| 367 | 367 | #define __NR_lsm_set_self_attr (__NR_Linux + 460) |
| 368 | 368 | #define __NR_lsm_list_modules (__NR_Linux + 461) |
| 369 | 369 | #define __NR_mseal (__NR_Linux + 462) |
| 370 | #define __NR_setxattrat (__NR_Linux + 463) | |
| 371 | #define __NR_getxattrat (__NR_Linux + 464) | |
| 372 | #define __NR_listxattrat (__NR_Linux + 465) | |
| 373 | #define __NR_removexattrat (__NR_Linux + 466) | |
| 370 | 374 | |
| 371 | 375 | #endif /* _ASM_UNISTD_N64_H */ |
| \ No newline at end of file |
lib/libc/include/mips-linux-any/asm/unistd_o32.h+4| ... | ... | @@ -437,5 +437,9 @@ |
| 437 | 437 | #define __NR_lsm_set_self_attr (__NR_Linux + 460) |
| 438 | 438 | #define __NR_lsm_list_modules (__NR_Linux + 461) |
| 439 | 439 | #define __NR_mseal (__NR_Linux + 462) |
| 440 | #define __NR_setxattrat (__NR_Linux + 463) | |
| 441 | #define __NR_getxattrat (__NR_Linux + 464) | |
| 442 | #define __NR_listxattrat (__NR_Linux + 465) | |
| 443 | #define __NR_removexattrat (__NR_Linux + 466) | |
| 440 | 444 | |
| 441 | 445 | #endif /* _ASM_UNISTD_O32_H */ |
| \ No newline at end of file |
lib/libc/include/powerpc-linux-any/asm/kvm.h+3| ... | ... | @@ -645,6 +645,9 @@ struct kvm_ppc_cpu_char { |
| 645 | 645 | #define KVM_REG_PPC_SIER3	(KVM_REG_PPC | KVM_REG_SIZE_U64 | 0xc3) |
| 646 | 646 | #define KVM_REG_PPC_DAWR1	(KVM_REG_PPC | KVM_REG_SIZE_U64 | 0xc4) |
| 647 | 647 | #define KVM_REG_PPC_DAWRX1	(KVM_REG_PPC | KVM_REG_SIZE_U64 | 0xc5) |
| 648 | #define KVM_REG_PPC_DEXCR	(KVM_REG_PPC | KVM_REG_SIZE_U64 | 0xc6) | |
| 649 | #define KVM_REG_PPC_HASHKEYR	(KVM_REG_PPC | KVM_REG_SIZE_U64 | 0xc7) | |
| 650 | #define KVM_REG_PPC_HASHPKEYR	(KVM_REG_PPC | KVM_REG_SIZE_U64 | 0xc8) | |
| 648 | 651 | |
| 649 | 652 | /* Transactional Memory checkpointed state: |
| 650 | 653 | * This is all GPRs, all VSX regs and a subset of SPRs |
lib/libc/include/powerpc-linux-any/asm/unistd_32.h+4| ... | ... | @@ -444,6 +444,10 @@ |
| 444 | 444 | #define __NR_lsm_set_self_attr 460 |
| 445 | 445 | #define __NR_lsm_list_modules 461 |
| 446 | 446 | #define __NR_mseal 462 |
| 447 | #define __NR_setxattrat 463 | |
| 448 | #define __NR_getxattrat 464 | |
| 449 | #define __NR_listxattrat 465 | |
| 450 | #define __NR_removexattrat 466 | |
| 447 | 451 | |
| 448 | 452 | |
| 449 | 453 | #endif /* _ASM_UNISTD_32_H */ |
| \ No newline at end of file |
lib/libc/include/powerpc-linux-any/asm/unistd_64.h+4| ... | ... | @@ -416,6 +416,10 @@ |
| 416 | 416 | #define __NR_lsm_set_self_attr 460 |
| 417 | 417 | #define __NR_lsm_list_modules 461 |
| 418 | 418 | #define __NR_mseal 462 |
| 419 | #define __NR_setxattrat 463 | |
| 420 | #define __NR_getxattrat 464 | |
| 421 | #define __NR_listxattrat 465 | |
| 422 | #define __NR_removexattrat 466 | |
| 419 | 423 | |
| 420 | 424 | |
| 421 | 425 | #endif /* _ASM_UNISTD_64_H */ |
| \ No newline at end of file |
lib/libc/include/riscv-linux-any/asm/hwprobe.h+26| ... | ... | @@ -60,6 +60,19 @@ struct riscv_hwprobe { |
| 60 | 60 | #define		RISCV_HWPROBE_EXT_ZACAS		(1ULL << 34) |
| 61 | 61 | #define		RISCV_HWPROBE_EXT_ZICOND	(1ULL << 35) |
| 62 | 62 | #define		RISCV_HWPROBE_EXT_ZIHINTPAUSE	(1ULL << 36) |
| 63 | #define		RISCV_HWPROBE_EXT_ZVE32X	(1ULL << 37) | |
| 64 | #define		RISCV_HWPROBE_EXT_ZVE32F	(1ULL << 38) | |
| 65 | #define		RISCV_HWPROBE_EXT_ZVE64X	(1ULL << 39) | |
| 66 | #define		RISCV_HWPROBE_EXT_ZVE64F	(1ULL << 40) | |
| 67 | #define		RISCV_HWPROBE_EXT_ZVE64D	(1ULL << 41) | |
| 68 | #define		RISCV_HWPROBE_EXT_ZIMOP		(1ULL << 42) | |
| 69 | #define		RISCV_HWPROBE_EXT_ZCA		(1ULL << 43) | |
| 70 | #define		RISCV_HWPROBE_EXT_ZCB		(1ULL << 44) | |
| 71 | #define		RISCV_HWPROBE_EXT_ZCD		(1ULL << 45) | |
| 72 | #define		RISCV_HWPROBE_EXT_ZCF		(1ULL << 46) | |
| 73 | #define		RISCV_HWPROBE_EXT_ZCMOP		(1ULL << 47) | |
| 74 | #define		RISCV_HWPROBE_EXT_ZAWRS		(1ULL << 48) | |
| 75 | #define		RISCV_HWPROBE_EXT_SUPM		(1ULL << 49) | |
| 63 | 76 | #define RISCV_HWPROBE_KEY_CPUPERF_0	5 |
| 64 | 77 | #define		RISCV_HWPROBE_MISALIGNED_UNKNOWN	(0 << 0) |
| 65 | 78 | #define		RISCV_HWPROBE_MISALIGNED_EMULATED	(1 << 0) |
| ... | ... | @@ -68,6 +81,19 @@ struct riscv_hwprobe { |
| 68 | 81 | #define		RISCV_HWPROBE_MISALIGNED_UNSUPPORTED	(4 << 0) |
| 69 | 82 | #define		RISCV_HWPROBE_MISALIGNED_MASK		(7 << 0) |
| 70 | 83 | #define RISCV_HWPROBE_KEY_ZICBOZ_BLOCK_SIZE	6 |
| 84 | #define RISCV_HWPROBE_KEY_HIGHEST_VIRT_ADDRESS	7 | |
| 85 | #define RISCV_HWPROBE_KEY_TIME_CSR_FREQ	8 | |
| 86 | #define RISCV_HWPROBE_KEY_MISALIGNED_SCALAR_PERF	9 | |
| 87 | #define		RISCV_HWPROBE_MISALIGNED_SCALAR_UNKNOWN		0 | |
| 88 | #define		RISCV_HWPROBE_MISALIGNED_SCALAR_EMULATED	1 | |
| 89 | #define		RISCV_HWPROBE_MISALIGNED_SCALAR_SLOW		2 | |
| 90 | #define		RISCV_HWPROBE_MISALIGNED_SCALAR_FAST		3 | |
| 91 | #define		RISCV_HWPROBE_MISALIGNED_SCALAR_UNSUPPORTED	4 | |
| 92 | #define RISCV_HWPROBE_KEY_MISALIGNED_VECTOR_PERF	10 | |
| 93 | #define		RISCV_HWPROBE_MISALIGNED_VECTOR_UNKNOWN		0 | |
| 94 | #define		RISCV_HWPROBE_MISALIGNED_VECTOR_SLOW		2 | |
| 95 | #define		RISCV_HWPROBE_MISALIGNED_VECTOR_FAST		3 | |
| 96 | #define		RISCV_HWPROBE_MISALIGNED_VECTOR_UNSUPPORTED	4 | |
| 71 | 97 | /* Increase RISCV_HWPROBE_MAX_KEY when adding items. */ |
| 72 | 98 | |
| 73 | 99 | /* Flags */ |
lib/libc/include/riscv-linux-any/asm/kvm.h+11| ... | ... | @@ -168,6 +168,17 @@ enum KVM_RISCV_ISA_EXT_ID { |
| 168 | 168 | 	KVM_RISCV_ISA_EXT_ZTSO, |
| 169 | 169 | 	KVM_RISCV_ISA_EXT_ZACAS, |
| 170 | 170 | 	KVM_RISCV_ISA_EXT_SSCOFPMF, |
| 171 | 	KVM_RISCV_ISA_EXT_ZIMOP, | |
| 172 | 	KVM_RISCV_ISA_EXT_ZCA, | |
| 173 | 	KVM_RISCV_ISA_EXT_ZCB, | |
| 174 | 	KVM_RISCV_ISA_EXT_ZCD, | |
| 175 | 	KVM_RISCV_ISA_EXT_ZCF, | |
| 176 | 	KVM_RISCV_ISA_EXT_ZCMOP, | |
| 177 | 	KVM_RISCV_ISA_EXT_ZAWRS, | |
| 178 | 	KVM_RISCV_ISA_EXT_SMNPM, | |
| 179 | 	KVM_RISCV_ISA_EXT_SSNPM, | |
| 180 | 	KVM_RISCV_ISA_EXT_SVADE, | |
| 181 | 	KVM_RISCV_ISA_EXT_SVADU, | |
| 171 | 182 | 	KVM_RISCV_ISA_EXT_MAX, |
| 172 | 183 | }; |
| 173 | 184 |
lib/libc/include/riscv-linux-any/asm/unistd.h+6-37| ... | ... | @@ -14,41 +14,10 @@ |
| 14 | 14 | * You should have received a copy of the GNU General Public License |
| 15 | 15 | * along with this program. If not, see <https://www.gnu.org/licenses/>. |
| 16 | 16 | */ |
| 17 | #include <asm/bitsperlong.h> | |
| 17 | 18 | |
| 18 | #if defined(__LP64__) && !defined(__SYSCALL_COMPAT) | |
| 19 | #define __ARCH_WANT_NEW_STAT | |
| 20 | #define __ARCH_WANT_SET_GET_RLIMIT | |
| 21 | #endif /* __LP64__ */ | |
| 22 | ||
| 23 | #define __ARCH_WANT_SYS_CLONE3 | |
| 24 | #define __ARCH_WANT_MEMFD_SECRET | |
| 25 | ||
| 26 | #include <asm-generic/unistd.h> | |
| 27 | ||
| 28 | /* | |
| 29 | * Allows the instruction cache to be flushed from userspace. Despite RISC-V | |
| 30 | * having a direct 'fence.i' instruction available to userspace (which we | |
| 31 | * can't trap!), that's not actually viable when running on Linux because the | |
| 32 | * kernel might schedule a process on another hart. There is no way for | |
| 33 | * userspace to handle this without invoking the kernel (as it doesn't know the | |
| 34 | * thread->hart mappings), so we've defined a RISC-V specific system call to | |
| 35 | * flush the instruction cache. | |
| 36 | * | |
| 37 | * __NR_riscv_flush_icache is defined to flush the instruction cache over an | |
| 38 | * address range, with the flush applying to either all threads or just the | |
| 39 | * caller. We don't currently do anything with the address range, that's just | |
| 40 | * in there for forwards compatibility. | |
| 41 | */ | |
| 42 | #ifndef __NR_riscv_flush_icache | |
| 43 | #define __NR_riscv_flush_icache (__NR_arch_specific_syscall + 15) | |
| 44 | #endif | |
| 45 | __SYSCALL(__NR_riscv_flush_icache, sys_riscv_flush_icache) | |
| 46 | ||
| 47 | /* | |
| 48 | * Allows userspace to query the kernel for CPU architecture and | |
| 49 | * microarchitecture details across a given set of CPUs. | |
| 50 | */ | |
| 51 | #ifndef __NR_riscv_hwprobe | |
| 52 | #define __NR_riscv_hwprobe (__NR_arch_specific_syscall + 14) | |
| 53 | #endif | |
| 54 | __SYSCALL(__NR_riscv_hwprobe, sys_riscv_hwprobe) | |
| \ No newline at end of file | ||
| 19 | #if __BITS_PER_LONG == 64 | |
| 20 | #include <asm/unistd_64.h> | |
| 21 | #else | |
| 22 | #include <asm/unistd_32.h> | |
| 23 | #endif | |
| \ No newline at end of file |
lib/libc/include/riscv-linux-any/asm/unistd_32.h created+319| ... | ... | @@ -0,0 +1,319 @@ |
| 1 | #ifndef _ASM_UNISTD_32_H | |
| 2 | #define _ASM_UNISTD_32_H | |
| 3 | ||
| 4 | #define __NR_io_setup 0 | |
| 5 | #define __NR_io_destroy 1 | |
| 6 | #define __NR_io_submit 2 | |
| 7 | #define __NR_io_cancel 3 | |
| 8 | #define __NR_setxattr 5 | |
| 9 | #define __NR_lsetxattr 6 | |
| 10 | #define __NR_fsetxattr 7 | |
| 11 | #define __NR_getxattr 8 | |
| 12 | #define __NR_lgetxattr 9 | |
| 13 | #define __NR_fgetxattr 10 | |
| 14 | #define __NR_listxattr 11 | |
| 15 | #define __NR_llistxattr 12 | |
| 16 | #define __NR_flistxattr 13 | |
| 17 | #define __NR_removexattr 14 | |
| 18 | #define __NR_lremovexattr 15 | |
| 19 | #define __NR_fremovexattr 16 | |
| 20 | #define __NR_getcwd 17 | |
| 21 | #define __NR_lookup_dcookie 18 | |
| 22 | #define __NR_eventfd2 19 | |
| 23 | #define __NR_epoll_create1 20 | |
| 24 | #define __NR_epoll_ctl 21 | |
| 25 | #define __NR_epoll_pwait 22 | |
| 26 | #define __NR_dup 23 | |
| 27 | #define __NR_dup3 24 | |
| 28 | #define __NR_fcntl64 25 | |
| 29 | #define __NR_inotify_init1 26 | |
| 30 | #define __NR_inotify_add_watch 27 | |
| 31 | #define __NR_inotify_rm_watch 28 | |
| 32 | #define __NR_ioctl 29 | |
| 33 | #define __NR_ioprio_set 30 | |
| 34 | #define __NR_ioprio_get 31 | |
| 35 | #define __NR_flock 32 | |
| 36 | #define __NR_mknodat 33 | |
| 37 | #define __NR_mkdirat 34 | |
| 38 | #define __NR_unlinkat 35 | |
| 39 | #define __NR_symlinkat 36 | |
| 40 | #define __NR_linkat 37 | |
| 41 | #define __NR_umount2 39 | |
| 42 | #define __NR_mount 40 | |
| 43 | #define __NR_pivot_root 41 | |
| 44 | #define __NR_nfsservctl 42 | |
| 45 | #define __NR_statfs64 43 | |
| 46 | #define __NR_fstatfs64 44 | |
| 47 | #define __NR_truncate64 45 | |
| 48 | #define __NR_ftruncate64 46 | |
| 49 | #define __NR_fallocate 47 | |
| 50 | #define __NR_faccessat 48 | |
| 51 | #define __NR_chdir 49 | |
| 52 | #define __NR_fchdir 50 | |
| 53 | #define __NR_chroot 51 | |
| 54 | #define __NR_fchmod 52 | |
| 55 | #define __NR_fchmodat 53 | |
| 56 | #define __NR_fchownat 54 | |
| 57 | #define __NR_fchown 55 | |
| 58 | #define __NR_openat 56 | |
| 59 | #define __NR_close 57 | |
| 60 | #define __NR_vhangup 58 | |
| 61 | #define __NR_pipe2 59 | |
| 62 | #define __NR_quotactl 60 | |
| 63 | #define __NR_getdents64 61 | |
| 64 | #define __NR_llseek 62 | |
| 65 | #define __NR_read 63 | |
| 66 | #define __NR_write 64 | |
| 67 | #define __NR_readv 65 | |
| 68 | #define __NR_writev 66 | |
| 69 | #define __NR_pread64 67 | |
| 70 | #define __NR_pwrite64 68 | |
| 71 | #define __NR_preadv 69 | |
| 72 | #define __NR_pwritev 70 | |
| 73 | #define __NR_sendfile64 71 | |
| 74 | #define __NR_signalfd4 74 | |
| 75 | #define __NR_vmsplice 75 | |
| 76 | #define __NR_splice 76 | |
| 77 | #define __NR_tee 77 | |
| 78 | #define __NR_readlinkat 78 | |
| 79 | #define __NR_sync 81 | |
| 80 | #define __NR_fsync 82 | |
| 81 | #define __NR_fdatasync 83 | |
| 82 | #define __NR_sync_file_range 84 | |
| 83 | #define __NR_timerfd_create 85 | |
| 84 | #define __NR_acct 89 | |
| 85 | #define __NR_capget 90 | |
| 86 | #define __NR_capset 91 | |
| 87 | #define __NR_personality 92 | |
| 88 | #define __NR_exit 93 | |
| 89 | #define __NR_exit_group 94 | |
| 90 | #define __NR_waitid 95 | |
| 91 | #define __NR_set_tid_address 96 | |
| 92 | #define __NR_unshare 97 | |
| 93 | #define __NR_set_robust_list 99 | |
| 94 | #define __NR_get_robust_list 100 | |
| 95 | #define __NR_getitimer 102 | |
| 96 | #define __NR_setitimer 103 | |
| 97 | #define __NR_kexec_load 104 | |
| 98 | #define __NR_init_module 105 | |
| 99 | #define __NR_delete_module 106 | |
| 100 | #define __NR_timer_create 107 | |
| 101 | #define __NR_timer_getoverrun 109 | |
| 102 | #define __NR_timer_delete 111 | |
| 103 | #define __NR_syslog 116 | |
| 104 | #define __NR_ptrace 117 | |
| 105 | #define __NR_sched_setparam 118 | |
| 106 | #define __NR_sched_setscheduler 119 | |
| 107 | #define __NR_sched_getscheduler 120 | |
| 108 | #define __NR_sched_getparam 121 | |
| 109 | #define __NR_sched_setaffinity 122 | |
| 110 | #define __NR_sched_getaffinity 123 | |
| 111 | #define __NR_sched_yield 124 | |
| 112 | #define __NR_sched_get_priority_max 125 | |
| 113 | #define __NR_sched_get_priority_min 126 | |
| 114 | #define __NR_restart_syscall 128 | |
| 115 | #define __NR_kill 129 | |
| 116 | #define __NR_tkill 130 | |
| 117 | #define __NR_tgkill 131 | |
| 118 | #define __NR_sigaltstack 132 | |
| 119 | #define __NR_rt_sigsuspend 133 | |
| 120 | #define __NR_rt_sigaction 134 | |
| 121 | #define __NR_rt_sigprocmask 135 | |
| 122 | #define __NR_rt_sigpending 136 | |
| 123 | #define __NR_rt_sigqueueinfo 138 | |
| 124 | #define __NR_rt_sigreturn 139 | |
| 125 | #define __NR_setpriority 140 | |
| 126 | #define __NR_getpriority 141 | |
| 127 | #define __NR_reboot 142 | |
| 128 | #define __NR_setregid 143 | |
| 129 | #define __NR_setgid 144 | |
| 130 | #define __NR_setreuid 145 | |
| 131 | #define __NR_setuid 146 | |
| 132 | #define __NR_setresuid 147 | |
| 133 | #define __NR_getresuid 148 | |
| 134 | #define __NR_setresgid 149 | |
| 135 | #define __NR_getresgid 150 | |
| 136 | #define __NR_setfsuid 151 | |
| 137 | #define __NR_setfsgid 152 | |
| 138 | #define __NR_times 153 | |
| 139 | #define __NR_setpgid 154 | |
| 140 | #define __NR_getpgid 155 | |
| 141 | #define __NR_getsid 156 | |
| 142 | #define __NR_setsid 157 | |
| 143 | #define __NR_getgroups 158 | |
| 144 | #define __NR_setgroups 159 | |
| 145 | #define __NR_uname 160 | |
| 146 | #define __NR_sethostname 161 | |
| 147 | #define __NR_setdomainname 162 | |
| 148 | #define __NR_getrusage 165 | |
| 149 | #define __NR_umask 166 | |
| 150 | #define __NR_prctl 167 | |
| 151 | #define __NR_getcpu 168 | |
| 152 | #define __NR_getpid 172 | |
| 153 | #define __NR_getppid 173 | |
| 154 | #define __NR_getuid 174 | |
| 155 | #define __NR_geteuid 175 | |
| 156 | #define __NR_getgid 176 | |
| 157 | #define __NR_getegid 177 | |
| 158 | #define __NR_gettid 178 | |
| 159 | #define __NR_sysinfo 179 | |
| 160 | #define __NR_mq_open 180 | |
| 161 | #define __NR_mq_unlink 181 | |
| 162 | #define __NR_mq_notify 184 | |
| 163 | #define __NR_mq_getsetattr 185 | |
| 164 | #define __NR_msgget 186 | |
| 165 | #define __NR_msgctl 187 | |
| 166 | #define __NR_msgrcv 188 | |
| 167 | #define __NR_msgsnd 189 | |
| 168 | #define __NR_semget 190 | |
| 169 | #define __NR_semctl 191 | |
| 170 | #define __NR_semop 193 | |
| 171 | #define __NR_shmget 194 | |
| 172 | #define __NR_shmctl 195 | |
| 173 | #define __NR_shmat 196 | |
| 174 | #define __NR_shmdt 197 | |
| 175 | #define __NR_socket 198 | |
| 176 | #define __NR_socketpair 199 | |
| 177 | #define __NR_bind 200 | |
| 178 | #define __NR_listen 201 | |
| 179 | #define __NR_accept 202 | |
| 180 | #define __NR_connect 203 | |
| 181 | #define __NR_getsockname 204 | |
| 182 | #define __NR_getpeername 205 | |
| 183 | #define __NR_sendto 206 | |
| 184 | #define __NR_recvfrom 207 | |
| 185 | #define __NR_setsockopt 208 | |
| 186 | #define __NR_getsockopt 209 | |
| 187 | #define __NR_shutdown 210 | |
| 188 | #define __NR_sendmsg 211 | |
| 189 | #define __NR_recvmsg 212 | |
| 190 | #define __NR_readahead 213 | |
| 191 | #define __NR_brk 214 | |
| 192 | #define __NR_munmap 215 | |
| 193 | #define __NR_mremap 216 | |
| 194 | #define __NR_add_key 217 | |
| 195 | #define __NR_request_key 218 | |
| 196 | #define __NR_keyctl 219 | |
| 197 | #define __NR_clone 220 | |
| 198 | #define __NR_execve 221 | |
| 199 | #define __NR_mmap2 222 | |
| 200 | #define __NR_fadvise64_64 223 | |
| 201 | #define __NR_swapon 224 | |
| 202 | #define __NR_swapoff 225 | |
| 203 | #define __NR_mprotect 226 | |
| 204 | #define __NR_msync 227 | |
| 205 | #define __NR_mlock 228 | |
| 206 | #define __NR_munlock 229 | |
| 207 | #define __NR_mlockall 230 | |
| 208 | #define __NR_munlockall 231 | |
| 209 | #define __NR_mincore 232 | |
| 210 | #define __NR_madvise 233 | |
| 211 | #define __NR_remap_file_pages 234 | |
| 212 | #define __NR_mbind 235 | |
| 213 | #define __NR_get_mempolicy 236 | |
| 214 | #define __NR_set_mempolicy 237 | |
| 215 | #define __NR_migrate_pages 238 | |
| 216 | #define __NR_move_pages 239 | |
| 217 | #define __NR_rt_tgsigqueueinfo 240 | |
| 218 | #define __NR_perf_event_open 241 | |
| 219 | #define __NR_accept4 242 | |
| 220 | #define __NR_riscv_hwprobe 258 | |
| 221 | #define __NR_riscv_flush_icache 259 | |
| 222 | #define __NR_prlimit64 261 | |
| 223 | #define __NR_fanotify_init 262 | |
| 224 | #define __NR_fanotify_mark 263 | |
| 225 | #define __NR_name_to_handle_at 264 | |
| 226 | #define __NR_open_by_handle_at 265 | |
| 227 | #define __NR_syncfs 267 | |
| 228 | #define __NR_setns 268 | |
| 229 | #define __NR_sendmmsg 269 | |
| 230 | #define __NR_process_vm_readv 270 | |
| 231 | #define __NR_process_vm_writev 271 | |
| 232 | #define __NR_kcmp 272 | |
| 233 | #define __NR_finit_module 273 | |
| 234 | #define __NR_sched_setattr 274 | |
| 235 | #define __NR_sched_getattr 275 | |
| 236 | #define __NR_renameat2 276 | |
| 237 | #define __NR_seccomp 277 | |
| 238 | #define __NR_getrandom 278 | |
| 239 | #define __NR_memfd_create 279 | |
| 240 | #define __NR_bpf 280 | |
| 241 | #define __NR_execveat 281 | |
| 242 | #define __NR_userfaultfd 282 | |
| 243 | #define __NR_membarrier 283 | |
| 244 | #define __NR_mlock2 284 | |
| 245 | #define __NR_copy_file_range 285 | |
| 246 | #define __NR_preadv2 286 | |
| 247 | #define __NR_pwritev2 287 | |
| 248 | #define __NR_pkey_mprotect 288 | |
| 249 | #define __NR_pkey_alloc 289 | |
| 250 | #define __NR_pkey_free 290 | |
| 251 | #define __NR_statx 291 | |
| 252 | #define __NR_rseq 293 | |
| 253 | #define __NR_kexec_file_load 294 | |
| 254 | #define __NR_clock_gettime64 403 | |
| 255 | #define __NR_clock_settime64 404 | |
| 256 | #define __NR_clock_adjtime64 405 | |
| 257 | #define __NR_clock_getres_time64 406 | |
| 258 | #define __NR_clock_nanosleep_time64 407 | |
| 259 | #define __NR_timer_gettime64 408 | |
| 260 | #define __NR_timer_settime64 409 | |
| 261 | #define __NR_timerfd_gettime64 410 | |
| 262 | #define __NR_timerfd_settime64 411 | |
| 263 | #define __NR_utimensat_time64 412 | |
| 264 | #define __NR_pselect6_time64 413 | |
| 265 | #define __NR_ppoll_time64 414 | |
| 266 | #define __NR_io_pgetevents_time64 416 | |
| 267 | #define __NR_recvmmsg_time64 417 | |
| 268 | #define __NR_mq_timedsend_time64 418 | |
| 269 | #define __NR_mq_timedreceive_time64 419 | |
| 270 | #define __NR_semtimedop_time64 420 | |
| 271 | #define __NR_rt_sigtimedwait_time64 421 | |
| 272 | #define __NR_futex_time64 422 | |
| 273 | #define __NR_sched_rr_get_interval_time64 423 | |
| 274 | #define __NR_pidfd_send_signal 424 | |
| 275 | #define __NR_io_uring_setup 425 | |
| 276 | #define __NR_io_uring_enter 426 | |
| 277 | #define __NR_io_uring_register 427 | |
| 278 | #define __NR_open_tree 428 | |
| 279 | #define __NR_move_mount 429 | |
| 280 | #define __NR_fsopen 430 | |
| 281 | #define __NR_fsconfig 431 | |
| 282 | #define __NR_fsmount 432 | |
| 283 | #define __NR_fspick 433 | |
| 284 | #define __NR_pidfd_open 434 | |
| 285 | #define __NR_clone3 435 | |
| 286 | #define __NR_close_range 436 | |
| 287 | #define __NR_openat2 437 | |
| 288 | #define __NR_pidfd_getfd 438 | |
| 289 | #define __NR_faccessat2 439 | |
| 290 | #define __NR_process_madvise 440 | |
| 291 | #define __NR_epoll_pwait2 441 | |
| 292 | #define __NR_mount_setattr 442 | |
| 293 | #define __NR_quotactl_fd 443 | |
| 294 | #define __NR_landlock_create_ruleset 444 | |
| 295 | #define __NR_landlock_add_rule 445 | |
| 296 | #define __NR_landlock_restrict_self 446 | |
| 297 | #define __NR_memfd_secret 447 | |
| 298 | #define __NR_process_mrelease 448 | |
| 299 | #define __NR_futex_waitv 449 | |
| 300 | #define __NR_set_mempolicy_home_node 450 | |
| 301 | #define __NR_cachestat 451 | |
| 302 | #define __NR_fchmodat2 452 | |
| 303 | #define __NR_map_shadow_stack 453 | |
| 304 | #define __NR_futex_wake 454 | |
| 305 | #define __NR_futex_wait 455 | |
| 306 | #define __NR_futex_requeue 456 | |
| 307 | #define __NR_statmount 457 | |
| 308 | #define __NR_listmount 458 | |
| 309 | #define __NR_lsm_get_self_attr 459 | |
| 310 | #define __NR_lsm_set_self_attr 460 | |
| 311 | #define __NR_lsm_list_modules 461 | |
| 312 | #define __NR_mseal 462 | |
| 313 | #define __NR_setxattrat 463 | |
| 314 | #define __NR_getxattrat 464 | |
| 315 | #define __NR_listxattrat 465 | |
| 316 | #define __NR_removexattrat 466 | |
| 317 | ||
| 318 | ||
| 319 | #endif /* _ASM_UNISTD_32_H */ | |
| \ No newline at end of file |
lib/libc/include/riscv-linux-any/asm/unistd_64.h created+329| ... | ... | @@ -0,0 +1,329 @@ |
| 1 | #ifndef _ASM_UNISTD_64_H | |
| 2 | #define _ASM_UNISTD_64_H | |
| 3 | ||
| 4 | #define __NR_io_setup 0 | |
| 5 | #define __NR_io_destroy 1 | |
| 6 | #define __NR_io_submit 2 | |
| 7 | #define __NR_io_cancel 3 | |
| 8 | #define __NR_io_getevents 4 | |
| 9 | #define __NR_setxattr 5 | |
| 10 | #define __NR_lsetxattr 6 | |
| 11 | #define __NR_fsetxattr 7 | |
| 12 | #define __NR_getxattr 8 | |
| 13 | #define __NR_lgetxattr 9 | |
| 14 | #define __NR_fgetxattr 10 | |
| 15 | #define __NR_listxattr 11 | |
| 16 | #define __NR_llistxattr 12 | |
| 17 | #define __NR_flistxattr 13 | |
| 18 | #define __NR_removexattr 14 | |
| 19 | #define __NR_lremovexattr 15 | |
| 20 | #define __NR_fremovexattr 16 | |
| 21 | #define __NR_getcwd 17 | |
| 22 | #define __NR_lookup_dcookie 18 | |
| 23 | #define __NR_eventfd2 19 | |
| 24 | #define __NR_epoll_create1 20 | |
| 25 | #define __NR_epoll_ctl 21 | |
| 26 | #define __NR_epoll_pwait 22 | |
| 27 | #define __NR_dup 23 | |
| 28 | #define __NR_dup3 24 | |
| 29 | #define __NR_fcntl 25 | |
| 30 | #define __NR_inotify_init1 26 | |
| 31 | #define __NR_inotify_add_watch 27 | |
| 32 | #define __NR_inotify_rm_watch 28 | |
| 33 | #define __NR_ioctl 29 | |
| 34 | #define __NR_ioprio_set 30 | |
| 35 | #define __NR_ioprio_get 31 | |
| 36 | #define __NR_flock 32 | |
| 37 | #define __NR_mknodat 33 | |
| 38 | #define __NR_mkdirat 34 | |
| 39 | #define __NR_unlinkat 35 | |
| 40 | #define __NR_symlinkat 36 | |
| 41 | #define __NR_linkat 37 | |
| 42 | #define __NR_umount2 39 | |
| 43 | #define __NR_mount 40 | |
| 44 | #define __NR_pivot_root 41 | |
| 45 | #define __NR_nfsservctl 42 | |
| 46 | #define __NR_statfs 43 | |
| 47 | #define __NR_fstatfs 44 | |
| 48 | #define __NR_truncate 45 | |
| 49 | #define __NR_ftruncate 46 | |
| 50 | #define __NR_fallocate 47 | |
| 51 | #define __NR_faccessat 48 | |
| 52 | #define __NR_chdir 49 | |
| 53 | #define __NR_fchdir 50 | |
| 54 | #define __NR_chroot 51 | |
| 55 | #define __NR_fchmod 52 | |
| 56 | #define __NR_fchmodat 53 | |
| 57 | #define __NR_fchownat 54 | |
| 58 | #define __NR_fchown 55 | |
| 59 | #define __NR_openat 56 | |
| 60 | #define __NR_close 57 | |
| 61 | #define __NR_vhangup 58 | |
| 62 | #define __NR_pipe2 59 | |
| 63 | #define __NR_quotactl 60 | |
| 64 | #define __NR_getdents64 61 | |
| 65 | #define __NR_lseek 62 | |
| 66 | #define __NR_read 63 | |
| 67 | #define __NR_write 64 | |
| 68 | #define __NR_readv 65 | |
| 69 | #define __NR_writev 66 | |
| 70 | #define __NR_pread64 67 | |
| 71 | #define __NR_pwrite64 68 | |
| 72 | #define __NR_preadv 69 | |
| 73 | #define __NR_pwritev 70 | |
| 74 | #define __NR_sendfile 71 | |
| 75 | #define __NR_pselect6 72 | |
| 76 | #define __NR_ppoll 73 | |
| 77 | #define __NR_signalfd4 74 | |
| 78 | #define __NR_vmsplice 75 | |
| 79 | #define __NR_splice 76 | |
| 80 | #define __NR_tee 77 | |
| 81 | #define __NR_readlinkat 78 | |
| 82 | #define __NR_newfstatat 79 | |
| 83 | #define __NR_fstat 80 | |
| 84 | #define __NR_sync 81 | |
| 85 | #define __NR_fsync 82 | |
| 86 | #define __NR_fdatasync 83 | |
| 87 | #define __NR_sync_file_range 84 | |
| 88 | #define __NR_timerfd_create 85 | |
| 89 | #define __NR_timerfd_settime 86 | |
| 90 | #define __NR_timerfd_gettime 87 | |
| 91 | #define __NR_utimensat 88 | |
| 92 | #define __NR_acct 89 | |
| 93 | #define __NR_capget 90 | |
| 94 | #define __NR_capset 91 | |
| 95 | #define __NR_personality 92 | |
| 96 | #define __NR_exit 93 | |
| 97 | #define __NR_exit_group 94 | |
| 98 | #define __NR_waitid 95 | |
| 99 | #define __NR_set_tid_address 96 | |
| 100 | #define __NR_unshare 97 | |
| 101 | #define __NR_futex 98 | |
| 102 | #define __NR_set_robust_list 99 | |
| 103 | #define __NR_get_robust_list 100 | |
| 104 | #define __NR_nanosleep 101 | |
| 105 | #define __NR_getitimer 102 | |
| 106 | #define __NR_setitimer 103 | |
| 107 | #define __NR_kexec_load 104 | |
| 108 | #define __NR_init_module 105 | |
| 109 | #define __NR_delete_module 106 | |
| 110 | #define __NR_timer_create 107 | |
| 111 | #define __NR_timer_gettime 108 | |
| 112 | #define __NR_timer_getoverrun 109 | |
| 113 | #define __NR_timer_settime 110 | |
| 114 | #define __NR_timer_delete 111 | |
| 115 | #define __NR_clock_settime 112 | |
| 116 | #define __NR_clock_gettime 113 | |
| 117 | #define __NR_clock_getres 114 | |
| 118 | #define __NR_clock_nanosleep 115 | |
| 119 | #define __NR_syslog 116 | |
| 120 | #define __NR_ptrace 117 | |
| 121 | #define __NR_sched_setparam 118 | |
| 122 | #define __NR_sched_setscheduler 119 | |
| 123 | #define __NR_sched_getscheduler 120 | |
| 124 | #define __NR_sched_getparam 121 | |
| 125 | #define __NR_sched_setaffinity 122 | |
| 126 | #define __NR_sched_getaffinity 123 | |
| 127 | #define __NR_sched_yield 124 | |
| 128 | #define __NR_sched_get_priority_max 125 | |
| 129 | #define __NR_sched_get_priority_min 126 | |
| 130 | #define __NR_sched_rr_get_interval 127 | |
| 131 | #define __NR_restart_syscall 128 | |
| 132 | #define __NR_kill 129 | |
| 133 | #define __NR_tkill 130 | |
| 134 | #define __NR_tgkill 131 | |
| 135 | #define __NR_sigaltstack 132 | |
| 136 | #define __NR_rt_sigsuspend 133 | |
| 137 | #define __NR_rt_sigaction 134 | |
| 138 | #define __NR_rt_sigprocmask 135 | |
| 139 | #define __NR_rt_sigpending 136 | |
| 140 | #define __NR_rt_sigtimedwait 137 | |
| 141 | #define __NR_rt_sigqueueinfo 138 | |
| 142 | #define __NR_rt_sigreturn 139 | |
| 143 | #define __NR_setpriority 140 | |
| 144 | #define __NR_getpriority 141 | |
| 145 | #define __NR_reboot 142 | |
| 146 | #define __NR_setregid 143 | |
| 147 | #define __NR_setgid 144 | |
| 148 | #define __NR_setreuid 145 | |
| 149 | #define __NR_setuid 146 | |
| 150 | #define __NR_setresuid 147 | |
| 151 | #define __NR_getresuid 148 | |
| 152 | #define __NR_setresgid 149 | |
| 153 | #define __NR_getresgid 150 | |
| 154 | #define __NR_setfsuid 151 | |
| 155 | #define __NR_setfsgid 152 | |
| 156 | #define __NR_times 153 | |
| 157 | #define __NR_setpgid 154 | |
| 158 | #define __NR_getpgid 155 | |
| 159 | #define __NR_getsid 156 | |
| 160 | #define __NR_setsid 157 | |
| 161 | #define __NR_getgroups 158 | |
| 162 | #define __NR_setgroups 159 | |
| 163 | #define __NR_uname 160 | |
| 164 | #define __NR_sethostname 161 | |
| 165 | #define __NR_setdomainname 162 | |
| 166 | #define __NR_getrlimit 163 | |
| 167 | #define __NR_setrlimit 164 | |
| 168 | #define __NR_getrusage 165 | |
| 169 | #define __NR_umask 166 | |
| 170 | #define __NR_prctl 167 | |
| 171 | #define __NR_getcpu 168 | |
| 172 | #define __NR_gettimeofday 169 | |
| 173 | #define __NR_settimeofday 170 | |
| 174 | #define __NR_adjtimex 171 | |
| 175 | #define __NR_getpid 172 | |
| 176 | #define __NR_getppid 173 | |
| 177 | #define __NR_getuid 174 | |
| 178 | #define __NR_geteuid 175 | |
| 179 | #define __NR_getgid 176 | |
| 180 | #define __NR_getegid 177 | |
| 181 | #define __NR_gettid 178 | |
| 182 | #define __NR_sysinfo 179 | |
| 183 | #define __NR_mq_open 180 | |
| 184 | #define __NR_mq_unlink 181 | |
| 185 | #define __NR_mq_timedsend 182 | |
| 186 | #define __NR_mq_timedreceive 183 | |
| 187 | #define __NR_mq_notify 184 | |
| 188 | #define __NR_mq_getsetattr 185 | |
| 189 | #define __NR_msgget 186 | |
| 190 | #define __NR_msgctl 187 | |
| 191 | #define __NR_msgrcv 188 | |
| 192 | #define __NR_msgsnd 189 | |
| 193 | #define __NR_semget 190 | |
| 194 | #define __NR_semctl 191 | |
| 195 | #define __NR_semtimedop 192 | |
| 196 | #define __NR_semop 193 | |
| 197 | #define __NR_shmget 194 | |
| 198 | #define __NR_shmctl 195 | |
| 199 | #define __NR_shmat 196 | |
| 200 | #define __NR_shmdt 197 | |
| 201 | #define __NR_socket 198 | |
| 202 | #define __NR_socketpair 199 | |
| 203 | #define __NR_bind 200 | |
| 204 | #define __NR_listen 201 | |
| 205 | #define __NR_accept 202 | |
| 206 | #define __NR_connect 203 | |
| 207 | #define __NR_getsockname 204 | |
| 208 | #define __NR_getpeername 205 | |
| 209 | #define __NR_sendto 206 | |
| 210 | #define __NR_recvfrom 207 | |
| 211 | #define __NR_setsockopt 208 | |
| 212 | #define __NR_getsockopt 209 | |
| 213 | #define __NR_shutdown 210 | |
| 214 | #define __NR_sendmsg 211 | |
| 215 | #define __NR_recvmsg 212 | |
| 216 | #define __NR_readahead 213 | |
| 217 | #define __NR_brk 214 | |
| 218 | #define __NR_munmap 215 | |
| 219 | #define __NR_mremap 216 | |
| 220 | #define __NR_add_key 217 | |
| 221 | #define __NR_request_key 218 | |
| 222 | #define __NR_keyctl 219 | |
| 223 | #define __NR_clone 220 | |
| 224 | #define __NR_execve 221 | |
| 225 | #define __NR_mmap 222 | |
| 226 | #define __NR_fadvise64 223 | |
| 227 | #define __NR_swapon 224 | |
| 228 | #define __NR_swapoff 225 | |
| 229 | #define __NR_mprotect 226 | |
| 230 | #define __NR_msync 227 | |
| 231 | #define __NR_mlock 228 | |
| 232 | #define __NR_munlock 229 | |
| 233 | #define __NR_mlockall 230 | |
| 234 | #define __NR_munlockall 231 | |
| 235 | #define __NR_mincore 232 | |
| 236 | #define __NR_madvise 233 | |
| 237 | #define __NR_remap_file_pages 234 | |
| 238 | #define __NR_mbind 235 | |
| 239 | #define __NR_get_mempolicy 236 | |
| 240 | #define __NR_set_mempolicy 237 | |
| 241 | #define __NR_migrate_pages 238 | |
| 242 | #define __NR_move_pages 239 | |
| 243 | #define __NR_rt_tgsigqueueinfo 240 | |
| 244 | #define __NR_perf_event_open 241 | |
| 245 | #define __NR_accept4 242 | |
| 246 | #define __NR_recvmmsg 243 | |
| 247 | #define __NR_riscv_hwprobe 258 | |
| 248 | #define __NR_riscv_flush_icache 259 | |
| 249 | #define __NR_wait4 260 | |
| 250 | #define __NR_prlimit64 261 | |
| 251 | #define __NR_fanotify_init 262 | |
| 252 | #define __NR_fanotify_mark 263 | |
| 253 | #define __NR_name_to_handle_at 264 | |
| 254 | #define __NR_open_by_handle_at 265 | |
| 255 | #define __NR_clock_adjtime 266 | |
| 256 | #define __NR_syncfs 267 | |
| 257 | #define __NR_setns 268 | |
| 258 | #define __NR_sendmmsg 269 | |
| 259 | #define __NR_process_vm_readv 270 | |
| 260 | #define __NR_process_vm_writev 271 | |
| 261 | #define __NR_kcmp 272 | |
| 262 | #define __NR_finit_module 273 | |
| 263 | #define __NR_sched_setattr 274 | |
| 264 | #define __NR_sched_getattr 275 | |
| 265 | #define __NR_renameat2 276 | |
| 266 | #define __NR_seccomp 277 | |
| 267 | #define __NR_getrandom 278 | |
| 268 | #define __NR_memfd_create 279 | |
| 269 | #define __NR_bpf 280 | |
| 270 | #define __NR_execveat 281 | |
| 271 | #define __NR_userfaultfd 282 | |
| 272 | #define __NR_membarrier 283 | |
| 273 | #define __NR_mlock2 284 | |
| 274 | #define __NR_copy_file_range 285 | |
| 275 | #define __NR_preadv2 286 | |
| 276 | #define __NR_pwritev2 287 | |
| 277 | #define __NR_pkey_mprotect 288 | |
| 278 | #define __NR_pkey_alloc 289 | |
| 279 | #define __NR_pkey_free 290 | |
| 280 | #define __NR_statx 291 | |
| 281 | #define __NR_io_pgetevents 292 | |
| 282 | #define __NR_rseq 293 | |
| 283 | #define __NR_kexec_file_load 294 | |
| 284 | #define __NR_pidfd_send_signal 424 | |
| 285 | #define __NR_io_uring_setup 425 | |
| 286 | #define __NR_io_uring_enter 426 | |
| 287 | #define __NR_io_uring_register 427 | |
| 288 | #define __NR_open_tree 428 | |
| 289 | #define __NR_move_mount 429 | |
| 290 | #define __NR_fsopen 430 | |
| 291 | #define __NR_fsconfig 431 | |
| 292 | #define __NR_fsmount 432 | |
| 293 | #define __NR_fspick 433 | |
| 294 | #define __NR_pidfd_open 434 | |
| 295 | #define __NR_clone3 435 | |
| 296 | #define __NR_close_range 436 | |
| 297 | #define __NR_openat2 437 | |
| 298 | #define __NR_pidfd_getfd 438 | |
| 299 | #define __NR_faccessat2 439 | |
| 300 | #define __NR_process_madvise 440 | |
| 301 | #define __NR_epoll_pwait2 441 | |
| 302 | #define __NR_mount_setattr 442 | |
| 303 | #define __NR_quotactl_fd 443 | |
| 304 | #define __NR_landlock_create_ruleset 444 | |
| 305 | #define __NR_landlock_add_rule 445 | |
| 306 | #define __NR_landlock_restrict_self 446 | |
| 307 | #define __NR_memfd_secret 447 | |
| 308 | #define __NR_process_mrelease 448 | |
| 309 | #define __NR_futex_waitv 449 | |
| 310 | #define __NR_set_mempolicy_home_node 450 | |
| 311 | #define __NR_cachestat 451 | |
| 312 | #define __NR_fchmodat2 452 | |
| 313 | #define __NR_map_shadow_stack 453 | |
| 314 | #define __NR_futex_wake 454 | |
| 315 | #define __NR_futex_wait 455 | |
| 316 | #define __NR_futex_requeue 456 | |
| 317 | #define __NR_statmount 457 | |
| 318 | #define __NR_listmount 458 | |
| 319 | #define __NR_lsm_get_self_attr 459 | |
| 320 | #define __NR_lsm_set_self_attr 460 | |
| 321 | #define __NR_lsm_list_modules 461 | |
| 322 | #define __NR_mseal 462 | |
| 323 | #define __NR_setxattrat 463 | |
| 324 | #define __NR_getxattrat 464 | |
| 325 | #define __NR_listxattrat 465 | |
| 326 | #define __NR_removexattrat 466 | |
| 327 | ||
| 328 | ||
| 329 | #endif /* _ASM_UNISTD_64_H */ | |
| \ No newline at end of file |
lib/libc/include/s390x-linux-any/asm/dasd.h+1-1| ... | ... | @@ -294,7 +294,7 @@ struct dasd_snid_ioctl_data { |
| 294 | 294 | /******************************************************************************** |
| 295 | 295 | * SECTION: Definition of IOCTLs |
| 296 | 296 | * |
| 297 | * Here ist how the ioctl-nr should be used: | |
| 297 | * Here is how the ioctl-nr should be used: | |
| 298 | 298 | * 0 - 31 DASD driver itself |
| 299 | 299 | * 32 - 239 still open |
| 300 | 300 | * 240 - 255	 reserved for EMC |
lib/libc/include/s390x-linux-any/asm/kvm.h+2-1| ... | ... | @@ -469,7 +469,8 @@ struct kvm_s390_vm_cpu_subfunc { |
| 469 | 469 | 	__u8 kdsa[16];		/* with MSA9 */ |
| 470 | 470 | 	__u8 sortl[32];		/* with STFLE.150 */ |
| 471 | 471 | 	__u8 dfltcc[32];	/* with STFLE.151 */ |
| 472 | 	__u8 reserved[1728]; | |
| 472 | 	__u8 pfcr[16];		/* with STFLE.201 */ | |
| 473 | 	__u8 reserved[1712]; | |
| 473 | 474 | }; |
| 474 | 475 | |
| 475 | 476 | #define KVM_S390_VM_CPU_PROCESSOR_UV_FEAT_GUEST	6 |
lib/libc/include/s390x-linux-any/asm/pkey.h+31-10| ... | ... | @@ -41,23 +41,29 @@ |
| 41 | 41 | #define PKEY_KEYTYPE_ECC_P521		7 |
| 42 | 42 | #define PKEY_KEYTYPE_ECC_ED25519	8 |
| 43 | 43 | #define PKEY_KEYTYPE_ECC_ED448		9 |
| 44 | #define PKEY_KEYTYPE_AES_XTS_128	10 | |
| 45 | #define PKEY_KEYTYPE_AES_XTS_256	11 | |
| 46 | #define PKEY_KEYTYPE_HMAC_512		12 | |
| 47 | #define PKEY_KEYTYPE_HMAC_1024		13 | |
| 44 | 48 | |
| 45 | 49 | /* the newer ioctls use a pkey_key_type enum for type information */ |
| 46 | 50 | enum pkey_key_type { |
| 47 | 	PKEY_TYPE_CCA_DATA = (__u32) 1, | |
| 48 | 	PKEY_TYPE_CCA_CIPHER = (__u32) 2, | |
| 49 | 	PKEY_TYPE_EP11	 = (__u32) 3, | |
| 50 | 	PKEY_TYPE_CCA_ECC = (__u32) 0x1f, | |
| 51 | 	PKEY_TYPE_EP11_AES = (__u32) 6, | |
| 52 | 	PKEY_TYPE_EP11_ECC = (__u32) 7, | |
| 51 | 	PKEY_TYPE_CCA_DATA = (__u32)1, | |
| 52 | 	PKEY_TYPE_CCA_CIPHER = (__u32)2, | |
| 53 | 	PKEY_TYPE_EP11	 = (__u32)3, | |
| 54 | 	PKEY_TYPE_CCA_ECC = (__u32)0x1f, | |
| 55 | 	PKEY_TYPE_EP11_AES = (__u32)6, | |
| 56 | 	PKEY_TYPE_EP11_ECC = (__u32)7, | |
| 57 | 	PKEY_TYPE_PROTKEY = (__u32)8, | |
| 58 | 	PKEY_TYPE_UVSECRET = (__u32)9, | |
| 53 | 59 | }; |
| 54 | 60 | |
| 55 | 61 | /* the newer ioctls use a pkey_key_size enum for key size information */ |
| 56 | 62 | enum pkey_key_size { |
| 57 | 	PKEY_SIZE_AES_128 = (__u32) 128, | |
| 58 | 	PKEY_SIZE_AES_192 = (__u32) 192, | |
| 59 | 	PKEY_SIZE_AES_256 = (__u32) 256, | |
| 60 | 	PKEY_SIZE_UNKNOWN = (__u32) 0xFFFFFFFF, | |
| 63 | 	PKEY_SIZE_AES_128 = (__u32)128, | |
| 64 | 	PKEY_SIZE_AES_192 = (__u32)192, | |
| 65 | 	PKEY_SIZE_AES_256 = (__u32)256, | |
| 66 | 	PKEY_SIZE_UNKNOWN = (__u32)0xFFFFFFFF, | |
| 61 | 67 | }; |
| 62 | 68 | |
| 63 | 69 | /* some of the newer ioctls use these flags */ |
| ... | ... | @@ -120,6 +126,7 @@ struct pkey_genseck { |
| 120 | 126 | 	__u32 keytype;		 /* in: key type to generate		 */ |
| 121 | 127 | 	struct pkey_seckey seckey; /* out: the secure key blob		 */ |
| 122 | 128 | }; |
| 129 | ||
| 123 | 130 | #define PKEY_GENSECK _IOWR(PKEY_IOCTL_MAGIC, 0x01, struct pkey_genseck) |
| 124 | 131 | |
| 125 | 132 | /* |
| ... | ... | @@ -132,6 +139,7 @@ struct pkey_clr2seck { |
| 132 | 139 | 	struct pkey_clrkey clrkey; /* in: the clear key value		 */ |
| 133 | 140 | 	struct pkey_seckey seckey; /* out: the secure key blob		 */ |
| 134 | 141 | }; |
| 142 | ||
| 135 | 143 | #define PKEY_CLR2SECK _IOWR(PKEY_IOCTL_MAGIC, 0x02, struct pkey_clr2seck) |
| 136 | 144 | |
| 137 | 145 | /* |
| ... | ... | @@ -143,6 +151,7 @@ struct pkey_sec2protk { |
| 143 | 151 | 	struct pkey_seckey seckey; /* in: the secure key blob		 */ |
| 144 | 152 | 	struct pkey_protkey protkey; /* out: the protected key		 */ |
| 145 | 153 | }; |
| 154 | ||
| 146 | 155 | #define PKEY_SEC2PROTK _IOWR(PKEY_IOCTL_MAGIC, 0x03, struct pkey_sec2protk) |
| 147 | 156 | |
| 148 | 157 | /* |
| ... | ... | @@ -153,6 +162,7 @@ struct pkey_clr2protk { |
| 153 | 162 | 	struct pkey_clrkey clrkey; /* in: the clear key value		 */ |
| 154 | 163 | 	struct pkey_protkey protkey; /* out: the protected key		 */ |
| 155 | 164 | }; |
| 165 | ||
| 156 | 166 | #define PKEY_CLR2PROTK _IOWR(PKEY_IOCTL_MAGIC, 0x04, struct pkey_clr2protk) |
| 157 | 167 | |
| 158 | 168 | /* |
| ... | ... | @@ -164,6 +174,7 @@ struct pkey_findcard { |
| 164 | 174 | 	__u16 cardnr;			 /* out: card number	 */ |
| 165 | 175 | 	__u16 domain;			 /* out: domain number	 */ |
| 166 | 176 | }; |
| 177 | ||
| 167 | 178 | #define PKEY_FINDCARD _IOWR(PKEY_IOCTL_MAGIC, 0x05, struct pkey_findcard) |
| 168 | 179 | |
| 169 | 180 | /* |
| ... | ... | @@ -173,6 +184,7 @@ struct pkey_skey2pkey { |
| 173 | 184 | 	struct pkey_seckey seckey; /* in: the secure key blob		 */ |
| 174 | 185 | 	struct pkey_protkey protkey; /* out: the protected key		 */ |
| 175 | 186 | }; |
| 187 | ||
| 176 | 188 | #define PKEY_SKEY2PKEY _IOWR(PKEY_IOCTL_MAGIC, 0x06, struct pkey_skey2pkey) |
| 177 | 189 | |
| 178 | 190 | /* |
| ... | ... | @@ -190,6 +202,7 @@ struct pkey_verifykey { |
| 190 | 202 | 	__u16 keysize;			 /* out: key size in bits */ |
| 191 | 203 | 	__u32 attributes;		 /* out: attribute bits	 */ |
| 192 | 204 | }; |
| 205 | ||
| 193 | 206 | #define PKEY_VERIFYKEY _IOWR(PKEY_IOCTL_MAGIC, 0x07, struct pkey_verifykey) |
| 194 | 207 | #define PKEY_VERIFY_ATTR_AES	 0x00000001 /* key is an AES key */ |
| 195 | 208 | #define PKEY_VERIFY_ATTR_OLD_MKVP 0x00000100 /* key has old MKVP value */ |
| ... | ... | @@ -221,6 +234,7 @@ struct pkey_kblob2pkey { |
| 221 | 234 | 	__u32 keylen;			/* in: the key blob length */ |
| 222 | 235 | 	struct pkey_protkey protkey;	/* out: the protected key */ |
| 223 | 236 | }; |
| 237 | ||
| 224 | 238 | #define PKEY_KBLOB2PROTK _IOWR(PKEY_IOCTL_MAGIC, 0x0A, struct pkey_kblob2pkey) |
| 225 | 239 | |
| 226 | 240 | /* |
| ... | ... | @@ -253,6 +267,7 @@ struct pkey_genseck2 { |
| 253 | 267 | 	__u32 keylen;		 /* in: available key blob buffer size */ |
| 254 | 268 | 				 /* out: actual key blob size	 */ |
| 255 | 269 | }; |
| 270 | ||
| 256 | 271 | #define PKEY_GENSECK2 _IOWR(PKEY_IOCTL_MAGIC, 0x11, struct pkey_genseck2) |
| 257 | 272 | |
| 258 | 273 | /* |
| ... | ... | @@ -287,6 +302,7 @@ struct pkey_clr2seck2 { |
| 287 | 302 | 	__u32 keylen;		 /* in: available key blob buffer size */ |
| 288 | 303 | 				 /* out: actual key blob size	 */ |
| 289 | 304 | }; |
| 305 | ||
| 290 | 306 | #define PKEY_CLR2SECK2 _IOWR(PKEY_IOCTL_MAGIC, 0x12, struct pkey_clr2seck2) |
| 291 | 307 | |
| 292 | 308 | /* |
| ... | ... | @@ -324,6 +340,7 @@ struct pkey_verifykey2 { |
| 324 | 340 | 	enum pkey_key_size size; /* out: the key size		 */ |
| 325 | 341 | 	__u32 flags;		 /* out: additional key info flags	 */ |
| 326 | 342 | }; |
| 343 | ||
| 327 | 344 | #define PKEY_VERIFYKEY2 _IOWR(PKEY_IOCTL_MAGIC, 0x17, struct pkey_verifykey2) |
| 328 | 345 | |
| 329 | 346 | /* |
| ... | ... | @@ -346,6 +363,7 @@ struct pkey_kblob2pkey2 { |
| 346 | 363 | 	__u32 apqn_entries;	 /* in: # of apqn target list entries */ |
| 347 | 364 | 	struct pkey_protkey protkey; /* out: the protected key		 */ |
| 348 | 365 | }; |
| 366 | ||
| 349 | 367 | #define PKEY_KBLOB2PROTK2 _IOWR(PKEY_IOCTL_MAGIC, 0x1A, struct pkey_kblob2pkey2) |
| 350 | 368 | |
| 351 | 369 | /* |
| ... | ... | @@ -382,6 +400,7 @@ struct pkey_apqns4key { |
| 382 | 400 | 	__u32 apqn_entries;	 /* in: max # of apqn entries in the list */ |
| 383 | 401 | 				 /* out: # apqns stored into the list	 */ |
| 384 | 402 | }; |
| 403 | ||
| 385 | 404 | #define PKEY_APQNS4K _IOWR(PKEY_IOCTL_MAGIC, 0x1B, struct pkey_apqns4key) |
| 386 | 405 | |
| 387 | 406 | /* |
| ... | ... | @@ -421,6 +440,7 @@ struct pkey_apqns4keytype { |
| 421 | 440 | 	__u32 apqn_entries;	 /* in: max # of apqn entries in the list */ |
| 422 | 441 | 				 /* out: # apqns stored into the list	 */ |
| 423 | 442 | }; |
| 443 | ||
| 424 | 444 | #define PKEY_APQNS4KT _IOWR(PKEY_IOCTL_MAGIC, 0x1C, struct pkey_apqns4keytype) |
| 425 | 445 | |
| 426 | 446 | /* |
| ... | ... | @@ -447,6 +467,7 @@ struct pkey_kblob2pkey3 { |
| 447 | 467 | 	__u32 pkeylen;	 /* in/out: size of pkey buffer/actual len of pkey */ |
| 448 | 468 | 	__u8 *pkey;		 /* in: pkey blob buffer space ptr */ |
| 449 | 469 | }; |
| 470 | ||
| 450 | 471 | #define PKEY_KBLOB2PROTK3 _IOWR(PKEY_IOCTL_MAGIC, 0x1D, struct pkey_kblob2pkey3) |
| 451 | 472 | |
| 452 | 473 | #endif /* _PKEY_H */ |
| \ No newline at end of file |
lib/libc/include/s390x-linux-any/asm/unistd_32.h+4| ... | ... | @@ -435,5 +435,9 @@ |
| 435 | 435 | #define __NR_lsm_set_self_attr 460 |
| 436 | 436 | #define __NR_lsm_list_modules 461 |
| 437 | 437 | #define __NR_mseal 462 |
| 438 | #define __NR_setxattrat 463 | |
| 439 | #define __NR_getxattrat 464 | |
| 440 | #define __NR_listxattrat 465 | |
| 441 | #define __NR_removexattrat 466 | |
| 438 | 442 | |
| 439 | 443 | #endif /* _ASM_S390_UNISTD_32_H */ |
| \ No newline at end of file |
lib/libc/include/s390x-linux-any/asm/unistd_64.h+4| ... | ... | @@ -383,5 +383,9 @@ |
| 383 | 383 | #define __NR_lsm_set_self_attr 460 |
| 384 | 384 | #define __NR_lsm_list_modules 461 |
| 385 | 385 | #define __NR_mseal 462 |
| 386 | #define __NR_setxattrat 463 | |
| 387 | #define __NR_getxattrat 464 | |
| 388 | #define __NR_listxattrat 465 | |
| 389 | #define __NR_removexattrat 466 | |
| 386 | 390 | |
| 387 | 391 | #endif /* _ASM_S390_UNISTD_64_H */ |
| \ No newline at end of file |
lib/libc/include/s390x-linux-any/asm/uvdevice.h+18-14| ... | ... | @@ -1,6 +1,6 @@ |
| 1 | 1 | /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ |
| 2 | 2 | /* |
| 3 | * Copyright IBM Corp. 2022 | |
| 3 | * Copyright IBM Corp. 2022, 2024 | |
| 4 | 4 | * Author(s): Steffen Eiden <seiden@linux.ibm.com> |
| 5 | 5 | */ |
| 6 | 6 | #ifndef __S390_ASM_UVDEVICE_H |
| ... | ... | @@ -52,7 +52,7 @@ struct uvio_uvdev_info { |
| 52 | 52 | 	__u64 supp_uvio_cmds; |
| 53 | 53 | 	/* |
| 54 | 54 | 	 * If bit `n` is set, the Ultravisor(UV) supports the UV-call |
| 55 | 	 * corresponding to the IOCTL with nr `n` in the calling contextx (host | |
| 55 | 	 * corresponding to the IOCTL with nr `n` in the calling context (host | |
| 56 | 56 | 	 * or guest). The value is only valid if the corresponding bit in |
| 57 | 57 | 	 * @supp_uvio_cmds is set as well. |
| 58 | 58 | 	 */ |
| ... | ... | @@ -71,6 +71,7 @@ struct uvio_uvdev_info { |
| 71 | 71 | #define UVIO_ATT_ADDITIONAL_MAX_LEN	0x8000 |
| 72 | 72 | #define UVIO_ADD_SECRET_MAX_LEN		0x100000 |
| 73 | 73 | #define UVIO_LIST_SECRETS_LEN		0x1000 |
| 74 | #define UVIO_RETR_SECRET_MAX_LEN	0x2000 | |
| 74 | 75 | |
| 75 | 76 | #define UVIO_DEVICE_NAME "uv" |
| 76 | 77 | #define UVIO_TYPE_UVC 'u' |
| ... | ... | @@ -81,22 +82,25 @@ enum UVIO_IOCTL_NR { |
| 81 | 82 | 	UVIO_IOCTL_ADD_SECRET_NR, |
| 82 | 83 | 	UVIO_IOCTL_LIST_SECRETS_NR, |
| 83 | 84 | 	UVIO_IOCTL_LOCK_SECRETS_NR, |
| 85 | 	UVIO_IOCTL_RETR_SECRET_NR, | |
| 84 | 86 | 	/* must be the last entry */ |
| 85 | 87 | 	UVIO_IOCTL_NUM_IOCTLS |
| 86 | 88 | }; |
| 87 | 89 | |
| 88 | #define UVIO_IOCTL(nr)		_IOWR(UVIO_TYPE_UVC, nr, struct uvio_ioctl_cb) | |
| 89 | #define UVIO_IOCTL_UVDEV_INFO	UVIO_IOCTL(UVIO_IOCTL_UVDEV_INFO_NR) | |
| 90 | #define UVIO_IOCTL_ATT		UVIO_IOCTL(UVIO_IOCTL_ATT_NR) | |
| 91 | #define UVIO_IOCTL_ADD_SECRET	UVIO_IOCTL(UVIO_IOCTL_ADD_SECRET_NR) | |
| 92 | #define UVIO_IOCTL_LIST_SECRETS	UVIO_IOCTL(UVIO_IOCTL_LIST_SECRETS_NR) | |
| 93 | #define UVIO_IOCTL_LOCK_SECRETS	UVIO_IOCTL(UVIO_IOCTL_LOCK_SECRETS_NR) | |
| 90 | #define UVIO_IOCTL(nr)			_IOWR(UVIO_TYPE_UVC, nr, struct uvio_ioctl_cb) | |
| 91 | #define UVIO_IOCTL_UVDEV_INFO		UVIO_IOCTL(UVIO_IOCTL_UVDEV_INFO_NR) | |
| 92 | #define UVIO_IOCTL_ATT			UVIO_IOCTL(UVIO_IOCTL_ATT_NR) | |
| 93 | #define UVIO_IOCTL_ADD_SECRET		UVIO_IOCTL(UVIO_IOCTL_ADD_SECRET_NR) | |
| 94 | #define UVIO_IOCTL_LIST_SECRETS		UVIO_IOCTL(UVIO_IOCTL_LIST_SECRETS_NR) | |
| 95 | #define UVIO_IOCTL_LOCK_SECRETS		UVIO_IOCTL(UVIO_IOCTL_LOCK_SECRETS_NR) | |
| 96 | #define UVIO_IOCTL_RETR_SECRET		UVIO_IOCTL(UVIO_IOCTL_RETR_SECRET_NR) | |
| 94 | 97 | |
| 95 | #define UVIO_SUPP_CALL(nr)	(1ULL << (nr)) | |
| 96 | #define UVIO_SUPP_UDEV_INFO	UVIO_SUPP_CALL(UVIO_IOCTL_UDEV_INFO_NR) | |
| 97 | #define UVIO_SUPP_ATT		UVIO_SUPP_CALL(UVIO_IOCTL_ATT_NR) | |
| 98 | #define UVIO_SUPP_ADD_SECRET	UVIO_SUPP_CALL(UVIO_IOCTL_ADD_SECRET_NR) | |
| 99 | #define UVIO_SUPP_LIST_SECRETS	UVIO_SUPP_CALL(UVIO_IOCTL_LIST_SECRETS_NR) | |
| 100 | #define UVIO_SUPP_LOCK_SECRETS	UVIO_SUPP_CALL(UVIO_IOCTL_LOCK_SECRETS_NR) | |
| 98 | #define UVIO_SUPP_CALL(nr)		(1ULL << (nr)) | |
| 99 | #define UVIO_SUPP_UDEV_INFO		UVIO_SUPP_CALL(UVIO_IOCTL_UDEV_INFO_NR) | |
| 100 | #define UVIO_SUPP_ATT			UVIO_SUPP_CALL(UVIO_IOCTL_ATT_NR) | |
| 101 | #define UVIO_SUPP_ADD_SECRET		UVIO_SUPP_CALL(UVIO_IOCTL_ADD_SECRET_NR) | |
| 102 | #define UVIO_SUPP_LIST_SECRETS		UVIO_SUPP_CALL(UVIO_IOCTL_LIST_SECRETS_NR) | |
| 103 | #define UVIO_SUPP_LOCK_SECRETS		UVIO_SUPP_CALL(UVIO_IOCTL_LOCK_SECRETS_NR) | |
| 104 | #define UVIO_SUPP_RETR_SECRET		UVIO_SUPP_CALL(UVIO_IOCTL_RETR_SECRET_NR) | |
| 101 | 105 | |
| 102 | 106 | #endif /* __S390_ASM_UVDEVICE_H */ |
| \ No newline at end of file |
lib/libc/include/sparc-linux-any/asm/socket.h+8| ... | ... | @@ -133,6 +133,14 @@ |
| 133 | 133 | #define SO_PASSPIDFD 0x0055 |
| 134 | 134 | #define SO_PEERPIDFD 0x0056 |
| 135 | 135 | |
| 136 | #define SO_DEVMEM_LINEAR 0x0057 | |
| 137 | #define SCM_DEVMEM_LINEAR SO_DEVMEM_LINEAR | |
| 138 | #define SO_DEVMEM_DMABUF 0x0058 | |
| 139 | #define SCM_DEVMEM_DMABUF SO_DEVMEM_DMABUF | |
| 140 | #define SO_DEVMEM_DONTNEED 0x0059 | |
| 141 | ||
| 142 | #define SCM_TS_OPT_ID 0x005a | |
| 143 | ||
| 136 | 144 | |
| 137 | 145 | |
| 138 | 146 | #if __BITS_PER_LONG == 64 |
lib/libc/include/sparc-linux-any/asm/unistd_32.h+4| ... | ... | @@ -432,6 +432,10 @@ |
| 432 | 432 | #define __NR_lsm_set_self_attr 460 |
| 433 | 433 | #define __NR_lsm_list_modules 461 |
| 434 | 434 | #define __NR_mseal 462 |
| 435 | #define __NR_setxattrat 463 | |
| 436 | #define __NR_getxattrat 464 | |
| 437 | #define __NR_listxattrat 465 | |
| 438 | #define __NR_removexattrat 466 | |
| 435 | 439 | |
| 436 | 440 | |
| 437 | 441 | #endif /* _ASM_UNISTD_32_H */ |
| \ No newline at end of file |
lib/libc/include/sparc-linux-any/asm/unistd_64.h+4| ... | ... | @@ -395,6 +395,10 @@ |
| 395 | 395 | #define __NR_lsm_set_self_attr 460 |
| 396 | 396 | #define __NR_lsm_list_modules 461 |
| 397 | 397 | #define __NR_mseal 462 |
| 398 | #define __NR_setxattrat 463 | |
| 399 | #define __NR_getxattrat 464 | |
| 400 | #define __NR_listxattrat 465 | |
| 401 | #define __NR_removexattrat 466 | |
| 398 | 402 | |
| 399 | 403 | |
| 400 | 404 | #endif /* _ASM_UNISTD_64_H */ |
| \ No newline at end of file |
lib/libc/include/x86-linux-any/asm/amd_hsmp.h+2-1| ... | ... | @@ -88,7 +88,8 @@ struct hsmp_msg_desc { |
| 88 | 88 | * |
| 89 | 89 | * Not supported messages would return -ENOMSG. |
| 90 | 90 | */ |
| 91 | static const struct hsmp_msg_desc hsmp_msg_desc_table[] = { | |
| 91 | static const struct hsmp_msg_desc hsmp_msg_desc_table[] | |
| 92 | 				__attribute__((unused)) = { | |
| 92 | 93 | 	/* RESERVED */ |
| 93 | 94 | 	{0, 0, HSMP_RSVD}, |
| 94 | 95 |
lib/libc/include/x86-linux-any/asm/elf.h created+16| ... | ... | @@ -0,0 +1,16 @@ |
| 1 | /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ | |
| 2 | #ifndef _ASM_X86_ELF_H | |
| 3 | #define _ASM_X86_ELF_H | |
| 4 | ||
| 5 | #include <linux/types.h> | |
| 6 | ||
| 7 | struct x86_xfeat_component { | |
| 8 | 	__u32 type; | |
| 9 | 	__u32 size; | |
| 10 | 	__u32 offset; | |
| 11 | 	__u32 flags; | |
| 12 | } __attribute__((packed)); | |
| 13 | ||
| 14 | _Static_assert(sizeof(struct x86_xfeat_component) % 4 == 0, "x86_xfeat_component is not aligned"); | |
| 15 | ||
| 16 | #endif /* _ASM_X86_ELF_H */ | |
| \ No newline at end of file |
lib/libc/include/x86-linux-any/asm/kvm.h+51| ... | ... | @@ -106,6 +106,7 @@ struct kvm_ioapic_state { |
| 106 | 106 | |
| 107 | 107 | #define KVM_RUN_X86_SMM		 (1 << 0) |
| 108 | 108 | #define KVM_RUN_X86_BUS_LOCK (1 << 1) |
| 109 | #define KVM_RUN_X86_GUEST_MODE (1 << 2) | |
| 109 | 110 | |
| 110 | 111 | /* for KVM_GET_REGS and KVM_SET_REGS */ |
| 111 | 112 | struct kvm_regs { |
| ... | ... | @@ -436,6 +437,8 @@ struct kvm_sync_regs { |
| 436 | 437 | #define KVM_X86_QUIRK_MISC_ENABLE_NO_MWAIT	(1 << 4) |
| 437 | 438 | #define KVM_X86_QUIRK_FIX_HYPERCALL_INSN	(1 << 5) |
| 438 | 439 | #define KVM_X86_QUIRK_MWAIT_NEVER_UD_FAULTS	(1 << 6) |
| 440 | #define KVM_X86_QUIRK_SLOT_ZAP_ALL		(1 << 7) | |
| 441 | #define KVM_X86_QUIRK_STUFF_FEATURE_MSRS	(1 << 8) | |
| 439 | 442 | |
| 440 | 443 | #define KVM_STATE_NESTED_FORMAT_VMX	0 |
| 441 | 444 | #define KVM_STATE_NESTED_FORMAT_SVM	1 |
| ... | ... | @@ -695,6 +698,11 @@ enum sev_cmd_id { |
| 695 | 698 | 	/* Second time is the charm; improved versions of the above ioctls. */ |
| 696 | 699 | 	KVM_SEV_INIT2, |
| 697 | 700 | |
| 701 | 	/* SNP-specific commands */ | |
| 702 | 	KVM_SEV_SNP_LAUNCH_START = 100, | |
| 703 | 	KVM_SEV_SNP_LAUNCH_UPDATE, | |
| 704 | 	KVM_SEV_SNP_LAUNCH_FINISH, | |
| 705 | ||
| 698 | 706 | 	KVM_SEV_NR_MAX, |
| 699 | 707 | }; |
| 700 | 708 | |
| ... | ... | @@ -822,6 +830,48 @@ struct kvm_sev_receive_update_data { |
| 822 | 830 | 	__u32 pad2; |
| 823 | 831 | }; |
| 824 | 832 | |
| 833 | struct kvm_sev_snp_launch_start { | |
| 834 | 	__u64 policy; | |
| 835 | 	__u8 gosvw[16]; | |
| 836 | 	__u16 flags; | |
| 837 | 	__u8 pad0[6]; | |
| 838 | 	__u64 pad1[4]; | |
| 839 | }; | |
| 840 | ||
| 841 | /* Kept in sync with firmware values for simplicity. */ | |
| 842 | #define KVM_SEV_SNP_PAGE_TYPE_NORMAL		0x1 | |
| 843 | #define KVM_SEV_SNP_PAGE_TYPE_ZERO		0x3 | |
| 844 | #define KVM_SEV_SNP_PAGE_TYPE_UNMEASURED	0x4 | |
| 845 | #define KVM_SEV_SNP_PAGE_TYPE_SECRETS		0x5 | |
| 846 | #define KVM_SEV_SNP_PAGE_TYPE_CPUID		0x6 | |
| 847 | ||
| 848 | struct kvm_sev_snp_launch_update { | |
| 849 | 	__u64 gfn_start; | |
| 850 | 	__u64 uaddr; | |
| 851 | 	__u64 len; | |
| 852 | 	__u8 type; | |
| 853 | 	__u8 pad0; | |
| 854 | 	__u16 flags; | |
| 855 | 	__u32 pad1; | |
| 856 | 	__u64 pad2[4]; | |
| 857 | }; | |
| 858 | ||
| 859 | #define KVM_SEV_SNP_ID_BLOCK_SIZE	96 | |
| 860 | #define KVM_SEV_SNP_ID_AUTH_SIZE	4096 | |
| 861 | #define KVM_SEV_SNP_FINISH_DATA_SIZE	32 | |
| 862 | ||
| 863 | struct kvm_sev_snp_launch_finish { | |
| 864 | 	__u64 id_block_uaddr; | |
| 865 | 	__u64 id_auth_uaddr; | |
| 866 | 	__u8 id_block_en; | |
| 867 | 	__u8 auth_key_en; | |
| 868 | 	__u8 vcek_disabled; | |
| 869 | 	__u8 host_data[KVM_SEV_SNP_FINISH_DATA_SIZE]; | |
| 870 | 	__u8 pad0[3]; | |
| 871 | 	__u16 flags; | |
| 872 | 	__u64 pad1[4]; | |
| 873 | }; | |
| 874 | ||
| 825 | 875 | #define KVM_X2APIC_API_USE_32BIT_IDS (1ULL << 0) |
| 826 | 876 | #define KVM_X2APIC_API_DISABLE_BROADCAST_QUIRK (1ULL << 1) |
| 827 | 877 | |
| ... | ... | @@ -872,5 +922,6 @@ struct kvm_hyperv_eventfd { |
| 872 | 922 | #define KVM_X86_SW_PROTECTED_VM	1 |
| 873 | 923 | #define KVM_X86_SEV_VM		2 |
| 874 | 924 | #define KVM_X86_SEV_ES_VM	3 |
| 925 | #define KVM_X86_SNP_VM		4 | |
| 875 | 926 | |
| 876 | 927 | #endif /* _ASM_X86_KVM_H */ |
| \ No newline at end of file |
lib/libc/include/x86-linux-any/asm/mce.h+2-1| ... | ... | @@ -8,7 +8,8 @@ |
| 8 | 8 | /* |
| 9 | 9 | * Fields are zero when not available. Also, this struct is shared with |
| 10 | 10 | * userspace mcelog and thus must keep existing fields at current offsets. |
| 11 | * Only add new fields to the end of the structure | |
| 11 | * Only add new, shared fields to the end of the structure. | |
| 12 | * Do not add vendor-specific fields. | |
| 12 | 13 | */ |
| 13 | 14 | struct mce { |
| 14 | 15 | 	__u64 status;		/* Bank's MCi_STATUS MSR */ |
lib/libc/include/x86-linux-any/asm/mman.h-3| ... | ... | @@ -5,9 +5,6 @@ |
| 5 | 5 | #define MAP_32BIT	0x40		/* only give out 32bit addresses */ |
| 6 | 6 | #define MAP_ABOVE4G	0x80		/* only map above 4GB */ |
| 7 | 7 | |
| 8 | /* Flags for map_shadow_stack(2) */ | |
| 9 | #define SHADOW_STACK_SET_TOKEN	(1ULL << 0)	/* Set up a restore token in the shadow stack */ | |
| 10 | ||
| 11 | 8 | #include <asm-generic/mman.h> |
| 12 | 9 | |
| 13 | 10 | #endif /* _ASM_X86_MMAN_H */ |
| \ No newline at end of file |
lib/libc/include/x86-linux-any/asm/svm.h+1| ... | ... | @@ -115,6 +115,7 @@ |
| 115 | 115 | #define SVM_VMGEXIT_AP_CREATE_ON_INIT		0 |
| 116 | 116 | #define SVM_VMGEXIT_AP_CREATE			1 |
| 117 | 117 | #define SVM_VMGEXIT_AP_DESTROY			2 |
| 118 | #define SVM_VMGEXIT_SNP_RUN_VMPL		0x80000018 | |
| 118 | 119 | #define SVM_VMGEXIT_HV_FEATURES			0x8000fffd |
| 119 | 120 | #define SVM_VMGEXIT_TERM_REQUEST		0x8000fffe |
| 120 | 121 | #define SVM_VMGEXIT_TERM_REASON(reason_set, reason_code)	\ |
lib/libc/include/x86-linux-any/asm/unistd_32.h+4| ... | ... | @@ -453,6 +453,10 @@ |
| 453 | 453 | #define __NR_lsm_set_self_attr 460 |
| 454 | 454 | #define __NR_lsm_list_modules 461 |
| 455 | 455 | #define __NR_mseal 462 |
| 456 | #define __NR_setxattrat 463 | |
| 457 | #define __NR_getxattrat 464 | |
| 458 | #define __NR_listxattrat 465 | |
| 459 | #define __NR_removexattrat 466 | |
| 456 | 460 | |
| 457 | 461 | |
| 458 | 462 | #endif /* _ASM_UNISTD_32_H */ |
| \ No newline at end of file |
lib/libc/include/x86-linux-any/asm/unistd_64.h+5| ... | ... | @@ -336,6 +336,7 @@ |
| 336 | 336 | #define __NR_statx 332 |
| 337 | 337 | #define __NR_io_pgetevents 333 |
| 338 | 338 | #define __NR_rseq 334 |
| 339 | #define __NR_uretprobe 335 | |
| 339 | 340 | #define __NR_pidfd_send_signal 424 |
| 340 | 341 | #define __NR_io_uring_setup 425 |
| 341 | 342 | #define __NR_io_uring_enter 426 |
| ... | ... | @@ -375,6 +376,10 @@ |
| 375 | 376 | #define __NR_lsm_set_self_attr 460 |
| 376 | 377 | #define __NR_lsm_list_modules 461 |
| 377 | 378 | #define __NR_mseal 462 |
| 379 | #define __NR_setxattrat 463 | |
| 380 | #define __NR_getxattrat 464 | |
| 381 | #define __NR_listxattrat 465 | |
| 382 | #define __NR_removexattrat 466 | |
| 378 | 383 | |
| 379 | 384 | |
| 380 | 385 | #endif /* _ASM_UNISTD_64_H */ |
| \ No newline at end of file |
lib/libc/include/x86-linux-any/asm/unistd_x32.h+5| ... | ... | @@ -289,6 +289,7 @@ |
| 289 | 289 | #define __NR_statx (__X32_SYSCALL_BIT + 332) |
| 290 | 290 | #define __NR_io_pgetevents (__X32_SYSCALL_BIT + 333) |
| 291 | 291 | #define __NR_rseq (__X32_SYSCALL_BIT + 334) |
| 292 | #define __NR_uretprobe (__X32_SYSCALL_BIT + 335) | |
| 292 | 293 | #define __NR_pidfd_send_signal (__X32_SYSCALL_BIT + 424) |
| 293 | 294 | #define __NR_io_uring_setup (__X32_SYSCALL_BIT + 425) |
| 294 | 295 | #define __NR_io_uring_enter (__X32_SYSCALL_BIT + 426) |
| ... | ... | @@ -328,6 +329,10 @@ |
| 328 | 329 | #define __NR_lsm_set_self_attr (__X32_SYSCALL_BIT + 460) |
| 329 | 330 | #define __NR_lsm_list_modules (__X32_SYSCALL_BIT + 461) |
| 330 | 331 | #define __NR_mseal (__X32_SYSCALL_BIT + 462) |
| 332 | #define __NR_setxattrat (__X32_SYSCALL_BIT + 463) | |
| 333 | #define __NR_getxattrat (__X32_SYSCALL_BIT + 464) | |
| 334 | #define __NR_listxattrat (__X32_SYSCALL_BIT + 465) | |
| 335 | #define __NR_removexattrat (__X32_SYSCALL_BIT + 466) | |
| 331 | 336 | #define __NR_rt_sigaction (__X32_SYSCALL_BIT + 512) |
| 332 | 337 | #define __NR_rt_sigreturn (__X32_SYSCALL_BIT + 513) |
| 333 | 338 | #define __NR_ioctl (__X32_SYSCALL_BIT + 514) |
lib/libc/include/xtensa-linux-any/asm/mman.h+3| ... | ... | @@ -113,6 +113,9 @@ |
| 113 | 113 | |
| 114 | 114 | #define MADV_COLLAPSE	25		/* Synchronous hugepage collapse */ |
| 115 | 115 | |
| 116 | #define MADV_GUARD_INSTALL 102		/* fatal signal on access to range */ | |
| 117 | #define MADV_GUARD_REMOVE 103		/* unguard range */ | |
| 118 | ||
| 116 | 119 | /* compatibility flags */ |
| 117 | 120 | #define MAP_FILE	0 |
| 118 | 121 |
lib/libc/include/xtensa-linux-any/asm/unistd_32.h+4| ... | ... | @@ -409,6 +409,10 @@ |
| 409 | 409 | #define __NR_lsm_set_self_attr 460 |
| 410 | 410 | #define __NR_lsm_list_modules 461 |
| 411 | 411 | #define __NR_mseal 462 |
| 412 | #define __NR_setxattrat 463 | |
| 413 | #define __NR_getxattrat 464 | |
| 414 | #define __NR_listxattrat 465 | |
| 415 | #define __NR_removexattrat 466 | |
| 412 | 416 | |
| 413 | 417 | |
| 414 | 418 | #endif /* _ASM_UNISTD_32_H */ |
| \ No newline at end of file |