Enumerations

temu_ARMExecMode

Include

#include "temu-c/Target/ARM.h"

Type

enum temu_ARMExecMode {
  teARM_ARM = 0,
  teARM_Thumb = 1,
  teARM_Jazelle = 2,
  teARM_ThumbEE = 3,
}

Description

Enumerators

Name Value Description

teARM_ARM

0

Processor is in ARM mode

teARM_Thumb

1

Processor is in Thumb mode

teARM_Jazelle

2

Processor is in Jazelle mode

teARM_ThumbEE

3

Processor is in Thumb EE mode

temu_ARMMode

Include

#include "temu-c/Target/ARM.h"

Type

enum temu_ARMMode {
  teARM_Usr = 0,
  teARM_Fiq = 1,
  teARM_Irq = 2,
  teARM_Svc = 3,
  teARM_Mon = 4,
  teARM_Abt = 5,
  teARM_Hyp = 6,
  teARM_Und = 7,
  teARM_Sys = 8,
}

Description

Enumerators

Name Value Description

teARM_Usr

0

User 0b10000 0x10 16

teARM_Fiq

1

Fast irq 0b10001 0x11 17

teARM_Irq

2

Interrupt 0b10010 0x12 18

teARM_Svc

3

Supervisor 0b10011 0x13 19

teARM_Mon

4

Monitor 0b10110 0x14 20

teARM_Abt

5

Abort 0b10111 0x15 21

teARM_Hyp

6

Hypervisor 0b11010 0x1a 26

teARM_Und

7

Undefined 0b11011 0b1b 27

teARM_Sys

8

System 0b11111 0b1f 31

temu_BTStatID

Include

#include "temu-c/Target/Cpu.h"

Type

enum temu_BTStatID {
  teBTS_TranslatedInstructions = 0,
  teBTS_ExecutedInstructions = 1,
  teBTS_TranslatedBlocks = 2,
  teBTS_ExecutedBlocks = 3,
  teBTS_CodeSize = 4,
}

Description

Statistics ID for controlling collection of individual statistics.

Enumerators

Name Value Description

teBTS_TranslatedInstructions

0

Number of translated instructions

teBTS_ExecutedInstructions

1

Number of executed instructions

teBTS_TranslatedBlocks

2

Number of translated blocks

teBTS_ExecutedBlocks

3

Number of executed blocks

teBTS_CodeSize

4

Translated code size in bytes

temu_ClockStopReason

Include

#include "temu-c/Models/Clock.h"

Type

enum temu_ClockStopReason {
  teCSR_Normal = 0,
  teCSR_Halt = 1,
  teCSR_BreakWatch = 2,
  teCSR_Early = 3,
  teCSR_Panic = 4,
  teCSR_Sync = 5,
}

Description

Clock stop reason, these are similar to CPU exit reason, but not identical.

Enumerators

Name Value Description

teCSR_Normal

0

Normal exit (cannot be passed to early exit)

teCSR_Halt

1

Exited due to clock halting

teCSR_BreakWatch

2

Exited due to breakpoint or watchpoint hit

teCSR_Early

3

Other early stop reason

teCSR_Panic

4

Clock had a serious internal error

teCSR_Sync

5

Clock needs to synchronize

temu_CmdOptionKind

Include

#include "temu-c/Support/CommandLine.h"

Type

enum temu_CmdOptionKind {
  teCOK_Path = 1,
  teCOK_Object = 2,
  teCOK_Int = 3,
  teCOK_Double = 4,
  teCOK_Prop = 5,
  teCOK_Iface = 6,
  teCOK_Reg = 7,
  teCOK_Field = 8,
  teCOK_Class = 9,
}

Description

Enumerators

Name Value Description

teCOK_Path

1

Path is a string, but with auto completion of file names

teCOK_Object

2

Object is a named object

teCOK_Int

3

Any integer number

teCOK_Double

4

Any floating point number

teCOK_Prop

5

Property reference

teCOK_Iface

6

Interface reference

teCOK_Reg

7

Register reference

teCOK_Field

8

Register field reference

teCOK_Class

