9 #ifndef TEMU_SUPPORT_MEMORY 10 #define TEMU_SUPPORT_MEMORY 61 void (*
clearAttr)(
void *Obj, uint64_t Addr, uint64_t Len,
72 int (*
unmapRange)(
void *Obj, uint64_t Addr, uint64_t Len);
81 #define TEMU_MEMORY_SPACE_IFACE_TYPE "temu::MemorySpaceIface" 84 #define TEMU_PDC_PSEUDO_UNKNOWN_INSTR 0 85 #define TEMU_PDC_PSEUDO_EOP 1 86 #define TEMU_PDC_PSEUDO_TRAMPOLINE 2 87 #define TEMU_PDC_PSEUDO_POST_DS_0 3 88 #define TEMU_PDC_PSEUDO_POST_DS_1 4 89 #define TEMU_PDC_PSEUDO_ATTRIB_CHECK 5 90 #define TEMU_PDC_PSEUDO_PROFILE 6 91 #define TEMU_PDC_PSEUDO_PRE_TRAMPOLINE 7 92 #define TEMU_PDC_PSEUDO_IDLE 8 93 #define TEMU_PDC_PSEUDO_SKIP 9 94 #define TEMU_PDC_PSEUDO_CALL 10 95 #define TEMU_PDC_PSEUDO_CALL_AND_SKIP 11 96 #define TEMU_PDC_PSEUDO_MULTIPAGE 12 97 #define TEMU_PDC_PSEUDO_OP_COUNT 13 110 void *(*getPDC)(
void *Obj, uint64_t Addr);
111 void (*allocPDC)(
void *Obj, uint64_t Addr);
112 void (*disposePDC)(
void *Obj, uint64_t Addr);
113 void (*writePDC)(
void *Obj, uint64_t Addr,
void *Inst);
114 void (*clearPDC)(
void *Obj, uint64_t Addr);
115 void (*setPseudoOpHandler)(
void *Obj,
unsigned Opcode, uintptr_t Handler);
116 void (*installTrampoline)(
void *Obj, uint64_t Addr,
117 void (*TrampHandler)(
void *));
118 void (*installProfile)(
void *Obj, uint64_t Addr);
119 void (*removeProfile)(
void *Obj, uint64_t Addr);
121 void (*installIdle)(
void *Obj, uint64_t Addr);
122 void (*removeIdle)(
void *Obj, uint64_t Addr);
124 void (*setBT)(
void *Obj, uint64_t Addr,
void *BTP);
127 void (*releasePDCChain)(
void *Obj, uint64_t Addr);
129 uint64_t (*irToPA)(
void *obj, uint64_t addr);
134 #define TEMU_PDC_IFACE_TYPE "PDCIface" 150 uint32_t size,
int swap);
165 uint32_t size,
int swap);
180 unsigned unitSize, uint32_t size,
194 const uint8_t *buff,
unsigned unitSize,
195 uint32_t size,
unsigned flags);
212 void *MemObj, uint32_t Flags);
228 void *MemObj,
const char *IfaceName,
232 void *MemObj,
const char *IfaceName,
233 unsigned Idx, uint32_t Flags);
402 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:64
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:75
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:72
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)
Clear attribute bit.
Definition: Memory.h:61
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:101
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:105
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:100
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:59
User definable.
Definition: Memory.h:46
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:106
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:56
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:67