summaryrefslogtreecommitdiff
path: root/src/arch/x86/linux
diff options
context:
space:
mode:
authorMarc Orr <marc.orr@gmail.com>2012-08-06 16:52:40 -0700
committerMarc Orr <marc.orr@gmail.com>2012-08-06 16:52:40 -0700
commitd55115936e0711422c6d708572b391e15432bec1 (patch)
tree13c179e67d6aff1273a56edc8bcc20cddef6b380 /src/arch/x86/linux
parent62425b7a0724033bbd50170400ad2ff83ad57429 (diff)
downloadgem5-d55115936e0711422c6d708572b391e15432bec1.tar.xz
syscall emulation: Clean up ioctl handling, and implement for x86.
Enable different whitelists for different OS/arch combinations, since some use the generic Linux definitions only, and others use definitions inherited from earlier Unix flavors on those architectures. Also update x86 function pointers so ioctl is no longer unimplemented on that platform. This patch is a revised version of Vince Weaver's earlier patch.
Diffstat (limited to 'src/arch/x86/linux')
-rw-r--r--src/arch/x86/linux/syscalls.cc4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/arch/x86/linux/syscalls.cc b/src/arch/x86/linux/syscalls.cc
index e9322f5eb..322868ee1 100644
--- a/src/arch/x86/linux/syscalls.cc
+++ b/src/arch/x86/linux/syscalls.cc
@@ -229,7 +229,7 @@ SyscallDesc X86_64LinuxProcess::syscallDescs[] = {
/* 13 */ SyscallDesc("rt_sigaction", ignoreFunc),
/* 14 */ SyscallDesc("rt_sigprocmask", ignoreFunc),
/* 15 */ SyscallDesc("rt_sigreturn", unimplementedFunc),
- /* 16 */ SyscallDesc("ioctl", unimplementedFunc),
+ /* 16 */ SyscallDesc("ioctl", ioctlFunc<X86Linux64>),
/* 17 */ SyscallDesc("pread64", unimplementedFunc),
/* 18 */ SyscallDesc("pwrite64", unimplementedFunc),
/* 19 */ SyscallDesc("readv", unimplementedFunc),
@@ -546,7 +546,7 @@ SyscallDesc I386LinuxProcess::syscallDescs[] = {
/* 51 */ SyscallDesc("acct", unimplementedFunc),
/* 52 */ SyscallDesc("umount2", unimplementedFunc),
/* 53 */ SyscallDesc("lock", unimplementedFunc),
- /* 54 */ SyscallDesc("ioctl", unimplementedFunc),
+ /* 54 */ SyscallDesc("ioctl", ioctlFunc<X86Linux32>),
/* 55 */ SyscallDesc("fcntl", unimplementedFunc),
/* 56 */ SyscallDesc("mpx", unimplementedFunc),
/* 57 */ SyscallDesc("setpgid", unimplementedFunc),