9

Class option

temu_CpuExitReason

Include

#include "temu-c/Target/Cpu.h"

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,
  teCER_Sync = 10,
}

Description

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)

teCER_Sync

10

Instruction cache sync operation

temu_CpuState

Include

#include "temu-c/Target/Cpu.h"

Type

enum temu_CpuState {
  teCS_Nominal = 0,
  teCS_Halted = 1,
  teCS_Idling = 2,
}

Description

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_Endian

Include

#include "temu-c/Target/Cpu.h"

Type

enum temu_Endian {
  teEN_Little = 0,
  teEN_Big = 1,
  teEN_Dynamic = 2,
}

Description

Enumerators

Name Value Description

teEN_Little

0

Always little endian

teEN_Big

1

Always big endian

teEN_Dynamic

2

Can switch at runtime

temu_ExecutionState

Include

#include "temu-c/Support/Scheduler.h"

Type

enum temu_ExecutionState {
}

Description

Enumerators

Name Value Description

temu_InitiatorType

Include

#include "temu-c/Memory/Memory.h"

Type

enum temu_InitiatorType {
  teIT_Cpu = 0,
  teIT_Device = 1,
  teIT_Unknown = 2,
}

Description

Enumerators

Name Value Description

teIT_Cpu

0

Memory transaction initiated by CPU

teIT_Device

1

Memory transaction initiated by device

teIT_Unknown

2

Memory transaction initiator unknown

temu_InstructionFlags

Include

#include "temu-c/EmulatorManager/Instrumenter.h"

Type

enum temu_InstructionFlags {
  teIF_Branch = 1,
  teIF_IndirectBranch = 2,
  teIF_Load = 4,
  teIF_Store = 8,
  teIF_Integer = 16,
  teIF_Float = 32,
  teIF_Arithmetic = 64,
  teIF_Annulled = 128,
  teIF_UnconditionalTaken = 256,
  teIF_UnconditionalNotTaken = 512,
  teIF_OnPage = 1024,
  teIF_ModeSwitch = 2048,
  teIF_Call = 4096,
}

Description

Instruction classification flags

Enumerators

Name Value Description

teIF_Branch

1

Instruction is a branch

teIF_IndirectBranch

2

Instruction is an indirect branch

teIF_Load

4

Instruction is a load

teIF_Store

8

Instruction is a store

teIF_Integer

16

Integer instruction

teIF_Float

32

Floating point instruction

teIF_Arithmetic

64

Arithmetic instruction

teIF_Annulled

128

Annulled branch

teIF_UnconditionalTaken

256

Unconditional taken branch

teIF_UnconditionalNotTaken

512

Unconditional not-taken branch

teIF_OnPage

1024

On page branch

teIF_ModeSwitch

2048

Privilege mode switching instruction

teIF_Call

4096

Call instruction

temu_LogLevel

Include

#include "temu-c/Support/Logging.h"

Type

enum temu_LogLevel {
  teLL_Fatal = 0,
  teLL_Error = 1,
  teLL_Warning = 2,
  teLL_Info = 3,
  teLL_Trace = 4,
  teLL_Debug = 5,
}

Description

Logging levels corresponds roughly to some of the RFC 5424 severity levels.

Enumerators

Name Value Description

teLL_Fatal

0

Fatal, emulator cannot keep on running

teLL_Error

1

Error happened, in principle critical but up to user

teLL_Warning

2

Warnings

teLL_Info

3

Normal messages

teLL_Trace

4

Trace messages, not compiled away

teLL_Debug

5

Debug

temu_MemoryAttr

Include

#include "temu-c/Support/Memory.h"

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_MemoryEndianness

Include

#include "temu-c/Memory/Memory.h"

Type

enum temu_MemoryEndianness {
  teME_BigEndian = 0,
  teME_LittleEndian = 1,
  teME_UnspecifiedEndian = 2,
}

Description

Enumerators

Name Value Description

teME_BigEndian

0

Memory access interface in big endian

teME_LittleEndian

1

Memory access interface in little endian

teME_UnspecifiedEndian

2

