9 #ifndef TEMU_SUPPORT_MEMORY 10 #define TEMU_SUPPORT_MEMORY 58 void (*
clearAttr)(
void *Obj, uint64_t Addr, uint64_t Len,
66 int (*
unmapRange)(
void *Obj, uint64_t Addr, uint64_t Len);
74 #define TEMU_MEMORY_SPACE_IFACE_TYPE "MemorySpaceIface" 77 #define TEMU_PDC_PSEUDO_UNKNOWN_INSTR 0 78 #define TEMU_PDC_PSEUDO_EOP 1 79 #define TEMU_PDC_PSEUDO_TRAMPOLINE 2 80 #define TEMU_PDC_PSEUDO_POST_DS_0 3 81 #define TEMU_PDC_PSEUDO_POST_DS_1 4 82 #define TEMU_PDC_PSEUDO_ATTRIB_CHECK 5 83 #define TEMU_PDC_PSEUDO_PROFILE 6 84 #define TEMU_PDC_PSEUDO_PRE_TRAMPOLINE 7 85 #define TEMU_PDC_PSEUDO_MULTIPAGE 8 86 #define TEMU_PDC_PSEUDO_OP_COUNT 9 99 void *(*getPDC)(
void *Obj, uint64_t Addr);
100 void (*allocPDC)(
void *Obj, uint64_t Addr);
101 void (*disposePDC)(
void *Obj, uint64_t Addr);
102 void (*writePDC)(
void *Obj, uint64_t Addr,
void *Inst);
103 void (*clearPDC)(
void *Obj, uint64_t Addr);
104 void (*setPseudoOpHandler)(
void *Obj,
unsigned Opcode, uintptr_t Handler);
105 void (*installTrampoline)(
void *Obj, uint64_t Addr,
106 void (*TrampHandler)(
void *));
107 void (*installProfile)(
void *Obj, uint64_t Addr);
108 void (*removeProfile)(
void *Obj, uint64_t Addr);
110 void (*setBT)(
void *Obj, uint64_t Addr,
void *BTP);
113 void (*releasePDCChain)(
void *Obj, uint64_t Addr);
115 uint64_t (*irToPA)(
void *obj, uint64_t addr);
118 #define TEMU_PDC_IFACE_TYPE "PDCIface" 134 uint32_t size,
int swap);
149 uint32_t size,
int swap);
164 unsigned unitSize, uint32_t size,
178 const uint8_t *buff,
unsigned unitSize,
179 uint32_t size,
unsigned flags);
196 void *MemObj, uint32_t Flags);
212 void *MemObj,
const char *IfaceName,
216 void *MemObj,
const char *IfaceName,
217 unsigned Idx, uint32_t Flags);
386 void (*Tramp)(
void *));
TEMU_API int temu_memoryReadPhys16(void *Obj, uint64_t Addr, uint16_t *Word)
User definable.
Definition: Memory.h:48
TEMU_API int temu_memoryWritePhys32Little(void *Obj, uint64_t Addr, uint32_t Word)
TEMU_API int temu_memoryMapNamedIface(void *Obj, uint64_t Addr, uint64_t Len, void *MemObj, const char *IfaceName, uint32_t Flags)
temu_MemoryAttrs(* getAttrs)(void *Obj, uint64_t Addr)
Definition: Memory.h:60
TEMU_API uint64_t temu_irToPhys(void *obj, uintptr_t ir)
int(* mapDeviceWithIface)(void *Obj, uint64_t Addr, uint64_t Len, temu_Object_ *Device, temu_MemAccessIface *Iface, uint32_t Flags)
Definition: Memory.h:68
TEMU_API int temu_memoryMap(void *Obj, uint64_t Addr, uint64_t Len, void *MemObj, uint32_t Flags)
TEMU_API void temu_memorySetAttr(void *Obj, uint64_t Addr, uint64_t Len, temu_MemoryAttr Attr)
struct temu_MemorySpaceIface temu_MemorySpaceIface
Write watchpoint set.
Definition: Memory.h:43
int(* unmapRange)(void *Obj, uint64_t Addr, uint64_t Len)
Definition: Memory.h:66
TEMU_API int temu_memoryRead(void *mem, uint8_t *buff, uint64_t addr, uint32_t size, int swap)
uint8_t temu_MemoryAttrs
Definition: Memory.h:50
TEMU_API uint32_t temu_normaliseWrite32(uint32_t OldVal, uint32_t NewVal, int Sz, int Off)
Read watchpoint set.
Definition: Memory.h:42
temu_MemoryAttr
Memory attribute enumeration.
Definition: Memory.h:40
void(* clearAttr)(void *Obj, uint64_t Addr, uint64_t Len, temu_MemoryAttr Attr)
Definition: Memory.h:58
TEMU_API uint16_t temu_normaliseWrite16(uint16_t OldVal, uint16_t NewVal, int Sz, int Off)
#define TEMU_API
Definition: Attributes.h:53
TEMU_API int temu_memoryReadPhys32(void *Obj, uint64_t Addr, uint32_t *Word)
Single event upset.
Definition: Memory.h:44
TEMU_API int temu_memoryReadPhys32Little(void *Obj, uint64_t Addr, uint32_t *Word)
TEMU_API void temu_memoryClearAttr(void *Obj, uint64_t Addr, uint64_t Len, temu_MemoryAttr Attr)
TEMU_API uint16_t temu_normaliseRead16(uint16_t Value, int Sz, int Off)
Breakpoint set.
Definition: Memory.h:41
uint32_t Operands
Definition: Memory.h:90
TEMU_API int temu_memoryMapNamedIface2(void *Obj, uint64_t Addr, uint64_t Len, void *MemObj, const char *IfaceName, unsigned Idx, uint32_t Flags)
#define temu_Object_
Definition: Temu2Compat.h:13
temu_IRInstruction Inst
Definition: Memory.h:94
Multiple event upset / uncorrectable.
Definition: Memory.h:45
TEMU_API int temu_memoryWritePhys32(void *Obj, uint64_t Addr, uint32_t Word)
TEMU_API int temu_memoryWriteData(void *obj, uint64_t addr, const uint8_t *buff, unsigned unitSize, uint32_t size, unsigned flags)
User definable.
Definition: Memory.h:47
uint32_t Instruction
Definition: Memory.h:89
TEMU_IFACE_REFERENCE_TYPE(temu_MemAccess)
void(* setAttr)(void *Obj, uint64_t Addr, uint64_t Len, temu_MemoryAttr Attr)
Definition: Memory.h:57
User definable.
Definition: Memory.h:46
TEMU_API int temu_memoryInstallTrampoline(void *Obj, uint64_t Addr, void(*Tramp)(void *))
TEMU_API uint32_t temu_normaliseRead32(uint32_t Value, int Sz, int Off)
temu_MemoryKind
Definition: Memory.h:20
TEMU_API int temu_memoryReadData(void *obj, uint64_t addr, uint8_t *buff, unsigned unitSize, uint32_t size, unsigned flags)
TEMU_API temu_MemoryAttrs temu_memoryGetAttrs(void *Obj, uint64_t Addr)
uint64_t ExtParam
Definition: Memory.h:95
TEMU_API int temu_memoryReadPhys16Little(void *Obj, uint64_t Addr, uint16_t *Word)
TEMU_API int temu_memoryWrite(void *mem, uint64_t addr, uint8_t *buff, uint32_t size, int swap)
int(* mapDevice)(void *Obj, uint64_t Addr, uint64_t Len, temu_Object_ *Device, uint32_t Flags)
Definition: Memory.h:55
int(* mapDeviceWithNamedIface)(void *Obj, uint64_t Addr, uint64_t Len, temu_Object_ *Device, const char *IfaceName, uint32_t Flags)
Definition: Memory.h:62