9 #ifndef TEMU_SUPPORT_MEMORY 10 #define TEMU_SUPPORT_MEMORY 68 void (*
clearAttr)(
void *Obj, uint64_t Addr, uint64_t Len,
79 int (*
unmapRange)(
void *Obj, uint64_t Addr, uint64_t Len);
90 #define TEMU_MEMORY_SPACE_IFACE_TYPE "temu::MemorySpaceIface" 93 #define TEMU_PDC_PSEUDO_UNKNOWN_INSTR 0 94 #define TEMU_PDC_PSEUDO_EOP 1 95 #define TEMU_PDC_PSEUDO_TRAMPOLINE 2 96 #define TEMU_PDC_PSEUDO_POST_DS_0 3 97 #define TEMU_PDC_PSEUDO_POST_DS_1 4 98 #define TEMU_PDC_PSEUDO_ATTRIB_CHECK 5 99 #define TEMU_PDC_PSEUDO_PROFILE 6 100 #define TEMU_PDC_PSEUDO_PRE_TRAMPOLINE 7 101 #define TEMU_PDC_PSEUDO_IDLE 8 102 #define TEMU_PDC_PSEUDO_SKIP 9 103 #define TEMU_PDC_PSEUDO_CALL 10 104 #define TEMU_PDC_PSEUDO_CALL_AND_SKIP 11 105 #define TEMU_PDC_PSEUDO_MULTIPAGE 12 106 #define TEMU_PDC_PSEUDO_OP_COUNT 13 119 void *(*getPDC)(
void *Obj, uint64_t Addr);
120 void (*allocPDC)(
void *Obj, uint64_t Addr);
121 void (*disposePDC)(
void *Obj, uint64_t Addr);
122 void (*writePDC)(
void *Obj, uint64_t Addr,
void *Inst);
123 void (*clearPDC)(
void *Obj, uint64_t Addr);
124 void (*setPseudoOpHandler)(
void *Obj,
unsigned Opcode, uintptr_t Handler);
125 void (*installTrampoline)(
void *Obj, uint64_t Addr,
126 void (*TrampHandler)(
void *));
127 void (*installProfile)(
void *Obj, uint64_t Addr);
128 void (*removeProfile)(
void *Obj, uint64_t Addr);
130 void (*installIdle)(
void *Obj, uint64_t Addr);
131 void (*removeIdle)(
void *Obj, uint64_t Addr);
133 void (*setBT)(
void *Obj, uint64_t Addr,
void *BTP);
136 void (*releasePDCChain)(
void *Obj, uint64_t Addr);
138 uint64_t (*irToPA)(
void *obj, uint64_t addr);
143 #define TEMU_PDC_IFACE_TYPE "PDCIface" 159 uint32_t size,
int swap);
174 uint32_t size,
int swap);
189 unsigned unitSize, uint32_t size,
203 const uint8_t *buff,
unsigned unitSize,
204 uint32_t size,
unsigned flags);
221 void *MemObj, uint32_t Flags);
237 void *MemObj,
const char *IfaceName,
241 void *MemObj,
const char *IfaceName,
242 unsigned Idx, uint32_t Flags);
411 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)
Get attributes for address.
Definition: Memory.h:71
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)
Map device with interface pointer.
Definition: Memory.h:82
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)
Unmap devices in range.
Definition: Memory.h:79
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
uint64_t(* getStat)(void *Obj, temu_MemoryStat Stat)
Definition: Memory.h:86
void(* clearAttr)(void *Obj, uint64_t Addr, uint64_t Len, temu_MemoryAttr Attr)
Clear attribute bit.
Definition: Memory.h:68
TEMU_API uint16_t temu_normaliseWrite16(uint16_t OldVal, uint16_t NewVal, int Sz, int Off)
#define TEMU_API
Definition: Attributes.h:53
Model is a memory space.
Definition: Memory.h:25
Model is a normal IO device.
Definition: Memory.h:24
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:110
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
Model is a ROM.
Definition: Memory.h:22
temu_IRInstruction Inst
Definition: Memory.h:114
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:109
TEMU_IFACE_REFERENCE_TYPE(temu_MemAccess)
void(* setAttr)(void *Obj, uint64_t Addr, uint64_t Len, temu_MemoryAttr Attr)
Set attribute bit.
Definition: Memory.h:66
User definable.
Definition: Memory.h:46
temu_MemoryStat
Definition: Memory.h:53
Model is a RAM.
Definition: Memory.h:21
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)
DO NOT USE.
Definition: Memory.h:26
Alias for teMK_IO
Definition: Memory.h:23
uint64_t ExtParam
Definition: Memory.h:115
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)
Map device (using the default MemAccessIface interface)
Definition: Memory.h:63
int(* mapDeviceWithNamedIface)(void *Obj, uint64_t Addr, uint64_t Len, temu_Object_ *Device, const char *IfaceName, uint32_t Flags)
Map device with named interface.
Definition: Memory.h:74