summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/sim/syscall_desc.cc8
-rw-r--r--src/sim/syscall_desc.hh42
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__