394 lines
		
	
	
		
			9.7 KiB
		
	
	
	
		
			ArmAsm
		
	
	
	
	
	
			
		
		
	
	
			394 lines
		
	
	
		
			9.7 KiB
		
	
	
	
		
			ArmAsm
		
	
	
	
	
	
| /*
 | |
|  * arch/sh/kernel/syscalls_64.S
 | |
|  *
 | |
|  * Copyright (C) 2000, 2001  Paolo Alberelli
 | |
|  * Copyright (C) 2004 - 2007  Paul Mundt
 | |
|  * Copyright (C) 2003, 2004 Richard Curnow
 | |
|  *
 | |
|  * This file is subject to the terms and conditions of the GNU General Public
 | |
|  * License.  See the file "COPYING" in the main directory of this archive
 | |
|  * for more details.
 | |
|  */
 | |
| 
 | |
| #include <linux/sys.h>
 | |
| 
 | |
| 	.section .data, "aw"
 | |
| 	.balign 32
 | |
| 
 | |
| /*
 | |
|  * System calls jump table
 | |
|  */
 | |
| 	.globl  sys_call_table
 | |
| sys_call_table:
 | |
| 	.long sys_restart_syscall	/* 0  -  old "setup()" system call  */
 | |
| 	.long sys_exit
 | |
| 	.long sys_fork
 | |
| 	.long sys_read
 | |
| 	.long sys_write
 | |
| 	.long sys_open			/* 5 */
 | |
| 	.long sys_close
 | |
| 	.long sys_waitpid
 | |
| 	.long sys_creat
 | |
| 	.long sys_link
 | |
| 	.long sys_unlink		/* 10 */
 | |
| 	.long sys_execve
 | |
| 	.long sys_chdir
 | |
| 	.long sys_time
 | |
| 	.long sys_mknod
 | |
| 	.long sys_chmod			/* 15 */
 | |
| 	.long sys_lchown16
 | |
| 	.long sys_ni_syscall	/* old break syscall holder */
 | |
| 	.long sys_stat
 | |
| 	.long sys_lseek
 | |
| 	.long sys_getpid		/* 20 */
 | |
| 	.long sys_mount
 | |
| 	.long sys_oldumount
 | |
| 	.long sys_setuid16
 | |
| 	.long sys_getuid16
 | |
| 	.long sys_stime			/* 25 */
 | |
| 	.long sh64_ptrace
 | |
| 	.long sys_alarm
 | |
| 	.long sys_fstat
 | |
| 	.long sys_pause
 | |
| 	.long sys_utime			/* 30 */
 | |
| 	.long sys_ni_syscall	/* old stty syscall holder */
 | |
| 	.long sys_ni_syscall	/* old gtty syscall holder */
 | |
| 	.long sys_access
 | |
| 	.long sys_nice
 | |
| 	.long sys_ni_syscall		/* 35 */ /* old ftime syscall holder */
 | |
| 	.long sys_sync
 | |
| 	.long sys_kill
 | |
| 	.long sys_rename
 | |
| 	.long sys_mkdir
 | |
| 	.long sys_rmdir			/* 40 */
 | |
| 	.long sys_dup
 | |
| 	.long sys_pipe
 | |
| 	.long sys_times
 | |
| 	.long sys_ni_syscall	/* old prof syscall holder */
 | |
| 	.long sys_brk			/* 45 */
 | |
| 	.long sys_setgid16
 | |
| 	.long sys_getgid16
 | |
| 	.long sys_signal
 | |
| 	.long sys_geteuid16
 | |
| 	.long sys_getegid16		/* 50 */
 | |
| 	.long sys_acct
 | |
| 	.long sys_umount		/* recycled never used phys( */
 | |
| 	.long sys_ni_syscall	/* old lock syscall holder */
 | |
| 	.long sys_ioctl
 | |
| 	.long sys_fcntl			/* 55 */
 | |
| 	.long sys_ni_syscall	/* old mpx syscall holder */
 | |
