Enumerations
temu_ClockStopReason
temu_CpuExitReason
Type
enum temu_CpuExitReason {
teCER_Normal = 0,
teCER_Trap = 2,
teCER_Halt = 3,
teCER_Event = 4,
teCER_Break = 5,
teCER_WatchR = 6,
teCER_WatchW = 7,
teCER_Early = 8,
teCER_Panic = 9,
}
Enumerators
Name | Value | Description |
---|---|---|
teCER_Normal |
0 |
Normal exit (cannot be passed to early exit) |
teCER_Trap |
2 |
Exited due to trap (sync trap) |
teCER_Halt |
3 |
Exited due to halting (e.g. sparc error mode) |
teCER_Event |
4 |
Exited due to synchronised event (internally, returned for any event) |
teCER_Break |
5 |
Exited due to breakpoint hit |
teCER_WatchR |
6 |
Exited due to watchpoint read hit |
teCER_WatchW |
7 |
Exited due to watchpoint write hit |
teCER_Early |
8 |
Other early exit reason |
teCER_Panic |
9 |
Emulator panic (e.g. illegal mode transition) |
temu_CpuState
Enumerators
Name | Value | Description |
---|---|---|
teCS_Nominal |
0 |
Normal all ok CPU state |
teCS_Halted |
1 |
Halted CPU (e.g. SPARC error mode), the CPU can go to the normal state using a reset |
teCS_Idling |
2 |
The CPU is in idle mode. It will not run instructions, only advance the CPUs event queue (until the CPU moves to another mode). |
temu_LogLevel
temu_MemoryAttr
Type
enum temu_MemoryAttr {
teMA_Break = 1,
teMA_WatchRead = 2,
teMA_WatchWrite = 4,
teMA_Upset = 8,
teMA_Faulty = 16,
teMA_User1 = 32,
teMA_User2 = 64,
teMA_User3 = 128,
}
Description
The emulator provides 5 standard attributes, and 3 user defined ones. The attributes are set in the memory space (not the memory models), so it is possible to set a watch point on memory mapped devices. When an attribute is set on a page, that page will get a shadow attribute page (same size as the page), enabling attributes to be set on a per byte level.
Attributes are only checked on the address being accessed, the transaction size is not taken into account.
Enumerators
Name | Value | Description |
---|---|---|
teMA_Break |
1 |
Breakpoint set |
teMA_WatchRead |
2 |
Read watchpoint set |
teMA_WatchWrite |
4 |
Write watchpoint set |
teMA_Upset |
8 |
Single event upset |
teMA_Faulty |
16 |
Multiple event upset / uncorrectable |
teMA_User1 |
32 |
User definable |
teMA_User2 |
64 |
User definable |
teMA_User3 |
128 |
User definable |
temu_Type
Type
enum temu_Type {
teTY_Invalid = 0,
teTY_Intptr = 1,
teTY_Uintptr = 2,
teTY_Float = 3,
teTY_Double = 4,
teTY_U8 = 5,
teTY_U16 = 6,
teTY_U32 = 7,
teTY_U64 = 8,
teTY_I8 = 9,
teTY_I16 = 10,
teTY_I32 = 11,
teTY_I64 = 12,
teTY_Obj = 13,
teTY_InternalPtr = 14,
teTY_IfaceRef = 15,
teTY_IfaceRefArray = 16,
teTY_String = 17,
teTY_Buffer = 18,
teTY_Dict = 19,
teTY_Vector = 20,
teTY_List = 21,
}
Description
Type tag
The TEMU object system uses type tags to track which type is registered and in use at runtime. Type tags are used in for example the property registration functions.
Enumerators
Name | Value | Description |
---|---|---|
teTY_Invalid |
0 |
Invalid value 0 |
teTY_Intptr |
1 |
Pointer sized signed integer (intptr_t) |
teTY_Uintptr |
2 |
Pointer sized unsigned integer (uintptr_t) |
teTY_Float |
3 |
Single precision floating point value |
teTY_Double |
4 |
Double precision floating point value |
teTY_U8 |
5 |
8-bit fixed width unsigned integer |
teTY_U16 |
6 |
16-bit fixed width unsigned integer |
teTY_U32 |
7 |
32-bit fixed width unsigned integer |
teTY_U64 |
8 |
64-bit fixed width unsigned integer |
teTY_I8 |
9 |
8-bit fixed width signed integer |
teTY_I16 |
10 |
16-bit fixed width signed integer |
teTY_I32 |
11 |
32-bit fixed width signed integer |
teTY_I64 |
12 |
64-bit fixed width signed integer |
teTY_Obj |
13 |
Pointer to temu_Object |
teTY_InternalPtr |
14 |
Internal pointer |
teTY_IfaceRef |
15 |
Interface reference |
teTY_IfaceRefArray |
16 |
Dynamic object/interface array |
teTY_String |
17 |
C-string, useful for serialization |
teTY_Buffer |
18 |
Buffer (see Buffer.h) |
teTY_Dict |
19 |
Dictionary |
teTY_Vector |
20 |
Vector (i.e. dynamic array) |
teTY_List |
21 |
List |