diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/sim/syscall_desc.cc | 8 | ||||
-rw-r--r-- | src/sim/syscall_desc.hh | 42 |
2 files changed, 2 insertions, 48 deletions
diff --git a/src/sim/syscall_desc.cc b/src/sim/syscall_desc.cc index bf378fe20..3d767f0ba 100644 --- a/src/sim/syscall_desc.cc +++ b/src/sim/syscall_desc.cc @@ -84,11 +84,3 @@ SyscallDesc::doSyscall(int callnum, ThreadContext *tc, Fault *fault) if (!retval.suppressed() && !retval.needsRetry()) process->setSyscallReturn(tc, retval); } - -bool -SyscallDesc::needWarning() -{ - bool suppress_warning = warnOnce() && _warned; - _warned = true; - return !suppress_warning; -} diff --git a/src/sim/syscall_desc.hh b/src/sim/syscall_desc.hh index 8f6e33d89..9a2859148 100644 --- a/src/sim/syscall_desc.hh +++ b/src/sim/syscall_desc.hh @@ -70,25 +70,10 @@ class SyscallDesc { using SyscallExecutor = std::function<SyscallReturn(SyscallDesc *, int num, ThreadContext *)>; - SyscallDesc(const char *name, - SyscallExecutor sys_exec=unimplementedFunc, int flags=0) - : _name(name), executor(sys_exec), _flags(flags), _warned(false) + SyscallDesc(const char *name, SyscallExecutor sys_exec=unimplementedFunc) + : _name(name), executor(sys_exec) {} - /** Provide a mechanism to specify behavior for abnormal system calls */ - enum Flags { - /** - * Do not set return registers according to executor return value. - * Used for system calls with non-standard return conventions that - * explicitly set the thread context regs (e.g., sigreturn, clone) - */ - SuppressReturnValue = 1, - /** Warn only once for unimplemented system calls */ - WarnOnce = 2 - /* X2 = 4, // Remove these comments when the next field is added; */ - /* X3 = 8, // point is to make it obvious that this defines vector */ - }; - /** * Interface for invoking the system call funcion pointer. Note that * this acts as a gateway for all system calls and serves a good point @@ -99,37 +84,14 @@ class SyscallDesc { */ void doSyscall(int callnum, ThreadContext *tc, Fault *fault); - /** - * Return false if WarnOnce is set and a warning has already been issued. - * Otherwise, return true. Updates state as a side effect to help - * keep track of issued warnings. - */ - bool needWarning(); - - bool warnOnce() const { return (_flags & WarnOnce); } - std::string name() { return _name; } - int getFlags() const { return _flags; } - - void setFlags(int flags) { _flags = flags; } - private: /** System call name (e.g., open, mmap, clone, socket, etc.) */ std::string _name; /** Mechanism for ISAs to connect to the emul function definitions */ SyscallExecutor executor; - - /** - * Holds values set with the preceding enum; note that this has been - * used primarily for features that are mutually exclusive, but there's - * no reason that this needs to be true going forward. - */ - int _flags; - - /** Set if WarnOnce is specified in flags AFTER first call */ - bool _warned; }; #endif // __SIM_SYSCALL_DESC_HH__ |