This, among other things, prevents them from needing to toggle global
flags in the syscall desc table to control local behavior.
Jira Issue: https://gem5.atlassian.net/browse/GEM5-187
Change-Id: Idcef23766084f10d5205721b54a6768a850f7eb9
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/23167
Maintainer: Gabe Black <gabeblack@google.com>
Tested-by: kokoro <noreply+kokoro@google.com>
Reviewed-by: Brandon Potter <Brandon.Potter@amd.com>
} else
DPRINTF_SYSCALL(Base, "%s returns %d\n", _name, retval.encodedValue());
- if (!(_flags & SyscallDesc::SuppressReturnValue) && !retval.needsRetry())
+ if (!retval.suppressed() && !retval.needsRetry())
process->setSyscallReturn(tc, retval);
}
SyscallReturn
execveFunc(SyscallDesc *desc, int callnum, ThreadContext *tc)
{
- desc->setFlags(0);
auto p = tc->getProcessPtr();
int index = 0;
TheISA::PCState pcState = tc->pcState();
tc->setNPC(pcState.instAddr());
- desc->setFlags(SyscallDesc::SuppressReturnValue);
- return 0;
+ return SyscallReturn();
}
/// Target getrusage() function.