File indexing completed on 2025-09-18 09:35:44
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029
0030
0031
0032
0033
0034
0035
0036
0037
0038
0039
0040
0041
0042
0043
0044
0045
0046
0047
0048
0049
0050
0051
0052
0053
0054
0055
0056
0057
0058
0059
0060
0061
0062
0063
0064
0065
0066
0067
0068
0069
0070
0071
0072
0073 #ifndef __VKI_LINUX_H
0074 #define __VKI_LINUX_H
0075
0076
0077
0078
0079
0080 #if defined(VGA_x86)
0081 # include "vki-posixtypes-x86-linux.h"
0082 #elif defined(VGA_amd64)
0083 # include "vki-posixtypes-amd64-linux.h"
0084 #elif defined(VGA_ppc32)
0085 # include "vki-posixtypes-ppc32-linux.h"
0086 #elif defined(VGA_ppc64be) || defined(VGA_ppc64le)
0087 # include "vki-posixtypes-ppc64-linux.h"
0088 #elif defined(VGA_arm)
0089 # include "vki-posixtypes-arm-linux.h"
0090 #elif defined(VGA_arm64)
0091 # include "vki-posixtypes-arm64-linux.h"
0092 #elif defined(VGA_s390x)
0093 # include "vki-posixtypes-s390x-linux.h"
0094 #elif defined(VGA_mips32)
0095 # include "vki-posixtypes-mips32-linux.h"
0096 #elif defined(VGA_mips64)
0097 # include "vki-posixtypes-mips64-linux.h"
0098 #elif defined(VGA_nanomips)
0099 # include "vki-posixtypes-nanomips-linux.h"
0100 #else
0101 # error Unknown platform
0102 #endif
0103
0104
0105
0106
0107
0108
0109
0110
0111
0112
0113
0114 #ifdef __cplusplus
0115 template <bool b> struct vki_static_assert { int m_bitfield:(2*b-1); };
0116 #define VKI_STATIC_ASSERT(expr) \
0117 (sizeof(vki_static_assert<(expr)>) - sizeof(int))
0118 #else
0119 #define VKI_STATIC_ASSERT(expr) (sizeof(struct { int:-!(expr); }))
0120 #endif
0121
0122
0123
0124
0125
0126
0127 #define _VKI_IOC_TYPECHECK(t) \
0128 (VKI_STATIC_ASSERT((sizeof(t) == sizeof(t[1]) \
0129 && sizeof(t) < (1 << _VKI_IOC_SIZEBITS))) \
0130 + sizeof(t))
0131
0132
0133
0134
0135
0136 # define __user
0137
0138
0139
0140
0141
0142 #ifdef __GNUC__
0143 #define __vki_packed __attribute__((packed))
0144 #endif
0145
0146
0147
0148
0149
0150 #undef __VKI_NFDBITS
0151 #define __VKI_NFDBITS (8 * sizeof(unsigned long))
0152
0153 #undef __VKI_FD_SETSIZE
0154 #define __VKI_FD_SETSIZE 1024
0155
0156 #undef __VKI_FDSET_LONGS
0157 #define __VKI_FDSET_LONGS (__VKI_FD_SETSIZE/__VKI_NFDBITS)
0158
0159 #undef __VKI_FDELT
0160 #define __VKI_FDELT(d) ((d) / __VKI_NFDBITS)
0161
0162 #undef __VKI_FDMASK
0163 #define __VKI_FDMASK(d) (1UL << ((d) % __VKI_NFDBITS))
0164
0165 typedef struct {
0166 unsigned long fds_bits [__VKI_FDSET_LONGS];
0167 } __vki_kernel_fd_set;
0168
0169 typedef int __vki_kernel_key_t;
0170 typedef int __vki_kernel_mqd_t;
0171
0172
0173
0174
0175
0176 typedef __vki_kernel_fd_set vki_fd_set;
0177 typedef __vki_kernel_mode_t vki_mode_t;
0178 typedef __vki_kernel_off_t vki_off_t;
0179 typedef __vki_kernel_pid_t vki_pid_t;
0180 typedef __vki_kernel_key_t vki_key_t;
0181 typedef __vki_kernel_suseconds_t vki_suseconds_t;
0182 typedef __vki_kernel_timer_t vki_timer_t;
0183 typedef __vki_kernel_clockid_t vki_clockid_t;
0184 typedef __vki_kernel_mqd_t vki_mqd_t;
0185
0186
0187 typedef __vki_kernel_uid32_t vki_uid_t;
0188 typedef __vki_kernel_gid32_t vki_gid_t;
0189
0190 typedef __vki_kernel_old_uid_t vki_old_uid_t;
0191 typedef __vki_kernel_old_gid_t vki_old_gid_t;
0192
0193 typedef __vki_kernel_loff_t vki_loff_t;
0194
0195 typedef __vki_kernel_size_t vki_size_t;
0196 typedef __vki_kernel_time_t vki_time_t;
0197 typedef __vki_kernel_clock_t vki_clock_t;
0198 typedef __vki_kernel_caddr_t vki_caddr_t;
0199
0200 typedef unsigned long vki_u_long;
0201
0202 typedef unsigned int vki_uint;
0203
0204
0205
0206
0207
0208 #if defined(VGA_x86)
0209 # include "vki-x86-linux.h"
0210 #elif defined(VGA_amd64)
0211 # include "vki-amd64-linux.h"
0212 #elif defined(VGA_ppc32)
0213 # include "vki-ppc32-linux.h"
0214 #elif defined(VGA_ppc64be) || defined(VGA_ppc64le)
0215 # include "vki-ppc64-linux.h"
0216 #elif defined(VGA_arm)
0217 # include "vki-arm-linux.h"
0218 #elif defined(VGA_arm64)
0219 # include "vki-arm64-linux.h"
0220 #elif defined(VGA_s390x)
0221 # include "vki-s390x-linux.h"
0222 #elif defined(VGA_mips32)
0223 # include "vki-mips32-linux.h"
0224 #elif defined(VGA_mips64)
0225 # include "vki-mips64-linux.h"
0226 #elif defined(VGA_nanomips)
0227 # include "vki-nanomips-linux.h"
0228 #else
0229 # error Unknown platform
0230 #endif
0231
0232
0233
0234
0235
0236 typedef __vki_s32 vki_int32_t;
0237 typedef __vki_s16 vki_int16_t;
0238 typedef __vki_s64 vki_int64_t;
0239
0240 typedef __vki_u8 vki_uint8_t;
0241 typedef __vki_u16 vki_uint16_t;
0242 typedef __vki_u32 vki_uint32_t;
0243 typedef __vki_u64 vki_uint64_t;
0244
0245 typedef __vki_u16 __vki_le16;
0246
0247 #define __vki_aligned_u64 __vki_u64 __attribute__((aligned(8)))
0248
0249
0250
0251
0252
0253 #define VKI_PATH_MAX 4096
0254
0255
0256
0257
0258
0259 struct vki_sysinfo {
0260 long uptime;
0261 unsigned long loads[3];
0262 unsigned long totalram;
0263 unsigned long freeram;
0264 unsigned long sharedram;
0265 unsigned long bufferram;
0266 unsigned long totalswap;
0267 unsigned long freeswap;
0268 unsigned short procs;
0269 unsigned short pad;
0270 unsigned long totalhigh;
0271 unsigned long freehigh;
0272 unsigned int mem_unit;
0273 char _f[20-2*sizeof(long)-sizeof(int)];
0274 };
0275
0276
0277
0278
0279
0280 #define VKI_CLOCK_REALTIME 0
0281 #define VKI_CLOCK_MONOTONIC 1
0282 #define VKI_CLOCK_PROCESS_CPUTIME_ID 2
0283 #define VKI_CLOCK_THREAD_CPUTIME_ID 3
0284
0285 struct vki_timespec {
0286 vki_time_t tv_sec;
0287 long tv_nsec;
0288 };
0289
0290
0291 #define VKI_UTIME_NOW ((1l << 30) - 1l)
0292 #define VKI_UTIME_OMIT ((1l << 30) - 2l)
0293
0294 struct vki_timeval {
0295 vki_time_t tv_sec;
0296 vki_suseconds_t tv_usec;
0297 };
0298
0299 struct vki_timezone {
0300 int tz_minuteswest;
0301 int tz_dsttime;
0302 };
0303
0304 struct vki_itimerspec {
0305 struct vki_timespec it_interval;
0306 struct vki_timespec it_value;
0307 };
0308
0309 struct vki_itimerval {
0310 struct vki_timeval it_interval;
0311 struct vki_timeval it_value;
0312 };
0313
0314
0315
0316
0317
0318 struct vki_timex {
0319 unsigned int modes;
0320 long offset;
0321 long freq;
0322 long maxerror;
0323 long esterror;
0324 int status;
0325 long constant;
0326 long precision;
0327 long tolerance;
0328
0329
0330 struct vki_timeval time;
0331 long tick;
0332
0333 long ppsfreq;
0334 long jitter;
0335 int shift;
0336 long stabil;
0337 long jitcnt;
0338 long calcnt;
0339 long errcnt;
0340 long stbcnt;
0341
0342 int :32; int :32; int :32; int :32;
0343 int :32; int :32; int :32; int :32;
0344 int :32; int :32; int :32; int :32;
0345 };
0346
0347 #define VKI_ADJ_OFFSET 0x0001
0348 #define VKI_ADJ_FREQUENCY 0x0002
0349 #define VKI_ADJ_MAXERROR 0x0004
0350 #define VKI_ADJ_ESTERROR 0x0008
0351 #define VKI_ADJ_STATUS 0x0010
0352 #define VKI_ADJ_TIMECONST 0x0020
0353 #define VKI_ADJ_TAI 0x0080
0354 #define VKI_ADJ_TICK 0x4000
0355 #define VKI_ADJ_ADJTIME 0x8000
0356
0357 #define VKI_ADJ_OFFSET_READONLY 0x2000
0358
0359
0360
0361
0362
0363 struct vki_tms {
0364 vki_clock_t tms_utime;
0365 vki_clock_t tms_stime;
0366 vki_clock_t tms_cutime;
0367 vki_clock_t tms_cstime;
0368 };
0369
0370
0371
0372
0373
0374 struct vki_utimbuf {
0375 vki_time_t actime;
0376 vki_time_t modtime;
0377 };
0378
0379
0380
0381
0382
0383 #define VKI_CSIGNAL 0x000000ff
0384 #define VKI_CLONE_VM 0x00000100
0385 #define VKI_CLONE_FS 0x00000200
0386 #define VKI_CLONE_FILES 0x00000400
0387 #define VKI_CLONE_SIGHAND 0x00000800
0388 #define VKI_CLONE_PIDFD 0x00001000
0389 #define VKI_CLONE_PTRACE 0x00002000
0390 #define VKI_CLONE_VFORK 0x00004000
0391 #define VKI_CLONE_PARENT 0x00008000
0392 #define VKI_CLONE_THREAD 0x00010000
0393 #define VKI_CLONE_NEWNS 0x00020000
0394 #define VKI_CLONE_SYSVSEM 0x00040000
0395 #define VKI_CLONE_SETTLS 0x00080000
0396 #define VKI_CLONE_PARENT_SETTID 0x00100000
0397 #define VKI_CLONE_CHILD_CLEARTID 0x00200000
0398 #define VKI_CLONE_DETACHED 0x00400000
0399 #define VKI_CLONE_UNTRACED 0x00800000
0400 #define VKI_CLONE_CHILD_SETTID 0x01000000
0401 #define VKI_CLONE_NEWCGROUP 0x02000000
0402 #define VKI_CLONE_NEWUTS 0x04000000
0403 #define VKI_CLONE_NEWIPC 0x08000000
0404 #define VKI_CLONE_NEWUSER 0x10000000
0405 #define VKI_CLONE_NEWPID 0x20000000
0406 #define VKI_CLONE_NEWNET 0x40000000
0407 #define VKI_CLONE_IO 0x80000000
0408
0409 struct vki_sched_param {
0410 int sched_priority;
0411 };
0412
0413 struct vki_sched_attr {
0414 vki_uint32_t size;
0415 vki_uint32_t sched_policy;
0416 vki_uint64_t sched_flags;
0417
0418
0419 vki_int32_t sched_nice;
0420
0421
0422 vki_uint32_t sched_priority;
0423
0424
0425 vki_uint64_t sched_runtime;
0426 vki_uint64_t sched_deadline;
0427 vki_uint64_t sched_period;
0428 };
0429
0430 #define VKI_TASK_COMM_LEN 16
0431
0432
0433
0434
0435
0436
0437 #ifndef HAVE_ARCH_SIGINFO_T
0438 typedef union vki_sigval {
0439 int sival_int;
0440 void __user *sival_ptr;
0441 } vki_sigval_t;
0442
0443 #ifndef __VKI_ARCH_SI_PREAMBLE_SIZE
0444 #define __VKI_ARCH_SI_PREAMBLE_SIZE (3 * sizeof(int))
0445 #endif
0446
0447 #define VKI_SI_MAX_SIZE 128
0448
0449 #ifndef VKI_SI_PAD_SIZE
0450 #define VKI_SI_PAD_SIZE ((VKI_SI_MAX_SIZE - __VKI_ARCH_SI_PREAMBLE_SIZE) / sizeof(int))
0451 #endif
0452
0453 #ifndef __VKI_ARCH_SI_UID_T
0454 #define __VKI_ARCH_SI_UID_T vki_uid_t
0455 #endif
0456
0457 #ifndef __VKI_ARCH_SI_BAND_T
0458 #define __VKI_ARCH_SI_BAND_T long
0459 #endif
0460
0461 #ifndef __VKI_ARCH_SI_CLOCK_T
0462 #define __VKI_ARCH_SI_CLOCK_T vki_clock_t
0463 #endif
0464
0465 #ifndef __VKI_ARCH_SI_ATTRIBUTES
0466 #define __VKI_ARCH_SI_ATTRIBUTES
0467 #endif
0468
0469
0470
0471 typedef struct vki_siginfo {
0472 int si_signo;
0473 int si_errno;
0474 int si_code;
0475
0476 union {
0477 int _pad[VKI_SI_PAD_SIZE];
0478
0479
0480 struct {
0481 vki_pid_t _pid;
0482 __VKI_ARCH_SI_UID_T _uid;
0483 } _kill;
0484
0485
0486 struct {
0487 vki_timer_t _tid;
0488 int _overrun;
0489 char _pad[sizeof( __VKI_ARCH_SI_UID_T) - sizeof(int)];
0490 vki_sigval_t _sigval;
0491 int _sys_private;
0492 } _timer;
0493
0494
0495 struct {
0496 vki_pid_t _pid;
0497 __VKI_ARCH_SI_UID_T _uid;
0498 vki_sigval_t _sigval;
0499 } _rt;
0500
0501
0502 struct {
0503 vki_pid_t _pid;
0504 __VKI_ARCH_SI_UID_T _uid;
0505 int _status;
0506 __VKI_ARCH_SI_CLOCK_T _utime;
0507 __VKI_ARCH_SI_CLOCK_T _stime;
0508 } _sigchld;
0509
0510
0511 struct {
0512 void __user *_addr;
0513 #ifdef __ARCH_SI_TRAPNO
0514 int _trapno;
0515 #endif
0516 } _sigfault;
0517
0518
0519 struct {
0520 __VKI_ARCH_SI_BAND_T _band;
0521 int _fd;
0522 } _sigpoll;
0523 } _sifields;
0524 } __VKI_ARCH_SI_ATTRIBUTES vki_siginfo_t;
0525 #endif
0526
0527 #define __VKI_SI_FAULT 0
0528
0529
0530
0531
0532
0533 #define VKI_SI_USER 0
0534 #define VKI_SI_TKILL -6
0535
0536
0537
0538
0539 #define VKI_ILL_ILLOPC (__VKI_SI_FAULT|1)
0540 #define VKI_ILL_ILLOPN (__VKI_SI_FAULT|2)
0541 #define VKI_ILL_ILLADR (__VKI_SI_FAULT|3)
0542 #define VKI_ILL_ILLTRP (__VKI_SI_FAULT|4)
0543 #define VKI_ILL_PRVOPC (__VKI_SI_FAULT|5)
0544 #define VKI_ILL_PRVREG (__VKI_SI_FAULT|6)
0545 #define VKI_ILL_COPROC (__VKI_SI_FAULT|7)
0546 #define VKI_ILL_BADSTK (__VKI_SI_FAULT|8)
0547
0548
0549
0550
0551 #define VKI_FPE_INTDIV (__VKI_SI_FAULT|1)
0552 #define VKI_FPE_INTOVF (__VKI_SI_FAULT|2)
0553 #define VKI_FPE_FLTDIV (__VKI_SI_FAULT|3)
0554 #define VKI_FPE_FLTOVF (__VKI_SI_FAULT|4)
0555 #define VKI_FPE_FLTUND (__VKI_SI_FAULT|5)
0556 #define VKI_FPE_FLTRES (__VKI_SI_FAULT|6)
0557 #define VKI_FPE_FLTINV (__VKI_SI_FAULT|7)
0558 #define VKI_FPE_FLTSUB (__VKI_SI_FAULT|8)
0559
0560
0561
0562
0563 #define VKI_SEGV_MAPERR (__VKI_SI_FAULT|1)
0564 #define VKI_SEGV_ACCERR (__VKI_SI_FAULT|2)
0565
0566
0567
0568
0569 #define VKI_BUS_ADRALN (__VKI_SI_FAULT|1)
0570 #define VKI_BUS_ADRERR (__VKI_SI_FAULT|2)
0571 #define VKI_BUS_OBJERR (__VKI_SI_FAULT|3)
0572
0573
0574
0575
0576 #define VKI_TRAP_BRKPT (__VKI_SI_FAULT|1)
0577 #define VKI_TRAP_TRACE (__VKI_SI_FAULT|2)
0578
0579
0580
0581
0582 #define VKI_CLD_EXITED (__VKI_SI_FAULT|1)
0583 #define VKI_CLD_KILLED (__VKI_SI_FAULT|2)
0584 #define VKI_CLD_DUMPED (__VKI_SI_FAULT|3)
0585 #define VKI_CLD_TRAPPED (__VKI_SI_FAULT|4)
0586 #define VKI_CLD_STOPPED (__VKI_SI_FAULT|5)
0587 #define VKI_CLD_CONTINUED (__VKI_SI_FAULT|6)
0588
0589
0590
0591
0592
0593 #ifndef VKI___ARCH_SIGEV_PREAMBLE_SIZE
0594 #define VKI___ARCH_SIGEV_PREAMBLE_SIZE (sizeof(int) * 2 + sizeof(vki_sigval_t))
0595 #endif
0596
0597 #define VKI_SIGEV_MAX_SIZE 64
0598 #define VKI_SIGEV_PAD_SIZE ((VKI_SIGEV_MAX_SIZE - VKI___ARCH_SIGEV_PREAMBLE_SIZE) \
0599 / sizeof(int))
0600
0601
0602 #define VKI_SIGEV_THREAD_ID 4
0603
0604 typedef struct vki_sigevent {
0605 vki_sigval_t sigev_value;
0606 int sigev_signo;
0607 int sigev_notify;
0608 union {
0609 int _pad[VKI_SIGEV_PAD_SIZE];
0610 int _tid;
0611
0612 struct {
0613 void (*_function)(vki_sigval_t);
0614 void *_attribute;
0615 } _sigev_thread;
0616 } _sigev_un;
0617 } vki_sigevent_t;
0618
0619 #define vki_sigev_notify_thread_id _sigev_un._tid
0620
0621
0622
0623
0624
0625
0626
0627 #define VKI_SEEK_SET 0
0628 #define VKI_SEEK_CUR 1
0629 #define VKI_SEEK_END 2
0630
0631
0632
0633
0634
0635 #define VKI_SYS_SOCKET 1
0636 #define VKI_SYS_BIND 2
0637 #define VKI_SYS_CONNECT 3
0638 #define VKI_SYS_LISTEN 4
0639 #define VKI_SYS_ACCEPT 5
0640 #define VKI_SYS_GETSOCKNAME 6
0641 #define VKI_SYS_GETPEERNAME 7
0642 #define VKI_SYS_SOCKETPAIR 8
0643 #define VKI_SYS_SEND 9
0644 #define VKI_SYS_RECV 10
0645 #define VKI_SYS_SENDTO 11
0646 #define VKI_SYS_RECVFROM 12
0647 #define VKI_SYS_SHUTDOWN 13
0648 #define VKI_SYS_SETSOCKOPT 14
0649 #define VKI_SYS_GETSOCKOPT 15
0650 #define VKI_SYS_SENDMSG 16
0651 #define VKI_SYS_RECVMSG 17
0652 #define VKI_SYS_ACCEPT4 18
0653 #define VKI_SYS_RECVMMSG 19
0654 #define VKI_SYS_SENDMMSG 20
0655
0656 #ifndef ARCH_HAS_SOCKET_TYPES
0657 enum vki_sock_type {
0658 VKI_SOCK_STREAM = 1,
0659
0660 };
0661 #endif
0662
0663
0664
0665
0666
0667 struct vki_iovec
0668 {
0669 void __user *iov_base;
0670 __vki_kernel_size_t iov_len;
0671 };
0672
0673
0674
0675
0676
0677
0678
0679 #define __KINLINE static __inline__
0680
0681 typedef unsigned short vki_sa_family_t;
0682
0683 struct vki_sockaddr {
0684 vki_sa_family_t sa_family;
0685 char sa_data[14];
0686 };
0687
0688 struct vki_msghdr {
0689 void * msg_name;
0690 int msg_namelen;
0691 struct vki_iovec * msg_iov;
0692 __vki_kernel_size_t msg_iovlen;
0693 void * msg_control;
0694 __vki_kernel_size_t msg_controllen;
0695 unsigned msg_flags;
0696 };
0697
0698 struct vki_mmsghdr {
0699 struct vki_msghdr msg_hdr;
0700 unsigned msg_len;
0701 };
0702
0703 struct vki_cmsghdr {
0704 __vki_kernel_size_t cmsg_len;
0705 int cmsg_level;
0706 int cmsg_type;
0707 };
0708
0709 #define __VKI_CMSG_NXTHDR(ctl, len, cmsg) __vki_cmsg_nxthdr((ctl),(len),(cmsg))
0710 #define VKI_CMSG_NXTHDR(mhdr, cmsg) vki_cmsg_nxthdr((mhdr), (cmsg))
0711
0712 #define VKI_CMSG_ALIGN(len) ( ((len)+sizeof(long)-1) & ~(sizeof(long)-1) )
0713
0714 #define VKI_CMSG_DATA(cmsg) ((void *)((char *)(cmsg) + VKI_CMSG_ALIGN(sizeof(struct vki_cmsghdr))))
0715
0716 #define __VKI_CMSG_FIRSTHDR(ctl,len) ((len) >= sizeof(struct vki_cmsghdr) ? \
0717 (struct vki_cmsghdr *)(ctl) : \
0718 (struct vki_cmsghdr *)NULL)
0719 #define VKI_CMSG_FIRSTHDR(msg) __VKI_CMSG_FIRSTHDR((msg)->msg_control, (msg)->msg_controllen)
0720
0721
0722 __KINLINE struct vki_cmsghdr * __vki_cmsg_nxthdr(void *__ctl, __vki_kernel_size_t __size,
0723 struct vki_cmsghdr *__cmsg)
0724 {
0725 struct vki_cmsghdr * __ptr;
0726
0727 __ptr = ASSUME_ALIGNED(struct vki_cmsghdr *,
0728 ((unsigned char *) __cmsg) + VKI_CMSG_ALIGN(__cmsg->cmsg_len));
0729 if ((unsigned long)((char*)(__ptr+1) - (char *) __ctl) > __size)
0730 return (struct vki_cmsghdr *)0;
0731
0732 return __ptr;
0733 }
0734
0735 __KINLINE struct vki_cmsghdr * vki_cmsg_nxthdr (struct vki_msghdr *__msg, struct vki_cmsghdr *__cmsg)
0736 {
0737 return __vki_cmsg_nxthdr(__msg->msg_control, __msg->msg_controllen, __cmsg);
0738 }
0739
0740 #define VKI_SCM_RIGHTS 0x01
0741
0742 #define VKI_AF_UNSPEC 0
0743 #define VKI_AF_UNIX 1
0744 #define VKI_AF_INET 2
0745 #define VKI_AF_INET6 10
0746 #define VKI_AF_NETLINK 16
0747 #define VKI_AF_BLUETOOTH 31
0748
0749 #define VKI_MSG_NOSIGNAL 0x4000
0750
0751 #define VKI_SOL_SCTP 132
0752
0753
0754
0755
0756
0757 struct vki_in_addr {
0758 __vki_u32 s_addr;
0759 };
0760
0761
0762 #define __VKI_SOCK_SIZE__ 16
0763 struct vki_sockaddr_in {
0764 vki_sa_family_t sin_family;
0765 unsigned short int sin_port;
0766 struct vki_in_addr sin_addr;
0767
0768
0769 unsigned char __pad[__VKI_SOCK_SIZE__ - sizeof(short int) -
0770 sizeof(unsigned short int) - sizeof(struct vki_in_addr)];
0771 };
0772
0773 #define VKI_IPPROTO_TCP 6
0774
0775
0776
0777
0778
0779 struct vki_in6_addr
0780 {
0781 union
0782 {
0783 __vki_u8 u6_addr8[16];
0784 __vki_u16 u6_addr16[8];
0785 __vki_u32 u6_addr32[4];
0786 } vki_in6_u;
0787 #define vki_s6_addr vki_in6_u.u6_addr8
0788 #define vki_s6_addr16 vki_in6_u.u6_addr16
0789 #define vki_s6_addr32 vki_in6_u.u6_addr32
0790 };
0791
0792 struct vki_sockaddr_in6 {
0793 unsigned short int sin6_family;
0794 __vki_u16 sin6_port;
0795 __vki_u32 sin6_flowinfo;
0796 struct vki_in6_addr sin6_addr;
0797 __vki_u32 sin6_scope_id;
0798 };
0799
0800
0801
0802
0803
0804 #define VKI_TCP_NODELAY 1
0805
0806
0807
0808
0809
0810
0811 #define VKI_UNIX_PATH_MAX 108
0812
0813 struct vki_sockaddr_un {
0814 vki_sa_family_t sun_family;
0815 char sun_path[VKI_UNIX_PATH_MAX];
0816 };
0817
0818
0819
0820
0821
0822 struct vki_sockaddr_nl {
0823 vki_sa_family_t nl_family;
0824 unsigned short nl_pad;
0825 __vki_u32 nl_pid;
0826 __vki_u32 nl_groups;
0827 };
0828
0829
0830
0831
0832
0833 #define VKI_IFNAMSIZ 16
0834
0835 struct vki_ifmap
0836 {
0837 unsigned long mem_start;
0838 unsigned long mem_end;
0839 unsigned short base_addr;
0840 unsigned char irq;
0841 unsigned char dma;
0842 unsigned char port;
0843
0844 };
0845
0846 struct vki_if_settings
0847 {
0848 unsigned int type;
0849 unsigned int size;
0850 union {
0851
0852
0853
0854 void __user *raw_hdlc;
0855 void __user *cisco;
0856 void __user *fr;
0857 void __user *fr_pvc;
0858 void __user *fr_pvc_info;
0859
0860
0861 void __user *sync;
0862 void __user *te1;
0863 } ifs_ifsu;
0864 };
0865
0866 struct vki_ifreq
0867 {
0868 #define VKI_IFHWADDRLEN 6
0869 union
0870 {
0871 char ifrn_name[VKI_IFNAMSIZ];
0872 } ifr_ifrn;
0873
0874 union {
0875 struct vki_sockaddr ifru_addr;
0876 struct vki_sockaddr ifru_dstaddr;
0877 struct vki_sockaddr ifru_broadaddr;
0878 struct vki_sockaddr ifru_netmask;
0879 struct vki_sockaddr ifru_hwaddr;
0880 short ifru_flags;
0881 int ifru_ivalue;
0882 int ifru_mtu;
0883 struct vki_ifmap ifru_map;
0884 char ifru_slave[VKI_IFNAMSIZ];
0885 char ifru_newname[VKI_IFNAMSIZ];
0886 void __user * ifru_data;
0887 struct vki_if_settings ifru_settings;
0888 } ifr_ifru;
0889 };
0890
0891 #define vki_ifr_name ifr_ifrn.ifrn_name
0892 #define vki_ifr_hwaddr ifr_ifru.ifru_hwaddr
0893 #define vki_ifr_addr ifr_ifru.ifru_addr
0894 #define vki_ifr_dstaddr ifr_ifru.ifru_dstaddr
0895 #define vki_ifr_broadaddr ifr_ifru.ifru_broadaddr
0896 #define vki_ifr_netmask ifr_ifru.ifru_netmask
0897 #define vki_ifr_flags ifr_ifru.ifru_flags
0898 #define vki_ifr_metric ifr_ifru.ifru_ivalue
0899 #define vki_ifr_mtu ifr_ifru.ifru_mtu
0900 #define vki_ifr_map ifr_ifru.ifru_map
0901 #define vki_ifr_slave ifr_ifru.ifru_slave
0902 #define vki_ifr_data ifr_ifru.ifru_data
0903 #define vki_ifr_ifindex ifr_ifru.ifru_ivalue
0904 #define vki_ifr_bandwidth ifr_ifru.ifru_ivalue
0905 #define vki_ifr_qlen ifr_ifru.ifru_ivalue
0906 #define vki_ifr_newname ifr_ifru.ifru_newname
0907 #define vki_ifr_settings ifr_ifru.ifru_settings
0908
0909 struct vki_ifconf
0910 {
0911 int ifc_len;
0912 union
0913 {
0914 char __user *ifcu_buf;
0915 struct vki_ifreq __user *ifcu_req;
0916 } ifc_ifcu;
0917 };
0918 #define vki_ifc_buf ifc_ifcu.ifcu_buf
0919
0920
0921
0922
0923
0924 struct vki_arpreq {
0925 struct vki_sockaddr arp_pa;
0926 struct vki_sockaddr arp_ha;
0927 int arp_flags;
0928 struct vki_sockaddr arp_netmask;
0929 char arp_dev[16];
0930 };
0931
0932
0933
0934
0935
0936 struct vki_rtentry
0937 {
0938 unsigned long rt_pad1;
0939 struct vki_sockaddr rt_dst;
0940 struct vki_sockaddr rt_gateway;
0941 struct vki_sockaddr rt_genmask;
0942 unsigned short rt_flags;
0943 short rt_pad2;
0944 unsigned long rt_pad3;
0945 void *rt_pad4;
0946 short rt_metric;
0947 char __user *rt_dev;
0948 unsigned long rt_mtu;
0949
0950
0951
0952
0953 unsigned long rt_window;
0954 unsigned short rt_irtt;
0955 };
0956
0957
0958
0959
0960
0961 typedef __vki_s32 vki_sctp_assoc_t;
0962
0963 enum vki_sctp_optname {
0964 VKI_SCTP_RTOINFO,
0965 #define VKI_SCTP_RTOINFO VKI_SCTP_RTOINFO
0966 VKI_SCTP_ASSOCINFO,
0967 #define VKI_SCTP_ASSOCINFO VKI_SCTP_ASSOCINFO
0968 VKI_SCTP_INITMSG,
0969 #define VKI_SCTP_INITMSG VKI_SCTP_INITMSG
0970 VKI_SCTP_NODELAY,
0971 #define VKI_SCTP_NODELAY VKI_SCTP_NODELAY
0972 VKI_SCTP_AUTOCLOSE,
0973 #define VKI_SCTP_AUTOCLOSE VKI_SCTP_AUTOCLOSE
0974 VKI_SCTP_SET_PEER_PRIMARY_ADDR,
0975 #define VKI_SCTP_SET_PEER_PRIMARY_ADDR VKI_SCTP_SET_PEER_PRIMARY_ADDR
0976 VKI_SCTP_PRIMARY_ADDR,
0977 #define VKI_SCTP_PRIMARY_ADDR VKI_SCTP_PRIMARY_ADDR
0978 VKI_SCTP_ADAPTION_LAYER,
0979 #define VKI_SCTP_ADAPTION_LAYER VKI_SCTP_ADAPTION_LAYER
0980 VKI_SCTP_DISABLE_FRAGMENTS,
0981 #define VKI_SCTP_DISABLE_FRAGMENTS VKI_SCTP_DISABLE_FRAGMENTS
0982 VKI_SCTP_PEER_ADDR_PARAMS,
0983 #define VKI_SCTP_PEER_ADDR_PARAMS VKI_SCTP_PEER_ADDR_PARAMS
0984 VKI_SCTP_DEFAULT_SEND_PARAM,
0985 #define VKI_SCTP_DEFAULT_SEND_PARAM VKI_SCTP_DEFAULT_SEND_PARAM
0986 VKI_SCTP_EVENTS,
0987 #define VKI_SCTP_EVENTS VKI_SCTP_EVENTS
0988 VKI_SCTP_I_WANT_MAPPED_V4_ADDR,
0989 #define VKI_SCTP_I_WANT_MAPPED_V4_ADDR VKI_SCTP_I_WANT_MAPPED_V4_ADDR
0990 VKI_SCTP_MAXSEG,
0991 #define VKI_SCTP_MAXSEG VKI_SCTP_MAXSEG
0992 VKI_SCTP_STATUS,
0993 #define VKI_SCTP_STATUS VKI_SCTP_STATUS
0994 VKI_SCTP_GET_PEER_ADDR_INFO,
0995 #define VKI_SCTP_GET_PEER_ADDR_INFO VKI_SCTP_GET_PEER_ADDR_INFO
0996
0997
0998
0999
1000 VKI_SCTP_SOCKOPT_BINDX_ADD = 100,
1001 #define VKI_SCTP_SOCKOPT_BINDX_ADD VKI_SCTP_SOCKOPT_BINDX_ADD
1002 VKI_SCTP_SOCKOPT_BINDX_REM,
1003 #define VKI_SCTP_SOCKOPT_BINDX_REM VKI_SCTP_SOCKOPT_BINDX_REM
1004 VKI_SCTP_SOCKOPT_PEELOFF,
1005 #define VKI_SCTP_SOCKOPT_PEELOFF VKI_SCTP_SOCKOPT_PEELOFF
1006 VKI_SCTP_GET_PEER_ADDRS_NUM,
1007 #define VKI_SCTP_GET_PEER_ADDRS_NUM VKI_SCTP_GET_PEER_ADDRS_NUM
1008 VKI_SCTP_GET_PEER_ADDRS,
1009 #define VKI_SCTP_GET_PEER_ADDRS VKI_SCTP_GET_PEER_ADDRS
1010 VKI_SCTP_GET_LOCAL_ADDRS_NUM,
1011 #define VKI_SCTP_GET_LOCAL_ADDRS_NUM VKI_SCTP_GET_LOCAL_ADDRS_NUM
1012 VKI_SCTP_GET_LOCAL_ADDRS,
1013 #define VKI_SCTP_GET_LOCAL_ADDRS VKI_SCTP_GET_LOCAL_ADDRS
1014 VKI_SCTP_SOCKOPT_CONNECTX,
1015 #define VKI_SCTP_SOCKOPT_CONNECTX VKI_SCTP_SOCKOPT_CONNECTX
1016 };
1017
1018 struct vki_sctp_getaddrs {
1019 vki_sctp_assoc_t assoc_id;
1020 int addr_num;
1021 struct vki_sockaddr *addrs;
1022 };
1023
1024
1025
1026
1027
1028 #define VKI_RUSAGE_SELF 0
1029 #define VKI_RUSAGE_CHILDREN (-1)
1030 #define VKI_RUSAGE_BOTH (-2)
1031 #define VKI_RUSAGE_THREAD 1
1032
1033 struct vki_rusage {
1034 struct vki_timeval ru_utime;
1035 struct vki_timeval ru_stime;
1036 long ru_maxrss;
1037 long ru_ixrss;
1038 long ru_idrss;
1039 long ru_isrss;
1040 long ru_minflt;
1041 long ru_majflt;
1042 long ru_nswap;
1043 long ru_inblock;
1044 long ru_oublock;
1045 long ru_msgsnd;
1046 long ru_msgrcv;
1047 long ru_nsignals;
1048 long ru_nvcsw;
1049 long ru_nivcsw;
1050 };
1051
1052 struct vki_rlimit {
1053 unsigned long rlim_cur;
1054 unsigned long rlim_max;
1055 };
1056
1057 struct vki_rlimit64 {
1058 __vki_u64 rlim_cur;
1059 __vki_u64 rlim_max;
1060 };
1061
1062
1063
1064
1065
1066 struct vki_elf_siginfo
1067 {
1068 int si_signo;
1069 int si_code;
1070 int si_errno;
1071 };
1072
1073
1074 struct vki_elf_prstatus
1075 {
1076 struct vki_elf_siginfo pr_info;
1077 short pr_cursig;
1078 unsigned long pr_sigpend;
1079 unsigned long pr_sighold;
1080 vki_pid_t pr_pid;
1081 vki_pid_t pr_ppid;
1082 vki_pid_t pr_pgrp;
1083 vki_pid_t pr_sid;
1084 struct vki_timeval pr_utime;
1085 struct vki_timeval pr_stime;
1086 struct vki_timeval pr_cutime;
1087 struct vki_timeval pr_cstime;
1088 vki_elf_gregset_t pr_reg;
1089 int pr_fpvalid;
1090 };
1091
1092 #define VKI_ELF_PRARGSZ (80)
1093
1094 struct vki_elf_prpsinfo
1095 {
1096 char pr_state;
1097 char pr_sname;
1098 char pr_zomb;
1099 char pr_nice;
1100 unsigned long pr_flag;
1101 __vki_kernel_uid_t pr_uid;
1102 __vki_kernel_gid_t pr_gid;
1103 vki_pid_t pr_pid, pr_ppid, pr_pgrp, pr_sid;
1104
1105 char pr_fname[16];
1106 char pr_psargs[VKI_ELF_PRARGSZ];
1107 };
1108
1109
1110
1111
1112
1113
1114 #define VKI_EPOLL_CTL_ADD 1
1115 #define VKI_EPOLL_CTL_DEL 2
1116 #define VKI_EPOLL_CTL_MOD 3
1117
1118 #ifdef __x86_64__
1119 #define VKI_EPOLL_PACKED __attribute__((packed))
1120 #else
1121 #define VKI_EPOLL_PACKED
1122 #endif
1123
1124 struct vki_epoll_event {
1125 __vki_u32 events;
1126 __vki_u64 data;
1127 } VKI_EPOLL_PACKED;
1128
1129
1130
1131
1132
1133
1134 struct vki_mq_attr {
1135 long mq_flags;
1136 long mq_maxmsg;
1137 long mq_msgsize;
1138 long mq_curmsgs;
1139 long __reserved[4];
1140 };
1141
1142
1143
1144
1145
1146 struct vki_new_utsname {
1147 char sysname[65];
1148 char nodename[65];
1149 char release[65];
1150 char version[65];
1151 char machine[65];
1152 char domainname[65];
1153 };
1154
1155
1156
1157
1158
1159
1160 struct vki_mii_ioctl_data {
1161 vki_u16 phy_id;
1162 vki_u16 reg_num;
1163 vki_u16 val_in;
1164 vki_u16 val_out;
1165 };
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179 typedef struct __vki_user_cap_header_struct {
1180 __vki_u32 version;
1181 int pid;
1182 } __user *vki_cap_user_header_t;
1183
1184 typedef struct __vki_user_cap_data_struct {
1185 __vki_u32 effective;
1186 __vki_u32 permitted;
1187 __vki_u32 inheritable;
1188 } __user *vki_cap_user_data_t;
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203 struct vki_ipc_perm
1204 {
1205 __vki_kernel_key_t key;
1206 __vki_kernel_uid_t uid;
1207 __vki_kernel_gid_t gid;
1208 __vki_kernel_uid_t cuid;
1209 __vki_kernel_gid_t cgid;
1210 __vki_kernel_mode_t mode;
1211 unsigned short seq;
1212 };
1213
1214 #define VKI_IPC_CREAT 00001000
1215 #define VKI_IPC_EXCL 00002000
1216 #define VKI_IPC_NOWAIT 00004000
1217
1218
1219 #define VKI_IPC_SET 1
1220 #define VKI_IPC_STAT 2
1221 #define VKI_IPC_INFO 3
1222
1223 #define VKI_IPC_64 0x0100
1224
1225
1226 # define VKI_SHM_HUGETLB 04000
1227
1228
1229
1230
1231
1232
1233 #define VKI_GETALL 13
1234 #define VKI_SETVAL 16
1235 #define VKI_SETALL 17
1236
1237 #define VKI_SEM_STAT 18
1238 #define VKI_SEM_INFO 19
1239
1240
1241 struct vki_semid_ds {
1242 struct vki_ipc_perm sem_perm;
1243 __vki_kernel_time_t sem_otime;
1244 __vki_kernel_time_t sem_ctime;
1245
1246 void*sem_base;
1247 void*sem_pending;
1248 void**sem_pending_last;
1249 void*undo;
1250 unsigned short sem_nsems;
1251 };
1252
1253 struct vki_sembuf {
1254 unsigned short sem_num;
1255 short sem_op;
1256 short sem_flg;
1257 };
1258
1259 union vki_semun {
1260 int val;
1261 struct vki_semid_ds __user *buf;
1262 struct vki_semid64_ds __user *buf64;
1263 unsigned short __user *array;
1264 struct vki_seminfo __user *__buf;
1265 void __user *__pad;
1266 };
1267
1268 struct vki_seminfo {
1269 int semmap;
1270 int semmni;
1271 int semmns;
1272 int semmnu;
1273 int semmsl;
1274 int semopm;
1275 int semume;
1276 int semusz;
1277 int semvmx;
1278 int semaem;
1279 };
1280
1281
1282
1283
1284
1285 #define VKI_EPERM 1
1286 #define VKI_ENOENT 2
1287 #define VKI_ESRCH 3
1288 #define VKI_EINTR 4
1289 #define VKI_EIO 5
1290 #define VKI_ENXIO 6
1291 #define VKI_E2BIG 7
1292 #define VKI_ENOEXEC 8
1293 #define VKI_EBADF 9
1294 #define VKI_ECHILD 10
1295 #define VKI_EAGAIN 11
1296 #define VKI_ENOMEM 12
1297 #define VKI_EACCES 13
1298 #define VKI_EFAULT 14
1299 #define VKI_ENOTBLK 15
1300 #define VKI_EBUSY 16
1301 #define VKI_EEXIST 17
1302 #define VKI_EXDEV 18
1303 #define VKI_ENODEV 19
1304 #define VKI_ENOTDIR 20
1305 #define VKI_EISDIR 21
1306 #define VKI_EINVAL 22
1307 #define VKI_ENFILE 23
1308 #define VKI_EMFILE 24
1309 #define VKI_ENOTTY 25
1310 #define VKI_ETXTBSY 26
1311 #define VKI_EFBIG 27
1312 #define VKI_ENOSPC 28
1313 #define VKI_ESPIPE 29
1314 #define VKI_EROFS 30
1315 #define VKI_EMLINK 31
1316 #define VKI_EPIPE 32
1317 #define VKI_EDOM 33
1318 #define VKI_ERANGE 34
1319
1320
1321
1322
1323
1324 #define VKI_EWOULDBLOCK VKI_EAGAIN
1325
1326 #define VKI_ELOOP 40
1327
1328
1329
1330
1331
1332 #define VKI_WNOHANG 0x00000001
1333
1334 #define __VKI_WALL 0x40000000
1335 #define __VKI_WCLONE 0x80000000
1336
1337
1338
1339
1340
1341 #define VKI_MREMAP_MAYMOVE 1
1342 #define VKI_MREMAP_FIXED 2
1343
1344
1345
1346
1347
1348 #define VKI_FUTEX_WAIT (0)
1349 #define VKI_FUTEX_WAKE (1)
1350 #define VKI_FUTEX_FD (2)
1351 #define VKI_FUTEX_REQUEUE (3)
1352 #define VKI_FUTEX_CMP_REQUEUE (4)
1353 #define VKI_FUTEX_WAKE_OP (5)
1354 #define VKI_FUTEX_LOCK_PI (6)
1355 #define VKI_FUTEX_UNLOCK_PI (7)
1356 #define VKI_FUTEX_TRYLOCK_PI (8)
1357 #define VKI_FUTEX_WAIT_BITSET (9)
1358 #define VKI_FUTEX_WAKE_BITSET (10)
1359 #define VKI_FUTEX_WAIT_REQUEUE_PI (11)
1360 #define VKI_FUTEX_CMP_REQUEUE_PI (12)
1361 #define VKI_FUTEX_PRIVATE_FLAG (128)
1362 #define VKI_FUTEX_CLOCK_REALTIME (256)
1363
1364 struct vki_robust_list {
1365 struct vki_robust_list __user *next;
1366 };
1367
1368 struct vki_robust_list_head {
1369
1370
1371
1372 struct vki_robust_list list;
1373
1374
1375
1376
1377
1378
1379
1380 long futex_offset;
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392 struct vki_robust_list __user *list_op_pending;
1393 };
1394
1395
1396
1397
1398
1399 #define VKI_ERESTARTSYS 512
1400
1401
1402
1403
1404
1405 #define VKI_S_IFMT 00170000
1406 #define VKI_S_IFSOCK 0140000
1407 #define VKI_S_IFLNK 0120000
1408 #define VKI_S_IFREG 0100000
1409 #define VKI_S_IFBLK 0060000
1410 #define VKI_S_IFDIR 0040000
1411 #define VKI_S_IFCHR 0020000
1412 #define VKI_S_IFIFO 0010000
1413 #define VKI_S_ISUID 0004000
1414 #define VKI_S_ISGID 0002000
1415 #define VKI_S_ISVTX 0001000
1416
1417 #define VKI_S_ISLNK(m) (((m) & VKI_S_IFMT) == VKI_S_IFLNK)
1418 #define VKI_S_ISREG(m) (((m) & VKI_S_IFMT) == VKI_S_IFREG)
1419 #define VKI_S_ISDIR(m) (((m) & VKI_S_IFMT) == VKI_S_IFDIR)
1420 #define VKI_S_ISCHR(m) (((m) & VKI_S_IFMT) == VKI_S_IFCHR)
1421 #define VKI_S_ISBLK(m) (((m) & VKI_S_IFMT) == VKI_S_IFBLK)
1422 #define VKI_S_ISFIFO(m) (((m) & VKI_S_IFMT) == VKI_S_IFIFO)
1423 #define VKI_S_ISSOCK(m) (((m) & VKI_S_IFMT) == VKI_S_IFSOCK)
1424
1425 #define VKI_S_IRWXU 00700
1426 #define VKI_S_IRUSR 00400
1427 #define VKI_S_IWUSR 00200
1428 #define VKI_S_IXUSR 00100
1429
1430 #define VKI_S_IRWXG 00070
1431 #define VKI_S_IRGRP 00040
1432 #define VKI_S_IWGRP 00020
1433 #define VKI_S_IXGRP 00010
1434
1435 #define VKI_S_IRWXO 00007
1436 #define VKI_S_IROTH 00004
1437 #define VKI_S_IWOTH 00002
1438 #define VKI_S_IXOTH 00001
1439
1440 #define VKI_STATX_ALL 0x00000FFFU
1441
1442 struct vki_statx_timestamp {
1443 __vki_s64 tv_sec;
1444 __vki_u32 tv_nsec;
1445 __vki_s32 __reserved;
1446 };
1447
1448 struct vki_statx {
1449
1450 __vki_u32 stx_mask;
1451 __vki_u32 stx_blksize;
1452 __vki_u64 stx_attributes;
1453
1454 __vki_u32 stx_nlink;
1455 __vki_u32 stx_uid;
1456 __vki_u32 stx_gid;
1457 __vki_u16 stx_mode;
1458 __vki_u16 __spare0[1];
1459
1460 __vki_u64 stx_ino;
1461 __vki_u64 stx_size;
1462 __vki_u64 stx_blocks;
1463 __vki_u64 stx_attributes_mask;
1464
1465 struct vki_statx_timestamp stx_atime;
1466 struct vki_statx_timestamp stx_btime;
1467 struct vki_statx_timestamp stx_ctime;
1468 struct vki_statx_timestamp stx_mtime;
1469
1470 __vki_u32 stx_rdev_major;
1471 __vki_u32 stx_rdev_minor;
1472 __vki_u32 stx_dev_major;
1473 __vki_u32 stx_dev_minor;
1474
1475 __vki_u64 stx_mnt_id;
1476 __vki_u32 stx_dio_mem_align;
1477 __vki_u32 stx_dio_offset_align;
1478
1479
1480 __vki_u64 __spare2[12];
1481
1482 };
1483
1484
1485
1486
1487
1488
1489
1490 struct vki_dirent {
1491 long d_ino;
1492 __vki_kernel_off_t d_off;
1493 unsigned short d_reclen;
1494 char d_name[256];
1495 };
1496
1497
1498 struct vki_dirent64 {
1499 __vki_u64 d_ino;
1500 __vki_s64 d_off;
1501 unsigned short d_reclen;
1502 unsigned char d_type;
1503 char d_name[256];
1504 };
1505
1506
1507
1508
1509
1510 #define VKI_F_SETLEASE (VKI_F_LINUX_SPECIFIC_BASE + 0)
1511 #define VKI_F_GETLEASE (VKI_F_LINUX_SPECIFIC_BASE + 1)
1512
1513 #define VKI_F_CANCELLK (VKI_F_LINUX_SPECIFIC_BASE + 5)
1514
1515 #define VKI_F_DUPFD_CLOEXEC (VKI_F_LINUX_SPECIFIC_BASE + 6)
1516
1517 #define VKI_F_NOTIFY (VKI_F_LINUX_SPECIFIC_BASE + 2)
1518
1519 #define VKI_F_SETPIPE_SZ (VKI_F_LINUX_SPECIFIC_BASE + 7)
1520 #define VKI_F_GETPIPE_SZ (VKI_F_LINUX_SPECIFIC_BASE + 8)
1521
1522 #define VKI_F_ADD_SEALS (VKI_F_LINUX_SPECIFIC_BASE + 9)
1523 #define VKI_F_GET_SEALS (VKI_F_LINUX_SPECIFIC_BASE + 10)
1524
1525 struct vki_flock {
1526 short l_type;
1527 short l_whence;
1528 __vki_kernel_off_t l_start;
1529 __vki_kernel_off_t l_len;
1530 __vki_kernel_pid_t l_pid;
1531 };
1532
1533 struct vki_flock64 {
1534 short l_type;
1535 short l_whence;
1536 __vki_kernel_loff_t l_start;
1537 __vki_kernel_loff_t l_len;
1538 __vki_kernel_pid_t l_pid;
1539 };
1540
1541 #define VKI_AT_EMPTY_PATH 0x1000
1542 #define VKI_AT_SYMLINK_NOFOLLOW 0x100
1543
1544
1545
1546
1547
1548 struct __vki_sysctl_args {
1549 int __user *name;
1550 int nlen;
1551 void __user *oldval;
1552 vki_size_t __user *oldlenp;
1553 void __user *newval;
1554 vki_size_t newlen;
1555 unsigned long __unused0[4];
1556 };
1557
1558
1559
1560
1561
1562 typedef unsigned long vki_aio_context_t;
1563
1564 enum {
1565 VKI_IOCB_CMD_PREAD = 0,
1566 VKI_IOCB_CMD_PWRITE = 1,
1567 VKI_IOCB_CMD_FSYNC = 2,
1568 VKI_IOCB_CMD_FDSYNC = 3,
1569 VKI_IOCB_CMD_PREADV = 7,
1570 VKI_IOCB_CMD_PWRITEV = 8,
1571 };
1572
1573
1574 struct vki_io_event {
1575 __vki_u64 data;
1576 __vki_u64 obj;
1577
1578
1579 __vki_s64 result;
1580 __vki_s64 result2;
1581 };
1582
1583 #if defined(VKI_LITTLE_ENDIAN)
1584 # define VKI_PADDED(x,y) x, y
1585 #elif defined(VKI_BIG_ENDIAN)
1586 # define VKI_PADDED(x,y) y, x
1587 #else
1588 #error edit for your odd byteorder.
1589 #endif
1590
1591 struct vki_iocb {
1592
1593 __vki_u64 aio_data;
1594 __vki_u32 VKI_PADDED(aio_key, aio_reserved1);
1595
1596
1597
1598 __vki_u16 aio_lio_opcode;
1599 __vki_s16 aio_reqprio;
1600 __vki_u32 aio_fildes;
1601
1602 __vki_u64 aio_buf;
1603 __vki_u64 aio_nbytes;
1604 __vki_s64 aio_offset;
1605
1606
1607 __vki_u64 aio_reserved2;
1608 __vki_u64 aio_reserved3;
1609 };
1610
1611
1612
1613
1614
1615 struct vki_aio_ring {
1616 unsigned id;
1617 unsigned nr;
1618 unsigned head;
1619 unsigned tail;
1620
1621 unsigned magic;
1622 unsigned compat_features;
1623 unsigned incompat_features;
1624 unsigned header_length;
1625
1626 struct vki_io_event io_events[0];
1627 };
1628
1629
1630
1631
1632
1633 #define VKI_MSG_STAT 11
1634 #define VKI_MSG_INFO 12
1635
1636 struct vki_msqid_ds {
1637 struct vki_ipc_perm msg_perm;
1638 struct vki_msg *msg_first;
1639 struct vki_msg *msg_last;
1640 __vki_kernel_time_t msg_stime;
1641 __vki_kernel_time_t msg_rtime;
1642 __vki_kernel_time_t msg_ctime;
1643 unsigned long msg_lcbytes;
1644 unsigned long msg_lqbytes;
1645 unsigned short msg_cbytes;
1646 unsigned short msg_qnum;
1647 unsigned short msg_qbytes;
1648 __vki_kernel_ipc_pid_t msg_lspid;
1649 __vki_kernel_ipc_pid_t msg_lrpid;
1650 };
1651
1652 struct vki_msgbuf {
1653 long mtype;
1654 char mtext[1];
1655 };
1656
1657 struct vki_msginfo {
1658 int msgpool;
1659 int msgmap;
1660 int msgmax;
1661 int msgmnb;
1662 int msgmni;
1663 int msgssz;
1664 int msgtql;
1665 unsigned short msgseg;
1666 };
1667
1668
1669
1670
1671
1672 struct vki_shmid_ds {
1673 struct vki_ipc_perm shm_perm;
1674 int shm_segsz;
1675 __vki_kernel_time_t shm_atime;
1676 __vki_kernel_time_t shm_dtime;
1677 __vki_kernel_time_t shm_ctime;
1678 __vki_kernel_ipc_pid_t shm_cpid;
1679 __vki_kernel_ipc_pid_t shm_lpid;
1680 unsigned short shm_nattch;
1681 unsigned short shm_unused;
1682 void *shm_unused2;
1683 void *shm_unused3;
1684 };
1685
1686 #define VKI_SHM_RDONLY 010000
1687 #define VKI_SHM_RND 020000
1688
1689 #define VKI_SHM_STAT 13
1690 #define VKI_SHM_INFO 14
1691
1692
1693 struct vki_shminfo {
1694 int shmmax;
1695 int shmmin;
1696 int shmmni;
1697 int shmseg;
1698 int shmall;
1699 };
1700
1701 struct vki_shm_info {
1702 int used_ids;
1703 unsigned long shm_tot;
1704 unsigned long shm_rss;
1705 unsigned long shm_swp;
1706 unsigned long swap_attempts;
1707 unsigned long swap_successes;
1708 };
1709
1710
1711
1712
1713
1714 struct vki_rtc_time {
1715 int tm_sec;
1716 int tm_min;
1717 int tm_hour;
1718 int tm_mday;
1719 int tm_mon;
1720 int tm_year;
1721 int tm_wday;
1722 int tm_yday;
1723 int tm_isdst;
1724 };
1725
1726 #define VKI_RTC_AIE_ON _VKI_IO('p', 0x01)
1727 #define VKI_RTC_AIE_OFF _VKI_IO('p', 0x02)
1728 #define VKI_RTC_UIE_ON _VKI_IO('p', 0x03)
1729 #define VKI_RTC_UIE_OFF _VKI_IO('p', 0x04)
1730 #define VKI_RTC_PIE_ON _VKI_IO('p', 0x05)
1731 #define VKI_RTC_PIE_OFF _VKI_IO('p', 0x06)
1732
1733 #define VKI_RTC_ALM_SET _VKI_IOW('p', 0x07, struct vki_rtc_time)
1734 #define VKI_RTC_ALM_READ _VKI_IOR('p', 0x08, struct vki_rtc_time)
1735 #define VKI_RTC_RD_TIME _VKI_IOR('p', 0x09, struct vki_rtc_time)
1736
1737 #define VKI_RTC_IRQP_READ _VKI_IOR('p', 0x0b, unsigned long)
1738 #define VKI_RTC_IRQP_SET _VKI_IOW('p', 0x0c, unsigned long)
1739
1740
1741
1742
1743
1744
1745
1746 #define VKI_ISDN_MAX_CHANNELS 64
1747
1748 #define VKI_IIOCGETCPS _VKI_IO('I',21)
1749
1750 #define VKI_IIOCNETGPN _VKI_IO('I',34)
1751
1752 #define VKI_ISDN_MSNLEN 32
1753
1754 typedef struct {
1755 char name[10];
1756 char phone[VKI_ISDN_MSNLEN];
1757 int outgoing;
1758 } vki_isdn_net_ioctl_phone;
1759
1760
1761
1762
1763
1764 #define VKI_SIOCOUTQ VKI_TIOCOUTQ
1765
1766 #define VKI_SIOCADDRT 0x890B
1767 #define VKI_SIOCDELRT 0x890C
1768
1769 #define VKI_SIOCGIFNAME 0x8910
1770 #define VKI_SIOCGIFCONF 0x8912
1771 #define VKI_SIOCGIFFLAGS 0x8913
1772 #define VKI_SIOCSIFFLAGS 0x8914
1773 #define VKI_SIOCGIFADDR 0x8915
1774 #define VKI_SIOCSIFADDR 0x8916
1775 #define VKI_SIOCGIFDSTADDR 0x8917
1776 #define VKI_SIOCSIFDSTADDR 0x8918
1777 #define VKI_SIOCGIFBRDADDR 0x8919
1778 #define VKI_SIOCSIFBRDADDR 0x891a
1779 #define VKI_SIOCGIFNETMASK 0x891b
1780 #define VKI_SIOCSIFNETMASK 0x891c
1781 #define VKI_SIOCGIFMETRIC 0x891d
1782 #define VKI_SIOCSIFMETRIC 0x891e
1783 #define VKI_SIOCGIFMTU 0x8921
1784 #define VKI_SIOCSIFMTU 0x8922
1785 #define VKI_SIOCSIFHWADDR 0x8924
1786 #define VKI_SIOCGIFHWADDR 0x8927
1787 #define VKI_SIOCGIFINDEX 0x8933
1788
1789 #define VKI_SIOCGIFTXQLEN 0x8942
1790 #define VKI_SIOCSIFTXQLEN 0x8943
1791
1792 #define VKI_SIOCETHTOOL 0x8946
1793
1794 #define VKI_SIOCGMIIPHY 0x8947
1795 #define VKI_SIOCGMIIREG 0x8948
1796 #define VKI_SIOCSMIIREG 0x8949
1797
1798 #define VKI_SIOCDARP 0x8953
1799 #define VKI_SIOCGARP 0x8954
1800 #define VKI_SIOCSARP 0x8955
1801
1802 #define VKI_SIOCDRARP 0x8960
1803 #define VKI_SIOCGRARP 0x8961
1804 #define VKI_SIOCSRARP 0x8962
1805
1806 #define VKI_SIOCGIFMAP 0x8970
1807 #define VKI_SIOCSIFMAP 0x8971
1808
1809 #define VKI_SIOCSHWTSTAMP 0x89B0
1810
1811
1812
1813
1814
1815 #define VKI_PP_MAJOR 99
1816
1817 #define VKI_PP_IOCTL 'p'
1818
1819
1820 #define VKI_PPSETMODE _VKI_IOW(VKI_PP_IOCTL, 0x80, int)
1821
1822
1823 #define VKI_PPRSTATUS _VKI_IOR(VKI_PP_IOCTL, 0x81, unsigned char)
1824
1825
1826
1827 #define VKI_PPRCONTROL _VKI_IOR(VKI_PP_IOCTL, 0x83, unsigned char)
1828 #define VKI_PPWCONTROL _VKI_IOW(VKI_PP_IOCTL, 0x84, unsigned char)
1829
1830 struct vki_ppdev_frob_struct {
1831 unsigned char mask;
1832 unsigned char val;
1833 };
1834 #define VKI_PPFCONTROL _VKI_IOW(VKI_PP_IOCTL, 0x8e, struct vki_ppdev_frob_struct)
1835
1836
1837 #define VKI_PPRDATA _VKI_IOR(VKI_PP_IOCTL, 0x85, unsigned char)
1838 #define VKI_PPWDATA _VKI_IOW(VKI_PP_IOCTL, 0x86, unsigned char)
1839
1840
1841 #define VKI_PPCLAIM _VKI_IO(VKI_PP_IOCTL, 0x8b)
1842
1843
1844 #define VKI_PPRELEASE _VKI_IO(VKI_PP_IOCTL, 0x8c)
1845
1846
1847
1848 #define VKI_PPYIELD _VKI_IO(VKI_PP_IOCTL, 0x8d)
1849
1850
1851 #define VKI_PPEXCL _VKI_IO(VKI_PP_IOCTL, 0x8f)
1852
1853
1854 #define VKI_PPDATADIR _VKI_IOW(VKI_PP_IOCTL, 0x90, int)
1855
1856
1857 #define VKI_PPNEGOT _VKI_IOW(VKI_PP_IOCTL, 0x91, int)
1858
1859
1860 #define VKI_PPWCTLONIRQ _VKI_IOW(VKI_PP_IOCTL, 0x92, unsigned char)
1861
1862
1863 #define VKI_PPCLRIRQ _VKI_IOR(VKI_PP_IOCTL, 0x93, int)
1864
1865
1866 #define VKI_PPSETPHASE _VKI_IOW(VKI_PP_IOCTL, 0x94, int)
1867
1868
1869 #define VKI_PPGETTIME _VKI_IOR(VKI_PP_IOCTL, 0x95, struct vki_timeval)
1870 #define VKI_PPSETTIME _VKI_IOW(VKI_PP_IOCTL, 0x96, struct vki_timeval)
1871
1872 #define VKI_PPGETMODES _VKI_IOR(VKI_PP_IOCTL, 0x97, unsigned int)
1873
1874 #define VKI_PPGETMODE _VKI_IOR(VKI_PP_IOCTL, 0x98, int)
1875 #define VKI_PPGETPHASE _VKI_IOR(VKI_PP_IOCTL, 0x99, int)
1876
1877 #define VKI_PPGETFLAGS _VKI_IOR(VKI_PP_IOCTL, 0x9a, int)
1878 #define VKI_PPSETFLAGS _VKI_IOW(VKI_PP_IOCTL, 0x9b, int)
1879
1880
1881
1882
1883
1884 #define VKI_LO_NAME_SIZE 64
1885 #define VKI_LO_KEY_SIZE 32
1886
1887 struct vki_loop_info {
1888
1889 int lo_number;
1890 unsigned short lo_device;
1891 unsigned long lo_inode;
1892 unsigned short lo_rdevice;
1893 int lo_offset;
1894 int lo_encrypt_type;
1895 int lo_encrypt_key_size;
1896 int lo_flags;
1897 char lo_name[VKI_LO_NAME_SIZE];
1898 unsigned char lo_encrypt_key[VKI_LO_KEY_SIZE];
1899 unsigned long lo_init[2];
1900 char reserved[4];
1901 };
1902
1903 struct vki_loop_info64 {
1904 __vki_u64 lo_device;
1905 __vki_u64 lo_inode;
1906 __vki_u64 lo_rdevice;
1907 __vki_u64 lo_offset;
1908 __vki_u64 lo_sizelimit;
1909 __vki_u32 lo_number;
1910 __vki_u32 lo_encrypt_type;
1911 __vki_u32 lo_encrypt_key_size;
1912 __vki_u32 lo_flags;
1913 __vki_u8 lo_file_name[VKI_LO_NAME_SIZE];
1914 __vki_u8 lo_crypt_name[VKI_LO_NAME_SIZE];
1915 __vki_u8 lo_encrypt_key[VKI_LO_KEY_SIZE];
1916 __vki_u64 lo_init[2];
1917 };
1918
1919
1920 #define VKI_LOOP_SET_FD 0x4C00
1921 #define VKI_LOOP_CLR_FD 0x4C01
1922 #define VKI_LOOP_SET_STATUS 0x4C02
1923 #define VKI_LOOP_GET_STATUS 0x4C03
1924 #define VKI_LOOP_SET_STATUS64 0x4C04
1925 #define VKI_LOOP_GET_STATUS64 0x4C05
1926 #define VKI_LOOP_CHANGE_FD 0x4C06
1927 #define VKI_LOOP_SET_CAPACITY 0x4C07
1928 #define VKI_LOOP_SET_DIRECT_IO 0x4C08
1929 #define VKI_LOOP_SET_BLOCK_SIZE 0x4C09
1930
1931
1932 #define VKI_LOOP_CTL_ADD 0x4C80
1933 #define VKI_LOOP_CTL_REMOVE 0x4C81
1934 #define VKI_LOOP_CTL_GET_FREE 0x4C82
1935
1936
1937
1938
1939
1940 #define VKI_BLKROSET _VKI_IO(0x12,93)
1941 #define VKI_BLKROGET _VKI_IO(0x12,94)
1942 #define VKI_BLKRRPART _VKI_IO(0x12,95)
1943 #define VKI_BLKGETSIZE _VKI_IO(0x12,96)
1944 #define VKI_BLKFLSBUF _VKI_IO(0x12,97)
1945 #define VKI_BLKRASET _VKI_IO(0x12,98)
1946 #define VKI_BLKRAGET _VKI_IO(0x12,99)
1947 #define VKI_BLKFRASET _VKI_IO(0x12,100)
1948 #define VKI_BLKFRAGET _VKI_IO(0x12,101)
1949 #define VKI_BLKSECTSET _VKI_IO(0x12,102)
1950 #define VKI_BLKSECTGET _VKI_IO(0x12,103)
1951 #define VKI_BLKSSZGET _VKI_IO(0x12,104)
1952 #define VKI_BLKBSZGET _VKI_IOR(0x12,112,vki_size_t)
1953 #define VKI_BLKBSZSET _VKI_IOW(0x12,113,vki_size_t)
1954 #define VKI_BLKGETSIZE64 _VKI_IOR(0x12,114,vki_size_t)
1955 #define VKI_BLKDISCARD _VKI_IO(0x12,119)
1956 #define VKI_BLKIOMIN _VKI_IO(0x12,120)
1957 #define VKI_BLKIOOPT _VKI_IO(0x12,121)
1958 #define VKI_BLKALIGNOFF _VKI_IO(0x12,122)
1959 #define VKI_BLKPBSZGET _VKI_IO(0x12,123)
1960 #define VKI_BLKDISCARDZEROES _VKI_IO(0x12,124)
1961 #define VKI_BLKZEROOUT _VKI_IO(0x12,127)
1962
1963 #define VKI_FIBMAP _VKI_IO(0x00,1)
1964 #define VKI_FIGETBSZ _VKI_IO(0x00,2)
1965 #define VKI_FICLONE _VKI_IOW(0x94, 9, int)
1966
1967
1968
1969
1970
1971 typedef struct vki_sg_io_hdr
1972 {
1973 int interface_id;
1974 int dxfer_direction;
1975 unsigned char cmd_len;
1976 unsigned char mx_sb_len;
1977 unsigned short iovec_count;
1978 unsigned int dxfer_len;
1979 void __user *dxferp;
1980
1981 unsigned char __user *cmdp;
1982 void __user *sbp;
1983 unsigned int timeout;
1984 unsigned int flags;
1985 int pack_id;
1986 void __user * usr_ptr;
1987 unsigned char status;
1988 unsigned char masked_status;
1989 unsigned char msg_status;
1990 unsigned char sb_len_wr;
1991 unsigned short host_status;
1992 unsigned short driver_status;
1993 int resid;
1994 unsigned int duration;
1995 unsigned int info;
1996 } vki_sg_io_hdr_t;
1997
1998 #define VKI_SG_DXFER_NONE -1
1999 #define VKI_SG_DXFER_TO_DEV -2
2000 #define VKI_SG_DXFER_FROM_DEV -3
2001 #define VKI_SG_DXFER_TO_FROM_DEV -4
2002
2003
2004
2005
2006 typedef struct vki_sg_scsi_id {
2007 int host_no;
2008 int channel;
2009 int scsi_id;
2010 int lun;
2011 int scsi_type;
2012 short h_cmd_per_lun;
2013 short d_queue_depth;
2014 int unused[2];
2015 } vki_sg_scsi_id_t;
2016
2017 #define VKI_SG_EMULATED_HOST 0x2203
2018
2019 #define VKI_SG_SET_RESERVED_SIZE 0x2275
2020 #define VKI_SG_GET_RESERVED_SIZE 0x2272
2021
2022 #define VKI_SG_GET_SCSI_ID 0x2276
2023
2024 #define VKI_SG_GET_SG_TABLESIZE 0x227F
2025
2026 #define VKI_SG_GET_VERSION_NUM 0x2282
2027
2028 #define VKI_SG_IO 0x2285
2029
2030 #define VKI_SG_SET_TIMEOUT 0x2201
2031 #define VKI_SG_GET_TIMEOUT 0x2202
2032
2033
2034 #define VKI_SG_SET_COMMAND_Q 0x2271
2035
2036
2037
2038
2039
2040 #define VKI_SCSI_IOCTL_DOORLOCK 0x5380
2041 #define VKI_SCSI_IOCTL_DOORUNLOCK 0x5381
2042 #define VKI_SCSI_IOCTL_GET_IDLUN 0x5382
2043 #define VKI_SCSI_IOCTL_GET_BUS_NUMBER 0x5386
2044
2045 struct vki_scsi_idlun {
2046 __vki_u32 dev_id;
2047 __vki_u32 host_unique_id;
2048 };
2049
2050
2051
2052
2053
2054 #define VKI_CDROMPLAYMSF 0x5303
2055 #define VKI_CDROMREADTOCHDR 0x5305
2056
2057 #define VKI_CDROMREADTOCENTRY 0x5306
2058
2059 #define VKI_CDROMSTOP 0x5307
2060 #define VKI_CDROMSUBCHNL 0x530b
2061
2062 #define VKI_CDROMREADMODE2 0x530c
2063
2064 #define VKI_CDROMREADMODE1 0x530d
2065
2066 #define VKI_CDROMREADAUDIO 0x530e
2067 #define VKI_CDROMMULTISESSION 0x5310
2068
2069
2070 #define VKI_CDROM_GET_MCN 0x5311
2071
2072 #define VKI_CDROMVOLREAD 0x5313
2073
2074 #define VKI_CDROMREADRAW 0x5314
2075
2076 #define VKI_CDROM_CLEAR_OPTIONS 0x5321
2077 #define VKI_CDROM_DRIVE_STATUS 0x5326
2078 #define VKI_CDROM_DISC_STATUS 0x5327
2079 #define VKI_CDROM_GET_CAPABILITY 0x5331
2080
2081 #define VKI_DVD_READ_STRUCT 0x5390
2082 #define VKI_CDROM_SEND_PACKET 0x5393
2083
2084 struct vki_cdrom_msf0
2085 {
2086 __vki_u8 minute;
2087 __vki_u8 second;
2088 __vki_u8 frame;
2089 };
2090
2091 union vki_cdrom_addr
2092 {
2093 struct vki_cdrom_msf0 msf;
2094 int lba;
2095 };
2096
2097 struct vki_cdrom_msf
2098 {
2099 __vki_u8 cdmsf_min0;
2100 __vki_u8 cdmsf_sec0;
2101 __vki_u8 cdmsf_frame0;
2102 __vki_u8 cdmsf_min1;
2103 __vki_u8 cdmsf_sec1;
2104 __vki_u8 cdmsf_frame1;
2105 };
2106
2107 struct vki_cdrom_tochdr
2108 {
2109 __vki_u8 cdth_trk0;
2110 __vki_u8 cdth_trk1;
2111 };
2112
2113 struct vki_cdrom_volctrl
2114 {
2115 __vki_u8 channel0;
2116 __vki_u8 channel1;
2117 __vki_u8 channel2;
2118 __vki_u8 channel3;
2119 };
2120
2121 struct vki_cdrom_subchnl
2122 {
2123 __vki_u8 cdsc_format;
2124 __vki_u8 cdsc_audiostatus;
2125 __vki_u8 cdsc_adr: 4;
2126 __vki_u8 cdsc_ctrl: 4;
2127 __vki_u8 cdsc_trk;
2128 __vki_u8 cdsc_ind;
2129 union vki_cdrom_addr cdsc_absaddr;
2130 union vki_cdrom_addr cdsc_reladdr;
2131 };
2132
2133 struct vki_cdrom_tocentry
2134 {
2135 __vki_u8 cdte_track;
2136 __vki_u8 cdte_adr :4;
2137 __vki_u8 cdte_ctrl :4;
2138 __vki_u8 cdte_format;
2139 union vki_cdrom_addr cdte_addr;
2140 __vki_u8 cdte_datamode;
2141 };
2142
2143 struct vki_cdrom_read
2144 {
2145 int cdread_lba;
2146 char *cdread_bufaddr;
2147 int cdread_buflen;
2148 };
2149
2150 struct vki_cdrom_read_audio
2151 {
2152 union vki_cdrom_addr addr;
2153 __vki_u8 addr_format;
2154 int nframes;
2155 __vki_u8 __user *buf;
2156 };
2157
2158 struct vki_cdrom_multisession
2159 {
2160 union vki_cdrom_addr addr;
2161
2162
2163 __vki_u8 xa_flag;
2164 __vki_u8 addr_format;
2165 };
2166
2167 struct vki_cdrom_mcn
2168 {
2169 __vki_u8 medium_catalog_number[14];
2170 };
2171
2172 #define VKI_CDROM_PACKET_SIZE 12
2173
2174 struct vki_cdrom_generic_command
2175 {
2176 unsigned char cmd[VKI_CDROM_PACKET_SIZE];
2177 unsigned char __user *buffer;
2178 unsigned int buflen;
2179 int stat;
2180
2181 void__user *sense;
2182 unsigned char data_direction;
2183 int quiet;
2184 int timeout;
2185 void __user *reserved[1];
2186 };
2187
2188 #define VKI_CD_SYNC_SIZE 12
2189 #define VKI_CD_HEAD_SIZE 4
2190 #define VKI_CD_FRAMESIZE_RAW 2352
2191 #define VKI_CD_FRAMESIZE_RAW0 (VKI_CD_FRAMESIZE_RAW-VKI_CD_SYNC_SIZE-VKI_CD_HEAD_SIZE)
2192 #define VKI_CD_FRAMESIZE_RAW1 2048
2193
2194
2195
2196
2197
2198 #ifndef _VKI_SIOWR
2199 #if defined(_VKI_IOWR) && (defined(_AIX) || (!defined(sun) && !defined(sparc) && !defined(__sparc__) && !defined(__INCioctlh) && !defined(__Lynx__)))
2200
2201 #define _VKI_SIO _VKI_IO
2202 #define _VKI_SIOR _VKI_IOR
2203 #define _VKI_SIOW _VKI_IOW
2204 #define _VKI_SIOWR _VKI_IOWR
2205 #else
2206
2207 #error Valgrind: Cannot handle sparc/sun case yet...
2208 # endif
2209 #endif
2210
2211 #define VKI_SNDCTL_SEQ_CTRLRATE _VKI_SIOWR('Q', 3, int)
2212 #define VKI_SNDCTL_SEQ_GETOUTCOUNT _VKI_SIOR ('Q', 4, int)
2213 #define VKI_SNDCTL_SEQ_GETINCOUNT _VKI_SIOR ('Q', 5, int)
2214 #define VKI_SNDCTL_SEQ_PERCMODE _VKI_SIOW ('Q', 6, int)
2215 #define VKI_SNDCTL_SEQ_TESTMIDI _VKI_SIOW ('Q', 8, int)
2216 #define VKI_SNDCTL_SEQ_RESETSAMPLES _VKI_SIOW ('Q', 9, int)
2217 #define VKI_SNDCTL_SEQ_NRSYNTHS _VKI_SIOR ('Q',10, int)
2218 #define VKI_SNDCTL_SEQ_NRMIDIS _VKI_SIOR ('Q',11, int)
2219 #define VKI_SNDCTL_SEQ_GETTIME _VKI_SIOR ('Q',19, int)
2220
2221 #define VKI_SNDCTL_TMR_TIMEBASE _VKI_SIOWR('T', 1, int)
2222 #define VKI_SNDCTL_TMR_TEMPO _VKI_SIOWR('T', 5, int)
2223 #define VKI_SNDCTL_TMR_SOURCE _VKI_SIOWR('T', 6, int)
2224
2225 #define VKI_SNDCTL_MIDI_PRETIME _VKI_SIOWR('m', 0, int)
2226 #define VKI_SNDCTL_MIDI_MPUMODE _VKI_SIOWR('m', 1, int)
2227
2228 #define VKI_SNDCTL_DSP_RESET _VKI_SIO ('P', 0)
2229 #define VKI_SNDCTL_DSP_SYNC _VKI_SIO ('P', 1)
2230 #define VKI_SNDCTL_DSP_SPEED _VKI_SIOWR('P', 2, int)
2231 #define VKI_SNDCTL_DSP_STEREO _VKI_SIOWR('P', 3, int)
2232 #define VKI_SNDCTL_DSP_GETBLKSIZE _VKI_SIOWR('P', 4, int)
2233 #define VKI_SNDCTL_DSP_CHANNELS _VKI_SIOWR('P', 6, int)
2234 #define VKI_SOUND_PCM_WRITE_FILTER _VKI_SIOWR('P', 7, int)
2235 #define VKI_SNDCTL_DSP_POST _VKI_SIO ('P', 8)
2236 #define VKI_SNDCTL_DSP_SUBDIVIDE _VKI_SIOWR('P', 9, int)
2237 #define VKI_SNDCTL_DSP_SETFRAGMENT _VKI_SIOWR('P',10, int)
2238
2239 #define VKI_SNDCTL_DSP_GETFMTS _VKI_SIOR ('P',11, int)
2240 #define VKI_SNDCTL_DSP_SETFMT _VKI_SIOWR('P', 5, int)
2241
2242 typedef struct vki_audio_buf_info {
2243 int fragments;
2244 int fragstotal;
2245 int fragsize;
2246
2247 int bytes;
2248
2249 } vki_audio_buf_info;
2250
2251 #define VKI_SNDCTL_DSP_GETOSPACE _VKI_SIOR ('P',12, vki_audio_buf_info)
2252 #define VKI_SNDCTL_DSP_GETISPACE _VKI_SIOR ('P',13, vki_audio_buf_info)
2253 #define VKI_SNDCTL_DSP_NONBLOCK _VKI_SIO ('P',14)
2254 #define VKI_SNDCTL_DSP_GETCAPS _VKI_SIOR ('P',15, int)
2255
2256 #define VKI_SNDCTL_DSP_GETTRIGGER _VKI_SIOR ('P',16, int)
2257 #define VKI_SNDCTL_DSP_SETTRIGGER _VKI_SIOW ('P',16, int)
2258
2259 #define VKI_SNDCTL_DSP_SETSYNCRO _VKI_SIO ('P', 21)
2260 #define VKI_SNDCTL_DSP_SETDUPLEX _VKI_SIO ('P', 22)
2261 #define VKI_SNDCTL_DSP_GETODELAY _VKI_SIOR ('P', 23, int)
2262
2263 #define VKI_SNDCTL_DSP_GETCHANNELMASK _VKI_SIOWR('P', 64, int)
2264 #define VKI_SNDCTL_DSP_BIND_CHANNEL _VKI_SIOWR('P', 65, int)
2265
2266 #define VKI_SNDCTL_DSP_SETSPDIF _VKI_SIOW ('P', 66, int)
2267 #define VKI_SNDCTL_DSP_GETSPDIF _VKI_SIOR ('P', 67, int)
2268
2269 #define VKI_SOUND_PCM_READ_RATE _VKI_SIOR ('P', 2, int)
2270 #define VKI_SOUND_PCM_READ_CHANNELS _VKI_SIOR ('P', 6, int)
2271 #define VKI_SOUND_PCM_READ_BITS _VKI_SIOR ('P', 5, int)
2272 #define VKI_SOUND_PCM_READ_FILTER _VKI_SIOR ('P', 7, int)
2273
2274
2275
2276
2277
2278
2279 struct vki_hd_geometry {
2280 unsigned char heads;
2281 unsigned char sectors;
2282 unsigned short cylinders;
2283 unsigned long start;
2284 };
2285
2286 #define VKI_HDIO_GETGEO 0x0301
2287 #define VKI_HDIO_GET_DMA 0x030b
2288 #define VKI_HDIO_GET_IDENTITY 0x030d
2289
2290
2291
2292 #define VKI_SIZEOF_STRUCT_HD_DRIVEID 512
2293
2294
2295
2296
2297
2298 #define VKI_FBIOGET_VSCREENINFO 0x4600
2299 #define VKI_FBIOPUT_VSCREENINFO 0x4601
2300 #define VKI_FBIOGET_FSCREENINFO 0x4602
2301 #define VKI_FBIOPAN_DISPLAY 0x4606
2302
2303 struct vki_fb_fix_screeninfo {
2304 char id[16];
2305 unsigned long smem_start;
2306
2307 __vki_u32 smem_len;
2308 __vki_u32 type;
2309 __vki_u32 type_aux;
2310 __vki_u32 visual;
2311 __vki_u16 xpanstep;
2312 __vki_u16 ypanstep;
2313 __vki_u16 ywrapstep;
2314 __vki_u32 line_length;
2315 unsigned long mmio_start;
2316
2317 __vki_u32 mmio_len;
2318 __vki_u32 accel;
2319
2320 __vki_u16 reserved[3];
2321 };
2322
2323 struct vki_fb_bitfield {
2324 __vki_u32 offset;
2325 __vki_u32 length;
2326 __vki_u32 msb_right;
2327
2328 };
2329
2330 struct vki_fb_var_screeninfo {
2331 __vki_u32 xres;
2332 __vki_u32 yres;
2333 __vki_u32 xres_virtual;
2334 __vki_u32 yres_virtual;
2335 __vki_u32 xoffset;
2336 __vki_u32 yoffset;
2337
2338 __vki_u32 bits_per_pixel;
2339 __vki_u32 grayscale;
2340
2341 struct vki_fb_bitfield red;
2342 struct vki_fb_bitfield green;
2343 struct vki_fb_bitfield blue;
2344 struct vki_fb_bitfield transp;
2345
2346 __vki_u32 nonstd;
2347
2348 __vki_u32 activate;
2349
2350 __vki_u32 height;
2351 __vki_u32 width;
2352
2353 __vki_u32 accel_flags;
2354
2355
2356 __vki_u32 pixclock;
2357 __vki_u32 left_margin;
2358 __vki_u32 right_margin;
2359 __vki_u32 upper_margin;
2360 __vki_u32 lower_margin;
2361 __vki_u32 hsync_len;
2362 __vki_u32 vsync_len;
2363 __vki_u32 sync;
2364 __vki_u32 vmode;
2365 __vki_u32 rotate;
2366 __vki_u32 reserved[5];
2367 };
2368
2369
2370
2371
2372
2373 #define VKI_GIO_FONT 0x4B60
2374 #define VKI_PIO_FONT 0x4B61
2375
2376 #define VKI_GIO_FONTX 0x4B6B
2377 #define VKI_PIO_FONTX 0x4B6C
2378 struct vki_consolefontdesc {
2379 unsigned short charcount;
2380 unsigned short charheight;
2381 char __user *chardata;
2382 };
2383
2384 #define VKI_PIO_FONTRESET 0x4B6D
2385
2386 #define VKI_GIO_CMAP 0x4B70
2387 #define VKI_PIO_CMAP 0x4B71
2388
2389 #define VKI_KIOCSOUND 0x4B2F
2390 #define VKI_KDMKTONE 0x4B30
2391
2392 #define VKI_KDGETLED 0x4B31
2393 #define VKI_KDSETLED 0x4B32
2394
2395 #define VKI_KDGKBTYPE 0x4B33
2396
2397 #define VKI_KDADDIO 0x4B34
2398 #define VKI_KDDELIO 0x4B35
2399 #define VKI_KDENABIO 0x4B36
2400 #define VKI_KDDISABIO 0x4B37
2401
2402 #define VKI_KDSETMODE 0x4B3A
2403 #define VKI_KDGETMODE 0x4B3B
2404
2405 #define VKI_KDMAPDISP 0x4B3C
2406 #define VKI_KDUNMAPDISP 0x4B3D
2407
2408 #define VKI_E_TABSZ 256
2409 #define VKI_GIO_SCRNMAP 0x4B40
2410 #define VKI_PIO_SCRNMAP 0x4B41
2411 #define VKI_GIO_UNISCRNMAP 0x4B69
2412 #define VKI_PIO_UNISCRNMAP 0x4B6A
2413
2414 #define VKI_GIO_UNIMAP 0x4B66
2415 struct vki_unipair {
2416 unsigned short unicode;
2417 unsigned short fontpos;
2418 };
2419 struct vki_unimapdesc {
2420 unsigned short entry_ct;
2421 struct vki_unipair __user *entries;
2422 };
2423 #define VKI_PIO_UNIMAP 0x4B67
2424 #define VKI_PIO_UNIMAPCLR 0x4B68
2425 struct vki_unimapinit {
2426 unsigned short advised_hashsize;
2427 unsigned short advised_hashstep;
2428 unsigned short advised_hashlevel;
2429 };
2430
2431 #define VKI_KDGKBMODE 0x4B44
2432 #define VKI_KDSKBMODE 0x4B45
2433
2434 #define VKI_KDGKBMETA 0x4B62
2435 #define VKI_KDSKBMETA 0x4B63
2436
2437 #define VKI_KDGKBLED 0x4B64
2438 #define VKI_KDSKBLED 0x4B65
2439
2440 struct vki_kbentry {
2441 unsigned char kb_table;
2442 unsigned char kb_index;
2443 unsigned short kb_value;
2444 };
2445 #define VKI_KDGKBENT 0x4B46
2446 #define VKI_KDSKBENT 0x4B47
2447
2448 struct vki_kbsentry {
2449 unsigned char kb_func;
2450 unsigned char kb_string[512];
2451 };
2452 #define VKI_KDGKBSENT 0x4B48
2453 #define VKI_KDSKBSENT 0x4B49
2454
2455 struct vki_kbdiacr {
2456 unsigned char diacr, base, result;
2457 };
2458 struct vki_kbdiacrs {
2459 unsigned int kb_cnt;
2460 struct vki_kbdiacr kbdiacr[256];
2461 };
2462 #define VKI_KDGKBDIACR 0x4B4A
2463 #define VKI_KDSKBDIACR 0x4B4B
2464
2465 struct vki_kbkeycode {
2466 unsigned int scancode, keycode;
2467 };
2468 #define VKI_KDGETKEYCODE 0x4B4C
2469 #define VKI_KDSETKEYCODE 0x4B4D
2470
2471 #define VKI_KDSIGACCEPT 0x4B4E
2472
2473 struct vki_kbd_repeat {
2474 int delay;
2475 int period;
2476
2477 };
2478 #define VKI_KDKBDREP 0x4B52
2479
2480
2481 #define VKI_KDFONTOP 0x4B72
2482
2483 struct vki_console_font_op {
2484 unsigned int op;
2485 unsigned int flags;
2486 unsigned int width, height;
2487 unsigned int charcount;
2488 unsigned char __user *data;
2489 };
2490
2491 #define VKI_KD_FONT_OP_SET 0
2492 #define VKI_KD_FONT_OP_GET 1
2493 #define VKI_KD_FONT_OP_SET_DEFAULT 2
2494 #define VKI_KD_FONT_OP_COPY 3
2495
2496
2497
2498
2499
2500 typedef __vki_kernel_uid32_t vki_qid_t;
2501
2502
2503
2504
2505
2506 #define VKI_PTRACE_TRACEME 0
2507 #define VKI_PTRACE_PEEKTEXT 1
2508 #define VKI_PTRACE_PEEKDATA 2
2509 #define VKI_PTRACE_PEEKUSR 3
2510 #define VKI_PTRACE_POKEUSR 6
2511
2512 #define VKI_PTRACE_DETACH 17
2513
2514 #define VKI_PTRACE_GETEVENTMSG 0x4201
2515 #define VKI_PTRACE_GETSIGINFO 0x4202
2516 #define VKI_PTRACE_SETSIGINFO 0x4203
2517 #define VKI_PTRACE_GETREGSET 0x4204
2518 #define VKI_PTRACE_SETREGSET 0x4205
2519
2520 #define VKI_PT_PTRACED 0x00000001
2521
2522
2523
2524
2525
2526 enum {
2527 VKI_SNDRV_PCM_IOCTL_HW_FREE = _VKI_IO('A', 0x12),
2528 VKI_SNDRV_PCM_IOCTL_HWSYNC = _VKI_IO('A', 0x22),
2529 VKI_SNDRV_PCM_IOCTL_PREPARE = _VKI_IO('A', 0x40),
2530 VKI_SNDRV_PCM_IOCTL_RESET = _VKI_IO('A', 0x41),
2531 VKI_SNDRV_PCM_IOCTL_START = _VKI_IO('A', 0x42),
2532 VKI_SNDRV_PCM_IOCTL_DROP = _VKI_IO('A', 0x43),
2533 VKI_SNDRV_PCM_IOCTL_DRAIN = _VKI_IO('A', 0x44),
2534 VKI_SNDRV_PCM_IOCTL_PAUSE = _VKI_IOW('A', 0x45, int),
2535 VKI_SNDRV_PCM_IOCTL_RESUME = _VKI_IO('A', 0x47),
2536 VKI_SNDRV_PCM_IOCTL_XRUN = _VKI_IO('A', 0x48),
2537 VKI_SNDRV_PCM_IOCTL_LINK = _VKI_IOW('A', 0x60, int),
2538 VKI_SNDRV_PCM_IOCTL_UNLINK = _VKI_IO('A', 0x61),
2539 };
2540
2541 enum {
2542 VKI_SNDRV_TIMER_IOCTL_START = _VKI_IO('T', 0xa0),
2543 VKI_SNDRV_TIMER_IOCTL_STOP = _VKI_IO('T', 0xa1),
2544 VKI_SNDRV_TIMER_IOCTL_CONTINUE = _VKI_IO('T', 0xa2),
2545 VKI_SNDRV_TIMER_IOCTL_PAUSE = _VKI_IO('T', 0xa3),
2546 };
2547
2548 struct vki_snd_ctl_card_info {
2549 int card;
2550 int pad;
2551 unsigned char id[16];
2552 unsigned char driver[16];
2553 unsigned char name[32];
2554 unsigned char longname[80];
2555 unsigned char reserved_[16];
2556 unsigned char mixername[80];
2557 unsigned char components[128];
2558 };
2559
2560 typedef int vki_snd_ctl_elem_iface_t;
2561 #define VKI_SNDRV_CTL_ELEM_IFACE_CARD ((vki_snd_ctl_elem_iface_t) 0)
2562 #define VKI_SNDRV_CTL_ELEM_IFACE_HWDEP ((vki_snd_ctl_elem_iface_t) 1)
2563 #define VKI_SNDRV_CTL_ELEM_IFACE_MIXER ((vki_snd_ctl_elem_iface_t) 2)
2564 #define VKI_SNDRV_CTL_ELEM_IFACE_PCM ((vki_snd_ctl_elem_iface_t) 3)
2565 #define VKI_SNDRV_CTL_ELEM_IFACE_RAWMIDI ((vki_snd_ctl_elem_iface_t) 4)
2566 #define VKI_SNDRV_CTL_ELEM_IFACE_TIMER ((vki_snd_ctl_elem_iface_t) 5)
2567 #define VKI_SNDRV_CTL_ELEM_IFACE_SEQUENCER ((vki_snd_ctl_elem_iface_t) 6)
2568 #define VKI_SNDRV_CTL_ELEM_IFACE_LAST VKI_SNDRV_CTL_ELEM_IFACE_SEQUENCER
2569
2570 struct vki_snd_ctl_elem_id {
2571 unsigned int numid;
2572 vki_snd_ctl_elem_iface_t iface;
2573 unsigned int device;
2574 unsigned int subdevice;
2575 unsigned char name[44];
2576 unsigned int index;
2577 };
2578
2579 struct vki_snd_ctl_elem_list {
2580 unsigned int offset;
2581 unsigned int space;
2582 unsigned int used;
2583 unsigned int count;
2584 struct vki_snd_ctl_elem_id __user *pids;
2585 unsigned char reserved[50];
2586 };
2587
2588 struct vki_snd_ctl_tlv {
2589 unsigned int numid;
2590 unsigned int length;
2591 unsigned int tlv[0];
2592 };
2593
2594 #define VKI_SNDRV_CTL_IOCTL_PVERSION _VKI_IOR('U', 0x00, int)
2595 #define VKI_SNDRV_CTL_IOCTL_CARD_INFO _VKI_IOR('U', 0x01, struct vki_snd_ctl_card_info)
2596 #define VKI_SNDRV_CTL_IOCTL_ELEM_LIST _VKI_IOWR('U', 0x10, struct vki_snd_ctl_elem_list)
2597 #define VKI_SNDRV_CTL_IOCTL_TLV_READ _VKI_IOWR('U', 0x1a, struct vki_snd_ctl_tlv)
2598 #define VKI_SNDRV_CTL_IOCTL_TLV_WRITE _VKI_IOWR('U', 0x1b, struct vki_snd_ctl_tlv)
2599 #define VKI_SNDRV_CTL_IOCTL_TLV_COMMAND _VKI_IOWR('U', 0x1c, struct vki_snd_ctl_tlv)
2600
2601
2602
2603
2604
2605 struct vki_serial_icounter_struct {
2606 int cts, dsr, rng, dcd;
2607 int rx, tx;
2608 int frame, overrun, parity, brk;
2609 int buf_overrun;
2610 int reserved[9];
2611 };
2612
2613
2614
2615
2616
2617 #define VKI_VT_OPENQRY 0x5600
2618
2619 struct vki_vt_mode {
2620 char mode;
2621 char waitv;
2622 short relsig;
2623 short acqsig;
2624 short frsig;
2625 };
2626 #define VKI_VT_GETMODE 0x5601
2627 #define VKI_VT_SETMODE 0x5602
2628
2629 struct vki_vt_stat {
2630 unsigned short v_active;
2631 unsigned short v_signal;
2632 unsigned short v_state;
2633 };
2634 #define VKI_VT_GETSTATE 0x5603
2635 #define VKI_VT_SENDSIG 0x5604
2636
2637 #define VKI_VT_RELDISP 0x5605
2638
2639 #define VKI_VT_ACTIVATE 0x5606
2640 #define VKI_VT_WAITACTIVE 0x5607
2641 #define VKI_VT_DISALLOCATE 0x5608
2642
2643 struct vki_vt_sizes {
2644 unsigned short v_rows;
2645 unsigned short v_cols;
2646 unsigned short v_scrollsize;
2647 };
2648 #define VKI_VT_RESIZE 0x5609
2649
2650 struct vki_vt_consize {
2651 unsigned short v_rows;
2652 unsigned short v_cols;
2653 unsigned short v_vlin;
2654 unsigned short v_clin;
2655 unsigned short v_vcol;
2656 unsigned short v_ccol;
2657 };
2658 #define VKI_VT_RESIZEX 0x560A
2659 #define VKI_VT_LOCKSWITCH 0x560B
2660 #define VKI_VT_UNLOCKSWITCH 0x560C
2661
2662
2663
2664
2665
2666 #define VKI_PR_SET_PDEATHSIG 1
2667 #define VKI_PR_GET_PDEATHSIG 2
2668
2669 #define VKI_PR_GET_DUMPABLE 3
2670 #define VKI_PR_SET_DUMPABLE 4
2671
2672 #define VKI_PR_GET_UNALIGN 5
2673 #define VKI_PR_SET_UNALIGN 6
2674 # define VKI_PR_UNALIGN_NOPRINT 1
2675 # define VKI_PR_UNALIGN_SIGBUS 2
2676
2677 #define VKI_PR_GET_KEEPCAPS 7
2678 #define VKI_PR_SET_KEEPCAPS 8
2679
2680 #define VKI_PR_GET_FPEMU 9
2681 #define VKI_PR_SET_FPEMU 10
2682 # define VKI_PR_FPEMU_NOPRINT 1
2683 # define VKI_PR_FPEMU_SIGFPE 2
2684
2685 #define VKI_PR_GET_FPEXC 11
2686 #define VKI_PR_SET_FPEXC 12
2687 # define VKI_PR_FP_EXC_SW_ENABLE 0x80
2688 # define VKI_PR_FP_EXC_DIV 0x010000
2689 # define VKI_PR_FP_EXC_OVF 0x020000
2690 # define VKI_PR_FP_EXC_UND 0x040000
2691 # define VKI_PR_FP_EXC_RES 0x080000
2692 # define VKI_PR_FP_EXC_INV 0x100000
2693 # define VKI_PR_FP_EXC_DISABLED 0
2694 # define VKI_PR_FP_EXC_NONRECOV 1
2695 # define VKI_PR_FP_EXC_ASYNC 2
2696 # define VKI_PR_FP_EXC_PRECISE 3
2697
2698 #define VKI_PR_GET_TIMING 13
2699 #define VKI_PR_SET_TIMING 14
2700 # define VKI_PR_TIMING_STATISTICAL 0
2701
2702 # define VKI_PR_TIMING_TIMESTAMP 1
2703
2704
2705 #define VKI_PR_SET_NAME 15
2706 #define VKI_PR_GET_NAME 16
2707
2708 #define VKI_PR_GET_ENDIAN 19
2709 #define VKI_PR_SET_ENDIAN 20
2710 # define VKI_PR_ENDIAN_BIG 0
2711 # define VKI_PR_ENDIAN_LITTLE 1
2712 # define VKI_PR_ENDIAN_PPC_LITTLE 2
2713
2714 #define VKI_PR_SET_SECCOMP 22
2715
2716 #define VKI_PR_CAPBSET_READ 23
2717 #define VKI_PR_CAPBSET_DROP 24
2718
2719 #define VKI_PR_GET_TSC 25
2720 #define VKI_PR_SET_TSC 26
2721
2722 #define VKI_PR_GET_SECUREBITS 27
2723 #define VKI_PR_SET_SECUREBITS 28
2724
2725 #define VKI_PR_SET_TIMERSLACK 29
2726 #define VKI_PR_GET_TIMERSLACK 30
2727
2728 #define VKI_PR_TASK_PERF_EVENTS_DISABLE 31
2729 #define VKI_PR_TASK_PERF_EVENTS_ENABLE 32
2730
2731 #define VKI_PR_MCE_KILL 33
2732 #define VKI_PR_MCE_KILL_GET 34
2733
2734 #define VKI_PR_SET_PTRACER 0x59616d61
2735
2736 #define VKI_PR_SET_CHILD_SUBREAPER 36
2737 #define VKI_PR_GET_CHILD_SUBREAPER 37
2738
2739 #define VKI_PR_SET_NO_NEW_PRIVS 38
2740 #define VKI_PR_GET_NO_NEW_PRIVS 39
2741
2742 #define VKI_PR_GET_TID_ADDRESS 40
2743
2744 #define VKI_PR_SET_THP_DISABLE 41
2745 #define VKI_PR_GET_THP_DISABLE 42
2746
2747 #define VKI_PR_MPX_ENABLE_MANAGEMENT 43
2748 #define VKI_PR_MPX_DISABLE_MANAGEMENT 44
2749
2750 #define VKI_PR_SET_FP_MODE 45
2751 #define VKI_PR_GET_FP_MODE 46
2752
2753 #define VKI_PR_CAP_AMBIENT 47
2754
2755 #define VKI_PR_SVE_SET_VL 50
2756 #define VKI_PR_SVE_GET_VL 51
2757 #define VKI_PR_GET_SPECULATION_CTRL 52
2758 #define VKI_PR_SET_SPECULATION_CTRL 53
2759 #define VKI_PR_PAC_RESET_KEYS 54
2760 #define VKI_PR_SET_TAGGED_ADDR_CTRL 55
2761 #define VKI_PR_GET_TAGGED_ADDR_CTRL 56
2762
2763
2764
2765
2766
2767 struct vki_usbdevfs_ctrltransfer {
2768 __vki_u8 bRequestType;
2769 __vki_u8 bRequest;
2770 __vki_u16 wValue;
2771 __vki_u16 wIndex;
2772 __vki_u16 wLength;
2773 __vki_u32 timeout;
2774 void __user *data;
2775 };
2776
2777 struct vki_usbdevfs_bulktransfer {
2778 unsigned int ep;
2779 unsigned int len;
2780 unsigned int timeout;
2781 void __user *data;
2782 };
2783
2784 #define VKI_USBDEVFS_MAXDRIVERNAME 255
2785
2786 struct vki_usbdevfs_getdriver {
2787 unsigned int interface;
2788 char driver[VKI_USBDEVFS_MAXDRIVERNAME + 1];
2789 };
2790
2791 struct vki_usbdevfs_connectinfo {
2792 unsigned int devnum;
2793 unsigned char slow;
2794 };
2795
2796 struct vki_usbdevfs_iso_packet_desc {
2797 unsigned int length;
2798 unsigned int actual_length;
2799 unsigned int status;
2800 };
2801
2802 struct vki_usbdevfs_urb {
2803 unsigned char type;
2804 unsigned char endpoint;
2805 int status;
2806 unsigned int flags;
2807 void __user *buffer;
2808 int buffer_length;
2809 int actual_length;
2810 int start_frame;
2811 int number_of_packets;
2812 int error_count;
2813 unsigned int signr;
2814 void *usercontext;
2815 struct vki_usbdevfs_iso_packet_desc iso_frame_desc[0];
2816 };
2817
2818 struct vki_usbdevfs_ioctl {
2819 int ifno;
2820 int ioctl_code;
2821
2822 void __user *data;
2823 };
2824
2825 #define VKI_USBDEVFS_CONTROL _VKI_IOWR('U', 0, struct vki_usbdevfs_ctrltransfer)
2826 #define VKI_USBDEVFS_BULK _VKI_IOWR('U', 2, struct vki_usbdevfs_bulktransfer)
2827 #define VKI_USBDEVFS_GETDRIVER _VKI_IOW('U', 8, struct vki_usbdevfs_getdriver)
2828 #define VKI_USBDEVFS_SUBMITURB _VKI_IOR('U', 10, struct vki_usbdevfs_urb)
2829 #define VKI_USBDEVFS_DISCARDURB _VKI_IO('U', 11)
2830 #define VKI_USBDEVFS_REAPURB _VKI_IOW('U', 12, void *)
2831 #define VKI_USBDEVFS_REAPURBNDELAY _VKI_IOW('U', 13, void *)
2832 #define VKI_USBDEVFS_CONNECTINFO _VKI_IOW('U', 17, struct vki_usbdevfs_connectinfo)
2833 #define VKI_USBDEVFS_IOCTL _VKI_IOWR('U', 18, struct vki_usbdevfs_ioctl)
2834 #define VKI_USBDEVFS_RESET _VKI_IO('U', 20)
2835
2836 #define VKI_USBDEVFS_URB_TYPE_ISO 0
2837 #define VKI_USBDEVFS_URB_TYPE_INTERRUPT 1
2838 #define VKI_USBDEVFS_URB_TYPE_CONTROL 2
2839 #define VKI_USBDEVFS_URB_TYPE_BULK 3
2840
2841
2842 struct vki_usbdevfs_setuppacket {
2843 __vki_u8 bRequestType;
2844 __vki_u8 bRequest;
2845 __vki_u16 wValue;
2846 __vki_u16 wIndex;
2847 __vki_u16 wLength;
2848 };
2849
2850
2851
2852
2853
2854 #define VKI_I2C_SMBUS_QUICK 0
2855 #define VKI_I2C_SMBUS_BYTE 1
2856 #define VKI_I2C_SMBUS_BYTE_DATA 2
2857 #define VKI_I2C_SMBUS_WORD_DATA 3
2858 #define VKI_I2C_SMBUS_PROC_CALL 4
2859 #define VKI_I2C_SMBUS_BLOCK_DATA 5
2860 #define VKI_I2C_SMBUS_I2C_BLOCK_BROKEN 6
2861 #define VKI_I2C_SMBUS_BLOCK_PROC_CALL 7
2862 #define VKI_I2C_SMBUS_I2C_BLOCK_DATA 8
2863
2864
2865 #define VKI_I2C_SMBUS_READ 1
2866 #define VKI_I2C_SMBUS_WRITE 0
2867
2868 #define VKI_I2C_SLAVE 0x0703
2869
2870 #define VKI_I2C_SLAVE_FORCE 0x0706
2871
2872
2873
2874 #define VKI_I2C_TENBIT 0x0704
2875 #define VKI_I2C_FUNCS 0x0705
2876 #define VKI_I2C_RDWR 0x0707
2877 #define VKI_I2C_PEC 0x0708
2878 #define VKI_I2C_SMBUS 0x0720
2879
2880 #define VKI_I2C_SMBUS_BLOCK_MAX 32
2881 union vki_i2c_smbus_data {
2882 __vki_u8 byte;
2883 __vki_u16 word;
2884 __vki_u8 block[VKI_I2C_SMBUS_BLOCK_MAX + 2];
2885
2886
2887 };
2888
2889
2890 struct vki_i2c_smbus_ioctl_data {
2891 __vki_u8 read_write;
2892 __vki_u8 command;
2893 __vki_u32 size;
2894 union vki_i2c_smbus_data __user *data;
2895 };
2896
2897 struct vki_i2c_msg {
2898 __vki_u16 addr;
2899 __vki_u16 flags;
2900 #define VKI_I2C_M_TEN 0x0010
2901 #define VKI_I2C_M_RD 0x0001
2902 #define VKI_I2C_M_NOSTART 0x4000
2903 #define VKI_I2C_M_REV_DIR_ADDR 0x2000
2904 #define VKI_I2C_M_IGNORE_NAK 0x1000
2905 #define VKI_I2C_M_NO_RD_ACK 0x0800
2906 #define VKI_I2C_M_RECV_LEN 0x0400
2907 __vki_u16 len;
2908 __vki_u8 *buf;
2909 };
2910
2911 struct vki_i2c_rdwr_ioctl_data {
2912 struct vki_i2c_msg *msgs;
2913 __vki_u32 nmsgs;
2914 };
2915
2916
2917
2918
2919
2920
2921 #define VKI_KEYCTL_GET_KEYRING_ID 0
2922 #define VKI_KEYCTL_JOIN_SESSION_KEYRING 1
2923 #define VKI_KEYCTL_UPDATE 2
2924 #define VKI_KEYCTL_REVOKE 3
2925 #define VKI_KEYCTL_CHOWN 4
2926 #define VKI_KEYCTL_SETPERM 5
2927 #define VKI_KEYCTL_DESCRIBE 6
2928 #define VKI_KEYCTL_CLEAR 7
2929 #define VKI_KEYCTL_LINK 8
2930 #define VKI_KEYCTL_UNLINK 9
2931 #define VKI_KEYCTL_SEARCH 10
2932 #define VKI_KEYCTL_READ 11
2933 #define VKI_KEYCTL_INSTANTIATE 12
2934 #define VKI_KEYCTL_NEGATE 13
2935 #define VKI_KEYCTL_SET_REQKEY_KEYRING 14
2936 #define VKI_KEYCTL_SET_TIMEOUT 15
2937 #define VKI_KEYCTL_ASSUME_AUTHORITY 16
2938
2939
2940
2941
2942
2943
2944 typedef vki_int32_t vki_key_serial_t;
2945
2946
2947 typedef vki_uint32_t vki_key_perm_t;
2948
2949
2950
2951
2952
2953
2954
2955
2956
2957
2958
2959 #define VKI_SIOCSIWCOMMIT 0x8B00
2960 #define VKI_SIOCGIWNAME 0x8B01
2961
2962
2963 #define VKI_SIOCSIWNWID 0x8B02
2964 #define VKI_SIOCGIWNWID 0x8B03
2965 #define VKI_SIOCSIWFREQ 0x8B04
2966 #define VKI_SIOCGIWFREQ 0x8B05
2967 #define VKI_SIOCSIWMODE 0x8B06
2968 #define VKI_SIOCGIWMODE 0x8B07
2969 #define VKI_SIOCSIWSENS 0x8B08
2970 #define VKI_SIOCGIWSENS 0x8B09
2971
2972
2973 #define VKI_SIOCSIWRANGE 0x8B0A
2974 #define VKI_SIOCGIWRANGE 0x8B0B
2975 #define VKI_SIOCSIWPRIV 0x8B0C
2976 #define VKI_SIOCGIWPRIV 0x8B0D
2977 #define VKI_SIOCSIWSTATS 0x8B0E
2978 #define VKI_SIOCGIWSTATS 0x8B0F
2979
2980
2981 #define VKI_SIOCSIWSPY 0x8B10
2982 #define VKI_SIOCGIWSPY 0x8B11
2983 #define VKI_SIOCSIWTHRSPY 0x8B12
2984 #define VKI_SIOCGIWTHRSPY 0x8B13
2985
2986
2987 #define VKI_SIOCSIWAP 0x8B14
2988 #define VKI_SIOCGIWAP 0x8B15
2989 #define VKI_SIOCGIWAPLIST 0x8B17
2990 #define VKI_SIOCSIWSCAN 0x8B18
2991 #define VKI_SIOCGIWSCAN 0x8B19
2992
2993
2994 #define VKI_SIOCSIWESSID 0x8B1A
2995 #define VKI_SIOCGIWESSID 0x8B1B
2996 #define VKI_SIOCSIWNICKN 0x8B1C
2997 #define VKI_SIOCGIWNICKN 0x8B1D
2998
2999
3000 #define VKI_SIOCSIWRATE 0x8B20
3001 #define VKI_SIOCGIWRATE 0x8B21
3002 #define VKI_SIOCSIWRTS 0x8B22
3003 #define VKI_SIOCGIWRTS 0x8B23
3004 #define VKI_SIOCSIWFRAG 0x8B24
3005 #define VKI_SIOCGIWFRAG 0x8B25
3006 #define VKI_SIOCSIWTXPOW 0x8B26
3007 #define VKI_SIOCGIWTXPOW 0x8B27
3008 #define VKI_SIOCSIWRETRY 0x8B28
3009 #define VKI_SIOCGIWRETRY 0x8B29
3010
3011
3012 #define VKI_SIOCSIWENCODE 0x8B2A
3013 #define VKI_SIOCGIWENCODE 0x8B2B
3014
3015
3016 #define VKI_SIOCSIWPOWER 0x8B2C
3017 #define VKI_SIOCGIWPOWER 0x8B2D
3018
3019
3020 #define VKI_SIOCSIWGENIE 0x8B30
3021 #define VKI_SIOCGIWGENIE 0x8B31
3022
3023
3024 #define VKI_SIOCSIWMLME 0x8B16
3025
3026
3027 #define VKI_SIOCSIWAUTH 0x8B32
3028 #define VKI_SIOCGIWAUTH 0x8B33
3029
3030
3031 #define VKI_SIOCSIWENCODEEXT 0x8B34
3032 #define VKI_SIOCGIWENCODEEXT 0x8B35
3033
3034
3035 #define VKI_SIOCSIWPMKSA 0x8B36
3036
3037
3038
3039
3040
3041 struct vki_iw_param
3042 {
3043 __vki_s32 value;
3044 __vki_u8 fixed;
3045 __vki_u8 disabled;
3046 __vki_u16 flags;
3047 };
3048
3049 struct vki_iw_point
3050 {
3051 void __user *pointer;
3052 __vki_u16 length;
3053 __vki_u16 flags;
3054 };
3055
3056 struct vki_iw_freq
3057 {
3058 __vki_s32 m;
3059 __vki_s16 e;
3060 __vki_u8 i;
3061 __vki_u8 flags;
3062 };
3063
3064 struct vki_iw_quality
3065 {
3066 __vki_u8 qual;
3067
3068 __vki_u8 level;
3069 __vki_u8 noise;
3070 __vki_u8 updated;
3071 };
3072
3073 union vki_iwreq_data
3074 {
3075
3076 char name[VKI_IFNAMSIZ];
3077
3078
3079
3080 struct vki_iw_point essid;
3081 struct vki_iw_param nwid;
3082 struct vki_iw_freq freq;
3083
3084
3085
3086 struct vki_iw_param sens;
3087 struct vki_iw_param bitrate;
3088 struct vki_iw_param txpower;
3089 struct vki_iw_param rts;
3090 struct vki_iw_param frag;
3091 __vki_u32 mode;
3092 struct vki_iw_param retry;
3093
3094 struct vki_iw_point encoding;
3095 struct vki_iw_param power;
3096 struct vki_iw_quality qual;
3097
3098 struct vki_sockaddr ap_addr;
3099 struct vki_sockaddr addr;
3100
3101 struct vki_iw_param param;
3102 struct vki_iw_point data;
3103 };
3104
3105 struct vki_iwreq
3106 {
3107 union
3108 {
3109 char ifrn_name[VKI_IFNAMSIZ];
3110 } ifr_ifrn;
3111
3112
3113 union vki_iwreq_data u;
3114 };
3115
3116
3117
3118
3119
3120 struct vki_perf_event_attr {
3121
3122
3123
3124
3125 __vki_u32 type;
3126
3127
3128
3129
3130 __vki_u32 size;
3131
3132
3133
3134
3135 __vki_u64 config;
3136
3137 union {
3138 __vki_u64 sample_period;
3139 __vki_u64 sample_freq;
3140 };
3141
3142 __vki_u64 sample_type;
3143 __vki_u64 read_format;
3144
3145 __vki_u64 disabled : 1,
3146 inherit : 1,
3147 pinned : 1,
3148 exclusive : 1,
3149 exclude_user : 1,
3150 exclude_kernel : 1,
3151 exclude_hv : 1,
3152 exclude_idle : 1,
3153 mmap : 1,
3154 comm : 1,
3155 freq : 1,
3156 inherit_stat : 1,
3157 enable_on_exec : 1,
3158 task : 1,
3159 watermark : 1,
3160
3161
3162
3163
3164
3165
3166
3167
3168
3169
3170 precise_ip : 2,
3171 mmap_data : 1,
3172 sample_id_all : 1,
3173
3174 __reserved_1 : 45;
3175
3176 union {
3177 __vki_u32 wakeup_events;
3178 __vki_u32 wakeup_watermark;
3179 };
3180
3181 __vki_u32 bp_type;
3182 union {
3183 __vki_u64 bp_addr;
3184 __vki_u64 config1;
3185 };
3186 union {
3187 __vki_u64 bp_len;
3188 __vki_u64 config2;
3189 };
3190 };
3191
3192 #define VKI_PERF_EVENT_IOC_ENABLE _VKI_IO ('$', 0)
3193 #define VKI_PERF_EVENT_IOC_DISABLE _VKI_IO ('$', 1)
3194 #define VKI_PERF_EVENT_IOC_REFRESH _VKI_IO ('$', 2)
3195 #define VKI_PERF_EVENT_IOC_RESET _VKI_IO ('$', 3)
3196 #define VKI_PERF_EVENT_IOC_PERIOD _VKI_IOW('$', 4, __vki_u64)
3197 #define VKI_PERF_EVENT_IOC_SET_OUTPUT _VKI_IO ('$', 5)
3198 #define VKI_PERF_EVENT_IOC_SET_FILTER _VKI_IOW('$', 6, char *)
3199 #define VKI_PERF_EVENT_IOC_ID _VKI_IOR('$', 7, __vki_u64 *)
3200 #define VKI_PERF_EVENT_IOC_SET_BPF _VKI_IOW('$', 8, __vki_u32)
3201
3202
3203
3204
3205
3206 struct vki_getcpu_cache {
3207 unsigned long blob[128 / sizeof(long)];
3208 };
3209
3210
3211
3212
3213
3214
3215
3216
3217
3218 #define VKI_EVIOCGNAME(len) _VKI_IOC(_VKI_IOC_READ, 'E', 0x06, len)
3219 #define VKI_EVIOCGPHYS(len) _VKI_IOC(_VKI_IOC_READ, 'E', 0x07, len)
3220 #define VKI_EVIOCGUNIQ(len) _VKI_IOC(_VKI_IOC_READ, 'E', 0x08, len)
3221
3222 #define VKI_EVIOCGKEY(len) _VKI_IOC(_VKI_IOC_READ, 'E', 0x18, len)
3223 #define VKI_EVIOCGLED(len) _VKI_IOC(_VKI_IOC_READ, 'E', 0x19, len)
3224 #define VKI_EVIOCGSND(len) _VKI_IOC(_VKI_IOC_READ, 'E', 0x1a, len)
3225 #define VKI_EVIOCGSW(len) _VKI_IOC(_VKI_IOC_READ, 'E', 0x1b, len)
3226
3227 #define VKI_EVIOCGBIT(ev,len) _VKI_IOC(_VKI_IOC_READ, 'E', 0x20 + ev, len)
3228
3229
3230
3231
3232
3233 #define VKI_EV_SYN 0x00
3234 #define VKI_EV_KEY 0x01
3235 #define VKI_EV_REL 0x02
3236 #define VKI_EV_ABS 0x03
3237 #define VKI_EV_MSC 0x04
3238 #define VKI_EV_SW 0x05
3239 #define VKI_EV_LED 0x11
3240 #define VKI_EV_SND 0x12
3241 #define VKI_EV_REP 0x14
3242 #define VKI_EV_FF 0x15
3243 #define VKI_EV_PWR 0x16
3244 #define VKI_EV_FF_STATUS 0x17
3245 #define VKI_EV_MAX 0x1f
3246 #define VKI_EV_CNT (VKI_EV_MAX+1)
3247
3248
3249
3250
3251
3252 #ifndef VKI_FIOQSIZE
3253 #define VKI_FIOQSIZE 0x5460
3254 #endif
3255
3256 #ifndef VKI_TIOCSIG
3257 #define VKI_TIOCSIG _VKI_IOW('T', 0x36, int)
3258 #endif
3259
3260
3261
3262
3263
3264 #if defined(VGPV_arm_linux_android) || defined(VGPV_x86_linux_android) \
3265 || defined(VGPV_mips32_linux_android) \
3266 || defined(VGPV_arm64_linux_android)
3267
3268 #define VKI_ASHMEM_NAME_LEN 256
3269
3270 #define VKI_ASHMEM_NAME_DEF "dev/ashmem"
3271
3272 #define VKI_ASHMEM_NOT_PURGED 0
3273 #define VKI_ASHMEM_WAS_PURGED 1
3274
3275 #define VKI_ASHMEM_IS_UNPINNED 0
3276 #define VKI_ASHMEM_IS_PINNED 1
3277
3278 struct vki_ashmem_pin {
3279 vki_uint32_t offset;
3280 vki_uint32_t len;
3281 };
3282
3283 #define __VKI_ASHMEMIOC 0x77
3284
3285 #define VKI_ASHMEM_SET_NAME _VKI_IOW(__VKI_ASHMEMIOC, 1, char[VKI_ASHMEM_NAME_LEN])
3286 #define VKI_ASHMEM_GET_NAME _VKI_IOR(__VKI_ASHMEMIOC, 2, char[VKI_ASHMEM_NAME_LEN])
3287 #define VKI_ASHMEM_SET_SIZE _VKI_IOW(__VKI_ASHMEMIOC, 3, vki_size_t)
3288 #define VKI_ASHMEM_GET_SIZE _VKI_IO(__VKI_ASHMEMIOC, 4)
3289 #define VKI_ASHMEM_SET_PROT_MASK _VKI_IOW(__VKI_ASHMEMIOC, 5, unsigned long)
3290 #define VKI_ASHMEM_GET_PROT_MASK _VKI_IO(__VKI_ASHMEMIOC, 6)
3291 #define VKI_ASHMEM_PIN _VKI_IOW(__VKI_ASHMEMIOC, 7, struct vki_ashmem_pin)
3292 #define VKI_ASHMEM_UNPIN _VKI_IOW(__VKI_ASHMEMIOC, 8, struct vki_ashmem_pin)
3293 #define VKI_ASHMEM_GET_PIN_STATUS _VKI_IO(__VKI_ASHMEMIOC, 9)
3294 #define VKI_ASHMEM_PURGE_ALL_CACHES _VKI_IO(__VKI_ASHMEMIOC, 10)
3295
3296
3297
3298
3299
3300 struct vki_binder_write_read {
3301 signed long write_size;
3302 signed long write_consumed;
3303 unsigned long write_buffer;
3304 signed long read_size;
3305 signed long read_consumed;
3306 unsigned long read_buffer;
3307 };
3308
3309 struct vki_binder_version {
3310 signed long protocol_version;
3311 };
3312
3313 #define VKI_BINDER_WRITE_READ _VKI_IOWR('b', 1, struct vki_binder_write_read)
3314 #define VKI_BINDER_SET_IDLE_TIMEOUT _VKI_IOW('b', 3, vki_int64_t)
3315 #define VKI_BINDER_SET_MAX_THREADS _VKI_IOW('b', 5, vki_size_t)
3316 #define VKI_BINDER_SET_IDLE_PRIORITY _VKI_IOW('b', 6, int)
3317 #define VKI_BINDER_SET_CONTEXT_MGR _VKI_IOW('b', 7, int)
3318 #define VKI_BINDER_THREAD_EXIT _VKI_IOW('b', 8, int)
3319 #define VKI_BINDER_VERSION _VKI_IOWR('b', 9, struct vki_binder_version)
3320
3321 #endif
3322
3323
3324
3325
3326
3327 typedef struct {
3328 __vki_u8 b[6];
3329 } __vki_packed vki_bdaddr_t;
3330
3331
3332
3333
3334
3335 #define VKI_HCIDEVUP _VKI_IOW('H', 201, int)
3336 #define VKI_HCIDEVDOWN _VKI_IOW('H', 202, int)
3337 #define VKI_HCIDEVRESET _VKI_IOW('H', 203, int)
3338 #define VKI_HCIDEVRESTAT _VKI_IOW('H', 204, int)
3339
3340 #define VKI_HCIGETDEVLIST _VKI_IOR('H', 210, int)
3341
3342 struct vki_hci_dev_req {
3343 __vki_u16 dev_id;
3344 __vki_u32 dev_opt;
3345 };
3346
3347 struct vki_hci_dev_list_req {
3348 __vki_u16 dev_num;
3349 struct vki_hci_dev_req dev_req[0];
3350 };
3351
3352 #define VKI_HCIGETDEVINFO _VKI_IOR('H', 211, int)
3353 #define VKI_HCIGETCONNLIST _VKI_IOR('H', 212, int)
3354 #define VKI_HCIGETCONNINFO _VKI_IOR('H', 213, int)
3355 #define VKI_HCIGETAUTHINFO _VKI_IOR('H', 215, int)
3356
3357 #define VKI_HCISETRAW _VKI_IOW('H', 220, int)
3358 #define VKI_HCISETSCAN _VKI_IOW('H', 221, int)
3359 #define VKI_HCISETAUTH _VKI_IOW('H', 222, int)
3360 #define VKI_HCISETENCRYPT _VKI_IOW('H', 223, int)
3361 #define VKI_HCISETPTYPE _VKI_IOW('H', 224, int)
3362 #define VKI_HCISETLINKPOL _VKI_IOW('H', 225, int)
3363 #define VKI_HCISETLINKMODE _VKI_IOW('H', 226, int)
3364 #define VKI_HCISETACLMTU _VKI_IOW('H', 227, int)
3365 #define VKI_HCISETSCOMTU _VKI_IOW('H', 228, int)
3366
3367 #define VKI_HCIBLOCKADDR _VKI_IOW('H', 230, int)
3368 #define VKI_HCIUNBLOCKADDR _VKI_IOW('H', 231, int)
3369
3370 #define VKI_HCIINQUIRY _VKI_IOR('H', 240, int)
3371
3372 struct vki_inquiry_info {
3373 vki_bdaddr_t bdaddr;
3374 __vki_u8 pscan_rep_mode;
3375 __vki_u8 pscan_period_mode;
3376 __vki_u8 pscan_mode;
3377 __vki_u8 dev_class[3];
3378 __vki_le16 clock_offset;
3379 } __vki_packed;
3380
3381 struct vki_hci_inquiry_req {
3382 __vki_u16 dev_id;
3383 __vki_u16 flags;
3384 __vki_u8 lap[3];
3385 __vki_u8 length;
3386 __vki_u8 num_rsp;
3387 };
3388
3389
3390
3391
3392
3393 struct vki_sockaddr_rc {
3394 vki_sa_family_t rc_family;
3395 vki_bdaddr_t rc_bdaddr;
3396 __vki_u8 rc_channel;
3397 };
3398
3399
3400
3401
3402 #define KVMIO 0xAE
3403
3404 #define VKI_KVM_GET_API_VERSION _VKI_IO(KVMIO, 0x00)
3405 #define VKI_KVM_CREATE_VM _VKI_IO(KVMIO, 0x01)
3406 #define VKI_KVM_CHECK_EXTENSION _VKI_IO(KVMIO, 0x03)
3407 #define VKI_KVM_GET_VCPU_MMAP_SIZE _VKI_IO(KVMIO, 0x04)
3408 #define VKI_KVM_S390_ENABLE_SIE _VKI_IO(KVMIO, 0x06)
3409 #define VKI_KVM_CREATE_VCPU _VKI_IO(KVMIO, 0x41)
3410 #define VKI_KVM_SET_NR_MMU_PAGES _VKI_IO(KVMIO, 0x44)
3411 #define VKI_KVM_GET_NR_MMU_PAGES _VKI_IO(KVMIO, 0x45)
3412 #define VKI_KVM_SET_TSS_ADDR _VKI_IO(KVMIO, 0x47)
3413 #define VKI_KVM_CREATE_IRQCHIP _VKI_IO(KVMIO, 0x60)
3414 #define VKI_KVM_CREATE_PIT _VKI_IO(KVMIO, 0x64)
3415 #define VKI_KVM_REINJECT_CONTROL _VKI_IO(KVMIO, 0x71)
3416 #define VKI_KVM_SET_BOOT_CPU_ID _VKI_IO(KVMIO, 0x78)
3417 #define VKI_KVM_SET_TSC_KHZ _VKI_IO(KVMIO, 0xa2)
3418 #define VKI_KVM_GET_TSC_KHZ _VKI_IO(KVMIO, 0xa3)
3419 #define VKI_KVM_RUN _VKI_IO(KVMIO, 0x80)
3420 #define VKI_KVM_S390_INITIAL_RESET _VKI_IO(KVMIO, 0x97)
3421 #define VKI_KVM_NMI _VKI_IO(KVMIO, 0x9a)
3422 #define VKI_KVM_KVMCLOCK_CTRL _VKI_IO(KVMIO, 0xad)
3423
3424 struct vki_kvm_s390_mem_op {
3425
3426 __vki_u64 gaddr;
3427 __vki_u64 flags;
3428 __vki_u32 size;
3429 __vki_u32 op;
3430 __vki_u64 buf;
3431 __vki_u8 ar;
3432 __vki_u8 reserved[31];
3433 };
3434
3435 #define VKI_KVM_S390_MEMOP_LOGICAL_READ 0
3436 #define VKI_KVM_S390_MEMOP_LOGICAL_WRITE 1
3437 #define VKI_KVM_S390_MEMOP_F_CHECK_ONLY (1ULL << 0)
3438 #define VKI_KVM_S390_MEMOP_F_INJECT_EXCEPTION (1ULL << 1)
3439
3440 #define VKI_KVM_S390_MEM_OP _VKI_IOW(KVMIO, 0xb1, struct vki_kvm_s390_mem_op)
3441
3442
3443
3444
3445
3446 struct vki_hwtstamp_config {
3447 int flags;
3448 int tx_type;
3449 int rx_filter;
3450 };
3451
3452
3453
3454
3455
3456 #define VKI_UINPUT_IOCTL_BASE 'U'
3457 #define VKI_UI_DEV_CREATE _VKI_IO(VKI_UINPUT_IOCTL_BASE, 1)
3458 #define VKI_UI_DEV_DESTROY _VKI_IO(VKI_UINPUT_IOCTL_BASE, 2)
3459
3460 #define VKI_UI_SET_EVBIT _VKI_IOW(VKI_UINPUT_IOCTL_BASE, 100, int)
3461 #define VKI_UI_SET_KEYBIT _VKI_IOW(VKI_UINPUT_IOCTL_BASE, 101, int)
3462 #define VKI_UI_SET_RELBIT _VKI_IOW(VKI_UINPUT_IOCTL_BASE, 102, int)
3463 #define VKI_UI_SET_ABSBIT _VKI_IOW(VKI_UINPUT_IOCTL_BASE, 103, int)
3464 #define VKI_UI_SET_MSCBIT _VKI_IOW(VKI_UINPUT_IOCTL_BASE, 104, int)
3465 #define VKI_UI_SET_LEDBIT _VKI_IOW(VKI_UINPUT_IOCTL_BASE, 105, int)
3466 #define VKI_UI_SET_SNDBIT _VKI_IOW(VKI_UINPUT_IOCTL_BASE, 106, int)
3467 #define VKI_UI_SET_FFBIT _VKI_IOW(VKI_UINPUT_IOCTL_BASE, 107, int)
3468 #define VKI_UI_SET_SWBIT _VKI_IOW(VKI_UINPUT_IOCTL_BASE, 109, int)
3469 #define VKI_UI_SET_PROPBIT _VKI_IOW(VKI_UINPUT_IOCTL_BASE, 110, int)
3470
3471
3472
3473
3474
3475 #define VKI_IB_IOCTL_MAGIC 0x1b
3476
3477 #define VKI_IB_USER_MAD_REGISTER_AGENT _VKI_IOWR(VKI_IB_IOCTL_MAGIC, 1, \
3478 struct ib_user_mad_reg_req)
3479
3480 #define VKI_IB_USER_MAD_UNREGISTER_AGENT _VKI_IOW(VKI_IB_IOCTL_MAGIC, 2, __u32)
3481
3482 #define VKI_IB_USER_MAD_ENABLE_PKEY _VKI_IO(VKI_IB_IOCTL_MAGIC, 3)
3483
3484
3485
3486
3487
3488 #define VKI_TUNSETNOCSUM _VKI_IOW('T', 200, int)
3489 #define VKI_TUNSETDEBUG _VKI_IOW('T', 201, int)
3490 #define VKI_TUNSETIFF _VKI_IOW('T', 202, int)
3491 #define VKI_TUNSETPERSIST _VKI_IOW('T', 203, int)
3492 #define VKI_TUNSETOWNER _VKI_IOW('T', 204, int)
3493 #define VKI_TUNSETLINK _VKI_IOW('T', 205, int)
3494 #define VKI_TUNSETGROUP _VKI_IOW('T', 206, int)
3495 #define VKI_TUNGETFEATURES _VKI_IOR('T', 207, unsigned int)
3496 #define VKI_TUNSETOFFLOAD _VKI_IOW('T', 208, unsigned int)
3497 #define VKI_TUNSETTXFILTER _VKI_IOW('T', 209, unsigned int)
3498 #define VKI_TUNGETIFF _VKI_IOR('T', 210, unsigned int)
3499 #define VKI_TUNGETSNDBUF _VKI_IOR('T', 211, int)
3500 #define VKI_TUNSETSNDBUF _VKI_IOW('T', 212, int)
3501
3502
3503 #define VKI_TUNGETVNETHDRSZ _VKI_IOR('T', 215, int)
3504 #define VKI_TUNSETVNETHDRSZ _VKI_IOW('T', 216, int)
3505 #define VKI_TUNSETQUEUE _VKI_IOW('T', 217, int)
3506 #define VKI_TUNSETIFINDEX _VKI_IOW('T', 218, unsigned int)
3507
3508
3509
3510
3511
3512
3513 #define VKI_VHOST_VIRTIO 0xAF
3514 #define VKI_VHOST_SET_OWNER _VKI_IO(VKI_VHOST_VIRTIO, 0x01)
3515 #define VKI_VHOST_RESET_OWNER _VKI_IO(VKI_VHOST_VIRTIO, 0x02)
3516
3517
3518
3519
3520
3521 typedef unsigned long __vki_xen_pfn_t;
3522
3523 struct vki_xen_privcmd_hypercall {
3524 __vki_u64 op;
3525 __vki_u64 arg[5];
3526 };
3527
3528 struct vki_xen_privcmd_mmap_entry {
3529 __vki_u64 va;
3530 __vki_u64 mfn;
3531 __vki_u64 npages;
3532 };
3533
3534 struct vki_xen_privcmd_mmap {
3535 int num;
3536 __vki_u16 dom;
3537 struct vki_xen_privcmd_mmap_entry *entry;
3538 };
3539
3540 struct vki_xen_privcmd_mmapbatch {
3541 int num;
3542 __vki_u16 dom;
3543 __vki_u64 addr;
3544 __vki_xen_pfn_t *arr;
3545 };
3546
3547 struct vki_xen_privcmd_mmapbatch_v2 {
3548 unsigned int num;
3549 __vki_u16 dom;
3550 __vki_u64 addr;
3551 const __vki_xen_pfn_t *arr;
3552 int __user *err;
3553 };
3554
3555 #define VKI_XEN_IOCTL_PRIVCMD_HYPERCALL _VKI_IOC(_VKI_IOC_NONE, 'P', 0, sizeof(struct vki_xen_privcmd_hypercall))
3556 #define VKI_XEN_IOCTL_PRIVCMD_MMAP _VKI_IOC(_VKI_IOC_NONE, 'P', 2, sizeof(struct vki_xen_privcmd_mmap))
3557
3558 #define VKI_XEN_IOCTL_PRIVCMD_MMAPBATCH _VKI_IOC(_VKI_IOC_NONE, 'P', 3, sizeof(struct vki_xen_privcmd_mmapbatch))
3559 #define VKI_XEN_IOCTL_PRIVCMD_MMAPBATCH_V2 _VKI_IOC(_VKI_IOC_NONE, 'P', 4, sizeof(struct vki_xen_privcmd_mmapbatch_v2))
3560
3561
3562
3563
3564
3565 #define VKI_XEN_IOCTL_EVTCHN_BIND_VIRQ \
3566 _VKI_IOC(_VKI_IOC_NONE, 'E', 0, sizeof(struct vki_xen_ioctl_evtchn_bind_virq))
3567 struct vki_xen_ioctl_evtchn_bind_virq {
3568 vki_uint32_t virq;
3569 };
3570
3571 #define VKI_XEN_IOCTL_EVTCHN_BIND_INTERDOMAIN \
3572 _VKI_IOC(_VKI_IOC_NONE, 'E', 1, sizeof(struct vki_xen_ioctl_evtchn_bind_interdomain))
3573 struct vki_xen_ioctl_evtchn_bind_interdomain {
3574 vki_uint32_t remote_domain;
3575 vki_uint32_t remote_port;
3576 };
3577
3578 #define VKI_XEN_IOCTL_EVTCHN_BIND_UNBOUND_PORT \
3579 _VKI_IOC(_VKI_IOC_NONE, 'E', 2, sizeof(struct vki_xen_ioctl_evtchn_bind_unbound_port))
3580 struct vki_xen_ioctl_evtchn_bind_unbound_port {
3581 vki_uint32_t remote_domain;
3582 };
3583
3584 #define VKI_XEN_IOCTL_EVTCHN_UNBIND \
3585 _VKI_IOC(_VKI_IOC_NONE, 'E', 3, sizeof(struct vki_xen_ioctl_evtchn_unbind))
3586 struct vki_xen_ioctl_evtchn_unbind {
3587 vki_uint32_t port;
3588 };
3589
3590 #define VKI_XEN_IOCTL_EVTCHN_NOTIFY \
3591 _VKI_IOC(_VKI_IOC_NONE, 'E', 4, sizeof(struct vki_xen_ioctl_evtchn_notify))
3592 struct vki_xen_ioctl_evtchn_notify {
3593 vki_uint32_t port;
3594 };
3595
3596 #define VKI_XEN_IOCTL_EVTCHN_RESET \
3597 _VKI_IOC(_VKI_IOC_NONE, 'E', 5, 0)
3598
3599
3600
3601
3602
3603
3604 struct vki_file_handle {
3605 __vki_u32 handle_bytes;
3606 int handle_type;
3607
3608 unsigned char f_handle[0];
3609 };
3610
3611
3612
3613
3614
3615 struct vki_sock_filter {
3616 __vki_u16 code;
3617 __vki_u8 jt;
3618 __vki_u8 jf;
3619 __vki_u32 k;
3620 };
3621
3622 struct vki_sock_fprog {
3623 __vki_u16 len;
3624 struct vki_sock_filter *filter;
3625 };
3626
3627
3628
3629
3630
3631 struct vki_ethtool_cmd {
3632 __vki_u32 cmd;
3633 __vki_u32 supported;
3634 __vki_u32 advertising;
3635 __vki_u16 speed;
3636 __vki_u8 duplex;
3637 __vki_u8 port;
3638 __vki_u8 phy_address;
3639 __vki_u8 transceiver;
3640 __vki_u8 autoneg;
3641 __vki_u8 mdio_support;
3642 __vki_u32 maxtxpkt;
3643 __vki_u32 maxrxpkt;
3644 __vki_u16 speed_hi;
3645 __vki_u8 eth_tp_mdix;
3646 __vki_u8 eth_tp_mdix_ctrl;
3647 __vki_u32 lp_advertising;
3648 __vki_u32 reserved[2];
3649 };
3650
3651 #define VKI_ETHTOOL_FWVERS_LEN 32
3652 #define VKI_ETHTOOL_BUSINFO_LEN 32
3653
3654 struct vki_ethtool_drvinfo {
3655 __vki_u32 cmd;
3656 char driver[32];
3657 char version[32];
3658 char fw_version[VKI_ETHTOOL_FWVERS_LEN];
3659 char bus_info[VKI_ETHTOOL_BUSINFO_LEN];
3660 char reserved1[32];
3661 char reserved2[12];
3662 __vki_u32 n_priv_flags;
3663 __vki_u32 n_stats;
3664 __vki_u32 testinfo_len;
3665 __vki_u32 eedump_len;
3666 __vki_u32 regdump_len;
3667 };
3668
3669 #define VKI_SOPASS_MAX 6
3670
3671 struct vki_ethtool_wolinfo {
3672 __vki_u32 cmd;
3673 __vki_u32 supported;
3674 __vki_u32 wolopts;
3675 __vki_u8 sopass[VKI_SOPASS_MAX];
3676 };
3677
3678 struct vki_ethtool_value {
3679 __vki_u32 cmd;
3680 __vki_u32 data;
3681 };
3682
3683 struct vki_ethtool_regs {
3684 __vki_u32 cmd;
3685 __vki_u32 version;
3686 __vki_u32 len;
3687 __vki_u8 data[0];
3688 };
3689
3690 struct vki_ethtool_ringparam {
3691 __vki_u32 cmd;
3692 __vki_u32 rx_max_pending;
3693 __vki_u32 rx_mini_max_pending;
3694 __vki_u32 rx_jumbo_max_pending;
3695 __vki_u32 tx_max_pending;
3696 __vki_u32 rx_pending;
3697 __vki_u32 rx_mini_pending;
3698 __vki_u32 rx_jumbo_pending;
3699 __vki_u32 tx_pending;
3700 };
3701
3702 struct vki_ethtool_channels {
3703 __vki_u32 cmd;
3704 __vki_u32 max_rx;
3705 __vki_u32 max_tx;
3706 __vki_u32 max_other;
3707 __vki_u32 max_combined;
3708 __vki_u32 rx_count;
3709 __vki_u32 tx_count;
3710 __vki_u32 other_count;
3711 __vki_u32 combined_count;
3712 };
3713
3714 struct vki_ethtool_sset_info {
3715 __vki_u32 cmd;
3716 __vki_u32 reserved;
3717 __vki_u64 sset_mask;
3718 __vki_u32 data[0];
3719 };
3720
3721 struct vki_ethtool_test {
3722 __vki_u32 cmd;
3723 __vki_u32 flags;
3724 __vki_u32 reserved;
3725 __vki_u32 len;
3726 __vki_u64 data[0];
3727 };
3728
3729 struct vki_ethtool_perm_addr {
3730 __vki_u32 cmd;
3731 __vki_u32 size;
3732 __vki_u8 data[0];
3733 };
3734
3735 struct vki_ethtool_get_features_block {
3736 __vki_u32 available;
3737 __vki_u32 requested;
3738 __vki_u32 active;
3739 __vki_u32 never_changed;
3740 };
3741
3742 struct vki_ethtool_gfeatures {
3743 __vki_u32 cmd;
3744 __vki_u32 size;
3745 struct vki_ethtool_get_features_block features[0];
3746 };
3747
3748 struct vki_ethtool_set_features_block {
3749 __vki_u32 valid;
3750 __vki_u32 requested;
3751 };
3752
3753 struct vki_ethtool_sfeatures {
3754 __vki_u32 cmd;
3755 __vki_u32 size;
3756 struct vki_ethtool_set_features_block features[0];
3757 };
3758
3759 struct vki_ethtool_ts_info {
3760 __vki_u32 cmd;
3761 __vki_u32 so_timestamping;
3762 __vki_s32 phc_index;
3763 __vki_u32 tx_types;
3764 __vki_u32 tx_reserved[3];
3765 __vki_u32 rx_filters;
3766 __vki_u32 rx_reserved[3];
3767 };
3768
3769 #define VKI_ETHTOOL_GSET 0x00000001
3770 #define VKI_ETHTOOL_SSET 0x00000002
3771 #define VKI_ETHTOOL_GDRVINFO 0x00000003
3772 #define VKI_ETHTOOL_GREGS 0x00000004
3773 #define VKI_ETHTOOL_GWOL 0x00000005
3774 #define VKI_ETHTOOL_SWOL 0x00000006
3775 #define VKI_ETHTOOL_GMSGLVL 0x00000007
3776 #define VKI_ETHTOOL_SMSGLVL 0x00000008
3777 #define VKI_ETHTOOL_NWAY_RST 0x00000009
3778 #define VKI_ETHTOOL_GLINK 0x0000000a
3779 #define VKI_ETHTOOL_GRINGPARAM 0x00000010
3780 #define VKI_ETHTOOL_SRINGPARAM 0x00000011
3781 #define VKI_ETHTOOL_GRXCSUM 0x00000014
3782 #define VKI_ETHTOOL_SRXCSUM 0x00000015
3783 #define VKI_ETHTOOL_GTXCSUM 0x00000016
3784 #define VKI_ETHTOOL_STXCSUM 0x00000017
3785 #define VKI_ETHTOOL_GSG 0x00000018
3786
3787 #define VKI_ETHTOOL_SSG 0x00000019
3788
3789 #define VKI_ETHTOOL_TEST 0x0000001a
3790 #define VKI_ETHTOOL_PHYS_ID 0x0000001c
3791 #define VKI_ETHTOOL_GTSO 0x0000001e
3792 #define VKI_ETHTOOL_STSO 0x0000001f
3793 #define VKI_ETHTOOL_GPERMADDR 0x00000020
3794 #define VKI_ETHTOOL_GUFO 0x00000021
3795 #define VKI_ETHTOOL_SUFO 0x00000022
3796 #define VKI_ETHTOOL_GGSO 0x00000023
3797 #define VKI_ETHTOOL_SGSO 0x00000024
3798 #define VKI_ETHTOOL_GFLAGS 0x00000025
3799 #define VKI_ETHTOOL_SFLAGS 0x00000026
3800 #define VKI_ETHTOOL_GGRO 0x0000002b
3801 #define VKI_ETHTOOL_SGRO 0x0000002c
3802 #define VKI_ETHTOOL_RESET 0x00000034
3803 #define VKI_ETHTOOL_GSSET_INFO 0x00000037
3804 #define VKI_ETHTOOL_GFEATURES 0x0000003a
3805 #define VKI_ETHTOOL_SFEATURES 0x0000003b
3806 #define VKI_ETHTOOL_GCHANNELS 0x0000003c
3807 #define VKI_ETHTOOL_SCHANNELS 0x0000003d
3808 #define VKI_ETHTOOL_GET_TS_INFO 0x00000041
3809
3810
3811
3812
3813
3814 typedef int vki_ion_user_handle_t;
3815
3816 struct vki_ion_allocation_data {
3817 vki_size_t len;
3818 vki_size_t align;
3819 unsigned int heap_id_mask;
3820 unsigned int flags;
3821 vki_ion_user_handle_t handle;
3822 };
3823
3824 struct vki_ion_fd_data {
3825 vki_ion_user_handle_t handle;
3826 int fd;
3827 };
3828
3829 struct vki_ion_handle_data {
3830 vki_ion_user_handle_t handle;
3831 };
3832
3833 struct vki_ion_custom_data {
3834 unsigned int cmd;
3835 unsigned long arg;
3836 };
3837
3838 #define VKI_ION_IOC_MAGIC 'I'
3839
3840 #define VKI_ION_IOC_ALLOC \
3841 _VKI_IOWR(VKI_ION_IOC_MAGIC, 0, struct vki_ion_allocation_data)
3842
3843 #define VKI_ION_IOC_FREE \
3844 _VKI_IOWR(VKI_ION_IOC_MAGIC, 1, struct vki_ion_handle_data)
3845
3846 #define VKI_ION_IOC_MAP \
3847 _VKI_IOWR(VKI_ION_IOC_MAGIC, 2, struct vki_ion_fd_data)
3848
3849 #define VKI_ION_IOC_SHARE \
3850 _VKI_IOWR(VKI_ION_IOC_MAGIC, 4, struct vki_ion_fd_data)
3851
3852 #define VKI_ION_IOC_IMPORT \
3853 _VKI_IOWR(VKI_ION_IOC_MAGIC, 5, struct vki_ion_fd_data)
3854
3855 #define VKI_ION_IOC_SYNC \
3856 _VKI_IOWR(VKI_ION_IOC_MAGIC, 7, struct vki_ion_fd_data)
3857
3858 #define VKI_ION_IOC_CUSTOM \
3859 _VKI_IOWR(VKI_ION_IOC_MAGIC, 6, struct vki_ion_custom_data)
3860
3861
3862
3863
3864
3865 struct vki_sync_merge_data {
3866 char name[32];
3867 __vki_s32 fd2;
3868 __vki_s32 fence;
3869 __vki_u32 flags;
3870 __vki_u32 pad;
3871 };
3872
3873 struct vki_sync_fence_info {
3874 char obj_name[32];
3875 char driver_name[32];
3876 __vki_s32 status;
3877 __vki_u32 flags;
3878 __vki_u64 timestamp_ns;
3879 };
3880
3881 struct vki_sync_file_info {
3882 char name[32];
3883 __vki_s32 status;
3884 __vki_u32 flags;
3885 __vki_u32 num_fences;
3886 __vki_u32 pad;
3887 __vki_u64 sync_fence_info;
3888 };
3889
3890 struct vki_sync_set_deadline {
3891 __vki_u64 deadline_ns;
3892 __vki_u64 pad;
3893 };
3894
3895 #define VKI_SYNC_IOC_MAGIC '>'
3896
3897 #define VKI_SYNC_IOC_WAIT \
3898 _VKI_IOW(VKI_SYNC_IOC_MAGIC, 0, __vki_s32)
3899
3900 #define VKI_SYNC_IOC_MERGE \
3901 _VKI_IOWR(VKI_SYNC_IOC_MAGIC, 3, struct vki_sync_merge_data)
3902
3903 #define VKI_SYNC_IOC_FILE_INFO \
3904 _VKI_IOWR(VKI_SYNC_IOC_MAGIC, 4, struct vki_sync_file_info)
3905
3906 #define VKI_SYNC_IOC_SET_DEADLINE \
3907 _VKI_IOW(VKI_SYNC_IOC_MAGIC, 5, struct vki_sync_set_deadline)
3908
3909
3910
3911
3912
3913 struct vki_lu_fid {
3914 __vki_u64 f_seq;
3915 __vki_u32 f_oid;
3916 __vki_u32 f_ver;
3917 };
3918
3919
3920
3921
3922
3923 struct vki_getinfo_fid2path {
3924 struct vki_lu_fid gf_fid;
3925 __vki_u64 gf_recno;
3926 __vki_u32 gf_linkno;
3927 __vki_u32 gf_pathlen;
3928 char gf_path[0];
3929 } __attribute__((packed));
3930
3931
3932
3933
3934
3935 #define VKI_OBD_IOC_DATA_TYPE long
3936
3937
3938
3939
3940
3941 #define VKI_OBD_IOC_FID2PATH \
3942 _VKI_IOWR ('f', 150, VKI_OBD_IOC_DATA_TYPE)
3943 #define VKI_LL_IOC_PATH2FID \
3944 _VKI_IOR ('f', 173, long)
3945
3946
3947
3948
3949
3950 struct vki_getparent {
3951 struct vki_lu_fid gp_fid;
3952 __vki_u32 gp_linkno;
3953 __vki_u32 gp_name_size;
3954 char gp_name[0];
3955 } __attribute__((packed));
3956
3957
3958
3959
3960 #define VKI_LL_IOC_GROUP_LOCK \
3961 _VKI_IOW('f', 158, long)
3962 #define VKI_LL_IOC_GROUP_UNLOCK \
3963 _VKI_IOW('f', 159, long)
3964 #define VKI_LL_IOC_GETPARENT \
3965 _VKI_IOWR('f', 249, struct vki_getparent)
3966
3967
3968 struct vki_v4l2_rect {
3969 __vki_s32 left;
3970 __vki_s32 top;
3971 __vki_u32 width;
3972 __vki_u32 height;
3973 };
3974
3975 struct vki_v4l2_fract {
3976 __vki_u32 numerator;
3977 __vki_u32 denominator;
3978 };
3979
3980 struct vki_v4l2_capability {
3981 __vki_u8 driver[16];
3982 __vki_u8 card[32];
3983 __vki_u8 bus_info[32];
3984 __vki_u32 version;
3985 __vki_u32 capabilities;
3986 __vki_u32 device_caps;
3987 __vki_u32 reserved[3];
3988 };
3989
3990 struct vki_v4l2_pix_format {
3991 __vki_u32 width;
3992 __vki_u32 height;
3993 __vki_u32 pixelformat;
3994 __vki_u32 field;
3995 __vki_u32 bytesperline;
3996 __vki_u32 sizeimage;
3997 __vki_u32 colorspace;
3998 __vki_u32 priv;
3999 __vki_u32 flags;
4000 __vki_u32 ycbcr_enc;
4001 __vki_u32 quantization;
4002 };
4003
4004 struct vki_v4l2_fmtdesc {
4005 __vki_u32 index;
4006 __vki_u32 type;
4007 __vki_u32 flags;
4008 __vki_u8 description[32];
4009 __vki_u32 pixelformat;
4010 __vki_u32 reserved[4];
4011 };
4012
4013 struct vki_v4l2_frmsize_discrete {
4014 __vki_u32 width;
4015 __vki_u32 height;
4016 };
4017
4018 struct vki_v4l2_frmsize_stepwise {
4019 __vki_u32 min_width;
4020 __vki_u32 max_width;
4021 __vki_u32 step_width;
4022 __vki_u32 min_height;
4023 __vki_u32 max_height;
4024 __vki_u32 step_height;
4025 };
4026
4027 struct vki_v4l2_frmsizeenum {
4028 __vki_u32 index;
4029 __vki_u32 pixel_format;
4030 __vki_u32 type;
4031
4032 union {
4033 struct vki_v4l2_frmsize_discrete discrete;
4034 struct vki_v4l2_frmsize_stepwise stepwise;
4035 };
4036
4037 __vki_u32 reserved[2];
4038 };
4039
4040 struct vki_v4l2_frmival_stepwise {
4041 struct vki_v4l2_fract min;
4042 struct vki_v4l2_fract max;
4043 struct vki_v4l2_fract step;
4044 };
4045
4046 struct vki_v4l2_frmivalenum {
4047 __vki_u32 index;
4048 __vki_u32 pixel_format;
4049 __vki_u32 width;
4050 __vki_u32 height;
4051 __vki_u32 type;
4052
4053 union {
4054 struct vki_v4l2_fract discrete;
4055 struct vki_v4l2_frmival_stepwise stepwise;
4056 };
4057
4058 __vki_u32 reserved[2];
4059 };
4060
4061 struct vki_v4l2_timecode {
4062 __vki_u32 type;
4063 __vki_u32 flags;
4064 __vki_u8 frames;
4065 __vki_u8 seconds;
4066 __vki_u8 minutes;
4067 __vki_u8 hours;
4068 __vki_u8 userbits[4];
4069 };
4070
4071 struct vki_v4l2_jpegcompression {
4072 int quality;
4073 int APPn;
4074 int APP_len;
4075 char APP_data[60];
4076 int COM_len;
4077 char COM_data[60];
4078 __vki_u32 jpeg_markers;
4079 };
4080
4081 struct vki_v4l2_requestbuffers {
4082 __vki_u32 count;
4083 __vki_u32 type;
4084 __vki_u32 memory;
4085 __vki_u32 reserved[2];
4086 };
4087
4088 struct vki_v4l2_plane {
4089 __vki_u32 bytesused;
4090 __vki_u32 length;
4091 union {
4092 __vki_u32 mem_offset;
4093 unsigned long userptr;
4094 __vki_s32 fd;
4095 } m;
4096 __vki_u32 data_offset;
4097 __vki_u32 reserved[11];
4098 };
4099
4100 #define VKI_V4L2_MEMORY_MMAP 1
4101 #define VKI_V4L2_MEMORY_DMABUF 4
4102 #define VKI_V4L2_BUF_FLAG_TIMESTAMP_MASK 0x0000e000
4103 #define VKI_V4L2_BUF_FLAG_TIMESTAMP_COPY 0x00004000
4104 struct vki_v4l2_buffer {
4105 __vki_u32 index;
4106 __vki_u32 type;
4107 __vki_u32 bytesused;
4108 __vki_u32 flags;
4109 __vki_u32 field;
4110 struct vki_timeval timestamp;
4111 struct vki_v4l2_timecode timecode;
4112 __vki_u32 sequence;
4113
4114
4115 __vki_u32 memory;
4116 union {
4117 __vki_u32 offset;
4118 unsigned long userptr;
4119 struct vki_v4l2_plane *planes;
4120 __vki_s32 fd;
4121 } m;
4122 __vki_u32 length;
4123 __vki_u32 reserved2;
4124 __vki_u32 reserved;
4125 };
4126
4127 struct vki_v4l2_exportbuffer {
4128 __vki_u32 type;
4129 __vki_u32 index;
4130 __vki_u32 plane;
4131 __vki_u32 flags;
4132 __vki_s32 fd;
4133 __vki_u32 reserved[11];
4134 };
4135
4136 struct vki_v4l2_framebuffer {
4137 __vki_u32 capability;
4138 __vki_u32 flags;
4139 void *base;
4140 struct {
4141 __vki_u32 width;
4142 __vki_u32 height;
4143 __vki_u32 pixelformat;
4144 __vki_u32 field;
4145 __vki_u32 bytesperline;
4146 __vki_u32 sizeimage;
4147 __vki_u32 colorspace;
4148 __vki_u32 priv;
4149 } fmt;
4150 };
4151
4152 struct vki_v4l2_clip {
4153 struct vki_v4l2_rect c;
4154 struct vki_v4l2_clip __user *next;
4155 };
4156
4157 struct vki_v4l2_window {
4158 struct vki_v4l2_rect w;
4159 __vki_u32 field;
4160 __vki_u32 chromakey;
4161 struct vki_v4l2_clip __user *clips;
4162 __vki_u32 clipcount;
4163 void __user *bitmap;
4164 __vki_u8 global_alpha;
4165 };
4166
4167 struct vki_v4l2_captureparm {
4168 __vki_u32 capability;
4169 __vki_u32 capturemode;
4170 struct vki_v4l2_fract timeperframe;
4171 __vki_u32 extendedmode;
4172 __vki_u32 readbuffers;
4173 __vki_u32 reserved[4];
4174 };
4175
4176 struct vki_v4l2_outputparm {
4177 __vki_u32 capability;
4178 __vki_u32 outputmode;
4179 struct vki_v4l2_fract timeperframe;
4180 __vki_u32 extendedmode;
4181 __vki_u32 writebuffers;
4182 __vki_u32 reserved[4];
4183 };
4184
4185 struct vki_v4l2_cropcap {
4186 __vki_u32 type;
4187 struct vki_v4l2_rect bounds;
4188 struct vki_v4l2_rect defrect;
4189 struct vki_v4l2_fract pixelaspect;
4190 };
4191
4192 struct vki_v4l2_crop {
4193 __vki_u32 type;
4194 struct vki_v4l2_rect c;
4195 };
4196
4197 struct vki_v4l2_selection {
4198 __vki_u32 type;
4199 __vki_u32 target;
4200 __vki_u32 flags;
4201 struct vki_v4l2_rect r;
4202 __vki_u32 reserved[9];
4203 };
4204
4205 typedef __vki_u64 vki_v4l2_std_id;
4206
4207 struct vki_v4l2_standard {
4208 __vki_u32 index;
4209 vki_v4l2_std_id id;
4210 __vki_u8 name[24];
4211 struct vki_v4l2_fract frameperiod;
4212 __vki_u32 framelines;
4213 __vki_u32 reserved[4];
4214 };
4215
4216 struct vki_v4l2_bt_timings {
4217 __vki_u32 width;
4218 __vki_u32 height;
4219 __vki_u32 interlaced;
4220 __vki_u32 polarities;
4221 __vki_u64 pixelclock;
4222 __vki_u32 hfrontporch;
4223 __vki_u32 hsync;
4224 __vki_u32 hbackporch;
4225 __vki_u32 vfrontporch;
4226 __vki_u32 vsync;
4227 __vki_u32 vbackporch;
4228 __vki_u32 il_vfrontporch;
4229 __vki_u32 il_vsync;
4230 __vki_u32 il_vbackporch;
4231 __vki_u32 standards;
4232 __vki_u32 flags;
4233 __vki_u32 reserved[14];
4234 } __attribute__ ((packed));
4235
4236 struct vki_v4l2_dv_timings {
4237 __vki_u32 type;
4238 union {
4239 struct vki_v4l2_bt_timings bt;
4240 __vki_u32 reserved[32];
4241 };
4242 } __attribute__ ((packed));
4243
4244 struct vki_v4l2_enum_dv_timings {
4245 __vki_u32 index;
4246 __vki_u32 pad;
4247 __vki_u32 reserved[2];
4248 struct vki_v4l2_dv_timings timings;
4249 };
4250
4251 struct vki_v4l2_bt_timings_cap {
4252 __vki_u32 min_width;
4253 __vki_u32 max_width;
4254 __vki_u32 min_height;
4255 __vki_u32 max_height;
4256 __vki_u64 min_pixelclock;
4257 __vki_u64 max_pixelclock;
4258 __vki_u32 standards;
4259 __vki_u32 capabilities;
4260 __vki_u32 reserved[16];
4261 } __attribute__ ((packed));
4262
4263 struct vki_v4l2_dv_timings_cap {
4264 __vki_u32 type;
4265 __vki_u32 pad;
4266 __vki_u32 reserved[2];
4267 union {
4268 struct vki_v4l2_bt_timings_cap bt;
4269 __vki_u32 raw_data[32];
4270 };
4271 };
4272
4273 struct vki_v4l2_input {
4274 __vki_u32 index;
4275 __vki_u8 name[32];
4276 __vki_u32 type;
4277 __vki_u32 audioset;
4278 __vki_u32 tuner;
4279 vki_v4l2_std_id std;
4280 __vki_u32 status;
4281 __vki_u32 capabilities;
4282 __vki_u32 reserved[3];
4283 };
4284
4285 struct vki_v4l2_output {
4286 __vki_u32 index;
4287 __vki_u8 name[32];
4288 __vki_u32 type;
4289 __vki_u32 audioset;
4290 __vki_u32 modulator;
4291 vki_v4l2_std_id std;
4292 __vki_u32 capabilities;
4293 __vki_u32 reserved[3];
4294 };
4295
4296 struct vki_v4l2_control {
4297 __vki_u32 id;
4298 __vki_s32 value;
4299 };
4300
4301 struct vki_v4l2_ext_control {
4302 __vki_u32 id;
4303 __vki_u32 size;
4304 __vki_u32 reserved2[1];
4305 union {
4306 __vki_s32 value;
4307 __vki_s64 value64;
4308 char *string;
4309 __vki_u8 *p_u8;
4310 __vki_u16 *p_u16;
4311 __vki_u32 *p_u32;
4312 void *ptr;
4313 };
4314 } __attribute__ ((packed));
4315
4316 struct vki_v4l2_ext_controls {
4317 __vki_u32 ctrl_class;
4318 __vki_u32 count;
4319 __vki_u32 error_idx;
4320 __vki_u32 reserved[2];
4321 struct vki_v4l2_ext_control *controls;
4322 };
4323
4324 struct vki_v4l2_queryctrl {
4325 __vki_u32 id;
4326 __vki_u32 type;
4327 __vki_u8 name[32];
4328 __vki_s32 minimum;
4329 __vki_s32 maximum;
4330 __vki_s32 step;
4331 __vki_s32 default_value;
4332 __vki_u32 flags;
4333 __vki_u32 reserved[2];
4334 };
4335
4336 #define VKI_V4L2_CTRL_MAX_DIMS (4)
4337 struct vki_v4l2_query_ext_ctrl {
4338 __vki_u32 id;
4339 __vki_u32 type;
4340 char name[32];
4341 __vki_s64 minimum;
4342 __vki_s64 maximum;
4343 __vki_u64 step;
4344 __vki_s64 default_value;
4345 __vki_u32 flags;
4346 __vki_u32 elem_size;
4347 __vki_u32 elems;
4348 __vki_u32 nr_of_dims;
4349 __vki_u32 dims[VKI_V4L2_CTRL_MAX_DIMS];
4350 __vki_u32 reserved[32];
4351 };
4352
4353 struct vki_v4l2_querymenu {
4354 __vki_u32 id;
4355 __vki_u32 index;
4356 union {
4357 __vki_u8 name[32];
4358 __vki_s64 value;
4359 };
4360 __vki_u32 reserved;
4361 } __attribute__ ((packed));
4362
4363 struct vki_v4l2_tuner {
4364 __vki_u32 index;
4365 __vki_u8 name[32];
4366 __vki_u32 type;
4367 __vki_u32 capability;
4368 __vki_u32 rangelow;
4369 __vki_u32 rangehigh;
4370 __vki_u32 rxsubchans;
4371 __vki_u32 audmode;
4372 __vki_s32 signal;
4373 __vki_s32 afc;
4374 __vki_u32 reserved[4];
4375 };
4376
4377 struct vki_v4l2_modulator {
4378 __vki_u32 index;
4379 __vki_u8 name[32];
4380 __vki_u32 capability;
4381 __vki_u32 rangelow;
4382 __vki_u32 rangehigh;
4383 __vki_u32 txsubchans;
4384 __vki_u32 reserved[4];
4385 };
4386
4387 struct vki_v4l2_frequency {
4388 __vki_u32 tuner;
4389 __vki_u32 type;
4390 __vki_u32 frequency;
4391 __vki_u32 reserved[8];
4392 };
4393
4394 struct vki_v4l2_frequency_band {
4395 __vki_u32 tuner;
4396 __vki_u32 type;
4397 __vki_u32 index;
4398 __vki_u32 capability;
4399 __vki_u32 rangelow;
4400 __vki_u32 rangehigh;
4401 __vki_u32 modulation;
4402 __vki_u32 reserved[9];
4403 };
4404
4405 struct vki_v4l2_hw_freq_seek {
4406 __vki_u32 tuner;
4407 __vki_u32 type;
4408 __vki_u32 seek_upward;
4409 __vki_u32 wrap_around;
4410 __vki_u32 spacing;
4411 __vki_u32 rangelow;
4412 __vki_u32 rangehigh;
4413 __vki_u32 reserved[5];
4414 };
4415
4416 struct vki_v4l2_audio {
4417 __vki_u32 index;
4418 __vki_u8 name[32];
4419 __vki_u32 capability;
4420 __vki_u32 mode;
4421 __vki_u32 reserved[2];
4422 };
4423
4424 struct vki_v4l2_audioout {
4425 __vki_u32 index;
4426 __vki_u8 name[32];
4427 __vki_u32 capability;
4428 __vki_u32 mode;
4429 __vki_u32 reserved[2];
4430 };
4431
4432 struct vki_v4l2_enc_idx_entry {
4433 __vki_u64 offset;
4434 __vki_u64 pts;
4435 __vki_u32 length;
4436 __vki_u32 flags;
4437 __vki_u32 reserved[2];
4438 };
4439
4440 #define VKI_V4L2_ENC_IDX_ENTRIES (64)
4441 struct vki_v4l2_enc_idx {
4442 __vki_u32 entries;
4443 __vki_u32 entries_cap;
4444 __vki_u32 reserved[4];
4445 struct vki_v4l2_enc_idx_entry entry[VKI_V4L2_ENC_IDX_ENTRIES];
4446 };
4447
4448 struct vki_v4l2_encoder_cmd {
4449 __vki_u32 cmd;
4450 __vki_u32 flags;
4451 union {
4452 struct {
4453 __vki_u32 data[8];
4454 } raw;
4455 };
4456 };
4457
4458 struct vki_v4l2_decoder_cmd {
4459 __vki_u32 cmd;
4460 __vki_u32 flags;
4461 union {
4462 struct {
4463 __vki_u64 pts;
4464 } stop;
4465
4466 struct {
4467 __vki_s32 speed;
4468 __vki_u32 format;
4469 } start;
4470
4471 struct {
4472 __vki_u32 data[16];
4473 } raw;
4474 };
4475 };
4476
4477 struct vki_v4l2_vbi_format {
4478 __vki_u32 sampling_rate;
4479 __vki_u32 offset;
4480 __vki_u32 samples_per_line;
4481 __vki_u32 sample_format;
4482 __vki_s32 start[2];
4483 __vki_u32 count[2];
4484 __vki_u32 flags;
4485 __vki_u32 reserved[2];
4486 };
4487
4488 struct vki_v4l2_sliced_vbi_format {
4489 __vki_u16 service_set;
4490 __vki_u16 service_lines[2][24];
4491 __vki_u32 io_size;
4492 __vki_u32 reserved[2];
4493 };
4494
4495 struct vki_v4l2_sliced_vbi_cap {
4496 __vki_u16 service_set;
4497 __vki_u16 service_lines[2][24];
4498 __vki_u32 type;
4499 __vki_u32 reserved[3];
4500 };
4501
4502 struct vki_v4l2_sliced_vbi_data {
4503 __vki_u32 id;
4504 __vki_u32 field;
4505 __vki_u32 line;
4506 __vki_u32 reserved;
4507 __vki_u8 data[48];
4508 };
4509
4510 struct vki_v4l2_plane_pix_format {
4511 __vki_u32 sizeimage;
4512 __vki_u32 bytesperline;
4513 __vki_u16 reserved[6];
4514 } __attribute__ ((packed));
4515
4516 #define VKI_VIDEO_MAX_PLANES 8
4517
4518 struct vki_v4l2_pix_format_mplane {
4519 __vki_u32 width;
4520 __vki_u32 height;
4521 __vki_u32 pixelformat;
4522 __vki_u32 field;
4523 __vki_u32 colorspace;
4524
4525 struct vki_v4l2_plane_pix_format plane_fmt[VKI_VIDEO_MAX_PLANES];
4526 __vki_u8 num_planes;
4527 __vki_u8 flags;
4528 __vki_u8 ycbcr_enc;
4529 __vki_u8 quantization;
4530 __vki_u8 reserved[8];
4531 } __attribute__ ((packed));
4532
4533 struct vki_v4l2_sdr_format {
4534 __vki_u32 pixelformat;
4535 __vki_u32 buffersize;
4536 __vki_u8 reserved[24];
4537 } __attribute__ ((packed));
4538
4539 enum vki_v4l2_buf_type {
4540 VKI_V4L2_BUF_TYPE_VIDEO_CAPTURE = 1,
4541 VKI_V4L2_BUF_TYPE_VIDEO_OUTPUT = 2,
4542 VKI_V4L2_BUF_TYPE_VIDEO_OVERLAY = 3,
4543 VKI_V4L2_BUF_TYPE_VBI_CAPTURE = 4,
4544 VKI_V4L2_BUF_TYPE_VBI_OUTPUT = 5,
4545 VKI_V4L2_BUF_TYPE_SLICED_VBI_CAPTURE = 6,
4546 VKI_V4L2_BUF_TYPE_SLICED_VBI_OUTPUT = 7,
4547 VKI_V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY = 8,
4548 VKI_V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE = 9,
4549 VKI_V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE = 10,
4550 VKI_V4L2_BUF_TYPE_SDR_CAPTURE = 11,
4551 };
4552
4553 struct vki_v4l2_format {
4554 __vki_u32 type;
4555 union {
4556 struct vki_v4l2_pix_format pix;
4557 struct vki_v4l2_pix_format_mplane pix_mp;
4558 struct vki_v4l2_window win;
4559 struct vki_v4l2_vbi_format vbi;
4560 struct vki_v4l2_sliced_vbi_format sliced;
4561 struct vki_v4l2_sdr_format sdr;
4562 __vki_u8 raw_data[200];
4563 } fmt;
4564 };
4565
4566 struct vki_v4l2_streamparm {
4567 __vki_u32 type;
4568 union {
4569 struct vki_v4l2_captureparm capture;
4570 struct vki_v4l2_outputparm output;
4571 __vki_u8 raw_data[200];
4572 } parm;
4573 };
4574
4575 struct vki_v4l2_event_vsync {
4576 __vki_u8 field;
4577 } __attribute__ ((packed));
4578
4579 struct vki_v4l2_event_ctrl {
4580 __vki_u32 changes;
4581 __vki_u32 type;
4582 union {
4583 __vki_s32 value;
4584 __vki_s64 value64;
4585 };
4586 __vki_u32 flags;
4587 __vki_s32 minimum;
4588 __vki_s32 maximum;
4589 __vki_s32 step;
4590 __vki_s32 default_value;
4591 };
4592
4593 struct vki_v4l2_event_frame_sync {
4594 __vki_u32 frame_sequence;
4595 };
4596
4597 struct vki_v4l2_event_src_change {
4598 __vki_u32 changes;
4599 };
4600
4601 struct vki_v4l2_event_motion_det {
4602 __vki_u32 flags;
4603 __vki_u32 frame_sequence;
4604 __vki_u32 region_mask;
4605 };
4606
4607 struct vki_v4l2_event {
4608 __vki_u32 type;
4609 union {
4610 struct vki_v4l2_event_vsync vsync;
4611 struct vki_v4l2_event_ctrl ctrl;
4612 struct vki_v4l2_event_frame_sync frame_sync;
4613 struct vki_v4l2_event_src_change src_change;
4614 struct vki_v4l2_event_motion_det motion_det;
4615 __vki_u8 data[64];
4616 } u;
4617 __vki_u32 pending;
4618 __vki_u32 sequence;
4619 struct vki_timespec timestamp;
4620 __vki_u32 id;
4621 __vki_u32 reserved[8];
4622 };
4623
4624 struct vki_v4l2_event_subscription {
4625 __vki_u32 type;
4626 __vki_u32 id;
4627 __vki_u32 flags;
4628 __vki_u32 reserved[5];
4629 };
4630
4631 struct vki_v4l2_dbg_match {
4632 __vki_u32 type;
4633 union {
4634 __vki_u32 addr;
4635 char name[32];
4636 };
4637 } __attribute__ ((packed));
4638
4639 struct vki_v4l2_dbg_register {
4640 struct vki_v4l2_dbg_match match;
4641 __vki_u32 size;
4642 __vki_u64 reg;
4643 __vki_u64 val;
4644 } __attribute__ ((packed));
4645
4646 struct vki_v4l2_dbg_chip_info {
4647 struct vki_v4l2_dbg_match match;
4648 char name[32];
4649 __vki_u32 flags;
4650 __vki_u32 reserved[32];
4651 } __attribute__ ((packed));
4652
4653 struct vki_v4l2_create_buffers {
4654 __vki_u32 index;
4655 __vki_u32 count;
4656 __vki_u32 memory;
4657 struct vki_v4l2_format format;
4658 __vki_u32 reserved[8];
4659 };
4660
4661 struct vki_v4l2_edid {
4662 __vki_u32 pad;
4663 __vki_u32 start_block;
4664 __vki_u32 blocks;
4665 __vki_u32 reserved[5];
4666 __vki_u8 *edid;
4667 };
4668
4669 #define VKI_V4L2_QUERYCAP _VKI_IOR('V', 0, struct vki_v4l2_capability)
4670 #define VKI_V4L2_ENUM_FMT _VKI_IOWR('V', 2, struct vki_v4l2_fmtdesc)
4671 #define VKI_V4L2_G_FMT _VKI_IOWR('V', 4, struct vki_v4l2_format)
4672 #define VKI_V4L2_S_FMT _VKI_IOWR('V', 5, struct vki_v4l2_format)
4673 #define VKI_V4L2_REQBUFS _VKI_IOWR('V', 8, struct vki_v4l2_requestbuffers)
4674 #define VKI_V4L2_QUERYBUF _VKI_IOWR('V', 9, struct vki_v4l2_buffer)
4675 #define VKI_V4L2_G_FBUF _VKI_IOR('V', 10, struct vki_v4l2_framebuffer)
4676 #define VKI_V4L2_S_FBUF _VKI_IOW('V', 11, struct vki_v4l2_framebuffer)
4677 #define VKI_V4L2_OVERLAY _VKI_IOW('V', 14, int)
4678 #define VKI_V4L2_QBUF _VKI_IOWR('V', 15, struct vki_v4l2_buffer)
4679 #define VKI_V4L2_EXPBUF _VKI_IOWR('V', 16, struct vki_v4l2_exportbuffer)
4680 #define VKI_V4L2_DQBUF _VKI_IOWR('V', 17, struct vki_v4l2_buffer)
4681 #define VKI_V4L2_STREAMON _VKI_IOW('V', 18, int)
4682 #define VKI_V4L2_STREAMOFF _VKI_IOW('V', 19, int)
4683 #define VKI_V4L2_G_PARM _VKI_IOWR('V', 21, struct vki_v4l2_streamparm)
4684 #define VKI_V4L2_S_PARM _VKI_IOWR('V', 22, struct vki_v4l2_streamparm)
4685 #define VKI_V4L2_G_STD _VKI_IOR('V', 23, vki_v4l2_std_id)
4686 #define VKI_V4L2_S_STD _VKI_IOW('V', 24, vki_v4l2_std_id)
4687 #define VKI_V4L2_ENUMSTD _VKI_IOWR('V', 25, struct vki_v4l2_standard)
4688 #define VKI_V4L2_ENUMINPUT _VKI_IOWR('V', 26, struct vki_v4l2_input)
4689 #define VKI_V4L2_G_CTRL _VKI_IOWR('V', 27, struct vki_v4l2_control)
4690 #define VKI_V4L2_S_CTRL _VKI_IOWR('V', 28, struct vki_v4l2_control)
4691 #define VKI_V4L2_G_TUNER _VKI_IOWR('V', 29, struct vki_v4l2_tuner)
4692 #define VKI_V4L2_S_TUNER _VKI_IOW('V', 30, struct vki_v4l2_tuner)
4693 #define VKI_V4L2_G_AUDIO _VKI_IOR('V', 33, struct vki_v4l2_audio)
4694 #define VKI_V4L2_S_AUDIO _VKI_IOW('V', 34, struct vki_v4l2_audio)
4695 #define VKI_V4L2_QUERYCTRL _VKI_IOWR('V', 36, struct vki_v4l2_queryctrl)
4696 #define VKI_V4L2_QUERYMENU _VKI_IOWR('V', 37, struct vki_v4l2_querymenu)
4697 #define VKI_V4L2_G_INPUT _VKI_IOR('V', 38, int)
4698 #define VKI_V4L2_S_INPUT _VKI_IOWR('V', 39, int)
4699 #define VKI_V4L2_G_EDID _VKI_IOWR('V', 40, struct vki_v4l2_edid)
4700 #define VKI_V4L2_S_EDID _VKI_IOWR('V', 41, struct vki_v4l2_edid)
4701 #define VKI_V4L2_G_OUTPUT _VKI_IOR('V', 46, int)
4702 #define VKI_V4L2_S_OUTPUT _VKI_IOWR('V', 47, int)
4703 #define VKI_V4L2_ENUMOUTPUT _VKI_IOWR('V', 48, struct vki_v4l2_output)
4704 #define VKI_V4L2_G_AUDOUT _VKI_IOR('V', 49, struct vki_v4l2_audioout)
4705 #define VKI_V4L2_S_AUDOUT _VKI_IOW('V', 50, struct vki_v4l2_audioout)
4706 #define VKI_V4L2_G_MODULATOR _VKI_IOWR('V', 54, struct vki_v4l2_modulator)
4707 #define VKI_V4L2_S_MODULATOR _VKI_IOW('V', 55, struct vki_v4l2_modulator)
4708 #define VKI_V4L2_G_FREQUENCY _VKI_IOWR('V', 56, struct vki_v4l2_frequency)
4709 #define VKI_V4L2_S_FREQUENCY _VKI_IOW('V', 57, struct vki_v4l2_frequency)
4710 #define VKI_V4L2_CROPCAP _VKI_IOWR('V', 58, struct vki_v4l2_cropcap)
4711 #define VKI_V4L2_G_CROP _VKI_IOWR('V', 59, struct vki_v4l2_crop)
4712 #define VKI_V4L2_S_CROP _VKI_IOW('V', 60, struct vki_v4l2_crop)
4713 #define VKI_V4L2_G_JPEGCOMP _VKI_IOR('V', 61, struct vki_v4l2_jpegcompression)
4714 #define VKI_V4L2_S_JPEGCOMP _VKI_IOW('V', 62, struct vki_v4l2_jpegcompression)
4715 #define VKI_V4L2_QUERYSTD _VKI_IOR('V', 63, vki_v4l2_std_id)
4716 #define VKI_V4L2_TRY_FMT _VKI_IOWR('V', 64, struct vki_v4l2_format)
4717 #define VKI_V4L2_ENUMAUDIO _VKI_IOWR('V', 65, struct vki_v4l2_audio)
4718 #define VKI_V4L2_ENUMAUDOUT _VKI_IOWR('V', 66, struct vki_v4l2_audioout)
4719 #define VKI_V4L2_G_PRIORITY _VKI_IOR('V', 67, __vki_u32)
4720 #define VKI_V4L2_S_PRIORITY _VKI_IOW('V', 68, __vki_u32)
4721 #define VKI_V4L2_G_SLICED_VBI_CAP _VKI_IOWR('V', 69, struct vki_v4l2_sliced_vbi_cap)
4722 #define VKI_V4L2_LOG_STATUS _VKI_IO('V', 70)
4723 #define VKI_V4L2_G_EXT_CTRLS _VKI_IOWR('V', 71, struct vki_v4l2_ext_controls)
4724 #define VKI_V4L2_S_EXT_CTRLS _VKI_IOWR('V', 72, struct vki_v4l2_ext_controls)
4725 #define VKI_V4L2_TRY_EXT_CTRLS _VKI_IOWR('V', 73, struct vki_v4l2_ext_controls)
4726 #define VKI_V4L2_ENUM_FRAMESIZES _VKI_IOWR('V', 74, struct vki_v4l2_frmsizeenum)
4727 #define VKI_V4L2_ENUM_FRAMEINTERVALS _VKI_IOWR('V', 75, struct vki_v4l2_frmivalenum)
4728 #define VKI_V4L2_G_ENC_INDEX _VKI_IOR('V', 76, struct vki_v4l2_enc_idx)
4729 #define VKI_V4L2_ENCODER_CMD _VKI_IOWR('V', 77, struct vki_v4l2_encoder_cmd)
4730 #define VKI_V4L2_TRY_ENCODER_CMD _VKI_IOWR('V', 78, struct vki_v4l2_encoder_cmd)
4731 #define VKI_V4L2_DBG_S_REGISTER _VKI_IOW('V', 79, struct vki_v4l2_dbg_register)
4732 #define VKI_V4L2_DBG_G_REGISTER _VKI_IOWR('V', 80, struct vki_v4l2_dbg_register)
4733 #define VKI_V4L2_S_HW_FREQ_SEEK _VKI_IOW('V', 82, struct vki_v4l2_hw_freq_seek)
4734 #define VKI_V4L2_S_DV_TIMINGS _VKI_IOWR('V', 87, struct vki_v4l2_dv_timings)
4735 #define VKI_V4L2_G_DV_TIMINGS _VKI_IOWR('V', 88, struct vki_v4l2_dv_timings)
4736 #define VKI_V4L2_DQEVENT _VKI_IOR('V', 89, struct vki_v4l2_event)
4737 #define VKI_V4L2_SUBSCRIBE_EVENT _VKI_IOW('V', 90, struct vki_v4l2_event_subscription)
4738 #define VKI_V4L2_UNSUBSCRIBE_EVENT _VKI_IOW('V', 91, struct vki_v4l2_event_subscription)
4739 #define VKI_V4L2_CREATE_BUFS _VKI_IOWR('V', 92, struct vki_v4l2_create_buffers)
4740 #define VKI_V4L2_PREPARE_BUF _VKI_IOWR('V', 93, struct vki_v4l2_buffer)
4741 #define VKI_V4L2_G_SELECTION _VKI_IOWR('V', 94, struct vki_v4l2_selection)
4742 #define VKI_V4L2_S_SELECTION _VKI_IOWR('V', 95, struct vki_v4l2_selection)
4743 #define VKI_V4L2_DECODER_CMD _VKI_IOWR('V', 96, struct vki_v4l2_decoder_cmd)
4744 #define VKI_V4L2_TRY_DECODER_CMD _VKI_IOWR('V', 97, struct vki_v4l2_decoder_cmd)
4745 #define VKI_V4L2_ENUM_DV_TIMINGS _VKI_IOWR('V', 98, struct vki_v4l2_enum_dv_timings)
4746 #define VKI_V4L2_QUERY_DV_TIMINGS _VKI_IOR('V', 99, struct vki_v4l2_dv_timings)
4747 #define VKI_V4L2_DV_TIMINGS_CAP _VKI_IOWR('V', 100, struct vki_v4l2_dv_timings_cap)
4748 #define VKI_V4L2_ENUM_FREQ_BANDS _VKI_IOWR('V', 101, struct vki_v4l2_frequency_band)
4749 #define VKI_V4L2_DBG_G_CHIP_INFO _VKI_IOWR('V', 102, struct vki_v4l2_dbg_chip_info)
4750 #define VKI_V4L2_QUERY_EXT_CTRL _VKI_IOWR('V', 103, struct vki_v4l2_query_ext_ctrl)
4751
4752 struct vki_v4l2_mbus_framefmt {
4753 __vki_u32 width;
4754 __vki_u32 height;
4755 __vki_u32 code;
4756 __vki_u32 field;
4757 __vki_u32 colorspace;
4758 __vki_u16 ycbcr_enc;
4759 __vki_u16 quantization;
4760 __vki_u32 reserved[6];
4761 };
4762
4763 struct vki_v4l2_subdev_format {
4764 __vki_u32 which;
4765 __vki_u32 pad;
4766 struct vki_v4l2_mbus_framefmt format;
4767 __vki_u32 reserved[8];
4768 };
4769
4770 struct vki_v4l2_subdev_crop {
4771 __vki_u32 which;
4772 __vki_u32 pad;
4773 struct vki_v4l2_rect rect;
4774 __vki_u32 reserved[8];
4775 };
4776
4777 struct vki_v4l2_subdev_mbus_code_enum {
4778 __vki_u32 pad;
4779 __vki_u32 index;
4780 __vki_u32 code;
4781 __vki_u32 which;
4782 __vki_u32 reserved[8];
4783 };
4784
4785 struct vki_v4l2_subdev_frame_size_enum {
4786 __vki_u32 index;
4787 __vki_u32 pad;
4788 __vki_u32 code;
4789 __vki_u32 min_width;
4790 __vki_u32 max_width;
4791 __vki_u32 min_height;
4792 __vki_u32 max_height;
4793 __vki_u32 which;
4794 __vki_u32 reserved[8];
4795 };
4796
4797 struct vki_v4l2_subdev_frame_interval {
4798 __vki_u32 pad;
4799 struct vki_v4l2_fract interval;
4800 __vki_u32 reserved[9];
4801 };
4802
4803 struct vki_v4l2_subdev_frame_interval_enum {
4804 __vki_u32 index;
4805 __vki_u32 pad;
4806 __vki_u32 code;
4807 __vki_u32 width;
4808 __vki_u32 height;
4809 struct vki_v4l2_fract interval;
4810 __vki_u32 which;
4811 __vki_u32 reserved[8];
4812 };
4813
4814 struct vki_v4l2_subdev_selection {
4815 __vki_u32 which;
4816 __vki_u32 pad;
4817 __vki_u32 target;
4818 __vki_u32 flags;
4819 struct vki_v4l2_rect r;
4820 __vki_u32 reserved[8];
4821 };
4822
4823 #define VKI_V4L2_SUBDEV_G_FMT _VKI_IOWR('V', 4, struct vki_v4l2_subdev_format)
4824 #define VKI_V4L2_SUBDEV_S_FMT _VKI_IOWR('V', 5, struct vki_v4l2_subdev_format)
4825 #define VKI_V4L2_SUBDEV_G_FRAME_INTERVAL _VKI_IOWR('V', 21, struct vki_v4l2_subdev_frame_interval)
4826 #define VKI_V4L2_SUBDEV_S_FRAME_INTERVAL _VKI_IOWR('V', 22, struct vki_v4l2_subdev_frame_interval)
4827 #define VKI_V4L2_SUBDEV_ENUM_MBUS_CODE _VKI_IOWR('V', 2, struct vki_v4l2_subdev_mbus_code_enum)
4828 #define VKI_V4L2_SUBDEV_ENUM_FRAME_SIZE _VKI_IOWR('V', 74, struct vki_v4l2_subdev_frame_size_enum)
4829 #define VKI_V4L2_SUBDEV_ENUM_FRAME_INTERVAL _VKI_IOWR('V', 75, struct vki_v4l2_subdev_frame_interval_enum)
4830 #define VKI_V4L2_SUBDEV_G_CROP _VKI_IOWR('V', 59, struct vki_v4l2_subdev_crop)
4831 #define VKI_V4L2_SUBDEV_S_CROP _VKI_IOWR('V', 60, struct vki_v4l2_subdev_crop)
4832 #define VKI_V4L2_SUBDEV_G_SELECTION _VKI_IOWR('V', 61, struct vki_v4l2_subdev_selection)
4833 #define VKI_V4L2_SUBDEV_S_SELECTION _VKI_IOWR('V', 62, struct vki_v4l2_subdev_selection)
4834
4835 struct vki_media_device_info {
4836 char driver[16];
4837 char model[32];
4838 char serial[40];
4839 char bus_info[32];
4840 __vki_u32 media_version;
4841 __vki_u32 hw_revision;
4842 __vki_u32 driver_version;
4843 __vki_u32 reserved[31];
4844 };
4845
4846 struct vki_media_entity_desc {
4847 __vki_u32 id;
4848 char name[32];
4849 __vki_u32 type;
4850 __vki_u32 revision;
4851 __vki_u32 flags;
4852 __vki_u32 group_id;
4853 __vki_u16 pads;
4854 __vki_u16 links;
4855
4856 __vki_u32 reserved[4];
4857
4858 union {
4859
4860 struct {
4861 __vki_u32 major;
4862 __vki_u32 minor;
4863 } v4l;
4864 struct {
4865 __vki_u32 major;
4866 __vki_u32 minor;
4867 } fb;
4868 struct {
4869 __vki_u32 card;
4870 __vki_u32 device;
4871 __vki_u32 subdevice;
4872 } alsa;
4873 int dvb;
4874
4875
4876
4877 __vki_u8 raw[184];
4878 };
4879 };
4880
4881 struct vki_media_pad_desc {
4882 __vki_u32 entity;
4883 __vki_u16 index;
4884 __vki_u32 flags;
4885 __vki_u32 reserved[2];
4886 };
4887
4888 struct vki_media_link_desc {
4889 struct vki_media_pad_desc source;
4890 struct vki_media_pad_desc sink;
4891 __vki_u32 flags;
4892 __vki_u32 reserved[2];
4893 };
4894
4895 struct vki_media_links_enum {
4896 __vki_u32 entity;
4897 struct vki_media_pad_desc __user *pads;
4898 struct vki_media_link_desc __user *links;
4899 __vki_u32 reserved[4];
4900 };
4901
4902 #define VKI_MEDIA_IOC_DEVICE_INFO _VKI_IOWR('|', 0x00, struct vki_media_device_info)
4903 #define VKI_MEDIA_IOC_ENUM_ENTITIES _VKI_IOWR('|', 0x01, struct vki_media_entity_desc)
4904 #define VKI_MEDIA_IOC_ENUM_LINKS _VKI_IOWR('|', 0x02, struct vki_media_links_enum)
4905 #define VKI_MEDIA_IOC_SETUP_LINK _VKI_IOWR('|', 0x03, struct vki_media_link_desc)
4906
4907
4908 #define VKI_DMX_STOP _VKI_IO('o', 42)
4909
4910
4911 enum vki_kcmp_type {
4912 VKI_KCMP_FILE,
4913 VKI_KCMP_VM,
4914 VKI_KCMP_FILES,
4915 VKI_KCMP_FS,
4916 VKI_KCMP_SIGHAND,
4917 VKI_KCMP_IO,
4918 VKI_KCMP_SYSVSEM,
4919
4920 VKI_KCMP_TYPES
4921 };
4922
4923
4924
4925
4926
4927 #define VKI_SECCOMP_MODE_FILTER 2
4928
4929
4930
4931
4932 #define VKI_BINPRM_BUF_SIZE 128
4933
4934
4935
4936
4937
4938 struct vki_serial_struct {
4939 int type;
4940 int line;
4941 unsigned int port;
4942 int irq;
4943 int flags;
4944 int xmit_fifo_size;
4945 int custom_divisor;
4946 int baud_base;
4947 unsigned short close_delay;
4948 char io_type;
4949 char reserved_char[1];
4950 int hub6;
4951 unsigned short closing_wait;
4952 unsigned short closing_wait2;
4953 unsigned char *iomem_base;
4954 unsigned short iomem_reg_shift;
4955 unsigned int port_high;
4956 unsigned long iomap_base;
4957 };
4958
4959
4960
4961
4962
4963 #if !defined(VKI_INIT_ARCH_ELF_STATE)
4964
4965
4966
4967
4968
4969 struct vki_arch_elf_state {
4970 };
4971
4972 # define VKI_INIT_ARCH_ELF_STATE { }
4973
4974 #endif
4975
4976
4977
4978
4979
4980 #define VKI_PR_SET_FP_MODE 45
4981 #define VKI_PR_GET_FP_MODE 46
4982 # define VKI_PR_FP_MODE_FR (1 << 0)
4983 # define VKI_PR_FP_MODE_FRE (1 << 1)
4984
4985 #endif
4986
4987
4988
4989
4990
4991 struct vki_blk_zone {
4992 __vki_u64 start;
4993 __vki_u64 len;
4994 __vki_u64 wp;
4995 __vki_u8 type;
4996 __vki_u8 cond;
4997 __vki_u8 non_seq;
4998 __vki_u8 reset;
4999 __vki_u8 reserved[36];
5000 };
5001
5002 struct vki_blk_zone_report {
5003 __vki_u64 sector;
5004 __vki_u32 nr_zones;
5005 __vki_u8 reserved[4];
5006 struct vki_blk_zone zones[0];
5007 };
5008
5009 struct vki_blk_zone_range {
5010 __vki_u64 sector;
5011 __vki_u64 nr_sectors;
5012 };
5013
5014 #define VKI_BLKREPORTZONE _VKI_IOWR(0x12, 130, struct vki_blk_zone_report)
5015 #define VKI_BLKRESETZONE _VKI_IOW(0x12, 131, struct vki_blk_zone_range)
5016
5017
5018
5019
5020
5021 struct vki_bpf_insn {
5022 __vki_u8 code;
5023 __vki_u8 dst_reg:4;
5024 __vki_u8 src_reg:4;
5025 __vki_s16 off;
5026 __vki_s32 imm;
5027 };
5028
5029 enum vki_bpf_cmd {
5030 VKI_BPF_MAP_CREATE,
5031 VKI_BPF_MAP_LOOKUP_ELEM,
5032 VKI_BPF_MAP_UPDATE_ELEM,
5033 VKI_BPF_MAP_DELETE_ELEM,
5034 VKI_BPF_MAP_GET_NEXT_KEY,
5035 VKI_BPF_PROG_LOAD,
5036 VKI_BPF_OBJ_PIN,
5037 VKI_BPF_OBJ_GET,
5038 VKI_BPF_PROG_ATTACH,
5039 VKI_BPF_PROG_DETACH,
5040 VKI_BPF_PROG_TEST_RUN,
5041 VKI_BPF_PROG_GET_NEXT_ID,
5042 VKI_BPF_MAP_GET_NEXT_ID,
5043 VKI_BPF_PROG_GET_FD_BY_ID,
5044 VKI_BPF_MAP_GET_FD_BY_ID,
5045 VKI_BPF_OBJ_GET_INFO_BY_FD,
5046 VKI_BPF_PROG_QUERY,
5047 VKI_BPF_RAW_TRACEPOINT_OPEN,
5048 VKI_BPF_BTF_LOAD,
5049 VKI_BPF_BTF_GET_FD_BY_ID,
5050 VKI_BPF_TASK_FD_QUERY,
5051 VKI_BPF_MAP_LOOKUP_AND_DELETE_ELEM,
5052 VKI_BPF_MAP_FREEZE,
5053 };
5054
5055 enum vki_bpf_map_type {
5056 VKI_BPF_MAP_TYPE_UNSPEC,
5057 VKI_BPF_MAP_TYPE_HASH,
5058 VKI_BPF_MAP_TYPE_ARRAY,
5059 VKI_BPF_MAP_TYPE_PROG_ARRAY,
5060 VKI_BPF_MAP_TYPE_PERF_EVENT_ARRAY,
5061 VKI_BPF_MAP_TYPE_PERCPU_HASH,
5062 VKI_BPF_MAP_TYPE_PERCPU_ARRAY,
5063 VKI_BPF_MAP_TYPE_STACK_TRACE,
5064 VKI_BPF_MAP_TYPE_CGROUP_ARRAY,
5065 VKI_BPF_MAP_TYPE_LRU_HASH,
5066 VKI_BPF_MAP_TYPE_LRU_PERCPU_HASH,
5067 VKI_BPF_MAP_TYPE_LPM_TRIE,
5068 VKI_BPF_MAP_TYPE_ARRAY_OF_MAPS,
5069 VKI_BPF_MAP_TYPE_HASH_OF_MAPS,
5070 VKI_BPF_MAP_TYPE_DEVMAP,
5071 VKI_BPF_MAP_TYPE_SOCKMAP,
5072 VKI_BPF_MAP_TYPE_CPUMAP,
5073 VKI_BPF_MAP_TYPE_XSKMAP,
5074 VKI_BPF_MAP_TYPE_SOCKHASH,
5075 };
5076
5077 enum vki_bpf_prog_type {
5078 VKI_BPF_PROG_TYPE_UNSPEC,
5079 VKI_BPF_PROG_TYPE_SOCKET_FILTER,
5080 VKI_BPF_PROG_TYPE_KPROBE,
5081 VKI_BPF_PROG_TYPE_SCHED_CLS,
5082 VKI_BPF_PROG_TYPE_SCHED_ACT,
5083 VKI_BPF_PROG_TYPE_TRACEPOINT,
5084 VKI_BPF_PROG_TYPE_XDP,
5085 VKI_BPF_PROG_TYPE_PERF_EVENT,
5086 VKI_BPF_PROG_TYPE_CGROUP_SKB,
5087 VKI_BPF_PROG_TYPE_CGROUP_SOCK,
5088 VKI_BPF_PROG_TYPE_LWT_IN,
5089 VKI_BPF_PROG_TYPE_LWT_OUT,
5090 VKI_BPF_PROG_TYPE_LWT_XMIT,
5091 VKI_BPF_PROG_TYPE_SOCK_OPS,
5092 VKI_BPF_PROG_TYPE_SK_SKB,
5093 VKI_BPF_PROG_TYPE_CGROUP_DEVICE,
5094 VKI_BPF_PROG_TYPE_SK_MSG,
5095 VKI_BPF_PROG_TYPE_RAW_TRACEPOINT,
5096 VKI_BPF_PROG_TYPE_CGROUP_SOCK_ADDR,
5097 VKI_BPF_PROG_TYPE_LWT_SEG6LOCAL,
5098 VKI_BPF_PROG_TYPE_LIRC_MODE2,
5099 };
5100
5101 enum vki_bpf_attach_type {
5102 VKI_BPF_CGROUP_INET_INGRESS,
5103 VKI_BPF_CGROUP_INET_EGRESS,
5104 VKI_BPF_CGROUP_INET_SOCK_CREATE,
5105 VKI_BPF_CGROUP_SOCK_OPS,
5106 VKI_BPF_SK_SKB_STREAM_PARSER,
5107 VKI_BPF_SK_SKB_STREAM_VERDICT,
5108 VKI_BPF_CGROUP_DEVICE,
5109 VKI_BPF_SK_MSG_VERDICT,
5110 VKI_BPF_CGROUP_INET4_BIND,
5111 VKI_BPF_CGROUP_INET6_BIND,
5112 VKI_BPF_CGROUP_INET4_CONNECT,
5113 VKI_BPF_CGROUP_INET6_CONNECT,
5114 VKI_BPF_CGROUP_INET4_POST_BIND,
5115 VKI_BPF_CGROUP_INET6_POST_BIND,
5116 VKI_BPF_CGROUP_UDP4_SENDMSG,
5117 VKI_BPF_CGROUP_UDP6_SENDMSG,
5118 VKI_BPF_LIRC_MODE2,
5119 __VKI_MAX_BPF_ATTACH_TYPE
5120 };
5121
5122
5123 #define VKI_BPF_F_NUMA_NODE (1U << 2)
5124
5125 #define VKI_BPF_OBJ_NAME_LEN 16U
5126
5127 union vki_bpf_attr {
5128 struct {
5129 __vki_u32 map_type;
5130 __vki_u32 key_size;
5131 __vki_u32 value_size;
5132 __vki_u32 max_entries;
5133 __vki_u32 map_flags;
5134
5135
5136 __vki_u32 inner_map_fd;
5137 __vki_u32 numa_node;
5138
5139
5140 char map_name[VKI_BPF_OBJ_NAME_LEN];
5141 __vki_u32 map_ifindex;
5142 __vki_u32 btf_fd;
5143 __vki_u32 btf_key_type_id;
5144 __vki_u32 btf_value_type_id;
5145 };
5146
5147 struct {
5148 __vki_u32 map_fd;
5149 __vki_aligned_u64 key;
5150 union {
5151 __vki_aligned_u64 value;
5152 __vki_aligned_u64 next_key;
5153 };
5154 __vki_u64 flags;
5155 };
5156
5157 struct {
5158 __vki_u32 prog_type;
5159 __vki_u32 insn_cnt;
5160 __vki_aligned_u64 insns;
5161 __vki_aligned_u64 license;
5162 __vki_u32 log_level;
5163 __vki_u32 log_size;
5164 __vki_aligned_u64 log_buf;
5165 __vki_u32 kern_version;
5166 __vki_u32 prog_flags;
5167 char prog_name[VKI_BPF_OBJ_NAME_LEN];
5168 __vki_u32 prog_ifindex;
5169
5170
5171
5172
5173 __vki_u32 expected_attach_type;
5174 };
5175
5176 struct {
5177 __vki_aligned_u64 pathname;
5178 __vki_u32 bpf_fd;
5179 __vki_u32 file_flags;
5180 };
5181
5182 struct {
5183 __vki_u32 target_fd;
5184 __vki_u32 attach_bpf_fd;
5185 __vki_u32 attach_type;
5186 __vki_u32 attach_flags;
5187 };
5188
5189 struct {
5190 __vki_u32 prog_fd;
5191 __vki_u32 retval;
5192 __vki_u32 data_size_in;
5193 __vki_u32 data_size_out;
5194 __vki_aligned_u64 data_in;
5195 __vki_aligned_u64 data_out;
5196 __vki_u32 repeat;
5197 __vki_u32 duration;
5198 } test;
5199
5200 struct {
5201 union {
5202 __vki_u32 start_id;
5203 __vki_u32 prog_id;
5204 __vki_u32 map_id;
5205 __vki_u32 btf_id;
5206 };
5207 __vki_u32 next_id;
5208 __vki_u32 open_flags;
5209 };
5210
5211 struct {
5212 __vki_u32 bpf_fd;
5213 __vki_u32 info_len;
5214 __vki_aligned_u64 info;
5215 } info;
5216
5217 struct {
5218 __vki_u32 target_fd;
5219 __vki_u32 attach_type;
5220 __vki_u32 query_flags;
5221 __vki_u32 attach_flags;
5222 __vki_aligned_u64 prog_ids;
5223 __vki_u32 prog_cnt;
5224 } query;
5225
5226 struct {
5227 __vki_u64 name;
5228 __vki_u32 prog_fd;
5229 } raw_tracepoint;
5230
5231 struct {
5232 __vki_aligned_u64 btf;
5233 __vki_aligned_u64 btf_log_buf;
5234 __vki_u32 btf_size;
5235 __vki_u32 btf_log_size;
5236 __vki_u32 btf_log_level;
5237 };
5238
5239 struct {
5240 __vki_u32 pid;
5241 __vki_u32 fd;
5242 __vki_u32 flags;
5243 __vki_u32 buf_len;
5244 __vki_aligned_u64 buf;
5245
5246
5247
5248
5249 __vki_u32 prog_id;
5250 __vki_u32 fd_type;
5251 __vki_u64 probe_offset;
5252 __vki_u64 probe_addr;
5253 } task_fd_query;
5254 } __attribute__((aligned(8)));
5255
5256 #define VKI_XDP_PACKET_HEADROOM 256
5257
5258 #define VKI_BPF_TAG_SIZE 8
5259
5260 struct vki_bpf_prog_info {
5261 __vki_u32 type;
5262 __vki_u32 id;
5263 __vki_u8 tag[VKI_BPF_TAG_SIZE];
5264 __vki_u32 jited_prog_len;
5265 __vki_u32 xlated_prog_len;
5266 __vki_aligned_u64 jited_prog_insns;
5267 __vki_aligned_u64 xlated_prog_insns;
5268 __vki_u64 load_time;
5269 __vki_u32 created_by_uid;
5270 __vki_u32 nr_map_ids;
5271 __vki_aligned_u64 map_ids;
5272 char name[VKI_BPF_OBJ_NAME_LEN];
5273 __vki_u32 ifindex;
5274 __vki_u32 gpl_compatible:1;
5275 __vki_u64 netns_dev;
5276 __vki_u64 netns_ino;
5277 __vki_u32 nr_jited_ksyms;
5278 __vki_u32 nr_jited_func_lens;
5279 __vki_aligned_u64 jited_ksyms;
5280 __vki_aligned_u64 jited_func_lens;
5281 } __attribute__((aligned(8)));
5282
5283 struct vki_bpf_map_info {
5284 __vki_u32 type;
5285 __vki_u32 id;
5286 __vki_u32 key_size;
5287 __vki_u32 value_size;
5288 __vki_u32 max_entries;
5289 __vki_u32 map_flags;
5290 char name[VKI_BPF_OBJ_NAME_LEN];
5291 __vki_u32 ifindex;
5292 __vki_u32 :32;
5293 __vki_u64 netns_dev;
5294 __vki_u64 netns_ino;
5295 __vki_u32 btf_id;
5296 __vki_u32 btf_key_type_id;
5297 __vki_u32 btf_value_type_id;
5298 } __attribute__((aligned(8)));
5299
5300 struct vki_bpf_btf_info {
5301 __vki_aligned_u64 btf;
5302 __vki_u32 btf_size;
5303 __vki_u32 id;
5304 } __attribute__((aligned(8)));
5305
5306
5307
5308
5309
5310 struct vki_pps_ktime {
5311 __vki_s64 sec;
5312 __vki_s32 nsec;
5313 __vki_u32 flags;
5314 };
5315
5316 struct vki_pps_kinfo {
5317 __vki_u32 assert_sequence;
5318 __vki_u32 clear_sequence;
5319 struct vki_pps_ktime assert_tu;
5320 struct vki_pps_ktime clear_tu;
5321 int current_mode;
5322 };
5323
5324 struct vki_pps_kparams {
5325 int api_version;
5326 int mode;
5327 struct vki_pps_ktime assert_off_tu;
5328 struct vki_pps_ktime clear_off_tu;
5329 };
5330
5331 struct vki_pps_fdata {
5332 struct vki_pps_kinfo info;
5333 struct vki_pps_ktime timeout;
5334 };
5335
5336 struct vki_pps_bind_args {
5337 int tsformat;
5338 int edge;
5339 int consumer;
5340 };
5341
5342 #define VKI_PPS_GETPARAMS _VKI_IOR('p', 0xa1, struct vki_pps_kparams *)
5343 #define VKI_PPS_SETPARAMS _VKI_IOW('p', 0xa2, struct vki_pps_kparams *)
5344 #define VKI_PPS_GETCAP _VKI_IOR('p', 0xa3, int *)
5345 #define VKI_PPS_FETCH _VKI_IOWR('p', 0xa4, struct vki_pps_fdata *)
5346 #define VKI_PPS_KC_BIND _VKI_IOW('p', 0xa5, struct vki_pps_bind_args *)
5347
5348
5349
5350
5351
5352 struct vki_ptp_clock_time {
5353 __vki_s64 sec;
5354 __vki_u32 nsec;
5355 __vki_u32 reserved;
5356 };
5357
5358 struct vki_ptp_clock_caps {
5359 int max_adj;
5360 int n_alarm;
5361 int n_ext_ts;
5362 int n_per_out;
5363 int pps;
5364 int n_pins;
5365 int cross_timestamping;
5366 int rsv[13];
5367 };
5368
5369 struct vki_ptp_extts_request {
5370 unsigned int index;
5371 unsigned int flags;
5372 unsigned int rsv[2];
5373 };
5374
5375 struct vki_ptp_perout_request {
5376 struct vki_ptp_clock_time start;
5377 struct vki_ptp_clock_time period;
5378 unsigned int index;
5379 unsigned int flags;
5380 unsigned int rsv[4];
5381 };
5382
5383 #define VKI_PTP_MAX_SAMPLES 25
5384
5385 struct vki_ptp_sys_offset {
5386 unsigned int n_samples;
5387 unsigned int rsv[3];
5388 struct vki_ptp_clock_time ts[2 * VKI_PTP_MAX_SAMPLES + 1];
5389 };
5390
5391 struct vki_ptp_sys_offset_extended {
5392 unsigned int n_samples;
5393 unsigned int rsv[3];
5394 struct vki_ptp_clock_time ts[VKI_PTP_MAX_SAMPLES][3];
5395 };
5396
5397 struct vki_ptp_sys_offset_precise {
5398 struct vki_ptp_clock_time device;
5399 struct vki_ptp_clock_time sys_realtime;
5400 struct vki_ptp_clock_time sys_monoraw;
5401 unsigned int rsv[4];
5402 };
5403
5404 struct vki_ptp_pin_desc {
5405 char name[64];
5406 unsigned int index;
5407 unsigned int func;
5408 unsigned int chan;
5409 unsigned int rsv[5];
5410 };
5411
5412 #define VKI_PTP_CLOCK_GETCAPS _VKI_IOR('=', 1, struct vki_ptp_clock_caps)
5413 #define VKI_PTP_EXTTS_REQUEST _VKI_IOW('=', 2, struct vki_ptp_extts_request)
5414 #define VKI_PTP_PEROUT_REQUEST _VKI_IOW('=', 3, struct vki_ptp_perout_request)
5415 #define VKI_PTP_ENABLE_PPS _VKI_IOW('=', 4, int)
5416 #define VKI_PTP_SYS_OFFSET _VKI_IOW('=', 5, struct vki_ptp_sys_offset)
5417 #define VKI_PTP_PIN_GETFUNC _VKI_IOWR('=', 6, struct vki_ptp_pin_desc)
5418 #define VKI_PTP_PIN_SETFUNC _VKI_IOW('=', 7, struct vki_ptp_pin_desc)
5419 #define VKI_PTP_SYS_OFFSET_PRECISE \
5420 _VKI_IOWR('=', 8, struct vki_ptp_sys_offset_precise)
5421 #define VKI_PTP_SYS_OFFSET_EXTENDED \
5422 _VKI_IOWR('=', 9, struct vki_ptp_sys_offset_extended)
5423
5424
5425
5426 typedef vki_int64_t vki_time64_t;
5427
5428
5429
5430
5431
5432 struct vki_timespec64 {
5433 vki_time64_t tv_sec;
5434 #if defined(VKI_BIG_ENDIAN)
5435 vki_int32_t tv_pad;
5436 vki_int32_t tv_nsec;
5437 #elif defined(VKI_LITTLE_ENDIAN)
5438 vki_int32_t tv_nsec;
5439 vki_int32_t tv_pad;
5440 #else
5441 #error edit for your odd byteorder.
5442 #endif
5443 };
5444
5445 struct vki_itimerspec64 {
5446 struct vki_timespec it_interval;
5447 struct vki_timespec it_value;
5448 };
5449
5450
5451
5452 struct vki_open_how {
5453 vki_uint64_t vki_flags;
5454 vki_uint64_t vki_mode;
5455 vki_uint64_t vki_resolve;
5456 };
5457
5458 #define VKI_RESOLVE_NO_XDEV 0x01
5459 #define VKI_RESOLVE_NO_MAGICLINKS 0x02
5460 #define VKI_RESOLVE_NO_SYMLINKS 0x04
5461 #define VKI_RESOLVE_BENEATH 0x08
5462 #define VKI_RESOLVE_IN_ROOT 0x10
5463 #define VKI_RESOLVE_CACHED 0x20
5464
5465 #ifndef VKI_RLIM_INFINITY
5466 #define VKI_RLIM_INFINITY (~0UL)
5467 #endif
5468
5469 #define VKI_RLIM64_INFINITY (~0ULL)
5470
5471 #define VKI_CLOSE_RANGE_UNSHARE (1U << 1)
5472 #define VKI_CLOSE_RANGE_CLOEXEC (1U << 2)
5473
5474
5475
5476
5477
5478 #define VKI_BTRFS_SUPER_MAGIC 0x9123683E
5479
5480
5481
5482