11 #ifndef TEMU_SUPPORT_MEMORY
12 #define TEMU_SUPPORT_MEMORY
49 int (*
mapDevice)(
void *Obj, uint64_t Addr, uint64_t Len,
void *Device,
57 int (*
unmapRange)(
void *Obj, uint64_t Addr, uint64_t Len);
61 #define TEMU_MEMORY_SPACE_IFACE_TYPE "MemorySpaceIface"
65 void* (*getPDC)(
void *Obj, uint64_t Addr);
66 void (*allocPDC)(
void *Obj, uint64_t Addr);
67 void (*disposePDC)(
void *Obj, uint64_t Addr);
68 void (*writePDC)(
void *Obj, uint64_t Addr,
void *Inst);
69 void (*clearPDC)(
void *Obj, uint64_t Addr);
72 #define TEMU_PDC_IFACE_TYPE "PDCIface"
TEMU_API void temu_memoryClearAttr(void *Obj, uint64_t Addr, uint64_t Len, temu_MemoryAttr Attr)
TEMU_API int temu_memoryRead(void *mem, uint8_t *buff, uint64_t addr, uint32_t size, int swap)
TEMU_API void temu_memorySetAttr(void *Obj, uint64_t Addr, uint64_t Len, temu_MemoryAttr Attr)
TEMU_API uint16_t temu_normaliseWrite16(uint16_t OldVal, uint16_t NewVal, int Sz, int Off)
TEMU_API uint32_t temu_normaliseRead32(uint32_t Value, int Sz, int Off)
int(* unmapRange)(void *Obj, uint64_t Addr, uint64_t Len)
temu_MemoryAttr
Memory attribute enumeration.
TEMU_API int temu_memoryWrite(void *mem, uint64_t addr, uint8_t *buff, uint32_t size, int swap)
TEMU_API int temu_memoryWritePhys32(void *Obj, uint64_t Addr, uint32_t Word)
TEMU_API temu_MemoryAttrs temu_memoryGetAttrs(void *Obj, uint64_t Addr)
Get memory attributes for address.
#define TEMU_IFACE_REFERENCE_TYPE(N)
struct temu_MemorySpaceIface temu_MemorySpaceIface
int(* mapDevice)(void *Obj, uint64_t Addr, uint64_t Len, void *Device, uint32_t Flags)
TEMU_API uint16_t temu_normaliseRead16(uint16_t Value, int Sz, int Off)
temu_MemoryAttrs(* getAttrs)(void *Obj, uint64_t Addr)
TEMU_API uint32_t temu_normaliseWrite32(uint32_t OldVal, uint32_t NewVal, int Sz, int Off)
TEMU_API int temu_memoryMap(void *Obj, uint64_t Addr, uint64_t Len, void *MemObj, uint32_t Flags)
void(* setAttr)(void *Obj, uint64_t Addr, uint64_t Len, temu_MemoryAttr Attr)
TEMU_API int temu_memoryReadPhys32(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)
int(* mapDeviceWithNamedIface)(void *Obj, uint64_t Addr, uint64_t Len, void *Device, const char *IfaceName, uint32_t Flags)
Multiple event upset / uncorrectable.
void(* clearAttr)(void *Obj, uint64_t Addr, uint64_t Len, temu_MemoryAttr Attr)