addad kern/linux
--HG-- extra : convert_revision : 2a14af3191a532524ee92a47b5bb6e68555010c3
This commit is contained in:
376
kern/linux/linux_syscalls.cc
Normal file
376
kern/linux/linux_syscalls.cc
Normal file
@@ -0,0 +1,376 @@
|
||||
/*
|
||||
* Copyright (c) 2003 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.
|
||||
*/
|
||||
|
||||
#include "kern/linux/linux_syscalls.hh"
|
||||
|
||||
namespace {
|
||||
const char *
|
||||
standard_strings[SystemCalls<Linux>::StandardNumber] = {
|
||||
|
||||
|
||||
"llseek", //0
|
||||
"newselect", //1
|
||||
"sysctl", //2
|
||||
"access", //3
|
||||
"acct", //4
|
||||
"adjtimex", //5
|
||||
"afs_syscall", //6
|
||||
"alarm", //7
|
||||
"bdflush", //8
|
||||
"break", //9
|
||||
|
||||
|
||||
"brk", //10
|
||||
"capget", //11
|
||||
"capset", //12
|
||||
"chdir", //13
|
||||
"chmod", //14
|
||||
"chown", //15
|
||||
"chown32", //16
|
||||
"chroot", //17
|
||||
"clock_getres", //18
|
||||
"clock_gettime", //19
|
||||
|
||||
|
||||
"clock_nanosleep", //20
|
||||
"clock_settime", //21
|
||||
"clone", //22
|
||||
"close", //23
|
||||
"creat", //24
|
||||
"create_module", //25
|
||||
"delete_module", //26
|
||||
"dup", //27
|
||||
"dup2", //28
|
||||
"epoll_create", //29
|
||||
|
||||
|
||||
"epoll_ctl", //30
|
||||
"epoll_wait", //31
|
||||
"execve", //32
|
||||
"exit", //33
|
||||
"exit_group", //34
|
||||
"fadvise64", //35
|
||||
"fadvise64_64", //36
|
||||
"fchdir", //37
|
||||
"fchmod", //38
|
||||
"fchown", //39
|
||||
|
||||
|
||||
"fchown32", //40
|
||||
"fcntl", //41
|
||||
"fcntl64", //42
|
||||
"fdatasync", //43
|
||||
"fgetxattr", //44
|
||||
"flistxattr", //45
|
||||
"flock", //46
|
||||
"fork", //47
|
||||
"fremovexattr", //48
|
||||
"fsetxattr", //49
|
||||
|
||||
|
||||
"fstat", //50
|
||||
"fstat64", //51
|
||||
"fstatfs", //52
|
||||
"fstatfs64", //53
|
||||
"fsync", //54
|
||||
"ftime", //55
|
||||
"ftruncate", //56
|
||||
"ftruncate64", //57
|
||||
"futex", //58
|
||||
"get_kernel_syms", //59
|
||||
|
||||
|
||||
"get_thread_area", //60
|
||||
"getcwd", //61
|
||||
"getdents", //62
|
||||
"getdents64", //63
|
||||
"getegid", //64
|
||||
"getegid32", //65
|
||||
"geteuid", //66
|
||||
"geteuid32", //67
|
||||
"getgid", //68
|
||||
"getgid32", //69
|
||||
|
||||
|
||||
"getgroups", //70
|
||||
"getgroups32", //71
|
||||
"getitimer", //72
|
||||
"getpgid", //73
|
||||
"getpgrp", //74
|
||||
"getpid", //75
|
||||
"getpmsg", //76
|
||||
"getppid", //77
|
||||
"getpriority", //78
|
||||
"getresgid", //79
|
||||
|
||||
|
||||
"getresgid32", //80
|
||||
"getresuid", //81
|
||||
"getresuid32", //82
|
||||
"getrlimit", //83
|
||||
"getrusage", //84
|
||||
"getsid", //85
|
||||
"gettid", //86
|
||||
"gettimeofday", //87
|
||||
"getuid", //88
|
||||
"getuid32", //89
|
||||
|
||||
|
||||
"getxattr", //90
|
||||
"gtty", //91
|
||||
"idle", //92
|
||||
"init_module", //93
|
||||
"io_cancel", //94
|
||||
"io_destroy", //95
|
||||
"io_getevents", //96
|
||||
"io_setup", //97
|
||||
"io_submit", //98
|
||||
"ioctl", //99
|
||||
|
||||
|
||||
"ioperm", //100
|
||||
"iopl", //101
|
||||
"ipc", //102
|
||||
"kill", //103
|
||||
"lchown", //104
|
||||
"lchown32", //105
|
||||
"lgetxattr", //106
|
||||
"link", //107
|
||||
"listxattr", //108
|
||||
"llistxattr", //109
|
||||
|
||||
|
||||
"lock", //110
|
||||
"lookup_dcookie", //111
|
||||
"lremovexattr", //112
|
||||
"lseek", //113
|
||||
"lsetxattr", //114
|
||||
"lstat", //115
|
||||
"lstat64", //116
|
||||
"madvise", //117
|
||||
"madvise1", //118
|
||||
"mincore", //119
|
||||
|
||||
|
||||
"mkdir", //120
|
||||
"mknod", //121
|
||||
"mlock", //122
|
||||
"mlockall", //123
|
||||
"mmap", //124
|
||||
"mmap2", //125
|
||||
"modify_ldt", //126
|
||||
"mount", //127
|
||||
"mprotect", //128
|
||||
"mpx", //129
|
||||
|
||||
|
||||
"mremap", //130
|
||||
"msync", //131
|
||||
"munlock", //132
|
||||
"munlockall", //133
|
||||
"munmap", //134
|
||||
"nanosleep", //135
|
||||
"nfsservctl", //136
|
||||
"nice", //137
|
||||
"oldfstat", //138
|
||||
"oldlstat", //139
|
||||
|
||||
|
||||
"oldolduname", //140
|
||||
"oldstat", //141
|
||||
"olduname", //142
|
||||
"open", //143
|
||||
"pause", //144
|
||||
"personality", //145
|
||||
"pipe", //146
|
||||
"pivot_root", //147
|
||||
"poll", //148
|
||||
"prctl", //149
|
||||
|
||||
|
||||
"pread64", //150
|
||||
"prof", //151
|
||||
"profil", //152
|
||||
"ptrace", //153
|
||||
"putpmsg", //154
|
||||
"pwrite64", //155
|
||||
"query_module", //156
|
||||
"quotactl", //157
|
||||
"read", //158
|
||||
"readahead", //159
|
||||
|
||||
|
||||
"readdir", //160
|
||||
"readlink", //161
|
||||
"readv", //162
|
||||
"reboot", //163
|
||||
"remap_file_pages", //164
|
||||
"removexattr", //165
|
||||
"rename", //166
|
||||
"restart_syscall", //167
|
||||
"rmdir", //168
|
||||
"rt_sigaction", //169
|
||||
|
||||
|
||||
"rt_sigpending", //170
|
||||
"rt_sigprocmask", //171
|
||||
"rt_sigqueueinfo", //172
|
||||
"rt_sigreturn", //173
|
||||
"rt_sigsuspend", //174
|
||||
"rt_sigtimedwait", //175
|
||||
"sched_get_priority_max", //176
|
||||
"sched_get_priority_min", //177
|
||||
"sched_getaffinity", //178
|
||||
"sched_getparam", //179
|
||||
|
||||
|
||||
"sched_getscheduler", //180
|
||||
"sched_rr_get_interval", //181
|
||||
"sched_setaffinity", //182
|
||||
"sched_setparam", //183
|
||||
"sched_setscheduler", //184
|
||||
"sched_yield", //185
|
||||
"select", //186
|
||||
"sendfile", //187
|
||||
"sendfile64", //188
|
||||
"set_thread_area", //189
|
||||
|
||||
|
||||
"set_tid_address", //190
|
||||
"setdomainname", //191
|
||||
"setfsgid", //192
|
||||
"setfsgid32", //193
|
||||
"setfsuid", //194
|
||||
"setfsuid32", //195
|
||||
"setgid", //196
|
||||
"setgid32", //197
|
||||
"setgroups", //198
|
||||
"setgroups32", //199
|
||||
|
||||
|
||||
"sethostname", //200
|
||||
"setitimer", //201
|
||||
"setpgid", //202
|
||||
"setpriority", //203
|
||||
"setregid", //204
|
||||
"setregid32", //205
|
||||
"setresgid", //206
|
||||
"setresgid32", //207
|
||||
"setresuid", //208
|
||||
"setresuid32", //209
|
||||
|
||||
|
||||
"setreuid", //210
|
||||
"setreuid32", //211
|
||||
"setrlimit", //212
|
||||
"setsid", //213
|
||||
"settimeofday", //214
|
||||
"setuid", //215
|
||||
"setuid32", //216
|
||||
"setxattr", //217
|
||||
"sgetmask", //218
|
||||
"sigaction", //219
|
||||
|
||||
|
||||
"sigaltstack", //220
|
||||
"signal", //221
|
||||
"sigpending", //222
|
||||
"sigprocmask", //223
|
||||
"sigreturn", //224
|
||||
"sigsuspend", //225
|
||||
"socketcall", //226
|
||||
"ssetmask", //227
|
||||
"stat", //228
|
||||
"stat64", //229
|
||||
|
||||
|
||||
"statfs", //230
|
||||
"statfs64", //231
|
||||
"stime", //232
|
||||
"stty", //233
|
||||
"swapoff", //234
|
||||
"swapon", //235
|
||||
"symlink", //236
|
||||
"sync", //237
|
||||
"sysfs", //238
|
||||
"sysinfo", //239
|
||||
|
||||
|
||||
"syslog", //240
|
||||
"tgkill", //241
|
||||
"time", //242
|
||||
"timer_create", //243
|
||||
"timer_delete", //244
|
||||
"timer_getoverrun", //245
|
||||
"timer_gettime", //246
|
||||
"timer_settime", //247
|
||||
"times", //248
|
||||
"tkill", //249
|
||||
|
||||
|
||||
"truncate", //250
|
||||
"truncate64", //251
|
||||
"ugetrlimit", //252
|
||||
"ulimit", //253
|
||||
"umask", //254
|
||||
"umount", //255
|
||||
"umount2", //256
|
||||
"uname", //257
|
||||
"unlink", //258
|
||||
"uselib", //259
|
||||
|
||||
|
||||
"ustat", //260
|
||||
"utime", //261
|
||||
"utimes", //262
|
||||
"vfork", //263
|
||||
"vhangup", //264
|
||||
"vm86", //265
|
||||
"vm86old", //266
|
||||
"vserver", //267
|
||||
"wait4", //268
|
||||
"waitpid", //269
|
||||
|
||||
|
||||
"write", //270
|
||||
"writev", //271
|
||||
};
|
||||
|
||||
|
||||
}
|
||||
|
||||
const char *
|
||||
SystemCalls<Linux>::name(int num)
|
||||
{
|
||||
if (num >= StandardNumber)
|
||||
return 0;
|
||||
else if (num >= 0)
|
||||
return standard_strings[num];
|
||||
else
|
||||
return 0;
|
||||
}
|
||||
Reference in New Issue
Block a user