diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/sim/syscall_return.hh | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/src/sim/syscall_return.hh b/src/sim/syscall_return.hh index b2e324827..b60434e40 100644 --- a/src/sim/syscall_return.hh +++ b/src/sim/syscall_return.hh @@ -63,9 +63,10 @@ class SyscallReturn /// conversion, so a bare integer is used where a SyscallReturn /// value is expected, e.g., as the return value from a system /// call emulation function ('return 0;' or 'return -EFAULT;'). - SyscallReturn(int64_t v) - : value(v), retryFlag(false) - {} + SyscallReturn(int64_t v) : value(v) {} + + /// A SyscallReturn constructed with no value means don't return anything. + SyscallReturn() : suppressedFlag(true) {} /// Pseudo-constructor to create an instance with the retry flag set. static SyscallReturn @@ -88,6 +89,9 @@ class SyscallReturn /// Does the syscall need to be retried? bool needsRetry() const { return retryFlag; } + /// Should returning this value be suppressed? + bool suppressed() const { return suppressedFlag; } + /// The return value int64_t returnValue() const @@ -110,7 +114,8 @@ class SyscallReturn private: int64_t value; - bool retryFlag; + bool retryFlag = false; + bool suppressedFlag = false; }; #endif |