TEMU  2
The Terma Emulator
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros
VTables.h
Go to the documentation of this file.
1 //===------------------------------------------------------------*- C++ -*-===//
2 //
3 // T-EMU: The Terma Emulator
4 // (c) Terma 2016
5 // Authors: Mattias Holm <maho (at) terma.com>
6 //
7 //===----------------------------------------------------------------------===//
8 
9 // This file contains all the public VTables used. Note that even
10 // though this is a public header, the code here is UNSTABLE. That is,
11 // the structures may change without notice (though not between bug
12 // fix releases).
13 //
14 // For that reason use this with care and only for code where it is
15 // unpractical for you to use interfaces directly.
16 
17 #ifndef TEMU_SUPPORT_VTABLE_H
18 #define TEMU_SUPPORT_VTABLE_H
19 
20 #include "temu-c/Models/Machine.h"
21 #include "temu-c/Support/Events.h"
23 #include "temu-c/Memory/Memory.h"
24 #include "temu-c/Models/Clock.h"
25 
26 #ifdef __cplusplus
27 extern "C" {
28 #endif
29 
30 // Typically you would call:
31 // temu_setVTable(Cls, &MyVT);
32 // temu_qualifyAsMachine/Cpu/Memory(Cls);
33 // In your machine implementation.
34 
35 typedef struct {
42 
43 
44 // All machines must implement this VTable interface. These are used
45 // to speedup certain operations on machine objects.
46 typedef struct {
50 
51 // Fast memory operations
52 typedef struct {
56 
57 #ifdef __cplusplus
58 }
59 #endif
60 
61 #endif /* ! TEMU_SUPPORT_VTABLE_H */
temu_EventIface * Event
Definition: VTables.h:38
temu_IrqCtrlIface * Irq
Definition: VTables.h:37
temu_MemAccessIface * InvalidAccess
Definition: VTables.h:39
temu_ClockIface * Clock
Definition: VTables.h:40
temu_MachineIface * Machine
Definition: VTables.h:47
temu_MemAccessIface * MemAccess
Definition: VTables.h:53
Common CPU interface.
Definition: Cpu.h:164
temu_EventIface * Event
Definition: VTables.h:48
temu_CpuIface * Cpu
Definition: VTables.h:36
temu_MemoryIface * Memory
Definition: VTables.h:54