File indexing completed on 2025-09-16 09:11:03
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 #ifndef __VKI_MIPS64_LINUX_H
0027 #define __VKI_MIPS64_LINUX_H
0028
0029 #include <config.h>
0030
0031
0032 #if defined (_MIPSEL)
0033 #define VKI_LITTLE_ENDIAN 1
0034 #elif defined (_MIPSEB)
0035 #define VKI_BIG_ENDIAN 1
0036 #endif
0037
0038
0039
0040
0041
0042 #define VKI_ICACHE (1<<0)
0043 #define VKI_DCACHE (1<<1)
0044 #define VKI_BCACHE (VKI_ICACHE | VKI_DCACHE)
0045
0046
0047
0048
0049
0050 typedef __signed__ char __vki_s8;
0051 typedef unsigned char __vki_u8;
0052
0053 typedef __signed__ short __vki_s16;
0054 typedef unsigned short __vki_u16;
0055
0056 typedef __signed__ int __vki_s32;
0057 typedef unsigned int __vki_u32;
0058
0059 typedef __signed char vki_s8;
0060 typedef unsigned char vki_u8;
0061
0062 typedef __signed short vki_s16;
0063 typedef unsigned short vki_u16;
0064
0065 typedef __signed int vki_s32;
0066 typedef unsigned int vki_u32;
0067
0068 #if (_MIPS_SZLONG == 64)
0069 typedef __signed__ long __vki_s64;
0070 typedef unsigned long __vki_u64;
0071 #else
0072 typedef __signed__ long long __vki_s64;
0073 typedef unsigned long long __vki_u64;
0074 #endif
0075
0076
0077
0078
0079
0080
0081 extern UWord VKI_PAGE_SHIFT;
0082 extern UWord VKI_PAGE_SIZE;
0083 #define VKI_PAGE_MASK (~(VKI_PAGE_SIZE-1))
0084 #define VKI_MAX_PAGE_SHIFT 16
0085 #define VKI_MAX_PAGE_SIZE (1UL << VKI_MAX_PAGE_SHIFT)
0086
0087
0088
0089
0090
0091 #define VKI_SHMLBA 0x40000
0092
0093
0094
0095
0096
0097 #define VKI_MINSIGSTKSZ 2048
0098
0099 #define VKI_SIG_BLOCK 1
0100 #define VKI_SIG_UNBLOCK 2
0101 #define VKI_SIG_SETMASK 3
0102
0103
0104 typedef void __vki_signalfn_t(int);
0105 typedef __vki_signalfn_t __user *__vki_sighandler_t;
0106
0107 typedef void __vki_restorefn_t(void);
0108 typedef __vki_restorefn_t __user *__vki_sigrestore_t;
0109
0110 #define VKI_SIG_DFL ((__vki_sighandler_t)0)
0111 #define VKI_SIG_IGN ((__vki_sighandler_t)1)
0112 #define VKI_SIG_ERR ((__vki_sighandler_t)-1)
0113
0114 #define _VKI_NSIG 128
0115 #define _VKI_NSIG_BPW (__SIZEOF_LONG__ * 8)
0116 #define _VKI_NSIG_WORDS (_VKI_NSIG / _VKI_NSIG_BPW)
0117
0118 typedef unsigned long vki_old_sigset_t;
0119
0120 typedef struct {
0121 unsigned long sig[_VKI_NSIG_WORDS];
0122 } vki_sigset_t;
0123
0124 #define VKI_SIGHUP 1
0125 #define VKI_SIGINT 2
0126 #define VKI_SIGQUIT 3
0127 #define VKI_SIGILL 4
0128 #define VKI_SIGTRAP 5
0129 #define VKI_SIGIOT 6
0130 #define VKI_SIGABRT VKI_SIGIOT
0131 #define VKI_SIGEMT 7
0132 #define VKI_SIGFPE 8
0133 #define VKI_SIGKILL 9
0134 #define VKI_SIGBUS 10
0135 #define VKI_SIGSEGV 11
0136 #define VKI_SIGSYS 12
0137 #define VKI_SIGPIPE 13
0138 #define VKI_SIGALRM 14
0139 #define VKI_SIGTERM 15
0140 #define VKI_SIGUSR1 16
0141 #define VKI_SIGUSR2 17
0142 #define VKI_SIGCHLD 18
0143 #define VKI_SIGCLD VKI_SIGCHLD
0144 #define VKI_SIGPWR 19
0145 #define VKI_SIGWINCH 20
0146 #define VKI_SIGURG 21
0147 #define VKI_SIGIO 22
0148 #define VKI_SIGPOLL VKI_SIGIO
0149 #define VKI_SIGSTOP 23
0150 #define VKI_SIGTSTP 24
0151 #define VKI_SIGCONT 25
0152 #define VKI_SIGTTIN 26
0153 #define VKI_SIGTTOU 27
0154 #define VKI_SIGVTALRM 28
0155 #define VKI_SIGPROF 29
0156 #define VKI_SIGXCPU 30
0157 #define VKI_SIGXFSZ 31
0158
0159
0160 #define VKI_SIGRTMIN 32
0161
0162 #define VKI_SIGRTMAX (_VKI_NSIG - 1)
0163
0164 #define VKI_SA_ONSTACK 0x08000000u
0165 #define VKI_SA_RESETHAND 0x80000000u
0166 #define VKI_SA_RESTART 0x10000000u
0167 #define VKI_SA_SIGINFO 0x00000008u
0168 #define VKI_SA_NODEFER 0x40000000u
0169 #define VKI_SA_NOCLDWAIT 0x00010000u
0170 #define VKI_SA_NOCLDSTOP 0x00000001u
0171
0172 #define VKI_SA_NOMASK VKI_SA_NODEFER
0173 #define VKI_SA_ONESHOT VKI_SA_RESETHAND
0174
0175
0176 #define VKI_SA_RESTORER 0x04000000
0177
0178 #define VKI_SS_ONSTACK 1
0179 #define VKI_SS_DISABLE 2
0180
0181 struct vki_old_sigaction {
0182
0183
0184
0185
0186 unsigned long sa_flags;
0187 __vki_sighandler_t ksa_handler;
0188 vki_old_sigset_t sa_mask;
0189 __vki_sigrestore_t sa_restorer;
0190 };
0191
0192 struct vki_sigaction {
0193 unsigned int sa_flags;
0194 __vki_sighandler_t sa_handler;
0195 vki_sigset_t sa_mask;
0196 };
0197
0198
0199 struct vki_sigaction_base {
0200
0201 unsigned int sa_flags;
0202 __vki_sighandler_t ksa_handler;
0203 vki_sigset_t sa_mask;
0204 __vki_sigrestore_t sa_restorer;
0205 };
0206
0207
0208
0209 typedef struct vki_sigaction_base vki_sigaction_toK_t;
0210 typedef struct vki_sigaction_base vki_sigaction_fromK_t;
0211
0212 typedef struct vki_sigaltstack {
0213 void __user *ss_sp;
0214 vki_size_t ss_size;
0215 int ss_flags;
0216 } vki_stack_t;
0217
0218
0219
0220
0221
0222 struct _vki_fpreg {
0223 unsigned short significand[4];
0224 unsigned short exponent;
0225 };
0226
0227 struct _vki_fpxreg {
0228 unsigned short significand[4];
0229 unsigned short exponent;
0230 unsigned short padding[3];
0231 };
0232
0233 struct _vki_xmmreg {
0234 unsigned long element[4];
0235 };
0236
0237 struct _vki_fpstate {
0238
0239 unsigned long cw;
0240 unsigned long sw;
0241 unsigned long tag;
0242 unsigned long ipoff;
0243 unsigned long cssel;
0244 unsigned long dataoff;
0245 unsigned long datasel;
0246 struct _vki_fpreg _st[8];
0247 unsigned short status;
0248 unsigned short magic;
0249
0250
0251 unsigned long _fxsr_env[6];
0252 unsigned long mxcsr;
0253 unsigned long reserved;
0254 struct _vki_fpxreg _fxsr_st[8];
0255 struct _vki_xmmreg _xmm[8];
0256 unsigned long padding[56];
0257 };
0258
0259
0260
0261
0262 struct vki_sigcontext {
0263 __vki_u64 sc_regs[32];
0264 __vki_u64 sc_fpregs[32];
0265 __vki_u64 sc_mdhi;
0266 __vki_u64 sc_hi1;
0267 __vki_u64 sc_hi2;
0268 __vki_u64 sc_hi3;
0269 __vki_u64 sc_mdlo;
0270 __vki_u64 sc_lo1;
0271 __vki_u64 sc_lo2;
0272 __vki_u64 sc_lo3;
0273 __vki_u64 sc_pc;
0274 __vki_u64 sc_fpc_csr;
0275 __vki_u64 sc_used_math;
0276 __vki_u64 sc_dsp;
0277 __vki_u64 sc_reserved;
0278 };
0279
0280
0281
0282
0283
0284 #define VKI_PROT_NONE 0x0
0285 #define VKI_PROT_READ 0x1
0286 #define VKI_PROT_WRITE 0x2
0287 #define VKI_PROT_EXEC 0x4
0288 #define VKI_PROT_GROWSDOWN 0x01000000
0289
0290 #define VKI_PROT_GROWSUP 0x02000000
0291
0292
0293 #define VKI_MAP_SHARED 0x001
0294 #define VKI_MAP_PRIVATE 0x002
0295
0296 #define VKI_MAP_FIXED 0x010
0297
0298 #define VKI_MAP_NORESERVE 0x0400
0299
0300
0301 #define VKI_MAP_NORESERVE 0x0400
0302 #define VKI_MAP_ANONYMOUS 0x0800
0303 #define VKI_MAP_GROWSDOWN 0x1000
0304 #define VKI_MAP_DENYWRITE 0x2000
0305 #define VKI_MAP_EXECUTABLE 0x4000
0306 #define VKI_MAP_LOCKED 0x8000
0307 #define VKI_MAP_POPULATE 0x10000
0308 #define VKI_MAP_NONBLOCK 0x20000
0309
0310
0311
0312
0313
0314 #define VKI_O_RDONLY 00
0315 #define VKI_O_WRONLY 01
0316 #define VKI_O_RDWR 02
0317 #define VKI_O_ACCMODE 03
0318
0319 #define VKI_O_CREAT 0x0100
0320 #define VKI_O_EXCL 0x0400
0321
0322 #define VKI_O_TRUNC 0x0200
0323
0324 #define VKI_O_APPEND 0x0008
0325 #define VKI_O_NONBLOCK 0x0080
0326 #define VKI_O_LARGEFILE 0x2000
0327 #define VKI_O_DIRECT 0x8000
0328
0329 #define VKI_AT_FDCWD -100
0330
0331 #define VKI_F_DUPFD 0
0332 #define VKI_F_GETFD 1
0333 #define VKI_F_SETFD 2
0334 #define VKI_F_GETFL 3
0335 #define VKI_F_SETFL 4
0336
0337 #define VKI_F_GETLK 14
0338 #define VKI_F_SETLK 6
0339 #define VKI_F_SETLKW 7
0340
0341 #define VKI_F_SETOWN 24
0342 #define VKI_F_GETOWN 23
0343 #define VKI_F_SETSIG 10
0344 #define VKI_F_GETSIG 11
0345
0346 #define VKI_F_SETOWN_EX 15
0347 #define VKI_F_GETOWN_EX 16
0348
0349 #define VKI_F_OFD_GETLK 36
0350 #define VKI_F_OFD_SETLK 37
0351 #define VKI_F_OFD_SETLKW 38
0352
0353 #define VKI_F_GETLK64 33
0354 #define VKI_F_SETLK64 34
0355 #define VKI_F_SETLKW64 35
0356
0357
0358 #define VKI_FD_CLOEXEC 1
0359
0360 #define VKI_F_LINUX_SPECIFIC_BASE 1024
0361
0362 struct vki_f_owner_ex {
0363 int type;
0364 __vki_kernel_pid_t pid;
0365 };
0366
0367
0368
0369
0370
0371 #define VKI_RLIMIT_DATA 2
0372 #define VKI_RLIMIT_STACK 3
0373 #define VKI_RLIMIT_CORE 4
0374 #define VKI_RLIMIT_NOFILE 5
0375
0376
0377
0378
0379
0380 #define VKI_SOL_SOCKET 0xffff
0381
0382 #define VKI_SO_TYPE 0x1008
0383
0384 #define VKI_SO_ATTACH_FILTER 26
0385
0386
0387
0388
0389
0390 #define VKI_SIOCATMARK _VKI_IOR('s', 7, int)
0391 #define VKI_SIOCSPGRP _VKI_IOW('s', 8, vki_pid_t)
0392 #define VKI_SIOCGPGRP _VKI_IOR('s', 9, vki_pid_t)
0393 #define VKI_SIOCGSTAMP 0x8906
0394 #define VKI_SIOCGSTAMPNS 0x8907
0395
0396
0397
0398
0399
0400
0401
0402 struct vki_stat {
0403 unsigned int st_dev;
0404 unsigned int st_pad0[3];
0405
0406 #if defined(VGABI_N32)
0407 unsigned long long st_ino;
0408 #else
0409 unsigned long st_ino;
0410 #endif
0411
0412 int st_mode;
0413 unsigned int st_nlink;
0414
0415 unsigned int st_uid;
0416 unsigned int st_gid;
0417
0418 unsigned int st_rdev;
0419 unsigned int st_pad1[3];
0420
0421 #if defined(VGABI_N32)
0422 long long st_size;
0423 #else
0424 long st_size;
0425 #endif
0426
0427
0428
0429
0430
0431 unsigned int st_atime;
0432 unsigned int st_atime_nsec;
0433
0434 unsigned int st_mtime;
0435 unsigned int st_mtime_nsec;
0436
0437 unsigned int st_ctime;
0438 unsigned int st_ctime_nsec;
0439
0440 unsigned int st_blksize;
0441 unsigned int st_pad2;
0442
0443 long long st_blocks;
0444 };
0445
0446 struct vki_stat64 {
0447 unsigned long st_dev;
0448 unsigned long st_pad0[3];
0449
0450 unsigned long long st_ino;
0451
0452 int st_mode;
0453 unsigned int st_nlink;
0454
0455 unsigned int st_uid;
0456 unsigned int st_gid;
0457
0458 unsigned long st_rdev;
0459 unsigned long st_pad1[3];
0460
0461 long long st_size;
0462
0463
0464
0465
0466
0467 unsigned long st_atime;
0468 unsigned long st_atime_nsec;
0469
0470 unsigned long st_mtime;
0471 unsigned long st_mtime_nsec;
0472
0473 unsigned long st_ctime;
0474 unsigned long st_ctime_nsec;
0475
0476 unsigned long st_blksize;
0477 unsigned long st_pad2;
0478
0479 long long st_blocks;
0480 };
0481
0482
0483
0484
0485
0486 struct vki_statfs {
0487 __vki_u32 f_type;
0488 #define f_fstyp f_type
0489 __vki_u32 f_bsize;
0490 __vki_u32 f_frsize;
0491 __vki_u32 f_blocks;
0492 __vki_u32 f_bfree;
0493 __vki_u32 f_files;
0494 __vki_u32 f_ffree;
0495 __vki_u32 f_bavail;
0496 __vki_kernel_fsid_t f_fsid;
0497 __vki_u32 f_namelen;
0498 __vki_u32 f_spare[6];
0499 };
0500
0501
0502
0503
0504
0505 struct vki_winsize {
0506 unsigned short ws_row;
0507 unsigned short ws_col;
0508 unsigned short ws_xpixel;
0509 unsigned short ws_ypixel;
0510 };
0511
0512 #define NCC 8
0513 #define NCCS 23
0514 struct vki_termio {
0515 unsigned short c_iflag;
0516 unsigned short c_oflag;
0517 unsigned short c_cflag;
0518 unsigned short c_lflag;
0519 char c_line;
0520 unsigned char c_cc[NCCS];
0521 };
0522
0523
0524
0525
0526
0527 typedef unsigned char vki_cc_t;
0528 typedef unsigned long vki_speed_t;
0529 typedef unsigned long vki_tcflag_t;
0530
0531 struct vki_termios {
0532 vki_tcflag_t c_iflag;
0533 vki_tcflag_t c_oflag;
0534 vki_tcflag_t c_cflag;
0535 vki_tcflag_t c_lflag;
0536 vki_cc_t c_line;
0537 vki_cc_t c_cc[NCCS];
0538 };
0539
0540
0541
0542
0543
0544 #define _VKI_IOC_NRBITS 8
0545 #define _VKI_IOC_TYPEBITS 8
0546 #define _VKI_IOC_SIZEBITS 13
0547 #define _VKI_IOC_DIRBITS 3
0548
0549 #define _VKI_IOC_NRMASK ((1 << _VKI_IOC_NRBITS)-1)
0550 #define _VKI_IOC_TYPEMASK ((1 << _VKI_IOC_TYPEBITS)-1)
0551 #define _VKI_IOC_SIZEMASK ((1 << _VKI_IOC_SIZEBITS)-1)
0552 #define _VKI_IOC_DIRMASK ((1 << _VKI_IOC_DIRBITS)-1)
0553
0554 #define _VKI_IOC_NRSHIFT 0
0555 #define _VKI_IOC_TYPESHIFT (_VKI_IOC_NRSHIFT+_VKI_IOC_NRBITS)
0556 #define _VKI_IOC_SIZESHIFT (_VKI_IOC_TYPESHIFT+_VKI_IOC_TYPEBITS)
0557 #define _VKI_IOC_DIRSHIFT (_VKI_IOC_SIZESHIFT+_VKI_IOC_SIZEBITS)
0558
0559 #define _VKI_IOC_NONE 1U
0560 #define _VKI_IOC_READ 2U
0561 #define _VKI_IOC_WRITE 4U
0562
0563 #define _VKI_IOC(dir,type,nr,size) \
0564 (((dir) << _VKI_IOC_DIRSHIFT) | \
0565 ((type) << _VKI_IOC_TYPESHIFT) | \
0566 ((nr) << _VKI_IOC_NRSHIFT) | \
0567 ((size) << _VKI_IOC_SIZESHIFT))
0568
0569
0570 extern unsigned int __VKI_invalid_size_argument_for_IOC;
0571
0572 #define _VKI_IO(type,nr) _VKI_IOC(_VKI_IOC_NONE,(type),(nr),0)
0573 #define _VKI_IOR(type,nr,size) _VKI_IOC(_VKI_IOC_READ,(type),(nr), \
0574 (_VKI_IOC_TYPECHECK(size)))
0575 #define _VKI_IOW(type,nr,size) _VKI_IOC(_VKI_IOC_WRITE,(type),(nr), \
0576 (_VKI_IOC_TYPECHECK(size)))
0577 #define _VKI_IOWR(type,nr,size) _VKI_IOC(_VKI_IOC_READ|_VKI_IOC_WRITE,(type), \
0578 (nr),(_VKI_IOC_TYPECHECK(size)))
0579
0580
0581 #define _VKI_IOC_DIR(nr) (((nr) >> _VKI_IOC_DIRSHIFT) & _VKI_IOC_DIRMASK)
0582 #define _VKI_IOC_TYPE(nr) (((nr) >> _VKI_IOC_TYPESHIFT) & _VKI_IOC_TYPEMASK)
0583 #define _VKI_IOC_NR(nr) (((nr) >> _VKI_IOC_NRSHIFT) & _VKI_IOC_NRMASK)
0584 #define _VKI_IOC_SIZE(nr) (((nr) >> _VKI_IOC_SIZESHIFT) & _VKI_IOC_SIZEMASK)
0585
0586
0587
0588
0589
0590 #define VKI_TCGETA 0x5401
0591 #define VKI_TCSETA 0x5402
0592
0593 #define VKI_TCSETAW 0x5403
0594 #define VKI_TCSETAF 0x5404
0595
0596 #define VKI_TCSBRK 0x5405
0597 #define VKI_TCXONC 0x5406
0598 #define VKI_TCFLSH 0x5407
0599
0600 #define VKI_TCGETS 0x540d
0601 #define VKI_TCSETS 0x540e
0602 #define VKI_TCSETSW 0x540f
0603 #define VKI_TCSETSF 0x5410
0604
0605 #define VKI_TIOCEXCL 0x740d
0606 #define VKI_TIOCNXCL 0x740e
0607 #define VKI_TIOCOUTQ 0x7472
0608 #define VKI_TIOCSTI 0x5472
0609 #define VKI_TIOCMGET 0x741d
0610 #define VKI_TIOCMBIS 0x741b
0611 #define VKI_TIOCMBIC 0x741c
0612 #define VKI_TIOCMSET 0x741a
0613 #define VKI_TIOCPKT 0x5470
0614 #define VKI_TIOCPKT_DATA 0x00
0615 #define VKI_TIOCPKT_FLUSHREAD 0x01
0616 #define VKI_TIOCPKT_FLUSHWRITE 0x02
0617 #define VKI_TIOCPKT_STOP 0x04
0618 #define VKI_TIOCPKT_START 0x08
0619 #define VKI_TIOCPKT_NOSTOP 0x10
0620 #define VKI_TIOCPKT_DOSTOP 0x20
0621
0622
0623 #define VKI_TIOCSWINSZ _VKI_IOW('t', 103, struct vki_winsize)
0624
0625 #define VKI_TIOCGWINSZ _VKI_IOR('t', 104, struct vki_winsize)
0626 #define VKI_TIOCNOTTY 0x5471
0627 #define VKI_TIOCSETD 0x7401
0628 #define VKI_TIOCGETD 0x7400
0629
0630 #define VKI_FIOCLEX 0x6601
0631 #define VKI_FIONCLEX 0x6602
0632 #define VKI_FIOASYNC 0x667d
0633 #define VKI_FIONBIO 0x667e
0634 #define VKI_FIOQSIZE 0x667f
0635
0636 #define VKI_TIOCGLTC 0x7474
0637 #define VKI_TIOCSLTC 0x7475
0638 #define VKI_TIOCSPGRP _VKI_IOW('t', 118, int)
0639 #define VKI_TIOCGPGRP _VKI_IOR('t', 119, int)
0640 #define VKI_TIOCCONS _VKI_IOW('t', 120, int)
0641
0642
0643 #define VKI_FIONREAD 0x467f
0644 #define VKI_TIOCINQ FIONREAD
0645
0646 #define VKI_TIOCGETP 0x7408
0647 #define VKI_TIOCSETP 0x7409
0648 #define VKI_TIOCSETN 0x740a
0649
0650 #define VKI_TIOCSBRK 0x5427
0651 #define VKI_TIOCCBRK 0x5428
0652 #define VKI_TIOCGSID 0x7416
0653 #define VKI_TIOCGPTN _VKI_IOR('T',0x30, unsigned int)
0654
0655 #define VKI_TIOCSPTLCK _VKI_IOW('T',0x31, int)
0656
0657
0658 #define VKI_TIOCSCTTY 0x5480
0659 #define VKI_TIOCGSOFTCAR 0x5481
0660 #define VKI_TIOCSSOFTCAR 0x5482
0661 #define VKI_TIOCLINUX 0x5483
0662 #define VKI_TIOCGSERIAL 0x5484
0663 #define VKI_TIOCSSERIAL 0x5485
0664 #define VKI_TCSBRKP 0x5486
0665 #define VKI_TIOCSERCONFIG 0x5488
0666 #define VKI_TIOCSERGWILD 0x5489
0667 #define VKI_TIOCSERSWILD 0x548a
0668 #define VKI_TIOCGLCKTRMIOS 0x548b
0669 #define VKI_TIOCSLCKTRMIOS 0x548c
0670 #define VKI_TIOCSERGSTRUCT 0x548d
0671 #define VKI_TIOCSERGETLSR 0x548e
0672 #define VKI_TIOCSERGETMULTI 0x548f
0673 #define VKI_TIOCSERSETMULTI 0x5490
0674 #define VKI_TIOCMIWAIT 0x5491
0675
0676 #define VKI_TIOCGICOUNT 0x5492
0677
0678 #define VKI_TIOCGHAYESESP 0x5493
0679 #define VKI_TIOCSHAYESESP 0x5494
0680
0681
0682
0683
0684
0685
0686 #define VKI_POLLIN 0x0001
0687
0688 struct vki_pollfd {
0689 int fd;
0690 short events;
0691 short revents;
0692 };
0693
0694
0695
0696
0697 #define VKI_ELF_NGREG 45
0698 #define VKI_ELF_NFPREG 33
0699
0700 typedef unsigned long vki_elf_greg_t;
0701 typedef vki_elf_greg_t vki_elf_gregset_t[VKI_ELF_NGREG];
0702
0703 typedef double vki_elf_fpreg_t;
0704 typedef vki_elf_fpreg_t vki_elf_fpregset_t[VKI_ELF_NFPREG];
0705
0706 typedef struct vki_user_fxsr_struct vki_elf_fpxregset_t;
0707
0708 #define VKI_AT_SYSINFO 32
0709
0710
0711
0712
0713 struct vki_ucontext {
0714 unsigned long uc_flags;
0715 struct vki_ucontext *uc_link;
0716 vki_stack_t uc_stack;
0717 struct vki_sigcontext uc_mcontext;
0718 vki_sigset_t uc_sigmask;
0719 };
0720
0721 typedef char vki_modify_ldt_t;
0722
0723
0724
0725
0726 struct vki_ipc64_perm {
0727 __vki_kernel_key_t key;
0728 __vki_kernel_uid_t uid;
0729 __vki_kernel_gid_t gid;
0730 __vki_kernel_uid_t cuid;
0731 __vki_kernel_gid_t cgid;
0732 __vki_kernel_mode_t mode;
0733 unsigned short seq;
0734 unsigned short __pad1;
0735 unsigned long __unused1;
0736 unsigned long __unused2;
0737 };
0738
0739
0740
0741
0742
0743 struct vki_semid64_ds {
0744 struct vki_ipc64_perm sem_perm;
0745 __vki_kernel_time_t sem_otime;
0746 __vki_kernel_time_t sem_ctime;
0747 unsigned long sem_nsems;
0748 unsigned long __unused1;
0749 unsigned long __unused2;
0750 };
0751
0752
0753
0754
0755
0756 struct vki_msqid64_ds {
0757 struct vki_ipc64_perm msg_perm;
0758 __vki_kernel_time_t msg_stime;
0759 __vki_kernel_time_t msg_rtime;
0760 __vki_kernel_time_t msg_ctime;
0761 unsigned long msg_cbytes;
0762 unsigned long msg_qnum;
0763 unsigned long msg_qbytes;
0764 __vki_kernel_pid_t msg_lspid;
0765 __vki_kernel_pid_t msg_lrpid;
0766 unsigned long __unused4;
0767 unsigned long __unused5;
0768 };
0769
0770
0771
0772
0773
0774 struct vki_ipc_kludge {
0775 struct vki_msgbuf __user *msgp;
0776 long msgtyp;
0777 };
0778
0779 #define VKI_SEMOP 1
0780 #define VKI_SEMGET 2
0781 #define VKI_SEMCTL 3
0782 #define VKI_SEMTIMEDOP 4
0783 #define VKI_MSGSND 11
0784 #define VKI_MSGRCV 12
0785 #define VKI_MSGGET 13
0786 #define VKI_MSGCTL 14
0787 #define VKI_SHMAT 21
0788 #define VKI_SHMDT 22
0789 #define VKI_SHMGET 23
0790 #define VKI_SHMCTL 24
0791
0792
0793
0794
0795
0796 struct vki_shmid64_ds {
0797 struct vki_ipc64_perm shm_perm;
0798 vki_size_t shm_segsz;
0799 __vki_kernel_time_t shm_atime;
0800 __vki_kernel_time_t shm_dtime;
0801 __vki_kernel_time_t shm_ctime;
0802 __vki_kernel_pid_t shm_cpid;
0803 __vki_kernel_pid_t shm_lpid;
0804 unsigned long shm_nattch;
0805 unsigned long __unused1;
0806 unsigned long __unused2;
0807 };
0808
0809 struct vki_shminfo64 {
0810 unsigned long shmmax;
0811 unsigned long shmmin;
0812 unsigned long shmmni;
0813 unsigned long shmseg;
0814 unsigned long shmall;
0815 unsigned long __unused1;
0816 unsigned long __unused2;
0817 unsigned long __unused3;
0818 unsigned long __unused4;
0819 };
0820
0821
0822
0823
0824
0825 struct vki_pt_regs {
0826 #ifdef CONFIG_32BIT
0827
0828 unsigned long pad0[6];
0829 #endif
0830
0831
0832 unsigned long regs[32];
0833
0834
0835 unsigned long cp0_status;
0836 unsigned long hi;
0837 unsigned long lo;
0838 #ifdef CONFIG_CPU_HAS_SMARTMIPS
0839 unsigned long acx;
0840 #endif
0841 unsigned long cp0_badvaddr;
0842 unsigned long cp0_cause;
0843 unsigned long cp0_epc;
0844 #ifdef CONFIG_MIPS_MT_SMTC
0845 unsigned long cp0_tcstatus;
0846 #endif
0847 #ifdef CONFIG_CPU_CAVIUM_OCTEON
0848 unsigned long long mpl[3];
0849 unsigned long long mtp[3];
0850 #endif
0851 } __attribute__ ((aligned (8)));
0852
0853
0854
0855
0856
0857 #define VKI_MIPS64_EF_R0 0
0858 #define VKI_MIPS64_EF_R1 1
0859 #define VKI_MIPS64_EF_R2 2
0860 #define VKI_MIPS64_EF_R3 3
0861 #define VKI_MIPS64_EF_R4 4
0862 #define VKI_MIPS64_EF_R5 5
0863 #define VKI_MIPS64_EF_R6 6
0864 #define VKI_MIPS64_EF_R7 7
0865 #define VKI_MIPS64_EF_R8 8
0866 #define VKI_MIPS64_EF_R9 9
0867 #define VKI_MIPS64_EF_R10 10
0868 #define VKI_MIPS64_EF_R11 11
0869 #define VKI_MIPS64_EF_R12 12
0870 #define VKI_MIPS64_EF_R13 13
0871 #define VKI_MIPS64_EF_R14 14
0872 #define VKI_MIPS64_EF_R15 15
0873 #define VKI_MIPS64_EF_R16 16
0874 #define VKI_MIPS64_EF_R17 17
0875 #define VKI_MIPS64_EF_R18 18
0876 #define VKI_MIPS64_EF_R19 19
0877 #define VKI_MIPS64_EF_R20 20
0878 #define VKI_MIPS64_EF_R21 21
0879 #define VKI_MIPS64_EF_R22 22
0880 #define VKI_MIPS64_EF_R23 23
0881 #define VKI_MIPS64_EF_R24 24
0882 #define VKI_MIPS64_EF_R25 25
0883 #define VKI_MIPS64_EF_R26 26
0884 #define VKI_MIPS64_EF_R27 27
0885 #define VKI_MIPS64_EF_R28 28
0886 #define VKI_MIPS64_EF_R29 29
0887 #define VKI_MIPS64_EF_R30 30
0888 #define VKI_MIPS64_EF_R31 31
0889 #define VKI_MIPS64_EF_LO 32
0890 #define VKI_MIPS64_EF_HI 33
0891 #define VKI_MIPS64_EF_CP0_EPC 34
0892 #define VKI_MIPS64_EF_CP0_BADVADDR 35
0893 #define VKI_MIPS64_EF_CP0_STATUS 36
0894 #define VKI_MIPS64_EF_CP0_CAUSE 37
0895
0896
0897
0898
0899
0900 #define VKI_PTRACE_GETREGS 12
0901 #define VKI_PTRACE_SETREGS 13
0902 #define VKI_PTRACE_GETFPREGS 14
0903 #define VKI_PTRACE_SETFPREGS 15
0904 #define VKI_PTRACE_GETFPXREGS 18
0905 #define VKI_PTRACE_SETFPXREGS 19
0906
0907
0908 #define VKI_PTRACE_PEEKTEXT_3264 0xc0
0909 #define VKI_PTRACE_PEEKDATA_3264 0xc1
0910 #define VKI_PTRACE_POKETEXT_3264 0xc2
0911 #define VKI_PTRACE_POKEDATA_3264 0xc3
0912 #define VKI_PTRACE_GET_THREAD_AREA_3264 0xc4s
0913
0914
0915
0916
0917
0918 #define HAVE_ARCH_SIGINFO_T
0919 typedef union vki_sigval {
0920 int sival_int;
0921 void __user *sival_ptr;
0922 } vki_sigval_t;
0923
0924 #ifndef __VKI_ARCH_SI_PREAMBLE_SIZE
0925 #if defined(VGABI_64)
0926 #define __VKI_ARCH_SI_PREAMBLE_SIZE (4 * sizeof(int))
0927 #elif defined(VGABI_N32)
0928 #define __VKI_ARCH_SI_PREAMBLE_SIZE (3 * sizeof(int))
0929 #else
0930 #error unknown mips64 abi
0931 #endif
0932 #endif
0933
0934 #define VKI_SI_MAX_SIZE 128
0935
0936 #ifndef VKI_SI_PAD_SIZE
0937 #define VKI_SI_PAD_SIZE ((VKI_SI_MAX_SIZE - __VKI_ARCH_SI_PREAMBLE_SIZE) / sizeof(int))
0938 #endif
0939
0940 #ifndef __VKI_ARCH_SI_UID_T
0941 #define __VKI_ARCH_SI_UID_T vki_uid_t
0942 #endif
0943
0944 #ifndef __VKI_ARCH_SI_BAND_T
0945 #define __VKI_ARCH_SI_BAND_T long
0946 #endif
0947
0948 typedef struct vki_siginfo {
0949 int si_signo;
0950 int si_code;
0951 int si_errno;
0952 int __pad0[VKI_SI_MAX_SIZE / sizeof(int) - VKI_SI_PAD_SIZE - 3];
0953
0954 union {
0955 int _pad[VKI_SI_PAD_SIZE];
0956
0957
0958 struct {
0959 vki_pid_t _pid;
0960 __VKI_ARCH_SI_UID_T _uid;
0961 } _kill;
0962
0963
0964 struct {
0965 vki_timer_t _tid;
0966 int _overrun;
0967 char _pad[sizeof( __VKI_ARCH_SI_UID_T) - sizeof(int)];
0968 vki_sigval_t _sigval;
0969 int _sys_private;
0970 } _timer;
0971
0972
0973 struct {
0974 vki_pid_t _pid;
0975 __VKI_ARCH_SI_UID_T _uid;
0976 vki_sigval_t _sigval;
0977 } _rt;
0978
0979
0980 struct {
0981 vki_pid_t _pid;
0982 __VKI_ARCH_SI_UID_T _uid;
0983 int _status;
0984 vki_clock_t _utime;
0985 vki_clock_t _stime;
0986 } _sigchld;
0987
0988
0989 struct {
0990 vki_pid_t _pid;
0991 vki_clock_t _utime;
0992 int _status;
0993 vki_clock_t _stime;
0994 } _irix_sigchld;
0995
0996
0997 struct {
0998 void __user *_addr;
0999 #ifdef __ARCH_SI_TRAPNO
1000 int _trapno;
1001 #endif
1002 } _sigfault;
1003
1004
1005 struct {
1006 __VKI_ARCH_SI_BAND_T _band;
1007 int _fd;
1008 } _sigpoll;
1009 } _sifields;
1010 } vki_siginfo_t;
1011
1012
1013
1014
1015 #define VKI_BRK_OVERFLOW 6
1016 #define VKI_BRK_DIVZERO 7
1017
1018
1019
1020
1021 enum vki_sock_type {
1022 VKI_SOCK_STREAM = 2,
1023
1024 };
1025 #define ARCH_HAS_SOCKET_TYPES 1
1026
1027
1028
1029
1030
1031 #define VKI_ENOSYS 89
1032 #define VKI_EOVERFLOW 79
1033
1034
1035
1036
1037
1038 #define VKI_EOPNOTSUPP 122
1039
1040
1041 #endif
1042
1043
1044
1045