TEMU  4.4
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 /*!
20  Device ID Memory Access Interface
21 
22  This interface mirrors the memory access interface, but takes an additional
23  device id parameter to be filled in by the DeviceIdIntegrator class.
24 */
26  //! Called when fetching an instruction
27  void (*fetch)(void *Obj, uint32_t DeviceID, temu_MemTransaction *MT);
28  //! Called when reading data
29  void (*read)(void *Obj, uint32_t DeviceID, temu_MemTransaction *MT);
30  //! Called when writing data
31  void (*write)(void *Obj, uint32_t DeviceID, temu_MemTransaction *MT);
32 } temu_DeviceIdMemAccessIface;
33 #define TEMU_DEVICE_ID_MEM_ACCESS_IFACE_TYPE "temu::DeviceIdMemAccessIface"
34 TEMU_IFACE_REFERENCE_TYPE(temu_DeviceIdMemAccess);
35 
36 /*!
37  Device ID Interface
38 
39  This interface enables an external simulator to attach a device ID handler in
40  the DeviceIdIntegrator.
41  */
42 
43 typedef struct temu_DeviceIdIface {
44  //! Attach external device
45  void (*attach)(void *Obj, uint32_t DeviceID, void *UserPtr,
46  temu_DeviceIdMemAccessIface *UserIface);
47 } temu_DeviceIdIface;
48 #define TEMU_DEVICE_ID_IFACE_TYPE "temu::DeviceIdIface"
49 TEMU_IFACE_REFERENCE_TYPE(temu_DeviceId);
50 
51 #ifdef __cplusplus
52 }
53 #endif
54 
55 #endif /* ! TEMU_INTEGRATION_SUPPORT_H */
temu_DeviceIdMemAccessIface::read
void(* read)(void *Obj, uint32_t DeviceID, temu_MemTransaction *MT)
Called when reading data.
Definition: IntegrationSupport.h:29
temu_DeviceIdMemAccessIface::write
void(* write)(void *Obj, uint32_t DeviceID, temu_MemTransaction *MT)
Called when writing data.
Definition: IntegrationSupport.h:31
temu_DeviceIdIface
Definition: IntegrationSupport.h:43
temu_DeviceIdMemAccessIface::fetch
void(* fetch)(void *Obj, uint32_t DeviceID, temu_MemTransaction *MT)
Called when fetching an instruction.
Definition: IntegrationSupport.h:27
temu_DeviceIdMemAccessIface
Definition: IntegrationSupport.h:25
temu_DeviceIdIface::attach
void(* attach)(void *Obj, uint32_t DeviceID, void *UserPtr, temu_DeviceIdMemAccessIface *UserIface)
Attach external device.
Definition: IntegrationSupport.h:45