Browse Source

PPC port cleaned up, static linking works well now.

rofl0r 12 năm trước cách đây
mục cha
commit
1c8eb8bad7
55 tập tin đã thay đổi với 1373 bổ sung1095 xóa
  1. 0 0
      arch/powerpc/atomic.h
  2. 0 0
      arch/powerpc/bits/alltypes.h.sh
  3. 0 0
      arch/powerpc/bits/endian.h
  4. 1 1
      arch/powerpc/bits/errno.h
  5. 6 2
      arch/powerpc/bits/fcntl.h
  6. 0 0
      arch/powerpc/bits/fenv.h
  7. 0 0
      arch/powerpc/bits/float.h
  8. 25 6
      arch/powerpc/bits/ioctl.h
  9. 3 0
      arch/powerpc/bits/ipc.h
  10. 0 0
      arch/powerpc/bits/limits.h
  11. 0 0
      arch/powerpc/bits/mman.h
  12. 0 0
      arch/powerpc/bits/msg.h
  13. 0 0
      arch/powerpc/bits/posix.h
  14. 0 0
      arch/powerpc/bits/reg.h
  15. 0 0
      arch/powerpc/bits/setjmp.h
  16. 0 0
      arch/powerpc/bits/shm.h
  17. 103 0
      arch/powerpc/bits/signal.h
  18. 34 0
      arch/powerpc/bits/socket.h
  19. 0 0
      arch/powerpc/bits/stat.h
  20. 0 0
      arch/powerpc/bits/statfs.h
  21. 0 0
      arch/powerpc/bits/stdarg.h
  22. 0 0
      arch/powerpc/bits/stdint.h
  23. 741 0
      arch/powerpc/bits/syscall.h
  24. 0 0
      arch/powerpc/bits/termios.h
  25. 0 0
      arch/powerpc/bits/user.h
  26. 0 0
      arch/powerpc/bits/wchar.h
  27. 14 0
      arch/powerpc/pthread_arch.h
  28. 36 0
      arch/powerpc/reloc.h
  29. 62 0
      arch/powerpc/syscall_arch.h
  30. 0 114
      arch/ppc/bits/asm.h
  31. 0 77
      arch/ppc/bits/signal.h
  32. 0 10
      arch/ppc/bits/socket.h
  33. 0 714
      arch/ppc/bits/syscall.h
  34. 0 6
      arch/ppc/pthread_arch.h
  35. 0 26
      arch/ppc/reloc.h
  36. 1 0
      configure
  37. 26 0
      crt/powerpc/crt1.s
  38. 0 27
      crt/ppc/crt1.S
  39. 18 0
      src/internal/powerpc/syscall.s
  40. 0 24
      src/internal/ppc/syscall.S
  41. 1 2
      src/ldso/powerpc/dlsym.s
  42. 23 0
      src/ldso/powerpc/start.s
  43. 0 22
      src/ldso/ppc/start.S
  44. 47 0
      src/setjmp/powerpc/longjmp.s
  45. 40 0
      src/setjmp/powerpc/setjmp.s
  46. 0 17
      src/setjmp/ppc/longjmp.S
  47. 0 18
      src/setjmp/ppc/setjmp.S
  48. 11 0
      src/signal/powerpc/restore.s
  49. 34 0
      src/signal/powerpc/sigsetjmp.s
  50. 0 13
      src/signal/ppc/restore.S
  51. 0 12
      src/signal/ppc/sigsetjmp.S
  52. 11 0
      src/thread/powerpc/__set_thread_area.s
  53. 2 4
      src/thread/powerpc/__unmapself.s
  54. 83 0
      src/thread/powerpc/clone.s
  55. 51 0
      src/thread/powerpc/syscall_cp.s

+ 0 - 0
arch/ppc/atomic.h → arch/powerpc/atomic.h


+ 0 - 0
arch/ppc/bits/alltypes.h.sh → arch/powerpc/bits/alltypes.h.sh


+ 0 - 0
arch/ppc/bits/endian.h → arch/powerpc/bits/endian.h


+ 1 - 1
arch/ppc/bits/errno.h → arch/powerpc/bits/errno.h

@@ -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

+ 6 - 2
arch/ppc/bits/fcntl.h → arch/powerpc/bits/fcntl.h

@@ -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
+

+ 0 - 0
arch/ppc/bits/fenv.h → arch/powerpc/bits/fenv.h


+ 0 - 0
arch/ppc/bits/float.h → arch/powerpc/bits/float.h


