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