Memory access interface in undefined endian

temu_MemoryKind

Include

#include "temu-c/Support/Memory.h"

Type

enum temu_MemoryKind {
  teMK_RAM = 0,
  teMK_ROM = 1,
  teMK_MMIO = 2,
  teMK_IO = 2,
  teMK_MemSpace = 4,
  teMK_Last = 4,
}

Description

Enumerators

Name Value Description

teMK_RAM

0

Model is a RAM

teMK_ROM

1

Model is a ROM

teMK_MMIO

2

Alias for teMK_IO

teMK_IO

2

Model is a normal IO device

teMK_MemSpace

4

Model is a memory space

teMK_Last

4

DO NOT USE

temu_MemoryStat

Include

#include "temu-c/Support/Memory.h"

Type

enum temu_MemoryStat {
}

Description

Enumerators

Name Value Description

temu_Mil1553BusResetType

Include

#include "temu-c/Bus/MilStd1553.h"

Type

enum temu_Mil1553BusResetType {
}

Description

Enumerators

Name Value Description

temu_Mil1553Error

Include

#include "temu-c/Bus/MilStd1553.h"

Type

enum temu_Mil1553Error {
}

Description

Enumerators

Name Value Description

temu_Mil1553MsgType

Include

#include "temu-c/Bus/MilStd1553.h"

Type

enum temu_Mil1553MsgType {
}

Description

Enumerators

Name Value Description

temu_PCIeMessageTypes

Include

#include "temu-c/Bus/PCIExpress.h"

Type

enum temu_PCIeMessageTypes {
}

Description

temu_PCIeMessageTypes: PCI Express Messages name = code

Enumerators

Name Value Description

temu_PatternAction

Include

#include "temu-c/Target/CodePatterns.h"

Type

enum temu_PatternAction {
  tePA_Idle = 0,
  tePA_Skip = 1,
  tePA_Call = 2,
  tePA_CallAndSkip = 3,
  tePA_Invalid = 4,
}

Description

Enumerators

Name Value Description

tePA_Idle

0

Enter idle when running pattern

tePA_Skip

1

Skip over code pattern (currently not supported)

tePA_Call

2

Call function but run code after function returns (currently not supported)

tePA_CallAndSkip

3

Call function and skip the matched instructions (currently not supported)

tePA_Invalid

4

Invalid action, do not use! Internal API use only.

temu_PowerState

Include

#include "temu-c/Models/Power.h"

Type

enum temu_PowerState {
  tePS_Off = 0,
  tePS_On = 1,
}

Description

Used to indicate whether a model is powered on

Enumerators

Name Value Description

tePS_Off

0

System is powered off

tePS_On

1

System is powered on

temu_SpwLinkState

Include

#include "temu-c/Bus/Spacewire.h"

Type

enum temu_SpwLinkState {
}

Description

Enumerators

Name Value Description

temu_SpwPacketType

Include

#include "temu-c/Bus/Spacewire.h"

Type

enum temu_SpwPacketType {
}

Description

Enumerators

Name Value Description

temu_SpwRmapCommandType

Include

#include "temu-c/Bus/Spacewire.h"

Type

enum temu_SpwRmapCommandType {
}

Description

Enumerators

Name Value Description

temu_SpwRmapDecodedPacketType

Include

#include "temu-c/Bus/Spacewire.h"

Type

enum temu_SpwRmapDecodedPacketType {
}

Description

Enumerators

Name Value Description

temu_SpwRmapDecodingOutcome

Include

#include "temu-c/Bus/Spacewire.h"

Type

enum temu_SpwRmapDecodingOutcome {
}

Description

Enumerators

Name Value Description

temu_SpwRmapPacketType

Include

#include "temu-c/Bus/Spacewire.h"

Type

enum temu_SpwRmapPacketType {
}

Description

Enumerators

Name Value Description

temu_SyncEvent

Include

#include "temu-c/Support/Events.h"

Type

enum temu_SyncEvent {
}

Description

Enumerators

Name Value Description

temu_Type

Include

#include "temu-c/Support/Objsys.h"

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