|
libclues
Linux C++ Tracing Library
|
Holds a set of registers for the given ABI. More...
#include <RegisterSet.hxx>
Public Types | |
| using | ABIRegisterData = RegisterDataTraits<abi>::type |
| This is the concrete type holding the raw register data for this ABI. | |
| using | register_t = ABIRegisterData::register_t |
Public Member Functions | |
| RegisterSet (const cosmos::no_init_t &) | |
| void | fillIov (cosmos::InputMemoryRegion &iov) |
Prepares iov for doing a ptrace system call of type ptrace::Request::GETREGSET. | |
| void | iovFilled (const cosmos::InputMemoryRegion &iov) |
| Verify data received from a ptrace system call of type ptrace::Request::GETREGSET. | |
| auto | abiSyscallNr () const |
| Returns the ABI-specific system call number on entry to a syscall. | |
| SystemCallNr | syscallNr () const |
| Returns the generic SystemCallNr on entry to a syscall. | |
| register_t | syscallRes () const |
| Returns the system call result on exit from a syscall. | |
| register_t | syscallParameter (const size_t number) const |
| Returns the content of the given system call parameter register. | |
| auto & | raw () const |
| Provides access to the raw RegisterData based data structure. | |
Static Public Member Functions | |
| static constexpr cosmos::ptrace::RegisterType | registerType () |
| The type to pass to ptrace::Request::GETREGSET for obtaining the general purpose registers. | |
Static Public Attributes | |
| static constexpr auto | ABI = abi |
Protected Attributes | |
| ABIRegisterData | m_regs |
| The raw data structure holding the ABI specific register data. | |
Holds a set of registers for the given ABI.
This type holds and manages data for each of the ABI specific RegisterData types.
Definition at line 31 of file RegisterSet.hxx.
| using clues::RegisterSet< abi >::ABIRegisterData = RegisterDataTraits<abi>::type |
This is the concrete type holding the raw register data for this ABI.
Definition at line 35 of file RegisterSet.hxx.
| using clues::RegisterSet< abi >::register_t = ABIRegisterData::register_t |
Definition at line 37 of file RegisterSet.hxx.
|
inlineexplicit |
Definition at line 41 of file RegisterSet.hxx.
|
inline |
Definition at line 44 of file RegisterSet.hxx.
|
inline |
Returns the ABI-specific system call number on entry to a syscall.
Definition at line 70 of file RegisterSet.hxx.
|
inline |
Prepares iov for doing a ptrace system call of type ptrace::Request::GETREGSET.
Definition at line 49 of file RegisterSet.hxx.
|
inline |
Verify data received from a ptrace system call of type ptrace::Request::GETREGSET.
Definition at line 58 of file RegisterSet.hxx.
|
inline |
Provides access to the raw RegisterData based data structure.
Definition at line 97 of file RegisterSet.hxx.
|
inlinestaticconstexpr |
The type to pass to ptrace::Request::GETREGSET for obtaining the general purpose registers.
Definition at line 65 of file RegisterSet.hxx.
|
inline |
Returns the generic SystemCallNr on entry to a syscall.
Definition at line 73 of file RegisterSet.hxx.
|
inline |
Returns the content of the given system call parameter register.
The current ABI can pass up to ABIRegisterData::NUM_SYSCALL_PARS registers to system calls. To get the n'th system call parameter register content, pass (n - 1) as number (i.e. counting starts at zero).
Definition at line 87 of file RegisterSet.hxx.
|
inline |
Returns the system call result on exit from a syscall.
Definition at line 78 of file RegisterSet.hxx.
|
staticconstexpr |
Definition at line 36 of file RegisterSet.hxx.
|
protected |
The raw data structure holding the ABI specific register data.
Definition at line 104 of file RegisterSet.hxx.