48 #define TEMU_ATC_FETCH 1
49 #define TEMU_ATC_READ (1 << 1)
50 #define TEMU_ATC_WRITE (1 << 2)
51 #define TEMU_ATC_USER (1 << 3)
52 #define TEMU_ATC_SUPER (1 << 4)
53 #define TEMU_ATC_HYPER (1 << 5)
138 void (*
reset)(
void *Cpu,
int ResetType);
152 void (*
setPc)(
void *Cpu, uint64_t Pc);
154 void (*
setGpr)(
void *Cpu,
int Reg, uint64_t Value);
155 uint64_t (*
getGpr)(
void *Cpu,
unsigned Reg);
156 void (*
setFpr32)(
void *Cpu,
unsigned Reg, uint32_t Value);
158 void (*
setFpr64)(
void *Cpu,
unsigned Reg, uint64_t Value);
160 void (*
setSpr)(
void *Cpu,
unsigned Reg, uint64_t Value);
161 uint64_t (*
getSpr)(
void *Cpu,
unsigned Reg);
163 const char* (*getRegName)(
void *Cpu,
int RegId);
164 uint32_t (*
assemble)(
void *Cpu,
const char *AsmStr);
165 char* (*disassemble)(
void *Cpu, uint32_t Instr);
temu_CpuState(* getState)(void *Cpu)
uint64_t(* getGpr)(void *Cpu, unsigned Reg)
struct temu_CpuIface temu_CpuIface
Common CPU interface.
Exited due to halting (e.g. sparc error mode)
temu_CpuExitReason(* step)(void *Cpu, uint64_t Steps)
uint32_t(* getFpr32)(void *Cpu, unsigned Reg)
TEMU_IFACE_REFERENCE_TYPE(temu_Cpu)
void(* enableTraps)(void *Cpu)
void(* invalidateAtc)(void *Obj, uint64_t Addr, uint64_t Pages, uint32_t Flags)
Exited due to watchpoint write hit.
void(* setFpr32)(void *Cpu, unsigned Reg, uint32_t Value)
uint64_t(* getFreq)(void *Cpu)
void(* disableTraps)(void *Cpu)
void(* enterIdleMode)(void *Obj)
uint64_t(* getPc)(void *Cpu)
temu_PowerState(* getPowerState)(void *Cpu)
uint64_t(* getSpr)(void *Cpu, unsigned Reg)
void temu_CpuExitReason Reason
Exited due to watchpoint read hit.
int(* getRegId)(void *Cpu, const char *RegName)
void __attribute__((noreturn))(*raiseTrap)(void *Obj
Exited due to breakpoint hit.
int64_t(* getCycles)(void *Cpu)
void(* setSpr)(void *Cpu, unsigned Reg, uint64_t Value)
temu_PowerState
Used to indicate whether a model is powered on.
temu_CpuExitReason(* runUntil)(void *Cpu, uint64_t Cycles)
void(* enableErrorModeEvents)(void *Cpu)
void(* setGpr)(void *Cpu, int Reg, uint64_t Value)
void(* disableErrorModeEvents)(void *Cpu)
uint32_t(* assemble)(void *Cpu, const char *AsmStr)
Normal exit (cannot be passed to early exit)
temu_CpuExitReason(* stepUntil)(void *Cpu, uint64_t Steps, uint64_t Cycles)
uint64_t(* getFpr64)(void *Cpu, unsigned Reg)
temu_CpuExitReason(* run)(void *Cpu, uint64_t Cycles)
void(* reset)(void *Cpu, int ResetType)
void(* setPc)(void *Cpu, uint64_t Pc)
void(* setFpr64)(void *Cpu, unsigned Reg, uint64_t Value)
uint64_t(* translateAddress)(void *Cpu, uint64_t Va, uint32_t *Flags)
int64_t(* getSteps)(void *Cpu)
Exited due to trap (sync trap)
void(* setPowerState)(void *Cpu, temu_PowerState Ps)
void(* disableTrapEvents)(void *Cpu)
void(* enableTrapEvents)(void *Cpu)