diff options
author | David Oehmke <doehmke@umich.edu> | 2004-02-05 12:16:17 -0500 |
---|---|---|
committer | David Oehmke <doehmke@umich.edu> | 2004-02-05 12:16:17 -0500 |
commit | 95c248c2139ff8d3568e1c92319727777f19920f (patch) | |
tree | 97497d04270a5288a02ea8576aa220ed90fced52 /arch/alpha | |
parent | 98948b2e572d10faf1ac91f977837cf2e8a903c3 (diff) | |
download | gem5-95c248c2139ff8d3568e1c92319727777f19920f.tar.xz |
Modify the emulated system calls to support running the SPEC Int
benchmarks for alpha-linux.
arch/alpha/alpha_linux_process.cc:
Added some more ioctl commands to ignore.
Set unlink and rename to the new functions.
Ignore setrlimit, times and rt_sigaction.
Should eventually provide a function for times.
arch/alpha/alpha_tru64_process.cc:
Added some more ioctl commands to ignore.
Set unlink and rename to the new functions.
Ignore setrlimit.
sim/syscall_emul.cc:
Added implementations for unlink and rename.
sim/syscall_emul.hh:
Added unlink and rename functions.
Added a couple more ioctl requests to ignore.
Print out the PC of any ioctl commands that fail.
--HG--
extra : convert_revision : 8af21c7fa7d0645d3f9324c9ce70ad33590c3c8e
Diffstat (limited to 'arch/alpha')
-rw-r--r-- | arch/alpha/alpha_linux_process.cc | 12 | ||||
-rw-r--r-- | arch/alpha/alpha_tru64_process.cc | 9 |
2 files changed, 13 insertions, 8 deletions
diff --git a/arch/alpha/alpha_linux_process.cc b/arch/alpha/alpha_linux_process.cc index d8a05849d..ae197d1ac 100644 --- a/arch/alpha/alpha_linux_process.cc +++ b/arch/alpha/alpha_linux_process.cc @@ -139,6 +139,8 @@ class Linux { static const unsigned TIOCGETC = 0x40067412; static const unsigned FIONREAD = 0x4004667f; static const unsigned TIOCISATTY = 0x2000745e; + static const unsigned TIOCGETS = 0x402c7413; + static const unsigned TIOCGETA = 0x40127417; //@} /// Resource enumeration for getrlimit(). @@ -421,7 +423,7 @@ SyscallDesc Linux::syscallDescs[] = { /* 7 */ SyscallDesc("osf_wait4", unimplementedFunc), /* 8 */ SyscallDesc("osf_old_creat", unimplementedFunc), /* 9 */ SyscallDesc("link", unimplementedFunc), - /* 10 */ SyscallDesc("unlink", unimplementedFunc), + /* 10 */ SyscallDesc("unlink", unlinkFunc), /* 11 */ SyscallDesc("osf_execve", unimplementedFunc), /* 12 */ SyscallDesc("chdir", unimplementedFunc), /* 13 */ SyscallDesc("fchdir", unimplementedFunc), @@ -539,7 +541,7 @@ SyscallDesc Linux::syscallDescs[] = { /* 125 */ SyscallDesc("recvfrom", unimplementedFunc), /* 126 */ SyscallDesc("setreuid", unimplementedFunc), /* 127 */ SyscallDesc("setregid", unimplementedFunc), - /* 128 */ SyscallDesc("rename", unimplementedFunc), + /* 128 */ SyscallDesc("rename", renameFunc), /* 129 */ SyscallDesc("truncate", unimplementedFunc), /* 130 */ SyscallDesc("ftruncate", unimplementedFunc), /* 131 */ SyscallDesc("flock", unimplementedFunc), @@ -556,7 +558,7 @@ SyscallDesc Linux::syscallDescs[] = { /* 142 */ SyscallDesc("osf_gethostid", unimplementedFunc), /* 143 */ SyscallDesc("osf_sethostid", unimplementedFunc), /* 144 */ SyscallDesc("getrlimit", getrlimitFunc<Linux>), - /* 145 */ SyscallDesc("setrlimit", unimplementedFunc), + /* 145 */ SyscallDesc("setrlimit", ignoreFunc), /* 146 */ SyscallDesc("osf_old_killpg", unimplementedFunc), /* 147 */ SyscallDesc("setsid", unimplementedFunc), /* 148 */ SyscallDesc("quotactl", unimplementedFunc), @@ -737,7 +739,7 @@ SyscallDesc Linux::syscallDescs[] = { /* 320 */ SyscallDesc("was sys_idle", unimplementedFunc), /* 321 */ SyscallDesc("oldumount", unimplementedFunc), /* 322 */ SyscallDesc("swapon", unimplementedFunc), - /* 323 */ SyscallDesc("times", unimplementedFunc), + /* 323 */ SyscallDesc("times", ignoreFunc), /* 324 */ SyscallDesc("personality", unimplementedFunc), /* 325 */ SyscallDesc("setfsuid", unimplementedFunc), /* 326 */ SyscallDesc("setfsgid", unimplementedFunc), @@ -766,7 +768,7 @@ SyscallDesc Linux::syscallDescs[] = { /* 349 */ SyscallDesc("pread", unimplementedFunc), /* 350 */ SyscallDesc("pwrite", unimplementedFunc), /* 351 */ SyscallDesc("rt_sigreturn", unimplementedFunc), - /* 352 */ SyscallDesc("rt_sigaction", unimplementedFunc), + /* 352 */ SyscallDesc("rt_sigaction", ignoreFunc), /* 353 */ SyscallDesc("rt_sigprocmask", unimplementedFunc), /* 354 */ SyscallDesc("rt_sigpending", unimplementedFunc), /* 355 */ SyscallDesc("rt_sigtimedwait", unimplementedFunc), diff --git a/arch/alpha/alpha_tru64_process.cc b/arch/alpha/alpha_tru64_process.cc index ccf4d4d6c..2366baed8 100644 --- a/arch/alpha/alpha_tru64_process.cc +++ b/arch/alpha/alpha_tru64_process.cc @@ -171,6 +171,9 @@ class Tru64 { static const unsigned TIOCGETC = 0x40067412; static const unsigned FIONREAD = 0x4004667f; static const unsigned TIOCISATTY = 0x2000745e; + // TIOCGETS not defined in tru64, so I made up a number + static const unsigned TIOCGETS = 0x40000000; + static const unsigned TIOCGETA = 0x402c7413; //@} /// Resource enumeration for getrlimit(). @@ -1356,7 +1359,7 @@ SyscallDesc Tru64::syscallDescs[] = { /* 7 */ SyscallDesc("wait4", unimplementedFunc), /* 8 */ SyscallDesc("old_creat", unimplementedFunc), /* 9 */ SyscallDesc("link", unimplementedFunc), - /* 10 */ SyscallDesc("unlink", unimplementedFunc), + /* 10 */ SyscallDesc("unlink", unlinkFunc), /* 11 */ SyscallDesc("execv", unimplementedFunc), /* 12 */ SyscallDesc("chdir", unimplementedFunc), /* 13 */ SyscallDesc("fchdir", unimplementedFunc), @@ -1475,7 +1478,7 @@ SyscallDesc Tru64::syscallDescs[] = { /* 125 */ SyscallDesc("old_recvfrom", unimplementedFunc), /* 126 */ SyscallDesc("setreuid", unimplementedFunc), /* 127 */ SyscallDesc("setregid", unimplementedFunc), - /* 128 */ SyscallDesc("rename", unimplementedFunc), + /* 128 */ SyscallDesc("rename", renameFunc), /* 129 */ SyscallDesc("truncate", unimplementedFunc), /* 130 */ SyscallDesc("ftruncate", unimplementedFunc), /* 131 */ SyscallDesc("flock", unimplementedFunc), @@ -1492,7 +1495,7 @@ SyscallDesc Tru64::syscallDescs[] = { /* 142 */ SyscallDesc("gethostid", unimplementedFunc), /* 143 */ SyscallDesc("sethostid", unimplementedFunc), /* 144 */ SyscallDesc("getrlimit", getrlimitFunc<Tru64>), - /* 145 */ SyscallDesc("setrlimit", unimplementedFunc), + /* 145 */ SyscallDesc("setrlimit", ignoreFunc), /* 146 */ SyscallDesc("old_killpg", unimplementedFunc), /* 147 */ SyscallDesc("setsid", unimplementedFunc), /* 148 */ SyscallDesc("quotactl", unimplementedFunc), |