38 #ifndef __ARCH_ARM_PAUTH_HELPERS_HH__ 39 #define __ARCH_ARM_PAUTH_HELPERS_HH__ 56 return (el ==
EL1 || el ==
EL0 || (el ==
EL2 && hcr.e2h == 1));
78 uint64_t modifier, uint64_t k1, uint64_t
k0,
bool data);
83 uint64_t k1, uint64_t K0,
bool data, uint8_t errorcode);
125 #endif //__ARCH_ARM_PAUTH_HELPERS_HH__ Fault authIA(ThreadContext *tc, uint64_t X, uint64_t Y, uint64_t *out)
bool upperAndLowerRange(ThreadContext *tc, ExceptionLevel el)
Fault authIB(ThreadContext *tc, uint64_t X, uint64_t Y, uint64_t *out)
Fault addPACGA(ThreadContext *tc, uint64_t X, uint64_t Y, uint64_t *out)
Fault stripPAC(ThreadContext *tc, uint64_t A, bool data, uint64_t *out)
ThreadContext is the external interface to all thread state for anything outside of the CPU...
Fault addPACDA(ThreadContext *tc, uint64_t X, uint64_t Y, uint64_t *out)
Fault authDB(ThreadContext *tc, uint64_t X, uint64_t Y, uint64_t *out)
Fault addPACDB(ThreadContext *tc, uint64_t X, uint64_t Y, uint64_t *out)
int calculateBottomPACBit(ThreadContext *tc, ExceptionLevel el, bool top_bit)
uint64_t addPAC(ThreadContext *tc, ExceptionLevel el, uint64_t ptr, uint64_t modifier, uint64_t k1, uint64_t k0, bool data)
Fault trapPACUse(ThreadContext *tc, ExceptionLevel el)
bool calculateTBI(ThreadContext *tc, ExceptionLevel el, uint64_t ptr, bool data)
Fault addPACIB(ThreadContext *tc, uint64_t X, uint64_t Y, uint64_t *out)
uint64_t auth(ThreadContext *tc, ExceptionLevel el, uint64_t ptr, uint64_t modifier, uint64_t k1, uint64_t K0, bool data, uint8_t errorcode)
Fault addPACIA(ThreadContext *tc, uint64_t X, uint64_t Y, uint64_t *out)
Fault authDA(ThreadContext *tc, uint64_t X, uint64_t Y, uint64_t *out)
virtual RegVal readMiscReg(RegIndex misc_reg)=0
std::shared_ptr< FaultBase > Fault