mirror of https://git.musl-libc.org/git/musl
PPC port cleaned up, static linking works well now.
This commit is contained in:
parent
7669d1e334
commit
1c8eb8bad7
|
@ -55,7 +55,7 @@
|
|||
#define ENOANO 55
|
||||
#define EBADRQC 56
|
||||
#define EBADSLT 57
|
||||
#define EDEADLOCK EDEADLK
|
||||
#define EDEADLOCK 58
|
||||
#define EBFONT 59
|
||||
#define ENOSTR 60
|
||||
#define ENODATA 61
|
|
@ -12,8 +12,8 @@
|
|||
#define O_CLOEXEC 02000000
|
||||
|
||||
#define O_ASYNC 020000
|
||||
#define O_DIRECT 0200000
|
||||
#define O_LARGEFILE 0400000
|
||||
#define O_DIRECT 0400000
|
||||
#define O_LARGEFILE 0200000
|
||||
#define O_NOATIME 01000000
|
||||
#define O_NDELAY O_NONBLOCK
|
||||
|
||||
|
@ -31,3 +31,7 @@
|
|||
#define F_GETLK 12
|
||||
#define F_SETLK 13
|
||||
#define F_SETLKW 14
|
||||
|
||||
#define F_SETOWN_EX 15
|
||||
#define F_GETOWN_EX 16
|
||||
|
|
@ -1,12 +1,31 @@
|
|||
#define _IOC(a,b,c,d) ( ((a)<<29) | ((b)<<8) | (c) | ((d)<<16) )
|
||||
//#define _IOC(a,b,c,d) ( ((a)<<29) | ((b)<<8) | (c) | ((d)<<16) )
|
||||
//
|
||||
#define _IOC_SIZEBITS 13
|
||||
#define _IOC_DIRBITS 3
|
||||
|
||||
#define _IOC_NRBITS 8
|
||||
#define _IOC_TYPEBITS 8
|
||||
|
||||
#define _IOC_NRSHIFT 0
|
||||
#define _IOC_TYPESHIFT (_IOC_NRSHIFT+_IOC_NRBITS)
|
||||
#define _IOC_SIZESHIFT (_IOC_TYPESHIFT+_IOC_TYPEBITS)
|
||||
#define _IOC_DIRSHIFT (_IOC_SIZESHIFT+_IOC_SIZEBITS)
|
||||
|
||||
#define _IOC(dir,type,nr,size) \
|
||||
(((dir) << _IOC_DIRSHIFT) | \
|
||||
((type) << _IOC_TYPESHIFT) | \
|
||||
((nr) << _IOC_NRSHIFT) | \
|
||||
((size) << _IOC_SIZESHIFT))
|
||||
|
||||
|
||||
#define _IOC_NONE 1U
|
||||
#define _IOC_WRITE 2U
|
||||
#define _IOC_READ 4U
|
||||
#define _IOC_WRITE 4U
|
||||
#define _IOC_READ 2U
|
||||
|
||||
#define _IO(a,b) _IOC(_IOC_NONE,(a),(b),0)
|
||||
#define _IOW(a,b,c) _IOC(1,(a),(b),sizeof(c))
|
||||
#define _IOR(a,b,c) _IOC(2,(a),(b),sizeof(c))
|
||||
#define _IOWR(a,b,c) _IOC(4,(a),(b),sizeof(c))
|
||||
#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 TCGETS 0x5401
|
||||
#define TCSETS 0x5402
|
|
@ -10,3 +10,6 @@ struct ipc_perm
|
|||
long __pad1;
|
||||
long __pad2;
|
||||
};
|
||||
|
||||
#define IPC_64 0x100
|
||||
|
|
@ -0,0 +1,103 @@
|
|||
#if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \
|
||||
|| defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
|
||||
|
||||
typedef unsigned long gregset_t[48];
|
||||
|
||||
typedef struct {
|
||||
double fpregs[32];
|
||||
double fpscr;
|
||||
unsigned _pad[2];
|
||||
} fpregset_t;
|
||||
|
||||
typedef struct {
|
||||
unsigned vrregs[32][4];
|
||||
unsigned vrsave;
|
||||
unsigned _pad[2];
|
||||
unsigned vscr;
|
||||
} vrregset_t;
|
||||
|
||||
typedef struct {
|
||||
gregset_t gregs;
|
||||
fpregset_t fpregs;
|
||||
vrregset_t vrregs __attribute__((__aligned__(16)));
|
||||
} mcontext_t;
|
||||
|
||||
typedef struct __ucontext {
|
||||
unsigned long uc_flags;
|
||||
struct __ucontext *uc_link;
|
||||
stack_t uc_stack;
|
||||
int uc_pad[7];
|
||||
struct mcontext_t *uc_regs;
|
||||
|
||||
sigset_t uc_sigmask;
|
||||
|
||||
int uc_maskext[30];
|
||||
int uc_pad2[3];
|
||||
|
||||
mcontext_t uc_mcontext;
|
||||
char uc_reg_space[sizeof(mcontext_t) + 12];
|
||||
} ucontext_t;
|
||||
|
||||
#define SA_NOCLDSTOP 1U
|
||||
#define SA_NOCLDWAIT 2U
|
||||
#define SA_SIGINFO 4U
|
||||
#define SA_ONSTACK 0x08000000U
|
||||
#define SA_RESTART 0x10000000U
|
||||
#define SA_NODEFER 0x40000000U
|
||||
#define SA_RESETHAND 0x80000000U
|
||||
#define SA_RESTORER 0x04000000U
|
||||
|
||||
#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
|
||||
|
||||
struct sigcontext
|
||||
{
|
||||
unsigned long _unused[4];
|
||||
int signal;
|
||||
unsigned long handler;
|
||||
unsigned long oldmask;
|
||||
void *regs; /* originally struct pt_regs _user *regs,
|
||||
pt_regs is defined in arch/powerpc/include/asm/ptrace.h */
|
||||
gregset_t gp_regs;
|
||||
fpregset_t fp_regs;
|
||||
vrregset_t *v_regs;
|
||||
long vmx_reserve[33+33+32+1]; /* 33=34 for ppc64 */
|
||||
};
|
||||
#define NSIG 64
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
#define SIGHUP 1
|
||||
#define SIGINT 2
|
||||
#define SIGQUIT 3
|
||||
#define SIGILL 4
|
||||
#define SIGTRAP 5
|
||||
#define SIGABRT 6
|
||||
#define SIGIOT 6
|
||||
#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
|
|
@ -0,0 +1,34 @@
|
|||
struct msghdr
|
||||
{
|
||||
void *msg_name;
|
||||
int msg_namelen;
|
||||
struct iovec *msg_iov;
|
||||
unsigned long msg_iovlen;
|
||||
void *msg_control;
|
||||
unsigned long msg_controllen;
|
||||
unsigned msg_flags;
|
||||
};
|
||||
|
||||
#define SO_DEBUG 1
|
||||
#define SO_REUSEADDR 2
|
||||
#define SO_TYPE 3
|
||||
#define SO_ERROR 4
|
||||
#define SO_DONTROUTE 5
|
||||
#define SO_BROADCAST 6
|
||||
#define SO_SNDBUF 7
|
||||
#define SO_RCVBUF 8
|
||||
#define SO_SNDBUFFORCE 32
|
||||
#define SO_RCVBUFFORCE 33
|
||||
#define SO_KEEPALIVE 9
|
||||
#define SO_OOBINLINE 10
|
||||
#define SO_NO_CHECK 11
|
||||
#define SO_PRIORITY 12
|
||||
#define SO_LINGER 13
|
||||
#define SO_BSDCOMPAT 14
|
||||
#define SO_RCVLOWAT 16
|
||||
#define SO_SNDLOWAT 17
|
||||
#define SO_RCVTIMEO 18
|
||||
#define SO_SNDTIMEO 19
|
||||
#define SO_PASSCRED 20
|
||||
#define SO_PEERCRED 21
|
||||
|
|
@ -0,0 +1,741 @@
|
|||
#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_break 17
|
||||
#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_stty 31
|
||||
#define __NR_gtty 32
|
||||
#define __NR_access 33
|
||||
#define __NR_nice 34
|
||||
#define __NR_ftime 35
|
||||
#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_prof 44
|
||||
#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_lock 53
|
||||
#define __NR_ioctl 54
|
||||
#define __NR_fcntl 55
|
||||
#define __NR_mpx 56
|
||||
#define __NR_setpgid 57
|
||||
#define __NR_ulimit 58
|
||||
#define __NR_oldolduname 59
|
||||
#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_select 82
|
||||
#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_profil 98
|
||||
#define __NR_statfs 99
|
||||
#define __NR_fstatfs 100
|
||||
#define __NR_ioperm 101
|
||||
#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_iopl 110
|
||||
#define __NR_vhangup 111
|
||||
#define __NR_idle 112
|
||||
#define __NR_vm86 113
|
||||
#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_modify_ldt 123
|
||||
#define __NR_adjtimex 124
|
||||
#define __NR_mprotect 125
|
||||
#define __NR_sigprocmask 126
|
||||
#define __NR_create_module 127
|
||||
#define __NR_init_module 128
|
||||
#define __NR_delete_module 129
|
||||
#define __NR_get_kernel_syms 130
|
||||
#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_afs_syscall 137
|
||||
#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_setresuid32 164
|
||||
#define __NR_setresuid 164
|
||||
#define __NR_getresuid32 165
|
||||
#define __NR_getresuid 165
|
||||
#define __NR_query_module 166
|
||||
#define __NR_poll 167
|
||||
#define __NR_nfsservctl 168
|
||||
#define __NR_setresgid32 169
|
||||
#define __NR_setresgid 169
|
||||
#define __NR_getresgid32 170
|
||||
#define __NR_getresgid 170
|
||||
#define __NR_prctl 171
|
||||
#define __NR_rt_sigreturn 172
|
||||
#define __NR_rt_sigaction 173
|
||||
#define __NR_rt_sigprocmask 174
|
||||
#define __NR_rt_sigpending 175
|
||||
#define __NR_rt_sigtimedwait 176
|
||||
#define __NR_rt_sigqueueinfo 177
|
||||
#define __NR_rt_sigsuspend 178
|
||||
#define __NR_pread64 179
|
||||
#define __NR_pwrite64 180
|
||||
#define __NR_chown 181
|
||||
#define __NR_getcwd 182
|
||||
#define __NR_capget 183
|
||||
#define __NR_capset 184
|
||||
#define __NR_sigaltstack 185
|
||||
#define __NR_sendfile 186
|
||||
#define __NR_getpmsg 187
|
||||
#define __NR_putpmsg 188
|
||||
#define __NR_vfork 189
|
||||
#define __NR_ugetrlimit 190
|
||||
#define __NR_readahead 191
|
||||
#if !defined(__PPC64) || defined(__ABI32)
|
||||
#define __NR_mmap2 192
|
||||
#define __NR_truncate64 193
|
||||
#define __NR_ftruncate64 194
|
||||
#define __NR_stat64 195
|
||||
#define __NR_lstat64 196
|
||||
#define __NR_fstat64 197
|
||||
#endif
|
||||
#define __NR_pciconfig_read 198
|
||||
#define __NR_pciconfig_write 199
|
||||
#define __NR_pciconfig_iobase 200
|
||||
#define __NR_multiplexer 201
|
||||
#define __NR_getdents64 202
|
||||
#define __NR_pivot_root 203
|
||||
#if !defined(__PPC64) || defined(__ABI32)
|
||||
#define __NR_fcntl64 204
|
||||
#endif
|
||||
#define __NR_madvise 205
|
||||
#define __NR_mincore 206
|
||||
#define __NR_gettid 207
|
||||
#define __NR_tkill 208
|
||||
#define __NR_setxattr 209
|
||||
#define __NR_lsetxattr 210
|
||||
#define __NR_fsetxattr 211
|
||||
#define __NR_getxattr 212
|
||||
#define __NR_lgetxattr 213
|
||||
#define __NR_fgetxattr 214
|
||||
#define __NR_listxattr 215
|
||||
#define __NR_llistxattr 216
|
||||
#define __NR_flistxattr 217
|
||||
#define __NR_removexattr 218
|
||||
#define __NR_lremovexattr 219
|
||||
#define __NR_fremovexattr 220
|
||||
#define __NR_futex 221
|
||||
#define __NR_sched_setaffinity 222
|
||||
#define __NR_sched_getaffinity 223
|
||||
#define __NR_tuxcall 225
|
||||
#if !defined(__PPC64) || defined(__ABI32)
|
||||
#define __NR_sendfile64 226
|
||||
#endif
|
||||
#define __NR_io_setup 227
|
||||
#define __NR_io_destroy 228
|
||||
#define __NR_io_getevents 229
|
||||
#define __NR_io_submit 230
|
||||
#define __NR_io_cancel 231
|
||||
#define __NR_set_tid_address 232
|
||||
#define __NR_fadvise64 233
|
||||
#define __NR_exit_group 234
|
||||
#define __NR_lookup_dcookie 235
|
||||
#define __NR_epoll_create 236
|
||||
#define __NR_epoll_ctl 237
|
||||
#define __NR_epoll_wait 238
|
||||
#define __NR_remap_file_pages 239
|
||||
#define __NR_timer_create 240
|
||||
#define __NR_timer_settime 241
|
||||
#define __NR_timer_gettime 242
|
||||
#define __NR_timer_getoverrun 243
|
||||
#define __NR_timer_delete 244
|
||||
#define __NR_clock_settime 245
|
||||
#define __NR_clock_gettime 246
|
||||
#define __NR_clock_getres 247
|
||||
#define __NR_clock_nanosleep 248
|
||||
#define __NR_swapcontext 249
|
||||
#define __NR_tgkill 250
|
||||
#define __NR_utimes 251
|
||||
#define __NR_statfs64 252
|
||||
#define __NR_fstatfs64 253
|
||||
#if !defined(__PPC64) || defined(__ABI32)
|
||||
#define __NR_fadvise64_64 254
|
||||
#endif
|
||||
#define __NR_rtas 255
|
||||
#define __NR_sys_debug_setcontext 256
|
||||
#define __NR_migrate_pages 258
|
||||
#define __NR_mbind 259
|
||||
#define __NR_get_mempolicy 260
|
||||
#define __NR_set_mempolicy 261
|
||||
#define __NR_mq_open 262
|
||||
#define __NR_mq_unlink 263
|
||||
#define __NR_mq_timedsend 264
|
||||
#define __NR_mq_timedreceive 265
|
||||
#define __NR_mq_notify 266
|
||||
#define __NR_mq_getsetattr 267
|
||||
#define __NR_kexec_load 268
|
||||
#define __NR_add_key 269
|
||||
#define __NR_request_key 270
|
||||
#define __NR_keyctl 271
|
||||
#define __NR_waitid 272
|
||||
#define __NR_ioprio_set 273
|
||||
#define __NR_ioprio_get 274
|
||||
#define __NR_inotify_init 275
|
||||
#define __NR_inotify_add_watch 276
|
||||
#define __NR_inotify_rm_watch 277
|
||||
#define __NR_spu_run 278
|
||||
#define __NR_spu_create 279
|
||||
#define __NR_pselect6 280
|
||||
#define __NR_ppoll 281
|
||||
#define __NR_unshare 282
|
||||
#define __NR_splice 283
|
||||
#define __NR_tee 284
|
||||
#define __NR_vmsplice 285
|
||||
#define __NR_openat 286
|
||||
#define __NR_mkdirat 287
|
||||
#define __NR_mknodat 288
|
||||
#define __NR_fchownat 289
|
||||
#define __NR_futimesat 290
|
||||
#if defined(__PPC64) && !defined(__ABI32)
|
||||
#define __NR_newfstatat 291
|
||||
#else
|
||||
#define __NR_fstatat64 291
|
||||
#endif
|
||||
#define __NR_unlinkat 292
|
||||
#define __NR_renameat 293
|
||||
#define __NR_linkat 294
|
||||
#define __NR_symlinkat 295
|
||||
#define __NR_readlinkat 296
|
||||
#define __NR_fchmodat 297
|
||||
#define __NR_faccessat 298
|
||||
#define __NR_get_robust_list 299
|
||||
#define __NR_set_robust_list 300
|
||||
#define __NR_move_pages 301
|
||||
#define __NR_getcpu 302
|
||||
#define __NR_epoll_pwait 303
|
||||
#define __NR_utimensat 304
|
||||
#define __NR_signalfd 305
|
||||
#define __NR_timerfd 306
|
||||
#define __NR_timerfd_create 306
|
||||
#define __NR_eventfd 307
|
||||
#define __NR_sync_file_range2 308
|
||||
#define __NR_fallocate 309
|
||||
#define __NR_subpage_prot 310
|
||||
#define __NR_timerfd_settime 311
|
||||
#define __NR_timerfd_gettime 312
|
||||
#define __NR_signalfd4 313
|
||||
#define __NR_eventfd2 314
|
||||
#define __NR_epoll_create1 315
|
||||
#define __NR_dup3 316
|
||||
#define __NR_pipe2 317
|
||||
#define __NR_inotify_init1 318
|
||||
#define __NR_perf_event_open 319
|
||||
#define __NR_preadv 320
|
||||
#define __NR_pwritev 321
|
||||
#define __NR_rt_tgsigqueueinfo 322
|
||||
#define __NR_fanotify_init 323
|
||||
#define __NR_fanotify_mark 324
|
||||
#define __NR_prlimit64 325
|
||||
#define __NR_socket 326
|
||||
#define __NR_bind 327
|
||||
#define __NR_connect 328
|
||||
#define __NR_listen 329
|
||||
#define __NR_accept 330
|
||||
#define __NR_getsockname 331
|
||||
#define __NR_getpeername 332
|
||||
#define __NR_socketpair 333
|
||||
#define __NR_send 334
|
||||
#define __NR_sendto 335
|
||||
#define __NR_recv 336
|
||||
#define __NR_recvfrom 337
|
||||
#define __NR_shutdown 338
|
||||
#define __NR_setsockopt 339
|
||||
#define __NR_getsockopt 340
|
||||
#define __NR_sendmsg 341
|
||||
#define __NR_recvmsg 342
|
||||
#define __NR_recvmmsg 343
|
||||
#define __NR_accept4 344
|
||||
#define __NR_name_to_handle_at 345
|
||||
#define __NR_open_by_handle_at 346
|
||||
#define __NR_clock_adjtime 347
|
||||
#define __NR_syncfs 348
|
||||
#define __NR_sendmmsg 349
|
||||
#define __NR_setns 350
|
||||
#define __NR_process_vm_readv 351
|
||||
#define __NR_process_vm_writev 352
|
||||
|
||||
/*
|
||||
* 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_break 17
|
||||
#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_stty 31
|
||||
#define SYS_gtty 32
|
||||
#define SYS_access 33
|
||||
#define SYS_nice 34
|
||||
#define SYS_ftime 35
|
||||
#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_prof 44
|
||||
#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_lock 53
|
||||
#define SYS_ioctl 54
|
||||
#define SYS_fcntl 55
|
||||
#define SYS_mpx 56
|
||||
#define SYS_setpgid 57
|
||||
#define SYS_ulimit 58
|
||||
#define SYS_oldolduname 59
|
||||
#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_select 82
|
||||
#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_profil 98
|
||||
#define SYS_statfs 99
|
||||
#define SYS_fstatfs 100
|
||||
#define SYS_ioperm 101
|
||||
#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_iopl 110
|
||||
#define SYS_vhangup 111
|
||||
#define SYS_idle 112
|
||||
#define SYS_vm86 113
|
||||
#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_modify_ldt 123
|
||||
#define SYS_adjtimex 124
|
||||
#define SYS_mprotect 125
|
||||
#define SYS_sigprocmask 126
|
||||
#define SYS_create_module 127
|
||||
#define SYS_init_module 128
|
||||
#define SYS_delete_module 129
|
||||
#define SYS_get_kernel_syms 130
|
||||
#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_afs_syscall 137
|
||||
#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_setresuid32 164
|
||||
#define SYS_setresuid 164
|
||||
#define SYS_getresuid32 165
|
||||
#define SYS_getresuid 165
|
||||
#define SYS_query_module 166
|
||||
#define SYS_poll 167
|
||||
#define SYS_nfsservctl 168
|
||||
#define SYS_setresgid32 169
|
||||
#define SYS_setresgid 169
|
||||
#define SYS_getresgid32 170
|
||||
#define SYS_getresgid 170
|
||||
#define SYS_prctl 171
|
||||
#define SYS_rt_sigreturn 172
|
||||
#define SYS_rt_sigaction 173
|
||||
#define SYS_rt_sigprocmask 174
|
||||
#define SYS_rt_sigpending 175
|
||||
#define SYS_rt_sigtimedwait 176
|
||||
#define SYS_rt_sigqueueinfo 177
|
||||
#define SYS_rt_sigsuspend 178
|
||||
#define SYS_pread64 179
|
||||
#define SYS_pwrite64 180
|
||||
#define SYS_chown 181
|
||||
#define SYS_getcwd 182
|
||||
#define SYS_capget 183
|
||||
#define SYS_capset 184
|
||||
#define SYS_sigaltstack 185
|
||||
#define SYS_sendfile 186
|
||||
#define SYS_getpmsg 187
|
||||
#define SYS_putpmsg 188
|
||||
#define SYS_vfork 189
|
||||
#define SYS_ugetrlimit 190
|
||||
#define SYS_readahead 191
|
||||
#if !defined(__PPC64) || defined(__ABI32)
|
||||
#define SYS_mmap2 192
|
||||
#define SYS_truncate64 193
|
||||
#define SYS_ftruncate64 194
|
||||
#define SYS_stat64 195
|
||||
#define SYS_lstat64 196
|
||||
#define SYS_fstat64 197
|
||||
#endif
|
||||
#define SYS_pciconfig_read 198
|
||||
#define SYS_pciconfig_write 199
|
||||
#define SYS_pciconfig_iobase 200
|
||||
#define SYS_multiplexer 201
|
||||
#define SYS_getdents64 202
|
||||
#define SYS_pivot_root 203
|
||||
#if !defined(__PPC64) || defined(__ABI32)
|
||||
#define SYS_fcntl64 204
|
||||
#endif
|
||||
#define SYS_madvise 205
|
||||
#define SYS_mincore 206
|
||||
#define SYS_gettid 207
|
||||
#define SYS_tkill 208
|
||||
#define SYS_setxattr 209
|
||||
#define SYS_lsetxattr 210
|
||||
#define SYS_fsetxattr 211
|
||||
#define SYS_getxattr 212
|
||||
#define SYS_lgetxattr 213
|
||||
#define SYS_fgetxattr 214
|
||||
#define SYS_listxattr 215
|
||||
#define SYS_llistxattr 216
|
||||
#define SYS_flistxattr 217
|
||||
#define SYS_removexattr 218
|
||||
#define SYS_lremovexattr 219
|
||||
#define SYS_fremovexattr 220
|
||||
#define SYS_futex 221
|
||||
#define SYS_sched_setaffinity 222
|
||||
#define SYS_sched_getaffinity 223
|
||||
#define SYS_tuxcall 225
|
||||
#if !defined(__PPC64) || defined(__ABI32)
|
||||
#define SYS_sendfile64 226
|
||||
#endif
|
||||
#define SYS_io_setup 227
|
||||
#define SYS_io_destroy 228
|
||||
#define SYS_io_getevents 229
|
||||
#define SYS_io_submit 230
|
||||
#define SYS_io_cancel 231
|
||||
#define SYS_set_tid_address 232
|
||||
#define SYS_fadvise64 233
|
||||
#define SYS_exit_group 234
|
||||
#define SYS_lookup_dcookie 235
|
||||
#define SYS_epoll_create 236
|
||||
#define SYS_epoll_ctl 237
|
||||
#define SYS_epoll_wait 238
|
||||
#define SYS_remap_file_pages 239
|
||||
#define SYS_timer_create 240
|
||||
#define SYS_timer_settime 241
|
||||
#define SYS_timer_gettime 242
|
||||
#define SYS_timer_getoverrun 243
|
||||
#define SYS_timer_delete 244
|
||||
#define SYS_clock_settime 245
|
||||
#define SYS_clock_gettime 246
|
||||
#define SYS_clock_getres 247
|
||||
#define SYS_clock_nanosleep 248
|
||||
#define SYS_swapcontext 249
|
||||
#define SYS_tgkill 250
|
||||
#define SYS_utimes 251
|
||||
#define SYS_statfs64 252
|
||||
#define SYS_fstatfs64 253
|
||||
#if !defined(__PPC64) || defined(__ABI32)
|
||||
#define SYS_fadvise64_64 254
|
||||
#endif
|
||||
#define SYS_rtas 255
|
||||
#define SYS_sys_debug_setcontext 256
|
||||
#define SYS_migrate_pages 258
|
||||
#define SYS_mbind 259
|
||||
#define SYS_get_mempolicy 260
|
||||
#define SYS_set_mempolicy 261
|
||||
#define SYS_mq_open 262
|
||||
#define SYS_mq_unlink 263
|
||||
#define SYS_mq_timedsend 264
|
||||
#define SYS_mq_timedreceive 265
|
||||
#define SYS_mq_notify 266
|
||||
#define SYS_mq_getsetattr 267
|
||||
#define SYS_kexec_load 268
|
||||
#define SYS_add_key 269
|
||||
#define SYS_request_key 270
|
||||
#define SYS_keyctl 271
|
||||
#define SYS_waitid 272
|
||||
#define SYS_ioprio_set 273
|
||||
#define SYS_ioprio_get 274
|
||||
#define SYS_inotify_init 275
|
||||
#define SYS_inotify_add_watch 276
|
||||
#define SYS_inotify_rm_watch 277
|
||||
#define SYS_spu_run 278
|
||||
#define SYS_spu_create 279
|
||||
#define SYS_pselect6 280
|
||||
#define SYS_ppoll 281
|
||||
#define SYS_unshare 282
|
||||
#define SYS_splice 283
|
||||
#define SYS_tee 284
|
||||
#define SYS_vmsplice 285
|
||||
#define SYS_openat 286
|
||||
#define SYS_mkdirat 287
|
||||
#define SYS_mknodat 288
|
||||
#define SYS_fchownat 289
|
||||
#define SYS_futimesat 290
|
||||
#if defined(__PPC64) && !defined(__ABI32)
|
||||
#define SYS_newfstatat 291
|
||||
#else
|
||||
#define SYS_fstatat64 291
|
||||
#endif
|
||||
#define SYS_unlinkat 292
|
||||
#define SYS_renameat 293
|
||||
#define SYS_linkat 294
|
||||
#define SYS_symlinkat 295
|
||||
#define SYS_readlinkat 296
|
||||
#define SYS_fchmodat 297
|
||||
#define SYS_faccessat 298
|
||||
#define SYS_get_robust_list 299
|
||||
#define SYS_set_robust_list 300
|
||||
#define SYS_move_pages 301
|
||||
#define SYS_getcpu 302
|
||||
#define SYS_epoll_pwait 303
|
||||
#define SYS_utimensat 304
|
||||
#define SYS_signalfd 305
|
||||
#define SYS_timerfd 306
|
||||
#define SYS_timerfd_create 306
|
||||
#define SYS_eventfd 307
|
||||
#define SYS_sync_file_range2 308
|
||||
#define SYS_fallocate 309
|
||||
#define SYS_subpage_prot 310
|
||||
#define SYS_timerfd_settime 311
|
||||
#define SYS_timerfd_gettime 312
|
||||
#define SYS_signalfd4 313
|
||||
#define SYS_eventfd2 314
|
||||
#define SYS_epoll_create1 315
|
||||
#define SYS_dup3 316
|
||||
#define SYS_pipe2 317
|
||||
#define SYS_inotify_init1 318
|
||||
#define SYS_perf_event_open 319
|
||||
#define SYS_preadv 320
|
||||
#define SYS_pwritev 321
|
||||
#define SYS_rt_tgsigqueueinfo 322
|
||||
#define SYS_fanotify_init 323
|
||||
#define SYS_fanotify_mark 324
|
||||
#define SYS_prlimit64 325
|
||||
#define SYS_socket 326
|
||||
#define SYS_bind 327
|
||||
#define SYS_connect 328
|
||||
#define SYS_listen 329
|
||||
#define SYS_accept 330
|
||||
#define SYS_getsockname 331
|
||||
#define SYS_getpeername 332
|
||||
#define SYS_socketpair 333
|
||||
#define SYS_send 334
|
||||
#define SYS_sendto 335
|
||||
#define SYS_recv 336
|
||||
#define SYS_recvfrom 337
|
||||
#define SYS_shutdown 338
|
||||
#define SYS_setsockopt 339
|
||||
#define SYS_getsockopt 340
|
||||
#define SYS_sendmsg 341
|
||||
#define SYS_recvmsg 342
|
||||
#define SYS_recvmmsg 343
|
||||
#define SYS_accept4 344
|
||||
#define SYS_name_to_handle_at 345
|
||||
#define SYS_open_by_handle_at 346
|
||||
#define SYS_clock_adjtime 347
|
||||
#define SYS_syncfs 348
|
||||
#define SYS_sendmmsg 349
|
||||
#define SYS_setns 350
|
||||
#define SYS_process_vm_readv 351
|
||||
#define SYS_process_vm_writev 352
|
||||
|
|
@ -0,0 +1,14 @@
|
|||
static inline struct pthread *__pthread_self()
|
||||
{
|
||||
register char* tp __asm__("r2");
|
||||
return (pthread_t)(tp - 0x7000 - sizeof(struct pthread));
|
||||
}
|
||||
|
||||
#define TLS_ABOVE_TP
|
||||
#define TP_ADJ(p) ((char *)(p) + sizeof(struct pthread) + 0x7000)
|
||||
|
||||
// offset of the PC register in mcontext_t, divided by the system wordsize
|
||||
// the kernel calls the ip "nip", it's the first saved value after the 32
|
||||
// GPRs.
|
||||
#define CANCEL_REG_IP 32
|
||||
|
|
@ -0,0 +1,36 @@
|
|||
#include <string.h>
|
||||
#include <elf.h>
|
||||
|
||||
#define ETC_LDSO_PATH "/etc/ld-musl-powerpc.path"
|
||||
|
||||
#define IS_COPY(x) ((x)==R_PPC_COPY)
|
||||
#define IS_PLT(x) ((x)==R_PPC_JMP_SLOT)
|
||||
|
||||
// see linux' arch/powerpc/include/asm/elf.h
|
||||
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_PPC_GLOB_DAT:
|
||||
case R_PPC_JMP_SLOT:
|
||||
*reloc_addr = sym_val;
|
||||
break;
|
||||
case R_PPC_REL32:
|
||||
if (sym_val) *reloc_addr += sym_val;
|
||||
else *reloc_addr += (size_t)base_addr;
|
||||
break;
|
||||
case R_PPC_COPY:
|
||||
memcpy(reloc_addr, (void *)sym_val, sym_size);
|
||||
break;
|
||||
case R_PPC_RELATIVE:
|
||||
*reloc_addr += (size_t)base_addr;
|
||||
break;
|
||||
//case R_PPC64_DTPMOD64: //R_X86_64_DTPMOD64:
|
||||
case R_PPC_DTPMOD32: //R_386_TLS_DTPMOD32:
|
||||
*reloc_addr = def.dso ? def.dso->tls_id : self->tls_id;
|
||||
break;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,62 @@
|
|||
#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) 0, __SYSCALL_LL_E((x))
|
||||
|
||||
#define _NSIG 64
|
||||
#define __SYSCALL_SSLEN (_NSIG/8)
|
||||
|
||||
long (__syscall)(long, ...);
|
||||
|
||||
static inline long __syscall0(long n)
|
||||
{
|
||||
return (__syscall)(n, 0, 0, 0, 0, 0, 0);
|
||||
}
|
||||
|
||||
static inline long __syscall1(long n, long a)
|
||||
{
|
||||
return (__syscall)(n, a, 0, 0, 0, 0, 0);
|
||||
}
|
||||
|
||||
static inline long __syscall2(long n, long a, long b)
|
||||
{
|
||||
return (__syscall)(n, a, b, 0, 0, 0, 0);
|
||||
}
|
||||
|
||||
static inline long __syscall3(long n, long a, long b, long c)
|
||||
{
|
||||
return (__syscall)(n, a, b, c, 0, 0, 0);
|
||||
}
|
||||
|
||||
static inline long __syscall4(long n, long a, long b, long c, long d)
|
||||
{
|
||||
return (__syscall)(n, a, b, c, d, 0, 0);
|
||||
}
|
||||
|
||||
static inline long __syscall5(long n, long a, long b, long c, long d, long e)
|
||||
{
|
||||
return (__syscall)(n, a, b, c, d, e, 0);
|
||||
}
|
||||
|
||||
static inline long __syscall6(long n, long a, long b, long c, long d, long e, long f)
|
||||
{
|
||||
return (__syscall)(n, a, b, c, d, e, f);
|
||||
}
|
||||
|
||||
#define __SC_socket 1
|
||||
#define __SC_bind 2
|
||||
#define __SC_connect 3
|
||||
#define __SC_listen 4
|
||||
#define __SC_accept 5
|
||||
#define __SC_getsockname 6
|
||||
#define __SC_getpeername 7
|
||||
#define __SC_socketpair 8
|
||||
#define __SC_send 9
|
||||
#define __SC_recv 10
|
||||
#define __SC_sendto 11
|
||||
#define __SC_recvfrom 12
|
||||
#define __SC_shutdown 13
|
||||
#define __SC_setsockopt 14
|
||||
#define __SC_getsockopt 15
|
||||
#define __SC_sendmsg 16
|
||||
#define __SC_recvmsg 17
|
|
@ -1,114 +0,0 @@
|
|||
/* $NetBSD: asm.h,v 1.29 2010/03/09 22:36:41 matt Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (C) 1995, 1996 Wolfgang Solfrank.
|
||||
* Copyright (C) 1995, 1996 TooLs GmbH.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 3. All advertising materials mentioning features or use of this software
|
||||
* must display the following acknowledgement:
|
||||
* This product includes software developed by TooLs GmbH.
|
||||
* 4. The name of TooLs GmbH may not be used to endorse or promote products
|
||||
* derived from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY TOOLS GMBH ``AS IS'' AND ANY EXPRESS OR
|
||||
* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
||||
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
||||
* IN NO EVENT SHALL TOOLS GMBH BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
||||
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
|
||||
* OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
||||
* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#ifndef _PPC_BITS_ASM_H_
|
||||
#define _PPC_BITS_ASM_H_
|
||||
|
||||
#define cr0 0
|
||||
#define cr1 1
|
||||
#define cr2 2
|
||||
#define cr3 3
|
||||
#define cr4 4
|
||||
#define cr5 5
|
||||
#define cr6 6
|
||||
#define cr7 7
|
||||
|
||||
/* General Purpose Registers (GPRs) */
|
||||
#define r0 0
|
||||
#define r1 1
|
||||
#define r2 2
|
||||
#define r3 3
|
||||
#define r4 4
|
||||
#define r5 5
|
||||
#define r6 6
|
||||
#define r7 7
|
||||
#define r8 8
|
||||
#define r9 9
|
||||
#define r10 10
|
||||
#define r11 11
|
||||
#define r12 12
|
||||
#define r13 13
|
||||
#define r14 14
|
||||
#define r15 15
|
||||
#define r16 16
|
||||
#define r17 17
|
||||
#define r18 18
|
||||
#define r19 19
|
||||
#define r20 20
|
||||
#define r21 21
|
||||
#define r22 22
|
||||
#define r23 23
|
||||
#define r24 24
|
||||
#define r25 25
|
||||
#define r26 26
|
||||
#define r27 27
|
||||
#define r28 28
|
||||
#define r29 29
|
||||
#define r30 30
|
||||
#define r31 31
|
||||
|
||||
/* Floating Point Registers (FPRs) */
|
||||
#define fr0 0
|
||||
#define fr1 1
|
||||
#define fr2 2
|
||||
#define fr3 3
|
||||
#define fr4 4
|
||||
#define fr5 5
|
||||
#define fr6 6
|
||||
#define fr7 7
|
||||
#define fr8 8
|
||||
#define fr9 9
|
||||
#define fr10 10
|
||||
#define fr11 11
|
||||
#define fr12 12
|
||||
#define fr13 13
|
||||
#define fr14 14
|
||||
#define fr15 15
|
||||
#define fr16 16
|
||||
#define fr17 17
|
||||
#define fr18 18
|
||||
#define fr19 19
|
||||
#define fr20 20
|
||||
#define fr21 21
|
||||
#define fr22 22
|
||||
#define fr23 23
|
||||
#define fr24 24
|
||||
#define fr25 25
|
||||
#define fr26 26
|
||||
#define fr27 27
|
||||
#define fr28 28
|
||||
#define fr29 29
|
||||
#define fr30 30
|
||||
#define fr31 31
|
||||
|
||||
#endif /* _PPC_BITS_ASM_H_ */
|
|
@ -1,77 +0,0 @@
|
|||
#if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \
|
||||
|| defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE)
|
||||
|
||||
typedef struct {
|
||||
unsigned long __regs[21];
|
||||
} mcontext_t;
|
||||
|
||||
typedef struct __ucontext {
|
||||
unsigned long uc_flags;
|
||||
struct __ucontext *uc_link;
|
||||
stack_t uc_stack;
|
||||
mcontext_t uc_mcontext;
|
||||
sigset_t uc_sigmask;
|
||||
unsigned long uc_regspace[128];
|
||||
} 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
|
||||
|
||||
#ifdef _GNU_SOURCE
|
||||
struct sigcontext
|
||||
{
|
||||
unsigned long trap_no, error_code, oldmask;
|
||||
unsigned long arm_r0, arm_r1, arm_r2, arm_r3;
|
||||
unsigned long arm_r4, arm_r5, arm_r6, arm_r7;
|
||||
unsigned long arm_r8, arm_r9, arm_r10, arm_fp;
|
||||
unsigned long arm_ip, arm_sp, arm_lr, arm_pc;
|
||||
unsigned long arm_cpsr, fault_address;
|
||||
};
|
||||
#define NSIG 64
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
#define SIGHUP 1
|
||||
#define SIGINT 2
|
||||
#define SIGQUIT 3
|
||||
#define SIGILL 4
|
||||
#define SIGTRAP 5
|
||||
#define SIGABRT 6
|
||||
#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
|
||||
|
||||
#ifdef _BSD_SOURCE
|
||||
#define SIGINFO SIGUSR1 /* For NetBSD compatability */
|
||||
#endif
|
|
@ -1,10 +0,0 @@
|
|||
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;
|
||||
};
|
|
@ -1,714 +0,0 @@
|
|||
#if !defined(__ASSEMBLER__)
|
||||
#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) 0, __SYSCALL_LL_E((x))
|
||||
|
||||
long (__syscall)(long, ...);
|
||||
|
||||
static inline long __syscall0(long n)
|
||||
{
|
||||
return (__syscall)(n, 0, 0, 0, 0, 0, 0);
|
||||
}
|
||||
|
||||
static inline long __syscall1(long n, long a)
|
||||
{
|
||||
return (__syscall)(n, a, 0, 0, 0, 0, 0);
|
||||
}
|
||||
|
||||
static inline long __syscall2(long n, long a, long b)
|
||||
{
|
||||
return (__syscall)(n, a, b, 0, 0, 0, 0);
|
||||
}
|
||||
|
||||
static inline long __syscall3(long n, long a, long b, long c)
|
||||
{
|
||||
return (__syscall)(n, a, b, c, 0, 0, 0);
|
||||
}
|
||||
|
||||
static inline long __syscall4(long n, long a, long b, long c, long d)
|
||||
{
|
||||
return (__syscall)(n, a, b, c, d, 0, 0);
|
||||
}
|
||||
|
||||
static inline long __syscall5(long n, long a, long b, long c, long d, long e)
|
||||
{
|
||||
return (__syscall)(n, a, b, c, d, e, 0);
|
||||
}
|
||||
|
||||
static inline long __syscall6(long n, long a, long b, long c, long d, long e, long f)
|
||||
{
|
||||
return (__syscall)(n, a, b, c, d, e, f);
|
||||
}
|
||||
|
||||
#define __SC_socket 1
|
||||
#define __SC_bind 2
|
||||
#define __SC_connect 3
|
||||
#define __SC_listen 4
|
||||
#define __SC_accept 5
|
||||
#define __SC_getsockname 6
|
||||
#define __SC_getpeername 7
|
||||
#define __SC_socketpair 8
|
||||
#define __SC_send 9
|
||||
#define __SC_recv 10
|
||||
#define __SC_sendto 11
|
||||
#define __SC_recvfrom 12
|
||||
#define __SC_shutdown 13
|
||||
#define __SC_setsockopt 14
|
||||
#define __SC_getsockopt 15
|
||||
#define __SC_sendmsg 16
|
||||
#define __SC_recvmsg 17
|
||||
|
||||
#define __socketcall(nm,a,b,c,d,e,f) syscall(SYS_socketcall, __SC_##nm, \
|
||||
((long [6]){ (long)a, (long)b, (long)c, (long)d, (long)e, (long)f }))
|
||||
#define __socketcall_cp(nm,a,b,c,d,e,f) syscall_cp(SYS_socketcall, __SC_##nm, \
|
||||
((long [6]){ (long)a, (long)b, (long)c, (long)d, (long)e, (long)f }))
|
||||
|
||||
#endif /* __ASSEMBLER__ */
|
||||
|
||||
#define __NR_SYSCALL_BASE 0
|
||||
|
||||
#define __NR_restart_syscall (__NR_SYSCALL_BASE + 0)
|
||||
#define __NR_exit (__NR_SYSCALL_BASE + 1)
|
||||
#define __NR_fork (__NR_SYSCALL_BASE + 2)
|
||||
#define __NR_read (__NR_SYSCALL_BASE + 3)
|
||||
#define __NR_write (__NR_SYSCALL_BASE + 4)
|
||||
#define __NR_open (__NR_SYSCALL_BASE + 5)
|
||||
#define __NR_close (__NR_SYSCALL_BASE + 6)
|
||||
#define __NR_waitpid (__NR_SYSCALL_BASE + 7)
|
||||
#define __NR_creat (__NR_SYSCALL_BASE + 8)
|
||||
#define __NR_link (__NR_SYSCALL_BASE + 9)
|
||||
#define __NR_unlink (__NR_SYSCALL_BASE + 10)
|
||||
#define __NR_execve (__NR_SYSCALL_BASE + 11)
|
||||
#define __NR_chdir (__NR_SYSCALL_BASE + 12)
|
||||
#define __NR_time (__NR_SYSCALL_BASE + 13)
|
||||
#define __NR_mknod (__NR_SYSCALL_BASE + 14)
|
||||
#define __NR_chmod (__NR_SYSCALL_BASE + 15)
|
||||
#define __NR_lchown (__NR_SYSCALL_BASE + 16)
|
||||
#define __NR_break (__NR_SYSCALL_BASE + 17)
|
||||
#define __NR_oldstat (__NR_SYSCALL_BASE + 18)
|
||||
#define __NR_lseek (__NR_SYSCALL_BASE + 19)
|
||||
#define __NR_getpid (__NR_SYSCALL_BASE + 20)
|
||||
#define __NR_mount (__NR_SYSCALL_BASE + 21)
|
||||
#define __NR_umount (__NR_SYSCALL_BASE + 22)
|
||||
#define __NR_setuid (__NR_SYSCALL_BASE + 23)
|
||||
#define __NR_getuid (__NR_SYSCALL_BASE + 24)
|
||||
#define __NR_stime (__NR_SYSCALL_BASE + 25)
|
||||
#define __NR_ptrace (__NR_SYSCALL_BASE + 26)
|
||||
#define __NR_alarm (__NR_SYSCALL_BASE + 27)
|
||||
#define __NR_oldfstat (__NR_SYSCALL_BASE + 28)
|
||||
#define __NR_pause (__NR_SYSCALL_BASE + 29)
|
||||
#define __NR_utime (__NR_SYSCALL_BASE + 30)
|
||||
#define __NR_stty (__NR_SYSCALL_BASE + 31)
|
||||
#define __NR_gtty (__NR_SYSCALL_BASE + 32)
|
||||
#define __NR_access (__NR_SYSCALL_BASE + 33)
|
||||
#define __NR_nice (__NR_SYSCALL_BASE + 34)
|
||||
#define __NR_ftime (__NR_SYSCALL_BASE + 35)
|
||||
#define __NR_sync (__NR_SYSCALL_BASE + 36)
|
||||
#define __NR_kill (__NR_SYSCALL_BASE + 37)
|
||||
#define __NR_rename (__NR_SYSCALL_BASE + 38)
|
||||
#define __NR_mkdir (__NR_SYSCALL_BASE + 39)
|
||||
#define __NR_rmdir (__NR_SYSCALL_BASE + 40)
|
||||
#define __NR_dup (__NR_SYSCALL_BASE + 41)
|
||||
#define __NR_pipe (__NR_SYSCALL_BASE + 42)
|
||||
#define __NR_times (__NR_SYSCALL_BASE + 43)
|
||||
#define __NR_prof (__NR_SYSCALL_BASE + 44)
|
||||
#define __NR_brk (__NR_SYSCALL_BASE + 45)
|
||||
#define __NR_setgid (__NR_SYSCALL_BASE + 46)
|
||||
#define __NR_getgid (__NR_SYSCALL_BASE + 47)
|
||||
#define __NR_signal (__NR_SYSCALL_BASE + 48)
|
||||
#define __NR_geteuid (__NR_SYSCALL_BASE + 49)
|
||||
#define __NR_getegid (__NR_SYSCALL_BASE + 50)
|
||||
#define __NR_acct (__NR_SYSCALL_BASE + 51)
|
||||
#define __NR_umount2 (__NR_SYSCALL_BASE + 52)
|
||||
#define __NR_lock (__NR_SYSCALL_BASE + 53)
|
||||
#define __NR_ioctl (__NR_SYSCALL_BASE + 54)
|
||||
#define __NR_fcntl (__NR_SYSCALL_BASE + 55)
|
||||
#define __NR_mpx (__NR_SYSCALL_BASE + 56)
|
||||
#define __NR_setpgid (__NR_SYSCALL_BASE + 57)
|
||||
#define __NR_ulimit (__NR_SYSCALL_BASE + 58)
|
||||
#define __NR_oldolduname (__NR_SYSCALL_BASE + 59)
|
||||
#define __NR_umask (__NR_SYSCALL_BASE + 60)
|
||||
#define __NR_chroot (__NR_SYSCALL_BASE + 61)
|
||||
#define __NR_ustat (__NR_SYSCALL_BASE + 62)
|
||||
#define __NR_dup2 (__NR_SYSCALL_BASE + 63)
|
||||
#define __NR_getppid (__NR_SYSCALL_BASE + 64)
|
||||
#define __NR_getpgrp (__NR_SYSCALL_BASE + 65)
|
||||
#define __NR_setsid (__NR_SYSCALL_BASE + 66)
|
||||
#define __NR_sigaction (__NR_SYSCALL_BASE + 67)
|
||||
#define __NR_sgetmask (__NR_SYSCALL_BASE + 68)
|
||||
#define __NR_ssetmask (__NR_SYSCALL_BASE + 69)
|
||||
#define __NR_setreuid (__NR_SYSCALL_BASE + 70)
|
||||
#define __NR_setregid (__NR_SYSCALL_BASE + 71)
|
||||
#define __NR_sigsuspend (__NR_SYSCALL_BASE + 72)
|
||||
#define __NR_sigpending (__NR_SYSCALL_BASE + 73)
|
||||
#define __NR_sethostname (__NR_SYSCALL_BASE + 74)
|
||||
#define __NR_setrlimit (__NR_SYSCALL_BASE + 75)
|
||||
#define __NR_getrlimit (__NR_SYSCALL_BASE + 76)
|
||||
#define __NR_getrusage (__NR_SYSCALL_BASE + 77)
|
||||
#define __NR_gettimeofday (__NR_SYSCALL_BASE + 78)
|
||||
#define __NR_settimeofday (__NR_SYSCALL_BASE + 79)
|
||||
#define __NR_getgroups (__NR_SYSCALL_BASE + 80)
|
||||
#define __NR_setgroups (__NR_SYSCALL_BASE + 81)
|
||||
#define __NR_select (__NR_SYSCALL_BASE + 82)
|
||||
#define __NR_symlink (__NR_SYSCALL_BASE + 83)
|
||||
#define __NR_oldlstat (__NR_SYSCALL_BASE + 84)
|
||||
#define __NR_readlink (__NR_SYSCALL_BASE + 85)
|
||||
#define __NR_uselib (__NR_SYSCALL_BASE + 86)
|
||||
#define __NR_swapon (__NR_SYSCALL_BASE + 87)
|
||||
#define __NR_reboot (__NR_SYSCALL_BASE + 88)
|
||||
#define __NR_readdir (__NR_SYSCALL_BASE + 89)
|
||||
#define __NR_mmap (__NR_SYSCALL_BASE + 90)
|
||||
#define __NR_munmap (__NR_SYSCALL_BASE + 91)
|
||||
#define __NR_truncate (__NR_SYSCALL_BASE + 92)
|
||||
#define __NR_ftruncate (__NR_SYSCALL_BASE + 93)
|
||||
#define __NR_fchmod (__NR_SYSCALL_BASE + 94)
|
||||
#define __NR_fchown (__NR_SYSCALL_BASE + 95)
|
||||
#define __NR_getpriority (__NR_SYSCALL_BASE + 96)
|
||||
#define __NR_setpriority (__NR_SYSCALL_BASE + 97)
|
||||
#define __NR_profil (__NR_SYSCALL_BASE + 98)
|
||||
#define __NR_statfs (__NR_SYSCALL_BASE + 99)
|
||||
#define __NR_fstatfs (__NR_SYSCALL_BASE + 100)
|
||||
#define __NR_ioperm (__NR_SYSCALL_BASE + 101)
|
||||
#define __NR_socketcall (__NR_SYSCALL_BASE + 102)
|
||||
#define __NR_syslog (__NR_SYSCALL_BASE + 103)
|
||||
#define __NR_setitimer (__NR_SYSCALL_BASE + 104)
|
||||
#define __NR_getitimer (__NR_SYSCALL_BASE + 105)
|
||||
#define __NR_stat (__NR_SYSCALL_BASE + 106)
|
||||
#define __NR_lstat (__NR_SYSCALL_BASE + 107)
|
||||
#define __NR_fstat (__NR_SYSCALL_BASE + 108)
|
||||
#define __NR_olduname (__NR_SYSCALL_BASE + 109)
|
||||
#define __NR_iopl (__NR_SYSCALL_BASE + 110)
|
||||
#define __NR_vhangup (__NR_SYSCALL_BASE + 111)
|
||||
#define __NR_idle (__NR_SYSCALL_BASE + 112)
|
||||
#define __NR_vm86 (__NR_SYSCALL_BASE + 113)
|
||||
#define __NR_wait4 (__NR_SYSCALL_BASE + 114)
|
||||
#define __NR_swapoff (__NR_SYSCALL_BASE + 115)
|
||||
#define __NR_sysinfo (__NR_SYSCALL_BASE + 116)
|
||||
#define __NR_ipc (__NR_SYSCALL_BASE + 117)
|
||||
#define __NR_fsync (__NR_SYSCALL_BASE + 118)
|
||||
#define __NR_sigreturn (__NR_SYSCALL_BASE + 119)
|
||||
#define __NR_clone (__NR_SYSCALL_BASE + 120)
|
||||
#define __NR_setdomainname (__NR_SYSCALL_BASE + 121)
|
||||
#define __NR_uname (__NR_SYSCALL_BASE + 122)
|
||||
#define __NR_modify_ldt (__NR_SYSCALL_BASE + 123)
|
||||
#define __NR_adjtimex (__NR_SYSCALL_BASE + 124)
|
||||
#define __NR_mprotect (__NR_SYSCALL_BASE + 125)
|
||||
#define __NR_sigprocmask (__NR_SYSCALL_BASE + 126)
|
||||
#define __NR_create_module (__NR_SYSCALL_BASE + 127)
|
||||
#define __NR_init_module (__NR_SYSCALL_BASE + 128)
|
||||
#define __NR_delete_module (__NR_SYSCALL_BASE + 129)
|
||||
#define __NR_get_kernel_syms (__NR_SYSCALL_BASE + 130)
|
||||
#define __NR_quotactl (__NR_SYSCALL_BASE + 131)
|
||||
#define __NR_getpgid (__NR_SYSCALL_BASE + 132)
|
||||
#define __NR_fchdir (__NR_SYSCALL_BASE + 133)
|
||||
#define __NR_bdflush (__NR_SYSCALL_BASE + 134)
|
||||
#define __NR_sysfs (__NR_SYSCALL_BASE + 135)
|
||||
#define __NR_personality (__NR_SYSCALL_BASE + 136)
|
||||
#define __NR_afs_syscall (__NR_SYSCALL_BASE + 137)
|
||||
#define __NR_setfsuid (__NR_SYSCALL_BASE + 138)
|
||||
#define __NR_setfsgid (__NR_SYSCALL_BASE + 139)
|
||||
#define __NR__llseek (__NR_SYSCALL_BASE + 140)
|
||||
#define __NR_getdents (__NR_SYSCALL_BASE + 141)
|
||||
#define __NR__newselect (__NR_SYSCALL_BASE + 142)
|
||||
#define __NR_flock (__NR_SYSCALL_BASE + 143)
|
||||
#define __NR_msync (__NR_SYSCALL_BASE + 144)
|
||||
#define __NR_readv (__NR_SYSCALL_BASE + 145)
|
||||
#define __NR_writev (__NR_SYSCALL_BASE + 146)
|
||||
#define __NR_getsid (__NR_SYSCALL_BASE + 147)
|
||||
#define __NR_fdatasync (__NR_SYSCALL_BASE + 148)
|
||||
#define __NR__sysctl (__NR_SYSCALL_BASE + 149)
|
||||
#define __NR_mlock (__NR_SYSCALL_BASE + 150)
|
||||
#define __NR_munlock (__NR_SYSCALL_BASE + 151)
|
||||
#define __NR_mlockall (__NR_SYSCALL_BASE + 152)
|
||||
#define __NR_munlockall (__NR_SYSCALL_BASE + 153)
|
||||
#define __NR_sched_setparam (__NR_SYSCALL_BASE + 154)
|
||||
#define __NR_sched_getparam (__NR_SYSCALL_BASE + 155)
|
||||
#define __NR_sched_setscheduler (__NR_SYSCALL_BASE + 156)
|
||||
#define __NR_sched_getscheduler (__NR_SYSCALL_BASE + 157)
|
||||
#define __NR_sched_yield (__NR_SYSCALL_BASE + 158)
|
||||
#define __NR_sched_get_priority_max (__NR_SYSCALL_BASE + 159)
|
||||
#define __NR_sched_get_priority_min (__NR_SYSCALL_BASE + 160)
|
||||
#define __NR_sched_rr_get_interval (__NR_SYSCALL_BASE + 161)
|
||||
#define __NR_nanosleep (__NR_SYSCALL_BASE + 162)
|
||||
#define __NR_mremap (__NR_SYSCALL_BASE + 163)
|
||||
#define __NR_setresuid (__NR_SYSCALL_BASE + 164)
|
||||
#define __NR_getresuid (__NR_SYSCALL_BASE + 165)
|
||||
#define __NR_query_module (__NR_SYSCALL_BASE + 166)
|
||||
#define __NR_poll (__NR_SYSCALL_BASE + 167)
|
||||
#define __NR_nfsservctl (__NR_SYSCALL_BASE + 168)
|
||||
#define __NR_setresgid (__NR_SYSCALL_BASE + 169)
|
||||
#define __NR_getresgid (__NR_SYSCALL_BASE + 170)
|
||||
#define __NR_prctl (__NR_SYSCALL_BASE + 171)
|
||||
#define __NR_rt_sigreturn (__NR_SYSCALL_BASE + 172)
|
||||
#define __NR_rt_sigaction (__NR_SYSCALL_BASE + 173)
|
||||
#define __NR_rt_sigprocmask (__NR_SYSCALL_BASE + 174)
|
||||
#define __NR_rt_sigpending (__NR_SYSCALL_BASE + 175)
|
||||
#define __NR_rt_sigtimedwait (__NR_SYSCALL_BASE + 176)
|
||||
#define __NR_rt_sigqueueinfo (__NR_SYSCALL_BASE + 177)
|
||||
#define __NR_rt_sigsuspend (__NR_SYSCALL_BASE + 178)
|
||||
#define __NR_pread (__NR_SYSCALL_BASE + 179)
|
||||
#define __NR_pwrite (__NR_SYSCALL_BASE + 180)
|
||||
#define __NR_chown (__NR_SYSCALL_BASE + 181)
|
||||
#define __NR_getcwd (__NR_SYSCALL_BASE + 182)
|
||||
#define __NR_capget (__NR_SYSCALL_BASE + 183)
|
||||
#define __NR_capset (__NR_SYSCALL_BASE + 184)
|
||||
#define __NR_sigaltstack (__NR_SYSCALL_BASE + 185)
|
||||
#define __NR_sendfile (__NR_SYSCALL_BASE + 186)
|
||||
#define __NR_getpmsg (__NR_SYSCALL_BASE + 187)
|
||||
#define __NR_putpmsg (__NR_SYSCALL_BASE + 188)
|
||||
#define __NR_vfork (__NR_SYSCALL_BASE + 189)
|
||||
#define __NR_ugetrlimit (__NR_SYSCALL_BASE + 190)
|
||||
#define __NR_readahead (__NR_SYSCALL_BASE + 191)
|
||||
#define __NR_mmap2 (__NR_SYSCALL_BASE + 192)
|
||||
#define __NR_truncate64 (__NR_SYSCALL_BASE + 193)
|
||||
#define __NR_ftruncate64 (__NR_SYSCALL_BASE + 194)
|
||||
#define __NR_stat64 (__NR_SYSCALL_BASE + 195)
|
||||
#define __NR_lstat64 (__NR_SYSCALL_BASE + 196)
|
||||
#define __NR_fstat64 (__NR_SYSCALL_BASE + 197)
|
||||
#define __NR_pciconfig_read (__NR_SYSCALL_BASE + 198)
|
||||
#define __NR_pciconfig_write (__NR_SYSCALL_BASE + 199)
|
||||
#define __NR_pciconfig_iobase (__NR_SYSCALL_BASE + 200)
|
||||
#define __NR_multiplexer (__NR_SYSCALL_BASE + 201)
|
||||
#define __NR_getdents64 (__NR_SYSCALL_BASE + 202)
|
||||
#define __NR_pivot_root (__NR_SYSCALL_BASE + 203)
|
||||
#define __NR_fcntl64 (__NR_SYSCALL_BASE + 204)
|
||||
#define __NR_madvise (__NR_SYSCALL_BASE + 205)
|
||||
#define __NR_mincore (__NR_SYSCALL_BASE + 206)
|
||||
#define __NR_gettid (__NR_SYSCALL_BASE + 207)
|
||||
#define __NR_tkill (__NR_SYSCALL_BASE + 208)
|
||||
#define __NR_setxattr (__NR_SYSCALL_BASE + 209)
|
||||
#define __NR_lsetxattr (__NR_SYSCALL_BASE + 210)
|
||||
#define __NR_fsetxattr (__NR_SYSCALL_BASE + 211)
|
||||
#define __NR_getxattr (__NR_SYSCALL_BASE + 212)
|
||||
#define __NR_lgetxattr (__NR_SYSCALL_BASE + 213)
|
||||
#define __NR_fgetxattr (__NR_SYSCALL_BASE + 214)
|
||||
#define __NR_listxattr (__NR_SYSCALL_BASE + 215)
|
||||
#define __NR_llistxattr (__NR_SYSCALL_BASE + 216)
|
||||
#define __NR_flistxattr (__NR_SYSCALL_BASE + 217)
|
||||
#define __NR_removexattr (__NR_SYSCALL_BASE + 218)
|
||||
#define __NR_lremovexattr (__NR_SYSCALL_BASE + 219)
|
||||
#define __NR_fremovexattr (__NR_SYSCALL_BASE + 220)
|
||||
#define __NR_futex (__NR_SYSCALL_BASE + 221)
|
||||
#define __NR_sched_setaffinity (__NR_SYSCALL_BASE + 222)
|
||||
#define __NR_sched_getaffinity (__NR_SYSCALL_BASE + 223)
|
||||
#define __NR_tuxcall (__NR_SYSCALL_BASE + 225)
|
||||
#define __NR_sendfile64 (__NR_SYSCALL_BASE + 226)
|
||||
#define __NR_io_setup (__NR_SYSCALL_BASE + 227)
|
||||
#define __NR_io_destroy (__NR_SYSCALL_BASE + 228)
|
||||
#define __NR_io_getevents (__NR_SYSCALL_BASE + 229)
|
||||
#define __NR_io_submit (__NR_SYSCALL_BASE + 230)
|
||||
#define __NR_io_cancel (__NR_SYSCALL_BASE + 231)
|
||||
#define __NR_set_tid_address (__NR_SYSCALL_BASE + 232)
|
||||
#define __NR_fadvise (__NR_SYSCALL_BASE + 233)
|
||||
#define __NR_exit_group (__NR_SYSCALL_BASE + 234)
|
||||
#define __NR_lookup_dcookie (__NR_SYSCALL_BASE + 235)
|
||||
#define __NR_epoll_create (__NR_SYSCALL_BASE + 236)
|
||||
#define __NR_epoll_ctl (__NR_SYSCALL_BASE + 237)
|
||||
#define __NR_epoll_wait (__NR_SYSCALL_BASE + 238)
|
||||
#define __NR_remap_file_pages (__NR_SYSCALL_BASE + 239)
|
||||
#define __NR_timer_create (__NR_SYSCALL_BASE + 240)
|
||||
#define __NR_timer_settime (__NR_SYSCALL_BASE + 241)
|
||||
#define __NR_timer_gettime (__NR_SYSCALL_BASE + 242)
|
||||
#define __NR_timer_getoverrun (__NR_SYSCALL_BASE + 243)
|
||||
#define __NR_timer_delete (__NR_SYSCALL_BASE + 244)
|
||||
#define __NR_clock_settime (__NR_SYSCALL_BASE + 245)
|
||||
#define __NR_clock_gettime (__NR_SYSCALL_BASE + 246)
|
||||
#define __NR_clock_getres (__NR_SYSCALL_BASE + 247)
|
||||
#define __NR_clock_nanosleep (__NR_SYSCALL_BASE + 248)
|
||||
#define __NR_swapcontext (__NR_SYSCALL_BASE + 249)
|
||||
#define __NR_tgkill (__NR_SYSCALL_BASE + 250)
|
||||
#define __NR_utimes (__NR_SYSCALL_BASE + 251)
|
||||
#define __NR_statfs64 (__NR_SYSCALL_BASE + 252)
|
||||
#define __NR_fstatfs64 (__NR_SYSCALL_BASE + 253)
|
||||
#define __NR_fadvise64_64 (__NR_SYSCALL_BASE + 254)
|
||||
#define __NR_rtas (__NR_SYSCALL_BASE + 255)
|
||||
#define __NR_sys_debug_setcontext (__NR_SYSCALL_BASE + 256)
|
||||
#define __NR_migrate_pages (__NR_SYSCALL_BASE + 258)
|
||||
#define __NR_mbind (__NR_SYSCALL_BASE + 259)
|
||||
#define __NR_get_mempolicy (__NR_SYSCALL_BASE + 260)
|
||||
#define __NR_set_mempolicy (__NR_SYSCALL_BASE + 261)
|
||||
#define __NR_mq_open (__NR_SYSCALL_BASE + 262)
|
||||
#define __NR_mq_unlink (__NR_SYSCALL_BASE + 263)
|
||||
#define __NR_mq_timedsend (__NR_SYSCALL_BASE + 264)
|
||||
#define __NR_mq_timedreceive (__NR_SYSCALL_BASE + 265)
|
||||
#define __NR_mq_notify (__NR_SYSCALL_BASE + 266)
|
||||
#define __NR_mq_getsetattr (__NR_SYSCALL_BASE + 267)
|
||||
#define __NR_kexec_load (__NR_SYSCALL_BASE + 268)
|
||||
#define __NR_add_key (__NR_SYSCALL_BASE + 269)
|
||||
#define __NR_request_key (__NR_SYSCALL_BASE + 270)
|
||||
#define __NR_keyctl (__NR_SYSCALL_BASE + 271)
|
||||
#define __NR_waitid (__NR_SYSCALL_BASE + 272)
|
||||
#define __NR_ioprio_set (__NR_SYSCALL_BASE + 273)
|
||||
#define __NR_ioprio_get (__NR_SYSCALL_BASE + 274)
|
||||
#define __NR_inotify_init (__NR_SYSCALL_BASE + 275)
|
||||
#define __NR_inotify_add_watch (__NR_SYSCALL_BASE + 276)
|
||||
#define __NR_inotify_rm_watch (__NR_SYSCALL_BASE + 277)
|
||||
#define __NR_spu_run (__NR_SYSCALL_BASE + 278)
|
||||
#define __NR_spu_create (__NR_SYSCALL_BASE + 279)
|
||||
#define __NR_pselect6 (__NR_SYSCALL_BASE + 280)
|
||||
#define __NR_ppoll (__NR_SYSCALL_BASE + 281)
|
||||
#define __NR_unshare (__NR_SYSCALL_BASE + 282)
|
||||
#define __NR_splice (__NR_SYSCALL_BASE + 283)
|
||||
#define __NR_tee (__NR_SYSCALL_BASE + 284)
|
||||
#define __NR_vmsplice (__NR_SYSCALL_BASE + 285)
|
||||
#define __NR_openat (__NR_SYSCALL_BASE + 286)
|
||||
#define __NR_mkdirat (__NR_SYSCALL_BASE + 287)
|
||||
#define __NR_mknodat (__NR_SYSCALL_BASE + 288)
|
||||
#define __NR_fchownat (__NR_SYSCALL_BASE + 289)
|
||||
#define __NR_futimesat (__NR_SYSCALL_BASE + 290)
|
||||
#define __NR_fstatat (__NR_SYSCALL_BASE + 291)
|
||||
#define __NR_unlinkat (__NR_SYSCALL_BASE + 292)
|
||||
#define __NR_renameat (__NR_SYSCALL_BASE + 293)
|
||||
#define __NR_linkat (__NR_SYSCALL_BASE + 294)
|
||||
#define __NR_symlinkat (__NR_SYSCALL_BASE + 295)
|
||||
#define __NR_readlinkat (__NR_SYSCALL_BASE + 296)
|
||||
#define __NR_fchmodat (__NR_SYSCALL_BASE + 297)
|
||||
#define __NR_faccessat (__NR_SYSCALL_BASE + 298)
|
||||
#define __NR_get_robust_list (__NR_SYSCALL_BASE + 299)
|
||||
#define __NR_set_robust_list (__NR_SYSCALL_BASE + 300)
|
||||
#define __NR_move_pages (__NR_SYSCALL_BASE + 301)
|
||||
#define __NR_getcpu (__NR_SYSCALL_BASE + 302)
|
||||
#define __NR_epoll_pwait (__NR_SYSCALL_BASE + 303)
|
||||
#define __NR_utimensat (__NR_SYSCALL_BASE + 304)
|
||||
#define __NR_signalfd (__NR_SYSCALL_BASE + 305)
|
||||
#define __NR_timerfd_create (__NR_SYSCALL_BASE + 306)
|
||||
#define __NR_eventfd (__NR_SYSCALL_BASE + 307)
|
||||
#define __NR_sync_file_range2 (__NR_SYSCALL_BASE + 308)
|
||||
#define __NR_fallocate (__NR_SYSCALL_BASE + 309)
|
||||
#define __NR_subpage_prot (__NR_SYSCALL_BASE + 310)
|
||||
#define __NR_timerfd_settime (__NR_SYSCALL_BASE + 311)
|
||||
#define __NR_timerfd_gettime (__NR_SYSCALL_BASE + 312)
|
||||
#define __NR_signalfd4 (__NR_SYSCALL_BASE + 313)
|
||||
#define __NR_eventfd2 (__NR_SYSCALL_BASE + 314)
|
||||
#define __NR_epoll_create1 (__NR_SYSCALL_BASE + 315)
|
||||
#define __NR_dup3 (__NR_SYSCALL_BASE + 316)
|
||||
#define __NR_pipe2 (__NR_SYSCALL_BASE + 317)
|
||||
#define __NR_inotify_init1 (__NR_SYSCALL_BASE + 318)
|
||||
#define __NR_perf_event_open (__NR_SYSCALL_BASE + 319)
|
||||
#define __NR_preadv (__NR_SYSCALL_BASE + 320)
|
||||
#define __NR_pwritev (__NR_SYSCALL_BASE + 321)
|
||||
#define __NR_rt_tgsigqueueinfo (__NR_SYSCALL_BASE + 322)
|
||||
|
||||
/* Repeated with SYS_ prefix */
|
||||
#define SYS_restart_syscall (__NR_SYSCALL_BASE + 0)
|
||||
#define SYS_exit (__NR_SYSCALL_BASE + 1)
|
||||
#define SYS_fork (__NR_SYSCALL_BASE + 2)
|
||||
#define SYS_read (__NR_SYSCALL_BASE + 3)
|
||||
#define SYS_write (__NR_SYSCALL_BASE + 4)
|
||||
#define SYS_open (__NR_SYSCALL_BASE + 5)
|
||||
#define SYS_close (__NR_SYSCALL_BASE + 6)
|
||||
#define SYS_waitpid (__NR_SYSCALL_BASE + 7)
|
||||
#define SYS_creat (__NR_SYSCALL_BASE + 8)
|
||||
#define SYS_link (__NR_SYSCALL_BASE + 9)
|
||||
#define SYS_unlink (__NR_SYSCALL_BASE + 10)
|
||||
#define SYS_execve (__NR_SYSCALL_BASE + 11)
|
||||
#define SYS_chdir (__NR_SYSCALL_BASE + 12)
|
||||
#define SYS_time (__NR_SYSCALL_BASE + 13)
|
||||
#define SYS_mknod (__NR_SYSCALL_BASE + 14)
|
||||
#define SYS_chmod (__NR_SYSCALL_BASE + 15)
|
||||
#define SYS_lchown (__NR_SYSCALL_BASE + 16)
|
||||
#define SYS_break (__NR_SYSCALL_BASE + 17)
|
||||
#define SYS_oldstat (__NR_SYSCALL_BASE + 18)
|
||||
#define SYS_lseek (__NR_SYSCALL_BASE + 19)
|
||||
#define SYS_getpid (__NR_SYSCALL_BASE + 20)
|
||||
#define SYS_mount (__NR_SYSCALL_BASE + 21)
|
||||
#define SYS_umount (__NR_SYSCALL_BASE + 22)
|
||||
#define SYS_setuid (__NR_SYSCALL_BASE + 23)
|
||||
#define SYS_getuid (__NR_SYSCALL_BASE + 24)
|
||||
#define SYS_stime (__NR_SYSCALL_BASE + 25)
|
||||
#define SYS_ptrace (__NR_SYSCALL_BASE + 26)
|
||||
#define SYS_alarm (__NR_SYSCALL_BASE + 27)
|
||||
#define SYS_oldfstat (__NR_SYSCALL_BASE + 28)
|
||||
#define SYS_pause (__NR_SYSCALL_BASE + 29)
|
||||
#define SYS_utime (__NR_SYSCALL_BASE + 30)
|
||||
#define SYS_stty (__NR_SYSCALL_BASE + 31)
|
||||
#define SYS_gtty (__NR_SYSCALL_BASE + 32)
|
||||
#define SYS_access (__NR_SYSCALL_BASE + 33)
|
||||
#define SYS_nice (__NR_SYSCALL_BASE + 34)
|
||||
#define SYS_ftime (__NR_SYSCALL_BASE + 35)
|
||||
#define SYS_sync (__NR_SYSCALL_BASE + 36)
|
||||
#define SYS_kill (__NR_SYSCALL_BASE + 37)
|
||||
#define SYS_rename (__NR_SYSCALL_BASE + 38)
|
||||
#define SYS_mkdir (__NR_SYSCALL_BASE + 39)
|
||||
#define SYS_rmdir (__NR_SYSCALL_BASE + 40)
|
||||
#define SYS_dup (__NR_SYSCALL_BASE + 41)
|
||||
#define SYS_pipe (__NR_SYSCALL_BASE + 42)
|
||||
#define SYS_times (__NR_SYSCALL_BASE + 43)
|
||||
#define SYS_prof (__NR_SYSCALL_BASE + 44)
|
||||
#define SYS_brk (__NR_SYSCALL_BASE + 45)
|
||||
#define SYS_setgid (__NR_SYSCALL_BASE + 46)
|
||||
#define SYS_getgid (__NR_SYSCALL_BASE + 47)
|
||||
#define SYS_signal (__NR_SYSCALL_BASE + 48)
|
||||
#define SYS_geteuid (__NR_SYSCALL_BASE + 49)
|
||||
#define SYS_getegid (__NR_SYSCALL_BASE + 50)
|
||||
#define SYS_acct (__NR_SYSCALL_BASE + 51)
|
||||
#define SYS_umount2 (__NR_SYSCALL_BASE + 52)
|
||||
#define SYS_lock (__NR_SYSCALL_BASE + 53)
|
||||
#define SYS_ioctl (__NR_SYSCALL_BASE + 54)
|
||||
#define SYS_fcntl (__NR_SYSCALL_BASE + 55)
|
||||
#define SYS_mpx (__NR_SYSCALL_BASE + 56)
|
||||
#define SYS_setpgid (__NR_SYSCALL_BASE + 57)
|
||||
#define SYS_ulimit (__NR_SYSCALL_BASE + 58)
|
||||
#define SYS_oldolduname (__NR_SYSCALL_BASE + 59)
|
||||
#define SYS_umask (__NR_SYSCALL_BASE + 60)
|
||||
#define SYS_chroot (__NR_SYSCALL_BASE + 61)
|
||||
#define SYS_ustat (__NR_SYSCALL_BASE + 62)
|
||||
#define SYS_dup2 (__NR_SYSCALL_BASE + 63)
|
||||
#define SYS_getppid (__NR_SYSCALL_BASE + 64)
|
||||
#define SYS_getpgrp (__NR_SYSCALL_BASE + 65)
|
||||
#define SYS_setsid (__NR_SYSCALL_BASE + 66)
|
||||
#define SYS_sigaction (__NR_SYSCALL_BASE + 67)
|
||||
#define SYS_sgetmask (__NR_SYSCALL_BASE + 68)
|
||||
#define SYS_ssetmask (__NR_SYSCALL_BASE + 69)
|
||||
#define SYS_setreuid (__NR_SYSCALL_BASE + 70)
|
||||
#define SYS_setregid (__NR_SYSCALL_BASE + 71)
|
||||
#define SYS_sigsuspend (__NR_SYSCALL_BASE + 72)
|
||||
#define SYS_sigpending (__NR_SYSCALL_BASE + 73)
|
||||
#define SYS_sethostname (__NR_SYSCALL_BASE + 74)
|
||||
#define SYS_setrlimit (__NR_SYSCALL_BASE + 75)
|
||||
#define SYS_getrlimit (__NR_SYSCALL_BASE + 76)
|
||||
#define SYS_getrusage (__NR_SYSCALL_BASE + 77)
|
||||
#define SYS_gettimeofday (__NR_SYSCALL_BASE + 78)
|
||||
#define SYS_settimeofday (__NR_SYSCALL_BASE + 79)
|
||||
#define SYS_getgroups (__NR_SYSCALL_BASE + 80)
|
||||
#define SYS_setgroups (__NR_SYSCALL_BASE + 81)
|
||||
#define SYS_select (__NR_SYSCALL_BASE + 82)
|
||||
#define SYS_symlink (__NR_SYSCALL_BASE + 83)
|
||||
#define SYS_oldlstat (__NR_SYSCALL_BASE + 84)
|
||||
#define SYS_readlink (__NR_SYSCALL_BASE + 85)
|
||||
#define SYS_uselib (__NR_SYSCALL_BASE + 86)
|
||||
#define SYS_swapon (__NR_SYSCALL_BASE + 87)
|
||||
#define SYS_reboot (__NR_SYSCALL_BASE + 88)
|
||||
#define SYS_readdir (__NR_SYSCALL_BASE + 89)
|
||||
#define SYS_mmap (__NR_SYSCALL_BASE + 90)
|
||||
#define SYS_munmap (__NR_SYSCALL_BASE + 91)
|
||||
#define SYS_truncate (__NR_SYSCALL_BASE + 92)
|
||||
#define SYS_ftruncate (__NR_SYSCALL_BASE + 93)
|
||||
#define SYS_fchmod (__NR_SYSCALL_BASE + 94)
|
||||
#define SYS_fchown (__NR_SYSCALL_BASE + 95)
|
||||
#define SYS_getpriority (__NR_SYSCALL_BASE + 96)
|
||||
#define SYS_setpriority (__NR_SYSCALL_BASE + 97)
|
||||
#define SYS_profil (__NR_SYSCALL_BASE + 98)
|
||||
#define SYS_statfs (__NR_SYSCALL_BASE + 99)
|
||||
#define SYS_fstatfs (__NR_SYSCALL_BASE + 100)
|
||||
#define SYS_ioperm (__NR_SYSCALL_BASE + 101)
|
||||
#define SYS_socketcall (__NR_SYSCALL_BASE + 102)
|
||||
#define SYS_syslog (__NR_SYSCALL_BASE + 103)
|
||||
#define SYS_setitimer (__NR_SYSCALL_BASE + 104)
|
||||
#define SYS_getitimer (__NR_SYSCALL_BASE + 105)
|
||||
#define SYS_stat (__NR_SYSCALL_BASE + 106)
|
||||
#define SYS_lstat (__NR_SYSCALL_BASE + 107)
|
||||
#define SYS_fstat (__NR_SYSCALL_BASE + 108)
|
||||
#define SYS_olduname (__NR_SYSCALL_BASE + 109)
|
||||
#define SYS_iopl (__NR_SYSCALL_BASE + 110)
|
||||
#define SYS_vhangup (__NR_SYSCALL_BASE + 111)
|
||||
#define SYS_idle (__NR_SYSCALL_BASE + 112)
|
||||
#define SYS_vm86 (__NR_SYSCALL_BASE + 113)
|
||||
#define SYS_wait4 (__NR_SYSCALL_BASE + 114)
|
||||
#define SYS_swapoff (__NR_SYSCALL_BASE + 115)
|
||||
#define SYS_sysinfo (__NR_SYSCALL_BASE + 116)
|
||||
#define SYS_ipc (__NR_SYSCALL_BASE + 117)
|
||||
#define SYS_fsync (__NR_SYSCALL_BASE + 118)
|
||||
#define SYS_sigreturn (__NR_SYSCALL_BASE + 119)
|
||||
#define SYS_clone (__NR_SYSCALL_BASE + 120)
|
||||
#define SYS_setdomainname (__NR_SYSCALL_BASE + 121)
|
||||
#define SYS_uname (__NR_SYSCALL_BASE + 122)
|
||||
#define SYS_modify_ldt (__NR_SYSCALL_BASE + 123)
|
||||
#define SYS_adjtimex (__NR_SYSCALL_BASE + 124)
|
||||
#define SYS_mprotect (__NR_SYSCALL_BASE + 125)
|
||||
#define SYS_sigprocmask (__NR_SYSCALL_BASE + 126)
|
||||
#define SYS_create_module (__NR_SYSCALL_BASE + 127)
|
||||
#define SYS_init_module (__NR_SYSCALL_BASE + 128)
|
||||
#define SYS_delete_module (__NR_SYSCALL_BASE + 129)
|
||||
#define SYS_get_kernel_syms (__NR_SYSCALL_BASE + 130)
|
||||
#define SYS_quotactl (__NR_SYSCALL_BASE + 131)
|
||||
#define SYS_getpgid (__NR_SYSCALL_BASE + 132)
|
||||
#define SYS_fchdir (__NR_SYSCALL_BASE + 133)
|
||||
#define SYS_bdflush (__NR_SYSCALL_BASE + 134)
|
||||
#define SYS_sysfs (__NR_SYSCALL_BASE + 135)
|
||||
#define SYS_personality (__NR_SYSCALL_BASE + 136)
|
||||
#define SYS_afs_syscall (__NR_SYSCALL_BASE + 137)
|
||||
#define SYS_setfsuid (__NR_SYSCALL_BASE + 138)
|
||||
#define SYS_setfsgid (__NR_SYSCALL_BASE + 139)
|
||||
#define SYS__llseek (__NR_SYSCALL_BASE + 140)
|
||||
#define SYS_getdents (__NR_SYSCALL_BASE + 141)
|
||||
#define SYS__newselect (__NR_SYSCALL_BASE + 142)
|
||||
#define SYS_flock (__NR_SYSCALL_BASE + 143)
|
||||
#define SYS_msync (__NR_SYSCALL_BASE + 144)
|
||||
#define SYS_readv (__NR_SYSCALL_BASE + 145)
|
||||
#define SYS_writev (__NR_SYSCALL_BASE + 146)
|
||||
#define SYS_getsid (__NR_SYSCALL_BASE + 147)
|
||||
#define SYS_fdatasync (__NR_SYSCALL_BASE + 148)
|
||||
#define SYS__sysctl (__NR_SYSCALL_BASE + 149)
|
||||
#define SYS_mlock (__NR_SYSCALL_BASE + 150)
|
||||
#define SYS_munlock (__NR_SYSCALL_BASE + 151)
|
||||
#define SYS_mlockall (__NR_SYSCALL_BASE + 152)
|
||||
#define SYS_munlockall (__NR_SYSCALL_BASE + 153)
|
||||
#define SYS_sched_setparam (__NR_SYSCALL_BASE + 154)
|
||||
#define SYS_sched_getparam (__NR_SYSCALL_BASE + 155)
|
||||
#define SYS_sched_setscheduler (__NR_SYSCALL_BASE + 156)
|
||||
#define SYS_sched_getscheduler (__NR_SYSCALL_BASE + 157)
|
||||
#define SYS_sched_yield (__NR_SYSCALL_BASE + 158)
|
||||
#define SYS_sched_get_priority_max (__NR_SYSCALL_BASE + 159)
|
||||
#define SYS_sched_get_priority_min (__NR_SYSCALL_BASE + 160)
|
||||
#define SYS_sched_rr_get_interval (__NR_SYSCALL_BASE + 161)
|
||||
#define SYS_nanosleep (__NR_SYSCALL_BASE + 162)
|
||||
#define SYS_mremap (__NR_SYSCALL_BASE + 163)
|
||||
#define SYS_setresuid (__NR_SYSCALL_BASE + 164)
|
||||
#define SYS_getresuid (__NR_SYSCALL_BASE + 165)
|
||||
#define SYS_query_module (__NR_SYSCALL_BASE + 166)
|
||||
#define SYS_poll (__NR_SYSCALL_BASE + 167)
|
||||
#define SYS_nfsservctl (__NR_SYSCALL_BASE + 168)
|
||||
#define SYS_setresgid (__NR_SYSCALL_BASE + 169)
|
||||
#define SYS_getresgid (__NR_SYSCALL_BASE + 170)
|
||||
#define SYS_prctl (__NR_SYSCALL_BASE + 171)
|
||||
#define SYS_rt_sigreturn (__NR_SYSCALL_BASE + 172)
|
||||
#define SYS_rt_sigaction (__NR_SYSCALL_BASE + 173)
|
||||
#define SYS_rt_sigprocmask (__NR_SYSCALL_BASE + 174)
|
||||
#define SYS_rt_sigpending (__NR_SYSCALL_BASE + 175)
|
||||
#define SYS_rt_sigtimedwait (__NR_SYSCALL_BASE + 176)
|
||||
#define SYS_rt_sigqueueinfo (__NR_SYSCALL_BASE + 177)
|
||||
#define SYS_rt_sigsuspend (__NR_SYSCALL_BASE + 178)
|
||||
#define SYS_pread (__NR_SYSCALL_BASE + 179)
|
||||
#define SYS_pwrite (__NR_SYSCALL_BASE + 180)
|
||||
#define SYS_chown (__NR_SYSCALL_BASE + 181)
|
||||
#define SYS_getcwd (__NR_SYSCALL_BASE + 182)
|
||||
#define SYS_capget (__NR_SYSCALL_BASE + 183)
|
||||
#define SYS_capset (__NR_SYSCALL_BASE + 184)
|
||||
#define SYS_sigaltstack (__NR_SYSCALL_BASE + 185)
|
||||
#define SYS_sendfile (__NR_SYSCALL_BASE + 186)
|
||||
#define SYS_getpmsg (__NR_SYSCALL_BASE + 187)
|
||||
#define SYS_putpmsg (__NR_SYSCALL_BASE + 188)
|
||||
#define SYS_vfork (__NR_SYSCALL_BASE + 189)
|
||||
#define SYS_ugetrlimit (__NR_SYSCALL_BASE + 190)
|
||||
#define SYS_readahead (__NR_SYSCALL_BASE + 191)
|
||||
#define SYS_mmap2 (__NR_SYSCALL_BASE + 192)
|
||||
#define SYS_truncate64 (__NR_SYSCALL_BASE + 193)
|
||||
#define SYS_ftruncate64 (__NR_SYSCALL_BASE + 194)
|
||||
#define SYS_stat64 (__NR_SYSCALL_BASE + 195)
|
||||
#define SYS_lstat64 (__NR_SYSCALL_BASE + 196)
|
||||
#define SYS_fstat64 (__NR_SYSCALL_BASE + 197)
|
||||
#define SYS_pciconfig_read (__NR_SYSCALL_BASE + 198)
|
||||
#define SYS_pciconfig_write (__NR_SYSCALL_BASE + 199)
|
||||
#define SYS_pciconfig_iobase (__NR_SYSCALL_BASE + 200)
|
||||
#define SYS_multiplexer (__NR_SYSCALL_BASE + 201)
|
||||
#define SYS_getdents64 (__NR_SYSCALL_BASE + 202)
|
||||
#define SYS_pivot_root (__NR_SYSCALL_BASE + 203)
|
||||
#define SYS_fcntl64 (__NR_SYSCALL_BASE + 204)
|
||||
#define SYS_madvise (__NR_SYSCALL_BASE + 205)
|
||||
#define SYS_mincore (__NR_SYSCALL_BASE + 206)
|
||||
#define SYS_gettid (__NR_SYSCALL_BASE + 207)
|
||||
#define SYS_tkill (__NR_SYSCALL_BASE + 208)
|
||||
#define SYS_setxattr (__NR_SYSCALL_BASE + 209)
|
||||
#define SYS_lsetxattr (__NR_SYSCALL_BASE + 210)
|
||||
#define SYS_fsetxattr (__NR_SYSCALL_BASE + 211)
|
||||
#define SYS_getxattr (__NR_SYSCALL_BASE + 212)
|
||||
#define SYS_lgetxattr (__NR_SYSCALL_BASE + 213)
|
||||
#define SYS_fgetxattr (__NR_SYSCALL_BASE + 214)
|
||||
#define SYS_listxattr (__NR_SYSCALL_BASE + 215)
|
||||
#define SYS_llistxattr (__NR_SYSCALL_BASE + 216)
|
||||
#define SYS_flistxattr (__NR_SYSCALL_BASE + 217)
|
||||
#define SYS_removexattr (__NR_SYSCALL_BASE + 218)
|
||||
#define SYS_lremovexattr (__NR_SYSCALL_BASE + 219)
|
||||
#define SYS_fremovexattr (__NR_SYSCALL_BASE + 220)
|
||||
#define SYS_futex (__NR_SYSCALL_BASE + 221)
|
||||
#define SYS_sched_setaffinity (__NR_SYSCALL_BASE + 222)
|
||||
#define SYS_sched_getaffinity (__NR_SYSCALL_BASE + 223)
|
||||
#define SYS_tuxcall (__NR_SYSCALL_BASE + 225)
|
||||
#define SYS_sendfile64 (__NR_SYSCALL_BASE + 226)
|
||||
#define SYS_io_setup (__NR_SYSCALL_BASE + 227)
|
||||
#define SYS_io_destroy (__NR_SYSCALL_BASE + 228)
|
||||
#define SYS_io_getevents (__NR_SYSCALL_BASE + 229)
|
||||
#define SYS_io_submit (__NR_SYSCALL_BASE + 230)
|
||||
#define SYS_io_cancel (__NR_SYSCALL_BASE + 231)
|
||||
#define SYS_set_tid_address (__NR_SYSCALL_BASE + 232)
|
||||
#define SYS_fadvise (__NR_SYSCALL_BASE + 233)
|
||||
#define SYS_exit_group (__NR_SYSCALL_BASE + 234)
|
||||
#define SYS_lookup_dcookie (__NR_SYSCALL_BASE + 235)
|
||||
#define SYS_epoll_create (__NR_SYSCALL_BASE + 236)
|
||||
#define SYS_epoll_ctl (__NR_SYSCALL_BASE + 237)
|
||||
#define SYS_epoll_wait (__NR_SYSCALL_BASE + 238)
|
||||
#define SYS_remap_file_pages (__NR_SYSCALL_BASE + 239)
|
||||
#define SYS_timer_create (__NR_SYSCALL_BASE + 240)
|
||||
#define SYS_timer_settime (__NR_SYSCALL_BASE + 241)
|
||||
#define SYS_timer_gettime (__NR_SYSCALL_BASE + 242)
|
||||
#define SYS_timer_getoverrun (__NR_SYSCALL_BASE + 243)
|
||||
#define SYS_timer_delete (__NR_SYSCALL_BASE + 244)
|
||||
#define SYS_clock_settime (__NR_SYSCALL_BASE + 245)
|
||||
#define SYS_clock_gettime (__NR_SYSCALL_BASE + 246)
|
||||
#define SYS_clock_getres (__NR_SYSCALL_BASE + 247)
|
||||
#define SYS_clock_nanosleep (__NR_SYSCALL_BASE + 248)
|
||||
#define SYS_swapcontext (__NR_SYSCALL_BASE + 249)
|
||||
#define SYS_tgkill (__NR_SYSCALL_BASE + 250)
|
||||
#define SYS_utimes (__NR_SYSCALL_BASE + 251)
|
||||
#define SYS_statfs64 (__NR_SYSCALL_BASE + 252)
|
||||
#define SYS_fstatfs64 (__NR_SYSCALL_BASE + 253)
|
||||
#define SYS_fadvise64_64 (__NR_SYSCALL_BASE + 254)
|
||||
#define SYS_rtas (__NR_SYSCALL_BASE + 255)
|
||||
#define SYS_sys_debug_setcontext (__NR_SYSCALL_BASE + 256)
|
||||
#define SYS_migrate_pages (__NR_SYSCALL_BASE + 258)
|
||||
#define SYS_mbind (__NR_SYSCALL_BASE + 259)
|
||||
#define SYS_get_mempolicy (__NR_SYSCALL_BASE + 260)
|
||||
#define SYS_set_mempolicy (__NR_SYSCALL_BASE + 261)
|
||||
#define SYS_mq_open (__NR_SYSCALL_BASE + 262)
|
||||
#define SYS_mq_unlink (__NR_SYSCALL_BASE + 263)
|
||||
#define SYS_mq_timedsend (__NR_SYSCALL_BASE + 264)
|
||||
#define SYS_mq_timedreceive (__NR_SYSCALL_BASE + 265)
|
||||
#define SYS_mq_notify (__NR_SYSCALL_BASE + 266)
|
||||
#define SYS_mq_getsetattr (__NR_SYSCALL_BASE + 267)
|
||||
#define SYS_kexec_load (__NR_SYSCALL_BASE + 268)
|
||||
#define SYS_add_key (__NR_SYSCALL_BASE + 269)
|
||||
#define SYS_request_key (__NR_SYSCALL_BASE + 270)
|
||||
#define SYS_keyctl (__NR_SYSCALL_BASE + 271)
|
||||
#define SYS_waitid (__NR_SYSCALL_BASE + 272)
|
||||
#define SYS_ioprio_set (__NR_SYSCALL_BASE + 273)
|
||||
#define SYS_ioprio_get (__NR_SYSCALL_BASE + 274)
|
||||
#define SYS_inotify_init (__NR_SYSCALL_BASE + 275)
|
||||
#define SYS_inotify_add_watch (__NR_SYSCALL_BASE + 276)
|
||||
#define SYS_inotify_rm_watch (__NR_SYSCALL_BASE + 277)
|
||||
#define SYS_spu_run (__NR_SYSCALL_BASE + 278)
|
||||
#define SYS_spu_create (__NR_SYSCALL_BASE + 279)
|
||||
#define SYS_pselect6 (__NR_SYSCALL_BASE + 280)
|
||||
#define SYS_ppoll (__NR_SYSCALL_BASE + 281)
|
||||
#define SYS_unshare (__NR_SYSCALL_BASE + 282)
|
||||
#define SYS_splice (__NR_SYSCALL_BASE + 283)
|
||||
#define SYS_tee (__NR_SYSCALL_BASE + 284)
|
||||
#define SYS_vmsplice (__NR_SYSCALL_BASE + 285)
|
||||
#define SYS_openat (__NR_SYSCALL_BASE + 286)
|
||||
#define SYS_mkdirat (__NR_SYSCALL_BASE + 287)
|
||||
#define SYS_mknodat (__NR_SYSCALL_BASE + 288)
|
||||
#define SYS_fchownat (__NR_SYSCALL_BASE + 289)
|
||||
#define SYS_futimesat (__NR_SYSCALL_BASE + 290)
|
||||
#define SYS_fstatat (__NR_SYSCALL_BASE + 291)
|
||||
#define SYS_unlinkat (__NR_SYSCALL_BASE + 292)
|
||||
#define SYS_renameat (__NR_SYSCALL_BASE + 293)
|
||||
#define SYS_linkat (__NR_SYSCALL_BASE + 294)
|
||||
#define SYS_symlinkat (__NR_SYSCALL_BASE + 295)
|
||||
#define SYS_readlinkat (__NR_SYSCALL_BASE + 296)
|
||||
#define SYS_fchmodat (__NR_SYSCALL_BASE + 297)
|
||||
#define SYS_faccessat (__NR_SYSCALL_BASE + 298)
|
||||
#define SYS_get_robust_list (__NR_SYSCALL_BASE + 299)
|
||||
#define SYS_set_robust_list (__NR_SYSCALL_BASE + 300)
|
||||
#define SYS_move_pages (__NR_SYSCALL_BASE + 301)
|
||||
#define SYS_getcpu (__NR_SYSCALL_BASE + 302)
|
||||
#define SYS_epoll_pwait (__NR_SYSCALL_BASE + 303)
|
||||
#define SYS_utimensat (__NR_SYSCALL_BASE + 304)
|
||||
#define SYS_signalfd (__NR_SYSCALL_BASE + 305)
|
||||
#define SYS_timerfd_create (__NR_SYSCALL_BASE + 306)
|
||||
#define SYS_eventfd (__NR_SYSCALL_BASE + 307)
|
||||
#define SYS_sync_file_range2 (__NR_SYSCALL_BASE + 308)
|
||||
#define SYS_fallocate (__NR_SYSCALL_BASE + 309)
|
||||
#define SYS_subpage_prot (__NR_SYSCALL_BASE + 310)
|
||||
#define SYS_timerfd_settime (__NR_SYSCALL_BASE + 311)
|
||||
#define SYS_timerfd_gettime (__NR_SYSCALL_BASE + 312)
|
||||
#define SYS_signalfd4 (__NR_SYSCALL_BASE + 313)
|
||||
#define SYS_eventfd2 (__NR_SYSCALL_BASE + 314)
|
||||
#define SYS_epoll_create1 (__NR_SYSCALL_BASE + 315)
|
||||
#define SYS_dup3 (__NR_SYSCALL_BASE + 316)
|
||||
#define SYS_pipe2 (__NR_SYSCALL_BASE + 317)
|
||||
#define SYS_inotify_init1 (__NR_SYSCALL_BASE + 318)
|
||||
#define SYS_perf_event_open (__NR_SYSCALL_BASE + 319)
|
||||
#define SYS_preadv (__NR_SYSCALL_BASE + 320)
|
||||
#define SYS_pwritev (__NR_SYSCALL_BASE + 321)
|
||||
#define SYS_rt_tgsigqueueinfo (__NR_SYSCALL_BASE + 322)
|
|
@ -1,6 +0,0 @@
|
|||
typedef pthread_t (*__pthread_self_func_t)(void) __attribute__((const));
|
||||
|
||||
#define __pthread_self ((__pthread_self_func_t)0xffff0fe0)
|
||||
|
||||
#define CANCEL_REG_SP 16
|
||||
#define CANCEL_REG_IP 18
|
|
@ -1,26 +0,0 @@
|
|||
#include <string.h>
|
||||
#include <elf.h>
|
||||
|
||||
#define ETC_LDSO_PATH "/etc/ld-musl-arm.path"
|
||||
|
||||
#define IS_COPY(x) ((x)==R_ARM_COPY)
|
||||
#define IS_PLT(x) ((x)==R_ARM_JUMP_SLOT)
|
||||
|
||||
static inline void do_single_reloc(size_t *reloc_addr, int type, size_t sym_val, size_t sym_size, unsigned char *base_addr, size_t addend)
|
||||
{
|
||||
switch(type) {
|
||||
case R_ARM_ABS32:
|
||||
*reloc_addr += sym_val;
|
||||
break;
|
||||
case R_ARM_GLOB_DAT:
|
||||
case R_ARM_JUMP_SLOT:
|
||||
*reloc_addr = sym_val;
|
||||
break;
|
||||
case R_ARM_RELATIVE:
|
||||
*reloc_addr += (size_t)base_addr;
|
||||
break;
|
||||
case R_ARM_COPY:
|
||||
memcpy(reloc_addr, (void *)sym_val, sym_size);
|
||||
break;
|
||||
}
|
||||
}
|
|
@ -203,6 +203,7 @@ i?86*) ARCH=i386 ;;
|
|||
x86_64*) ARCH=x86_64 ;;
|
||||
mips-*|mipsel-*) ARCH=mips ;;
|
||||
microblaze-*) ARCH=microblaze ;;
|
||||
powerpc-*) ARCH=powerpc ;;
|
||||
unknown) fail "$0: unable to detect target arch; try $0 --target=..." ;;
|
||||
*) fail "$0: unknown or unsupported target \"$target\"" ;;
|
||||
esac
|
||||
|
|
|
@ -0,0 +1,26 @@
|
|||
.weak _init
|
||||
.weak _fini
|
||||
.global _start
|
||||
.type _start, %function
|
||||
_start:
|
||||
mr 9, 1 # Save the original stack pointer.
|
||||
clrrwi 1, 1, 4 # Align the stack to 16 bytes.
|
||||
lis 13, _SDA_BASE_@ha # r13 points to the small data area.
|
||||
addi 13, 13, _SDA_BASE_@l
|
||||
li 0, 0 # Zero the frame pointer.
|
||||
stwu 1, -16(1) # The initial stack frame.
|
||||
mtlr 0 # Clear the link register.
|
||||
stw 0, 0(1) # And save it.
|
||||
lis 3, main@ha # Get main() ...
|
||||
addi 3, 3, main@l
|
||||
lwz 4, 0(9) # and argc...
|
||||
addi 5, 9, 4 # and argv ...
|
||||
lis 6, _init@ha # and _init() ...
|
||||
addi 6, 6, _init@l
|
||||
lis 7, _fini@ha # and _fini() ...
|
||||
addi 7, 7, _fini@l
|
||||
li 8, 0 # ldso_fini == NULL
|
||||
bl __libc_start_main # Let's go!
|
||||
b . # Never gets here.
|
||||
.end _start
|
||||
.size _start, .-_start
|
|
@ -1,27 +0,0 @@
|
|||
#include <bits/asm.h>
|
||||
.weak _init
|
||||
.weak _fini
|
||||
.global _start
|
||||
.type _start, %function
|
||||
_start:
|
||||
mr r9, r1 // Save the original stack pointer.
|
||||
clrrwi r1, r1, 4 // Align the stack to 16 bytes.
|
||||
lis r13, _SDA_BASE_@ha // r13 points to the small data area.
|
||||
addi r13, r13, _SDA_BASE_@l //
|
||||
li r0, 0 // Zero the frame pointer.
|
||||
stwu r1, -16(r1) // The initial stack frame.
|
||||
mtlr r0 // Clear the link register.
|
||||
stw r0, 0(r1) // And save it.
|
||||
lis r3, main@ha // Get main() ...
|
||||
addi r3, r3, main@l
|
||||
lwz r4, 0(r9) // and argc...
|
||||
addi r5, r9, 4 // and argv ...
|
||||
lis r6, _init@ha // and _init() ...
|
||||
addi r6, r6, _init@l
|
||||
lis r7, _fini@ha // and _fini() ...
|
||||
addi r7, r7, _fini@l
|
||||
li r8, 0 // ldso_fini == NULL
|
||||
bl __libc_start_main // Let's go!
|
||||
b . // Never gets here.
|
||||
.end _start
|
||||
.size _start, .-_start
|
|
@ -0,0 +1,18 @@
|
|||
.global __syscall
|
||||
.type __syscall,@function
|
||||
__syscall:
|
||||
mr 0, 3 # Save the system call number
|
||||
mr 3, 4 # Shift the arguments: arg1
|
||||
mr 4, 5 # arg2
|
||||
mr 5, 6 # arg3
|
||||
mr 6, 7 # arg4
|
||||
mr 7, 8 # arg5
|
||||
mr 8, 9 # arg6
|
||||
sc
|
||||
bnslr+ # return if not summary overflow
|
||||
#else error:
|
||||
# return negated value.
|
||||
neg 3, 3
|
||||
blr
|
||||
.end __syscall
|
||||
.size __syscall, .-__syscall
|
|
@ -1,24 +0,0 @@
|
|||
#include <bits/asm.h>
|
||||
.global __syscall
|
||||
.type __syscall,@function
|
||||
__syscall:
|
||||
mflr r0
|
||||
stw r0, -4(r1) // Save the return address.
|
||||
mr r0, r3 // Save the system call number
|
||||
mr r3, r4 // Shift the arguments: arg1
|
||||
mr r4, r5 // arg2
|
||||
mr r5, r6 // arg3
|
||||
mr r6, r7 // arg4
|
||||
mr r7, r8 // arg5
|
||||
mr r8, r9 // arg6
|
||||
sc
|
||||
mfcr r0 // Check for an error
|
||||
rlwinm r4, r0, r0, 3, 3 // by checking for bit 28.
|
||||
cmplwi r0, r4, 0 // It is an error if non-zero.
|
||||
beq r0, 1f // Jump if not an error.
|
||||
neg r3, r3 // Negate the error number.
|
||||
1: lwz r0, -4(r1) // Restore the return address.
|
||||
mtlr r0
|
||||
blr
|
||||
.end __syscall
|
||||
.size __syscall, .-__syscall
|
|
@ -1,9 +1,8 @@
|
|||
#include <bits/asm.h>
|
||||
.text
|
||||
.global dlsym
|
||||
.type dlsym,@function
|
||||
dlsym:
|
||||
mflr r5 // The return address is arg3.
|
||||
mflr 5 # The return address is arg3.
|
||||
b __dlsym
|
||||
.end dlsym
|
||||
.size dlsym, .-dlsym
|
|
@ -0,0 +1,23 @@
|
|||
# FIXME : does not work, the small data array needs to be relocated.
|
||||
# see elfspec_ppc.pdf, page 76-84
|
||||
.global _start
|
||||
.type _start,@function
|
||||
_start:
|
||||
mr 9, 1 # Save the original stack pointer.
|
||||
clrrwi 1, 1, 4 # Align the stack to 16 bytes.
|
||||
lis 13, _SDA_BASE_@ha # r13 points to the small data area.
|
||||
addi 13, 13, _SDA_BASE_@l
|
||||
li 0, 0 # Zero the frame pointer.
|
||||
lwz 3, 0(9) # and argc...
|
||||
addi 4, 9, 4 # and argv ...
|
||||
mtlr 0 # Clear the link register.
|
||||
# Go to the musl dynamic linker entry point.
|
||||
bl __dynlink
|
||||
cmpi 4, 0, 3, 1 # Check for a 1.
|
||||
bne 4, . # Stay here
|
||||
mtlr 3 # Set the link address...
|
||||
li 3, 0
|
||||
blr # and go.
|
||||
.end _start
|
||||
.size _start, .-_start
|
||||
|
|
@ -1,22 +0,0 @@
|
|||
#include <bits/asm.h>
|
||||
.global _start
|
||||
.type _start,@function
|
||||
_start:
|
||||
mr r9, r1 // Save the original stack pointer.
|
||||
clrrwi r1, r1, 4 // Align the stack to 16 bytes.
|
||||
lis r13, _SDA_BASE_@ha // r13 points to the small data area.
|
||||
addi r13, r13, _SDA_BASE_@l //
|
||||
li r0, 0 // Zero the frame pointer.
|
||||
lwz r3, 0(r9) // and argc...
|
||||
addi r4, r9, 4 // and argv ...
|
||||
mtlr r0 // Clear the link register.
|
||||
// Go to the musl dynamic linker entry point.
|
||||
bl __dynlink
|
||||
cmpi r4, 0, r3, 1 // Check for a 1.
|
||||
bne r4, . // Stay here
|
||||
mtlr r3 // Set the link address...
|
||||
li r3, 0
|
||||
blr // and go.
|
||||
.end _start
|
||||
.size _start, .-_start
|
||||
|
|
@ -0,0 +1,47 @@
|
|||
.global _longjmp
|
||||
.global longjmp
|
||||
.type _longjmp,@function
|
||||
.type longjmp,@function
|
||||
_longjmp:
|
||||
longjmp:
|
||||
# void longjmp(jmp_buf env, int val);
|
||||
# put val into return register and restore the env saved in setjmp
|
||||
# if val(r4) is 0, put 1 there.
|
||||
# 0) move old return address into r0
|
||||
lwz 0, 0(3)
|
||||
# 1) put it into link reg
|
||||
mtlr 0
|
||||
#2 ) restore stack ptr
|
||||
lwz 1, 4(3)
|
||||
#3) restore control reg
|
||||
lwz 0, 8(3)
|
||||
mtcr 0
|
||||
#4) restore r14-r31
|
||||
lwz 14, 12(3)
|
||||
lwz 15, 16(3)
|
||||
lwz 16, 20(3)
|
||||
lwz 17, 24(3)
|
||||
lwz 18, 28(3)
|
||||
lwz 19, 32(3)
|
||||
lwz 20, 36(3)
|
||||
lwz 21, 40(3)
|
||||
lwz 22, 44(3)
|
||||
lwz 23, 48(3)
|
||||
lwz 24, 52(3)
|
||||
lwz 25, 56(3)
|
||||
lwz 26, 60(3)
|
||||
lwz 27, 64(3)
|
||||
lwz 28, 68(3)
|
||||
lwz 29, 72(3)
|
||||
lwz 30, 76(3)
|
||||
lwz 31, 80(3)
|
||||
#5) put val into return reg r3
|
||||
mr 3, 4
|
||||
|
||||
#6) check if return value is 0, make it 1 in that case
|
||||
cmpwi cr7, 4, 0
|
||||
bne cr7, 1f
|
||||
li 3, 1
|
||||
1:
|
||||
blr
|
||||
|
|
@ -0,0 +1,40 @@
|
|||
.global __setjmp
|
||||
.global _setjmp
|
||||
.global setjmp
|
||||
.type __setjmp,@function
|
||||
.type _setjmp,@function
|
||||
.type setjmp,@function
|
||||
__setjmp:
|
||||
_setjmp:
|
||||
setjmp:
|
||||
# 0) store IP int 0, then into the jmpbuf pointed to by r3 (first arg)
|
||||
mflr 0
|
||||
stw 0, 0(3)
|
||||
# 1) store reg1 (SP)
|
||||
stw 1, 4(3)
|
||||
# 2) store cr
|
||||
mfcr 0
|
||||
stw 0, 8(3)
|
||||
# 3) store r14-31
|
||||
stw 14, 12(3)
|
||||
stw 15, 16(3)
|
||||
stw 16, 20(3)
|
||||
stw 17, 24(3)
|
||||
stw 18, 28(3)
|
||||
stw 19, 32(3)
|
||||
stw 20, 36(3)
|
||||
stw 21, 40(3)
|
||||
stw 22, 44(3)
|
||||
stw 23, 48(3)
|
||||
stw 24, 52(3)
|
||||
stw 25, 56(3)
|
||||
stw 26, 60(3)
|
||||
stw 27, 64(3)
|
||||
stw 28, 68(3)
|
||||
stw 29, 72(3)
|
||||
stw 30, 76(3)
|
||||
stw 31, 80(3)
|
||||
# 4) set return value to 0
|
||||
li 3, 0
|
||||
# 5) return
|
||||
blr
|
|
@ -1,17 +0,0 @@
|
|||
#include <bits/asm.h>
|
||||
.global _longjmp
|
||||
.global longjmp
|
||||
.type _longjmp,@function
|
||||
.type longjmp,@function
|
||||
_longjmp:
|
||||
longjmp:
|
||||
cmpi 7, 0, r3, 0
|
||||
bne 7, 1f
|
||||
addi r3, r3, 1
|
||||
1: lmw r8, 4(r3) // load r8-r31
|
||||
mr r6, r4
|
||||
mtlr r11
|
||||
mtcr r12
|
||||
mr r2, r9
|
||||
mr r1, r10
|
||||
blr
|
|
@ -1,18 +0,0 @@
|
|||
#include <bits/asm.h>
|
||||
.global __setjmp
|
||||
.global _setjmp
|
||||
.global setjmp
|
||||
.type __setjmp,@function
|
||||
.type _setjmp,@function
|
||||
.type setjmp,@function
|
||||
__setjmp:
|
||||
_setjmp:
|
||||
setjmp:
|
||||
mflr r11
|
||||
mfcr r12
|
||||
mr r10, r1
|
||||
mr r9, r2
|
||||
stmw r8, 0(r3) // save r8-r31
|
||||
li r3,0
|
||||
blr
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
.global __restore
|
||||
.type __restore,%function
|
||||
__restore:
|
||||
li 0, 119 #__NR_sigreturn
|
||||
sc
|
||||
|
||||
.global __restore_rt
|
||||
.type __restore_rt,%function
|
||||
__restore_rt:
|
||||
li 0, 172 # __NR_rt_sigreturn
|
||||
sc
|
|
@ -0,0 +1,34 @@
|
|||
.global sigsetjmp
|
||||
.type sigsetjmp,%function
|
||||
sigsetjmp:
|
||||
#int sigsetjmp(sigjmp_buf buf, int save)
|
||||
# r3 r4
|
||||
#0) store save into buf->__fl
|
||||
stw 4, 256(3)
|
||||
#1) compare save with 0
|
||||
cmpwi cr7, 4, 0
|
||||
#2) if its 0, goto setjmp code
|
||||
beq- cr7, 1f
|
||||
#3) else: we must call pthread_sigmask(SIG_SETMASK, 0, (sigset_t *)buf->__ss);
|
||||
# thus store r3 on the stack, to restore it later
|
||||
stw 3, -4(1)
|
||||
# store old link reg
|
||||
mflr 0
|
||||
stw 0, -8(1)
|
||||
# increase stack frame by 16
|
||||
subi 1, 1, 16
|
||||
# put pointer to ss buf into r5 (3rd arg)
|
||||
addi 5, 3, 260
|
||||
# put "2" i.e. SIG_SETMASK in r3
|
||||
li 3, 2
|
||||
li 4, 0
|
||||
bl pthread_sigmask
|
||||
#restore sp
|
||||
addi 1, 1, 16
|
||||
#restore r3
|
||||
lwz 3, -4(1)
|
||||
#restore link reg
|
||||
lwz 0, -8(1)
|
||||
mtlr 0
|
||||
1:
|
||||
b setjmp
|
|
@ -1,13 +0,0 @@
|
|||
#include <bits/asm.h>
|
||||
#include <bits/syscall.h>
|
||||
.global __restore
|
||||
.type __restore,@function
|
||||
__restore:
|
||||
li r0, __NR_sigreturn
|
||||
sc
|
||||
|
||||
.global __restore_rt
|
||||
.type __restore_rt,@function
|
||||
__restore_rt:
|
||||
li r0, __NR_rt_sigreturn
|
||||
sc
|
|
@ -1,12 +0,0 @@
|
|||
#include <bits/asm.h>
|
||||
.global sigsetjmp
|
||||
.type sigsetjmp,@function
|
||||
sigsetjmp:
|
||||
lwz r4, 64*4-2*4(r3) // Second last long.
|
||||
cmpi r4, 0, r4, 0
|
||||
bne r4, 1f
|
||||
addi r5, r3, 64*4-1*4 // Address of last long.
|
||||
li r4, 0
|
||||
li r3, 2
|
||||
bl sigprocmask
|
||||
1: b setjmp
|
|
@ -0,0 +1,11 @@
|
|||
.text
|
||||
.global __set_thread_area
|
||||
.type __set_thread_area, %function
|
||||
__set_thread_area:
|
||||
# mov pointer in reg3 into r2
|
||||
mr 2, 3
|
||||
# put 0 into return reg
|
||||
li 3, 0
|
||||
# return
|
||||
blr
|
||||
|
|
@ -1,11 +1,9 @@
|
|||
#include <bits/asm.h>
|
||||
#include <bits/syscall.h>
|
||||
.text
|
||||
.global __unmapself
|
||||
.type __unmapself,%function
|
||||
__unmapself:
|
||||
li r0, __NR_munmap
|
||||
li 0, 91 # __NR_munmap
|
||||
sc
|
||||
li r0, __NR_exit
|
||||
li 0, 1 #__NR_exit
|
||||
sc
|
||||
blr
|
|
@ -0,0 +1,83 @@
|
|||
.text
|
||||
.global __clone
|
||||
.type __clone, %function
|
||||
__clone:
|
||||
# int clone(fn, stack, flags, arg, ptid, tls, ctid)
|
||||
# a b c d e f g
|
||||
# 3 4 5 6 7 8 9
|
||||
# pseudo C code:
|
||||
# tid = syscall(SYS_clone,c,b,e,f,g);
|
||||
# if (!tid) syscall(SYS_exit, a(d));
|
||||
# return tid;
|
||||
|
||||
# SYS_clone = 120
|
||||
# SYS_exit = 1
|
||||
|
||||
# in order that the child can find the start func and its arg, we need to store it into
|
||||
# non-volative regs. to do so, we have to store those 2 regs into our stackframe, so
|
||||
# we can restore them later.
|
||||
stw 30, -4(1)
|
||||
stw 31, -8(1)
|
||||
subi 1, 1, 16
|
||||
|
||||
# save r3 (func) into r30, and r6(arg) into r31
|
||||
mr 30, 3
|
||||
mr 31, 6
|
||||
|
||||
#move c into first arg
|
||||
mr 3, 5
|
||||
#mr 4, 4
|
||||
mr 5, 7
|
||||
mr 6, 8
|
||||
mr 7, 9
|
||||
|
||||
# move syscall number into r0
|
||||
li 0, 120
|
||||
|
||||
sc
|
||||
|
||||
# check for syscall error
|
||||
#this code should be more efficient, but it borks
|
||||
#bns+ 1f # jump to label 1 if no summary overflow.
|
||||
#else
|
||||
#neg 3, 3 #negate the result (errno)
|
||||
#b 2f # jump to epilogue
|
||||
|
||||
# this error check code at least does not spoil the clone call.
|
||||
#mfcr 0 # Check for an error
|
||||
#rlwinm 4, 0, 0, 3, 3 # by checking for bit 28.
|
||||
#cmplwi 0, 4, 0 # It is an error if non-zero.
|
||||
#beq 0, 1f # Jump if not an error.
|
||||
#neg 3, 3 # Negate the error number.
|
||||
#b 2f # jump to epilogue
|
||||
1:
|
||||
# compare sc result with 0
|
||||
cmpwi cr7, 3, 0
|
||||
|
||||
# if not 0, jump to end
|
||||
bne cr7, 2f
|
||||
|
||||
#else: we're the child
|
||||
#call funcptr
|
||||
# move arg (d) into r3
|
||||
mr 3, 31
|
||||
#move r30 (funcptr) into CTR reg
|
||||
mtctr 30
|
||||
# call CTR reg
|
||||
bctrl
|
||||
# mov SYS_exit into r0 (the exit param is already in r3)
|
||||
li 0, 1
|
||||
sc
|
||||
|
||||
2:
|
||||
|
||||
# restore stack
|
||||
addi 1, 1, 16
|
||||
lwz 30, -4(1)
|
||||
lwz 31, -8(1)
|
||||
|
||||
blr
|
||||
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,51 @@
|
|||
#r0: volatile. may be modified during linkage.
|
||||
#r1: stack frame: 16 byte alignment.
|
||||
#r2: tls/thread pointer on pp32
|
||||
#r3,r4: return values, first args
|
||||
#r5-r10: args
|
||||
#r11-r12: volatile. may be modified during linkage
|
||||
#r13: "small data area" pointer
|
||||
#r14 - r30: local vars
|
||||
#r31: local or environment pointer
|
||||
|
||||
#r1, r14-31: belong to the caller, must be saved and restored
|
||||
#r0, r3-r12, ctr, xer: volatile, not preserved
|
||||
#r0,r11,r12: may be altered by cross-module call,
|
||||
#"a func cannot depend on that these regs have the values placed by the caller"
|
||||
|
||||
#the fields CR2,CR2,CR4 of the cond reg must be preserved
|
||||
#LR (link reg) shall contain the funcs return address
|
||||
.text
|
||||
.global __syscall_cp_asm
|
||||
.type __syscall_cp_asm,%function
|
||||
__syscall_cp_asm:
|
||||
# at enter: r3 = pointer to self->cancel, r4: syscall no, r5: first arg, r6: 2nd, r7: 3rd, r8: 4th, r9: 5th, r10: 6th
|
||||
.global __cp_begin
|
||||
__cp_begin:
|
||||
# r3 holds first argument, its a pointer to self->cancel.
|
||||
# we must compare the dereferenced value with 0 and jump to __cancel if its not
|
||||
|
||||
lwz 0, 0(3) #deref pointer into r0
|
||||
|
||||
cmpwi cr7, 0, 0 #compare r0 with 0, store result in cr7.
|
||||
beq+ cr7, 1f #jump to label 1 if r0 was 0
|
||||
|
||||
b __cancel #else call cancel
|
||||
# (the return address is not needed, since __cancel never returns)
|
||||
1:
|
||||
#ok, the cancel flag was not set
|
||||
# syscall: number goes to r0, the rest 3-8
|
||||
mr 0, 4 # put the system call number into r0
|
||||
mr 3, 5 # Shift the arguments: arg1
|
||||
mr 4, 6 # arg2
|
||||
mr 5, 7 # arg3
|
||||
mr 6, 8 # arg4
|
||||
mr 7, 9 # arg5
|
||||
mr 8, 10 # arg6
|
||||
sc
|
||||
.global __cp_end
|
||||
__cp_end:
|
||||
bnslr+ # return if no summary overflow.
|
||||
#else negate result.
|
||||
neg 3, 3
|
||||
blr
|
Loading…
Reference in New Issue