| 	.long sys_setpgid
 | |
| 	.long sys_ni_syscall	/* old ulimit syscall holder */
 | |
| 	.long sys_ni_syscall	/* sys_olduname */
 | |
| 	.long sys_umask			/* 60 */
 | |
| 	.long sys_chroot
 | |
| 	.long sys_ustat
 | |
| 	.long sys_dup2
 | |
| 	.long sys_getppid
 | |
| 	.long sys_getpgrp		/* 65 */
 | |
| 	.long sys_setsid
 | |
| 	.long sys_sigaction
 | |
| 	.long sys_sgetmask
 | |
| 	.long sys_ssetmask
 | |
| 	.long sys_setreuid16		/* 70 */
 | |
| 	.long sys_setregid16
 | |
| 	.long sys_sigsuspend
 | |
| 	.long sys_sigpending
 | |
| 	.long sys_sethostname
 | |
| 	.long sys_setrlimit		/* 75 */
 | |
| 	.long sys_old_getrlimit
 | |
| 	.long sys_getrusage
 | |
| 	.long sys_gettimeofday
 | |
| 	.long sys_settimeofday
 | |
| 	.long sys_getgroups16		/* 80 */
 | |
| 	.long sys_setgroups16
 | |
| 	.long sys_ni_syscall	/* sys_oldselect */
 | |
| 	.long sys_symlink
 | |
| 	.long sys_lstat
 | |
| 	.long sys_readlink		/* 85 */
 | |
| 	.long sys_uselib
 | |
| 	.long sys_swapon
 | |
| 	.long sys_reboot
 | |
| 	.long sys_old_readdir
 | |
| 	.long old_mmap			/* 90 */
 | |
| 	.long sys_munmap
 | |
| 	.long sys_truncate
 | |
| 	.long sys_ftruncate
 | |
| 	.long sys_fchmod
 | |
| 	.long sys_fchown16		/* 95 */
 | |
| 	.long sys_getpriority
 | |
| 	.long sys_setpriority
 | |
| 	.long sys_ni_syscall	/* old profil syscall holder */
 | |
| 	.long sys_statfs
 | |
| 	.long sys_fstatfs		/* 100 */
 | |
| 	.long sys_ni_syscall	/* ioperm */
 | |
| 	.long sys_socketcall	/* Obsolete implementation of socket syscall */
 | |
| 	.long sys_syslog
 | |
| 	.long sys_setitimer
 | |
| 	.long sys_getitimer		/* 105 */
 | |
| 	.long sys_newstat
 | |
| 	.long sys_newlstat
 | |
| 	.long sys_newfstat
 | |
| 	.long sys_uname
 | |
| 	.long sys_ni_syscall		/* 110 */ /* iopl */
 | |
| 	.long sys_vhangup
 | |
| 	.long sys_ni_syscall	/* idle */
 | |
| 	.long sys_ni_syscall	/* vm86old */
 | |
| 	.long sys_wait4
 | |
| 	.long sys_swapoff		/* 115 */
 | |
| 	.long sys_sysinfo
 | |
| 	.long sys_ipc		/* Obsolete ipc syscall implementation */
 | |
| 	.long sys_fsync
 | |
| 	.long sys_sigreturn
 | |
| 	.long sys_clone			/* 120 */
 | |
| 	.long sys_setdomainname
 | |
| 	.long sys_newuname
 | |
| 	.long sys_cacheflush	/* x86: sys_modify_ldt */
 | |
| 	.long sys_adjtimex
 | |
| 	.long sys_mprotect		/* 125 */
 | |
| 	.long sys_sigprocmask
 | |
| 	.long sys_ni_syscall		/* old "create_module" */
 | |
| 	.long sys_init_module
 | |
| 	.long sys_delete_module
 | |
| 	.long sys_ni_syscall		/* 130: old "get_kernel_syms" */
 | |
| 	.long sys_quotactl
 | |
| 	.long sys_getpgid
 | |
