TEMU  3.0
The Terma Emulator
IntegrationSupport.h
Go to the documentation of this file.
1 //===------------------------------------------------------------*- C++ -*-===//
2 //
3 // TEMU: The Terma Emulator
4 // (c) Terma 2022
5 // Authors: Mattias Holm <maho (at) terma.com>
6 //
7 //===----------------------------------------------------------------------===//
8 
9 #ifndef TEMU_INTEGRATION_SUPPORT_H
10 #define TEMU_INTEGRATION_SUPPORT_H
11 
12 #include "temu-c/Memory/Memory.h"
13 #include "temu-c/Support/Objsys.h"
14 
15 #ifdef __cplusplus
16 extern "C" {
17 #endif
18 
19 /* Device ID Memory Access Interface
20 
21  This interface mirrors the memory access interface, but takes an additional
22  device id parameter to be filled in by the DeviceIdIntegrator class.
23  */
25  void (*fetch)(void *Obj, uint32_t DeviceID, temu_MemTransaction *MT);
26  void (*read)(void *Obj, uint32_t DeviceID, temu_MemTransaction *MT);
27  void (*write)(void *Obj, uint32_t DeviceID, temu_MemTransaction *MT);
29 #define TEMU_DEVICE_ID_MEM_ACCESS_IFACE_TYPE "temu::DeviceIdMemAccessIface"
30 TEMU_IFACE_REFERENCE_TYPE(temu_DeviceIdMemAccess);
31 
32 /* Device ID Interface
33 
34  This interface enables an external simulator to attach a device ID handler in
35  the DeviceIdIntegrator.
36  */
37 
38 typedef struct temu_DeviceIdIface {
39  void (*attach)(void *Obj, uint32_t DeviceID, void *UserPtr,
40  temu_DeviceIdMemAccessIface *UserIface);
42 #define TEMU_DEVICE_ID_IFACE_TYPE "temu::DeviceIdIface"
43 TEMU_IFACE_REFERENCE_TYPE(temu_DeviceId);
44 
45 #ifdef __cplusplus
46 }
47 #endif
48 
49 #endif /* ! TEMU_INTEGRATION_SUPPORT_H */
void(* read)(void *Obj, uint32_t DeviceID, temu_MemTransaction *MT)
Definition: IntegrationSupport.h:26
void(* attach)(void *Obj, uint32_t DeviceID, void *UserPtr, temu_DeviceIdMemAccessIface *UserIface)
Definition: IntegrationSupport.h:39
void(* write)(void *Obj, uint32_t DeviceID, temu_MemTransaction *MT)
Definition: IntegrationSupport.h:27
TEMU_IFACE_REFERENCE_TYPE(temu_DeviceIdMemAccess)
Definition: Memory.h:103
Definition: IntegrationSupport.h:24
struct temu_DeviceIdIface temu_DeviceIdIface
void(* fetch)(void *Obj, uint32_t DeviceID, temu_MemTransaction *MT)
Definition: IntegrationSupport.h:25
Definition: IntegrationSupport.h:38
struct temu_DeviceIdMemAccessIface temu_DeviceIdMemAccessIface