9 #ifndef TEMU_MEMORY_IF_H
10 #define TEMU_MEMORY_IF_H
34 #define TEMU_MT_CACHEABLE 1
35 #define TEMU_MT_BYPASS_CACHE (1 << 1)
36 #define TEMU_MT_FORCE_CACHE_MISS (1 << 2)
37 #define TEMU_MT_FAILED (1 << 3)
38 #define TEMU_MT_CACHE_HIT (1 << 4)
40 #define TEMU_MT_PRIV_MASK (7 << 5)
41 #define TEMU_MT_PRIV_USER (1 << 5)
42 #define TEMU_MT_PRIV_SUPER (2 << 5)
43 #define TEMU_MT_PRIV_HYPER (3 << 5)
45 #define TEMU_MT_PROBE (1 << 8)
126 #define TEMU_MEM_ACCESS_IFACE_TYPE "MemAccessIface"
149 int (*
readBytes)(
void *Obj,
void *Dest, uint64_t Offs, uint32_t Size,
int Swap);
150 int (*
writeBytes)(
void *Obj, uint64_t Offs, uint32_t Size,
const void *Src,
int Swap);
152 #define TEMU_MEMORY_IFACE_TYPE "MemoryIface"
162 void (*
mapDevice)(
void *Obj, uint64_t Addr, uint64_t Len,
void *Device)
173 #define TEMU_MEMORY_MAP_IFACE_TYPE "MemoryMapIface"
void(* write)(void *Obj, temu_MemTransaction *Mt)
Function called on writes.
uint64_t Pa
64 bit physical address
void(* read)(void *Obj, temu_MemTransaction *Mt)
Function called on reads.
struct temu_MemoryMapIface temu_MemoryMapIface
struct temu_MemoryIface temu_MemoryIface
TEMU_API void TEMU_API void __attribute__((deprecated))
temu_MemoryAttr
Memory attribute enumeration.
void temu_setMemAttr(void *Obj, uint64_t Addr, uint64_t Len, temu_MemoryAttr Attr)
void(* clearAttributes)(void *Obj, uint64_t Addr, uint64_t Len) __attribute__((deprecated))
void(* exchange)(void *Obj, temu_MemTransaction *Mt)
void(* setAttribute)(void *Obj, uint64_t Addr, uint64_t Len, temu_MemoryAttr Attr) __attribute__((deprecated))
int(* readBytes)(void *Obj, void *Dest, uint64_t Offs, uint32_t Size, int Swap)
uint64_t Cycles
Cycle cost for memory access (initialised to 0)
#define TEMU_IFACE_REFERENCE_TYPE(N)
void(* fetch)(void *Obj, temu_MemTransaction *Mt)
void(* mapDevice)(void *Obj, uint64_t Addr, uint64_t Len, void *Device) __attribute__((deprecated))
void(* clearAttribute)(void *Obj, uint64_t Addr, uint64_t Len, temu_MemoryAttr Attr) __attribute__((deprecated))
void temu_clearMemAttr(void *Obj, uint64_t Addr, uint64_t Len, temu_MemoryAttr Attr)
struct temu_MemTransaction temu_MemTransaction
temu_InitiatorType InitiatorType
int(* writeBytes)(void *Obj, uint64_t Offs, uint32_t Size, const void *Src, int Swap)
struct temu_MemAccessIface temu_MemAccessIface
uint32_t Flags
Flags for use in the memory hierarchy.
int temu_mapMemorySpaceFlags(void *Obj, uint64_t Addr, uint64_t Len, void *MemObj, uint32_t Flags)
int temu_mapMemorySpace(void *Obj, uint64_t Addr, uint64_t Len, void *MemObj)
uint64_t Va
64 bit virtual for unified 32/64 bit interface.
void(* map)(void *Obj, uint64_t Addr, uint64_t Len, temu_MemoryKind Type) __attribute__((deprecated))