| /* | |
| * Copyright (c) 2003-2005 The Regents of The University of Michigan | |
| * All rights reserved. | |
| * | |
| * Redistribution and use in source and binary forms, with or without | |
| * modification, are permitted provided that the following conditions are | |
| * met: redistributions of source code must retain the above copyright | |
| * notice, this list of conditions and the following disclaimer; | |
| * redistributions in binary form must reproduce the above copyright | |
| * notice, this list of conditions and the following disclaimer in the | |
| * documentation and/or other materials provided with the distribution; | |
| * neither the name of the copyright holders nor the names of its | |
| * contributors may be used to endorse or promote products derived from | |
| * this software without specific prior written permission. | |
| * | |
| * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS | |
| * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT | |
| * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR | |
| * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT | |
| * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, | |
| * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT | |
| * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | |
| * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | |
| * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | |
| * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | |
| * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | |
| * | |
| * Authors: Nathan Binkert | |
| */ | |
| #ifndef __KERN_TRU64_TRU64_SYSCALLS_HH__ | |
| #define __KERN_TRU64_TRU64_SYSCALLS_HH__ | |
| #include "kern/tru64/tru64.hh" | |
| template <class OS> | |
| class SystemCalls; | |
| template <> | |
| class SystemCalls<Tru64> | |
| { | |
| public: | |
| enum { | |
| syscall = 0, | |
| exit = 1, | |
| fork = 2, | |
| read = 3, | |
| write = 4, | |
| old_open = 5, | |
| close = 6, | |
| wait4 = 7, | |
| old_creat = 8, | |
| link = 9, | |
| unlink = 10, | |
| execv = 11, | |
| chdir = 12, | |
| fchdir = 13, | |
| mknod = 14, | |
| chmod = 15, | |
| chown = 16, | |
| obreak = 17, | |
| pre_F64_getfsstat = 18, | |
| lseek = 19, | |
| getpid = 20, | |
| mount = 21, | |
| unmount = 22, | |
| setuid = 23, | |
| getuid = 24, | |
| exec_with_loader = 25, | |
| ptrace = 26, | |
| recvmsg = 27, | |
| sendmsg = 28, | |
| recvfrom = 29, | |
| accept = 30, | |
| getpeername = 31, | |
| getsockname = 32, | |
| access = 33, | |
| chflags = 34, | |
| fchflags = 35, | |
| sync = 36, | |
| kill = 37, | |
| old_stat = 38, | |
| setpgid = 39, | |
| old_lstat = 40, | |
| dup = 41, | |
| pipe = 42, | |
| set_program_attributes = 43, | |
| profil = 44, | |
| open = 45, | |
| obsolete_osigaction = 46, | |
| getgid = 47, | |
| sigprocmask = 48, | |
| getlogin = 49, | |
| setlogin = 50, | |
| acct = 51, | |
| sigpending = 52, | |
| classcntl = 53, | |
| ioctl = 54, | |
| reboot = 55, | |
| revoke = 56, | |
| symlink = 57, | |
| readlink = 58, | |
| execve = 59, | |
| umask = 60, | |
| chroot = 61, | |
| old_fstat = 62, | |
| getpgrp = 63, | |
| getpagesize = 64, | |
| mremap = 65, | |
| vfork = 66, | |
| pre_F64_stat = 67, | |
| pre_F64_lstat = 68, | |
| sbrk = 69, | |
| sstk = 70, | |
| mmap = 71, | |
| ovadvise = 72, | |
| munmap = 73, | |
| mprotect = 74, | |
| madvise = 75, | |
| old_vhangup = 76, | |
| kmodcall = 77, | |
| mincore = 78, | |
| getgroups = 79, | |
| setgroups = 80, | |
| old_getpgrp = 81, | |
| setpgrp = 82, | |
| setitimer = 83, | |
| old_wait = 84, | |
| table = 85, | |
| getitimer = 86, | |
| gethostname = 87, | |
| sethostname = 88, | |
| getdtablesize = 89, | |
| dup2 = 90, | |
| pre_F64_fstat = 91, | |
| fcntl = 92, | |
| select = 93, | |
| poll = 94, | |
| fsync = 95, | |
| setpriority = 96, | |
| socket = 97, | |
| connect = 98, | |
| old_accept = 99, | |
| getpriority = 100, | |
| old_send = 101, | |
| old_recv = 102, | |
| sigreturn = 103, | |
| bind = 104, | |
| setsockopt = 105, | |
| listen = 106, | |
| plock = 107, | |
| old_sigvec = 108, | |
| old_sigblock = 109, | |
| old_sigsetmask = 110, | |
| sigsuspend = 111, | |
| sigstack = 112, | |
| old_recvmsg = 113, | |
| old_sendmsg = 114, | |
| obsolete_vtrcae = 115, | |
| gettimeofday = 116, | |
| getrusage = 117, | |
| getsockopt = 118, | |
| numa_syscalls = 119, | |
| readv = 120, | |
| writev = 121, | |
| settimeofday = 122, | |
| fchown = 123, | |
| fchmod = 124, | |
| old_recvfrom = 125, | |
| setreuid = 126, | |
| setregid = 127, | |
| rename = 128, | |
| truncate = 129, | |
| ftruncate = 130, | |
| flock = 131, | |
| setgid = 132, | |
| sendto = 133, | |
| shutdown = 134, | |
| socketpair = 135, | |
| mkdir = 136, | |
| rmdir = 137, | |
| utimes = 138, | |
| obsolete_42_sigreturn = 139, | |
| adjtime = 140, | |
| old_getpeername = 141, | |
| gethostid = 142, | |
| sethostid = 143, | |
| getrlimit = 144, | |
| setrlimit = 145, | |
| old_killpg = 146, | |
| setsid = 147, | |
| quotactl = 148, | |
| oldquota = 149, | |
| old_getsockname = 150, | |
| pread = 151, | |
| pwrite = 152, | |
| pid_block = 153, | |
| pid_unblock = 154, | |
| signal_urti = 155, | |
| sigaction = 156, | |
| sigwaitprim = 157, | |
| nfssvc = 158, | |
| getdirentries = 159, | |
| pre_F64_statfs = 160, | |
| pre_F64_fstatfs = 161, | |
| async_daemon = 163, | |
| getfh = 164, | |
| getdomainname = 165, | |
| setdomainname = 166, | |
| exportfs = 169, | |
| alt_plock = 181, | |
| getmnt = 184, | |
| alt_sigpending = 187, | |
| alt_setsid = 188, | |
| swapon = 199, | |
| msgctl = 200, | |
| msgget = 201, | |
| msgrcv = 202, | |
| msgsnd = 203, | |
| semctl = 204, | |
| semget = 205, | |
| semop = 206, | |
| uname = 207, | |
| lchown = 208, | |
| shmat = 209, | |
| shmctl = 210, | |
| shmdt = 211, | |
| shmget = 212, | |
| mvalid = 213, | |
| getaddressconf = 214, | |
| msleep = 215, | |
| mwakeup = 216, | |
| msync = 217, | |
| signal = 218, | |
| utc_gettime = 219, | |
| utc_adjtime = 220, | |
| security = 222, | |
| kloadcall = 223, | |
| stat = 224, | |
| lstat = 225, | |
| fstat = 226, | |
| statfs = 227, | |
| fstatfs = 228, | |
| getfsstat = 229, | |
| gettimeofday64 = 230, | |
| settimeofday64 = 231, | |
| getpgid = 233, | |
| getsid = 234, | |
| sigaltstack = 235, | |
| waitid = 236, | |
| priocntlset = 237, | |
| sigsendset = 238, | |
| set_speculative = 239, | |
| msfs_syscall = 240, | |
| sysinfo = 241, | |
| uadmin = 242, | |
| fuser = 243, | |
| proplist_syscall = 244, | |
| ntp_adjtime = 245, | |
| ntp_gettime = 246, | |
| pathconf = 247, | |
| fpathconf = 248, | |
| sync2 = 249, | |
| uswitch = 250, | |
| usleep_thread = 251, | |
| audcntl = 252, | |
| audgen = 253, | |
| sysfs = 254, | |
| subsys_info = 255, | |
| getsysinfo = 256, | |
| setsysinfo = 257, | |
| afs_syscall = 258, | |
| swapctl = 259, | |
| memcntl = 260, | |
| fdatasync = 261, | |
| oflock = 262, | |
| _F64_readv = 263, | |
| _F64_writev = 264, | |
| cdslxlate = 265, | |
| sendfile = 266, | |
| StandardNumber | |
| }; | |
| enum { | |
| task_self = 10, | |
| thread_reply = 11, | |
| task_notify = 12, | |
| thread_self = 13, | |
| msg_send_trap = 20, | |
| msg_receive_trap = 21, | |
| msg_rpc_trap = 22, | |
| nxm_block = 24, | |
| nxm_unblock = 25, | |
| nxm_thread_destroy = 29, | |
| lw_wire = 30, | |
| lw_unwire = 31, | |
| nxm_thread_create = 32, | |
| nxm_task_init = 33, | |
| nxm_idle = 35, | |
| nxm_wakeup_idle = 36, | |
| nxm_set_pthid = 37, | |
| nxm_thread_kill = 38, | |
| nxm_thread_block = 39, | |
| nxm_thread_wakeup = 40, | |
| init_process = 41, | |
| nxm_get_binding = 42, | |
| map_fd = 43, | |
| nxm_resched = 44, | |
| nxm_set_cancel = 45, | |
| nxm_set_binding = 46, | |
| stack_create = 47, | |
| nxm_get_state = 48, | |
| nxm_thread_suspend = 49, | |
| nxm_thread_resume = 50, | |
| nxm_signal_check = 51, | |
| htg_unix_syscall = 52, | |
| host_self = 55, | |
| host_priv_self = 56, | |
| swtch_pri = 59, | |
| swtch = 60, | |
| thread_switch = 61, | |
| semop_fast = 62, | |
| nxm_pshared_init = 63, | |
| nxm_pshared_block = 64, | |
| nxm_pshared_unblock = 65, | |
| nxm_pshared_destroy = 66, | |
| nxm_swtch_pri = 67, | |
| lw_syscall = 68, | |
| mach_sctimes_0 = 70, | |
| mach_sctimes_1 = 71, | |
| mach_sctimes_2 = 72, | |
| mach_sctimes_3 = 73, | |
| mach_sctimes_4 = 74, | |
| mach_sctimes_5 = 75, | |
| mach_sctimes_6 = 76, | |
| mach_sctimes_7 = 77, | |
| mach_sctimes_8 = 78, | |
| mach_sctimes_9 = 79, | |
| mach_sctimes_10 = 80, | |
| mach_sctimes_11 = 81, | |
| mach_sctimes_port_alloc_dealloc = 82, | |
| MachNumber | |
| }; | |
| static const int Number = StandardNumber + MachNumber; | |
| static const char *name(int num); | |
| static bool validSyscallNumber(int num) { | |
| return -MachNumber < num && num < StandardNumber; | |
| } | |
| static int convert(int syscall_num) { | |
| if (!validSyscallNumber(syscall_num)) | |
| return -1; | |
| return syscall_num < 0 ? StandardNumber - syscall_num : syscall_num; | |
| } | |
| }; | |
| #endif // __KERN_TRU64_TRU64_SYSCALLS_HH__ |