File indexing completed on 2025-09-14 09:09:18
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 #ifndef __VKI_X86_LINUX_H
0030 #define __VKI_X86_LINUX_H
0031
0032
0033 #define VKI_LITTLE_ENDIAN 1
0034
0035
0036
0037
0038
0039 typedef unsigned char __vki_u8;
0040
0041 typedef __signed__ short __vki_s16;
0042 typedef unsigned short __vki_u16;
0043
0044 typedef __signed__ int __vki_s32;
0045 typedef unsigned int __vki_u32;
0046
0047 typedef __signed__ long long __vki_s64;
0048 typedef unsigned long long __vki_u64;
0049
0050 typedef unsigned short vki_u16;
0051
0052 typedef unsigned int vki_u32;
0053
0054
0055
0056
0057
0058
0059 #define VKI_PAGE_SHIFT 12
0060 #define VKI_PAGE_SIZE (1UL << VKI_PAGE_SHIFT)
0061 #define VKI_MAX_PAGE_SHIFT VKI_PAGE_SHIFT
0062 #define VKI_MAX_PAGE_SIZE VKI_PAGE_SIZE
0063
0064
0065
0066
0067
0068 #define VKI_SHMLBA VKI_PAGE_SIZE
0069
0070
0071
0072
0073
0074 #define VKI_MINSIGSTKSZ 2048
0075
0076 #define VKI_SIG_BLOCK 0
0077 #define VKI_SIG_UNBLOCK 1
0078 #define VKI_SIG_SETMASK 2
0079
0080
0081 typedef void __vki_signalfn_t(int);
0082 typedef __vki_signalfn_t __user *__vki_sighandler_t;
0083
0084 typedef void __vki_restorefn_t(void);
0085 typedef __vki_restorefn_t __user *__vki_sigrestore_t;
0086
0087 #define VKI_SIG_DFL ((__vki_sighandler_t)0)
0088 #define VKI_SIG_IGN ((__vki_sighandler_t)1)
0089
0090 #define _VKI_NSIG 64
0091 #define _VKI_NSIG_BPW 32
0092 #define _VKI_NSIG_WORDS (_VKI_NSIG / _VKI_NSIG_BPW)
0093
0094 typedef unsigned long vki_old_sigset_t;
0095
0096 typedef struct {
0097 unsigned long sig[_VKI_NSIG_WORDS];
0098 } vki_sigset_t;
0099
0100 #define VKI_SIGHUP 1
0101 #define VKI_SIGINT 2
0102 #define VKI_SIGQUIT 3
0103 #define VKI_SIGILL 4
0104 #define VKI_SIGTRAP 5
0105 #define VKI_SIGABRT 6
0106
0107 #define VKI_SIGBUS 7
0108 #define VKI_SIGFPE 8
0109 #define VKI_SIGKILL 9
0110 #define VKI_SIGUSR1 10
0111 #define VKI_SIGSEGV 11
0112 #define VKI_SIGUSR2 12
0113 #define VKI_SIGPIPE 13
0114 #define VKI_SIGALRM 14
0115 #define VKI_SIGTERM 15
0116 #define VKI_SIGSTKFLT 16
0117 #define VKI_SIGCHLD 17
0118 #define VKI_SIGCONT 18
0119 #define VKI_SIGSTOP 19
0120 #define VKI_SIGTSTP 20
0121 #define VKI_SIGTTIN 21
0122 #define VKI_SIGTTOU 22
0123 #define VKI_SIGURG 23
0124 #define VKI_SIGXCPU 24
0125 #define VKI_SIGXFSZ 25
0126 #define VKI_SIGVTALRM 26
0127 #define VKI_SIGPROF 27
0128 #define VKI_SIGWINCH 28
0129 #define VKI_SIGIO 29
0130 #define VKI_SIGPWR 30
0131 #define VKI_SIGSYS 31
0132 #define VKI_SIGUNUSED 31
0133
0134
0135 #define VKI_SIGRTMIN 32
0136
0137 #define VKI_SIGRTMAX _VKI_NSIG
0138
0139 #define VKI_SA_NOCLDSTOP 0x00000001u
0140 #define VKI_SA_NOCLDWAIT 0x00000002u
0141 #define VKI_SA_SIGINFO 0x00000004u
0142 #define VKI_SA_ONSTACK 0x08000000u
0143 #define VKI_SA_RESTART 0x10000000u
0144 #define VKI_SA_NODEFER 0x40000000u
0145 #define VKI_SA_RESETHAND 0x80000000u
0146
0147 #define VKI_SA_NOMASK VKI_SA_NODEFER
0148 #define VKI_SA_ONESHOT VKI_SA_RESETHAND
0149
0150
0151 #define VKI_SA_RESTORER 0x04000000
0152
0153 #define VKI_SS_ONSTACK 1
0154 #define VKI_SS_DISABLE 2
0155
0156
0157
0158
0159
0160 struct vki_old_sigaction {
0161
0162
0163
0164
0165 __vki_sighandler_t ksa_handler;
0166 vki_old_sigset_t sa_mask;
0167 unsigned long sa_flags;
0168 __vki_sigrestore_t sa_restorer;
0169 };
0170
0171 struct vki_sigaction_base {
0172
0173 __vki_sighandler_t ksa_handler;
0174 unsigned long sa_flags;
0175 __vki_sigrestore_t sa_restorer;
0176 vki_sigset_t sa_mask;
0177 };
0178
0179
0180
0181 typedef struct vki_sigaction_base vki_sigaction_toK_t;
0182 typedef struct vki_sigaction_base vki_sigaction_fromK_t;
0183
0184
0185 typedef struct vki_sigaltstack {
0186 void __user *ss_sp;
0187 int ss_flags;
0188 vki_size_t ss_size;
0189 } vki_stack_t;
0190
0191
0192
0193
0194
0195 struct _vki_fpreg {
0196 unsigned short significand[4];
0197 unsigned short exponent;
0198 };
0199
0200 struct _vki_fpxreg {
0201 unsigned short significand[4];
0202 unsigned short exponent;
0203 unsigned short padding[3];
0204 };
0205
0206 struct _vki_xmmreg {
0207 unsigned long element[4];
0208 };
0209
0210 struct _vki_fpstate {
0211
0212 unsigned long cw;
0213 unsigned long sw;
0214 unsigned long tag;
0215 unsigned long ipoff;
0216 unsigned long cssel;
0217 unsigned long dataoff;
0218 unsigned long datasel;
0219 struct _vki_fpreg _st[8];
0220 unsigned short status;
0221 unsigned short magic;
0222
0223
0224 unsigned long _fxsr_env[6];
0225 unsigned long mxcsr;
0226 unsigned long reserved;
0227 struct _vki_fpxreg _fxsr_st[8];
0228 struct _vki_xmmreg _xmm[8];
0229 unsigned long padding[56];
0230 };
0231
0232 struct vki_sigcontext {
0233 unsigned short gs, __gsh;
0234 unsigned short fs, __fsh;
0235 unsigned short es, __esh;
0236 unsigned short ds, __dsh;
0237 unsigned long edi;
0238 unsigned long esi;
0239 unsigned long ebp;
0240 unsigned long esp;
0241 unsigned long ebx;
0242 unsigned long edx;
0243 unsigned long ecx;
0244 unsigned long eax;
0245 unsigned long trapno;
0246 unsigned long err;
0247 unsigned long eip;
0248 unsigned short cs, __csh;
0249 unsigned long eflags;
0250 unsigned long esp_at_signal;
0251 unsigned short ss, __ssh;
0252 struct _vki_fpstate __user * fpstate;
0253 unsigned long oldmask;
0254 unsigned long cr2;
0255 };
0256
0257
0258
0259
0260
0261 #define VKI_PROT_NONE 0x0
0262 #define VKI_PROT_READ 0x1
0263 #define VKI_PROT_WRITE 0x2
0264 #define VKI_PROT_EXEC 0x4
0265 #define VKI_PROT_GROWSDOWN 0x01000000
0266 #define VKI_PROT_GROWSUP 0x02000000
0267
0268 #define VKI_MAP_SHARED 0x01
0269 #define VKI_MAP_PRIVATE 0x02
0270
0271 #define VKI_MAP_FIXED 0x10
0272 #define VKI_MAP_ANONYMOUS 0x20
0273 #define VKI_MAP_NORESERVE 0x4000
0274
0275
0276
0277
0278
0279 #define VKI_O_ACCMODE 03
0280 #define VKI_O_RDONLY 00
0281 #define VKI_O_WRONLY 01
0282 #define VKI_O_RDWR 02
0283 #define VKI_O_CREAT 0100
0284 #define VKI_O_EXCL 0200
0285 #define VKI_O_TRUNC 01000
0286 #define VKI_O_APPEND 02000
0287 #define VKI_O_NONBLOCK 04000
0288 #define VKI_O_DIRECT 040000
0289 #define VKI_O_LARGEFILE 0100000
0290
0291 #define VKI_AT_FDCWD -100
0292
0293 #define VKI_F_DUPFD 0
0294 #define VKI_F_GETFD 1
0295 #define VKI_F_SETFD 2
0296 #define VKI_F_GETFL 3
0297 #define VKI_F_SETFL 4
0298 #define VKI_F_GETLK 5
0299 #define VKI_F_SETLK 6
0300 #define VKI_F_SETLKW 7
0301
0302 #define VKI_F_SETOWN 8
0303 #define VKI_F_GETOWN 9
0304 #define VKI_F_SETSIG 10
0305 #define VKI_F_GETSIG 11
0306
0307 #define VKI_F_GETLK64 12
0308 #define VKI_F_SETLK64 13
0309 #define VKI_F_SETLKW64 14
0310
0311 #define VKI_F_SETOWN_EX 15
0312 #define VKI_F_GETOWN_EX 16
0313
0314 #define VKI_F_OFD_GETLK 36
0315 #define VKI_F_OFD_SETLK 37
0316 #define VKI_F_OFD_SETLKW 38
0317
0318 #define VKI_F_OWNER_TID 0
0319 #define VKI_F_OWNER_PID 1
0320 #define VKI_F_OWNER_PGRP 2
0321
0322 struct vki_f_owner_ex {
0323 int type;
0324 __vki_kernel_pid_t pid;
0325 };
0326
0327
0328 #define VKI_FD_CLOEXEC 1
0329
0330 #define VKI_F_LINUX_SPECIFIC_BASE 1024
0331
0332
0333
0334
0335
0336 #define VKI_RLIMIT_DATA 2
0337 #define VKI_RLIMIT_STACK 3
0338 #define VKI_RLIMIT_CORE 4
0339 #define VKI_RLIMIT_NOFILE 7
0340
0341
0342
0343
0344
0345 #define VKI_SOL_SOCKET 1
0346
0347 #define VKI_SO_TYPE 3
0348
0349 #define VKI_SO_ATTACH_FILTER 26
0350
0351
0352
0353
0354
0355 #define VKI_SIOCSPGRP 0x8902
0356 #define VKI_SIOCGPGRP 0x8904
0357 #define VKI_SIOCATMARK 0x8905
0358 #define VKI_SIOCGSTAMP 0x8906
0359 #define VKI_SIOCGSTAMPNS 0x8907
0360
0361
0362
0363
0364
0365 struct vki_stat {
0366 unsigned long st_dev;
0367 unsigned long st_ino;
0368 unsigned short st_mode;
0369 unsigned short st_nlink;
0370 unsigned short st_uid;
0371 unsigned short st_gid;
0372 unsigned long st_rdev;
0373 unsigned long st_size;
0374 unsigned long st_blksize;
0375 unsigned long st_blocks;
0376 unsigned long st_atime;
0377 unsigned long st_atime_nsec;
0378 unsigned long st_mtime;
0379 unsigned long st_mtime_nsec;
0380 unsigned long st_ctime;
0381 unsigned long st_ctime_nsec;
0382 unsigned long __unused4;
0383 unsigned long __unused5;
0384 };
0385
0386 struct vki_stat64 {
0387 unsigned long long st_dev;
0388 unsigned char __pad0[4];
0389
0390 #define STAT64_HAS_BROKEN_ST_INO 1
0391 unsigned long __st_ino;
0392
0393 unsigned int st_mode;
0394 unsigned int st_nlink;
0395
0396 unsigned long st_uid;
0397 unsigned long st_gid;
0398
0399 unsigned long long st_rdev;
0400 unsigned char __pad3[4];
0401
0402 long long st_size;
0403 unsigned long st_blksize;
0404
0405 unsigned long st_blocks;
0406 unsigned long __pad4;
0407
0408 unsigned long st_atime;
0409 unsigned long st_atime_nsec;
0410
0411 unsigned long st_mtime;
0412 unsigned int st_mtime_nsec;
0413
0414 unsigned long st_ctime;
0415 unsigned long st_ctime_nsec;
0416
0417 unsigned long long st_ino;
0418 };
0419
0420
0421
0422
0423
0424
0425 struct vki_statfs {
0426 __vki_u32 f_type;
0427 __vki_u32 f_bsize;
0428 __vki_u32 f_blocks;
0429 __vki_u32 f_bfree;
0430 __vki_u32 f_bavail;
0431 __vki_u32 f_files;
0432 __vki_u32 f_ffree;
0433 __vki_kernel_fsid_t f_fsid;
0434 __vki_u32 f_namelen;
0435 __vki_u32 f_frsize;
0436 __vki_u32 f_spare[5];
0437 };
0438
0439
0440
0441
0442
0443 struct vki_winsize {
0444 unsigned short ws_row;
0445 unsigned short ws_col;
0446 unsigned short ws_xpixel;
0447 unsigned short ws_ypixel;
0448 };
0449
0450 #define VKI_NCC 8
0451 struct vki_termio {
0452 unsigned short c_iflag;
0453 unsigned short c_oflag;
0454 unsigned short c_cflag;
0455 unsigned short c_lflag;
0456 unsigned char c_line;
0457 unsigned char c_cc[VKI_NCC];
0458 };
0459
0460
0461
0462
0463
0464
0465 typedef unsigned char vki_cc_t;
0466 typedef unsigned int vki_tcflag_t;
0467
0468 #define VKI_NCCS 19
0469 struct vki_termios {
0470 vki_tcflag_t c_iflag;
0471 vki_tcflag_t c_oflag;
0472 vki_tcflag_t c_cflag;
0473 vki_tcflag_t c_lflag;
0474 vki_cc_t c_line;
0475 vki_cc_t c_cc[VKI_NCCS];
0476 };
0477
0478
0479
0480
0481
0482 #define _VKI_IOC_NRBITS 8
0483 #define _VKI_IOC_TYPEBITS 8
0484 #define _VKI_IOC_SIZEBITS 14
0485 #define _VKI_IOC_DIRBITS 2
0486
0487 #define _VKI_IOC_NRMASK ((1 << _VKI_IOC_NRBITS)-1)
0488 #define _VKI_IOC_TYPEMASK ((1 << _VKI_IOC_TYPEBITS)-1)
0489 #define _VKI_IOC_SIZEMASK ((1 << _VKI_IOC_SIZEBITS)-1)
0490 #define _VKI_IOC_DIRMASK ((1 << _VKI_IOC_DIRBITS)-1)
0491
0492 #define _VKI_IOC_NRSHIFT 0
0493 #define _VKI_IOC_TYPESHIFT (_VKI_IOC_NRSHIFT+_VKI_IOC_NRBITS)
0494 #define _VKI_IOC_SIZESHIFT (_VKI_IOC_TYPESHIFT+_VKI_IOC_TYPEBITS)
0495 #define _VKI_IOC_DIRSHIFT (_VKI_IOC_SIZESHIFT+_VKI_IOC_SIZEBITS)
0496
0497 #define _VKI_IOC_NONE 0U
0498 #define _VKI_IOC_WRITE 1U
0499 #define _VKI_IOC_READ 2U
0500
0501 #define _VKI_IOC(dir,type,nr,size) \
0502 (((dir) << _VKI_IOC_DIRSHIFT) | \
0503 ((type) << _VKI_IOC_TYPESHIFT) | \
0504 ((nr) << _VKI_IOC_NRSHIFT) | \
0505 ((size) << _VKI_IOC_SIZESHIFT))
0506
0507
0508 #define _VKI_IO(type,nr) _VKI_IOC(_VKI_IOC_NONE,(type),(nr),0)
0509 #define _VKI_IOR(type,nr,size) _VKI_IOC(_VKI_IOC_READ,(type),(nr),(_VKI_IOC_TYPECHECK(size)))
0510 #define _VKI_IOW(type,nr,size) _VKI_IOC(_VKI_IOC_WRITE,(type),(nr),(_VKI_IOC_TYPECHECK(size)))
0511 #define _VKI_IOWR(type,nr,size) _VKI_IOC(_VKI_IOC_READ|_VKI_IOC_WRITE,(type),(nr),(_VKI_IOC_TYPECHECK(size)))
0512
0513
0514 #define _VKI_IOC_DIR(nr) (((nr) >> _VKI_IOC_DIRSHIFT) & _VKI_IOC_DIRMASK)
0515 #define _VKI_IOC_TYPE(nr) (((nr) >> _VKI_IOC_TYPESHIFT) & _VKI_IOC_TYPEMASK)
0516 #define _VKI_IOC_NR(nr) (((nr) >> _VKI_IOC_NRSHIFT) & _VKI_IOC_NRMASK)
0517 #define _VKI_IOC_SIZE(nr) (((nr) >> _VKI_IOC_SIZESHIFT) & _VKI_IOC_SIZEMASK)
0518
0519
0520
0521
0522
0523 #define VKI_TCGETS 0x5401
0524 #define VKI_TCSETS 0x5402
0525 #define VKI_TCSETSW 0x5403
0526 #define VKI_TCSETSF 0x5404
0527 #define VKI_TCGETA 0x5405
0528 #define VKI_TCSETA 0x5406
0529 #define VKI_TCSETAW 0x5407
0530 #define VKI_TCSETAF 0x5408
0531 #define VKI_TCSBRK 0x5409
0532 #define VKI_TCXONC 0x540A
0533 #define VKI_TCFLSH 0x540B
0534 #define VKI_TIOCSCTTY 0x540E
0535 #define VKI_TIOCGPGRP 0x540F
0536 #define VKI_TIOCSPGRP 0x5410
0537 #define VKI_TIOCOUTQ 0x5411
0538 #define VKI_TIOCGWINSZ 0x5413
0539 #define VKI_TIOCSWINSZ 0x5414
0540 #define VKI_TIOCMGET 0x5415
0541 #define VKI_TIOCMBIS 0x5416
0542 #define VKI_TIOCMBIC 0x5417
0543 #define VKI_TIOCMSET 0x5418
0544 #define VKI_FIONREAD 0x541B
0545 #define VKI_TIOCLINUX 0x541C
0546 #define VKI_FIONBIO 0x5421
0547 #define VKI_TIOCNOTTY 0x5422
0548 #define VKI_TCSBRKP 0x5425
0549 #define VKI_TIOCGPTN _VKI_IOR('T',0x30, unsigned int)
0550 #define VKI_TIOCSPTLCK _VKI_IOW('T',0x31, int)
0551
0552 #define VKI_FIONCLEX 0x5450
0553 #define VKI_FIOCLEX 0x5451
0554 #define VKI_FIOASYNC 0x5452
0555 #define VKI_TIOCSERGETLSR 0x5459
0556
0557 #define VKI_TIOCGICOUNT 0x545D
0558
0559
0560
0561
0562
0563
0564 #define VKI_POLLIN 0x0001
0565
0566 struct vki_pollfd {
0567 int fd;
0568 short events;
0569 short revents;
0570 };
0571
0572
0573
0574
0575
0576 struct vki_user_i387_struct {
0577 long cwd;
0578 long swd;
0579 long twd;
0580 long fip;
0581 long fcs;
0582 long foo;
0583 long fos;
0584 long st_space[20];
0585 };
0586
0587 struct vki_user_fxsr_struct {
0588 unsigned short cwd;
0589 unsigned short swd;
0590 unsigned short twd;
0591 unsigned short fop;
0592 long fip;
0593 long fcs;
0594 long foo;
0595 long fos;
0596 long mxcsr;
0597 long reserved;
0598 long st_space[32];
0599 long xmm_space[32];
0600 long padding[56];
0601 };
0602
0603
0604
0605
0606
0607
0608
0609 struct vki_user_regs_struct {
0610 long ebx, ecx, edx, esi, edi, ebp, eax;
0611 unsigned short ds, __ds, es, __es;
0612 unsigned short fs, __fs, gs, __gs;
0613 long orig_eax, eip;
0614 unsigned short cs, __cs;
0615 long eflags, esp;
0616 unsigned short ss, __ss;
0617 };
0618
0619
0620
0621
0622
0623 typedef unsigned long vki_elf_greg_t;
0624
0625 #define VKI_ELF_NGREG (sizeof (struct vki_user_regs_struct) / sizeof(vki_elf_greg_t))
0626 typedef vki_elf_greg_t vki_elf_gregset_t[VKI_ELF_NGREG];
0627
0628 typedef struct vki_user_i387_struct vki_elf_fpregset_t;
0629 typedef struct vki_user_fxsr_struct vki_elf_fpxregset_t;
0630
0631 #define VKI_AT_SYSINFO 32
0632
0633
0634
0635
0636
0637 struct vki_ucontext {
0638 unsigned long uc_flags;
0639 struct vki_ucontext *uc_link;
0640 vki_stack_t uc_stack;
0641 struct vki_sigcontext uc_mcontext;
0642 vki_sigset_t uc_sigmask;
0643 };
0644
0645
0646
0647
0648
0649 #define VKI_GDT_ENTRY_TLS_ENTRIES 3
0650 #define VKI_GDT_ENTRY_TLS_MIN 6
0651 #define VKI_GDT_ENTRY_TLS_MAX (VKI_GDT_ENTRY_TLS_MIN + VKI_GDT_ENTRY_TLS_ENTRIES - 1)
0652
0653
0654
0655
0656
0657
0658
0659
0660
0661 struct vki_user_desc {
0662 unsigned int entry_number;
0663 unsigned long base_addr;
0664 unsigned int limit;
0665 unsigned int seg_32bit:1;
0666 unsigned int contents:2;
0667 unsigned int read_exec_only:1;
0668 unsigned int limit_in_pages:1;
0669 unsigned int seg_not_present:1;
0670 unsigned int useable:1;
0671
0672
0673
0674
0675
0676 unsigned int reserved:25;
0677 };
0678
0679
0680 typedef struct vki_user_desc vki_modify_ldt_t;
0681
0682
0683
0684
0685
0686 struct vki_ipc64_perm
0687 {
0688 __vki_kernel_key_t key;
0689 __vki_kernel_uid32_t uid;
0690 __vki_kernel_gid32_t gid;
0691 __vki_kernel_uid32_t cuid;
0692 __vki_kernel_gid32_t cgid;
0693 __vki_kernel_mode_t mode;
0694 unsigned short __pad1;
0695 unsigned short seq;
0696 unsigned short __pad2;
0697 unsigned long __unused1;
0698 unsigned long __unused2;
0699 };
0700
0701
0702
0703
0704
0705 struct vki_semid64_ds {
0706 struct vki_ipc64_perm sem_perm;
0707 __vki_kernel_time_t sem_otime;
0708 unsigned long __unused1;
0709 __vki_kernel_time_t sem_ctime;
0710 unsigned long __unused2;
0711 unsigned long sem_nsems;
0712 unsigned long __unused3;
0713 unsigned long __unused4;
0714 };
0715
0716
0717
0718
0719
0720 struct vki_msqid64_ds {
0721 struct vki_ipc64_perm msg_perm;
0722 __vki_kernel_time_t msg_stime;
0723 unsigned long __unused1;
0724 __vki_kernel_time_t msg_rtime;
0725 unsigned long __unused2;
0726 __vki_kernel_time_t msg_ctime;
0727 unsigned long __unused3;
0728 unsigned long msg_cbytes;
0729 unsigned long msg_qnum;
0730 unsigned long msg_qbytes;
0731 __vki_kernel_pid_t msg_lspid;
0732 __vki_kernel_pid_t msg_lrpid;
0733 unsigned long __unused4;
0734 unsigned long __unused5;
0735 };
0736
0737
0738
0739
0740
0741 struct vki_ipc_kludge {
0742 struct vki_msgbuf __user *msgp;
0743 long msgtyp;
0744 };
0745
0746 #define VKI_SEMOP 1
0747 #define VKI_SEMGET 2
0748 #define VKI_SEMCTL 3
0749 #define VKI_SEMTIMEDOP 4
0750 #define VKI_MSGSND 11
0751 #define VKI_MSGRCV 12
0752 #define VKI_MSGGET 13
0753 #define VKI_MSGCTL 14
0754 #define VKI_SHMAT 21
0755 #define VKI_SHMDT 22
0756 #define VKI_SHMGET 23
0757 #define VKI_SHMCTL 24
0758
0759
0760
0761
0762
0763
0764 struct vki_shmid64_ds {
0765 struct vki_ipc64_perm shm_perm;
0766 vki_size_t shm_segsz;
0767 __vki_kernel_time_t shm_atime;
0768 unsigned long __unused1;
0769 __vki_kernel_time_t shm_dtime;
0770 unsigned long __unused2;
0771 __vki_kernel_time_t shm_ctime;
0772 unsigned long __unused3;
0773 __vki_kernel_pid_t shm_cpid;
0774 __vki_kernel_pid_t shm_lpid;
0775 unsigned long shm_nattch;
0776 unsigned long __unused4;
0777 unsigned long __unused5;
0778 };
0779
0780 struct vki_shminfo64 {
0781 unsigned long shmmax;
0782 unsigned long shmmin;
0783 unsigned long shmmni;
0784 unsigned long shmseg;
0785 unsigned long shmall;
0786 unsigned long __unused1;
0787 unsigned long __unused2;
0788 unsigned long __unused3;
0789 unsigned long __unused4;
0790 };
0791
0792
0793
0794
0795
0796
0797
0798
0799
0800
0801
0802
0803
0804
0805
0806
0807
0808
0809
0810
0811
0812
0813
0814
0815
0816
0817
0818 #define VKI_PTRACE_GETREGS 12
0819 #define VKI_PTRACE_SETREGS 13
0820 #define VKI_PTRACE_GETFPREGS 14
0821 #define VKI_PTRACE_SETFPREGS 15
0822 #define VKI_PTRACE_GETFPXREGS 18
0823 #define VKI_PTRACE_SETFPXREGS 19
0824 #define VKI_PTRACE_GET_THREAD_AREA 25
0825 #define VKI_PTRACE_SET_THREAD_AREA 26
0826
0827
0828
0829
0830
0831 #define VKI_VM86_PLUS_INSTALL_CHECK 0
0832 #define VKI_VM86_ENTER 1
0833 #define VKI_VM86_ENTER_NO_BYPASS 2
0834 #define VKI_VM86_REQUEST_IRQ 3
0835 #define VKI_VM86_FREE_IRQ 4
0836 #define VKI_VM86_GET_IRQ_BITS 5
0837 #define VKI_VM86_GET_AND_RESET_IRQ 6
0838
0839 struct vki_vm86_regs {
0840
0841
0842
0843 long ebx;
0844 long ecx;
0845 long edx;
0846 long esi;
0847 long edi;
0848 long ebp;
0849 long eax;
0850 long __null_ds;
0851 long __null_es;
0852 long __null_fs;
0853 long __null_gs;
0854 long orig_eax;
0855 long eip;
0856 unsigned short cs, __csh;
0857 long eflags;
0858 long esp;
0859 unsigned short ss, __ssh;
0860
0861
0862
0863 unsigned short es, __esh;
0864 unsigned short ds, __dsh;
0865 unsigned short fs, __fsh;
0866 unsigned short gs, __gsh;
0867 };
0868
0869 struct vki_revectored_struct {
0870 unsigned long __map[8];
0871 };
0872
0873 struct vki_vm86_struct {
0874 struct vki_vm86_regs regs;
0875 unsigned long flags;
0876 unsigned long screen_bitmap;
0877 unsigned long cpu_type;
0878 struct vki_revectored_struct int_revectored;
0879 struct vki_revectored_struct int21_revectored;
0880 };
0881
0882 struct vki_vm86plus_info_struct {
0883 unsigned long force_return_for_pic:1;
0884 unsigned long vm86dbg_active:1;
0885 unsigned long vm86dbg_TFpendig:1;
0886 unsigned long unused:28;
0887 unsigned long is_vm86pus:1;
0888 unsigned char vm86dbg_intxxtab[32];
0889 };
0890
0891 struct vki_vm86plus_struct {
0892 struct vki_vm86_regs regs;
0893 unsigned long flags;
0894 unsigned long screen_bitmap;
0895 unsigned long cpu_type;
0896 struct vki_revectored_struct int_revectored;
0897 struct vki_revectored_struct int21_revectored;
0898 struct vki_vm86plus_info_struct vm86plus;
0899 };
0900
0901
0902
0903
0904
0905 #define VKI_ENOSYS 38
0906 #define VKI_EOVERFLOW 75
0907
0908
0909
0910
0911
0912 #define VKI_TIOCGSERIAL 0x541E
0913 #define VKI_TIOCSSERIAL 0x541F
0914
0915
0916
0917
0918
0919 #endif
0920
0921
0922
0923