| /* |
| * solaris-syscall.S -- System call stubs for Solaris. |
| * |
| * Copyright (c) 1996 Cygnus Support |
| * |
| * The authors hereby grant permission to use, copy, modify, distribute, |
| * and license this software and its documentation for any purpose, provided |
| * that existing copyright notices are retained in all copies and that this |
| * notice is included verbatim in any distributions. No written agreement, |
| * license, or royalty fee is required for any of the authorized uses. |
| * Modifications to this software may be copyrighted by their authors |
| * and need not follow the licensing terms described here, provided that |
| * the new terms are clearly indicated on the first page of each file where |
| * they apply. |
| */ |
| |
| #include "ppc-asm.h" |
| |
| .file "solaris-syscall.S" |
| |
| #define SYS_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_wait 7 |
| #define SYS_creat 8 |
| #define SYS_link 9 |
| #define SYS_unlink 10 |
| #define SYS_exec 11 |
| #define SYS_chdir 12 |
| #define SYS_time 13 |
| #define SYS_mknod 14 |
| #define SYS_chmod 15 |
| #define SYS_chown 16 |
| #define SYS_brk 17 |
| #define SYS_stat 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_fstat 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_statfs 35 |
| #define SYS_sync 36 |
| #define SYS_kill 37 |
| #define SYS_fstatfs 38 |
| #define SYS_pgrpsys 39 |
| #define SYS_xenix 40 |
| #define SYS_dup 41 |
| #define SYS_pipe 42 |
| #define SYS_times 43 |
| #define SYS_profil 44 |
| #define SYS_plock 45 |
| #define SYS_setgid 46 |
| #define SYS_getgid 47 |
| #define SYS_signal 48 |
| #define SYS_msgsys 49 |
| #define SYS_syssun 50 |
| #define SYS_sysi86 50 |
| #define SYS_sysppc 50 |
| #define SYS_acct 51 |
| #define SYS_shmsys 52 |
| #define SYS_semsys 53 |
| #define SYS_ioctl 54 |
| #define SYS_uadmin 55 |
| #define SYS_utssys 57 |
| #define SYS_fdsync 58 |
| #define SYS_execve 59 |
| #define SYS_umask 60 |
| #define SYS_chroot 61 |
| #define SYS_fcntl 62 |
| #define SYS_ulimit 63 |
| #define SYS_rmdir 79 |
| #define SYS_mkdir 80 |
| #define SYS_getdents 81 |
| #define SYS_sysfs 84 |
| #define SYS_getmsg 85 |
| #define SYS_putmsg 86 |
| #define SYS_poll 87 |
| #define SYS_lstat 88 |
| #define SYS_symlink 89 |
| #define SYS_readlink 90 |
| #define SYS_setgroups 91 |
| #define SYS_getgroups 92 |
| #define SYS_fchmod 93 |
| #define SYS_fchown 94 |
| #define SYS_sigprocmask 95 |
| #define SYS_sigsuspend 96 |
| #define SYS_sigaltstack 97 |
| #define SYS_sigaction 98 |
| #define SYS_sigpending 99 |
| #define SYS_context 100 |
| #define SYS_evsys 101 |
| #define SYS_evtrapret 102 |
| #define SYS_statvfs 103 |
| #define SYS_fstatvfs 104 |
| #define SYS_nfssys 106 |
| #define SYS_waitsys 107 |
| #define SYS_sigsendsys 108 |
| #define SYS_hrtsys 109 |
| #define SYS_acancel 110 |
| #define SYS_async 111 |
| #define SYS_priocntlsys 112 |
| #define SYS_pathconf 113 |
| #define SYS_mincore 114 |
| #define SYS_mmap 115 |
| #define SYS_mprotect 116 |
| #define SYS_munmap 117 |
| #define SYS_fpathconf 118 |
| #define SYS_vfork 119 |
| #define SYS_fchdir 120 |
| #define SYS_readv 121 |
| #define SYS_writev 122 |
| #define SYS_xstat 123 |
| #define SYS_lxstat 124 |
| #define SYS_fxstat 125 |
| #define SYS_xmknod 126 |
| #define SYS_clocal 127 |
| #define SYS_setrlimit 128 |
| #define SYS_getrlimit 129 |
| #define SYS_lchown 130 |
| #define SYS_memcntl 131 |
| #define SYS_getpmsg 132 |
| #define SYS_putpmsg 133 |
| #define SYS_rename 134 |
| #define SYS_uname 135 |
| #define SYS_setegid 136 |
| #define SYS_sysconfig 137 |
| #define SYS_adjtime 138 |
| #define SYS_systeminfo 139 |
| #define SYS_seteuid 141 |
| #define SYS_vtrace 142 |
| #define SYS_fork1 143 |
| #define SYS_sigtimedwait 144 |
| #define SYS_lwp_info 145 |
| #define SYS_yield 146 |
| #define SYS_lwp_sema_wait 147 |
| #define SYS_lwp_sema_post 148 |
| #define SYS_modctl 152 |
| #define SYS_fchroot 153 |
| #define SYS_utimes 154 |
| #define SYS_vhangup 155 |
| #define SYS_gettimeofday 156 |
| #define SYS_getitimer 157 |
| #define SYS_setitimer 158 |
| #define SYS_lwp_create 159 |
| #define SYS_lwp_exit 160 |
| #define SYS_lwp_suspend 161 |
| #define SYS_lwp_continue 162 |
| #define SYS_lwp_kill 163 |
| #define SYS_lwp_self 164 |
| #define SYS_lwp_setprivate 165 |
| #define SYS_lwp_getprivate 166 |
| #define SYS_lwp_wait 167 |
| #define SYS_lwp_mutex_unlock 168 |
| #define SYS_lwp_mutex_lock 169 |
| #define SYS_lwp_cond_wait 170 |
| #define SYS_lwp_cond_signal 171 |
| #define SYS_lwp_cond_broadcast 172 |
| #define SYS_pread 173 |
| #define SYS_pwrite 174 |
| #define SYS_llseek 175 |
| #define SYS_inst_sync 176 |
| #define SYS_kaio 178 |
| #define SYS_tsolsys 184 |
| #define SYS_acl 185 |
| #define SYS_auditsys 186 |
| #define SYS_processor_bind 187 |
| #define SYS_processor_info 188 |
| #define SYS_p_online 189 |
| #define SYS_sigqueue 190 |
| #define SYS_clock_gettime 191 |
| #define SYS_clock_settime 192 |
| #define SYS_clock_getres 193 |
| #define SYS_timer_create 194 |
| #define SYS_timer_delete 195 |
| #define SYS_timer_settime 196 |
| #define SYS_timer_gettime 197 |
| #define SYS_timer_getoverrun 198 |
| #define SYS_nanosleep 199 |
| #define SYS_facl 200 |
| #define SYS_door 201 |
| #define SYS_setreuid 202 |
| #define SYS_setregid 203 |
| #define SYS_install_utrap 204 |
| #define SYS_signotifywait 210 |
| #define SYS_lwp_sigredirect 211 |
| #define SYS_lwp_alarm 212 |
| |
| .text |
| FUNC_START(_exit) |
| li r0,SYS_exit |
| sc |
| |
| /* |
| * Insure that the debugger tells the client that the PC is in _exit, |
| * not whatever function happens to follow this function. |
| */ |
| |
| 0: trap |
| b 0b /* we never should return, but... */ |
| FUNC_END(_exit) |
| |
| #define SYSCALL(syscall,name) \ |
| FUNC_START(name); \ |
| li r0,syscall; \ |
| sc; \ |
| bns+ 0f; \ |
| b FUNC_NAME(_cerror); \ |
| 0: blr; \ |
| FUNC_END(name) |
| |
| SYSCALL(SYS_access,access) |
| SYSCALL(SYS_alarm,alarm) |
| SYSCALL(SYS_brk,brk) |
| SYSCALL(SYS_chdir,chdir) |
| SYSCALL(SYS_chmod,chomd) |
| SYSCALL(SYS_chown,chown) |
| SYSCALL(SYS_close,close) |
| SYSCALL(SYS_creat,creat) |
| SYSCALL(SYS_dup,dup) |
| SYSCALL(SYS_exec,exec) |
| SYSCALL(SYS_fork,fork) |
| SYSCALL(SYS_fstat,_fstat) |
| SYSCALL(SYS_getpid,getpid) |
| SYSCALL(SYS_ioctl,ioctl) |
| SYSCALL(SYS_kill,kill) |
| SYSCALL(SYS_link,link) |
| SYSCALL(SYS_lseek,lseek) |
| SYSCALL(SYS_nice,nice) |
| SYSCALL(SYS_open,open) |
| SYSCALL(SYS_pause,pause) |
| SYSCALL(SYS_pipe,pipe) |
| SYSCALL(SYS_ptrace,ptrace) |
| SYSCALL(SYS_read,read) |
| SYSCALL(SYS_signal,signal) |
| SYSCALL(SYS_stat,_stat) |
| SYSCALL(SYS_sync,sync) |
| SYSCALL(SYS_sysppc,sysppc) |
| SYSCALL(SYS_time,time) |
| SYSCALL(SYS_times,times) |
| SYSCALL(SYS_unlink,unlink) |
| SYSCALL(SYS_wait,wait) |
| SYSCALL(SYS_write,write) |
| SYSCALL(SYS_umask,umask) |
| SYSCALL(SYS_execve,execve) |
| SYSCALL(SYS_fcntl,fcntl) |
| SYSCALL(SYS_ulimit,ulimit) |
| SYSCALL(SYS_mkdir,mkdir) |
| SYSCALL(SYS_rmdir,rmdir) |
| SYSCALL(SYS_getdents,getdents) |
| SYSCALL(SYS_lstat,_lstat) |
| SYSCALL(SYS_symlink,symlink) |
| SYSCALL(SYS_readlink,readlink) |
| SYSCALL(SYS_sigprocmask,sigprocmask) |
| SYSCALL(SYS_sigsuspend,sigsuspend) |
| SYSCALL(SYS_sigaction,sigaction) |
| SYSCALL(SYS_mmap,mmap) |
| SYSCALL(SYS_mprotect,mprotect) |
| SYSCALL(SYS_munmap,munmap) |
| SYSCALL(SYS_fpathconf,fpathconf) |
| SYSCALL(SYS_vfork,vfork) |
| SYSCALL(SYS_setrlimit,setrlimit) |
| SYSCALL(SYS_getrlimit,getrlimit) |
| SYSCALL(SYS_rename,rename) |
| SYSCALL(SYS_utimes,utimes) |
| SYSCALL(SYS_gettimeofday,gettimeofday) |