sim: Get rid of the now unused SyscallDesc flags and methods.
Jira Issue: https://gem5.atlassian.net/browse/GEM5-187 Change-Id: Icee18a4bd77a346d7f82ef4988651b753392d51e Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/23170 Tested-by: kokoro <noreply+kokoro@google.com> Reviewed-by: Giacomo Travaglini <giacomo.travaglini@arm.com> Reviewed-by: Gabe Black <gabeblack@google.com> Maintainer: Gabe Black <gabeblack@google.com>
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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__
|
||||
|
||||
Reference in New Issue
Block a user