| 	.long sys_fchdir
 | |
| 	.long sys_bdflush
 | |
| 	.long sys_sysfs			/* 135 */
 | |
| 	.long sys_personality
 | |
| 	.long sys_ni_syscall	/* for afs_syscall */
 | |
| 	.long sys_setfsuid16
 | |
| 	.long sys_setfsgid16
 | |
| 	.long sys_llseek		/* 140 */
 | |
| 	.long sys_getdents
 | |
| 	.long sys_select
 | |
| 	.long sys_flock
 | |
| 	.long sys_msync
 | |
| 	.long sys_readv			/* 145 */
 | |
| 	.long sys_writev
 | |
| 	.long sys_getsid
 | |
| 	.long sys_fdatasync
 | |
| 	.long sys_sysctl
 | |
| 	.long sys_mlock			/* 150 */
 | |
| 	.long sys_munlock
 | |
| 	.long sys_mlockall
 | |
| 	.long sys_munlockall
 | |
| 	.long sys_sched_setparam
 | |
| 	.long sys_sched_getparam	/* 155 */
 | |
| 	.long sys_sched_setscheduler
 | |
| 	.long sys_sched_getscheduler
 | |
| 	.long sys_sched_yield
 | |
| 	.long sys_sched_get_priority_max
 | |
| 	.long sys_sched_get_priority_min  /* 160 */
 | |
| 	.long sys_sched_rr_get_interval
 | |
| 	.long sys_nanosleep
 | |
| 	.long sys_mremap
 | |
| 	.long sys_setresuid16
 | |
| 	.long sys_getresuid16		/* 165 */
 | |
| 	.long sys_ni_syscall	/* vm86 */
 | |
| 	.long sys_ni_syscall	/* old "query_module" */
 | |
| 	.long sys_poll
 | |
| 	.long sys_nfsservctl
 | |
| 	.long sys_setresgid16		/* 170 */
 | |
| 	.long sys_getresgid16
 | |
| 	.long sys_prctl
 | |
| 	.long sys_rt_sigreturn
 | |
| 	.long sys_rt_sigaction
 | |
| 	.long sys_rt_sigprocmask	/* 175 */
 | |
| 	.long sys_rt_sigpending
 | |
| 	.long sys_rt_sigtimedwait
 | |
| 	.long sys_rt_sigqueueinfo
 | |
| 	.long sys_rt_sigsuspend
 | |
| 	.long sys_pread64		/* 180 */
 | |
| 	.long sys_pwrite64
 | |
| 	.long sys_chown16
 | |
| 	.long sys_getcwd
 | |
| 	.long sys_capget
 | |
| 	.long sys_capset		/* 185 */
 | |
| 	.long sys_sigaltstack
 | |
| 	.long sys_sendfile
 | |
| 	.long sys_ni_syscall	/* streams1 */
 | |
| 	.long sys_ni_syscall	/* streams2 */
 | |
| 	.long sys_vfork			/* 190 */
 | |
| 	.long sys_getrlimit
 | |
| 	.long sys_mmap2
 | |
| 	.long sys_truncate64
 | |
| 	.long sys_ftruncate64
 | |
| 	.long sys_stat64		/* 195 */
 | |
| 	.long sys_lstat64
 | |
| 	.long sys_fstat64
 | |
| 	.long sys_lchown
 | |
| 	.long sys_getuid
 | |
| 	.long sys_getgid		/* 200 */
 | |
| 	.long sys_geteuid
 | |
| 	.long sys_getegid
 | |
| 	.long sys_setreuid
 | |
| 	.long sys_setregid
 | |
| 	.long sys_getgroups		/* 205 */
 | |
| 	.long sys_setgroups
 | |
| 	.long sys_fchown
 | |
| 	.long sys_setresuid
 | |
| 	.long sys_getresuid
 | |
| 	.long sys_setresgid		/* 210 */
 | |
| 	.long sys_getresgid
 | |
| 	.long sys_chown
 | |
| 	.long sys_setuid
 | |
