sim: Add GenericSyscallABI structs which can be used by the ISAs.
authorGabe Black <gabeblack@google.com>
Sat, 7 Dec 2019 01:42:58 +0000 (17:42 -0800)
committerGabe Black <gabeblack@google.com>
Thu, 12 Mar 2020 01:35:34 +0000 (01:35 +0000)
commitbe0d961bbf8fb722f3f32a2fa484f187e2b04d16
treeec702329f85e775ade97fd7535997d505adfbcb4
parent9d606b80b628cfca1684bc79b4271615435f946c
sim: Add GenericSyscallABI structs which can be used by the ISAs.

It's very common for system call arguments to be passed in a sequence
of registers, one argument per register. To avoid having that
implementation repeated over and over across the various ISAs and OSes,
these partial ABI implementations provide that mechanism they can just
pull in. They would need to define the sequence of registers to use,
and these would take care of the rest.

Unlike the temporary DefaultSyscallABI which defers to the Process
classes, these read registers from the ThreadContext directly.

Change-Id: Ic72eb8d784ecf4711b5eec76d958a87c70850fce
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/23441
Reviewed-by: Bobby R. Bruce <bbruce@ucdavis.edu>
Maintainer: Gabe Black <gabeblack@google.com>
Tested-by: kokoro <noreply+kokoro@google.com>
src/sim/syscall_abi.hh [new file with mode: 0644]