+ 25 - 6
arch/ppc/bits/ioctl.h → arch/powerpc/bits/ioctl.h

@@ -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

+ 3 - 0
arch/ppc/bits/ipc.h → arch/powerpc/bits/ipc.h

@@ -10,3 +10,6 @@ struct ipc_perm
 	long __pad1;
 	long __pad2;
 };
+
+#define IPC_64 0x100
+

+ 0 - 0
arch/ppc/bits/limits.h → arch/powerpc/bits/limits.h


+ 0 - 0
arch/ppc/bits/mman.h → arch/powerpc/bits/mman.h


+ 0 - 0
arch/ppc/bits/msg.h → arch/powerpc/bits/msg.h


+ 0 - 0
arch/ppc/bits/posix.h → arch/powerpc/bits/posix.h


+ 0 - 0
arch/ppc/bits/reg.h → arch/powerpc/bits/reg.h


+ 0 - 0
arch/ppc/bits/setjmp.h → arch/powerpc/bits/setjmp.h


+ 0 - 0
arch/ppc/bits/shm.h → arch/powerpc/bits/shm.h


+ 103 - 0
arch/powerpc/bits/signal.h

@@ -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

+ 34 - 0
arch/powerpc/bits/socket.h

@@ -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
arch/ppc/bits/stat.h → arch/powerpc/bits/stat.h


+ 0 - 0
arch/ppc/bits/statfs.h → arch/powerpc/bits/statfs.h


+ 0 - 0
arch/ppc/bits/stdarg.h → arch/powerpc/bits/stdarg.h


+ 0 - 0
arch/ppc/bits/stdint.h → arch/powerpc/bits/stdint.h


+ 741 - 0
arch/powerpc/bits/syscall.h

@@ -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
arch/ppc/bits/termios.h → arch/powerpc/bits/termios.h


+ 0 - 0
arch/ppc/bits/user.h → arch/powerpc/bits/user.h


+ 0 - 0
arch/ppc/bits/wchar.h → arch/powerpc/bits/wchar.h


+ 14 - 0
arch/powerpc/pthread_arch.h

@@ -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
+

+ 36 - 0
arch/powerpc/reloc.h

@@ -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;
+	}
+}

+ 62 - 0
arch/powerpc/syscall_arch.h

@@ -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

+ 0 - 114
arch/ppc/bits/asm.h

@@ -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_ */

+ 0 - 77
arch/ppc/bits/signal.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

+ 0 - 10
arch/ppc/bits/socket.h

@@ -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;
-};

+ 0 - 714
arch/ppc/bits/syscall.h

@@ -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)

+ 0 - 6
arch/ppc/pthread_arch.h

@@ -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

+ 0 - 26
arch/ppc/reloc.h

@@ -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;
-	}
-}

+ 1 - 0
configure

@@ -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

+ 26 - 0
crt/powerpc/crt1.s

@@ -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

+ 0 - 27
crt/ppc/crt1.S

@@ -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

+ 18 - 0
src/internal/powerpc/syscall.s

@@ -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

+ 0 - 24
src/internal/ppc/syscall.S

@@ -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 - 2
src/ldso/ppc/dlsym.S → src/ldso/powerpc/dlsym.s

@@ -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

+ 23 - 0
src/ldso/powerpc/start.s

@@ -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
+

+ 0 - 22
src/ldso/ppc/start.S

@@ -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
-

+ 47 - 0
src/setjmp/powerpc/longjmp.s

@@ -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
+

+ 40 - 0
src/setjmp/powerpc/setjmp.s

@@ -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

+ 0 - 17
src/setjmp/ppc/longjmp.S

@@ -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 

+ 0 - 18
src/setjmp/ppc/setjmp.S

@@ -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
-

+ 11 - 0
src/signal/powerpc/restore.s

@@ -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

+ 34 - 0
src/signal/powerpc/sigsetjmp.s

@@ -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

+ 0 - 13
src/signal/ppc/restore.S

@@ -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

+ 0 - 12
src/signal/ppc/sigsetjmp.S

@@ -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

+ 11 - 0
src/thread/powerpc/__set_thread_area.s

@@ -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
+

+ 2 - 4
src/thread/ppc/__unmapself.S → src/thread/powerpc/__unmapself.s

@@ -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

+ 83 - 0
src/thread/powerpc/clone.s

@@ -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
+
+
+
+

+ 51 - 0
src/thread/powerpc/syscall_cp.s

@@ -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