| 	.long sys_setgid
 | |
| 	.long sys_setfsuid		/* 215 */
 | |
| 	.long sys_setfsgid
 | |
| 	.long sys_pivot_root
 | |
| 	.long sys_mincore
 | |
| 	.long sys_madvise
 | |
| 	/* Broken-out socket family (maintain backwards compatibility in syscall
 | |
| 	   numbering with 2.4) */
 | |
| 	.long sys_socket		/* 220 */
 | |
| 	.long sys_bind
 | |
| 	.long sys_connect
 | |
| 	.long sys_listen
 | |
| 	.long sys_accept
 | |
| 	.long sys_getsockname		/* 225 */
 | |
| 	.long sys_getpeername
 | |
| 	.long sys_socketpair
 | |
| 	.long sys_send
 | |
| 	.long sys_sendto
 | |
| 	.long sys_recv			/* 230*/
 | |
| 	.long sys_recvfrom
 | |
| 	.long sys_shutdown
 | |
| 	.long sys_setsockopt
 | |
| 	.long sys_getsockopt
 | |
| 	.long sys_sendmsg		/* 235 */
 | |
| 	.long sys_recvmsg
 | |
| 	/* Broken-out IPC family (maintain backwards compatibility in syscall
 | |
| 	   numbering with 2.4) */
 | |
| 	.long sys_semop
 | |
| 	.long sys_semget
 | |
| 	.long sys_semctl
 | |
| 	.long sys_msgsnd		/* 240 */
 | |
| 	.long sys_msgrcv
 | |
| 	.long sys_msgget
 | |
| 	.long sys_msgctl
 | |
| 	.long sys_shmat
 | |
| 	.long sys_shmdt			/* 245 */
 | |
| 	.long sys_shmget
 | |
| 	.long sys_shmctl
 | |
| 	/* Rest of syscalls listed in 2.4 i386 unistd.h */
 | |
| 	.long sys_getdents64
 | |
| 	.long sys_fcntl64
 | |
| 	.long sys_ni_syscall		/* 250 reserved for TUX */
 | |
| 	.long sys_ni_syscall		/* Reserved for Security */
 | |
| 	.long sys_gettid
 | |
| 	.long sys_readahead
 | |
| 	.long sys_setxattr
 | |
| 	.long sys_lsetxattr		/* 255 */
 | |
| 	.long sys_fsetxattr
 | |
| 	.long sys_getxattr
 | |
| 	.long sys_lgetxattr
 | |
| 	.long sys_fgetxattr
 | |
| 	.long sys_listxattr		/* 260 */
 | |
| 	.long sys_llistxattr
 | |
| 	.long sys_flistxattr
 | |
| 	.long sys_removexattr
 | |
| 	.long sys_lremovexattr
 | |
| 	.long sys_fremovexattr  	/* 265 */
 | |
| 	.long sys_tkill
 | |
| 	.long sys_sendfile64
 | |
| 	.long sys_futex
 | |
| 	.long sys_sched_setaffinity
 | |
| 	.long sys_sched_getaffinity	/* 270 */
 | |
| 	.long sys_ni_syscall
 | |
| 	.long sys_ni_syscall
 | |
| 	.long sys_io_setup
 | |
| 	.long sys_io_destroy
 | |
| 	.long sys_io_getevents		/* 275 */
 | |
| 	.long sys_io_submit
 | |
| 	.long sys_io_cancel
 | |
| 	.long sys_fadvise64
 | |
| 	.long sys_ni_syscall
 | |
| 	.long sys_exit_group		/* 280 */
 | |
| 	/* Rest of new 2.6 syscalls */
 | |
| 	.long sys_lookup_dcookie
 | |
| 	.long sys_epoll_create
 | |
| 	.long sys_epoll_ctl
 | |
| 	.long sys_epoll_wait
 | |
|  	.long sys_remap_file_pages	/* 285 */
 | |
|  	.long sys_set_tid_address
 | |
