File indexing completed on 2026-05-06 08:54:47
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 #define VKI_MAP_FIXED_NOREPLACE 0x100000
0310
0311
0312
0313
0314
0315 #define VKI_O_RDONLY 00
0316 #define VKI_O_WRONLY 01
0317 #define VKI_O_RDWR 02
0318 #define VKI_O_ACCMODE 03
0319
0320 #define VKI_O_CREAT 0x0100
0321 #define VKI_O_EXCL 0x0400
0322
0323 #define VKI_O_TRUNC 0x0200
0324
0325 #define VKI_O_APPEND 0x0008
0326 #define VKI_O_NONBLOCK 0x0080
0327 #define VKI_O_LARGEFILE 0x2000
0328 #define VKI_O_DIRECT 0x8000
0329
0330 #define VKI_AT_FDCWD -100
0331
0332 #define VKI_F_DUPFD 0
0333 #define VKI_F_GETFD 1
0334 #define VKI_F_SETFD 2
0335 #define VKI_F_GETFL 3
0336 #define VKI_F_SETFL 4
0337
0338 #define VKI_F_GETLK 14
0339 #define VKI_F_SETLK 6
0340 #define VKI_F_SETLKW 7
0341
0342 #define VKI_F_SETOWN 24
0343 #define VKI_F_GETOWN 23
0344 #define VKI_F_SETSIG 10
0345 #define VKI_F_GETSIG 11
0346
0347 #define VKI_F_SETOWN_EX 15
0348 #define VKI_F_GETOWN_EX 16
0349
0350 #define VKI_F_OFD_GETLK 36
0351 #define VKI_F_OFD_SETLK 37
0352 #define VKI_F_OFD_SETLKW 38
0353
0354 #define VKI_F_GETLK64 33
0355 #define VKI_F_SETLK64 34
0356 #define VKI_F_SETLKW64 35
0357
0358
0359 #define VKI_FD_CLOEXEC 1
0360
0361 #define VKI_F_LINUX_SPECIFIC_BASE 1024
0362
0363 struct vki_f_owner_ex {
0364 int type;
0365 __vki_kernel_pid_t pid;
0366 };
0367
0368
0369
0370
0371
0372 #define VKI_RLIMIT_DATA 2
0373 #define VKI_RLIMIT_STACK 3
0374 #define VKI_RLIMIT_CORE 4
0375 #define VKI_RLIMIT_NOFILE 5
0376
0377
0378
0379
0380
0381 #define VKI_SOL_SOCKET 0xffff
0382
0383 #define VKI_SO_TYPE 0x1008
0384
0385 #define VKI_SO_ATTACH_FILTER 26
0386
0387
0388
0389
0390
0391 #define VKI_SIOCATMARK _VKI_IOR('s', 7, int)
0392 #define VKI_SIOCSPGRP _VKI_IOW('s', 8, vki_pid_t)
0393 #define VKI_SIOCGPGRP _VKI_IOR('s', 9, vki_pid_t)
0394 #define VKI_SIOCGSTAMP 0x8906
0395 #define VKI_SIOCGSTAMPNS 0x8907
0396
0397
0398
0399
0400
0401
0402
0403 struct vki_stat {
0404 unsigned int st_dev;
0405 unsigned int st_pad0[3];
0406
0407 #if defined(VGABI_N32)
0408 unsigned long long st_ino;
0409 #else
0410 unsigned long st_ino;
0411 #endif
0412
0413 int st_mode;
0414 unsigned int st_nlink;
0415
0416 unsigned int st_uid;
0417 unsigned int st_gid;
0418
0419 unsigned int st_rdev;
0420 unsigned int st_pad1[3];
0421
0422 #if defined(VGABI_N32)
0423 long long st_size;
0424 #else
0425 long st_size;
0426 #endif
0427
0428
0429
0430
0431
0432 unsigned int st_atime;
0433 unsigned int st_atime_nsec;
0434
0435 unsigned int st_mtime;
0436 unsigned int st_mtime_nsec;
0437
0438 unsigned int st_ctime;
0439 unsigned int st_ctime_nsec;
0440
0441 unsigned int st_blksize;
0442 unsigned int st_pad2;
0443
0444 long long st_blocks;
0445 };
0446
0447 struct vki_stat64 {
0448 unsigned long st_dev;
0449 unsigned long st_pad0[3];
0450
0451 unsigned long long st_ino;
0452
0453 int st_mode;
0454 unsigned int st_nlink;
0455
0456 unsigned int st_uid;
0457 unsigned int st_gid;
0458
0459 unsigned long st_rdev;
0460 unsigned long st_pad1[3];
0461
0462 long long st_size;
0463
0464
0465
0466
0467
0468 unsigned long st_atime;
0469 unsigned long st_atime_nsec;
0470
0471 unsigned long st_mtime;
0472 unsigned long st_mtime_nsec;
0473
0474 unsigned long st_ctime;
0475 unsigned long st_ctime_nsec;
0476
0477 unsigned long st_blksize;
0478 unsigned long st_pad2;
0479
0480 long long st_blocks;
0481 };
0482
0483
0484
0485
0486
0487 struct vki_statfs {
0488 __vki_u32 f_type;
0489 #define f_fstyp f_type
0490 __vki_u32 f_bsize;
0491 __vki_u32 f_frsize;
0492 __vki_u32 f_blocks;
0493 __vki_u32 f_bfree;
0494 __vki_u32 f_files;
0495 __vki_u32 f_ffree;
0496 __vki_u32 f_bavail;
0497 __vki_kernel_fsid_t f_fsid;
0498 __vki_u32 f_namelen;
0499 __vki_u32 f_spare[6];
0500 };
0501
0502
0503
0504
0505
0506 struct vki_winsize {
0507 unsigned short ws_row;
0508 unsigned short ws_col;
0509 unsigned short ws_xpixel;
0510 unsigned short ws_ypixel;
0511 };
0512
0513 #define NCC 8
0514 #define NCCS 23
0515 struct vki_termio {
0516 unsigned short c_iflag;
0517 unsigned short c_oflag;
0518 unsigned short c_cflag;
0519 unsigned short c_lflag;
0520 char c_line;
0521 unsigned char c_cc[NCCS];
0522 };
0523
0524
0525
0526
0527
0528 typedef unsigned char vki_cc_t;
0529 typedef unsigned long vki_speed_t;
0530 typedef unsigned long vki_tcflag_t;
0531
0532 struct vki_termios {
0533 vki_tcflag_t c_iflag;
0534 vki_tcflag_t c_oflag;
0535 vki_tcflag_t c_cflag;
0536 vki_tcflag_t c_lflag;
0537 vki_cc_t c_line;
0538 vki_cc_t c_cc[NCCS];
0539 };
0540
0541
0542
0543
0544
0545 #define _VKI_IOC_NRBITS 8
0546 #define _VKI_IOC_TYPEBITS 8
0547 #define _VKI_IOC_SIZEBITS 13
0548 #define _VKI_IOC_DIRBITS 3
0549
0550 #define _VKI_IOC_NRMASK ((1 << _VKI_IOC_NRBITS)-1)
0551 #define _VKI_IOC_TYPEMASK ((1 << _VKI_IOC_TYPEBITS)-1)
0552 #define _VKI_IOC_SIZEMASK ((1 << _VKI_IOC_SIZEBITS)-1)
0553 #define _VKI_IOC_DIRMASK ((1 << _VKI_IOC_DIRBITS)-1)
0554
0555 #define _VKI_IOC_NRSHIFT 0
0556 #define _VKI_IOC_TYPESHIFT (_VKI_IOC_NRSHIFT+_VKI_IOC_NRBITS)
0557 #define _VKI_IOC_SIZESHIFT (_VKI_IOC_TYPESHIFT+_VKI_IOC_TYPEBITS)
0558 #define _VKI_IOC_DIRSHIFT (_VKI_IOC_SIZESHIFT+_VKI_IOC_SIZEBITS)
0559
0560 #define _VKI_IOC_NONE 1U
0561 #define _VKI_IOC_READ 2U
0562 #define _VKI_IOC_WRITE 4U
0563
0564 #define _VKI_IOC(dir,type,nr,size) \
0565 (((dir) << _VKI_IOC_DIRSHIFT) | \
0566 ((type) << _VKI_IOC_TYPESHIFT) | \
0567 ((nr) << _VKI_IOC_NRSHIFT) | \
0568 ((size) << _VKI_IOC_SIZESHIFT))
0569
0570
0571 extern unsigned int __VKI_invalid_size_argument_for_IOC;
0572
0573 #define _VKI_IO(type,nr) _VKI_IOC(_VKI_IOC_NONE,(type),(nr),0)
0574 #define _VKI_IOR(type,nr,size) _VKI_IOC(_VKI_IOC_READ,(type),(nr), \
0575 (_VKI_IOC_TYPECHECK(size)))
0576 #define _VKI_IOW(type,nr,size) _VKI_IOC(_VKI_IOC_WRITE,(type),(nr), \
0577 (_VKI_IOC_TYPECHECK(size)))
0578 #define _VKI_IOWR(type,nr,size) _VKI_IOC(_VKI_IOC_READ|_VKI_IOC_WRITE,(type), \
0579 (nr),(_VKI_IOC_TYPECHECK(size)))
0580
0581
0582 #define _VKI_IOC_DIR(nr) (((nr) >> _VKI_IOC_DIRSHIFT) & _VKI_IOC_DIRMASK)
0583 #define _VKI_IOC_TYPE(nr) (((nr) >> _VKI_IOC_TYPESHIFT) & _VKI_IOC_TYPEMASK)
0584 #define _VKI_IOC_NR(nr) (((nr) >> _VKI_IOC_NRSHIFT) & _VKI_IOC_NRMASK)
0585 #define _VKI_IOC_SIZE(nr) (((nr) >> _VKI_IOC_SIZESHIFT) & _VKI_IOC_SIZEMASK)
0586
0587
0588
0589
0590
0591 #define VKI_TCGETA 0x5401
0592 #define VKI_TCSETA 0x5402
0593
0594 #define VKI_TCSETAW 0x5403
0595 #define VKI_TCSETAF 0x5404
0596
0597 #define VKI_TCSBRK 0x5405
0598 #define VKI_TCXONC 0x5406
0599 #define VKI_TCFLSH 0x5407
0600
0601 #define VKI_TCGETS 0x540d
0602 #define VKI_TCSETS 0x540e
0603 #define VKI_TCSETSW 0x540f
0604 #define VKI_TCSETSF 0x5410
0605
0606 #define VKI_TIOCEXCL 0x740d
0607 #define VKI_TIOCNXCL 0x740e
0608 #define VKI_TIOCOUTQ 0x7472
0609 #define VKI_TIOCSTI 0x5472
0610 #define VKI_TIOCMGET 0x741d
0611 #define VKI_TIOCMBIS 0x741b
0612 #define VKI_TIOCMBIC 0x741c
0613 #define VKI_TIOCMSET 0x741a
0614 #define VKI_TIOCPKT 0x5470
0615 #define VKI_TIOCPKT_DATA 0x00
0616 #define VKI_TIOCPKT_FLUSHREAD 0x01
0617 #define VKI_TIOCPKT_FLUSHWRITE 0x02
0618 #define VKI_TIOCPKT_STOP 0x04
0619 #define VKI_TIOCPKT_START 0x08
0620 #define VKI_TIOCPKT_NOSTOP 0x10
0621 #define VKI_TIOCPKT_DOSTOP 0x20
0622
0623
0624 #define VKI_TIOCSWINSZ _VKI_IOW('t', 103, struct vki_winsize)
0625
0626 #define VKI_TIOCGWINSZ _VKI_IOR('t', 104, struct vki_winsize)
0627 #define VKI_TIOCNOTTY 0x5471
0628 #define VKI_TIOCSETD 0x7401
0629 #define VKI_TIOCGETD 0x7400
0630
0631 #define VKI_FIOCLEX 0x6601
0632 #define VKI_FIONCLEX 0x6602
0633 #define VKI_FIOASYNC 0x667d
0634 #define VKI_FIONBIO 0x667e
0635 #define VKI_FIOQSIZE 0x667f
0636
0637 #define VKI_TIOCGLTC 0x7474
0638 #define VKI_TIOCSLTC 0x7475
0639 #define VKI_TIOCSPGRP _VKI_IOW('t', 118, int)
0640 #define VKI_TIOCGPGRP _VKI_IOR('t', 119, int)
0641 #define VKI_TIOCCONS _VKI_IOW('t', 120, int)
0642
0643
0644 #define VKI_FIONREAD 0x467f
0645 #define VKI_TIOCINQ FIONREAD
0646
0647 #define VKI_TIOCGETP 0x7408
0648 #define VKI_TIOCSETP 0x7409
0649 #define VKI_TIOCSETN 0x740a
0650
0651 #define VKI_TIOCSBRK 0x5427
0652 #define VKI_TIOCCBRK 0x5428
0653 #define VKI_TIOCGSID 0x7416
0654 #define VKI_TIOCGPTN _VKI_IOR('T',0x30, unsigned int)
0655
0656 #define VKI_TIOCSPTLCK _VKI_IOW('T',0x31, int)
0657
0658
0659 #define VKI_TIOCSCTTY 0x5480
0660 #define VKI_TIOCGSOFTCAR 0x5481
0661 #define VKI_TIOCSSOFTCAR 0x5482
0662 #define VKI_TIOCLINUX 0x5483
0663 #define VKI_TIOCGSERIAL 0x5484
0664 #define VKI_TIOCSSERIAL 0x5485
0665 #define VKI_TCSBRKP 0x5486
0666 #define VKI_TIOCSERCONFIG 0x5488
0667 #define VKI_TIOCSERGWILD 0x5489
0668 #define VKI_TIOCSERSWILD 0x548a
0669 #define VKI_TIOCGLCKTRMIOS 0x548b
0670 #define VKI_TIOCSLCKTRMIOS 0x548c
0671 #define VKI_TIOCSERGSTRUCT 0x548d
0672 #define VKI_TIOCSERGETLSR 0x548e
0673 #define VKI_TIOCSERGETMULTI 0x548f
0674 #define VKI_TIOCSERSETMULTI 0x5490
0675 #define VKI_TIOCMIWAIT 0x5491
0676
0677 #define VKI_TIOCGICOUNT 0x5492
0678
0679 #define VKI_TIOCGHAYESESP 0x5493
0680 #define VKI_TIOCSHAYESESP 0x5494
0681
0682
0683
0684
0685
0686
0687 #define VKI_POLLIN 0x0001
0688
0689 struct vki_pollfd {
0690 int fd;
0691 short events;
0692 short revents;
0693 };
0694
0695
0696
0697
0698 #define VKI_ELF_NGREG 45
0699 #define VKI_ELF_NFPREG 33
0700
0701 typedef unsigned long vki_elf_greg_t;
0702 typedef vki_elf_greg_t vki_elf_gregset_t[VKI_ELF_NGREG];
0703
0704 typedef double vki_elf_fpreg_t;
0705 typedef vki_elf_fpreg_t vki_elf_fpregset_t[VKI_ELF_NFPREG];
0706
0707 typedef struct vki_user_fxsr_struct vki_elf_fpxregset_t;
0708
0709 #define VKI_AT_SYSINFO 32
0710
0711
0712
0713
0714 struct vki_ucontext {
0715 unsigned long uc_flags;
0716 struct vki_ucontext *uc_link;
0717 vki_stack_t uc_stack;
0718 struct vki_sigcontext uc_mcontext;
0719 vki_sigset_t uc_sigmask;
0720 };
0721
0722 typedef char vki_modify_ldt_t;
0723
0724
0725
0726
0727 struct vki_ipc64_perm {
0728 __vki_kernel_key_t key;
0729 __vki_kernel_uid_t uid;
0730 __vki_kernel_gid_t gid;
0731 __vki_kernel_uid_t cuid;
0732 __vki_kernel_gid_t cgid;
0733 __vki_kernel_mode_t mode;
0734 unsigned short seq;
0735 unsigned short __pad1;
0736 unsigned long __unused1;
0737 unsigned long __unused2;
0738 };
0739
0740
0741
0742
0743
0744 struct vki_semid64_ds {
0745 struct vki_ipc64_perm sem_perm;
0746 __vki_kernel_time_t sem_otime;
0747 __vki_kernel_time_t sem_ctime;
0748 unsigned long sem_nsems;
0749 unsigned long __unused1;
0750 unsigned long __unused2;
0751 };
0752
0753
0754
0755
0756
0757 struct vki_msqid64_ds {
0758 struct vki_ipc64_perm msg_perm;
0759 __vki_kernel_time_t msg_stime;
0760 __vki_kernel_time_t msg_rtime;
0761 __vki_kernel_time_t msg_ctime;
0762 unsigned long msg_cbytes;
0763 unsigned long msg_qnum;
0764 unsigned long msg_qbytes;
0765 __vki_kernel_pid_t msg_lspid;
0766 __vki_kernel_pid_t msg_lrpid;
0767 unsigned long __unused4;
0768 unsigned long __unused5;
0769 };
0770
0771
0772
0773
0774
0775 struct vki_ipc_kludge {
0776 struct vki_msgbuf __user *msgp;
0777 long msgtyp;
0778 };
0779
0780 #define VKI_SEMOP 1
0781 #define VKI_SEMGET 2
0782 #define VKI_SEMCTL 3
0783 #define VKI_SEMTIMEDOP 4
0784 #define VKI_MSGSND 11
0785 #define VKI_MSGRCV 12
0786 #define VKI_MSGGET 13
0787 #define VKI_MSGCTL 14
0788 #define VKI_SHMAT 21
0789 #define VKI_SHMDT 22
0790 #define VKI_SHMGET 23
0791 #define VKI_SHMCTL 24
0792
0793
0794
0795
0796
0797 struct vki_shmid64_ds {
0798 struct vki_ipc64_perm shm_perm;
0799 vki_size_t shm_segsz;
0800 __vki_kernel_time_t shm_atime;
0801 __vki_kernel_time_t shm_dtime;
0802 __vki_kernel_time_t shm_ctime;
0803 __vki_kernel_pid_t shm_cpid;
0804 __vki_kernel_pid_t shm_lpid;
0805 unsigned long shm_nattch;
0806 unsigned long __unused1;
0807 unsigned long __unused2;
0808 };
0809
0810 struct vki_shminfo64 {
0811 unsigned long shmmax;
0812 unsigned long shmmin;
0813 unsigned long shmmni;
0814 unsigned long shmseg;
0815 unsigned long shmall;
0816 unsigned long __unused1;
0817 unsigned long __unused2;
0818 unsigned long __unused3;
0819 unsigned long __unused4;
0820 };
0821
0822
0823
0824
0825
0826 struct vki_pt_regs {
0827 #ifdef CONFIG_32BIT
0828
0829 unsigned long pad0[6];
0830 #endif
0831
0832
0833 unsigned long regs[32];
0834
0835
0836 unsigned long cp0_status;
0837 unsigned long hi;
0838 unsigned long lo;
0839 #ifdef CONFIG_CPU_HAS_SMARTMIPS
0840 unsigned long acx;
0841 #endif
0842 unsigned long cp0_badvaddr;
0843 unsigned long cp0_cause;
0844 unsigned long cp0_epc;
0845 #ifdef CONFIG_MIPS_MT_SMTC
0846 unsigned long cp0_tcstatus;
0847 #endif
0848 #ifdef CONFIG_CPU_CAVIUM_OCTEON
0849 unsigned long long mpl[3];
0850 unsigned long long mtp[3];
0851 #endif
0852 } __attribute__ ((aligned (8)));
0853
0854
0855
0856
0857
0858 #define VKI_MIPS64_EF_R0 0
0859 #define VKI_MIPS64_EF_R1 1
0860 #define VKI_MIPS64_EF_R2 2
0861 #define VKI_MIPS64_EF_R3 3
0862 #define VKI_MIPS64_EF_R4 4
0863 #define VKI_MIPS64_EF_R5 5
0864 #define VKI_MIPS64_EF_R6 6
0865 #define VKI_MIPS64_EF_R7 7
0866 #define VKI_MIPS64_EF_R8 8
0867 #define VKI_MIPS64_EF_R9 9
0868 #define VKI_MIPS64_EF_R10 10
0869 #define VKI_MIPS64_EF_R11 11
0870 #define VKI_MIPS64_EF_R12 12
0871 #define VKI_MIPS64_EF_R13 13
0872 #define VKI_MIPS64_EF_R14 14
0873 #define VKI_MIPS64_EF_R15 15
0874 #define VKI_MIPS64_EF_R16 16
0875 #define VKI_MIPS64_EF_R17 17
0876 #define VKI_MIPS64_EF_R18 18
0877 #define VKI_MIPS64_EF_R19 19
0878 #define VKI_MIPS64_EF_R20 20
0879 #define VKI_MIPS64_EF_R21 21
0880 #define VKI_MIPS64_EF_R22 22
0881 #define VKI_MIPS64_EF_R23 23
0882 #define VKI_MIPS64_EF_R24 24
0883 #define VKI_MIPS64_EF_R25 25
0884 #define VKI_MIPS64_EF_R26 26
0885 #define VKI_MIPS64_EF_R27 27
0886 #define VKI_MIPS64_EF_R28 28
0887 #define VKI_MIPS64_EF_R29 29
0888 #define VKI_MIPS64_EF_R30 30
0889 #define VKI_MIPS64_EF_R31 31
0890 #define VKI_MIPS64_EF_LO 32
0891 #define VKI_MIPS64_EF_HI 33
0892 #define VKI_MIPS64_EF_CP0_EPC 34
0893 #define VKI_MIPS64_EF_CP0_BADVADDR 35
0894 #define VKI_MIPS64_EF_CP0_STATUS 36
0895 #define VKI_MIPS64_EF_CP0_CAUSE 37
0896
0897
0898
0899
0900
0901 #define VKI_PTRACE_GETREGS 12
0902 #define VKI_PTRACE_SETREGS 13
0903 #define VKI_PTRACE_GETFPREGS 14
0904 #define VKI_PTRACE_SETFPREGS 15
0905 #define VKI_PTRACE_GETFPXREGS 18
0906 #define VKI_PTRACE_SETFPXREGS 19
0907
0908
0909 #define VKI_PTRACE_PEEKTEXT_3264 0xc0
0910 #define VKI_PTRACE_PEEKDATA_3264 0xc1
0911 #define VKI_PTRACE_POKETEXT_3264 0xc2
0912 #define VKI_PTRACE_POKEDATA_3264 0xc3
0913 #define VKI_PTRACE_GET_THREAD_AREA_3264 0xc4s
0914
0915
0916
0917
0918
0919 #define HAVE_ARCH_SIGINFO_T
0920 typedef union vki_sigval {
0921 int sival_int;
0922 void __user *sival_ptr;
0923 } vki_sigval_t;
0924
0925 #ifndef __VKI_ARCH_SI_PREAMBLE_SIZE
0926 #if defined(VGABI_64)
0927 #define __VKI_ARCH_SI_PREAMBLE_SIZE (4 * sizeof(int))
0928 #elif defined(VGABI_N32)
0929 #define __VKI_ARCH_SI_PREAMBLE_SIZE (3 * sizeof(int))
0930 #else
0931 #error unknown mips64 abi
0932 #endif
0933 #endif
0934
0935 #define VKI_SI_MAX_SIZE 128
0936
0937 #ifndef VKI_SI_PAD_SIZE
0938 #define VKI_SI_PAD_SIZE ((VKI_SI_MAX_SIZE - __VKI_ARCH_SI_PREAMBLE_SIZE) / sizeof(int))
0939 #endif
0940
0941 #ifndef __VKI_ARCH_SI_UID_T
0942 #define __VKI_ARCH_SI_UID_T vki_uid_t
0943 #endif
0944
0945 #ifndef __VKI_ARCH_SI_BAND_T
0946 #define __VKI_ARCH_SI_BAND_T long
0947 #endif
0948
0949 typedef struct vki_siginfo {
0950 int si_signo;
0951 int si_code;
0952 int si_errno;
0953 int __pad0[VKI_SI_MAX_SIZE / sizeof(int) - VKI_SI_PAD_SIZE - 3];
0954
0955 union {
0956 int _pad[VKI_SI_PAD_SIZE];
0957
0958
0959 struct {
0960 vki_pid_t _pid;
0961 __VKI_ARCH_SI_UID_T _uid;
0962 } _kill;
0963
0964
0965 struct {
0966 vki_timer_t _tid;
0967 int _overrun;
0968 char _pad[sizeof( __VKI_ARCH_SI_UID_T) - sizeof(int)];
0969 vki_sigval_t _sigval;
0970 int _sys_private;
0971 } _timer;
0972
0973
0974 struct {
0975 vki_pid_t _pid;
0976 __VKI_ARCH_SI_UID_T _uid;
0977 vki_sigval_t _sigval;
0978 } _rt;
0979
0980
0981 struct {
0982 vki_pid_t _pid;
0983 __VKI_ARCH_SI_UID_T _uid;
0984 int _status;
0985 vki_clock_t _utime;
0986 vki_clock_t _stime;
0987 } _sigchld;
0988
0989
0990 struct {
0991 vki_pid_t _pid;
0992 vki_clock_t _utime;
0993 int _status;
0994 vki_clock_t _stime;
0995 } _irix_sigchld;
0996
0997
0998 struct {
0999 void __user *_addr;
1000 #ifdef __ARCH_SI_TRAPNO
1001 int _trapno;
1002 #endif
1003 } _sigfault;
1004
1005
1006 struct {
1007 __VKI_ARCH_SI_BAND_T _band;
1008 int _fd;
1009 } _sigpoll;
1010 } _sifields;
1011 } vki_siginfo_t;
1012
1013
1014
1015
1016 #define VKI_BRK_OVERFLOW 6
1017 #define VKI_BRK_DIVZERO 7
1018
1019
1020
1021
1022 enum vki_sock_type {
1023 VKI_SOCK_STREAM = 2,
1024
1025 };
1026 #define ARCH_HAS_SOCKET_TYPES 1
1027
1028
1029
1030
1031
1032 #define VKI_ENOSYS 89
1033 #define VKI_EOVERFLOW 79
1034
1035
1036
1037
1038
1039 #define VKI_EOPNOTSUPP 122
1040
1041
1042 #endif
1043
1044
1045
1046