281 lines
6.9 KiB
ArmAsm
281 lines
6.9 KiB
ArmAsm
/*
|
|
* 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)
|