/* * 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 */ #include "kern/tru64/tru64_syscalls.hh" namespace { const char * standard_strings[SystemCalls::StandardNumber] = { "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 0, // 162 "async_daemon", // 163 "getfh", // 164 "getdomainname", // 165 "setdomainname", // 166 0, // 167 0, // 168 "exportfs", // 169 0, // 170 0, // 171 0, // 172 0, // 173 0, // 174 0, // 175 0, // 176 0, // 177 0, // 178 0, // 179 0, // 180 "alt_plock", // 181 0, // 182 0, // 183 "getmnt", // 184 0, // 185 0, // 186 "alt_sigpending", // 187 "alt_setsid", // 188 0, // 189 0, // 190 0, // 191 0, // 192 0, // 193 0, // 194 0, // 195 0, // 196 0, // 197 0, // 198 "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 0, // 221 "security", // 222 "kloadcall", // 223 "stat", // 224 "lstat", // 225 "fstat", // 226 "statfs", // 227 "fstatfs", // 228 "getfsstat", // 229 "gettimeofday64", // 230 "settimeofday64", // 231 0, // 232 "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 }; const char * mach_strings[SystemCalls::MachNumber] = { 0, // 0 0, // 1 0, // 2 0, // 3 0, // 4 0, // 5 0, // 6 0, // 7 0, // 8 0, // 9 "task_self", // 10 "thread_reply", // 11 "task_notify", // 12 "thread_self", // 13 0, // 14 0, // 15 0, // 16 0, // 17 0, // 18 0, // 19 "msg_send_trap", // 20 "msg_receive_trap", // 21 "msg_rpc_trap", // 22 0, // 23 "nxm_block", // 24 "nxm_unblock", // 25 0, // 26 0, // 27 0, // 28 "nxm_thread_destroy", // 29 "lw_wire", // 30 "lw_unwire", // 31 "nxm_thread_create", // 32 "nxm_task_init", // 33 0, // 34 "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 0, // 53 0, // 54 "host_self", // 55 "host_priv_self", // 56 0, // 57 0, // 58 "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 0, // 69 "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 }; } const char * SystemCalls::name(int num) { if (num >= Number) return 0; else if (num >= StandardNumber) return mach_strings[num - StandardNumber]; else if (num >= 0) return standard_strings[num]; else if (num > -MachNumber) return mach_strings[-num]; else return 0; }