|  	.long sys_timer_create
 | |
|  	.long sys_timer_settime
 | |
|  	.long sys_timer_gettime
 | |
|  	.long sys_timer_getoverrun	/* 290 */
 | |
|  	.long sys_timer_delete
 | |
|  	.long sys_clock_settime
 | |
|  	.long sys_clock_gettime
 | |
|  	.long sys_clock_getres
 | |
|  	.long sys_clock_nanosleep	/* 295 */
 | |
| 	.long sys_statfs64
 | |
| 	.long sys_fstatfs64
 | |
| 	.long sys_tgkill
 | |
| 	.long sys_utimes
 | |
|  	.long sys_fadvise64_64		/* 300 */
 | |
| 	.long sys_ni_syscall	/* Reserved for vserver */
 | |
| 	.long sys_ni_syscall	/* Reserved for mbind */
 | |
| 	.long sys_ni_syscall	/* get_mempolicy */
 | |
| 	.long sys_ni_syscall	/* set_mempolicy */
 | |
| 	.long sys_mq_open		/* 305 */
 | |
| 	.long sys_mq_unlink
 | |
| 	.long sys_mq_timedsend
 | |
| 	.long sys_mq_timedreceive
 | |
| 	.long sys_mq_notify
 | |
| 	.long sys_mq_getsetattr		/* 310 */
 | |
| 	.long sys_ni_syscall	/* Reserved for kexec */
 | |
| 	.long sys_waitid
 | |
| 	.long sys_add_key
 | |
| 	.long sys_request_key
 | |
| 	.long sys_keyctl		/* 315 */
 | |
| 	.long sys_ioprio_set
 | |
| 	.long sys_ioprio_get
 | |
| 	.long sys_inotify_init
 | |
| 	.long sys_inotify_add_watch
 | |
| 	.long sys_inotify_rm_watch	/* 320 */
 | |
| 	.long sys_ni_syscall
 | |
| 	.long sys_migrate_pages
 | |
| 	.long sys_openat
 | |
| 	.long sys_mkdirat
 | |
| 	.long sys_mknodat		/* 325 */
 | |
| 	.long sys_fchownat
 | |
| 	.long sys_futimesat
 | |
| 	.long sys_fstatat64
 | |
| 	.long sys_unlinkat
 | |
| 	.long sys_renameat		/* 330 */
 | |
| 	.long sys_linkat
 | |
| 	.long sys_symlinkat
 | |
| 	.long sys_readlinkat
 | |
| 	.long sys_fchmodat
 | |
| 	.long sys_faccessat		/* 335 */
 | |
| 	.long sys_pselect6
 | |
| 	.long sys_ppoll
 | |
| 	.long sys_unshare
 | |
| 	.long sys_set_robust_list
 | |
| 	.long sys_get_robust_list	/* 340 */
 | |
| 	.long sys_splice
 | |
| 	.long sys_sync_file_range
 | |
| 	.long sys_tee
 | |
| 	.long sys_vmsplice
 | |
| 	.long sys_move_pages		/* 345 */
 | |
| 	.long sys_getcpu
 | |
| 	.long sys_epoll_pwait
 | |
| 	.long sys_utimensat
 | |
| 	.long sys_signalfd
 | |
| 	.long sys_timerfd_create	/* 350 */
 | |
| 	.long sys_eventfd
 | |
| 	.long sys_fallocate
 | |
| 	.long sys_timerfd_settime
 | |
| 	.long sys_timerfd_gettime
 | |
| 	.long sys_signalfd4		/* 355 */
 | |
| 	.long sys_eventfd2
 | |
| 	.long sys_epoll_create1
 | |
| 	.long sys_dup3
 | |
| 	.long sys_pipe2
 | |
| 	.long sys_inotify_init1		/* 360 */
 | |
| 	.long sys_preadv
 | |
| 	.long sys_pwritev
 | |
| 	.long sys_rt_tgsigqueueinfo
 | |
| 	.long sys_perf_event_open
 |