44 #define TEMU_ATC_FETCH 1
45 #define TEMU_ATC_READ (1 << 1)
46 #define TEMU_ATC_WRITE (1 << 2)
47 #define TEMU_ATC_USER (1 << 3)
48 #define TEMU_ATC_SUPER (1 << 4)
49 #define TEMU_ATC_HYPER (1 << 5)
165 void (*
reset)(
void *Cpu,
int ResetType);
179 void (*
setPc)(
void *Cpu, uint64_t Pc);
181 void (*
setGpr)(
void *Cpu,
int Reg, uint64_t Value);
182 uint64_t (*
getGpr)(
void *Cpu,
unsigned Reg);
183 void (*
setFpr32)(
void *Cpu,
unsigned Reg, uint32_t Value);
185 void (*
setFpr64)(
void *Cpu,
unsigned Reg, uint64_t Value);
187 void (*
setSpr)(
void *Cpu,
unsigned Reg, uint64_t Value);
188 uint64_t (*
getSpr)(
void *Cpu,
unsigned Reg);
190 const char* (*getRegName)(
void *Cpu,
int RegId);
191 uint32_t (*
assemble)(
void *Cpu,
const char *AsmStr);
192 char* (*disassemble)(
void *Cpu, uint32_t Instr);
209 void* (*getMachine)(
void *Cpu);
212 const char* (*getTrapName)(
void *Cpu,
int Trap);
225 #define TEMU_CPU_IFACE_TYPE "CpuIface"
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)
Emulator panic (e.g. illegal mode transition)
temu_PowerState
Used to indicate whether a model is powered on.
uint32_t(* getFpr32)(void *Cpu, unsigned Reg)
void(* enableTraps)(void *Cpu)
void(* invalidateAtc)(void *Obj, uint64_t Addr, uint64_t Pages, uint32_t Flags)
temu_Endian InstructionEndianess
Exited due to watchpoint write hit.
void(* setFpr32)(void *Cpu, unsigned Reg, uint32_t Value)
uint64_t(* getFreq)(void *Cpu)
temu_Endian DataEndianess
void(* disableTraps)(void *Cpu)
void(* raiseTrapNoJmp)(void *Cpu, int Trap)
void(* enterIdleMode)(void *Obj)
uint64_t(* getPc)(void *Cpu)
temu_PowerState(* getPowerState)(void *Cpu)
#define TEMU_IFACE_REFERENCE_TYPE(N)
uint64_t(* getSpr)(void *Cpu, unsigned Reg)
unsigned NumInstructionSets
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_CpuExitReason(* runUntil)(void *Cpu, uint64_t Cycles)
void(* enableErrorModeEvents)(void *Cpu)
void(* setGpr)(void *Cpu, int Reg, uint64_t Value)
void(* disableErrorModeEvents)(void *Cpu)
void(* forceEarlyExit)(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)