linux/arch/h8300/kernel/syscalls.S
<<
>>
Prefs
   1/* Systemcall Entry Table */
   2#include <linux/sys.h>
   3#include <asm/linkage.h>
   4#include <asm/unistd.h>
   5        
   6.globl SYMBOL_NAME(sys_call_table)
   7
   8#if defined(CONFIG_CPU_H8300H)
   9        .h8300h
  10#endif
  11#if defined(CONFIG_CPU_H8S)
  12        .h8300s
  13#endif
  14        .section .text
  15        .align  2
  16SYMBOL_NAME_LABEL(sys_call_table)       
  17        .long SYMBOL_NAME(sys_ni_syscall)       /* 0  -  old "setup()" system call*/
  18        .long SYMBOL_NAME(sys_exit)
  19        .long SYMBOL_NAME(sys_fork)
  20        .long SYMBOL_NAME(sys_read)
  21        .long SYMBOL_NAME(sys_write)
  22        .long SYMBOL_NAME(sys_open)             /* 5 */
  23        .long SYMBOL_NAME(sys_close)
  24        .long SYMBOL_NAME(sys_waitpid)
  25        .long SYMBOL_NAME(sys_creat)
  26        .long SYMBOL_NAME(sys_link)
  27        .long SYMBOL_NAME(sys_unlink)           /* 10 */
  28        .long SYMBOL_NAME(sys_execve)
  29        .long SYMBOL_NAME(sys_chdir)
  30        .long SYMBOL_NAME(sys_time)
  31        .long SYMBOL_NAME(sys_mknod)
  32        .long SYMBOL_NAME(sys_chmod)            /* 15 */
  33        .long SYMBOL_NAME(sys_chown16)
  34        .long SYMBOL_NAME(sys_ni_syscall)       /* old break syscall holder */
  35        .long SYMBOL_NAME(sys_stat)
  36        .long SYMBOL_NAME(sys_lseek)
  37        .long SYMBOL_NAME(sys_getpid)           /* 20 */
  38        .long SYMBOL_NAME(sys_mount)
  39        .long SYMBOL_NAME(sys_oldumount)
  40        .long SYMBOL_NAME(sys_setuid16)
  41        .long SYMBOL_NAME(sys_getuid16)
  42        .long SYMBOL_NAME(sys_stime)            /* 25 */
  43        .long SYMBOL_NAME(sys_ptrace)
  44        .long SYMBOL_NAME(sys_alarm)
  45        .long SYMBOL_NAME(sys_fstat)
  46        .long SYMBOL_NAME(sys_pause)
  47        .long SYMBOL_NAME(sys_utime)            /* 30 */
  48        .long SYMBOL_NAME(sys_ni_syscall)       /* old stty syscall holder */
  49        .long SYMBOL_NAME(sys_ni_syscall)       /* old gtty syscall holder */
  50        .long SYMBOL_NAME(sys_access)
  51        .long SYMBOL_NAME(sys_nice)
  52        .long SYMBOL_NAME(sys_ni_syscall)       /* 35 old ftime syscall holder */
  53        .long SYMBOL_NAME(sys_sync)
  54        .long SYMBOL_NAME(sys_kill)
  55        .long SYMBOL_NAME(sys_rename)
  56        .long SYMBOL_NAME(sys_mkdir)
  57        .long SYMBOL_NAME(sys_rmdir)            /* 40 */
  58        .long SYMBOL_NAME(sys_dup)
  59        .long SYMBOL_NAME(sys_pipe)
  60        .long SYMBOL_NAME(sys_times)
  61        .long SYMBOL_NAME(sys_ni_syscall)       /* old prof syscall holder */
  62        .long SYMBOL_NAME(sys_brk)              /* 45 */
  63        .long SYMBOL_NAME(sys_setgid16)
  64        .long SYMBOL_NAME(sys_getgid16)
  65        .long SYMBOL_NAME(sys_signal)
  66        .long SYMBOL_NAME(sys_geteuid16)
  67        .long SYMBOL_NAME(sys_getegid16)        /* 50 */
  68        .long SYMBOL_NAME(sys_acct)
  69        .long SYMBOL_NAME(sys_umount)           /* recycled never used phys() */
  70        .long SYMBOL_NAME(sys_ni_syscall)       /* old lock syscall holder */
  71        .long SYMBOL_NAME(sys_ioctl)
  72        .long SYMBOL_NAME(sys_fcntl)            /* 55 */
  73        .long SYMBOL_NAME(sys_ni_syscall)       /* old mpx syscall holder */
  74        .long SYMBOL_NAME(sys_setpgid)
  75        .long SYMBOL_NAME(sys_ni_syscall)       /* old ulimit syscall holder */
  76        .long SYMBOL_NAME(sys_ni_syscall)
  77        .long SYMBOL_NAME(sys_umask)            /* 60 */
  78        .long SYMBOL_NAME(sys_chroot)
  79        .long SYMBOL_NAME(sys_ustat)
  80        .long SYMBOL_NAME(sys_dup2)
  81        .long SYMBOL_NAME(sys_getppid)
  82        .long SYMBOL_NAME(sys_getpgrp)          /* 65 */
  83        .long SYMBOL_NAME(sys_setsid)
  84        .long SYMBOL_NAME(sys_sigaction)
  85        .long SYMBOL_NAME(sys_sgetmask)
  86        .long SYMBOL_NAME(sys_ssetmask)
  87        .long SYMBOL_NAME(sys_setreuid16)       /* 70 */
  88        .long SYMBOL_NAME(sys_setregid16)
  89        .long SYMBOL_NAME(sys_sigsuspend)
  90        .long SYMBOL_NAME(sys_sigpending)
  91        .long SYMBOL_NAME(sys_sethostname)
  92        .long SYMBOL_NAME(sys_setrlimit)        /* 75 */
  93        .long SYMBOL_NAME(sys_old_getrlimit)
  94        .long SYMBOL_NAME(sys_getrusage)
  95        .long SYMBOL_NAME(sys_gettimeofday)
  96        .long SYMBOL_NAME(sys_settimeofday)
  97        .long SYMBOL_NAME(sys_getgroups16)      /* 80 */
  98        .long SYMBOL_NAME(sys_setgroups16)
  99        .long SYMBOL_NAME(sys_old_select)
 100        .long SYMBOL_NAME(sys_symlink)
 101        .long SYMBOL_NAME(sys_lstat)
 102        .long SYMBOL_NAME(sys_readlink)         /* 85 */
 103        .long SYMBOL_NAME(sys_uselib)
 104        .long SYMBOL_NAME(sys_swapon)
 105        .long SYMBOL_NAME(sys_reboot)
 106        .long SYMBOL_NAME(sys_old_readdir)
 107        .long SYMBOL_NAME(sys_old_mmap)         /* 90 */
 108        .long SYMBOL_NAME(sys_munmap)
 109        .long SYMBOL_NAME(sys_truncate)
 110        .long SYMBOL_NAME(sys_ftruncate)
 111        .long SYMBOL_NAME(sys_fchmod)
 112        .long SYMBOL_NAME(sys_fchown16)         /* 95 */
 113        .long SYMBOL_NAME(sys_getpriority)
 114        .long SYMBOL_NAME(sys_setpriority)
 115        .long SYMBOL_NAME(sys_ni_syscall)       /* old profil syscall holder */
 116        .long SYMBOL_NAME(sys_statfs)
 117        .long SYMBOL_NAME(sys_fstatfs)          /* 100 */
 118        .long SYMBOL_NAME(sys_ni_syscall)       /* ioperm for i386 */
 119        .long SYMBOL_NAME(sys_socketcall)
 120        .long SYMBOL_NAME(sys_syslog)
 121        .long SYMBOL_NAME(sys_setitimer)
 122        .long SYMBOL_NAME(sys_getitimer)        /* 105 */
 123        .long SYMBOL_NAME(sys_newstat)
 124        .long SYMBOL_NAME(sys_newlstat)
 125        .long SYMBOL_NAME(sys_newfstat)
 126        .long SYMBOL_NAME(sys_ni_syscall)
 127        .long SYMBOL_NAME(sys_ni_syscall)       /* iopl for i386 */ /* 110 */
 128        .long SYMBOL_NAME(sys_vhangup)
 129        .long SYMBOL_NAME(sys_ni_syscall)       /* obsolete idle() syscall */
 130        .long SYMBOL_NAME(sys_ni_syscall)       /* vm86old for i386 */
 131        .long SYMBOL_NAME(sys_wait4)
 132        .long SYMBOL_NAME(sys_swapoff)          /* 115 */
 133        .long SYMBOL_NAME(sys_sysinfo)
 134        .long SYMBOL_NAME(sys_ipc)
 135        .long SYMBOL_NAME(sys_fsync)
 136        .long SYMBOL_NAME(sys_sigreturn)
 137        .long SYMBOL_NAME(sys_clone)            /* 120 */
 138        .long SYMBOL_NAME(sys_setdomainname)
 139        .long SYMBOL_NAME(sys_newuname)
 140        .long SYMBOL_NAME(sys_cacheflush)       /* modify_ldt for i386 */
 141        .long SYMBOL_NAME(sys_adjtimex)
 142        .long SYMBOL_NAME(sys_ni_syscall)       /* 125 sys_mprotect */
 143        .long SYMBOL_NAME(sys_sigprocmask)
 144        .long SYMBOL_NAME(sys_ni_syscall)       /* sys_create_module */
 145        .long SYMBOL_NAME(sys_init_module)
 146        .long SYMBOL_NAME(sys_delete_module)
 147        .long SYMBOL_NAME(sys_ni_syscall)       /* 130 sys_get_kernel_syms */
 148        .long SYMBOL_NAME(sys_quotactl)
 149        .long SYMBOL_NAME(sys_getpgid)
 150        .long SYMBOL_NAME(sys_fchdir)
 151        .long SYMBOL_NAME(sys_bdflush)
 152        .long SYMBOL_NAME(sys_sysfs)            /* 135 */
 153        .long SYMBOL_NAME(sys_personality)
 154        .long SYMBOL_NAME(sys_ni_syscall)       /* for afs_syscall */
 155        .long SYMBOL_NAME(sys_setfsuid16)
 156        .long SYMBOL_NAME(sys_setfsgid16)
 157        .long SYMBOL_NAME(sys_llseek)           /* 140 */
 158        .long SYMBOL_NAME(sys_getdents)
 159        .long SYMBOL_NAME(sys_select)
 160        .long SYMBOL_NAME(sys_flock)
 161        .long SYMBOL_NAME(sys_ni_syscall)       /* sys_msync */
 162        .long SYMBOL_NAME(sys_readv)            /* 145 */
 163        .long SYMBOL_NAME(sys_writev)
 164        .long SYMBOL_NAME(sys_getsid)
 165        .long SYMBOL_NAME(sys_fdatasync)
 166        .long SYMBOL_NAME(sys_sysctl)
 167        .long SYMBOL_NAME(sys_ni_syscall)       /* 150 sys_mlock */
 168        .long SYMBOL_NAME(sys_ni_syscall)       /* sys_munlock */
 169        .long SYMBOL_NAME(sys_ni_syscall)       /* sys_mlockall */
 170        .long SYMBOL_NAME(sys_ni_syscall)       /* sys_munlockall */
 171        .long SYMBOL_NAME(sys_sched_setparam)
 172        .long SYMBOL_NAME(sys_sched_getparam)   /* 155 */
 173        .long SYMBOL_NAME(sys_sched_setscheduler)
 174        .long SYMBOL_NAME(sys_sched_getscheduler)
 175        .long SYMBOL_NAME(sys_sched_yield)
 176        .long SYMBOL_NAME(sys_sched_get_priority_max)
 177        .long SYMBOL_NAME(sys_sched_get_priority_min)  /* 160 */
 178        .long SYMBOL_NAME(sys_sched_rr_get_interval)
 179        .long SYMBOL_NAME(sys_nanosleep)
 180        .long SYMBOL_NAME(sys_ni_syscall)       /* sys_mremap */
 181        .long SYMBOL_NAME(sys_setresuid16)
 182        .long SYMBOL_NAME(sys_getresuid16)      /* 165 */
 183        .long SYMBOL_NAME(sys_ni_syscall)       /* for vm86 */
 184        .long SYMBOL_NAME(sys_ni_syscall)       /* sys_query_module */
 185        .long SYMBOL_NAME(sys_poll)
 186        .long SYMBOL_NAME(sys_nfsservctl)
 187        .long SYMBOL_NAME(sys_setresgid16)      /* 170 */
 188        .long SYMBOL_NAME(sys_getresgid16)
 189        .long SYMBOL_NAME(sys_prctl)
 190        .long SYMBOL_NAME(sys_rt_sigreturn)
 191        .long SYMBOL_NAME(sys_rt_sigaction)
 192        .long SYMBOL_NAME(sys_rt_sigprocmask)   /* 175 */
 193        .long SYMBOL_NAME(sys_rt_sigpending)
 194        .long SYMBOL_NAME(sys_rt_sigtimedwait)
 195        .long SYMBOL_NAME(sys_rt_sigqueueinfo)
 196        .long SYMBOL_NAME(sys_rt_sigsuspend)
 197        .long SYMBOL_NAME(sys_pread64)          /* 180 */
 198        .long SYMBOL_NAME(sys_pwrite64)
 199        .long SYMBOL_NAME(sys_lchown16);
 200        .long SYMBOL_NAME(sys_getcwd)
 201        .long SYMBOL_NAME(sys_capget)
 202        .long SYMBOL_NAME(sys_capset)           /* 185 */
 203        .long SYMBOL_NAME(sys_sigaltstack)
 204        .long SYMBOL_NAME(sys_sendfile)
 205        .long SYMBOL_NAME(sys_ni_syscall)       /* streams1 */
 206        .long SYMBOL_NAME(sys_ni_syscall)       /* streams2 */
 207        .long SYMBOL_NAME(sys_vfork)            /* 190 */
 208        .long SYMBOL_NAME(sys_getrlimit)
 209        .long SYMBOL_NAME(sys_mmap_pgoff)
 210        .long SYMBOL_NAME(sys_truncate64)
 211        .long SYMBOL_NAME(sys_ftruncate64)
 212        .long SYMBOL_NAME(sys_stat64)           /* 195 */
 213        .long SYMBOL_NAME(sys_lstat64)
 214        .long SYMBOL_NAME(sys_fstat64)
 215        .long SYMBOL_NAME(sys_chown)
 216        .long SYMBOL_NAME(sys_getuid)
 217        .long SYMBOL_NAME(sys_getgid)           /* 200 */
 218        .long SYMBOL_NAME(sys_geteuid)
 219        .long SYMBOL_NAME(sys_getegid)
 220        .long SYMBOL_NAME(sys_setreuid)
 221        .long SYMBOL_NAME(sys_setregid)
 222        .long SYMBOL_NAME(sys_getgroups)        /* 205 */
 223        .long SYMBOL_NAME(sys_setgroups)
 224        .long SYMBOL_NAME(sys_fchown)
 225        .long SYMBOL_NAME(sys_setresuid)
 226        .long SYMBOL_NAME(sys_getresuid)
 227        .long SYMBOL_NAME(sys_setresgid)        /* 210 */
 228        .long SYMBOL_NAME(sys_getresgid)
 229        .long SYMBOL_NAME(sys_lchown)
 230        .long SYMBOL_NAME(sys_setuid)
 231        .long SYMBOL_NAME(sys_setgid)
 232        .long SYMBOL_NAME(sys_setfsuid)         /* 215 */
 233        .long SYMBOL_NAME(sys_setfsgid)
 234        .long SYMBOL_NAME(sys_pivot_root)
 235        .long SYMBOL_NAME(sys_ni_syscall)
 236        .long SYMBOL_NAME(sys_ni_syscall)
 237        .long SYMBOL_NAME(sys_getdents64)       /* 220 */
 238        .long SYMBOL_NAME(sys_fcntl64)
 239        .long SYMBOL_NAME(sys_ni_syscall)       /* reserved TUX */
 240        .long SYMBOL_NAME(sys_ni_syscall)       /* reserved Security */
 241        .long SYMBOL_NAME(sys_gettid)
 242        .long SYMBOL_NAME(sys_readahead)        /* 225 */
 243        .long SYMBOL_NAME(sys_setxattr)
 244        .long SYMBOL_NAME(sys_lsetxattr)
 245        .long SYMBOL_NAME(sys_fsetxattr)
 246        .long SYMBOL_NAME(sys_getxattr)
 247        .long SYMBOL_NAME(sys_lgetxattr)        /* 230 */
 248        .long SYMBOL_NAME(sys_fgetxattr)
 249        .long SYMBOL_NAME(sys_listxattr)
 250        .long SYMBOL_NAME(sys_llistxattr)
 251        .long SYMBOL_NAME(sys_flistxattr)
 252        .long SYMBOL_NAME(sys_removexattr)      /* 235 */
 253        .long SYMBOL_NAME(sys_lremovexattr)
 254        .long SYMBOL_NAME(sys_fremovexattr)
 255        .long SYMBOL_NAME(sys_tkill)
 256        .long SYMBOL_NAME(sys_sendfile64)
 257        .long SYMBOL_NAME(sys_futex)            /* 240 */
 258        .long SYMBOL_NAME(sys_sched_setaffinity)
 259        .long SYMBOL_NAME(sys_sched_getaffinity)
 260        .long SYMBOL_NAME(sys_ni_syscall)
 261        .long SYMBOL_NAME(sys_ni_syscall)
 262        .long SYMBOL_NAME(sys_io_setup)         /* 245 */
 263        .long SYMBOL_NAME(sys_io_destroy)
 264        .long SYMBOL_NAME(sys_io_getevents)
 265        .long SYMBOL_NAME(sys_io_submit)
 266        .long SYMBOL_NAME(sys_io_cancel)
 267        .long SYMBOL_NAME(sys_fadvise64)        /* 250 */
 268        .long SYMBOL_NAME(sys_ni_syscall)
 269        .long SYMBOL_NAME(sys_exit_group)
 270        .long SYMBOL_NAME(sys_lookup_dcookie)
 271        .long SYMBOL_NAME(sys_epoll_create)
 272        .long SYMBOL_NAME(sys_epoll_ctl)        /* 255 */
 273        .long SYMBOL_NAME(sys_epoll_wait)
 274        .long SYMBOL_NAME(sys_ni_syscall)       /* sys_remap_file_pages */
 275        .long SYMBOL_NAME(sys_set_tid_address)
 276        .long SYMBOL_NAME(sys_timer_create)
 277        .long SYMBOL_NAME(sys_timer_settime)    /* 260 */
 278        .long SYMBOL_NAME(sys_timer_gettime)
 279        .long SYMBOL_NAME(sys_timer_getoverrun)
 280        .long SYMBOL_NAME(sys_timer_delete)
 281        .long SYMBOL_NAME(sys_clock_settime)
 282        .long SYMBOL_NAME(sys_clock_gettime)    /* 265 */
 283        .long SYMBOL_NAME(sys_clock_getres)
 284        .long SYMBOL_NAME(sys_clock_nanosleep)
 285        .long SYMBOL_NAME(sys_statfs64)
 286        .long SYMBOL_NAME(sys_fstatfs64)        
 287        .long SYMBOL_NAME(sys_tgkill)           /* 270 */
 288        .long SYMBOL_NAME(sys_utimes)
 289        .long SYMBOL_NAME(sys_fadvise64_64)
 290        .long SYMBOL_NAME(sys_ni_syscall)       /* sys_vserver */
 291        .long SYMBOL_NAME(sys_ni_syscall)
 292        .long SYMBOL_NAME(sys_get_mempolicy)    /* 275 */
 293        .long SYMBOL_NAME(sys_set_mempolicy)
 294        .long SYMBOL_NAME(sys_mq_open)
 295        .long SYMBOL_NAME(sys_mq_unlink)
 296        .long SYMBOL_NAME(sys_mq_timedsend)
 297        .long SYMBOL_NAME(sys_mq_timedreceive)  /* 280 */
 298        .long SYMBOL_NAME(sys_mq_notify)
 299        .long SYMBOL_NAME(sys_mq_getsetattr)
 300        .long SYMBOL_NAME(sys_waitid)
 301        .long SYMBOL_NAME(sys_ni_syscall)       /* sys_kexec_load */
 302        .long SYMBOL_NAME(sys_add_key)          /* 285 */
 303        .long SYMBOL_NAME(sys_request_key)
 304        .long SYMBOL_NAME(sys_keyctl)
 305        .long SYMBOL_NAME(sys_ioprio_set)
 306        .long SYMBOL_NAME(sys_ioprio_get)       /* 290 */
 307        .long SYMBOL_NAME(sys_inotify_init)
 308        .long SYMBOL_NAME(sys_inotify_add_watch)
 309        .long SYMBOL_NAME(sys_inotify_rm_watch)
 310        .long SYMBOL_NAME(sys_migrate_pages)
 311        .long SYMBOL_NAME(sys_openat)           /* 295 */
 312        .long SYMBOL_NAME(sys_mkdirat)
 313        .long SYMBOL_NAME(sys_mknodat)
 314        .long SYMBOL_NAME(sys_fchownat)
 315        .long SYMBOL_NAME(sys_futimesat)
 316        .long SYMBOL_NAME(sys_fstatat64)        /* 300 */
 317        .long SYMBOL_NAME(sys_unlinkat)
 318        .long SYMBOL_NAME(sys_renameat)
 319        .long SYMBOL_NAME(sys_linkat)
 320        .long SYMBOL_NAME(sys_symlinkat)
 321        .long SYMBOL_NAME(sys_readlinkat)       /* 305 */
 322        .long SYMBOL_NAME(sys_fchmodat)
 323        .long SYMBOL_NAME(sys_faccessat)
 324        .long SYMBOL_NAME(sys_ni_syscall)       /* sys_pselect6 */
 325        .long SYMBOL_NAME(sys_ni_syscall)       /* sys_ppoll */
 326        .long SYMBOL_NAME(sys_unshare)          /* 310 */
 327        .long SYMBOL_NAME(sys_set_robust_list)
 328        .long SYMBOL_NAME(sys_get_robust_list)
 329        .long SYMBOL_NAME(sys_splice)
 330        .long SYMBOL_NAME(sys_sync_file_range)
 331        .long SYMBOL_NAME(sys_tee)              /* 315 */
 332        .long SYMBOL_NAME(sys_vmsplice)
 333        .long SYMBOL_NAME(sys_ni_syscall)       /* sys_move_pages */
 334        .long SYMBOL_NAME(sys_getcpu)
 335        .long SYMBOL_NAME(sys_ni_syscall)       /* sys_epoll_pwait */
 336
 337        .macro  call_sp addr
 338        mov.l   #SYMBOL_NAME(\addr),er6
 339        bra     SYMBOL_NAME(syscall_trampoline):8
 340        .endm
 341
 342SYMBOL_NAME_LABEL(sys_clone)    
 343        call_sp h8300_clone
 344        
 345SYMBOL_NAME_LABEL(sys_sigsuspend)
 346        call_sp do_sigsuspend
 347
 348SYMBOL_NAME_LABEL(sys_rt_sigsuspend)
 349        call_sp do_rt_sigsuspend
 350
 351SYMBOL_NAME_LABEL(sys_sigreturn)
 352        call_sp do_sigreturn
 353
 354SYMBOL_NAME_LABEL(sys_rt_sigreturn)
 355        call_sp do_rt_sigreturn
 356
 357SYMBOL_NAME_LABEL(sys_fork)
 358        call_sp h8300_fork
 359
 360SYMBOL_NAME_LABEL(sys_vfork)
 361        call_sp h8300_vfork
 362
 363SYMBOL_NAME_LABEL(syscall_trampoline)
 364        mov.l   sp,er0
 365        jmp     @er6
 366