12 uintptr_t getStackPointer()
const {
15 void setStackPointer(uintptr_t value) {
18 uintptr_t getInstructionPointer()
const {
21 void setInstructionPointer(uintptr_t value) {
24 uintptr_t getBasePointer()
const {
27 void setBasePointer(uintptr_t value) {
31 size_t getRegisterCount()
const {
34 processor_register_t getRegister(
size_t index)
const;
35 void setRegister(
size_t index, uintptr_t value);
36 const char* getRegisterName(
size_t index)
const;
37 size_t getRegisterSize(
size_t)
const {
38 return sizeof(uint64_t);
41 bool kernelMode()
const {
42 return (pstate & 0xf) != 0;
44 size_t getInterruptNumber()
const {
47 uintptr_t getErrorCode()
const {
50 uint64_t getFlags()
const {
53 void setFlags(uint64_t value) {
71 size_t getSyscallService()
const {
72 return (esr & 0xffff) ? (x[8] >> 16) & 0xffff : 0;
74 size_t getSyscallNumber()
const {
75 return (esr & 0xffff) ? x[8] & 0xffff : x[8];
77 uintptr_t getSyscallParameter(
size_t n)
const {
78 return n < 6 ? x[n] : (n < 12 ? x[n - 6] : 0);
80 void setSyscallReturnValue(uintptr_t value) {
83 void setSyscallErrno(uintptr_t value) {
99 for (
size_t i = 0; i < 31; ++i) {
104 pstate = state.pstate;
108 uintptr_t getStackPointer()
const {
111 void setStackPointer(uintptr_t value) {
114 uintptr_t getInstructionPointer()
const {
117 void setInstructionPointer(uintptr_t value) {
120 uintptr_t getBasePointer()
const {
123 void setBasePointer(uintptr_t value) {