diff options
Diffstat (limited to 'kern/linux')
-rw-r--r-- | kern/linux/events.cc | 55 | ||||
-rw-r--r-- | kern/linux/events.hh | 50 | ||||
-rw-r--r-- | kern/linux/linux.hh | 283 | ||||
-rw-r--r-- | kern/linux/linux_syscalls.cc | 374 | ||||
-rw-r--r-- | kern/linux/linux_syscalls.hh | 326 | ||||
-rw-r--r-- | kern/linux/printk.cc | 261 | ||||
-rw-r--r-- | kern/linux/printk.hh | 36 | ||||
-rw-r--r-- | kern/linux/sched.hh | 45 |
8 files changed, 0 insertions, 1430 deletions
diff --git a/kern/linux/events.cc b/kern/linux/events.cc deleted file mode 100644 index b688e9dd0..000000000 --- a/kern/linux/events.cc +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Copyright (c) 2004-2006 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 "arch/arguments.hh" -#include "base/trace.hh" -#include "cpu/exec_context.hh" -#include "kern/linux/events.hh" -#include "kern/linux/printk.hh" -#include "kern/system_events.hh" -#include "sim/system.hh" - - -namespace Linux { - -void -DebugPrintkEvent::process(ExecContext *xc) -{ - if (DTRACE(DebugPrintf)) { - if (!raw) { - StringWrap name(xc->getSystemPtr()->name() + ".dprintk"); - DPRINTFN(""); - } - - AlphaISA::AlphaArguments args(xc); - Printk(args); - SkipFuncEvent::process(xc); - } -} - -} // namespace linux diff --git a/kern/linux/events.hh b/kern/linux/events.hh deleted file mode 100644 index 95c268976..000000000 --- a/kern/linux/events.hh +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Copyright (c) 2004-2006 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. - */ - -#ifndef __KERN_LINUX_EVENTS_HH__ -#define __KERN_LINUX_EVENTS_HH__ - -#include "kern/system_events.hh" - -namespace Linux { - -class DebugPrintkEvent : public SkipFuncEvent -{ - private: - bool raw; - - public: - DebugPrintkEvent(PCEventQueue *q, const std::string &desc, Addr addr, - bool r = false) - : SkipFuncEvent(q, desc, addr), raw(r) {} - virtual void process(ExecContext *xc); -}; - -} - -#endif diff --git a/kern/linux/linux.hh b/kern/linux/linux.hh deleted file mode 100644 index 63e0dd5ca..000000000 --- a/kern/linux/linux.hh +++ /dev/null @@ -1,283 +0,0 @@ -/* - * Copyright (c) 2004-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. - */ - -#ifndef __LINUX_HH__ -#define __LINUX_HH__ -#include "config/full_system.hh" - -#if FULL_SYSTEM - -class Linux {}; - -#else //!FULL_SYSTEM - -#include <dirent.h> -#include <errno.h> -#include <fcntl.h> // for host open() flags -#include <string.h> // for memset() -#include <sys/stat.h> -#include <sys/types.h> -#include <unistd.h> - -#include "arch/isa_traits.hh" -#include "sim/syscall_emul.hh" - -class TranslatingPort; - -/// -/// This class encapsulates the types, structures, constants, -/// functions, and syscall-number mappings specific to the Alpha Linux -/// syscall interface. -/// -class Linux { - - public: - - //@{ - /// Basic Linux types. - typedef uint64_t size_t; - typedef uint64_t off_t; - typedef int64_t time_t; - typedef uint32_t uid_t; - typedef uint32_t gid_t; - //@} - -#if BSD_HOST - typedef struct stat hst_stat; - typedef struct stat hst_stat64; -#else - typedef struct stat hst_stat ; - typedef struct stat64 hst_stat64; -#endif - - /// Stat buffer. Note that we can't call it 'stat' since that - /// gets #defined to something else on some systems. - struct tgt_stat { - uint32_t st_dev; //!< device - uint32_t st_ino; //!< inode - uint32_t st_mode; //!< mode - uint32_t st_nlink; //!< link count - uint32_t st_uid; //!< owner's user ID - uint32_t st_gid; //!< owner's group ID - uint32_t st_rdev; //!< device number - int32_t _pad1; //!< for alignment - int64_t st_size; //!< file size in bytes - uint64_t st_atimeX; //!< time of last access - uint64_t st_mtimeX; //!< time of last modification - uint64_t st_ctimeX; //!< time of last status change - uint32_t st_blksize; //!< optimal I/O block size - int32_t st_blocks; //!< number of blocks allocated - uint32_t st_flags; //!< flags - uint32_t st_gen; //!< unknown - }; - - // same for stat64 - struct tgt_stat64 { - uint64_t st_dev; - uint64_t st_ino; - uint64_t st_rdev; - int64_t st_size; - uint64_t st_blocks; - - uint32_t st_mode; - uint32_t st_uid; - uint32_t st_gid; - uint32_t st_blksize; - uint32_t st_nlink; - uint32_t __pad0; - - uint64_t tgt_st_atime; - uint64_t st_atime_nsec; - uint64_t tgt_st_mtime; - uint64_t st_mtime_nsec; - uint64_t tgt_st_ctime; - uint64_t st_ctime_nsec; - int64_t ___unused[3]; - }; - - /// Length of strings in struct utsname (plus 1 for null char). - static const int _SYS_NMLN = 65; - - /// Interface struct for uname(). - struct utsname { - char sysname[_SYS_NMLN]; //!< System name. - char nodename[_SYS_NMLN]; //!< Node name. - char release[_SYS_NMLN]; //!< OS release. - char version[_SYS_NMLN]; //!< OS version. - char machine[_SYS_NMLN]; //!< Machine type. - }; - - /// Limit struct for getrlimit/setrlimit. - struct rlimit { - uint64_t rlim_cur; //!< soft limit - uint64_t rlim_max; //!< hard limit - }; - - /// For gettimeofday(). - struct timeval { - int64_t tv_sec; //!< seconds - int64_t tv_usec; //!< microseconds - }; - - // For writev/readv - struct tgt_iovec { - uint64_t iov_base; // void * - uint64_t iov_len; - }; - - - /// For getrusage(). - struct rusage { - struct timeval ru_utime; //!< user time used - struct timeval ru_stime; //!< system time used - int64_t ru_maxrss; //!< max rss - int64_t ru_ixrss; //!< integral shared memory size - int64_t ru_idrss; //!< integral unshared data " - int64_t ru_isrss; //!< integral unshared stack " - int64_t ru_minflt; //!< page reclaims - total vmfaults - int64_t ru_majflt; //!< page faults - int64_t ru_nswap; //!< swaps - int64_t ru_inblock; //!< block input operations - int64_t ru_oublock; //!< block output operations - int64_t ru_msgsnd; //!< messages sent - int64_t ru_msgrcv; //!< messages received - int64_t ru_nsignals; //!< signals received - int64_t ru_nvcsw; //!< voluntary context switches - int64_t ru_nivcsw; //!< involuntary " - }; - - /// Helper function to convert a host stat buffer to a target stat - /// buffer. Also copies the target buffer out to the simulated - /// memory space. Used by stat(), fstat(), and lstat(). -#if !BSD_HOST - static void - copyOutStatBuf(TranslatingPort *mem, Addr addr, hst_stat *host) - { - using namespace TheISA; - - TypedBufferArg<Linux::tgt_stat> tgt(addr); - - tgt->st_dev = htog(host->st_dev); - tgt->st_ino = htog(host->st_ino); - tgt->st_mode = htog(host->st_mode); - tgt->st_nlink = htog(host->st_nlink); - tgt->st_uid = htog(host->st_uid); - tgt->st_gid = htog(host->st_gid); - tgt->st_rdev = htog(host->st_rdev); - tgt->st_size = htog(host->st_size); - tgt->st_atimeX = htog(host->st_atime); - tgt->st_mtimeX = htog(host->st_mtime); - tgt->st_ctimeX = htog(host->st_ctime); - tgt->st_blksize = htog(host->st_blksize); - tgt->st_blocks = htog(host->st_blocks); - - tgt.copyOut(mem); - } -#else - // Third version for bsd systems which no longer have any support for - // the old stat() call and stat() is actually a stat64() - static void - copyOutStatBuf(TranslatingPort *mem, Addr addr, hst_stat64 *host) - { - using namespace TheISA; - - TypedBufferArg<Linux::tgt_stat> tgt(addr); - - tgt->st_dev = htog(host->st_dev); - tgt->st_ino = htog(host->st_ino); - tgt->st_mode = htog(host->st_mode); - tgt->st_nlink = htog(host->st_nlink); - tgt->st_uid = htog(host->st_uid); - tgt->st_gid = htog(host->st_gid); - tgt->st_rdev = htog(host->st_rdev); - tgt->st_size = htog(host->st_size); - tgt->st_atimeX = htog(host->st_atime); - tgt->st_mtimeX = htog(host->st_mtime); - tgt->st_ctimeX = htog(host->st_ctime); - tgt->st_blksize = htog(host->st_blksize); - tgt->st_blocks = htog(host->st_blocks); - - tgt.copyOut(mem); - } -#endif - - - // Same for stat64 - static void - copyOutStat64Buf(TranslatingPort *mem, int fd, Addr addr, hst_stat64 *host) - { - using namespace TheISA; - - TypedBufferArg<Linux::tgt_stat64> tgt(addr); - - // fd == 1 checks are because libc does some checks - // that the stdout is interactive vs. a file - // this makes it work on non-linux systems - if (fd == 1) - tgt->st_dev = htog((uint64_t)0xA); - else - tgt->st_dev = htog((uint64_t)host->st_dev); - // XXX What about STAT64_HAS_BROKEN_ST_INO ??? - tgt->st_ino = htog((uint64_t)host->st_ino); - if (fd == 1) - tgt->st_rdev = htog((uint64_t)0x880d); - else - tgt->st_rdev = htog((uint64_t)host->st_rdev); - tgt->st_size = htog((int64_t)host->st_size); - tgt->st_blocks = htog((uint64_t)host->st_blocks); - - if (fd == 1) - tgt->st_mode = htog((uint32_t)0x2190); - else - tgt->st_mode = htog((uint32_t)host->st_mode); - tgt->st_uid = htog((uint32_t)host->st_uid); - tgt->st_gid = htog((uint32_t)host->st_gid); - tgt->st_blksize = htog((uint32_t)host->st_blksize); - tgt->st_nlink = htog((uint32_t)host->st_nlink); - tgt->tgt_st_atime = htog((uint64_t)host->st_atime); - tgt->tgt_st_mtime = htog((uint64_t)host->st_mtime); - tgt->tgt_st_ctime = htog((uint64_t)host->st_ctime); -#if defined(STAT_HAVE_NSEC) - tgt->st_atime_nsec = htog(host->st_atime_nsec); - tgt->st_mtime_nsec = htog(host->st_mtime_nsec); - tgt->st_ctime_nsec = htog(host->st_ctime_nsec); -#else - tgt->st_atime_nsec = 0; - tgt->st_mtime_nsec = 0; - tgt->st_ctime_nsec = 0; -#endif - - tgt.copyOut(mem); - } - -}; // class Linux - - -#endif // FULL_SYSTEM - -#endif // __LINUX_HH__ diff --git a/kern/linux/linux_syscalls.cc b/kern/linux/linux_syscalls.cc deleted file mode 100644 index c85b6d28f..000000000 --- a/kern/linux/linux_syscalls.cc +++ /dev/null @@ -1,374 +0,0 @@ -/* - * Copyright (c) 2004-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. - */ - -#include "kern/linux/linux_syscalls.hh" - -namespace { - const char * - standard_strings[SystemCalls<Linux>::Number] = { - - - "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 >= 0) && (num < Number)) - return standard_strings[num]; - else - return 0; -} diff --git a/kern/linux/linux_syscalls.hh b/kern/linux/linux_syscalls.hh deleted file mode 100644 index 7f2a08ea9..000000000 --- a/kern/linux/linux_syscalls.hh +++ /dev/null @@ -1,326 +0,0 @@ -/* - * Copyright (c) 2004-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. - */ - -#ifndef __KERN_LINUX_LINUX_SYSCALLS_HH__ -#define __KERN_LINUX_LINUX_SYSCALLS_HH__ - -#include "kern/linux/linux.hh" - -template <class OS> -class SystemCalls; - -template <> -class SystemCalls<Linux> -{ - public: - enum { - syscall = 0, - llseek = 1, - newselect = 2, - sysctl = 3, - access = 4, - acct = 5, - adjtimex = 6, - afs_syscall = 7, - alarm = 8, - bdflush = 9, - _break = 10, /*renamed from break*/ - brk = 11, - capget = 12, - capset = 13, - chdir = 14, - chmod = 15, - chown = 16, - chown32 = 17, - chroot = 18, - clock_getres = 19, - clock_gettime = 20, - clock_nanosleep = 21, - clock_settime = 22, - clone = 23, - close = 24, - creat = 25, - create_module = 26, - delete_module = 27, - dup = 28, - dup2 = 29, - epoll_create = 30, - epoll_ctl = 31, - epoll_wait = 32, - execve = 33, - exit = 34, - exit_group = 35, - fadvise64 = 36, - fadvise64_64 = 37, - fchdir = 38, - fchmod = 39, - fchown = 40, - fchown32 = 41, - fcntl = 42, - fcntl64 = 43, - fdatasync = 44, - fgetxattr = 45, - flistxattr = 46, - flock = 47, - fork = 48, - fremovexattr = 49, - fsetxattr = 50, - fstat = 51, - fstat64 = 52, - fstatfs = 53, - fstatfs64 = 54, - fsync = 55, - ftime = 56, - ftruncate = 57, - ftruncate64 = 58, - futex = 59, - get_kernel_syms = 60, - get_thread_area = 61, - getcwd = 62, - getdents = 63, - getdents64 = 64, - getegid = 65, - getegid32 = 66, - geteuid = 67, - geteuid32 = 68, - getgid = 69, - getgid32 = 70, - getgroups = 71, - getgroups32 = 72, - getitimer = 73, - getpgid = 74, - getpgrp = 75, - getpid = 76, - getpmsg = 77, - getppid = 78, - getpriority = 79, - getresgid = 80, - getresgid32 = 81, - getresuid = 82, - getresuid32 = 83, - getrlimit = 84, - getrusage = 85, - getsid = 86, - gettid = 87, - gettimeofday = 88, - getuid = 89, - getuid32 = 90, - getxattr = 91, - gtty = 92, - idle = 93, - init_module = 94, - io_cancel = 95, - io_destroy = 96, - io_getevents = 97, - io_setup = 98, - io_submit = 99, - ioctl = 100, - ioperm = 101, - iopl = 102, - ipc = 103, - kill = 104, - lchown = 105, - lchown32 = 106, - lgetxattr = 107, - link = 108, - listxattr = 109, - llistxattr = 110, - lock = 111, - lookup_dcookie = 112, - lremovexattr = 113, - lseek = 114, - lsetxattr = 115, - lstat = 116, - lstat64 = 117, - madvise = 118, - madvise1 = 119, - mincore = 120, - mkdir = 121, - mknod = 122, - mlock = 123, - mlockall = 124, - mmap = 125, - mmap2 = 126, - modify_ldt = 127, - mount = 128, - mprotect = 129, - mpx = 130, - mremap = 131, - msync = 132, - munlock = 133, - munlockall = 134, - munmap = 135, - nanosleep = 136, - nfsservctl = 137, - nice = 138, - oldfstat = 139, - oldlstat = 140, - oldolduname = 141, - oldstat = 142, - olduname = 143, - open = 144, - pause = 145, - personality = 146, - pipe = 147, - pivot_root = 148, - poll = 149, - prctl = 150, - pread64 = 151, - prof = 152, - profil = 153, - ptrace = 154, - putpmsg = 155, - pwrite64 = 156, - query_module = 157, - quotactl = 158, - read = 159, - readahead = 160, - readdir = 161, - readlink = 162, - readv = 163, - reboot = 164, - remap_file_pages = 165, - removexattr = 166, - rename = 167, - restart_syscall = 168, - rmdir = 169, - rt_sigaction = 170, - rt_sigpending = 171, - rt_sigprocmask = 172, - rt_sigqueueinfo = 173, - rt_sigreturn = 174, - rt_sigsuspend = 175, - rt_sigtimedwait = 176, - sched_get_priority_max = 177, - sched_get_priority_min = 178, - sched_getaffinity = 179, - sched_getparam = 180, - sched_getscheduler = 181, - sched_rr_get_interval = 182, - sched_setaffinity = 183, - sched_setparam = 184, - sched_setscheduler = 185, - sched_yield = 186, - select = 187, - sendfile = 188, - sendfile64 = 189, - set_thread_area = 190, - set_tid_address = 191, - setdomainname = 192, - setfsgid = 193, - setfsgid32 = 194, - setfsuid = 195, - setfsuid32 = 196, - setgid = 197, - setgid32 = 198, - setgroups = 199, - setgroups32 = 200, - sethostname = 201, - setitimer = 202, - setpgid = 203, - setpriority = 204, - setregid = 205, - setregid32 = 206, - setresgid = 207, - setresgid32 = 208, - setresuid = 209, - setresuid32 = 210, - setreuid = 211, - setreuid32 = 212, - setrlimit = 213, - setsid = 214, - settimeofday = 215, - setuid = 216, - setuid32 = 217, - setxattr = 218, - sgetmask = 219, - sigaction = 220, - sigaltstack = 221, - signal = 222, - sigpending = 223, - sigprocmask = 224, - sigreturn = 225, - sigsuspend = 226, - socketcall = 227, - ssetmask = 228, - stat = 229, - stat64 = 230, - statfs = 231, - statfs64 = 232, - stime = 233, - stty = 234, - swapoff = 235, - swapon = 236, - symlink = 237, - sync = 238, - sysfs = 239, - sysinfo = 240, - syslog = 241, - tgkill = 242, - time = 243, - timer_create = 244, - timer_delete = 245, - timer_getoverrun = 246, - timer_gettime = 247, - timer_settime = 248, - times = 249, - tkill = 250, - truncate = 251, - truncate64 = 252, - ugetrlimit = 253, - ulimit = 254, - umask = 255, - umount = 256, - umount2 = 257, - uname = 258, - unlink = 259, - uselib = 260, - ustat = 261, - utime = 262, - utimes = 263, - vfork = 264, - vhangup = 265, - vm86 = 266, - vm86old = 267, - vserver = 268, - wait4 = 269, - waitpid = 270, - write = 271, - writev = 272, - Number - }; - - static const char *name(int num); - - static bool validSyscallNumber(int num) { - return num < Number; - } - -}; - -#endif // __KERN_LINUX_LINUX_SYSCALLS_HH__ diff --git a/kern/linux/printk.cc b/kern/linux/printk.cc deleted file mode 100644 index 918b8dabe..000000000 --- a/kern/linux/printk.cc +++ /dev/null @@ -1,261 +0,0 @@ -/* - * Copyright (c) 2004-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. - */ - -#include <sys/types.h> -#include <algorithm> - -#include "base/trace.hh" -#include "arch/arguments.hh" - -using namespace std; - - -void -Printk(AlphaISA::AlphaArguments args) -{ - char *p = (char *)args++; - - ios::fmtflags saved_flags = DebugOut().flags(); - char old_fill = DebugOut().fill(); - int old_precision = DebugOut().precision(); - - while (*p) { - switch (*p) { - case '%': { - bool more = true; - bool islong = false; - bool leftjustify = false; - bool format = false; - bool zero = false; - int width = 0; - while (more && *++p) { - switch (*p) { - case 'l': - case 'L': - islong = true; - break; - case '-': - leftjustify = true; - break; - case '#': - format = true; - break; - case '0': - if (width) - width *= 10; - else - zero = true; - break; - default: - if (*p >= '1' && *p <= '9') - width = 10 * width + *p - '0'; - else - more = false; - break; - } - } - - bool hexnum = false; - bool octal = false; - bool sign = false; - switch (*p) { - case 'X': - case 'x': - hexnum = true; - break; - case 'O': - case 'o': - octal = true; - break; - case 'D': - case 'd': - sign = true; - break; - case 'P': - format = true; - case 'p': - hexnum = true; - break; - } - - switch (*p) { - case 'D': - case 'd': - case 'U': - case 'u': - case 'X': - case 'x': - case 'O': - case 'o': - case 'P': - case 'p': { - if (hexnum) - DebugOut() << hex; - - if (octal) - DebugOut() << oct; - - if (format) { - if (!zero) - DebugOut().setf(ios::showbase); - else { - if (hexnum) { - DebugOut() << "0x"; - width -= 2; - } else if (octal) { - DebugOut() << "0"; - width -= 1; - } - } - } - - if (zero) - DebugOut().fill('0'); - - if (width > 0) - DebugOut().width(width); - - if (leftjustify && !zero) - DebugOut().setf(ios::left); - - if (sign) { - if (islong) - DebugOut() << (int64_t)args; - else - DebugOut() << (int32_t)args; - } else { - if (islong) - DebugOut() << (uint64_t)args; - else - DebugOut() << (uint32_t)args; - } - - if (zero) - DebugOut().fill(' '); - - if (width > 0) - DebugOut().width(0); - - DebugOut() << dec; - - ++args; - } - break; - - case 's': { - char *s = (char *)args; - if (!s) - s = "<NULL>"; - - if (width > 0) - DebugOut().width(width); - if (leftjustify) - DebugOut().setf(ios::left); - - DebugOut() << s; - ++args; - } - break; - case 'C': - case 'c': { - uint64_t mask = (*p == 'C') ? 0xffL : 0x7fL; - uint64_t num; - int width; - - if (islong) { - num = (uint64_t)args; - width = sizeof(uint64_t); - } else { - num = (uint32_t)args; - width = sizeof(uint32_t); - } - - while (width-- > 0) { - char c = (char)(num & mask); - if (c) - DebugOut() << c; - num >>= 8; - } - - ++args; - } - break; - case 'b': { - uint64_t n = (uint64_t)args++; - char *s = (char *)args++; - DebugOut() << s << ": " << n; - } - break; - case 'n': - case 'N': { - args += 2; -#if 0 - uint64_t n = (uint64_t)args++; - struct reg_values *rv = (struct reg_values *)args++; -#endif - } - break; - case 'r': - case 'R': { - args += 2; -#if 0 - uint64_t n = (uint64_t)args++; - struct reg_desc *rd = (struct reg_desc *)args++; -#endif - } - break; - case '%': - DebugOut() << '%'; - break; - } - ++p; - } - break; - case '\n': - DebugOut() << endl; - ++p; - break; - case '\r': - ++p; - if (*p != '\n') - DebugOut() << endl; - break; - - default: { - size_t len = strcspn(p, "%\n\r\0"); - DebugOut().write(p, len); - p += len; - } - } - } - - DebugOut().flags(saved_flags); - DebugOut().fill(old_fill); - DebugOut().precision(old_precision); -} - diff --git a/kern/linux/printk.hh b/kern/linux/printk.hh deleted file mode 100644 index b88c40f5e..000000000 --- a/kern/linux/printk.hh +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Copyright (c) 2004-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. - */ - -#ifndef __PRINTK_HH__ -#define __PRINTK_HH__ - -class AlphaISA::AlphaArguments; - -void Printk(AlphaISA::AlphaArguments args); - -#endif // __PRINTK_HH__ diff --git a/kern/linux/sched.hh b/kern/linux/sched.hh deleted file mode 100644 index a11fa590d..000000000 --- a/kern/linux/sched.hh +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Copyright (c) 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. - */ - -#ifndef __KERN_LINUX_SCHED_HH__ -#define __KERN_LINUX_SCHED_HH__ - -namespace Linux { - struct task_struct { - uint8_t junk1[0xf4]; - int32_t pid; - uint8_t junk2[0x190]; - uint64_ta start; - uint8_t junk3[0x5c]; - char name[16]; - }; - - -} - -#endif // __KERN_LINUX_SCHED_HH__ |