--- /dev/null
+#ifndef _INTERNAL_ATOMIC_H
+#define _INTERNAL_ATOMIC_H
+
+#include <stdint.h>
+
+static inline int a_ctz_l(unsigned long x)
+{
+ static const char debruijn32[32] = {
+ 0, 1, 23, 2, 29, 24, 19, 3, 30, 27, 25, 11, 20, 8, 4, 13,
+ 31, 22, 28, 18, 26, 10, 7, 12, 21, 17, 9, 6, 16, 5, 15, 14
+ };
+ return debruijn32[(x&-x)*0x076be629 >> 27];
+}
+
+static inline int a_ctz_64(uint64_t x)
+{
+ uint32_t y = x;
+ if (!y) {
+ y = x>>32;
+ return 32 + a_ctz_l(y);
+ }
+ return a_ctz_l(y);
+}
+
+int __sh_cas(volatile int *, int, int);
+int __sh_swap(volatile int *, int);
+int __sh_fetch_add(volatile int *, int);
+void __sh_store(volatile int *, int);
+void __sh_and(volatile int *, int);
+void __sh_or(volatile int *, int);
+
+#define a_cas(p,t,s) __sh_cas(p,t,s)
+#define a_swap(x,v) __sh_swap(x,v)
+#define a_fetch_add(x,v) __sh_fetch_add(x, v)
+#define a_store(x,v) __sh_store(x, v)
+#define a_and(x,v) __sh_and(x, v)
+#define a_or(x,v) __sh_or(x, v)
+
+static inline void *a_cas_p(volatile void *p, void *t, void *s)
+{
+ return (void *)a_cas(p, (int)t, (int)s);
+}
+
+static inline long a_cas_l(volatile void *p, long t, long s)
+{
+ return a_cas(p, t, s);
+}
+
+static inline void a_inc(volatile int *x)
+{
+ a_fetch_add(x, 1);
+}
+
+static inline void a_dec(volatile int *x)
+{
+ a_fetch_add(x, -1);
+}
+
+static inline void a_spin()
+{
+}
+
+static inline void a_crash()
+{
+ *(volatile char *)0=0;
+}
+
+static inline void a_or_l(volatile void *p, long v)
+{
+ a_or(p, v);
+}
+
+static inline void a_and_64(volatile uint64_t *p, uint64_t v)
+{
+ union { uint64_t v; uint32_t r[2]; } u = { v };
+ a_and((int *)p, u.r[0]);
+ a_and((int *)p+1, u.r[1]);
+}
+
+static inline void a_or_64(volatile uint64_t *p, uint64_t v)
+{
+ union { uint64_t v; uint32_t r[2]; } u = { v };
+ a_or((int *)p, u.r[0]);
+ a_or((int *)p+1, u.r[1]);
+}
+
+#endif
--- /dev/null
+#define _Addr int
+#define _Int64 long long
+#define _Reg int
+
+TYPEDEF __builtin_va_list va_list;
+TYPEDEF __builtin_va_list __isoc_va_list;
+
+#ifndef __cplusplus
+TYPEDEF long wchar_t;
+#endif
+TYPEDEF unsigned wint_t;
+
+TYPEDEF float float_t;
+TYPEDEF double double_t;
+
+TYPEDEF long time_t;
+TYPEDEF long suseconds_t;
+
+TYPEDEF struct { union { int __i[9]; unsigned __s[9]; } __u; } pthread_attr_t;
+TYPEDEF struct { union { int __i[6]; void *__p[6]; } __u; } pthread_mutex_t;
+TYPEDEF struct { union { int __i[12]; void *__p[12]; } __u; } pthread_cond_t;
+TYPEDEF struct { union { int __i[8]; void *__p[8]; } __u; } pthread_rwlock_t;
+TYPEDEF struct { union { int __i[5]; void *__p[5]; } __u; } pthread_barrier_t;
--- /dev/null
+#if __LITTLE_ENDIAN__
+#define __BYTE_ORDER __LITTLE_ENDIAN
+#else
+#define __BYTE_ORDER __BIG_ENDIAN
+#endif
--- /dev/null
+#define EPERM 1
+#define ENOENT 2
+#define ESRCH 3
+#define EINTR 4
+#define EIO 5
+#define ENXIO 6
+#define E2BIG 7
+#define ENOEXEC 8
+#define EBADF 9
+#define ECHILD 10
+#define EAGAIN 11
+#define ENOMEM 12
+#define EACCES 13
+#define EFAULT 14
+#define ENOTBLK 15
+#define EBUSY 16
+#define EEXIST 17
+#define EXDEV 18
+#define ENODEV 19
+#define ENOTDIR 20
+#define EISDIR 21
+#define EINVAL 22
+#define ENFILE 23
+#define EMFILE 24
+#define ENOTTY 25
+#define ETXTBSY 26
+#define EFBIG 27
+#define ENOSPC 28
+#define ESPIPE 29
+#define EROFS 30
+#define EMLINK 31
+#define EPIPE 32
+#define EDOM 33
+#define ERANGE 34
+#define EDEADLK 35
+#define ENAMETOOLONG 36
+#define ENOLCK 37
+#define ENOSYS 38
+#define ENOTEMPTY 39
+#define ELOOP 40
+#define EWOULDBLOCK EAGAIN
+#define ENOMSG 42
+#define EIDRM 43
+#define ECHRNG 44
+#define EL2NSYNC 45
+#define EL3HLT 46
+#define EL3RST 47
+#define ELNRNG 48
+#define EUNATCH 49
+#define ENOCSI 50
+#define EL2HLT 51
+#define EBADE 52
+#define EBADR 53
+#define EXFULL 54
+#define ENOANO 55
+#define EBADRQC 56
+#define EBADSLT 57
+#define EDEADLOCK EDEADLK
+#define EBFONT 59
+#define ENOSTR 60
+#define ENODATA 61
+#define ETIME 62
+#define ENOSR 63
+#define ENONET 64
+#define ENOPKG 65
+#define EREMOTE 66
+#define ENOLINK 67
+#define EADV 68
+#define ESRMNT 69
+#define ECOMM 70
+#define EPROTO 71
+#define EMULTIHOP 72
+#define EDOTDOT 73
+#define EBADMSG 74
+#define EOVERFLOW 75
+#define ENOTUNIQ 76
+#define EBADFD 77
+#define EREMCHG 78
+#define ELIBACC 79
+#define ELIBBAD 80
+#define ELIBSCN 81
+#define ELIBMAX 82
+#define ELIBEXEC 83
+#define EILSEQ 84
+#define ERESTART 85
+#define ESTRPIPE 86
+#define EUSERS 87
+#define ENOTSOCK 88
+#define EDESTADDRREQ 89
+#define EMSGSIZE 90
+#define EPROTOTYPE 91
+#define ENOPROTOOPT 92
+#define EPROTONOSUPPORT 93
+#define ESOCKTNOSUPPORT 94
+#define EOPNOTSUPP 95
+#define ENOTSUP EOPNOTSUPP
+#define EPFNOSUPPORT 96
+#define EAFNOSUPPORT 97
+#define EADDRINUSE 98
+#define EADDRNOTAVAIL 99
+#define ENETDOWN 100
+#define ENETUNREACH 101
+#define ENETRESET 102
+#define ECONNABORTED 103
+#define ECONNRESET 104
+#define ENOBUFS 105
+#define EISCONN 106
+#define ENOTCONN 107
+#define ESHUTDOWN 108
+#define ETOOMANYREFS 109
+#define ETIMEDOUT 110
+#define ECONNREFUSED 111
+#define EHOSTDOWN 112
+#define EHOSTUNREACH 113
+#define EALREADY 114
+#define EINPROGRESS 115
+#define ESTALE 116
+#define EUCLEAN 117
+#define ENOTNAM 118
+#define ENAVAIL 119
+#define EISNAM 120
+#define EREMOTEIO 121
+#define EDQUOT 122
+#define ENOMEDIUM 123
+#define EMEDIUMTYPE 124
+#define ECANCELED 125
+#define ENOKEY 126
+#define EKEYEXPIRED 127
+#define EKEYREVOKED 128
+#define EKEYREJECTED 129
+#define EOWNERDEAD 130
+#define ENOTRECOVERABLE 131
+#define ERFKILL 132
+#define EHWPOISON 133
--- /dev/null
+#define O_CREAT 0100
+#define O_EXCL 0200
+#define O_NOCTTY 0400
+#define O_TRUNC 01000
+#define O_APPEND 02000
+#define O_NONBLOCK 04000
+#define O_DSYNC 010000
+#define O_SYNC 04010000
+#define O_RSYNC 04010000
+#define O_DIRECTORY 0200000
+#define O_NOFOLLOW 0400000
+#define O_CLOEXEC 02000000
+
+#define O_ASYNC 020000
+#define O_DIRECT 040000
+#define O_LARGEFILE 0100000
+#define O_NOATIME 01000000
+#define O_TMPFILE 020200000
+#define O_NDELAY O_NONBLOCK
+
+#define F_DUPFD 0
+#define F_GETFD 1
+#define F_SETFD 2
+#define F_GETFL 3
+#define F_SETFL 4
+
+#define F_SETOWN 8
+#define F_GETOWN 9
+#define F_SETSIG 10
+#define F_GETSIG 11
+
+#define F_GETLK 12
+#define F_SETLK 13
+#define F_SETLKW 14
+
+#define F_SETOWN_EX 15
+#define F_GETOWN_EX 16
+
+#define F_GETOWNER_UIDS 17
--- /dev/null
+#define FE_TONEAREST 0
+#define FE_TOWARDZERO 1
+
+#define FE_INEXACT 0x04
+#define FE_UNDERFLOW 0x08
+#define FE_OVERFLOW 0x10
+#define FE_DIVBYZERO 0x20
+#define FE_INVALID 0x40
+#define FE_ALL_EXCEPT 0x7c
+
+typedef unsigned long fexcept_t;
+
+typedef struct {
+ unsigned long __cw;
+} fenv_t;
+
+#define FE_DFL_ENV ((const fenv_t *) -1)
--- /dev/null
+#define FLT_ROUNDS 1
+#define FLT_EVAL_METHOD 0
+
+#define LDBL_TRUE_MIN 4.94065645841246544177e-324L
+#define LDBL_MIN 2.22507385850720138309e-308L
+#define LDBL_MAX 1.79769313486231570815e+308L
+#define LDBL_EPSILON 2.22044604925031308085e-16L
+
+#define LDBL_MANT_DIG 53
+#define LDBL_MIN_EXP (-1021)
+#define LDBL_MAX_EXP 1024
+
+#define LDBL_DIG 15
+#define LDBL_MIN_10_EXP (-307)
+#define LDBL_MAX_10_EXP 308
+
+#define DECIMAL_DIG 17
--- /dev/null
+#define _IOC(a,b,c,d) ( ((a)<<30) | ((b)<<8) | (c) | ((d)<<16) )
+#define _IOC_NONE 0U
+#define _IOC_WRITE 1U
+#define _IOC_READ 2U
+
+#define _IO(a,b) _IOC(_IOC_NONE,(a),(b),0)
+#define _IOW(a,b,c) _IOC(_IOC_WRITE,(a),(b),sizeof(c))
+#define _IOR(a,b,c) _IOC(_IOC_READ,(a),(b),sizeof(c))
+#define _IOWR(a,b,c) _IOC(_IOC_READ|_IOC_WRITE,(a),(b),sizeof(c))
+
+#define FIOCLEX _IO('f', 1)
+#define FIONCLEX _IO('f', 2)
+#define FIOASYNC _IOW('f', 125, int)
+#define FIONBIO _IOW('f', 126, int)
+#define FIONREAD _IOR('f', 127, int)
+#define TIOCINQ FIONREAD
+#define FIOQSIZE _IOR('f', 128, char[8])
+
+#define TCGETA _IOR('t', 23, char[18])
+#define TCSETA _IOW('t', 24, char[18])
+#define TCSETAW _IOW('t', 25, char[18])
+#define TCSETAF _IOW('t', 28, char[18])
+
+#define TCSBRK _IO('t', 29)
+#define TCXONC _IO('t', 30)
+#define TCFLSH _IO('t', 31)
+
+#define TIOCSWINSZ _IOW('t', 103, char[8])
+#define TIOCGWINSZ _IOR('t', 104, char[8])
+#define TIOCSTART _IO('t', 110)
+#define TIOCSTOP _IO('t', 111)
+#define TIOCOUTQ _IOR('t', 115, int)
+
+#define TIOCSPGRP _IOW('t', 118, int)
+#define TIOCGPGRP _IOR('t', 119, int)
+
+#define TIOCEXCL _IO('T', 12)
+#define TIOCNXCL _IO('T', 13)
+#define TIOCSCTTY _IO('T', 14)
+
+#define TIOCSTI _IOW('T', 18, char)
+#define TIOCMGET _IOR('T', 21, unsigned int)
+#define TIOCMBIS _IOW('T', 22, unsigned int)
+#define TIOCMBIC _IOW('T', 23, unsigned int)
+#define TIOCMSET _IOW('T', 24, unsigned int)
+#define TIOCM_LE 0x001
+#define TIOCM_DTR 0x002
+#define TIOCM_RTS 0x004
+#define TIOCM_ST 0x008
+#define TIOCM_SR 0x010
+#define TIOCM_CTS 0x020
+#define TIOCM_CAR 0x040
+#define TIOCM_RNG 0x080
+#define TIOCM_DSR 0x100
+#define TIOCM_CD TIOCM_CAR
+#define TIOCM_RI TIOCM_RNG
+#define TIOCM_OUT1 0x2000
+#define TIOCM_OUT2 0x4000
+#define TIOCM_LOOP 0x8000
+
+#define TIOCGSOFTCAR _IOR('T', 25, unsigned int)
+#define TIOCSSOFTCAR _IOW('T', 26, unsigned int)
+#define TIOCLINUX _IOW('T', 28, char)
+#define TIOCCONS _IO('T', 29)
+#define TIOCGSERIAL _IOR('T', 30, char[60])
+#define TIOCSSERIAL _IOW('T', 31, char[60])
+#define TIOCPKT _IOW('T', 32, int)
+#define TIOCPKT_DATA 0
+#define TIOCPKT_FLUSHREAD 1
+#define TIOCPKT_FLUSHWRITE 2
+#define TIOCPKT_STOP 4
+#define TIOCPKT_START 8
+#define TIOCPKT_NOSTOP 16
+#define TIOCPKT_DOSTOP 32
+#define TIOCPKT_IOCTL 64
+
+#define TIOCNOTTY _IO('T', 34)
+#define TIOCSETD _IOW('T', 35, int)
+#define TIOCGETD _IOR('T', 36, int)
+#define TCSBRKP _IOW('T', 37, int)
+#define TIOCSBRK _IO('T', 39)
+#define TIOCCBRK _IO('T', 40)
+#define TIOCGSID _IOR('T', 41, int)
+#define TCGETS _IOR('T', 42, char[44])
+#define TCSETS _IOW('T', 43, char[44])
+#define TCSETSW _IOW('T', 44, char[44])
+#define TCSETSF _IOW('T', 45, char[44])
+#define TIOCGPTN _IOR('T', 48, unsigned int)
+#define TIOCSPTLCK _IOW('T', 49, int)
+#define TIOCGDEV _IOR('T', 50, unsigned int)
+#define TIOCSIG _IOW('T', 54, int)
+#define TIOCVHANGUP _IO('T', 55)
+#define TIOCGPKT _IOR('T', 56, int)
+#define TIOCGPTLCK _IOR('T', 57, int)
+#define TIOCGEXCL _IOR('T', 64, int)
+
+#define TIOCSERCONFIG _IO('T', 83)
+#define TIOCSERGWILD _IOR('T', 84, int)
+#define TIOCSERSWILD _IOW('T', 85, int)
+#define TIOCGLCKTRMIOS _IO('T', 86)
+#define TIOCSLCKTRMIOS _IO('T', 87)
+#define TIOCSERGSTRUCT _IOR('T', 88, char[216])
+#define TIOCSERGETLSR _IOR('T', 89, unsigned int)
+#define TIOCSER_TEMT 0x01
+#define TIOCSERGETMULTI _IOR('T', 90, char[168])
+#define TIOCSERSETMULTI _IOW('T', 91, char[168])
+
+#define TIOCMIWAIT _IO('T', 92)
+#define TIOCGICOUNT _IO('T', 93)
+
+struct winsize {
+ unsigned short ws_row;
+ unsigned short ws_col;
+ unsigned short ws_xpixel;
+ unsigned short ws_ypixel;
+};
+
+#define TIOCM_MODEM_BITS TIOCM_OUT2
+
+#define N_TTY 0
+#define N_SLIP 1
+#define N_MOUSE 2
+#define N_PPP 3
+#define N_STRIP 4
+#define N_AX25 5
+#define N_X25 6
+#define N_6PACK 7
+#define N_MASC 8
+#define N_R3964 9
+#define N_PROFIBUS_FDL 10
+#define N_IRDA 11
+#define N_SMSBLOCK 12
+#define N_HDLC 13
+#define N_SYNC_PPP 14
+#define N_HCI 15
+
+#define FIOGETOWN _IOR('f', 123, int)
+#define FIOSETOWN _IOW('f', 124, int)
+
+#define SIOCATMARK _IOR('s', 7, int)
+#define SIOCSPGRP _IOW('s', 8, int)
+#define SIOCGPGRP _IOW('s', 9, int)
+#define SIOCGSTAMP _IOR('s', 100, char[8])
+
+#define SIOCADDRT 0x890B
+#define SIOCDELRT 0x890C
+#define SIOCRTMSG 0x890D
+
+#define SIOCGIFNAME 0x8910
+#define SIOCSIFLINK 0x8911
+#define SIOCGIFCONF 0x8912
+#define SIOCGIFFLAGS 0x8913
+#define SIOCSIFFLAGS 0x8914
+#define SIOCGIFADDR 0x8915
+#define SIOCSIFADDR 0x8916
+#define SIOCGIFDSTADDR 0x8917
+#define SIOCSIFDSTADDR 0x8918
+#define SIOCGIFBRDADDR 0x8919
+#define SIOCSIFBRDADDR 0x891a
+#define SIOCGIFNETMASK 0x891b
+#define SIOCSIFNETMASK 0x891c
+#define SIOCGIFMETRIC 0x891d
+#define SIOCSIFMETRIC 0x891e
+#define SIOCGIFMEM 0x891f
+#define SIOCSIFMEM 0x8920
+#define SIOCGIFMTU 0x8921
+#define SIOCSIFMTU 0x8922
+#define SIOCSIFHWADDR 0x8924
+#define SIOCGIFENCAP 0x8925
+#define SIOCSIFENCAP 0x8926
+#define SIOCGIFHWADDR 0x8927
+#define SIOCGIFSLAVE 0x8929
+#define SIOCSIFSLAVE 0x8930
+#define SIOCADDMULTI 0x8931
+#define SIOCDELMULTI 0x8932
+#define SIOCGIFINDEX 0x8933
+#define SIOGIFINDEX SIOCGIFINDEX
+#define SIOCSIFPFLAGS 0x8934
+#define SIOCGIFPFLAGS 0x8935
+#define SIOCDIFADDR 0x8936
+#define SIOCSIFHWBROADCAST 0x8937
+#define SIOCGIFCOUNT 0x8938
+
+#define SIOCGIFBR 0x8940
+#define SIOCSIFBR 0x8941
+
+#define SIOCGIFTXQLEN 0x8942
+#define SIOCSIFTXQLEN 0x8943
+
+#define SIOCDARP 0x8953
+#define SIOCGARP 0x8954
+#define SIOCSARP 0x8955
+
+#define SIOCDRARP 0x8960
+#define SIOCGRARP 0x8961
+#define SIOCSRARP 0x8962
+
+#define SIOCGIFMAP 0x8970
+#define SIOCSIFMAP 0x8971
+
+#define SIOCADDDLCI 0x8980
+#define SIOCDELDLCI 0x8981
+
+#define SIOCDEVPRIVATE 0x89F0
+#define SIOCPROTOPRIVATE 0x89E0
--- /dev/null
+struct ipc_perm
+{
+ key_t __ipc_perm_key;
+ uid_t uid;
+ gid_t gid;
+ uid_t cuid;
+ gid_t cgid;
+ mode_t mode;
+ int __ipc_perm_seq;
+ long __pad1;
+ long __pad2;
+};
+
+#define IPC_64 0x100
--- /dev/null
+#if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \
+ || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
+#define PAGE_SIZE 4096
+#define LONG_BIT 32
+#endif
+
+#define LONG_MAX 0x7fffffffL
+#define LLONG_MAX 0x7fffffffffffffffLL
--- /dev/null
+#define MAP_FAILED ((void *) -1)
+
+#define PROT_NONE 0
+#define PROT_READ 1
+#define PROT_WRITE 2
+#define PROT_EXEC 4
+#define PROT_GROWSDOWN 0x01000000
+#define PROT_GROWSUP 0x02000000
+
+#define MAP_SHARED 0x01
+#define MAP_PRIVATE 0x02
+#define MAP_FIXED 0x10
+
+#define MAP_TYPE 0x0f
+#define MAP_FILE 0x00
+#define MAP_ANON 0x20
+#define MAP_ANONYMOUS MAP_ANON
+#define MAP_32BIT 0x40
+#define MAP_NORESERVE 0x4000
+#define MAP_GROWSDOWN 0x0100
+#define MAP_DENYWRITE 0x0800
+#define MAP_EXECUTABLE 0x1000
+#define MAP_LOCKED 0x2000
+#define MAP_POPULATE 0x8000
+#define MAP_NONBLOCK 0x10000
+#define MAP_STACK 0x20000
+#define MAP_HUGETLB 0x40000
+
+#define POSIX_MADV_NORMAL 0
+#define POSIX_MADV_RANDOM 1
+#define POSIX_MADV_SEQUENTIAL 2
+#define POSIX_MADV_WILLNEED 3
+#define POSIX_MADV_DONTNEED 4
+
+#define MS_ASYNC 1
+#define MS_INVALIDATE 2
+#define MS_SYNC 4
+
+#define MCL_CURRENT 1
+#define MCL_FUTURE 2
+
+#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
+#define MADV_NORMAL 0
+#define MADV_RANDOM 1
+#define MADV_SEQUENTIAL 2
+#define MADV_WILLNEED 3
+#define MADV_DONTNEED 4
+#define MADV_REMOVE 9
+#define MADV_DONTFORK 10
+#define MADV_DOFORK 11
+#define MADV_MERGEABLE 12
+#define MADV_UNMERGEABLE 13
+#define MADV_HUGEPAGE 14
+#define MADV_NOHUGEPAGE 15
+#define MADV_DONTDUMP 16
+#define MADV_DODUMP 17
+#define MADV_HWPOISON 100
+#define MADV_SOFT_OFFLINE 101
+
+#define MREMAP_MAYMOVE 1
+#define MREMAP_FIXED 2
+#endif
--- /dev/null
+struct msqid_ds
+{
+ struct ipc_perm msg_perm;
+ time_t msg_stime;
+ int __unused1;
+ time_t msg_rtime;
+ int __unused2;
+ time_t msg_ctime;
+ int __unused3;
+ unsigned long msg_cbytes;
+ msgqnum_t msg_qnum;
+ msglen_t msg_qbytes;
+ pid_t msg_lspid;
+ pid_t msg_lrpid;
+ unsigned long __unused[2];
+};
--- /dev/null
+#define _POSIX_V6_ILP32_OFFBIG 1
+#define _POSIX_V7_ILP32_OFFBIG 1
--- /dev/null
+typedef unsigned long __jmp_buf[13];
--- /dev/null
+#define SHMLBA 16384
+
+struct shmid_ds
+{
+ struct ipc_perm shm_perm;
+ size_t shm_segsz;
+ time_t shm_atime;
+ int __unused1;
+ time_t shm_dtime;
+ int __unused2;
+ time_t shm_ctime;
+ int __unused3;
+ pid_t shm_cpid;
+ pid_t shm_lpid;
+ unsigned long shm_nattch;
+ unsigned long __pad1;
+ unsigned long __pad2;
+};
+
+struct shminfo {
+ unsigned long shmmax, shmmin, shmmni, shmseg, shmall, __unused[4];
+};
+
+struct shm_info {
+ int __used_ids;
+ unsigned long shm_tot, shm_rss, shm_swp;
+ unsigned long __swap_attempts, __swap_successes;
+};
--- /dev/null
+#if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \
+ || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
+
+#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
+typedef int greg_t, gregset_t[16];
+typedef int freg_t, fpregset_t[16];
+typedef struct sigcontext {
+ unsigned long oldmask;
+ unsigned long sc_regs[16];
+ unsigned long sc_pc, sc_pr, sc_sr;
+ unsigned long sc_gbr, sc_mach, sc_macl;
+ unsigned long sc_fpregs[16];
+ unsigned long sc_xfpregs[16];
+ unsigned int sc_fpscr, sc_fpul, sc_ownedfp;
+} mcontext_t;
+#else
+typedef struct {
+ unsigned long __regs[58];
+} mcontext_t;
+#endif
+
+typedef struct __ucontext {
+ unsigned long uc_flags;
+ struct __ucontext *uc_link;
+ stack_t uc_stack;
+ mcontext_t uc_mcontext;
+ sigset_t uc_sigmask;
+} ucontext_t;
+
+#define SA_NOCLDSTOP 1
+#define SA_NOCLDWAIT 2
+#define SA_SIGINFO 4
+#define SA_ONSTACK 0x08000000
+#define SA_RESTART 0x10000000
+#define SA_NODEFER 0x40000000
+#define SA_RESETHAND 0x80000000
+#define SA_RESTORER 0x04000000
+
+#endif
+
+#define SIGHUP 1
+#define SIGINT 2
+#define SIGQUIT 3
+#define SIGILL 4
+#define SIGTRAP 5
+#define SIGABRT 6
+#define SIGIOT SIGABRT
+#define SIGBUS 7
+#define SIGFPE 8
+#define SIGKILL 9
+#define SIGUSR1 10
+#define SIGSEGV 11
+#define SIGUSR2 12
+#define SIGPIPE 13
+#define SIGALRM 14
+#define SIGTERM 15
+#define SIGSTKFLT 16
+#define SIGCHLD 17
+#define SIGCONT 18
+#define SIGSTOP 19
+#define SIGTSTP 20
+#define SIGTTIN 21
+#define SIGTTOU 22
+#define SIGURG 23
+#define SIGXCPU 24
+#define SIGXFSZ 25
+#define SIGVTALRM 26
+#define SIGPROF 27
+#define SIGWINCH 28
+#define SIGIO 29
+#define SIGPOLL 29
+#define SIGPWR 30
+#define SIGSYS 31
+#define SIGUNUSED SIGSYS
+
+#define _NSIG 65
--- /dev/null
+struct msghdr
+{
+ void *msg_name;
+ socklen_t msg_namelen;
+ struct iovec *msg_iov;
+ int msg_iovlen;
+ void *msg_control;
+ socklen_t msg_controllen;
+ int msg_flags;
+};
+
+struct cmsghdr
+{
+ socklen_t cmsg_len;
+ int cmsg_level;
+ int cmsg_type;
+};
--- /dev/null
+/* copied from kernel definition, but with padding replaced
+ * by the corresponding correctly-sized userspace types. */
+
+struct stat
+{
+ dev_t st_dev;
+ int __st_dev_padding;
+ long __st_ino_truncated;
+ mode_t st_mode;
+ nlink_t st_nlink;
+ uid_t st_uid;
+ gid_t st_gid;
+ dev_t st_rdev;
+ int __st_rdev_padding;
+ off_t st_size;
+ blksize_t st_blksize;
+ blkcnt_t st_blocks;
+ struct timespec st_atim;
+ struct timespec st_mtim;
+ struct timespec st_ctim;
+ ino_t st_ino;
+};
--- /dev/null
+struct statfs {
+ unsigned long f_type, f_bsize;
+ fsblkcnt_t f_blocks, f_bfree, f_bavail;
+ fsfilcnt_t f_files, f_ffree;
+ fsid_t f_fsid;
+ unsigned long f_namelen, f_frsize, f_flags, f_spare[4];
+};
--- /dev/null
+#define va_start(v,l) __builtin_va_start(v,l)
+#define va_end(v) __builtin_va_end(v)
+#define va_arg(v,l) __builtin_va_arg(v,l)
+#define va_copy(d,s) __builtin_va_copy(d,s)
--- /dev/null
+typedef int32_t int_fast16_t;
+typedef int32_t int_fast32_t;
+typedef uint32_t uint_fast16_t;
+typedef uint32_t uint_fast32_t;
+
+#define INT_FAST16_MIN INT32_MIN
+#define INT_FAST32_MIN INT32_MIN
+
+#define INT_FAST16_MAX INT32_MAX
+#define INT_FAST32_MAX INT32_MAX
+
+#define UINT_FAST16_MAX UINT32_MAX
+#define UINT_FAST32_MAX UINT32_MAX
+
+#define INTPTR_MIN INT32_MIN
+#define INTPTR_MAX INT32_MAX
+#define UINTPTR_MAX UINT32_MAX
+#define PTRDIFF_MIN INT32_MIN
+#define PTRDIFF_MAX INT32_MAX
+#define SIZE_MAX UINT32_MAX
--- /dev/null
+#define __NR_restart_syscall 0
+#define __NR_exit 1
+#define __NR_fork 2
+#define __NR_read 3
+#define __NR_write 4
+#define __NR_open 5
+#define __NR_close 6
+#define __NR_waitpid 7
+#define __NR_creat 8
+#define __NR_link 9
+#define __NR_unlink 10
+#define __NR_execve 11
+#define __NR_chdir 12
+#define __NR_time 13
+#define __NR_mknod 14
+#define __NR_chmod 15
+#define __NR_lchown 16
+#define __NR_oldstat 18
+#define __NR_lseek 19
+#define __NR_getpid 20
+#define __NR_mount 21
+#define __NR_umount 22
+#define __NR_setuid 23
+#define __NR_getuid 24
+#define __NR_stime 25
+#define __NR_ptrace 26
+#define __NR_alarm 27
+#define __NR_oldfstat 28
+#define __NR_pause 29
+#define __NR_utime 30
+#define __NR_access 33
+#define __NR_nice 34
+#define __NR_sync 36
+#define __NR_kill 37
+#define __NR_rename 38
+#define __NR_mkdir 39
+#define __NR_rmdir 40
+#define __NR_dup 41
+#define __NR_pipe 42
+#define __NR_times 43
+#define __NR_brk 45
+#define __NR_setgid 46
+#define __NR_getgid 47
+#define __NR_signal 48
+#define __NR_geteuid 49
+#define __NR_getegid 50
+#define __NR_acct 51
+#define __NR_umount2 52
+#define __NR_ioctl 54
+#define __NR_fcntl 55
+#define __NR_setpgid 57
+#define __NR_umask 60
+#define __NR_chroot 61
+#define __NR_ustat 62
+#define __NR_dup2 63
+#define __NR_getppid 64
+#define __NR_getpgrp 65
+#define __NR_setsid 66
+#define __NR_sigaction 67
+#define __NR_sgetmask 68
+#define __NR_ssetmask 69
+#define __NR_setreuid 70
+#define __NR_setregid 71
+#define __NR_sigsuspend 72
+#define __NR_sigpending 73
+#define __NR_sethostname 74
+#define __NR_setrlimit 75
+#define __NR_getrlimit 76
+#define __NR_getrusage 77
+#define __NR_gettimeofday 78
+#define __NR_settimeofday 79
+#define __NR_getgroups 80
+#define __NR_setgroups 81
+#define __NR_symlink 83
+#define __NR_oldlstat 84
+#define __NR_readlink 85
+#define __NR_uselib 86
+#define __NR_swapon 87
+#define __NR_reboot 88
+#define __NR_readdir 89
+#define __NR_mmap 90
+#define __NR_munmap 91
+#define __NR_truncate 92
+#define __NR_ftruncate 93
+#define __NR_fchmod 94
+#define __NR_fchown 95
+#define __NR_getpriority 96
+#define __NR_setpriority 97
+#define __NR_statfs 99
+#define __NR_fstatfs 100
+#define __NR_socketcall 102
+#define __NR_syslog 103
+#define __NR_setitimer 104
+#define __NR_getitimer 105
+#define __NR_stat 106
+#define __NR_lstat 107
+#define __NR_fstat 108
+#define __NR_olduname 109
+#define __NR_vhangup 111
+#define __NR_wait4 114
+#define __NR_swapoff 115
+#define __NR_sysinfo 116
+#define __NR_ipc 117
+#define __NR_fsync 118
+#define __NR_sigreturn 119
+#define __NR_clone 120
+#define __NR_setdomainname 121
+#define __NR_uname 122
+#define __NR_cacheflush 123
+#define __NR_adjtimex 124
+#define __NR_mprotect 125
+#define __NR_sigprocmask 126
+#define __NR_init_module 128
+#define __NR_delete_module 129
+#define __NR_quotactl 131
+#define __NR_getpgid 132
+#define __NR_fchdir 133
+#define __NR_bdflush 134
+#define __NR_sysfs 135
+#define __NR_personality 136
+#define __NR_setfsuid 138
+#define __NR_setfsgid 139
+#define __NR__llseek 140
+#define __NR_getdents 141
+#define __NR__newselect 142
+#define __NR_flock 143
+#define __NR_msync 144
+#define __NR_readv 145
+#define __NR_writev 146
+#define __NR_getsid 147
+#define __NR_fdatasync 148
+#define __NR__sysctl 149
+#define __NR_mlock 150
+#define __NR_munlock 151
+#define __NR_mlockall 152
+#define __NR_munlockall 153
+#define __NR_sched_setparam 154
+#define __NR_sched_getparam 155
+#define __NR_sched_setscheduler 156
+#define __NR_sched_getscheduler 157
+#define __NR_sched_yield 158
+#define __NR_sched_get_priority_max 159
+#define __NR_sched_get_priority_min 160
+#define __NR_sched_rr_get_interval 161
+#define __NR_nanosleep 162
+#define __NR_mremap 163
+#define __NR_setresuid 164
+#define __NR_getresuid 165
+#define __NR_poll 168
+#define __NR_nfsservctl 169
+#define __NR_setresgid 170
+#define __NR_getresgid 171
+#define __NR_prctl 172
+#define __NR_rt_sigreturn 173
+#define __NR_rt_sigaction 174
+#define __NR_rt_sigprocmask 175
+#define __NR_rt_sigpending 176
+#define __NR_rt_sigtimedwait 177
+#define __NR_rt_sigqueueinfo 178
+#define __NR_rt_sigsuspend 179
+#define __NR_pread64 180
+#define __NR_pwrite64 181
+#define __NR_chown 182
+#define __NR_getcwd 183
+#define __NR_capget 184
+#define __NR_capset 185
+#define __NR_sigaltstack 186
+#define __NR_sendfile 187
+#define __NR_vfork 190
+#define __NR_ugetrlimit 191
+#define __NR_mmap2 192
+#define __NR_truncate64 193
+#define __NR_ftruncate64 194
+#define __NR_stat64 195
+#define __NR_lstat64 196
+#define __NR_fstat64 197
+#define __NR_lchown32 198
+#define __NR_getuid32 199
+#define __NR_getgid32 200
+#define __NR_geteuid32 201
+#define __NR_getegid32 202
+#define __NR_setreuid32 203
+#define __NR_setregid32 204
+#define __NR_getgroups32 205
+#define __NR_setgroups32 206
+#define __NR_fchown32 207
+#define __NR_setresuid32 208
+#define __NR_getresuid32 209
+#define __NR_setresgid32 210
+#define __NR_getresgid32 211
+#define __NR_chown32 212
+#define __NR_setuid32 213
+#define __NR_setgid32 214
+#define __NR_setfsuid32 215
+#define __NR_setfsgid32 216
+#define __NR_pivot_root 217
+#define __NR_mincore 218
+#define __NR_madvise 219
+#define __NR_getdents64 220
+#define __NR_fcntl64 221
+#define __NR_gettid 224
+#define __NR_readahead 225
+#define __NR_setxattr 226
+#define __NR_lsetxattr 227
+#define __NR_fsetxattr 228
+#define __NR_getxattr 229
+#define __NR_lgetxattr 230
+#define __NR_fgetxattr 231
+#define __NR_listxattr 232
+#define __NR_llistxattr 233
+#define __NR_flistxattr 234
+#define __NR_removexattr 235
+#define __NR_lremovexattr 236
+#define __NR_fremovexattr 237
+#define __NR_tkill 238
+#define __NR_sendfile64 239
+#define __NR_futex 240
+#define __NR_sched_setaffinity 241
+#define __NR_sched_getaffinity 242
+#define __NR_io_setup 245
+#define __NR_io_destroy 246
+#define __NR_io_getevents 247
+#define __NR_io_submit 248
+#define __NR_io_cancel 249
+#define __NR_fadvise64 250
+#define __NR_exit_group 252
+#define __NR_lookup_dcookie 253
+#define __NR_epoll_create 254
+#define __NR_epoll_ctl 255
+#define __NR_epoll_wait 256
+#define __NR_remap_file_pages 257
+#define __NR_set_tid_address 258
+#define __NR_timer_create 259
+#define __NR_timer_settime 260
+#define __NR_timer_gettime 261
+#define __NR_timer_getoverrun 262
+#define __NR_timer_delete 263
+#define __NR_clock_settime 264
+#define __NR_clock_gettime 265
+#define __NR_clock_getres 266
+#define __NR_clock_nanosleep 267
+#define __NR_statfs64 268
+#define __NR_fstatfs64 269
+#define __NR_tgkill 270
+#define __NR_utimes 271
+#define __NR_fadvise64_64 272
+#define __NR_mbind 274
+#define __NR_get_mempolicy 275
+#define __NR_set_mempolicy 276
+#define __NR_mq_open 277
+#define __NR_mq_unlink 278
+#define __NR_mq_timedsend 279
+#define __NR_mq_timedreceive 280
+#define __NR_mq_notify 281
+#define __NR_mq_getsetattr 282
+#define __NR_kexec_load 283
+#define __NR_waitid 284
+#define __NR_add_key 285
+#define __NR_request_key 286
+#define __NR_keyctl 287
+#define __NR_ioprio_set 288
+#define __NR_ioprio_get 289
+#define __NR_inotify_init 290
+#define __NR_inotify_add_watch 291
+#define __NR_inotify_rm_watch 292
+#define __NR_migrate_pages 294
+#define __NR_openat 295
+#define __NR_mkdirat 296
+#define __NR_mknodat 297
+#define __NR_fchownat 298
+#define __NR_futimesat 299
+#define __NR_fstatat64 300
+#define __NR_unlinkat 301
+#define __NR_renameat 302
+#define __NR_linkat 303
+#define __NR_symlinkat 304
+#define __NR_readlinkat 305
+#define __NR_fchmodat 306
+#define __NR_faccessat 307
+#define __NR_pselect6 308
+#define __NR_ppoll 309
+#define __NR_unshare 310
+#define __NR_set_robust_list 311
+#define __NR_get_robust_list 312
+#define __NR_splice 313
+#define __NR_sync_file_range 314
+#define __NR_tee 315
+#define __NR_vmsplice 316
+#define __NR_move_pages 317
+#define __NR_getcpu 318
+#define __NR_epoll_pwait 319
+#define __NR_utimensat 320
+#define __NR_signalfd 321
+#define __NR_timerfd_create 322
+#define __NR_eventfd 323
+#define __NR_fallocate 324
+#define __NR_timerfd_settime 325
+#define __NR_timerfd_gettime 326
+#define __NR_signalfd4 327
+#define __NR_eventfd2 328
+#define __NR_epoll_create1 329
+#define __NR_dup3 330
+#define __NR_pipe2 331
+#define __NR_inotify_init1 332
+#define __NR_preadv 333
+#define __NR_pwritev 334
+#define __NR_rt_tgsigqueueinfo 335
+#define __NR_perf_event_open 336
+#define __NR_fanotify_init 337
+#define __NR_fanotify_mark 338
+#define __NR_prlimit64 339
+#define __NR_socket 340
+#define __NR_bind 341
+#define __NR_connect 342
+#define __NR_listen 343
+#define __NR_accept 344
+#define __NR_getsockname 345
+#define __NR_getpeername 346
+#define __NR_socketpair 347
+#define __NR_send 348
+#define __NR_sendto 349
+#define __NR_recv 350
+#define __NR_recvfrom 351
+#define __NR_shutdown 352
+#define __NR_setsockopt 353
+#define __NR_getsockopt 354
+#define __NR_sendmsg 355
+#define __NR_recvmsg 356
+#define __NR_recvmmsg 357
+#define __NR_accept4 358
+#define __NR_name_to_handle_at 359
+#define __NR_open_by_handle_at 360
+#define __NR_clock_adjtime 361
+#define __NR_syncfs 362
+#define __NR_sendmmsg 363
+#define __NR_setns 364
+#define __NR_process_vm_readv 365
+#define __NR_process_vm_writev 366
+#define __NR_kcmp 367
+#define __NR_finit_module 368
+
+
+/* Repeated with SYS_ prefix */
+
+#define SYS_restart_syscall 0
+#define SYS_exit 1
+#define SYS_fork 2
+#define SYS_read 3
+#define SYS_write 4
+#define SYS_open 5
+#define SYS_close 6
+#define SYS_waitpid 7
+#define SYS_creat 8
+#define SYS_link 9
+#define SYS_unlink 10
+#define SYS_execve 11
+#define SYS_chdir 12
+#define SYS_time 13
+#define SYS_mknod 14
+#define SYS_chmod 15
+#define SYS_lchown 16
+#define SYS_oldstat 18
+#define SYS_lseek 19
+#define SYS_getpid 20
+#define SYS_mount 21
+#define SYS_umount 22
+#define SYS_setuid 23
+#define SYS_getuid 24
+#define SYS_stime 25
+#define SYS_ptrace 26
+#define SYS_alarm 27
+#define SYS_oldfstat 28
+#define SYS_pause 29
+#define SYS_utime 30
+#define SYS_access 33
+#define SYS_nice 34
+#define SYS_sync 36
+#define SYS_kill 37
+#define SYS_rename 38
+#define SYS_mkdir 39
+#define SYS_rmdir 40
+#define SYS_dup 41
+#define SYS_pipe 42
+#define SYS_times 43
+#define SYS_brk 45
+#define SYS_setgid 46
+#define SYS_getgid 47
+#define SYS_signal 48
+#define SYS_geteuid 49
+#define SYS_getegid 50
+#define SYS_acct 51
+#define SYS_umount2 52
+#define SYS_ioctl 54
+#define SYS_fcntl 55
+#define SYS_setpgid 57
+#define SYS_umask 60
+#define SYS_chroot 61
+#define SYS_ustat 62
+#define SYS_dup2 63
+#define SYS_getppid 64
+#define SYS_getpgrp 65
+#define SYS_setsid 66
+#define SYS_sigaction 67
+#define SYS_sgetmask 68
+#define SYS_ssetmask 69
+#define SYS_setreuid 70
+#define SYS_setregid 71
+#define SYS_sigsuspend 72
+#define SYS_sigpending 73
+#define SYS_sethostname 74
+#define SYS_setrlimit 75
+#define SYS_getrlimit 76
+#define SYS_getrusage 77
+#define SYS_gettimeofday 78
+#define SYS_settimeofday 79
+#define SYS_getgroups 80
+#define SYS_setgroups 81
+#define SYS_symlink 83
+#define SYS_oldlstat 84
+#define SYS_readlink 85
+#define SYS_uselib 86
+#define SYS_swapon 87
+#define SYS_reboot 88
+#define SYS_readdir 89
+#define SYS_mmap 90
+#define SYS_munmap 91
+#define SYS_truncate 92
+#define SYS_ftruncate 93
+#define SYS_fchmod 94
+#define SYS_fchown 95
+#define SYS_getpriority 96
+#define SYS_setpriority 97
+#define SYS_statfs 99
+#define SYS_fstatfs 100
+#define SYS_socketcall 102
+#define SYS_syslog 103
+#define SYS_setitimer 104
+#define SYS_getitimer 105
+#define SYS_stat 106
+#define SYS_lstat 107
+#define SYS_fstat 108
+#define SYS_olduname 109
+#define SYS_vhangup 111
+#define SYS_wait4 114
+#define SYS_swapoff 115
+#define SYS_sysinfo 116
+#define SYS_ipc 117
+#define SYS_fsync 118
+#define SYS_sigreturn 119
+#define SYS_clone 120
+#define SYS_setdomainname 121
+#define SYS_uname 122
+#define SYS_cacheflush 123
+#define SYS_adjtimex 124
+#define SYS_mprotect 125
+#define SYS_sigprocmask 126
+#define SYS_init_module 128
+#define SYS_delete_module 129
+#define SYS_quotactl 131
+#define SYS_getpgid 132
+#define SYS_fchdir 133
+#define SYS_bdflush 134
+#define SYS_sysfs 135
+#define SYS_personality 136
+#define SYS_setfsuid 138
+#define SYS_setfsgid 139
+#define SYS__llseek 140
+#define SYS_getdents 141
+#define SYS__newselect 142
+#define SYS_flock 143
+#define SYS_msync 144
+#define SYS_readv 145
+#define SYS_writev 146
+#define SYS_getsid 147
+#define SYS_fdatasync 148
+#define SYS__sysctl 149
+#define SYS_mlock 150
+#define SYS_munlock 151
+#define SYS_mlockall 152
+#define SYS_munlockall 153
+#define SYS_sched_setparam 154
+#define SYS_sched_getparam 155
+#define SYS_sched_setscheduler 156
+#define SYS_sched_getscheduler 157
+#define SYS_sched_yield 158
+#define SYS_sched_get_priority_max 159
+#define SYS_sched_get_priority_min 160
+#define SYS_sched_rr_get_interval 161
+#define SYS_nanosleep 162
+#define SYS_mremap 163
+#define SYS_setresuid 164
+#define SYS_getresuid 165
+#define SYS_poll 168
+#define SYS_nfsservctl 169
+#define SYS_setresgid 170
+#define SYS_getresgid 171
+#define SYS_prctl 172
+#define SYS_rt_sigreturn 173
+#define SYS_rt_sigaction 174
+#define SYS_rt_sigprocmask 175
+#define SYS_rt_sigpending 176
+#define SYS_rt_sigtimedwait 177
+#define SYS_rt_sigqueueinfo 178
+#define SYS_rt_sigsuspend 179
+#define SYS_pread64 180
+#define SYS_pwrite64 181
+#define SYS_chown 182
+#define SYS_getcwd 183
+#define SYS_capget 184
+#define SYS_capset 185
+#define SYS_sigaltstack 186
+#define SYS_sendfile 187
+#define SYS_vfork 190
+#define SYS_ugetrlimit 191
+#define SYS_mmap2 192
+#define SYS_truncate64 193
+#define SYS_ftruncate64 194
+#define SYS_stat64 195
+#define SYS_lstat64 196
+#define SYS_fstat64 197
+#define SYS_lchown32 198
+#define SYS_getuid32 199
+#define SYS_getgid32 200
+#define SYS_geteuid32 201
+#define SYS_getegid32 202
+#define SYS_setreuid32 203
+#define SYS_setregid32 204
+#define SYS_getgroups32 205
+#define SYS_setgroups32 206
+#define SYS_fchown32 207
+#define SYS_setresuid32 208
+#define SYS_getresuid32 209
+#define SYS_setresgid32 210
+#define SYS_getresgid32 211
+#define SYS_chown32 212
+#define SYS_setuid32 213
+#define SYS_setgid32 214
+#define SYS_setfsuid32 215
+#define SYS_setfsgid32 216
+#define SYS_pivot_root 217
+#define SYS_mincore 218
+#define SYS_madvise 219
+#define SYS_getdents64 220
+#define SYS_fcntl64 221
+#define SYS_gettid 224
+#define SYS_readahead 225
+#define SYS_setxattr 226
+#define SYS_lsetxattr 227
+#define SYS_fsetxattr 228
+#define SYS_getxattr 229
+#define SYS_lgetxattr 230
+#define SYS_fgetxattr 231
+#define SYS_listxattr 232
+#define SYS_llistxattr 233
+#define SYS_flistxattr 234
+#define SYS_removexattr 235
+#define SYS_lremovexattr 236
+#define SYS_fremovexattr 237
+#define SYS_tkill 238
+#define SYS_sendfile64 239
+#define SYS_futex 240
+#define SYS_sched_setaffinity 241
+#define SYS_sched_getaffinity 242
+#define SYS_io_setup 245
+#define SYS_io_destroy 246
+#define SYS_io_getevents 247
+#define SYS_io_submit 248
+#define SYS_io_cancel 249
+#define SYS_fadvise64 250
+#define SYS_exit_group 252
+#define SYS_lookup_dcookie 253
+#define SYS_epoll_create 254
+#define SYS_epoll_ctl 255
+#define SYS_epoll_wait 256
+#define SYS_remap_file_pages 257
+#define SYS_set_tid_address 258
+#define SYS_timer_create 259
+#define SYS_timer_settime 260
+#define SYS_timer_gettime 261
+#define SYS_timer_getoverrun 262
+#define SYS_timer_delete 263
+#define SYS_clock_settime 264
+#define SYS_clock_gettime 265
+#define SYS_clock_getres 266
+#define SYS_clock_nanosleep 267
+#define SYS_statfs64 268
+#define SYS_fstatfs64 269
+#define SYS_tgkill 270
+#define SYS_utimes 271
+#define SYS_fadvise64_64 272
+#define SYS_mbind 274
+#define SYS_get_mempolicy 275
+#define SYS_set_mempolicy 276
+#define SYS_mq_open 277
+#define SYS_mq_unlink 278
+#define SYS_mq_timedsend 279
+#define SYS_mq_timedreceive 280
+#define SYS_mq_notify 281
+#define SYS_mq_getsetattr 282
+#define SYS_kexec_load 283
+#define SYS_waitid 284
+#define SYS_add_key 285
+#define SYS_request_key 286
+#define SYS_keyctl 287
+#define SYS_ioprio_set 288
+#define SYS_ioprio_get 289
+#define SYS_inotify_init 290
+#define SYS_inotify_add_watch 291
+#define SYS_inotify_rm_watch 292
+#define SYS_migrate_pages 294
+#define SYS_openat 295
+#define SYS_mkdirat 296
+#define SYS_mknodat 297
+#define SYS_fchownat 298
+#define SYS_futimesat 299
+#define SYS_fstatat64 300
+#define SYS_unlinkat 301
+#define SYS_renameat 302
+#define SYS_linkat 303
+#define SYS_symlinkat 304
+#define SYS_readlinkat 305
+#define SYS_fchmodat 306
+#define SYS_faccessat 307
+#define SYS_pselect6 308
+#define SYS_ppoll 309
+#define SYS_unshare 310
+#define SYS_set_robust_list 311
+#define SYS_get_robust_list 312
+#define SYS_splice 313
+#define SYS_sync_file_range 314
+#define SYS_tee 315
+#define SYS_vmsplice 316
+#define SYS_move_pages 317
+#define SYS_getcpu 318
+#define SYS_epoll_pwait 319
+#define SYS_utimensat 320
+#define SYS_signalfd 321
+#define SYS_timerfd_create 322
+#define SYS_eventfd 323
+#define SYS_fallocate 324
+#define SYS_timerfd_settime 325
+#define SYS_timerfd_gettime 326
+#define SYS_signalfd4 327
+#define SYS_eventfd2 328
+#define SYS_epoll_create1 329
+#define SYS_dup3 330
+#define SYS_pipe2 331
+#define SYS_inotify_init1 332
+#define SYS_preadv 333
+#define SYS_pwritev 334
+#define SYS_rt_tgsigqueueinfo 335
+#define SYS_perf_event_open 336
+#define SYS_fanotify_init 337
+#define SYS_fanotify_mark 338
+#define SYS_prlimit64 339
+#define SYS_socket 340
+#define SYS_bind 341
+#define SYS_connect 342
+#define SYS_listen 343
+#define SYS_accept 344
+#define SYS_getsockname 345
+#define SYS_getpeername 346
+#define SYS_socketpair 347
+#define SYS_send 348
+#define SYS_sendto 349
+#define SYS_recv 350
+#define SYS_recvfrom 351
+#define SYS_shutdown 352
+#define SYS_setsockopt 353
+#define SYS_getsockopt 354
+#define SYS_sendmsg 355
+#define SYS_recvmsg 356
+#define SYS_recvmmsg 357
+#define SYS_accept4 358
+#define SYS_name_to_handle_at 359
+#define SYS_open_by_handle_at 360
+#define SYS_clock_adjtime 361
+#define SYS_syncfs 362
+#define SYS_sendmmsg 363
+#define SYS_setns 364
+#define SYS_process_vm_readv 365
+#define SYS_process_vm_writev 366
+#define SYS_kcmp 367
+#define SYS_finit_module 368
--- /dev/null
+struct termios
+{
+ tcflag_t c_iflag;
+ tcflag_t c_oflag;
+ tcflag_t c_cflag;
+ tcflag_t c_lflag;
+ cc_t c_line;
+ cc_t c_cc[NCCS];
+ speed_t __c_ispeed;
+ speed_t __c_ospeed;
+};
+
+#define VINTR 0
+#define VQUIT 1
+#define VERASE 2
+#define VKILL 3
+#define VEOF 4
+#define VTIME 5
+#define VMIN 6
+#define VSWTC 7
+#define VSTART 8
+#define VSTOP 9
+#define VSUSP 10
+#define VEOL 11
+#define VREPRINT 12
+#define VDISCARD 13
+#define VWERASE 14
+#define VLNEXT 15
+#define VEOL2 16
+
+#define IGNBRK 0000001
+#define BRKINT 0000002
+#define IGNPAR 0000004
+#define PARMRK 0000010
+#define INPCK 0000020
+#define ISTRIP 0000040
+#define INLCR 0000100
+#define IGNCR 0000200
+#define ICRNL 0000400
+#define IUCLC 0001000
+#define IXON 0002000
+#define IXANY 0004000
+#define IXOFF 0010000
+#define IMAXBEL 0020000
+#define IUTF8 0040000
+
+#define OPOST 0000001
+#define OLCUC 0000002
+#define ONLCR 0000004
+#define OCRNL 0000010
+#define ONOCR 0000020
+#define ONLRET 0000040
+#define OFILL 0000100
+#define OFDEL 0000200
+#define NLDLY 0000400
+#define NL0 0000000
+#define NL1 0000400
+#define CRDLY 0003000
+#define CR0 0000000
+#define CR1 0001000
+#define CR2 0002000
+#define CR3 0003000
+#define TABDLY 0014000
+#define TAB0 0000000
+#define TAB1 0004000
+#define TAB2 0010000
+#define TAB3 0014000
+#define BSDLY 0020000
+#define BS0 0000000
+#define BS1 0020000
+#define FFDLY 0100000
+#define FF0 0000000
+#define FF1 0100000
+
+#define VTDLY 0040000
+#define VT0 0000000
+#define VT1 0040000
+
+#define B0 0000000
+#define B50 0000001
+#define B75 0000002
+#define B110 0000003
+#define B134 0000004
+#define B150 0000005
+#define B200 0000006
+#define B300 0000007
+#define B600 0000010
+#define B1200 0000011
+#define B1800 0000012
+#define B2400 0000013
+#define B4800 0000014
+#define B9600 0000015
+#define B19200 0000016
+#define B38400 0000017
+
+#define B57600 0010001
+#define B115200 0010002
+#define B230400 0010003
+#define B460800 0010004
+#define B500000 0010005
+#define B576000 0010006
+#define B921600 0010007
+#define B1000000 0010010
+#define B1152000 0010011
+#define B1500000 0010012
+#define B2000000 0010013
+#define B2500000 0010014
+#define B3000000 0010015
+#define B3500000 0010016
+#define B4000000 0010017
+
+#define CBAUD 0010017
+
+#define CSIZE 0000060
+#define CS5 0000000
+#define CS6 0000020
+#define CS7 0000040
+#define CS8 0000060
+#define CSTOPB 0000100
+#define CREAD 0000200
+#define PARENB 0000400
+#define PARODD 0001000
+#define HUPCL 0002000
+#define CLOCAL 0004000
+
+#define ISIG 0000001
+#define ICANON 0000002
+#define ECHO 0000010
+#define ECHOE 0000020
+#define ECHOK 0000040
+#define ECHONL 0000100
+#define NOFLSH 0000200
+#define TOSTOP 0000400
+#define IEXTEN 0100000
+
+#define ECHOCTL 0001000
+#define ECHOPRT 0002000
+#define ECHOKE 0004000
+#define FLUSHO 0010000
+#define PENDIN 0040000
+
+#define TCOOFF 0
+#define TCOON 1
+#define TCIOFF 2
+#define TCION 3
+
+#define TCIFLUSH 0
+#define TCOFLUSH 1
+#define TCIOFLUSH 2
+
+#define TCSANOW 0
+#define TCSADRAIN 1
+#define TCSAFLUSH 2
+
+#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
+#define CBAUDEX 0010000
+#define CRTSCTS 020000000000
+#define EXTPROC 0200000
+#define XTABS 0014000
+#endif
--- /dev/null
+__asm__("\
+.global _start \n\
+_start: \n\
+ mov r15, r4 \n\
+ mov #-16, r0 \n\
+ and r0, r15 \n\
+ bsr __cstart \n\
+ nop \n\
+");
--- /dev/null
+static inline struct pthread *__pthread_self()
+{
+ char *self;
+ __asm__ __volatile__ ("stc gbr,%0" : "=r" (self) );
+ return (struct pthread *) (self + 8 - sizeof(struct pthread));
+}
+
+#define TLS_ABOVE_TP
+#define TP_ADJ(p) ((char *)(p) + sizeof(struct pthread) - 8)
+
+#define CANCEL_REG_IP 17
--- /dev/null
+#if __BYTE_ORDER == __LITTLE_ENDIAN
+#define ENDIAN_SUFFIX "l"
+#else
+#define ENDIAN_SUFFIX ""
+#endif
+
+#define LDSO_ARCH "sh" ENDIAN_SUFFIX
+
+#define IS_COPY(x) ((x) == R_SH_COPY)
+#define IS_PLT(x) ((x) == R_SH_JMP_SLOT)
+
+static inline void do_single_reloc(
+ struct dso *self, unsigned char *base_addr,
+ size_t *reloc_addr, int type, size_t addend,
+ Sym *sym, size_t sym_size,
+ struct symdef def, size_t sym_val)
+{
+ switch(type) {
+ case R_SH_GLOB_DAT:
+ case R_SH_JMP_SLOT:
+ *reloc_addr = sym_val;
+ break;
+ case R_SH_RELATIVE:
+ *reloc_addr = (size_t)base_addr + addend;
+ break;
+ case R_SH_DIR32:
+ *reloc_addr = sym_val + addend;
+ break;
+ case R_SH_REL32:
+ *reloc_addr = sym_val + addend - (size_t)reloc_addr + (size_t)base_addr;
+ break;
+ case R_SH_COPY:
+ memcpy(reloc_addr, (void *)sym_val, sym_size);
+ break;
+ case R_SH_TLS_DTPMOD32:
+ *reloc_addr += def.dso ? def.dso->tls_id : self->tls_id;
+ break;
+ case R_SH_TLS_DTPOFF32:
+ *reloc_addr += def.sym->st_value;
+ break;
+ case R_SH_TLS_TPOFF32:
+ *reloc_addr += def.sym
+ ? def.sym->st_value + def.dso->tls_offset + 8
+ : self->tls_offset + 8;
+ break;
+ }
+}
--- /dev/null
+/* used by gcc for switching the FPU between single and double precision */
+const unsigned long __fpscr_values[2] = { 0, 0x80000 };
--- /dev/null
+#include "libc.h"
+
+#define LLSC_CLOBBERS "r0", "t", "memory"
+#define LLSC_START(mem) \
+ "0: movli.l @" mem ", r0\n"
+#define LLSC_END(mem) \
+ "1: movco.l r0, @" mem "\n" \
+ " bf 0b\n" \
+ " synco\n"
+
+/* gusa is a hack in the kernel which lets you create a sequence of instructions
+ * which will be restarted if the process is preempted in the middle of the
+ * sequence. It will do for implementing atomics on non-smp systems. ABI is:
+ * r0 = address of first instruction after the atomic sequence
+ * r1 = original stack pointer
+ * r15 = -1 * length of atomic sequence in bytes
+ */
+#define GUSA_CLOBBERS "r0", "r1", "memory"
+#define GUSA_START(mem,old,nop) \
+ " .align 2\n" \
+ " mova 1f, r0\n" \
+ nop \
+ " mov r15, r1\n" \
+ " mov #(0f-1f), r15\n" \
+ "0: mov.l @" mem ", " old "\n"
+/* the target of mova must be 4 byte aligned, so we may need a nop */
+#define GUSA_START_ODD(mem,old) GUSA_START(mem,old,"")
+#define GUSA_START_EVEN(mem,old) GUSA_START(mem,old,"\tnop\n")
+#define GUSA_END(mem,new) \
+ " mov.l " new ", @" mem "\n" \
+ "1: mov r1, r15\n"
+
+#define CPU_HAS_LLSC 0x0040
+
+int __sh_cas(volatile int *p, int t, int s)
+{
+ int old;
+ if (__hwcap & CPU_HAS_LLSC) {
+ __asm__ __volatile__(
+ LLSC_START("%1")
+ " mov r0, %0\n"
+ " cmp/eq %0, %2\n"
+ " bf 1f\n"
+ " mov %3, r0\n"
+ LLSC_END("%1")
+ : "=&r"(old) : "r"(p), "r"(t), "r"(s) : LLSC_CLOBBERS);
+ } else {
+ __asm__ __volatile__(
+ GUSA_START_EVEN("%1", "%0")
+ " cmp/eq %0, %2\n"
+ " bf 1f\n"
+ GUSA_END("%1", "%3")
+ : "=&r"(old) : "r"(p), "r"(t), "r"(s) : GUSA_CLOBBERS, "t");
+ }
+ return old;
+}
+
+int __sh_swap(volatile int *x, int v)
+{
+ int old;
+ if (__hwcap & CPU_HAS_LLSC) {
+ __asm__ __volatile__(
+ LLSC_START("%1")
+ " mov r0, %0\n"
+ " mov %2, r0\n"
+ LLSC_END("%1")
+ : "=&r"(old) : "r"(x), "r"(v) : LLSC_CLOBBERS);
+ } else {
+ __asm__ __volatile__(
+ GUSA_START_EVEN("%1", "%0")
+ GUSA_END("%1", "%2")
+ : "=&r"(old) : "r"(x), "r"(v) : GUSA_CLOBBERS);
+ }
+ return old;
+}
+
+int __sh_fetch_add(volatile int *x, int v)
+{
+ int old, dummy;
+ if (__hwcap & CPU_HAS_LLSC) {
+ __asm__ __volatile__(
+ LLSC_START("%1")
+ " mov r0, %0\n"
+ " add %2, r0\n"
+ LLSC_END("%1")
+ : "=&r"(old) : "r"(x), "r"(v) : LLSC_CLOBBERS);
+ } else {
+ __asm__ __volatile__(
+ GUSA_START_EVEN("%2", "%0")
+ " mov %0, %1\n"
+ " add %3, %1\n"
+ GUSA_END("%2", "%1")
+ : "=&r"(old), "=&r"(dummy) : "r"(x), "r"(v) : GUSA_CLOBBERS);
+ }
+ return old;
+}
+
+void __sh_store(volatile int *p, int x)
+{
+ if (__hwcap & CPU_HAS_LLSC) {
+ __asm__ __volatile__(
+ " mov.l %1, @%0\n"
+ " synco\n"
+ : : "r"(p), "r"(x) : "memory");
+ } else {
+ __asm__ __volatile__(
+ " mov.l %1, @%0\n"
+ : : "r"(p), "r"(x) : "memory");
+ }
+}
+
+void __sh_and(volatile int *x, int v)
+{
+ int dummy;
+ if (__hwcap & CPU_HAS_LLSC) {
+ __asm__ __volatile__(
+ LLSC_START("%0")
+ " and %1, r0\n"
+ LLSC_END("%0")
+ : : "r"(x), "r"(v) : LLSC_CLOBBERS);
+ } else {
+ __asm__ __volatile__(
+ GUSA_START_ODD("%1", "%0")
+ " and %2, %0\n"
+ GUSA_END("%1", "%0")
+ : "=&r"(dummy) : "r"(x), "r"(v) : GUSA_CLOBBERS);
+ }
+}
+
+void __sh_or(volatile int *x, int v)
+{
+ int dummy;
+ if (__hwcap & CPU_HAS_LLSC) {
+ __asm__ __volatile__(
+ LLSC_START("%0")
+ " or %1, r0\n"
+ LLSC_END("%0")
+ : : "r"(x), "r"(v) : LLSC_CLOBBERS);
+ } else {
+ __asm__ __volatile__(
+ GUSA_START_ODD("%1", "%0")
+ " or %2, %0\n"
+ GUSA_END("%1", "%0")
+ : "=&r"(dummy) : "r"(x), "r"(v) : GUSA_CLOBBERS);
+ }
+}
--- /dev/null
+#define __SYSCALL_LL_E(x) \
+((union { long long ll; long l[2]; }){ .ll = x }).l[0], \
+((union { long long ll; long l[2]; }){ .ll = x }).l[1]
+#define __SYSCALL_LL_O(x) __SYSCALL_LL_E((x))
+
+/* The extra OR instructions are to work around a hardware bug:
+ * http://documentation.renesas.com/doc/products/mpumcu/tu/tnsh7456ae.pdf
+ */
+#define __asm_syscall(trapno, ...) do { \
+ __asm__ __volatile__ ( \
+ "trapa #" #trapno "\n" \
+ "or r0, r0\n" \
+ "or r0, r0\n" \
+ "or r0, r0\n" \
+ "or r0, r0\n" \
+ "or r0, r0\n" \
+ : "=r"(r0) : __VA_ARGS__ : "memory"); \
+ return r0; \
+ } while (0)
+
+static inline long __syscall0(long n)
+{
+ register long r3 __asm__("r3") = n;
+ register long r0 __asm__("r0");
+ __asm_syscall(16, "r"(r3));
+}
+
+static inline long __syscall1(long n, long a)
+{
+ register long r3 __asm__("r3") = n;
+ register long r4 __asm__("r4") = a;
+ register long r0 __asm__("r0");
+ __asm_syscall(17, "r"(r3), "r"(r4));
+}
+
+static inline long __syscall2(long n, long a, long b)
+{
+ register long r3 __asm__("r3") = n;
+ register long r4 __asm__("r4") = a;
+ register long r5 __asm__("r5") = b;
+ register long r0 __asm__("r0");
+ __asm_syscall(18, "r"(r3), "r"(r4), "r"(r5));
+}
+
+static inline long __syscall3(long n, long a, long b, long c)
+{
+ register long r3 __asm__("r3") = n;
+ register long r4 __asm__("r4") = a;
+ register long r5 __asm__("r5") = b;
+ register long r6 __asm__("r6") = c;
+ register long r0 __asm__("r0");
+ __asm_syscall(19, "r"(r3), "r"(r4), "r"(r5), "r"(r6));
+}
+
+static inline long __syscall4(long n, long a, long b, long c, long d)
+{
+ register long r3 __asm__("r3") = n;
+ register long r4 __asm__("r4") = a;
+ register long r5 __asm__("r5") = b;
+ register long r6 __asm__("r6") = c;
+ register long r7 __asm__("r7") = d;
+ register long r0 __asm__("r0");
+ __asm_syscall(20, "r"(r3), "r"(r4), "r"(r5), "r"(r6), "r"(r7));
+}
+
+static inline long __syscall5(long n, long a, long b, long c, long d, long e)
+{
+ register long r3 __asm__("r3") = n;
+ register long r4 __asm__("r4") = a;
+ register long r5 __asm__("r5") = b;
+ register long r6 __asm__("r6") = c;
+ register long r7 __asm__("r7") = d;
+ register long r0 __asm__("r0") = e;
+ __asm_syscall(21, "r"(r3), "r"(r4), "r"(r5), "r"(r6), "r"(r7), "0"(r0));
+}
+
+static inline long __syscall6(long n, long a, long b, long c, long d, long e, long f)
+{
+ register long r3 __asm__("r3") = n;
+ register long r4 __asm__("r4") = a;
+ register long r5 __asm__("r5") = b;
+ register long r6 __asm__("r6") = c;
+ register long r7 __asm__("r7") = d;
+ register long r0 __asm__("r0") = e;
+ register long r1 __asm__("r1") = f;
+ __asm_syscall(22, "r"(r3), "r"(r4), "r"(r5), "r"(r6), "r"(r7), "0"(r0), "r"(r1));
+}
+++ /dev/null
-#ifndef _INTERNAL_ATOMIC_H
-#define _INTERNAL_ATOMIC_H
-
-#include <stdint.h>
-
-static inline int a_ctz_l(unsigned long x)
-{
- static const char debruijn32[32] = {
- 0, 1, 23, 2, 29, 24, 19, 3, 30, 27, 25, 11, 20, 8, 4, 13,
- 31, 22, 28, 18, 26, 10, 7, 12, 21, 17, 9, 6, 16, 5, 15, 14
- };
- return debruijn32[(x&-x)*0x076be629 >> 27];
-}
-
-static inline int a_ctz_64(uint64_t x)
-{
- uint32_t y = x;
- if (!y) {
- y = x>>32;
- return 32 + a_ctz_l(y);
- }
- return a_ctz_l(y);
-}
-
-int __sh_cas(volatile int *, int, int);
-int __sh_swap(volatile int *, int);
-int __sh_fetch_add(volatile int *, int);
-void __sh_store(volatile int *, int);
-void __sh_and(volatile int *, int);
-void __sh_or(volatile int *, int);
-
-#define a_cas(p,t,s) __sh_cas(p,t,s)
-#define a_swap(x,v) __sh_swap(x,v)
-#define a_fetch_add(x,v) __sh_fetch_add(x, v)
-#define a_store(x,v) __sh_store(x, v)
-#define a_and(x,v) __sh_and(x, v)
-#define a_or(x,v) __sh_or(x, v)
-
-static inline void *a_cas_p(volatile void *p, void *t, void *s)
-{
- return (void *)a_cas(p, (int)t, (int)s);
-}
-
-static inline long a_cas_l(volatile void *p, long t, long s)
-{
- return a_cas(p, t, s);
-}
-
-static inline void a_inc(volatile int *x)
-{
- a_fetch_add(x, 1);
-}
-
-static inline void a_dec(volatile int *x)
-{
- a_fetch_add(x, -1);
-}
-
-static inline void a_spin()
-{
-}
-
-static inline void a_crash()
-{
- *(volatile char *)0=0;
-}
-
-static inline void a_or_l(volatile void *p, long v)
-{
- a_or(p, v);
-}
-
-static inline void a_and_64(volatile uint64_t *p, uint64_t v)
-{
- union { uint64_t v; uint32_t r[2]; } u = { v };
- a_and((int *)p, u.r[0]);
- a_and((int *)p+1, u.r[1]);
-}
-
-static inline void a_or_64(volatile uint64_t *p, uint64_t v)
-{
- union { uint64_t v; uint32_t r[2]; } u = { v };
- a_or((int *)p, u.r[0]);
- a_or((int *)p+1, u.r[1]);
-}
-
-#endif
+++ /dev/null
-#define _Addr int
-#define _Int64 long long
-#define _Reg int
-
-TYPEDEF __builtin_va_list va_list;
-TYPEDEF __builtin_va_list __isoc_va_list;
-
-#ifndef __cplusplus
-TYPEDEF long wchar_t;
-#endif
-TYPEDEF unsigned wint_t;
-
-TYPEDEF float float_t;
-TYPEDEF double double_t;
-
-TYPEDEF long time_t;
-TYPEDEF long suseconds_t;
-
-TYPEDEF struct { union { int __i[9]; unsigned __s[9]; } __u; } pthread_attr_t;
-TYPEDEF struct { union { int __i[6]; void *__p[6]; } __u; } pthread_mutex_t;
-TYPEDEF struct { union { int __i[12]; void *__p[12]; } __u; } pthread_cond_t;
-TYPEDEF struct { union { int __i[8]; void *__p[8]; } __u; } pthread_rwlock_t;
-TYPEDEF struct { union { int __i[5]; void *__p[5]; } __u; } pthread_barrier_t;
+++ /dev/null
-#if __LITTLE_ENDIAN__
-#define __BYTE_ORDER __LITTLE_ENDIAN
-#else
-#define __BYTE_ORDER __BIG_ENDIAN
-#endif
+++ /dev/null
-#define EPERM 1
-#define ENOENT 2
-#define ESRCH 3
-#define EINTR 4
-#define EIO 5
-#define ENXIO 6
-#define E2BIG 7
-#define ENOEXEC 8
-#define EBADF 9
-#define ECHILD 10
-#define EAGAIN 11
-#define ENOMEM 12
-#define EACCES 13
-#define EFAULT 14
-#define ENOTBLK 15
-#define EBUSY 16
-#define EEXIST 17
-#define EXDEV 18
-#define ENODEV 19
-#define ENOTDIR 20
-#define EISDIR 21
-#define EINVAL 22
-#define ENFILE 23
-#define EMFILE 24
-#define ENOTTY 25
-#define ETXTBSY 26
-#define EFBIG 27
-#define ENOSPC 28
-#define ESPIPE 29
-#define EROFS 30
-#define EMLINK 31
-#define EPIPE 32
-#define EDOM 33
-#define ERANGE 34
-#define EDEADLK 35
-#define ENAMETOOLONG 36
-#define ENOLCK 37
-#define ENOSYS 38
-#define ENOTEMPTY 39
-#define ELOOP 40
-#define EWOULDBLOCK EAGAIN
-#define ENOMSG 42
-#define EIDRM 43
-#define ECHRNG 44
-#define EL2NSYNC 45
-#define EL3HLT 46
-#define EL3RST 47
-#define ELNRNG 48
-#define EUNATCH 49
-#define ENOCSI 50
-#define EL2HLT 51
-#define EBADE 52
-#define EBADR 53
-#define EXFULL 54
-#define ENOANO 55
-#define EBADRQC 56
-#define EBADSLT 57
-#define EDEADLOCK EDEADLK
-#define EBFONT 59
-#define ENOSTR 60
-#define ENODATA 61
-#define ETIME 62
-#define ENOSR 63
-#define ENONET 64
-#define ENOPKG 65
-#define EREMOTE 66
-#define ENOLINK 67
-#define EADV 68
-#define ESRMNT 69
-#define ECOMM 70
-#define EPROTO 71
-#define EMULTIHOP 72
-#define EDOTDOT 73
-#define EBADMSG 74
-#define EOVERFLOW 75
-#define ENOTUNIQ 76
-#define EBADFD 77
-#define EREMCHG 78
-#define ELIBACC 79
-#define ELIBBAD 80
-#define ELIBSCN 81
-#define ELIBMAX 82
-#define ELIBEXEC 83
-#define EILSEQ 84
-#define ERESTART 85
-#define ESTRPIPE 86
-#define EUSERS 87
-#define ENOTSOCK 88
-#define EDESTADDRREQ 89
-#define EMSGSIZE 90
-#define EPROTOTYPE 91
-#define ENOPROTOOPT 92
-#define EPROTONOSUPPORT 93
-#define ESOCKTNOSUPPORT 94
-#define EOPNOTSUPP 95
-#define ENOTSUP EOPNOTSUPP
-#define EPFNOSUPPORT 96
-#define EAFNOSUPPORT 97
-#define EADDRINUSE 98
-#define EADDRNOTAVAIL 99
-#define ENETDOWN 100
-#define ENETUNREACH 101
-#define ENETRESET 102
-#define ECONNABORTED 103
-#define ECONNRESET 104
-#define ENOBUFS 105
-#define EISCONN 106
-#define ENOTCONN 107
-#define ESHUTDOWN 108
-#define ETOOMANYREFS 109
-#define ETIMEDOUT 110
-#define ECONNREFUSED 111
-#define EHOSTDOWN 112
-#define EHOSTUNREACH 113
-#define EALREADY 114
-#define EINPROGRESS 115
-#define ESTALE 116
-#define EUCLEAN 117
-#define ENOTNAM 118
-#define ENAVAIL 119
-#define EISNAM 120
-#define EREMOTEIO 121
-#define EDQUOT 122
-#define ENOMEDIUM 123
-#define EMEDIUMTYPE 124
-#define ECANCELED 125
-#define ENOKEY 126
-#define EKEYEXPIRED 127
-#define EKEYREVOKED 128
-#define EKEYREJECTED 129
-#define EOWNERDEAD 130
-#define ENOTRECOVERABLE 131
-#define ERFKILL 132
-#define EHWPOISON 133
+++ /dev/null
-#define O_CREAT 0100
-#define O_EXCL 0200
-#define O_NOCTTY 0400
-#define O_TRUNC 01000
-#define O_APPEND 02000
-#define O_NONBLOCK 04000
-#define O_DSYNC 010000
-#define O_SYNC 04010000
-#define O_RSYNC 04010000
-#define O_DIRECTORY 0200000
-#define O_NOFOLLOW 0400000
-#define O_CLOEXEC 02000000
-
-#define O_ASYNC 020000
-#define O_DIRECT 040000
-#define O_LARGEFILE 0100000
-#define O_NOATIME 01000000
-#define O_TMPFILE 020200000
-#define O_NDELAY O_NONBLOCK
-
-#define F_DUPFD 0
-#define F_GETFD 1
-#define F_SETFD 2
-#define F_GETFL 3
-#define F_SETFL 4
-
-#define F_SETOWN 8
-#define F_GETOWN 9
-#define F_SETSIG 10
-#define F_GETSIG 11
-
-#define F_GETLK 12
-#define F_SETLK 13
-#define F_SETLKW 14
-
-#define F_SETOWN_EX 15
-#define F_GETOWN_EX 16
-
-#define F_GETOWNER_UIDS 17
+++ /dev/null
-#define FE_TONEAREST 0
-#define FE_TOWARDZERO 1
-
-#define FE_INEXACT 0x04
-#define FE_UNDERFLOW 0x08
-#define FE_OVERFLOW 0x10
-#define FE_DIVBYZERO 0x20
-#define FE_INVALID 0x40
-#define FE_ALL_EXCEPT 0x7c
-
-typedef unsigned long fexcept_t;
-
-typedef struct {
- unsigned long __cw;
-} fenv_t;
-
-#define FE_DFL_ENV ((const fenv_t *) -1)
+++ /dev/null
-#define FLT_ROUNDS 1
-#define FLT_EVAL_METHOD 0
-
-#define LDBL_TRUE_MIN 4.94065645841246544177e-324L
-#define LDBL_MIN 2.22507385850720138309e-308L
-#define LDBL_MAX 1.79769313486231570815e+308L
-#define LDBL_EPSILON 2.22044604925031308085e-16L
-
-#define LDBL_MANT_DIG 53
-#define LDBL_MIN_EXP (-1021)
-#define LDBL_MAX_EXP 1024
-
-#define LDBL_DIG 15
-#define LDBL_MIN_10_EXP (-307)
-#define LDBL_MAX_10_EXP 308
-
-#define DECIMAL_DIG 17
+++ /dev/null
-#define _IOC(a,b,c,d) ( ((a)<<30) | ((b)<<8) | (c) | ((d)<<16) )
-#define _IOC_NONE 0U
-#define _IOC_WRITE 1U
-#define _IOC_READ 2U
-
-#define _IO(a,b) _IOC(_IOC_NONE,(a),(b),0)
-#define _IOW(a,b,c) _IOC(_IOC_WRITE,(a),(b),sizeof(c))
-#define _IOR(a,b,c) _IOC(_IOC_READ,(a),(b),sizeof(c))
-#define _IOWR(a,b,c) _IOC(_IOC_READ|_IOC_WRITE,(a),(b),sizeof(c))
-
-#define FIOCLEX _IO('f', 1)
-#define FIONCLEX _IO('f', 2)
-#define FIOASYNC _IOW('f', 125, int)
-#define FIONBIO _IOW('f', 126, int)
-#define FIONREAD _IOR('f', 127, int)
-#define TIOCINQ FIONREAD
-#define FIOQSIZE _IOR('f', 128, char[8])
-
-#define TCGETA _IOR('t', 23, char[18])
-#define TCSETA _IOW('t', 24, char[18])
-#define TCSETAW _IOW('t', 25, char[18])
-#define TCSETAF _IOW('t', 28, char[18])
-
-#define TCSBRK _IO('t', 29)
-#define TCXONC _IO('t', 30)
-#define TCFLSH _IO('t', 31)
-
-#define TIOCSWINSZ _IOW('t', 103, char[8])
-#define TIOCGWINSZ _IOR('t', 104, char[8])
-#define TIOCSTART _IO('t', 110)
-#define TIOCSTOP _IO('t', 111)
-#define TIOCOUTQ _IOR('t', 115, int)
-
-#define TIOCSPGRP _IOW('t', 118, int)
-#define TIOCGPGRP _IOR('t', 119, int)
-
-#define TIOCEXCL _IO('T', 12)
-#define TIOCNXCL _IO('T', 13)
-#define TIOCSCTTY _IO('T', 14)
-
-#define TIOCSTI _IOW('T', 18, char)
-#define TIOCMGET _IOR('T', 21, unsigned int)
-#define TIOCMBIS _IOW('T', 22, unsigned int)
-#define TIOCMBIC _IOW('T', 23, unsigned int)
-#define TIOCMSET _IOW('T', 24, unsigned int)
-#define TIOCM_LE 0x001
-#define TIOCM_DTR 0x002
-#define TIOCM_RTS 0x004
-#define TIOCM_ST 0x008
-#define TIOCM_SR 0x010
-#define TIOCM_CTS 0x020
-#define TIOCM_CAR 0x040
-#define TIOCM_RNG 0x080
-#define TIOCM_DSR 0x100
-#define TIOCM_CD TIOCM_CAR
-#define TIOCM_RI TIOCM_RNG
-#define TIOCM_OUT1 0x2000
-#define TIOCM_OUT2 0x4000
-#define TIOCM_LOOP 0x8000
-
-#define TIOCGSOFTCAR _IOR('T', 25, unsigned int)
-#define TIOCSSOFTCAR _IOW('T', 26, unsigned int)
-#define TIOCLINUX _IOW('T', 28, char)
-#define TIOCCONS _IO('T', 29)
-#define TIOCGSERIAL _IOR('T', 30, char[60])
-#define TIOCSSERIAL _IOW('T', 31, char[60])
-#define TIOCPKT _IOW('T', 32, int)
-#define TIOCPKT_DATA 0
-#define TIOCPKT_FLUSHREAD 1
-#define TIOCPKT_FLUSHWRITE 2
-#define TIOCPKT_STOP 4
-#define TIOCPKT_START 8
-#define TIOCPKT_NOSTOP 16
-#define TIOCPKT_DOSTOP 32
-#define TIOCPKT_IOCTL 64
-
-#define TIOCNOTTY _IO('T', 34)
-#define TIOCSETD _IOW('T', 35, int)
-#define TIOCGETD _IOR('T', 36, int)
-#define TCSBRKP _IOW('T', 37, int)
-#define TIOCSBRK _IO('T', 39)
-#define TIOCCBRK _IO('T', 40)
-#define TIOCGSID _IOR('T', 41, int)
-#define TCGETS _IOR('T', 42, char[44])
-#define TCSETS _IOW('T', 43, char[44])
-#define TCSETSW _IOW('T', 44, char[44])
-#define TCSETSF _IOW('T', 45, char[44])
-#define TIOCGPTN _IOR('T', 48, unsigned int)
-#define TIOCSPTLCK _IOW('T', 49, int)
-#define TIOCGDEV _IOR('T', 50, unsigned int)
-#define TIOCSIG _IOW('T', 54, int)
-#define TIOCVHANGUP _IO('T', 55)
-#define TIOCGPKT _IOR('T', 56, int)
-#define TIOCGPTLCK _IOR('T', 57, int)
-#define TIOCGEXCL _IOR('T', 64, int)
-
-#define TIOCSERCONFIG _IO('T', 83)
-#define TIOCSERGWILD _IOR('T', 84, int)
-#define TIOCSERSWILD _IOW('T', 85, int)
-#define TIOCGLCKTRMIOS _IO('T', 86)
-#define TIOCSLCKTRMIOS _IO('T', 87)
-#define TIOCSERGSTRUCT _IOR('T', 88, char[216])
-#define TIOCSERGETLSR _IOR('T', 89, unsigned int)
-#define TIOCSER_TEMT 0x01
-#define TIOCSERGETMULTI _IOR('T', 90, char[168])
-#define TIOCSERSETMULTI _IOW('T', 91, char[168])
-
-#define TIOCMIWAIT _IO('T', 92)
-#define TIOCGICOUNT _IO('T', 93)
-
-struct winsize {
- unsigned short ws_row;
- unsigned short ws_col;
- unsigned short ws_xpixel;
- unsigned short ws_ypixel;
-};
-
-#define TIOCM_MODEM_BITS TIOCM_OUT2
-
-#define N_TTY 0
-#define N_SLIP 1
-#define N_MOUSE 2
-#define N_PPP 3
-#define N_STRIP 4
-#define N_AX25 5
-#define N_X25 6
-#define N_6PACK 7
-#define N_MASC 8
-#define N_R3964 9
-#define N_PROFIBUS_FDL 10
-#define N_IRDA 11
-#define N_SMSBLOCK 12
-#define N_HDLC 13
-#define N_SYNC_PPP 14
-#define N_HCI 15
-
-#define FIOGETOWN _IOR('f', 123, int)
-#define FIOSETOWN _IOW('f', 124, int)
-
-#define SIOCATMARK _IOR('s', 7, int)
-#define SIOCSPGRP _IOW('s', 8, int)
-#define SIOCGPGRP _IOW('s', 9, int)
-#define SIOCGSTAMP _IOR('s', 100, char[8])
-
-#define SIOCADDRT 0x890B
-#define SIOCDELRT 0x890C
-#define SIOCRTMSG 0x890D
-
-#define SIOCGIFNAME 0x8910
-#define SIOCSIFLINK 0x8911
-#define SIOCGIFCONF 0x8912
-#define SIOCGIFFLAGS 0x8913
-#define SIOCSIFFLAGS 0x8914
-#define SIOCGIFADDR 0x8915
-#define SIOCSIFADDR 0x8916
-#define SIOCGIFDSTADDR 0x8917
-#define SIOCSIFDSTADDR 0x8918
-#define SIOCGIFBRDADDR 0x8919
-#define SIOCSIFBRDADDR 0x891a
-#define SIOCGIFNETMASK 0x891b
-#define SIOCSIFNETMASK 0x891c
-#define SIOCGIFMETRIC 0x891d
-#define SIOCSIFMETRIC 0x891e
-#define SIOCGIFMEM 0x891f
-#define SIOCSIFMEM 0x8920
-#define SIOCGIFMTU 0x8921
-#define SIOCSIFMTU 0x8922
-#define SIOCSIFHWADDR 0x8924
-#define SIOCGIFENCAP 0x8925
-#define SIOCSIFENCAP 0x8926
-#define SIOCGIFHWADDR 0x8927
-#define SIOCGIFSLAVE 0x8929
-#define SIOCSIFSLAVE 0x8930
-#define SIOCADDMULTI 0x8931
-#define SIOCDELMULTI 0x8932
-#define SIOCGIFINDEX 0x8933
-#define SIOGIFINDEX SIOCGIFINDEX
-#define SIOCSIFPFLAGS 0x8934
-#define SIOCGIFPFLAGS 0x8935
-#define SIOCDIFADDR 0x8936
-#define SIOCSIFHWBROADCAST 0x8937
-#define SIOCGIFCOUNT 0x8938
-
-#define SIOCGIFBR 0x8940
-#define SIOCSIFBR 0x8941
-
-#define SIOCGIFTXQLEN 0x8942
-#define SIOCSIFTXQLEN 0x8943
-
-#define SIOCDARP 0x8953
-#define SIOCGARP 0x8954
-#define SIOCSARP 0x8955
-
-#define SIOCDRARP 0x8960
-#define SIOCGRARP 0x8961
-#define SIOCSRARP 0x8962
-
-#define SIOCGIFMAP 0x8970
-#define SIOCSIFMAP 0x8971
-
-#define SIOCADDDLCI 0x8980
-#define SIOCDELDLCI 0x8981
-
-#define SIOCDEVPRIVATE 0x89F0
-#define SIOCPROTOPRIVATE 0x89E0
+++ /dev/null
-struct ipc_perm
-{
- key_t __ipc_perm_key;
- uid_t uid;
- gid_t gid;
- uid_t cuid;
- gid_t cgid;
- mode_t mode;
- int __ipc_perm_seq;
- long __pad1;
- long __pad2;
-};
-
-#define IPC_64 0x100
+++ /dev/null
-#if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \
- || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
-#define PAGE_SIZE 4096
-#define LONG_BIT 32
-#endif
-
-#define LONG_MAX 0x7fffffffL
-#define LLONG_MAX 0x7fffffffffffffffLL
+++ /dev/null
-#define MAP_FAILED ((void *) -1)
-
-#define PROT_NONE 0
-#define PROT_READ 1
-#define PROT_WRITE 2
-#define PROT_EXEC 4
-#define PROT_GROWSDOWN 0x01000000
-#define PROT_GROWSUP 0x02000000
-
-#define MAP_SHARED 0x01
-#define MAP_PRIVATE 0x02
-#define MAP_FIXED 0x10
-
-#define MAP_TYPE 0x0f
-#define MAP_FILE 0x00
-#define MAP_ANON 0x20
-#define MAP_ANONYMOUS MAP_ANON
-#define MAP_32BIT 0x40
-#define MAP_NORESERVE 0x4000
-#define MAP_GROWSDOWN 0x0100
-#define MAP_DENYWRITE 0x0800
-#define MAP_EXECUTABLE 0x1000
-#define MAP_LOCKED 0x2000
-#define MAP_POPULATE 0x8000
-#define MAP_NONBLOCK 0x10000
-#define MAP_STACK 0x20000
-#define MAP_HUGETLB 0x40000
-
-#define POSIX_MADV_NORMAL 0
-#define POSIX_MADV_RANDOM 1
-#define POSIX_MADV_SEQUENTIAL 2
-#define POSIX_MADV_WILLNEED 3
-#define POSIX_MADV_DONTNEED 4
-
-#define MS_ASYNC 1
-#define MS_INVALIDATE 2
-#define MS_SYNC 4
-
-#define MCL_CURRENT 1
-#define MCL_FUTURE 2
-
-#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
-#define MADV_NORMAL 0
-#define MADV_RANDOM 1
-#define MADV_SEQUENTIAL 2
-#define MADV_WILLNEED 3
-#define MADV_DONTNEED 4
-#define MADV_REMOVE 9
-#define MADV_DONTFORK 10
-#define MADV_DOFORK 11
-#define MADV_MERGEABLE 12
-#define MADV_UNMERGEABLE 13
-#define MADV_HUGEPAGE 14
-#define MADV_NOHUGEPAGE 15
-#define MADV_DONTDUMP 16
-#define MADV_DODUMP 17
-#define MADV_HWPOISON 100
-#define MADV_SOFT_OFFLINE 101
-
-#define MREMAP_MAYMOVE 1
-#define MREMAP_FIXED 2
-#endif
+++ /dev/null
-struct msqid_ds
-{
- struct ipc_perm msg_perm;
- time_t msg_stime;
- int __unused1;
- time_t msg_rtime;
- int __unused2;
- time_t msg_ctime;
- int __unused3;
- unsigned long msg_cbytes;
- msgqnum_t msg_qnum;
- msglen_t msg_qbytes;
- pid_t msg_lspid;
- pid_t msg_lrpid;
- unsigned long __unused[2];
-};
+++ /dev/null
-#define _POSIX_V6_ILP32_OFFBIG 1
-#define _POSIX_V7_ILP32_OFFBIG 1
+++ /dev/null
-typedef unsigned long __jmp_buf[13];
+++ /dev/null
-#define SHMLBA 16384
-
-struct shmid_ds
-{
- struct ipc_perm shm_perm;
- size_t shm_segsz;
- time_t shm_atime;
- int __unused1;
- time_t shm_dtime;
- int __unused2;
- time_t shm_ctime;
- int __unused3;
- pid_t shm_cpid;
- pid_t shm_lpid;
- unsigned long shm_nattch;
- unsigned long __pad1;
- unsigned long __pad2;
-};
-
-struct shminfo {
- unsigned long shmmax, shmmin, shmmni, shmseg, shmall, __unused[4];
-};
-
-struct shm_info {
- int __used_ids;
- unsigned long shm_tot, shm_rss, shm_swp;
- unsigned long __swap_attempts, __swap_successes;
-};
+++ /dev/null
-#if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \
- || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
-
-#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
-typedef int greg_t, gregset_t[16];
-typedef int freg_t, fpregset_t[16];
-typedef struct sigcontext {
- unsigned long oldmask;
- unsigned long sc_regs[16];
- unsigned long sc_pc, sc_pr, sc_sr;
- unsigned long sc_gbr, sc_mach, sc_macl;
- unsigned long sc_fpregs[16];
- unsigned long sc_xfpregs[16];
- unsigned int sc_fpscr, sc_fpul, sc_ownedfp;
-} mcontext_t;
-#else
-typedef struct {
- unsigned long __regs[58];
-} mcontext_t;
-#endif
-
-typedef struct __ucontext {
- unsigned long uc_flags;
- struct __ucontext *uc_link;
- stack_t uc_stack;
- mcontext_t uc_mcontext;
- sigset_t uc_sigmask;
-} ucontext_t;
-
-#define SA_NOCLDSTOP 1
-#define SA_NOCLDWAIT 2
-#define SA_SIGINFO 4
-#define SA_ONSTACK 0x08000000
-#define SA_RESTART 0x10000000
-#define SA_NODEFER 0x40000000
-#define SA_RESETHAND 0x80000000
-#define SA_RESTORER 0x04000000
-
-#endif
-
-#define SIGHUP 1
-#define SIGINT 2
-#define SIGQUIT 3
-#define SIGILL 4
-#define SIGTRAP 5
-#define SIGABRT 6
-#define SIGIOT SIGABRT
-#define SIGBUS 7
-#define SIGFPE 8
-#define SIGKILL 9
-#define SIGUSR1 10
-#define SIGSEGV 11
-#define SIGUSR2 12
-#define SIGPIPE 13
-#define SIGALRM 14
-#define SIGTERM 15
-#define SIGSTKFLT 16
-#define SIGCHLD 17
-#define SIGCONT 18
-#define SIGSTOP 19
-#define SIGTSTP 20
-#define SIGTTIN 21
-#define SIGTTOU 22
-#define SIGURG 23
-#define SIGXCPU 24
-#define SIGXFSZ 25
-#define SIGVTALRM 26
-#define SIGPROF 27
-#define SIGWINCH 28
-#define SIGIO 29
-#define SIGPOLL 29
-#define SIGPWR 30
-#define SIGSYS 31
-#define SIGUNUSED SIGSYS
-
-#define _NSIG 65
+++ /dev/null
-struct msghdr
-{
- void *msg_name;
- socklen_t msg_namelen;
- struct iovec *msg_iov;
- int msg_iovlen;
- void *msg_control;
- socklen_t msg_controllen;
- int msg_flags;
-};
-
-struct cmsghdr
-{
- socklen_t cmsg_len;
- int cmsg_level;
- int cmsg_type;
-};
+++ /dev/null
-/* copied from kernel definition, but with padding replaced
- * by the corresponding correctly-sized userspace types. */
-
-struct stat
-{
- dev_t st_dev;
- int __st_dev_padding;
- long __st_ino_truncated;
- mode_t st_mode;
- nlink_t st_nlink;
- uid_t st_uid;
- gid_t st_gid;
- dev_t st_rdev;
- int __st_rdev_padding;
- off_t st_size;
- blksize_t st_blksize;
- blkcnt_t st_blocks;
- struct timespec st_atim;
- struct timespec st_mtim;
- struct timespec st_ctim;
- ino_t st_ino;
-};
+++ /dev/null
-struct statfs {
- unsigned long f_type, f_bsize;
- fsblkcnt_t f_blocks, f_bfree, f_bavail;
- fsfilcnt_t f_files, f_ffree;
- fsid_t f_fsid;
- unsigned long f_namelen, f_frsize, f_flags, f_spare[4];
-};
+++ /dev/null
-#define va_start(v,l) __builtin_va_start(v,l)
-#define va_end(v) __builtin_va_end(v)
-#define va_arg(v,l) __builtin_va_arg(v,l)
-#define va_copy(d,s) __builtin_va_copy(d,s)
+++ /dev/null
-typedef int32_t int_fast16_t;
-typedef int32_t int_fast32_t;
-typedef uint32_t uint_fast16_t;
-typedef uint32_t uint_fast32_t;
-
-#define INT_FAST16_MIN INT32_MIN
-#define INT_FAST32_MIN INT32_MIN
-
-#define INT_FAST16_MAX INT32_MAX
-#define INT_FAST32_MAX INT32_MAX
-
-#define UINT_FAST16_MAX UINT32_MAX
-#define UINT_FAST32_MAX UINT32_MAX
-
-#define INTPTR_MIN INT32_MIN
-#define INTPTR_MAX INT32_MAX
-#define UINTPTR_MAX UINT32_MAX
-#define PTRDIFF_MIN INT32_MIN
-#define PTRDIFF_MAX INT32_MAX
-#define SIZE_MAX UINT32_MAX
+++ /dev/null
-#define __NR_restart_syscall 0
-#define __NR_exit 1
-#define __NR_fork 2
-#define __NR_read 3
-#define __NR_write 4
-#define __NR_open 5
-#define __NR_close 6
-#define __NR_waitpid 7
-#define __NR_creat 8
-#define __NR_link 9
-#define __NR_unlink 10
-#define __NR_execve 11
-#define __NR_chdir 12
-#define __NR_time 13
-#define __NR_mknod 14
-#define __NR_chmod 15
-#define __NR_lchown 16
-#define __NR_oldstat 18
-#define __NR_lseek 19
-#define __NR_getpid 20
-#define __NR_mount 21
-#define __NR_umount 22
-#define __NR_setuid 23
-#define __NR_getuid 24
-#define __NR_stime 25
-#define __NR_ptrace 26
-#define __NR_alarm 27
-#define __NR_oldfstat 28
-#define __NR_pause 29
-#define __NR_utime 30
-#define __NR_access 33
-#define __NR_nice 34
-#define __NR_sync 36
-#define __NR_kill 37
-#define __NR_rename 38
-#define __NR_mkdir 39
-#define __NR_rmdir 40
-#define __NR_dup 41
-#define __NR_pipe 42
-#define __NR_times 43
-#define __NR_brk 45
-#define __NR_setgid 46
-#define __NR_getgid 47
-#define __NR_signal 48
-#define __NR_geteuid 49
-#define __NR_getegid 50
-#define __NR_acct 51
-#define __NR_umount2 52
-#define __NR_ioctl 54
-#define __NR_fcntl 55
-#define __NR_setpgid 57
-#define __NR_umask 60
-#define __NR_chroot 61
-#define __NR_ustat 62
-#define __NR_dup2 63
-#define __NR_getppid 64
-#define __NR_getpgrp 65
-#define __NR_setsid 66
-#define __NR_sigaction 67
-#define __NR_sgetmask 68
-#define __NR_ssetmask 69
-#define __NR_setreuid 70
-#define __NR_setregid 71
-#define __NR_sigsuspend 72
-#define __NR_sigpending 73
-#define __NR_sethostname 74
-#define __NR_setrlimit 75
-#define __NR_getrlimit 76
-#define __NR_getrusage 77
-#define __NR_gettimeofday 78
-#define __NR_settimeofday 79
-#define __NR_getgroups 80
-#define __NR_setgroups 81
-#define __NR_symlink 83
-#define __NR_oldlstat 84
-#define __NR_readlink 85
-#define __NR_uselib 86
-#define __NR_swapon 87
-#define __NR_reboot 88
-#define __NR_readdir 89
-#define __NR_mmap 90
-#define __NR_munmap 91
-#define __NR_truncate 92
-#define __NR_ftruncate 93
-#define __NR_fchmod 94
-#define __NR_fchown 95
-#define __NR_getpriority 96
-#define __NR_setpriority 97
-#define __NR_statfs 99
-#define __NR_fstatfs 100
-#define __NR_socketcall 102
-#define __NR_syslog 103
-#define __NR_setitimer 104
-#define __NR_getitimer 105
-#define __NR_stat 106
-#define __NR_lstat 107
-#define __NR_fstat 108
-#define __NR_olduname 109
-#define __NR_vhangup 111
-#define __NR_wait4 114
-#define __NR_swapoff 115
-#define __NR_sysinfo 116
-#define __NR_ipc 117
-#define __NR_fsync 118
-#define __NR_sigreturn 119
-#define __NR_clone 120
-#define __NR_setdomainname 121
-#define __NR_uname 122
-#define __NR_cacheflush 123
-#define __NR_adjtimex 124
-#define __NR_mprotect 125
-#define __NR_sigprocmask 126
-#define __NR_init_module 128
-#define __NR_delete_module 129
-#define __NR_quotactl 131
-#define __NR_getpgid 132
-#define __NR_fchdir 133
-#define __NR_bdflush 134
-#define __NR_sysfs 135
-#define __NR_personality 136
-#define __NR_setfsuid 138
-#define __NR_setfsgid 139
-#define __NR__llseek 140
-#define __NR_getdents 141
-#define __NR__newselect 142
-#define __NR_flock 143
-#define __NR_msync 144
-#define __NR_readv 145
-#define __NR_writev 146
-#define __NR_getsid 147
-#define __NR_fdatasync 148
-#define __NR__sysctl 149
-#define __NR_mlock 150
-#define __NR_munlock 151
-#define __NR_mlockall 152
-#define __NR_munlockall 153
-#define __NR_sched_setparam 154
-#define __NR_sched_getparam 155
-#define __NR_sched_setscheduler 156
-#define __NR_sched_getscheduler 157
-#define __NR_sched_yield 158
-#define __NR_sched_get_priority_max 159
-#define __NR_sched_get_priority_min 160
-#define __NR_sched_rr_get_interval 161
-#define __NR_nanosleep 162
-#define __NR_mremap 163
-#define __NR_setresuid 164
-#define __NR_getresuid 165
-#define __NR_poll 168
-#define __NR_nfsservctl 169
-#define __NR_setresgid 170
-#define __NR_getresgid 171
-#define __NR_prctl 172
-#define __NR_rt_sigreturn 173
-#define __NR_rt_sigaction 174
-#define __NR_rt_sigprocmask 175
-#define __NR_rt_sigpending 176
-#define __NR_rt_sigtimedwait 177
-#define __NR_rt_sigqueueinfo 178
-#define __NR_rt_sigsuspend 179
-#define __NR_pread64 180
-#define __NR_pwrite64 181
-#define __NR_chown 182
-#define __NR_getcwd 183
-#define __NR_capget 184
-#define __NR_capset 185
-#define __NR_sigaltstack 186
-#define __NR_sendfile 187
-#define __NR_vfork 190
-#define __NR_ugetrlimit 191
-#define __NR_mmap2 192
-#define __NR_truncate64 193
-#define __NR_ftruncate64 194
-#define __NR_stat64 195
-#define __NR_lstat64 196
-#define __NR_fstat64 197
-#define __NR_lchown32 198
-#define __NR_getuid32 199
-#define __NR_getgid32 200
-#define __NR_geteuid32 201
-#define __NR_getegid32 202
-#define __NR_setreuid32 203
-#define __NR_setregid32 204
-#define __NR_getgroups32 205
-#define __NR_setgroups32 206
-#define __NR_fchown32 207
-#define __NR_setresuid32 208
-#define __NR_getresuid32 209
-#define __NR_setresgid32 210
-#define __NR_getresgid32 211
-#define __NR_chown32 212
-#define __NR_setuid32 213
-#define __NR_setgid32 214
-#define __NR_setfsuid32 215
-#define __NR_setfsgid32 216
-#define __NR_pivot_root 217
-#define __NR_mincore 218
-#define __NR_madvise 219
-#define __NR_getdents64 220
-#define __NR_fcntl64 221
-#define __NR_gettid 224
-#define __NR_readahead 225
-#define __NR_setxattr 226
-#define __NR_lsetxattr 227
-#define __NR_fsetxattr 228
-#define __NR_getxattr 229
-#define __NR_lgetxattr 230
-#define __NR_fgetxattr 231
-#define __NR_listxattr 232
-#define __NR_llistxattr 233
-#define __NR_flistxattr 234
-#define __NR_removexattr 235
-#define __NR_lremovexattr 236
-#define __NR_fremovexattr 237
-#define __NR_tkill 238
-#define __NR_sendfile64 239
-#define __NR_futex 240
-#define __NR_sched_setaffinity 241
-#define __NR_sched_getaffinity 242
-#define __NR_io_setup 245
-#define __NR_io_destroy 246
-#define __NR_io_getevents 247
-#define __NR_io_submit 248
-#define __NR_io_cancel 249
-#define __NR_fadvise64 250
-#define __NR_exit_group 252
-#define __NR_lookup_dcookie 253
-#define __NR_epoll_create 254
-#define __NR_epoll_ctl 255
-#define __NR_epoll_wait 256
-#define __NR_remap_file_pages 257
-#define __NR_set_tid_address 258
-#define __NR_timer_create 259
-#define __NR_timer_settime 260
-#define __NR_timer_gettime 261
-#define __NR_timer_getoverrun 262
-#define __NR_timer_delete 263
-#define __NR_clock_settime 264
-#define __NR_clock_gettime 265
-#define __NR_clock_getres 266
-#define __NR_clock_nanosleep 267
-#define __NR_statfs64 268
-#define __NR_fstatfs64 269
-#define __NR_tgkill 270
-#define __NR_utimes 271
-#define __NR_fadvise64_64 272
-#define __NR_mbind 274
-#define __NR_get_mempolicy 275
-#define __NR_set_mempolicy 276
-#define __NR_mq_open 277
-#define __NR_mq_unlink 278
-#define __NR_mq_timedsend 279
-#define __NR_mq_timedreceive 280
-#define __NR_mq_notify 281
-#define __NR_mq_getsetattr 282
-#define __NR_kexec_load 283
-#define __NR_waitid 284
-#define __NR_add_key 285
-#define __NR_request_key 286
-#define __NR_keyctl 287
-#define __NR_ioprio_set 288
-#define __NR_ioprio_get 289
-#define __NR_inotify_init 290
-#define __NR_inotify_add_watch 291
-#define __NR_inotify_rm_watch 292
-#define __NR_migrate_pages 294
-#define __NR_openat 295
-#define __NR_mkdirat 296
-#define __NR_mknodat 297
-#define __NR_fchownat 298
-#define __NR_futimesat 299
-#define __NR_fstatat64 300
-#define __NR_unlinkat 301
-#define __NR_renameat 302
-#define __NR_linkat 303
-#define __NR_symlinkat 304
-#define __NR_readlinkat 305
-#define __NR_fchmodat 306
-#define __NR_faccessat 307
-#define __NR_pselect6 308
-#define __NR_ppoll 309
-#define __NR_unshare 310
-#define __NR_set_robust_list 311
-#define __NR_get_robust_list 312
-#define __NR_splice 313
-#define __NR_sync_file_range 314
-#define __NR_tee 315
-#define __NR_vmsplice 316
-#define __NR_move_pages 317
-#define __NR_getcpu 318
-#define __NR_epoll_pwait 319
-#define __NR_utimensat 320
-#define __NR_signalfd 321
-#define __NR_timerfd_create 322
-#define __NR_eventfd 323
-#define __NR_fallocate 324
-#define __NR_timerfd_settime 325
-#define __NR_timerfd_gettime 326
-#define __NR_signalfd4 327
-#define __NR_eventfd2 328
-#define __NR_epoll_create1 329
-#define __NR_dup3 330
-#define __NR_pipe2 331
-#define __NR_inotify_init1 332
-#define __NR_preadv 333
-#define __NR_pwritev 334
-#define __NR_rt_tgsigqueueinfo 335
-#define __NR_perf_event_open 336
-#define __NR_fanotify_init 337
-#define __NR_fanotify_mark 338
-#define __NR_prlimit64 339
-#define __NR_socket 340
-#define __NR_bind 341
-#define __NR_connect 342
-#define __NR_listen 343
-#define __NR_accept 344
-#define __NR_getsockname 345
-#define __NR_getpeername 346
-#define __NR_socketpair 347
-#define __NR_send 348
-#define __NR_sendto 349
-#define __NR_recv 350
-#define __NR_recvfrom 351
-#define __NR_shutdown 352
-#define __NR_setsockopt 353
-#define __NR_getsockopt 354
-#define __NR_sendmsg 355
-#define __NR_recvmsg 356
-#define __NR_recvmmsg 357
-#define __NR_accept4 358
-#define __NR_name_to_handle_at 359
-#define __NR_open_by_handle_at 360
-#define __NR_clock_adjtime 361
-#define __NR_syncfs 362
-#define __NR_sendmmsg 363
-#define __NR_setns 364
-#define __NR_process_vm_readv 365
-#define __NR_process_vm_writev 366
-#define __NR_kcmp 367
-#define __NR_finit_module 368
-
-
-/* Repeated with SYS_ prefix */
-
-#define SYS_restart_syscall 0
-#define SYS_exit 1
-#define SYS_fork 2
-#define SYS_read 3
-#define SYS_write 4
-#define SYS_open 5
-#define SYS_close 6
-#define SYS_waitpid 7
-#define SYS_creat 8
-#define SYS_link 9
-#define SYS_unlink 10
-#define SYS_execve 11
-#define SYS_chdir 12
-#define SYS_time 13
-#define SYS_mknod 14
-#define SYS_chmod 15
-#define SYS_lchown 16
-#define SYS_oldstat 18
-#define SYS_lseek 19
-#define SYS_getpid 20
-#define SYS_mount 21
-#define SYS_umount 22
-#define SYS_setuid 23
-#define SYS_getuid 24
-#define SYS_stime 25
-#define SYS_ptrace 26
-#define SYS_alarm 27
-#define SYS_oldfstat 28
-#define SYS_pause 29
-#define SYS_utime 30
-#define SYS_access 33
-#define SYS_nice 34
-#define SYS_sync 36
-#define SYS_kill 37
-#define SYS_rename 38
-#define SYS_mkdir 39
-#define SYS_rmdir 40
-#define SYS_dup 41
-#define SYS_pipe 42
-#define SYS_times 43
-#define SYS_brk 45
-#define SYS_setgid 46
-#define SYS_getgid 47
-#define SYS_signal 48
-#define SYS_geteuid 49
-#define SYS_getegid 50
-#define SYS_acct 51
-#define SYS_umount2 52
-#define SYS_ioctl 54
-#define SYS_fcntl 55
-#define SYS_setpgid 57
-#define SYS_umask 60
-#define SYS_chroot 61
-#define SYS_ustat 62
-#define SYS_dup2 63
-#define SYS_getppid 64
-#define SYS_getpgrp 65
-#define SYS_setsid 66
-#define SYS_sigaction 67
-#define SYS_sgetmask 68
-#define SYS_ssetmask 69
-#define SYS_setreuid 70
-#define SYS_setregid 71
-#define SYS_sigsuspend 72
-#define SYS_sigpending 73
-#define SYS_sethostname 74
-#define SYS_setrlimit 75
-#define SYS_getrlimit 76
-#define SYS_getrusage 77
-#define SYS_gettimeofday 78
-#define SYS_settimeofday 79
-#define SYS_getgroups 80
-#define SYS_setgroups 81
-#define SYS_symlink 83
-#define SYS_oldlstat 84
-#define SYS_readlink 85
-#define SYS_uselib 86
-#define SYS_swapon 87
-#define SYS_reboot 88
-#define SYS_readdir 89
-#define SYS_mmap 90
-#define SYS_munmap 91
-#define SYS_truncate 92
-#define SYS_ftruncate 93
-#define SYS_fchmod 94
-#define SYS_fchown 95
-#define SYS_getpriority 96
-#define SYS_setpriority 97
-#define SYS_statfs 99
-#define SYS_fstatfs 100
-#define SYS_socketcall 102
-#define SYS_syslog 103
-#define SYS_setitimer 104
-#define SYS_getitimer 105
-#define SYS_stat 106
-#define SYS_lstat 107
-#define SYS_fstat 108
-#define SYS_olduname 109
-#define SYS_vhangup 111
-#define SYS_wait4 114
-#define SYS_swapoff 115
-#define SYS_sysinfo 116
-#define SYS_ipc 117
-#define SYS_fsync 118
-#define SYS_sigreturn 119
-#define SYS_clone 120
-#define SYS_setdomainname 121
-#define SYS_uname 122
-#define SYS_cacheflush 123
-#define SYS_adjtimex 124
-#define SYS_mprotect 125
-#define SYS_sigprocmask 126
-#define SYS_init_module 128
-#define SYS_delete_module 129
-#define SYS_quotactl 131
-#define SYS_getpgid 132
-#define SYS_fchdir 133
-#define SYS_bdflush 134
-#define SYS_sysfs 135
-#define SYS_personality 136
-#define SYS_setfsuid 138
-#define SYS_setfsgid 139
-#define SYS__llseek 140
-#define SYS_getdents 141
-#define SYS__newselect 142
-#define SYS_flock 143
-#define SYS_msync 144
-#define SYS_readv 145
-#define SYS_writev 146
-#define SYS_getsid 147
-#define SYS_fdatasync 148
-#define SYS__sysctl 149
-#define SYS_mlock 150
-#define SYS_munlock 151
-#define SYS_mlockall 152
-#define SYS_munlockall 153
-#define SYS_sched_setparam 154
-#define SYS_sched_getparam 155
-#define SYS_sched_setscheduler 156
-#define SYS_sched_getscheduler 157
-#define SYS_sched_yield 158
-#define SYS_sched_get_priority_max 159
-#define SYS_sched_get_priority_min 160
-#define SYS_sched_rr_get_interval 161
-#define SYS_nanosleep 162
-#define SYS_mremap 163
-#define SYS_setresuid 164
-#define SYS_getresuid 165
-#define SYS_poll 168
-#define SYS_nfsservctl 169
-#define SYS_setresgid 170
-#define SYS_getresgid 171
-#define SYS_prctl 172
-#define SYS_rt_sigreturn 173
-#define SYS_rt_sigaction 174
-#define SYS_rt_sigprocmask 175
-#define SYS_rt_sigpending 176
-#define SYS_rt_sigtimedwait 177
-#define SYS_rt_sigqueueinfo 178
-#define SYS_rt_sigsuspend 179
-#define SYS_pread64 180
-#define SYS_pwrite64 181
-#define SYS_chown 182
-#define SYS_getcwd 183
-#define SYS_capget 184
-#define SYS_capset 185
-#define SYS_sigaltstack 186
-#define SYS_sendfile 187
-#define SYS_vfork 190
-#define SYS_ugetrlimit 191
-#define SYS_mmap2 192
-#define SYS_truncate64 193
-#define SYS_ftruncate64 194
-#define SYS_stat64 195
-#define SYS_lstat64 196
-#define SYS_fstat64 197
-#define SYS_lchown32 198
-#define SYS_getuid32 199
-#define SYS_getgid32 200
-#define SYS_geteuid32 201
-#define SYS_getegid32 202
-#define SYS_setreuid32 203
-#define SYS_setregid32 204
-#define SYS_getgroups32 205
-#define SYS_setgroups32 206
-#define SYS_fchown32 207
-#define SYS_setresuid32 208
-#define SYS_getresuid32 209
-#define SYS_setresgid32 210
-#define SYS_getresgid32 211
-#define SYS_chown32 212
-#define SYS_setuid32 213
-#define SYS_setgid32 214
-#define SYS_setfsuid32 215
-#define SYS_setfsgid32 216
-#define SYS_pivot_root 217
-#define SYS_mincore 218
-#define SYS_madvise 219
-#define SYS_getdents64 220
-#define SYS_fcntl64 221
-#define SYS_gettid 224
-#define SYS_readahead 225
-#define SYS_setxattr 226
-#define SYS_lsetxattr 227
-#define SYS_fsetxattr 228
-#define SYS_getxattr 229
-#define SYS_lgetxattr 230
-#define SYS_fgetxattr 231
-#define SYS_listxattr 232
-#define SYS_llistxattr 233
-#define SYS_flistxattr 234
-#define SYS_removexattr 235
-#define SYS_lremovexattr 236
-#define SYS_fremovexattr 237
-#define SYS_tkill 238
-#define SYS_sendfile64 239
-#define SYS_futex 240
-#define SYS_sched_setaffinity 241
-#define SYS_sched_getaffinity 242
-#define SYS_io_setup 245
-#define SYS_io_destroy 246
-#define SYS_io_getevents 247
-#define SYS_io_submit 248
-#define SYS_io_cancel 249
-#define SYS_fadvise64 250
-#define SYS_exit_group 252
-#define SYS_lookup_dcookie 253
-#define SYS_epoll_create 254
-#define SYS_epoll_ctl 255
-#define SYS_epoll_wait 256
-#define SYS_remap_file_pages 257
-#define SYS_set_tid_address 258
-#define SYS_timer_create 259
-#define SYS_timer_settime 260
-#define SYS_timer_gettime 261
-#define SYS_timer_getoverrun 262
-#define SYS_timer_delete 263
-#define SYS_clock_settime 264
-#define SYS_clock_gettime 265
-#define SYS_clock_getres 266
-#define SYS_clock_nanosleep 267
-#define SYS_statfs64 268
-#define SYS_fstatfs64 269
-#define SYS_tgkill 270
-#define SYS_utimes 271
-#define SYS_fadvise64_64 272
-#define SYS_mbind 274
-#define SYS_get_mempolicy 275
-#define SYS_set_mempolicy 276
-#define SYS_mq_open 277
-#define SYS_mq_unlink 278
-#define SYS_mq_timedsend 279
-#define SYS_mq_timedreceive 280
-#define SYS_mq_notify 281
-#define SYS_mq_getsetattr 282
-#define SYS_kexec_load 283
-#define SYS_waitid 284
-#define SYS_add_key 285
-#define SYS_request_key 286
-#define SYS_keyctl 287
-#define SYS_ioprio_set 288
-#define SYS_ioprio_get 289
-#define SYS_inotify_init 290
-#define SYS_inotify_add_watch 291
-#define SYS_inotify_rm_watch 292
-#define SYS_migrate_pages 294
-#define SYS_openat 295
-#define SYS_mkdirat 296
-#define SYS_mknodat 297
-#define SYS_fchownat 298
-#define SYS_futimesat 299
-#define SYS_fstatat64 300
-#define SYS_unlinkat 301
-#define SYS_renameat 302
-#define SYS_linkat 303
-#define SYS_symlinkat 304
-#define SYS_readlinkat 305
-#define SYS_fchmodat 306
-#define SYS_faccessat 307
-#define SYS_pselect6 308
-#define SYS_ppoll 309
-#define SYS_unshare 310
-#define SYS_set_robust_list 311
-#define SYS_get_robust_list 312
-#define SYS_splice 313
-#define SYS_sync_file_range 314
-#define SYS_tee 315
-#define SYS_vmsplice 316
-#define SYS_move_pages 317
-#define SYS_getcpu 318
-#define SYS_epoll_pwait 319
-#define SYS_utimensat 320
-#define SYS_signalfd 321
-#define SYS_timerfd_create 322
-#define SYS_eventfd 323
-#define SYS_fallocate 324
-#define SYS_timerfd_settime 325
-#define SYS_timerfd_gettime 326
-#define SYS_signalfd4 327
-#define SYS_eventfd2 328
-#define SYS_epoll_create1 329
-#define SYS_dup3 330
-#define SYS_pipe2 331
-#define SYS_inotify_init1 332
-#define SYS_preadv 333
-#define SYS_pwritev 334
-#define SYS_rt_tgsigqueueinfo 335
-#define SYS_perf_event_open 336
-#define SYS_fanotify_init 337
-#define SYS_fanotify_mark 338
-#define SYS_prlimit64 339
-#define SYS_socket 340
-#define SYS_bind 341
-#define SYS_connect 342
-#define SYS_listen 343
-#define SYS_accept 344
-#define SYS_getsockname 345
-#define SYS_getpeername 346
-#define SYS_socketpair 347
-#define SYS_send 348
-#define SYS_sendto 349
-#define SYS_recv 350
-#define SYS_recvfrom 351
-#define SYS_shutdown 352
-#define SYS_setsockopt 353
-#define SYS_getsockopt 354
-#define SYS_sendmsg 355
-#define SYS_recvmsg 356
-#define SYS_recvmmsg 357
-#define SYS_accept4 358
-#define SYS_name_to_handle_at 359
-#define SYS_open_by_handle_at 360
-#define SYS_clock_adjtime 361
-#define SYS_syncfs 362
-#define SYS_sendmmsg 363
-#define SYS_setns 364
-#define SYS_process_vm_readv 365
-#define SYS_process_vm_writev 366
-#define SYS_kcmp 367
-#define SYS_finit_module 368
+++ /dev/null
-struct termios
-{
- tcflag_t c_iflag;
- tcflag_t c_oflag;
- tcflag_t c_cflag;
- tcflag_t c_lflag;
- cc_t c_line;
- cc_t c_cc[NCCS];
- speed_t __c_ispeed;
- speed_t __c_ospeed;
-};
-
-#define VINTR 0
-#define VQUIT 1
-#define VERASE 2
-#define VKILL 3
-#define VEOF 4
-#define VTIME 5
-#define VMIN 6
-#define VSWTC 7
-#define VSTART 8
-#define VSTOP 9
-#define VSUSP 10
-#define VEOL 11
-#define VREPRINT 12
-#define VDISCARD 13
-#define VWERASE 14
-#define VLNEXT 15
-#define VEOL2 16
-
-#define IGNBRK 0000001
-#define BRKINT 0000002
-#define IGNPAR 0000004
-#define PARMRK 0000010
-#define INPCK 0000020
-#define ISTRIP 0000040
-#define INLCR 0000100
-#define IGNCR 0000200
-#define ICRNL 0000400
-#define IUCLC 0001000
-#define IXON 0002000
-#define IXANY 0004000
-#define IXOFF 0010000
-#define IMAXBEL 0020000
-#define IUTF8 0040000
-
-#define OPOST 0000001
-#define OLCUC 0000002
-#define ONLCR 0000004
-#define OCRNL 0000010
-#define ONOCR 0000020
-#define ONLRET 0000040
-#define OFILL 0000100
-#define OFDEL 0000200
-#define NLDLY 0000400
-#define NL0 0000000
-#define NL1 0000400
-#define CRDLY 0003000
-#define CR0 0000000
-#define CR1 0001000
-#define CR2 0002000
-#define CR3 0003000
-#define TABDLY 0014000
-#define TAB0 0000000
-#define TAB1 0004000
-#define TAB2 0010000
-#define TAB3 0014000
-#define BSDLY 0020000
-#define BS0 0000000
-#define BS1 0020000
-#define FFDLY 0100000
-#define FF0 0000000
-#define FF1 0100000
-
-#define VTDLY 0040000
-#define VT0 0000000
-#define VT1 0040000
-
-#define B0 0000000
-#define B50 0000001
-#define B75 0000002
-#define B110 0000003
-#define B134 0000004
-#define B150 0000005
-#define B200 0000006
-#define B300 0000007
-#define B600 0000010
-#define B1200 0000011
-#define B1800 0000012
-#define B2400 0000013
-#define B4800 0000014
-#define B9600 0000015
-#define B19200 0000016
-#define B38400 0000017
-
-#define B57600 0010001
-#define B115200 0010002
-#define B230400 0010003
-#define B460800 0010004
-#define B500000 0010005
-#define B576000 0010006
-#define B921600 0010007
-#define B1000000 0010010
-#define B1152000 0010011
-#define B1500000 0010012
-#define B2000000 0010013
-#define B2500000 0010014
-#define B3000000 0010015
-#define B3500000 0010016
-#define B4000000 0010017
-
-#define CBAUD 0010017
-
-#define CSIZE 0000060
-#define CS5 0000000
-#define CS6 0000020
-#define CS7 0000040
-#define CS8 0000060
-#define CSTOPB 0000100
-#define CREAD 0000200
-#define PARENB 0000400
-#define PARODD 0001000
-#define HUPCL 0002000
-#define CLOCAL 0004000
-
-#define ISIG 0000001
-#define ICANON 0000002
-#define ECHO 0000010
-#define ECHOE 0000020
-#define ECHOK 0000040
-#define ECHONL 0000100
-#define NOFLSH 0000200
-#define TOSTOP 0000400
-#define IEXTEN 0100000
-
-#define ECHOCTL 0001000
-#define ECHOPRT 0002000
-#define ECHOKE 0004000
-#define FLUSHO 0010000
-#define PENDIN 0040000
-
-#define TCOOFF 0
-#define TCOON 1
-#define TCIOFF 2
-#define TCION 3
-
-#define TCIFLUSH 0
-#define TCOFLUSH 1
-#define TCIOFLUSH 2
-
-#define TCSANOW 0
-#define TCSADRAIN 1
-#define TCSAFLUSH 2
-
-#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
-#define CBAUDEX 0010000
-#define CRTSCTS 020000000000
-#define EXTPROC 0200000
-#define XTABS 0014000
-#endif
+++ /dev/null
-__asm__("\
-.global _start \n\
-_start: \n\
- mov r15, r4 \n\
- mov #-16, r0 \n\
- and r0, r15 \n\
- bsr __cstart \n\
- nop \n\
-");
+++ /dev/null
-static inline struct pthread *__pthread_self()
-{
- char *self;
- __asm__ __volatile__ ("stc gbr,%0" : "=r" (self) );
- return (struct pthread *) (self + 8 - sizeof(struct pthread));
-}
-
-#define TLS_ABOVE_TP
-#define TP_ADJ(p) ((char *)(p) + sizeof(struct pthread) - 8)
-
-#define CANCEL_REG_IP 17
+++ /dev/null
-#if __BYTE_ORDER == __LITTLE_ENDIAN
-#define ENDIAN_SUFFIX "l"
-#else
-#define ENDIAN_SUFFIX ""
-#endif
-
-#define LDSO_ARCH "sh" ENDIAN_SUFFIX
-
-#define IS_COPY(x) ((x) == R_SH_COPY)
-#define IS_PLT(x) ((x) == R_SH_JMP_SLOT)
-
-static inline void do_single_reloc(
- struct dso *self, unsigned char *base_addr,
- size_t *reloc_addr, int type, size_t addend,
- Sym *sym, size_t sym_size,
- struct symdef def, size_t sym_val)
-{
- switch(type) {
- case R_SH_GLOB_DAT:
- case R_SH_JMP_SLOT:
- *reloc_addr = sym_val;
- break;
- case R_SH_RELATIVE:
- *reloc_addr = (size_t)base_addr + addend;
- break;
- case R_SH_DIR32:
- *reloc_addr = sym_val + addend;
- break;
- case R_SH_REL32:
- *reloc_addr = sym_val + addend - (size_t)reloc_addr + (size_t)base_addr;
- break;
- case R_SH_COPY:
- memcpy(reloc_addr, (void *)sym_val, sym_size);
- break;
- case R_SH_TLS_DTPMOD32:
- *reloc_addr += def.dso ? def.dso->tls_id : self->tls_id;
- break;
- case R_SH_TLS_DTPOFF32:
- *reloc_addr += def.sym->st_value;
- break;
- case R_SH_TLS_TPOFF32:
- *reloc_addr += def.sym
- ? def.sym->st_value + def.dso->tls_offset + 8
- : self->tls_offset + 8;
- break;
- }
-}
+++ /dev/null
-/* used by gcc for switching the FPU between single and double precision */
-const unsigned long __fpscr_values[2] = { 0, 0x80000 };
+++ /dev/null
-#include "libc.h"
-
-#define LLSC_CLOBBERS "r0", "t", "memory"
-#define LLSC_START(mem) \
- "0: movli.l @" mem ", r0\n"
-#define LLSC_END(mem) \
- "1: movco.l r0, @" mem "\n" \
- " bf 0b\n" \
- " synco\n"
-
-/* gusa is a hack in the kernel which lets you create a sequence of instructions
- * which will be restarted if the process is preempted in the middle of the
- * sequence. It will do for implementing atomics on non-smp systems. ABI is:
- * r0 = address of first instruction after the atomic sequence
- * r1 = original stack pointer
- * r15 = -1 * length of atomic sequence in bytes
- */
-#define GUSA_CLOBBERS "r0", "r1", "memory"
-#define GUSA_START(mem,old,nop) \
- " .align 2\n" \
- " mova 1f, r0\n" \
- nop \
- " mov r15, r1\n" \
- " mov #(0f-1f), r15\n" \
- "0: mov.l @" mem ", " old "\n"
-/* the target of mova must be 4 byte aligned, so we may need a nop */
-#define GUSA_START_ODD(mem,old) GUSA_START(mem,old,"")
-#define GUSA_START_EVEN(mem,old) GUSA_START(mem,old,"\tnop\n")
-#define GUSA_END(mem,new) \
- " mov.l " new ", @" mem "\n" \
- "1: mov r1, r15\n"
-
-#define CPU_HAS_LLSC 0x0040
-
-int __sh_cas(volatile int *p, int t, int s)
-{
- int old;
- if (__hwcap & CPU_HAS_LLSC) {
- __asm__ __volatile__(
- LLSC_START("%1")
- " mov r0, %0\n"
- " cmp/eq %0, %2\n"
- " bf 1f\n"
- " mov %3, r0\n"
- LLSC_END("%1")
- : "=&r"(old) : "r"(p), "r"(t), "r"(s) : LLSC_CLOBBERS);
- } else {
- __asm__ __volatile__(
- GUSA_START_EVEN("%1", "%0")
- " cmp/eq %0, %2\n"
- " bf 1f\n"
- GUSA_END("%1", "%3")
- : "=&r"(old) : "r"(p), "r"(t), "r"(s) : GUSA_CLOBBERS, "t");
- }
- return old;
-}
-
-int __sh_swap(volatile int *x, int v)
-{
- int old;
- if (__hwcap & CPU_HAS_LLSC) {
- __asm__ __volatile__(
- LLSC_START("%1")
- " mov r0, %0\n"
- " mov %2, r0\n"
- LLSC_END("%1")
- : "=&r"(old) : "r"(x), "r"(v) : LLSC_CLOBBERS);
- } else {
- __asm__ __volatile__(
- GUSA_START_EVEN("%1", "%0")
- GUSA_END("%1", "%2")
- : "=&r"(old) : "r"(x), "r"(v) : GUSA_CLOBBERS);
- }
- return old;
-}
-
-int __sh_fetch_add(volatile int *x, int v)
-{
- int old, dummy;
- if (__hwcap & CPU_HAS_LLSC) {
- __asm__ __volatile__(
- LLSC_START("%1")
- " mov r0, %0\n"
- " add %2, r0\n"
- LLSC_END("%1")
- : "=&r"(old) : "r"(x), "r"(v) : LLSC_CLOBBERS);
- } else {
- __asm__ __volatile__(
- GUSA_START_EVEN("%2", "%0")
- " mov %0, %1\n"
- " add %3, %1\n"
- GUSA_END("%2", "%1")
- : "=&r"(old), "=&r"(dummy) : "r"(x), "r"(v) : GUSA_CLOBBERS);
- }
- return old;
-}
-
-void __sh_store(volatile int *p, int x)
-{
- if (__hwcap & CPU_HAS_LLSC) {
- __asm__ __volatile__(
- " mov.l %1, @%0\n"
- " synco\n"
- : : "r"(p), "r"(x) : "memory");
- } else {
- __asm__ __volatile__(
- " mov.l %1, @%0\n"
- : : "r"(p), "r"(x) : "memory");
- }
-}
-
-void __sh_and(volatile int *x, int v)
-{
- int dummy;
- if (__hwcap & CPU_HAS_LLSC) {
- __asm__ __volatile__(
- LLSC_START("%0")
- " and %1, r0\n"
- LLSC_END("%0")
- : : "r"(x), "r"(v) : LLSC_CLOBBERS);
- } else {
- __asm__ __volatile__(
- GUSA_START_ODD("%1", "%0")
- " and %2, %0\n"
- GUSA_END("%1", "%0")
- : "=&r"(dummy) : "r"(x), "r"(v) : GUSA_CLOBBERS);
- }
-}
-
-void __sh_or(volatile int *x, int v)
-{
- int dummy;
- if (__hwcap & CPU_HAS_LLSC) {
- __asm__ __volatile__(
- LLSC_START("%0")
- " or %1, r0\n"
- LLSC_END("%0")
- : : "r"(x), "r"(v) : LLSC_CLOBBERS);
- } else {
- __asm__ __volatile__(
- GUSA_START_ODD("%1", "%0")
- " or %2, %0\n"
- GUSA_END("%1", "%0")
- : "=&r"(dummy) : "r"(x), "r"(v) : GUSA_CLOBBERS);
- }
-}
+++ /dev/null
-#define __SYSCALL_LL_E(x) \
-((union { long long ll; long l[2]; }){ .ll = x }).l[0], \
-((union { long long ll; long l[2]; }){ .ll = x }).l[1]
-#define __SYSCALL_LL_O(x) __SYSCALL_LL_E((x))
-
-/* The extra OR instructions are to work around a hardware bug:
- * http://documentation.renesas.com/doc/products/mpumcu/tu/tnsh7456ae.pdf
- */
-#define __asm_syscall(trapno, ...) do { \
- __asm__ __volatile__ ( \
- "trapa #" #trapno "\n" \
- "or r0, r0\n" \
- "or r0, r0\n" \
- "or r0, r0\n" \
- "or r0, r0\n" \
- "or r0, r0\n" \
- : "=r"(r0) : __VA_ARGS__ : "memory"); \
- return r0; \
- } while (0)
-
-static inline long __syscall0(long n)
-{
- register long r3 __asm__("r3") = n;
- register long r0 __asm__("r0");
- __asm_syscall(16, "r"(r3));
-}
-
-static inline long __syscall1(long n, long a)
-{
- register long r3 __asm__("r3") = n;
- register long r4 __asm__("r4") = a;
- register long r0 __asm__("r0");
- __asm_syscall(17, "r"(r3), "r"(r4));
-}
-
-static inline long __syscall2(long n, long a, long b)
-{
- register long r3 __asm__("r3") = n;
- register long r4 __asm__("r4") = a;
- register long r5 __asm__("r5") = b;
- register long r0 __asm__("r0");
- __asm_syscall(18, "r"(r3), "r"(r4), "r"(r5));
-}
-
-static inline long __syscall3(long n, long a, long b, long c)
-{
- register long r3 __asm__("r3") = n;
- register long r4 __asm__("r4") = a;
- register long r5 __asm__("r5") = b;
- register long r6 __asm__("r6") = c;
- register long r0 __asm__("r0");
- __asm_syscall(19, "r"(r3), "r"(r4), "r"(r5), "r"(r6));
-}
-
-static inline long __syscall4(long n, long a, long b, long c, long d)
-{
- register long r3 __asm__("r3") = n;
- register long r4 __asm__("r4") = a;
- register long r5 __asm__("r5") = b;
- register long r6 __asm__("r6") = c;
- register long r7 __asm__("r7") = d;
- register long r0 __asm__("r0");
- __asm_syscall(20, "r"(r3), "r"(r4), "r"(r5), "r"(r6), "r"(r7));
-}
-
-static inline long __syscall5(long n, long a, long b, long c, long d, long e)
-{
- register long r3 __asm__("r3") = n;
- register long r4 __asm__("r4") = a;
- register long r5 __asm__("r5") = b;
- register long r6 __asm__("r6") = c;
- register long r7 __asm__("r7") = d;
- register long r0 __asm__("r0") = e;
- __asm_syscall(21, "r"(r3), "r"(r4), "r"(r5), "r"(r6), "r"(r7), "0"(r0));
-}
-
-static inline long __syscall6(long n, long a, long b, long c, long d, long e, long f)
-{
- register long r3 __asm__("r3") = n;
- register long r4 __asm__("r4") = a;
- register long r5 __asm__("r5") = b;
- register long r6 __asm__("r6") = c;
- register long r7 __asm__("r7") = d;
- register long r0 __asm__("r0") = e;
- register long r1 __asm__("r1") = f;
- __asm_syscall(22, "r"(r3), "r"(r4), "r"(r5), "r"(r6), "r"(r7), "0"(r0), "r"(r1));
-}
mips-*|mipsel-*) ARCH=mips ;;
microblaze-*) ARCH=microblaze ;;
powerpc-*) ARCH=powerpc ;;
-sh-*) ARCH=superh ;;
+sh-*) ARCH=sh ;;
unknown) fail "$0: unable to detect target arch; try $0 --target=..." ;;
*) fail "$0: unknown or unsupported target \"$target\"" ;;
esac
test "$ARCH" = "microblaze" && trycppif __MICROBLAZEEL__ "$t" \
&& SUBARCH=${SUBARCH}el
-test "$ARCH" = "superh" && trycppif __LITTLE_ENDIAN__ "$t" \
+test "$ARCH" = "sh" && trycppif __LITTLE_ENDIAN__ "$t" \
&& SUBARCH=${SUBARCH}el
test "$SUBARCH" \
--- /dev/null
+.global fegetround
+.type fegetround, @function
+fegetround:
+ sts fpscr, r0
+ rts
+ and #3, r0
+
+.global __fesetround
+.type __fesetround, @function
+__fesetround:
+ sts fpscr, r0
+ or r4, r0
+ lds r0, fpscr
+ rts
+ mov #0, r0
+
+.global fetestexcept
+.type fetestexcept, @function
+fetestexcept:
+ sts fpscr, r0
+ and r4, r0
+ rts
+ and #0x7c, r0
+
+.global feclearexcept
+.type feclearexcept, @function
+feclearexcept:
+ mov r4, r0
+ and #0x7c, r0
+ not r0, r4
+ sts fpscr, r0
+ and r4, r0
+ lds r0, fpscr
+ rts
+ mov #0, r0
+
+.global feraiseexcept
+.type feraiseexcept, @function
+feraiseexcept:
+ mov r4, r0
+ and #0x7c, r0
+ sts fpscr, r4
+ or r4, r0
+ lds r0, fpscr
+ rts
+ mov #0, r0
+
+.global fegetenv
+.type fegetenv, @function
+fegetenv:
+ sts fpscr, r0
+ mov.l r0, @r4
+ rts
+ mov #0, r0
+
+.global fesetenv
+.type fesetenv, @function
+fesetenv:
+ mov r4, r0
+ cmp/eq #-1, r0
+ bf 1f
+
+ ! the default environment is complicated by the fact that we need to
+ ! preserve the current precision bit, which we do not know a priori
+ sts fpscr, r0
+ mov #8, r1
+ swap.w r1, r1
+ bra 2f
+ and r1, r0
+
+1: mov.l @r4, r0 ! non-default environment
+2: lds r0, fpscr
+ rts
+ mov #0, r0
+++ /dev/null
-.global fegetround
-.type fegetround, @function
-fegetround:
- sts fpscr, r0
- rts
- and #3, r0
-
-.global __fesetround
-.type __fesetround, @function
-__fesetround:
- sts fpscr, r0
- or r4, r0
- lds r0, fpscr
- rts
- mov #0, r0
-
-.global fetestexcept
-.type fetestexcept, @function
-fetestexcept:
- sts fpscr, r0
- and r4, r0
- rts
- and #0x7c, r0
-
-.global feclearexcept
-.type feclearexcept, @function
-feclearexcept:
- mov r4, r0
- and #0x7c, r0
- not r0, r4
- sts fpscr, r0
- and r4, r0
- lds r0, fpscr
- rts
- mov #0, r0
-
-.global feraiseexcept
-.type feraiseexcept, @function
-feraiseexcept:
- mov r4, r0
- and #0x7c, r0
- sts fpscr, r4
- or r4, r0
- lds r0, fpscr
- rts
- mov #0, r0
-
-.global fegetenv
-.type fegetenv, @function
-fegetenv:
- sts fpscr, r0
- mov.l r0, @r4
- rts
- mov #0, r0
-
-.global fesetenv
-.type fesetenv, @function
-fesetenv:
- mov r4, r0
- cmp/eq #-1, r0
- bf 1f
-
- ! the default environment is complicated by the fact that we need to
- ! preserve the current precision bit, which we do not know a priori
- sts fpscr, r0
- mov #8, r1
- swap.w r1, r1
- bra 2f
- and r1, r0
-
-1: mov.l @r4, r0 ! non-default environment
-2: lds r0, fpscr
- rts
- mov #0, r0
--- /dev/null
+.global __syscall
+.type __syscall, @function
+__syscall:
+ ! The kernel syscall entry point documents that the trap number indicates
+ ! the number of arguments being passed, but it then ignores that information.
+ ! Since we do not actually know how many arguments are being passed, we will
+ ! say there are six, since that is the maximum we support here.
+ mov r4, r3
+ mov r5, r4
+ mov r6, r5
+ mov r7, r6
+ mov.l @r15, r7
+ mov.l @(4,r15), r0
+ mov.l @(8,r15), r1
+ trapa #22
+ or r0, r0
+ or r0, r0
+ or r0, r0
+ or r0, r0
+ or r0, r0
+ rts
+ nop
+++ /dev/null
-.global __syscall
-.type __syscall, @function
-__syscall:
- ! The kernel syscall entry point documents that the trap number indicates
- ! the number of arguments being passed, but it then ignores that information.
- ! Since we do not actually know how many arguments are being passed, we will
- ! say there are six, since that is the maximum we support here.
- mov r4, r3
- mov r5, r4
- mov r6, r5
- mov r7, r6
- mov.l @r15, r7
- mov.l @(4,r15), r0
- mov.l @(8,r15), r1
- trapa #22
- or r0, r0
- or r0, r0
- or r0, r0
- or r0, r0
- or r0, r0
- rts
- nop
--- /dev/null
+.text
+.global dlsym
+.type dlsym, @function
+dlsym:
+ mov.l L1, r0
+ braf r0
+1: mov.l @r15, r6
+
+.align 2
+L1: .long __dlsym@PLT-(1b-.)
--- /dev/null
+.text
+.global _start
+.type _start, @function
+_start:
+ mov.l @r15, r4
+ mov r15, r5
+ mov.l L1, r0
+ bsrf r0
+ add #4, r5
+
+2: mov r0, r2
+ mov.l @r15+, r1
+1: mov.l @r15+, r0
+ cmp/eq #-1, r0
+ bt/s 1b
+ add #-1, r1
+
+ add #1, r1
+ mov.l r0, @-r15
+ mov.l r1, @-r15
+ mov #0, r4
+ jmp @r2
+ nop
+
+.align 2
+L1: .long __dynlink@PLT-(2b-.)
+++ /dev/null
-.text
-.global dlsym
-.type dlsym, @function
-dlsym:
- mov.l L1, r0
- braf r0
-1: mov.l @r15, r6
-
-.align 2
-L1: .long __dlsym@PLT-(1b-.)
+++ /dev/null
-.text
-.global _start
-.type _start, @function
-_start:
- mov.l @r15, r4
- mov r15, r5
- mov.l L1, r0
- bsrf r0
- add #4, r5
-
-2: mov r0, r2
- mov.l @r15+, r1
-1: mov.l @r15+, r0
- cmp/eq #-1, r0
- bt/s 1b
- add #-1, r1
-
- add #1, r1
- mov.l r0, @-r15
- mov.l r1, @-r15
- mov #0, r4
- jmp @r2
- nop
-
-.align 2
-L1: .long __dynlink@PLT-(2b-.)
--- /dev/null
+.global _longjmp
+.global longjmp
+.type _longjmp, @function
+.type longjmp, @function
+_longjmp:
+longjmp:
+ mov.l @r4+, r8
+ mov.l @r4+, r9
+ mov.l @r4+, r10
+ mov.l @r4+, r11
+ mov.l @r4+, r12
+ mov.l @r4+, r13
+ mov.l @r4+, r14
+ mov.l @r4+, r15
+ lds.l @r4+, pr
+ fmov.s @r4+, fr12
+ fmov.s @r4+, fr13
+ fmov.s @r4+, fr14
+ fmov.s @r4+, fr15
+
+ tst r5, r5
+ movt r0
+ add r5, r0
+
+ rts
+ nop
--- /dev/null
+.global __setjmp
+.global _setjmp
+.global setjmp
+.type __setjmp, @function
+.type _setjmp, @function
+.type setjmp, @function
+__setjmp:
+_setjmp:
+setjmp:
+ add #52, r4
+ fmov.s fr15, @-r4
+ fmov.s fr14, @-r4
+ fmov.s fr13, @-r4
+ fmov.s fr12, @-r4
+ sts.l pr, @-r4
+ mov.l r15 @-r4
+ mov.l r14, @-r4
+ mov.l r13, @-r4
+ mov.l r12, @-r4
+ mov.l r11, @-r4
+ mov.l r10, @-r4
+ mov.l r9, @-r4
+ mov.l r8, @-r4
+ rts
+ mov #0, r0
+++ /dev/null
-.global _longjmp
-.global longjmp
-.type _longjmp, @function
-.type longjmp, @function
-_longjmp:
-longjmp:
- mov.l @r4+, r8
- mov.l @r4+, r9
- mov.l @r4+, r10
- mov.l @r4+, r11
- mov.l @r4+, r12
- mov.l @r4+, r13
- mov.l @r4+, r14
- mov.l @r4+, r15
- lds.l @r4+, pr
- fmov.s @r4+, fr12
- fmov.s @r4+, fr13
- fmov.s @r4+, fr14
- fmov.s @r4+, fr15
-
- tst r5, r5
- movt r0
- add r5, r0
-
- rts
- nop
+++ /dev/null
-.global __setjmp
-.global _setjmp
-.global setjmp
-.type __setjmp, @function
-.type _setjmp, @function
-.type setjmp, @function
-__setjmp:
-_setjmp:
-setjmp:
- add #52, r4
- fmov.s fr15, @-r4
- fmov.s fr14, @-r4
- fmov.s fr13, @-r4
- fmov.s fr12, @-r4
- sts.l pr, @-r4
- mov.l r15 @-r4
- mov.l r14, @-r4
- mov.l r13, @-r4
- mov.l r12, @-r4
- mov.l r11, @-r4
- mov.l r10, @-r4
- mov.l r9, @-r4
- mov.l r8, @-r4
- rts
- mov #0, r0
--- /dev/null
+.global __restore
+.type __restore, @function
+__restore:
+ mov #119, r3 !__NR_sigreturn
+ trapa #16
+
+ or r0, r0
+ or r0, r0
+ or r0, r0
+ or r0, r0
+ or r0, r0
+
+.global __restore_rt
+.type __restore_rt, @function
+__restore_rt:
+ mov #100, r3 !__NR_rt_sigreturn
+ add #73, r3
+ trapa #16
+
+ or r0, r0
+ or r0, r0
+ or r0, r0
+ or r0, r0
+ or r0, r0
--- /dev/null
+.global sigsetjmp
+.type sigsetjmp, @function
+sigsetjmp:
+ mov.l r5, @(36,r4)
+ tst r5, r5
+ bf 2f
+
+ sts.l pr, @-r15
+ mov.l r4, @-r15
+ mov r4, r6
+ add #40, r6
+ mov #0, r5
+ mov #2, r4
+ mov.l L1, r0
+ bsrf r0
+ nop
+1: mov.l @r15+, r4
+ lds.l @r15+, pr
+
+2: mov.l L2, r0
+ braf r0
+ nop
+3:
+
+.align 2
+L1: .long pthread_sigmask@PLT-(1b-.)
+L2: .long setjmp@PLT-(3b-.)
+++ /dev/null
-.global __restore
-.type __restore, @function
-__restore:
- mov #119, r3 !__NR_sigreturn
- trapa #16
-
- or r0, r0
- or r0, r0
- or r0, r0
- or r0, r0
- or r0, r0
-
-.global __restore_rt
-.type __restore_rt, @function
-__restore_rt:
- mov #100, r3 !__NR_rt_sigreturn
- add #73, r3
- trapa #16
-
- or r0, r0
- or r0, r0
- or r0, r0
- or r0, r0
- or r0, r0
+++ /dev/null
-.global sigsetjmp
-.type sigsetjmp, @function
-sigsetjmp:
- mov.l r5, @(36,r4)
- tst r5, r5
- bf 2f
-
- sts.l pr, @-r15
- mov.l r4, @-r15
- mov r4, r6
- add #40, r6
- mov #0, r5
- mov #2, r4
- mov.l L1, r0
- bsrf r0
- nop
-1: mov.l @r15+, r4
- lds.l @r15+, pr
-
-2: mov.l L2, r0
- braf r0
- nop
-3:
-
-.align 2
-L1: .long pthread_sigmask@PLT-(1b-.)
-L2: .long setjmp@PLT-(3b-.)
--- /dev/null
+.global __set_thread_area
+.type __set_thread_area, @function
+__set_thread_area:
+ rts
+ ldc r4, gbr
--- /dev/null
+.text
+.global __unmapself
+.type __unmapself, @function
+__unmapself:
+ mov #91, r3 ! SYS_munmap
+ trapa #18
+
+ or r0, r0
+ or r0, r0
+ or r0, r0
+ or r0, r0
+ or r0, r0
+
+ mov #1, r3 ! SYS_exit
+ mov #0, r4
+ trapa #17
+
+ or r0, r0
+ or r0, r0
+ or r0, r0
+ or r0, r0
+ or r0, r0
--- /dev/null
+.text
+.global __clone
+.type __clone, @function
+__clone:
+! incoming: fn stack flags arg ptid tls ctid
+! r4 r5 r6 r7 @r15 @(4,r15) @(8,r15)
+
+ mov #-16, r0
+ and r0, r5
+
+ mov r4, r1 ! r1 = fn
+ mov r7, r2 ! r2 = arg
+
+ mov #120, r3 ! r3 = __NR_clone
+ mov r6, r4 ! r4 = flags
+ !mov r5, r5 ! r5 = stack
+ mov.l @r15, r6 ! r6 = ptid
+ mov.l @(8,r15), r7 ! r7 = ctid
+ mov.l @(4,r15), r0 ! r0 = tls
+ trapa #21
+
+ or r0, r0
+ or r0, r0
+ or r0, r0
+ or r0, r0
+ or r0, r0
+
+ cmp/eq #0, r0
+ bt 1f
+
+ ! we are the parent, return
+ rts
+ nop
+
+1: ! we are the child, call fn(arg)
+ jsr @r1
+ mov r2, r4
+
+ mov #1, r3 ! __NR_exit
+ mov r0, r4
+ trapa #17
+
+ or r0, r0
+ or r0, r0
+ or r0, r0
+ or r0, r0
+ or r0, r0
--- /dev/null
+.text
+.global __syscall_cp_asm
+.type __syscall_cp_asm, @function
+__syscall_cp_asm:
+
+.global __cp_begin
+__cp_begin:
+ mov.l @r4, r4
+ tst r4, r4
+ bt 2f
+
+ mov.l L1, r0
+ braf r0
+ nop
+1:
+
+.align 2
+L1: .long __cancel@PLT-(1b-.)
+
+2: mov r5, r3
+ mov r6, r4
+ mov r7, r5
+ mov.l @r15, r6
+ mov.l @(4,r15), r7
+ mov.l @(8,r15), r0
+ mov.l @(12,r15), r1
+ trapa #22
+
+.global __cp_end
+__cp_end:
+ ! work around hardware bug
+ or r0, r0
+ or r0, r0
+ or r0, r0
+ or r0, r0
+ or r0, r0
+
+ rts
+ nop
+++ /dev/null
-.global __set_thread_area
-.type __set_thread_area, @function
-__set_thread_area:
- rts
- ldc r4, gbr
+++ /dev/null
-.text
-.global __unmapself
-.type __unmapself, @function
-__unmapself:
- mov #91, r3 ! SYS_munmap
- trapa #18
-
- or r0, r0
- or r0, r0
- or r0, r0
- or r0, r0
- or r0, r0
-
- mov #1, r3 ! SYS_exit
- mov #0, r4
- trapa #17
-
- or r0, r0
- or r0, r0
- or r0, r0
- or r0, r0
- or r0, r0
+++ /dev/null
-.text
-.global __clone
-.type __clone, @function
-__clone:
-! incoming: fn stack flags arg ptid tls ctid
-! r4 r5 r6 r7 @r15 @(4,r15) @(8,r15)
-
- mov #-16, r0
- and r0, r5
-
- mov r4, r1 ! r1 = fn
- mov r7, r2 ! r2 = arg
-
- mov #120, r3 ! r3 = __NR_clone
- mov r6, r4 ! r4 = flags
- !mov r5, r5 ! r5 = stack
- mov.l @r15, r6 ! r6 = ptid
- mov.l @(8,r15), r7 ! r7 = ctid
- mov.l @(4,r15), r0 ! r0 = tls
- trapa #21
-
- or r0, r0
- or r0, r0
- or r0, r0
- or r0, r0
- or r0, r0
-
- cmp/eq #0, r0
- bt 1f
-
- ! we are the parent, return
- rts
- nop
-
-1: ! we are the child, call fn(arg)
- jsr @r1
- mov r2, r4
-
- mov #1, r3 ! __NR_exit
- mov r0, r4
- trapa #17
-
- or r0, r0
- or r0, r0
- or r0, r0
- or r0, r0
- or r0, r0
+++ /dev/null
-.text
-.global __syscall_cp_asm
-.type __syscall_cp_asm, @function
-__syscall_cp_asm:
-
-.global __cp_begin
-__cp_begin:
- mov.l @r4, r4
- tst r4, r4
- bt 2f
-
- mov.l L1, r0
- braf r0
- nop
-1:
-
-.align 2
-L1: .long __cancel@PLT-(1b-.)
-
-2: mov r5, r3
- mov r6, r4
- mov r7, r5
- mov.l @r15, r6
- mov.l @(4,r15), r7
- mov.l @(8,r15), r0
- mov.l @(12,r15), r1
- trapa #22
-
-.global __cp_end
-__cp_end:
- ! work around hardware bug
- or r0, r0
- or r0, r0
- or r0, r0
- or r0, r0
- or r0, r0
-
- rts
- nop
--- /dev/null
+.global pipe
+.type pipe, @function
+pipe:
+ mov #42, r3
+ trapa #17
+
+ ! work around hardware bug
+ or r0, r0
+ or r0, r0
+ or r0, r0
+ or r0, r0
+ or r0, r0
+
+ cmp/pz r0
+ bt 1f
+
+ mov.l L1, r1
+ braf r1
+ mov r0, r4
+
+1: mov.l r0, @(0,r4)
+ mov.l r1, @(4,r4)
+ rts
+ mov #0, r0
+
+.align 2
+L1: .long __syscall_ret@PLT-(1b-.)
+++ /dev/null
-.global pipe
-.type pipe, @function
-pipe:
- mov #42, r3
- trapa #17
-
- ! work around hardware bug
- or r0, r0
- or r0, r0
- or r0, r0
- or r0, r0
- or r0, r0
-
- cmp/pz r0
- bt 1f
-
- mov.l L1, r1
- braf r1
- mov r0, r4
-
-1: mov.l r0, @(0,r4)
- mov.l r1, @(4,r4)
- rts
- mov #0, r0
-
-.align 2
-L1: .long __syscall_ret@PLT-(1b-.)