Aggregates (Structs and Unions)

temu_ARMCoProcessorIfaceRef

Include

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

Type

struct temu_ARMCoProcessorIfaceRef {
}

Description

Fields

Field Type Description

temu_ARMCoProcessorIfaceRefArray

Include

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

Type

struct temu_ARMCoProcessorIfaceRefArray {
}

Description

Fields

Field Type Description

temu_ARMCpuIfaceRef

Include

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

Type

struct temu_ARMCpuIfaceRef {
}

Description

Fields

Field Type Description

temu_ARMCpuIfaceRefArray

Include

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

Type

struct temu_ARMCpuIfaceRefArray {
}

Description

Fields

Field Type Description

temu_AhbIfaceRef

Include

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

Type

struct temu_AhbIfaceRef {
}

Description

Fields

Field Type Description

temu_AhbIfaceRefArray

Include

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

Type

struct temu_AhbIfaceRefArray {
}

Description

Fields

Field Type Description

temu_AhbPnpInfo

Include

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

Type

struct temu_AhbPnpInfo {
}

Description

AHB bus plug and play record

Fields

Field Type Description

temu_AnalogIfaceRef

Include

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

Type

struct temu_AnalogIfaceRef {
}

Description

Fields

Field Type Description

temu_AnalogIfaceRefArray

Include

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

Type

struct temu_AnalogIfaceRefArray {
}

Description

Fields

Field Type Description

temu_ApbIfaceRef

Include

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

Type

struct temu_ApbIfaceRef {
}

Description

Fields

Field Type Description

temu_ApbIfaceRefArray

Include

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

Type

struct temu_ApbIfaceRefArray {
}

Description

Fields

Field Type Description

temu_ApbPnpInfo

Include

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

Type

struct temu_ApbPnpInfo {
}

Description

APB bus plug and play record

Fields

Field Type Description

temu_BinaryTranslationControlIfaceRef

Include

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

Type

struct temu_BinaryTranslationControlIfaceRef {
}

Description

Fields

Field Type Description

temu_BinaryTranslationControlIfaceRefArray

Include

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

Type

struct temu_BinaryTranslationControlIfaceRefArray {
}

Description

Fields

Field Type Description

temu_BlockDisassemblerIfaceRef

Include

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

Type

struct temu_BlockDisassemblerIfaceRef {
}

Description

Fields

Field Type Description

temu_BlockDisassemblerIfaceRefArray

Include

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

Type

struct temu_BlockDisassemblerIfaceRefArray {
}

Description

Fields

Field Type Description

temu_Buff

Include

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

Type

struct temu_Buff {
}

Description

Fields

Field Type Description

temu_CacheCtrlIfaceRef

Include

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

Type

struct temu_CacheCtrlIfaceRef {
}

Description

Fields

Field Type Description

temu_CacheCtrlIfaceRefArray

Include

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

Type

struct temu_CacheCtrlIfaceRefArray {
}

Description

Fields

Field Type Description

temu_CacheIfaceRef

Include

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

Type

struct temu_CacheIfaceRef {
}

Description

Fields

Field Type Description

temu_CacheIfaceRefArray

Include

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

Type

struct temu_CacheIfaceRefArray {
}

Description

Fields

Field Type Description

temu_CanBusIfaceRef

Include

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

Type

struct temu_CanBusIfaceRef {
}

Description

Fields

Field Type Description

temu_CanBusIfaceRefArray

Include

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

Type

struct temu_CanBusIfaceRefArray {
}

Description

Fields

Field Type Description

temu_CanBusStats

Include

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

Type

struct temu_CanBusStats {
}

Description

Fields

Field Type Description

temu_CanDevIfaceRef

Include

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

Type

struct temu_CanDevIfaceRef {
}

Description

Fields

Field Type Description

temu_CanDevIfaceRefArray

Include

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

Type

struct temu_CanDevIfaceRefArray {
}

Description

Fields

Field Type Description

temu_CanFrame

Include

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

Type

struct temu_CanFrame {
}

Description

Fields

Field Type Description

temu_Class

Include

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

Type

struct temu_Class {
  temu_Object Super;
  void * Impl;
  void * VTable;
  temu_ObjectCreateFunc Create;
  temu_ObjectDisposeFunc Dispose;
}

Description

Class object

The TEMU object system is a dynamic object system. Classes are themselves represented as objects (instanciated by meta-classes).

The TEMU class contains among other things the constructor/destructor. Internally, the hidden implementation provides more capabilities than is exposed by the temu_Class type.

Fields

Field Type Description

Super

temu_Object

Super class of the class instance.

Impl

void *

Internal pointer, do not touch.

VTable

void *

Internal pointer, do not touch.

Create

temu_ObjectCreateFunc

Constructor / create function for creating instances of the class.

Dispose

temu_ObjectDisposeFunc

Destructor / dispose function for disposing instances of the class.

temu_ClockIfaceRef

Include

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

Type

struct temu_ClockIfaceRef {
}

Description

Fields

Field Type Description

temu_ClockIfaceRefArray

Include

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

Type

struct temu_ClockIfaceRefArray {
}

Description

Fields

Field Type Description

temu_ClockVTable

Include

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

Type

struct temu_ClockVTable {
}

Description

Fields

Field Type Description

temu_CmdArg

Include

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

Type

struct temu_CmdArg {
}

Description

Fields

Field Type Description

temu_CodePattern

Include

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

Type

struct temu_CodePattern {
  uint64_t PhysicalAddress;
  uint64_t PhysicalAddressMask;
  temu_PatternAction Action;
  void (*)(void *, void *) Callback;
  void * CallbackData;
  int SkipLength;
  unsigned int PatternLength;
}

Description

Code pattern structure

The code pattern structure exists to make it possible to define a static list of code patterns. The patterns should be installed on a processor using the code pattern interface.

The code pattern can be used to attach custom actions, either at a specific physical address or when a sequence of instructions have been matched.

TEMU uses this mechanism internally to detect idle-loops.

A pattern is matched if the physical address of the start matches, and all instructions in the pattern match. Zero length patterns are legal if the physical address mask is non-zero. Normally, skip length and pattern length should be the same.

It is possible to skip backwards. It is also possible to skip more or less than the matched instructions.

When the pattern is installed, it is injected into a trie. The injected structure is after that no longer used and can be disposed.

Patterns are matched at decode time, for both interpreter and binary translator.

For the interpreter, a pseudo instruction will be inserted to carry out the action.

In the case of processors with branch delay slots (e.g. SPARC), the pattern is only triggered if the nPC follows the PC.

Pattern entries match individual instruction chunks, i.e. for Thumb2 an entry matches a 16-bit part, meaning two entries will be needed for a 32-bit instruction.

Note that processors are expected to implement one pattern interface per instruction set.

Patterns are not matched if they cross page boundaries.

Fields

Field Type Description

PhysicalAddress

uint64_t

Physical address matched in the decoder (currently ignored)

PhysicalAddressMask

uint64_t

Physical address mask matched in the decoder, set to 0 to ignore address (currently ignored)

Action

temu_PatternAction

Action to take on this match

Callback

void (*)(void *, void *)

Function to call for actions tePA_Call and tePA_CallAndSkip, first argument is the processor pointer (currently ignored)

CallbackData

void *

Data passed in second parameter to callback (currently ignored)

SkipLength

int

Number of instructions to skip (in case of tePA_Skip and tePA_CallAndSkip)

PatternLength

unsigned int

Number of pattern entries

temu_CodePatternEntry

Include

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

Type

struct temu_CodePatternEntry {
  uint32_t Instruction;
  uint32_t Mask;
}

Description

Fields

Field Type Description

Instruction

uint32_t

Instruction value

Mask

uint32_t

Instruction mask (use to ignore register numbers etc)

temu_CodePatternIfaceRef

Include

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

Type

struct temu_CodePatternIfaceRef {
}

Description

Fields

Field Type Description

temu_CodePatternIfaceRefArray

Include

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

Type

struct temu_CodePatternIfaceRefArray {
}

Description

Fields

Field Type Description

temu_CpuIfaceRef

Include

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

Type

struct temu_CpuIfaceRef {
}

Description

Fields

Field Type Description

temu_CpuIfaceRefArray

Include

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

Type

struct temu_CpuIfaceRefArray {
}

Description

Fields

Field Type Description

temu_CpuInfo

Include

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

Type

struct temu_CpuInfo {
  const char * ArchName;
  const char * ModelName;
  unsigned int VASize;
  unsigned int PASize;
  unsigned int VATypeSize;
  unsigned int PATypeSize;
  unsigned int GPRCount;
  unsigned int FPRCount;
  temu_Endian InstructionEndianess;
  temu_Endian DataEndianess;
  unsigned int NumInstructionSets;
}

Description

CPU architecture info that can be queried by the user.

Fields

Field Type Description

ArchName

const char *

Architecture name

ModelName

const char *

Processor model name

VASize

unsigned int

Virtual address size in bits

PASize

unsigned int

Physical address size in bits

VATypeSize

unsigned int

Virtual address type size in bytes

PATypeSize

unsigned int

Physical address type size in bytes (i.e. 8 for 36 bit PA)

GPRCount

unsigned int

GPR register count

FPRCount

unsigned int

FPR register count

InstructionEndianess

temu_Endian

Instruction endianness

DataEndianess

temu_Endian

Data endianness

NumInstructionSets

unsigned int

Number of instruction sets

temu_CpuVTable

Include

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

Type

struct temu_CpuVTable {
  temu_CpuIface * Cpu;
  temu_IrqCtrlIface * Irq;
  temu_EventIface * Event;
  temu_MemAccessIface * InvalidAccess;
  temu_ClockIface * Clock;
  temu_BinaryTranslationControlIface * Translation;
}

Description

All processors provide the CpuVTable

Fields

Field Type Description

Cpu

temu_CpuIface *

CPU interface

Irq

temu_IrqCtrlIface *

IRQ interface

Event

temu_EventIface *

Event interface

InvalidAccess

temu_MemAccessIface *

Invalid memory access interface

Clock

temu_ClockIface *

Clock interface

Translation

temu_BinaryTranslationControlIface *

Binary translator control interface

temu_CreateArg

Include

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

Type

struct temu_CreateArg {
  const char * Key;
  temu_Propval Val;
}

Description

Generic constructor argument

The object constructors takes an array of key/value pairs as parameters. The values are passed using either:

  • Registered argument in the Class.new command method.

  • Explicitly to temu_createObject().

  • Args parameter to object-create global command.

The object create function would typically scan through the array, finding relevant matching keys.

Fields

Field Type Description

Key

const char *

Name of argument

Val

temu_Propval

Value of argument

temu_DeviceIdIfaceRef

Include

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

Type

struct temu_DeviceIdIfaceRef {
}

Description

Fields

Field Type Description

temu_DeviceIdIfaceRefArray

Include

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

Type

struct temu_DeviceIdIfaceRefArray {
}

Description

Fields

Field Type Description

temu_DeviceIdMemAccessIfaceRef

Include

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

Type

struct temu_DeviceIdMemAccessIfaceRef {
}

Description

Fields

Field Type Description

temu_DeviceIdMemAccessIfaceRefArray

Include

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

Type

struct temu_DeviceIdMemAccessIfaceRefArray {
}

Description

Fields

Field Type Description

temu_DeviceIfaceRef

Include

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

Type

struct temu_DeviceIfaceRef {
}

Description

Fields

Field Type Description

temu_DeviceIfaceRefArray

Include

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

Type

struct temu_DeviceIfaceRefArray {
}

Description

Fields

Field Type Description

temu_DynCallIfaceRef

Include

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

Type

struct temu_DynCallIfaceRef {
}

Description

Fields

Field Type Description

temu_DynCallIfaceRefArray

Include

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

Type

struct temu_DynCallIfaceRefArray {
}

Description

Fields

Field Type Description

temu_DynamicResetAddressIfaceRef

Include

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

Type

struct temu_DynamicResetAddressIfaceRef {
}

Description

Fields

Field Type Description

temu_DynamicResetAddressIfaceRefArray

Include

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

Type

struct temu_DynamicResetAddressIfaceRefArray {
}

Description

Fields

Field Type Description

temu_EthFrame

Include

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

Type

struct temu_EthFrame {
  uint32_t Flags;
  temu_Buff Data;
  uint8_t [15] Preamble;
  uint8_t Sfd;
}

Description

Fields

Field Type Description

Flags

uint32_t

Flags used for error injection

Data

temu_Buff

ETH frame data

Preamble

uint8_t [15]

Preamble bits, normally 0x[aa aa aa aa aa aa aa]

Sfd

uint8_t

Start frame delimiter, normally 0xab

temu_EthernetIfaceRef

Include

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

Type

struct temu_EthernetIfaceRef {
}

Description

Fields

Field Type Description

temu_EthernetIfaceRefArray

Include

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

Type

struct temu_EthernetIfaceRefArray {
}

Description

Fields

Field Type Description

temu_Event

Include

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

Type

struct temu_Event {
  int64_t Time;
  int64_t EventId;
  uint32_t Flags;
  int QueueIdx;
  temu_EventQueue * Queue;
  void * Obj;
  void (*)(struct temu_Event *) Func;
  int64_t Period;
  int64_t RTTime;
  int64_t RTPeriod;
}

Description

Fields

Field Type Description

Time

int64_t

Managed internally, do not touch

EventId

int64_t

Managed internally, do not touch

Flags

uint32_t

Internal use, do not touch

QueueIdx

int

Managed internally, do not touch

Queue

temu_EventQueue *

Managed internally, do not touch

Obj

void *

Managed internally, only for reading

Func

void (*)(struct temu_Event *)

Event callback

Period

int64_t

Managed: Period (cycles) for cyclic events

RTTime

int64_t

Managed: Time (monotonic ns) for RT exec

RTPeriod

int64_t

Managed: Period (ns) for RT events

temu_EventIfaceRef

Include

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

Type

struct temu_EventIfaceRef {
}

Description

Fields

Field Type Description

temu_EventIfaceRefArray

Include

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

Type

struct temu_EventIfaceRefArray {
}

Description

Fields

Field Type Description

temu_ExtIRInstruction

Include

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

Type

struct temu_ExtIRInstruction {
}

Description

Fields

Field Type Description

temu_FieldInfo

Include

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

Type

struct temu_FieldInfo {
}

Description

Fields

Field Type Description

temu_GpioBusIfaceRef

Include

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

Type

struct temu_GpioBusIfaceRef {
}

Description

Fields

Field Type Description

temu_GpioBusIfaceRefArray

Include

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

Type

struct temu_GpioBusIfaceRefArray {
}

Description

Fields

Field Type Description

temu_GpioClientIfaceRef

Include

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

Type

struct temu_GpioClientIfaceRef {
}

Description

Fields

Field Type Description

temu_GpioClientIfaceRefArray

Include

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

Type

struct temu_GpioClientIfaceRefArray {
}

Description

Fields

Field Type Description

temu_IRInstruction

Include

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

Type

struct temu_IRInstruction {
}

Description

Fields

Field Type Description

temu_IfaceRef

Include

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

Type

struct temu_IfaceRef {
  temu_Object * Obj;
  void * Iface;
}

Description

Generic interface

In TEMU interfaces are referred to using an object / interface pointer pair. The object is in general passed as the first parameter to functions in the interface. This type provides a generic interface reference where the interface pointer itself is type erased.

While the type is rarely used by itself, it is commonly returned by the TEMU API. To convert to / from this type from / to typed interface references, it is possible to either memcopy or cast field by field.

Fields

Field Type Description

Obj

temu_Object *

Object pointer (first field of interface reference)

Iface

void *

Type erased interface pointer

temu_IfaceRefArray

Include

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

Type

struct temu_IfaceRefArray {
  uint32_t Size;
  uint32_t Reserved;
  temu_IfaceRef * Ifaces;
}

Description

Dynamic interface reference array

In some cases, the number of objects we know about is unknown. To solve that TEMU provides a vector like type.

It is not the intention that the fields in the array are manipulated directly. Instead, use the temu_ifaceRefArray* functions.

Fields

Field Type Description

Size

uint32_t

Number of used items in array

Reserved

uint32_t

Number of slots allocated for array

Ifaces

temu_IfaceRef *

Interface references

temu_InstrumenterIfaceRef

Include

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

Type

struct temu_InstrumenterIfaceRef {
}

Description

Fields

Field Type Description

temu_InstrumenterIfaceRefArray

Include

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

Type

struct temu_InstrumenterIfaceRefArray {
}

Description

Fields

Field Type Description

temu_IrqClientIfaceRef

Include

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

Type

struct temu_IrqClientIfaceRef {
}

Description

Fields

Field Type Description

temu_IrqClientIfaceRefArray

Include

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

Type

struct temu_IrqClientIfaceRefArray {
}

Description

Fields

Field Type Description

temu_IrqCtrlIfaceRef

Include

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

Type

struct temu_IrqCtrlIfaceRef {
}

Description

Fields

Field Type Description

temu_IrqCtrlIfaceRefArray

Include

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

Type

struct temu_IrqCtrlIfaceRefArray {
}

Description

Fields

Field Type Description

temu_LineDataLoggerIfaceRef

Include

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

Type

struct temu_LineDataLoggerIfaceRef {
}

Description

Fields

Field Type Description

temu_LineDataLoggerIfaceRefArray

Include

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

Type

struct temu_LineDataLoggerIfaceRefArray {
}

Description

Fields

Field Type Description

temu_List

Include

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

Type

struct temu_List {
  temu_Type Typ;
  temu_ListNode * Head;
  temu_ListNode * Tail;
}

Description

Linked list type

Fields

Field Type Description

Typ

temu_Type

Element type in list

Head

temu_ListNode *

Managed pointer, do not use directly

Tail

temu_ListNode *

Managed pointer, do not use directly

temu_MACIfaceRef

Include

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

Type

struct temu_MACIfaceRef {
}

Description

Fields

Field Type Description

temu_MACIfaceRefArray

Include

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

Type

struct temu_MACIfaceRefArray {
}

Description

Fields

Field Type Description

temu_MDIOIfaceRef

Include

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

Type

struct temu_MDIOIfaceRef {
}

Description

Fields

Field Type Description

temu_MDIOIfaceRefArray

Include

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

Type

struct temu_MDIOIfaceRefArray {
}

Description

Fields

Field Type Description

temu_MachineIfaceRef

Include

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

Type

struct temu_MachineIfaceRef {
}

Description

Fields

Field Type Description

temu_MachineIfaceRefArray

Include

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

Type

struct temu_MachineIfaceRefArray {
}

Description

Fields

Field Type Description

temu_MachineVTable

Include

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

Type

struct temu_MachineVTable {
  temu_MachineIface * Machine;
  temu_EventIface * Event;
}

Description

All machines must implement this VTable interface. These are used to speedup certain operations on machine objects.

Fields

Field Type Description

Machine

temu_MachineIface *

Machine interface

Event

temu_EventIface *

Event interface

temu_MemAccessCapabilities

Include

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

Type

struct temu_MemAccessCapabilities {
  uint16_t TransactionBaseSizes;
  uint16_t LargeTransactions;
  temu_MemoryKind Kind;
  temu_MemoryEndianness Endianness;
}

Description

Fields

Field Type Description

TransactionBaseSizes

uint16_t

Flags indicating legal transaction sizes

LargeTransactions

uint16_t

Supports large transactions (e.g. RAM/ROM)

Kind

temu_MemoryKind

Mapping type

Endianness

temu_MemoryEndianness

Endianess of transaction interface

temu_MemAccessIfaceRef

Include

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

Type

struct temu_MemAccessIfaceRef {
}

Description

Fields

Field Type Description

temu_MemAccessIfaceRefArray

Include

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

Type

struct temu_MemAccessIfaceRefArray {
}

Description

Fields

Field Type Description

temu_MemTransaction

Include

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

Type

struct temu_MemTransaction {
  uint64_t Va;
  uint64_t Pa;
  uint64_t Value;
  uint64_t Size;
  uint64_t Offset;
  temu_InitiatorType InitiatorType;
  temu_Object * Initiator;
  void * Page;
  uint64_t Cycles;
  uint32_t Flags;
  void * IR;
}

Description

Generic memory transaction.

This type is kept in sync with the emulator core. The layout is guaranteed. and will remain as is, although more fields may be added (at the bottom).

When the emulator core issues a memory transaction (assuming no ATC hit), the core allocates this structure on the stack and fills in some of the fields with default values. The memory transaction is passed by pointer or reference. By filling in the different fields you can adapt the result of the memory transaction.

Fields

Field Type Description

Va

uint64_t

64 bit virtual for unified 32/64 bit interface.

Pa

uint64_t

64 bit physical address

Value

uint64_t

Resulting value (or written value). On MMIO Reads the model fills in this value, and on writes the written value will be stored here.

Size

uint64_t

Two-logarithm of the size of the transaction in bytes it is at most the size of the CPUs max bus size. In case of SPARCv8, this is 4 bytes (double words are issued as two accesses). As this is the 2-log of the size in bytes, a single byte access will have a size of 0, a 2 byte transaction will have size 1, a 4 byte transaction will have size 2 and an 8 byte transaction will have size 3.

In TEMU3 this field was changed to an uint64_t from uint8_t. This as it does not add any additional space. And we can repurpose value and size as follows: - The lower 2 bits define the base unit of the transaction (same as before), 0 ⇒ 1 byte, 1 ⇒ 2 bytes, 2 ⇒ 4 bytes, 3 ⇒ 8 bytes. - The upper bits define the number of transferred units 0 implies one unit. If the transferred units is more than 0, we are dealing with a large transaction. These can be used by e.g. RAM models for block transfers etc. In that case the Value field is to be reinterpreted as a pointer to the location of the data. This means that we can use the memory access interface to e.g. read out send lists and similar items.

The memory space must thus have a way of determining which type of transaction is legal. The MemoryAccessIface has been extended with a capability query, which if implemented has the ability to query for supported features.

Offset

uint64_t

Used for device models, this will be filled in with the offset from the start address of the device (note it is in practice possible to add a device at multiple locations (which happens in some rare cases)).

InitiatorType

temu_InitiatorType

InitiatorType identifies the type of object starting the transaction. this is only relevant when Initiator is set to non-null, and allows for the specification of device pointers in the initator. This field is new in TEMU 2.2. The field was introduced to support the implementation of I/O MMUs.

Initiator

temu_Object *

Initiator of the transaction (a CPU object). It can be null, which indicate that the transaction was not initiated by normal CPU activity (e.g. fetch, read or write). When the initiator is null, models should not attempt to stop the processor core, go to idle mode or raise traps (posting events is fine). An example when the initiator is null is when an MMU does a table walk. The MMU will normally special case handle table walks which access un-mapped memory.

Page

void *

Page pointer (for caching), this can be filled in by a memory model to have the emulator core inject the page translation in the ATC. If a model sets this, the page pointer will automatically be cleared if the page has attributes (breakpoints, etc). Models that implement normal memory mapped registers should NOT populate the page pointer.

Cycles

uint64_t

Cycle cost for memory access (initialised to 0).

Flags

uint32_t

Flags for use in the memory hierarchy.

IR

void *

Intermediate code for interpreter (internally managed do not modify)

temu_MemVTable

Include

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

Type

struct temu_MemVTable {
  temu_MemAccessIface * MemAccess;
  temu_MemoryIface * Memory;
  temu_PDCIface * PDC;
}

Description

Fast memory operations

Fields

Field Type Description

MemAccess

temu_MemAccessIface *

Memory access interface

Memory

temu_MemoryIface *

Memory interface (deprecated)

PDC

temu_PDCIface *

Pre-decode cache interface

temu_MemoryIfaceRef

Include

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

Type

struct temu_MemoryIfaceRef {
}

Description

Fields

Field Type Description

temu_MemoryIfaceRefArray

Include

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

Type

struct temu_MemoryIfaceRefArray {
}

Description

Fields

Field Type Description

temu_MemorySpaceIfaceRef

Include

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

Type

struct temu_MemorySpaceIfaceRef {
}

Description

Fields

Field Type Description

temu_MemorySpaceIfaceRefArray

Include

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

Type

struct temu_MemorySpaceIfaceRefArray {
}

Description

Fields

Field Type Description

temu_Mil1553BusIdleInfo

Include

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

Type

struct temu_Mil1553BusIdleInfo {
}

Description

Fields

Field Type Description

temu_Mil1553BusIfaceRef

Include

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

Type

struct temu_Mil1553BusIfaceRef {
}

Description

Fields

Field Type Description

temu_Mil1553BusIfaceRefArray

Include

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

Type

struct temu_Mil1553BusIfaceRefArray {
}

Description

Fields

Field Type Description

temu_Mil1553DevIfaceRef

Include

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

Type

struct temu_Mil1553DevIfaceRef {
}

Description

Fields

Field Type Description

temu_Mil1553DevIfaceRefArray

Include

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

Type

struct temu_Mil1553DevIfaceRefArray {
}

Description

Fields

Field Type Description

temu_Mil1553Msg

Include

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

Type

struct temu_Mil1553Msg {
}

Description

Fields

Field Type Description

temu_Mil1553Stats

Include

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

Type

struct temu_Mil1553Stats {
}

Description

Fields

Field Type Description

temu_ModeSwitchInfo

Include

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

Type

struct temu_ModeSwitchInfo {
  uint32_t OldMode;
  uint32_t NewMode;
}

Description

Fields

Field Type Description

OldMode

uint32_t

Old processor privilege level

NewMode

uint32_t

New processor privilege level

temu_ModelRegInfo

Include

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

Type

struct temu_ModelRegInfo {
}

Description

Fields

Field Type Description

temu_Object

Include

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

Type

struct temu_Object {
  temu_Class * Class;
  char * Name;
  struct temu_Object * TimeSource;
  temu_Component * Component;
  uint64_t LoggingFlags;
  int64_t WillDisposeNotification;
  int64_t DisposedNotification;
  void * UserData;
  uint64_t IsClassObject;
  uint64_t IsCheckpointable;
}

Description

Root object type for all TEMU objects.

The TEMU object system is used for defining models in TEMU. All models must derive from temu_Object.

Inheritance in C is done by placing a temu_Object field as the first field in the derived struct.

TEMU by convention use the name Super for the parent field name.

The type contains a UserData void pointer that can be used by for example simulator integrators. The UserData field can be written by the user. The field is guaranteed to not be modified by the TEMU runtime.

While the convention in C is safe, in C++ it is the responsibility of the user to ensure that the derived type is a standard layout type.

Fields

Field Type Description

Class

temu_Class *

Class pointer

Name

char *

Object name

TimeSource

struct temu_Object *

Timesource object

Component

temu_Component *

Parent component (null for root comp)

LoggingFlags

uint64_t

Log category enabled/disabled

WillDisposeNotification

int64_t

Notification emitted before object is deleted

DisposedNotification

int64_t

Notification emitted after object has been deleted

UserData

void *

User data pointer. This is not saved in snapshots.

IsClassObject

uint64_t

The object is a class object

IsCheckpointable

uint64_t

The object is snapshottable

temu_ObjectIfaceRef

Include

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

Type

struct temu_ObjectIfaceRef {
}

Description

Fields

Field Type Description

temu_ObjectIfaceRefArray

Include

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

Type

struct temu_ObjectIfaceRefArray {
}

Description

Fields

Field Type Description

temu_PCIBridgeIfaceRef

Include

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

Type

struct temu_PCIBridgeIfaceRef {
}

Description

Fields

Field Type Description

temu_PCIBridgeIfaceRefArray

Include

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

Type

struct temu_PCIBridgeIfaceRefArray {
}

Description

Fields

Field Type Description

temu_PCIBusIfaceRef

Include

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

Type

struct temu_PCIBusIfaceRef {
}

Description

Fields

Field Type Description

temu_PCIBusIfaceRefArray

Include

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

Type

struct temu_PCIBusIfaceRefArray {
}

Description

Fields

Field Type Description

temu_PCIConfig

Include

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

Type

struct temu_PCIConfig {
}

Description

Fields

Field Type Description

temu_PCIDevice

Include

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

Type

struct temu_PCIDevice {
}

Description

Fields

Field Type Description

temu_PCIDeviceIfaceRef

Include

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

Type

struct temu_PCIDeviceIfaceRef {
}

Description

Fields

Field Type Description

temu_PCIDeviceIfaceRefArray

Include

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

Type

struct temu_PCIDeviceIfaceRefArray {
}

Description

Fields

Field Type Description

temu_PCIDeviceVTable

Include

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

Type

struct temu_PCIDeviceVTable {
}

Description

Fields

Field Type Description

temu_PCIExpressBridge

Include

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

Type

struct temu_PCIExpressBridge {
}

Description

Fields

Field Type Description

temu_PCIExpressBridgeIfaceRef

Include

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

Type

struct temu_PCIExpressBridgeIfaceRef {
}

Description

Fields

Field Type Description

temu_PCIExpressBridgeIfaceRefArray

Include

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

Type

struct temu_PCIExpressBridgeIfaceRefArray {
}

Description

Fields

Field Type Description

temu_PCIExpressBus

Include

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

Type

struct temu_PCIExpressBus {
}

Description

Fields

Field Type Description

temu_PCIExpressBusIfaceRef

Include

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

Type

struct temu_PCIExpressBusIfaceRef {
}

Description

Fields

Field Type Description

temu_PCIExpressBusIfaceRefArray

Include

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

Type

struct temu_PCIExpressBusIfaceRefArray {
}

Description

Fields

Field Type Description

temu_PCIExpressConfig

Include

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

Type

struct temu_PCIExpressConfig {
}

Description

temu_PCIExpressConfig: PCI Express configuration space registers

Fields

Field Type Description

temu_PCIExpressDevice

Include

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

Type

struct temu_PCIExpressDevice {
}

Description

Fields

Field Type Description

temu_PCIExpressDeviceIfaceRef

Include

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

Type

struct temu_PCIExpressDeviceIfaceRef {
}

Description

Fields

Field Type Description

temu_PCIExpressDeviceIfaceRefArray

Include

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

Type

struct temu_PCIExpressDeviceIfaceRefArray {
}

Description

Fields

Field Type Description

temu_PCIeConfigType0

Include

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

Type

struct temu_PCIeConfigType0 {
}

Description

temu_PCIeConfigType0: Fields that exists only in config type 0

Fields

Field Type Description

temu_PCIeConfigType1

Include

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

Type

struct temu_PCIeConfigType1 {
}

Description

temu_PCIeConfigType1: Fields that exists only in config type 1

Fields

Field Type Description

temu_PCIeControllerInternalCSRs

Include

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

Type

struct temu_PCIeControllerInternalCSRs {
}

Description

Fields

Field Type Description

temu_PCIeDeviceSpecificConfigSpace

Include

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

Type

struct temu_PCIeDeviceSpecificConfigSpace {
}

Description

Fields

Field Type Description

temu_PDCIfaceRef

Include

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

Type

struct temu_PDCIfaceRef {
}

Description

Fields

Field Type Description

temu_PDCIfaceRefArray

Include

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

Type

struct temu_PDCIfaceRefArray {
}

Description

Fields

Field Type Description

temu_PHYIfaceRef

Include

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

Type

struct temu_PHYIfaceRef {
}

Description

Fields

Field Type Description

temu_PHYIfaceRefArray

Include

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

Type

struct temu_PHYIfaceRefArray {
}

Description

Fields

Field Type Description

temu_PowerIfaceRef

Include

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

Type

struct temu_PowerIfaceRef {
}

Description

Fields

Field Type Description

temu_PowerIfaceRefArray

Include

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

Type

struct temu_PowerIfaceRefArray {
}

Description

Fields

Field Type Description

temu_PowerLineIfaceRef

Include

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

Type

struct temu_PowerLineIfaceRef {
}

Description

Fields

Field Type Description

temu_PowerLineIfaceRefArray

Include

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

Type

struct temu_PowerLineIfaceRefArray {
}

Description

Fields

Field Type Description

temu_PowerPCIfaceRef

Include

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

Type

struct temu_PowerPCIfaceRef {
}

Description

Fields

Field Type Description

temu_PowerPCIfaceRefArray

Include

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

Type

struct temu_PowerPCIfaceRefArray {
}

Description

Fields

Field Type Description

temu_PropAccessor

Include

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

Type

struct temu_PropAccessor {
  temu_Type Typ;
  temu_Object * Obj;
  int Index;
  void * Data;
  temu_PropWriter Writer;
  temu_PropReader Reader;
  temu_PropWriter Setter;
  temu_PropReader Getter;
  temu_Propval (*)(struct temu_PropAccessor *) readProp;
  void (*)(struct temu_PropAccessor *, temu_Propval) writeProp;
  temu_Propval (*)(struct temu_PropAccessor *) getProp;
  void (*)(struct temu_PropAccessor *, temu_Propval) setProp;
}

Description

Generic property accessor

This struct serves as a generic accessor for properties. The intention for this is to be able to cache property accessors, without having to disambiguate between properties and pseudo properties.

The accessor is queried by the temu_getPropAccessor function, and is then used by calling the functions:

  • readProp

  • writeProp

  • getProp

  • setProp

Depending on whether read, write, get or set semantics is needed.

Fields

Field Type Description

Typ

temu_Type

Type of property

Obj

temu_Object *

Pointer to object containing property

Index

int

Index used in access, can be modified by user

Data

void *

Pointer to value if applicable

Writer

temu_PropWriter

Writer function if applicable

Reader

int),temu_PropReader

Reader function if applicable

Setter

temu_PropWriter

Setter function if applicable

Getter

int),temu_PropReader

Getter function if applicable

readProp

temu_Propval ()(struct temu_PropAccessor *)

Read property via accessor

writeProp

void (*)(struct temu_PropAccessor *, temu_Propval)

Write property via accessor

getProp

temu_Propval ()(struct temu_PropAccessor *)

Get property via accessor

setProp

void (*)(struct temu_PropAccessor *, temu_Propval)

Set property via accessor

temu_PropInfo

Include

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

Type

struct temu_PropInfo {
  const char * Name;
  temu_Type Typ;
  size_t Count;
  uintptr_t Offset;
}

Description

Fields

Field Type Description

Name

const char *

Name of property

Typ

temu_Type

Type tag

Count

size_t

Number of elements in property

Offset

uintptr_t

Offset from struct start

temu_PropName

Include

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

Type

struct temu_PropName {
  temu_Object * Obj;
  const char * Name;
}

Description

Named property reference

Fields

Field Type Description

Obj

temu_Object *

Object pointer

Name

const char *

Property name

temu_Propref

Include

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

Type

struct temu_Propref {
  temu_Type Typ;
  void * Ptr;
}

Description

Typed property reference.

The property reference contains a type tag and a raw pointer to the property.

Fields

Field Type Description

Typ

temu_Type

Type of property

Ptr

void *

Pointer to property

temu_Propval

Include

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

Type

struct temu_Propval {
  temu_Type Typ;
}

Description

Generic property value.

As properties can be of any normal type, the propval struct provides a sum type/tagged union which contain both the type tag and the property value.

Fields

Field Type Description

Typ

temu_Type

Value type

temu_RegisterBankInfo

Include

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

Type

struct temu_RegisterBankInfo {
}

Description

Fields

Field Type Description

temu_RegisterInfo

Include

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

Type

struct temu_RegisterInfo {
}

Description

Fields

Field Type Description

temu_ResetIfaceRef

Include

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

Type

struct temu_ResetIfaceRef {
}

Description

Fields

Field Type Description

temu_ResetIfaceRefArray

Include

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

Type

struct temu_ResetIfaceRefArray {
}

Description

Fields

Field Type Description

temu_SerialIfaceRef

Include

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

Type

struct temu_SerialIfaceRef {
}

Description

Fields

Field Type Description

temu_SerialIfaceRefArray

Include

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

Type

struct temu_SerialIfaceRefArray {
}

Description

Fields

Field Type Description

temu_SignalIfaceRef

Include

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

Type

struct temu_SignalIfaceRef {
}

Description

Fields

Field Type Description

temu_SignalIfaceRefArray

Include

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

Type

struct temu_SignalIfaceRefArray {
}

Description

Fields

Field Type Description

temu_SparcV8IfaceRef

Include

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

Type

struct temu_SparcV8IfaceRef {
}

Description

Fields

Field Type Description

temu_SparcV8IfaceRefArray

Include

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

Type

struct temu_SparcV8IfaceRefArray {
}

Description

Fields

Field Type Description

temu_SpiBus

Include

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

Type

struct temu_SpiBus {
}

Description

Fields

Field Type Description

temu_SpiBusIfaceRef

Include

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

Type

struct temu_SpiBusIfaceRef {
}

Description

Fields

Field Type Description

temu_SpiBusIfaceRefArray

Include

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

Type

struct temu_SpiBusIfaceRefArray {
}

Description

Fields

Field Type Description

temu_SpiDevConfig

Include

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

Type

struct temu_SpiDevConfig {
}

Description

Fields

Field Type Description

temu_SpiMasterDeviceIfaceRef

Include

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

Type

struct temu_SpiMasterDeviceIfaceRef {
}

Description

Fields

Field Type Description

temu_SpiMasterDeviceIfaceRefArray

Include

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

Type

struct temu_SpiMasterDeviceIfaceRefArray {
}

Description

Fields

Field Type Description

temu_SpiSlaveDevice

Include

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

Type

struct temu_SpiSlaveDevice {
}

Description

Fields

Field Type Description

temu_SpiSlaveDeviceIfaceRef

Include

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

Type

struct temu_SpiSlaveDeviceIfaceRef {
}

Description

Fields

Field Type Description

temu_SpiSlaveDeviceIfaceRefArray

Include

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

Type

struct temu_SpiSlaveDeviceIfaceRefArray {
}

Description

Fields

Field Type Description

temu_SpwPacket

Include

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

Type

struct temu_SpwPacket {
}

Description

Fields

Field Type Description

temu_SpwPortIfaceRef

Include

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

Type

struct temu_SpwPortIfaceRef {
}

Description

Fields

Field Type Description

temu_SpwPortIfaceRefArray

Include

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

Type

struct temu_SpwPortIfaceRefArray {
}

Description

Fields

Field Type Description

temu_SpwRmapDecodedCmdField

Include

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

Type

struct temu_SpwRmapDecodedCmdField {
}

Description

Fields

Field Type Description

temu_SpwRmapDecodedCommandHeader

Include

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

Type

struct temu_SpwRmapDecodedCommandHeader {
}

Description

Fields

Field Type Description

temu_SpwRmapDecodedPacket

Include

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

Type

struct temu_SpwRmapDecodedPacket {
  uint32_t TotalSize;
  temu_SpwRmapPacketType PacketType;
  temu_SpwRmapDecodedCmdField CmdField;
  temu_SpwRmapRawHeader RawHeader;
}

Description

Fields

Field Type Description

TotalSize

uint32_t

Total size of the packet received.

PacketType

temu_SpwRmapPacketType

The packet type as identified by bits [7,6] in instruction.

CmdField

temu_SpwRmapDecodedCmdField

The command field, bits [5,4,3,2] in instruction.

RawHeader

temu_SpwRmapRawHeader

Raw header data access.

temu_SpwRmapDecodedReadReply

Include

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

Type

struct temu_SpwRmapDecodedReadReply {
  const uint8_t * Data;
  uint32_t AvailableDataLength;
  uint8_t DataCrc;
}

Description

Fields

Field Type Description

Data

const uint8_t *

Pointer to the first data char.

AvailableDataLength

uint32_t

The amount of data available.

DataCrc

uint8_t

Data crc. Valid only if AvailableDataLength > Header.DataLength.

temu_SpwRmapDecodedReadReplyHeader

Include

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

Type

struct temu_SpwRmapDecodedReadReplyHeader {
}

Description

Fields

Field Type Description

temu_SpwRmapDecodedRmwReply

Include

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

Type

struct temu_SpwRmapDecodedRmwReply {
  const uint8_t * Data;
  uint32_t AvailableDataLength;
  uint8_t DataCrc;
}

Description

Fields

Field Type Description

Data

const uint8_t *

Pointer to the first data char.

AvailableDataLength

uint32_t

The amount of data available.

DataCrc

uint8_t

Data crc. Valid only if AvailableDataLength > Header.DataLength.

temu_SpwRmapDecodedWriteReply

Include

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

Type

struct temu_SpwRmapDecodedWriteReply {
}

Description

Fields

Field Type Description

temu_SpwRmapDecodedWriteReplyHeader

Include

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

Type

struct temu_SpwRmapDecodedWriteReplyHeader {
}

Description

Fields

Field Type Description

temu_SpwRmapRawHeader

Include

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

Type

struct temu_SpwRmapRawHeader {
}

Description

Fields

Field Type Description

temu_SpwRmapReadCmdPacket

Include

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

Type

struct temu_SpwRmapReadCmdPacket {
}

Description

Fields

Field Type Description

temu_SpwRmapRmwCmdPacket

Include

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

Type

struct temu_SpwRmapRmwCmdPacket {
  uint8_t AccessSize;
  const uint8_t * Data;
  const uint8_t * Mask;
  uint32_t AvailableDataLength;
  uint8_t DataCrc;
}

Description

Fields

Field Type Description

AccessSize

uint8_t

Size of the access.

Data

const uint8_t *

Pointer to the first data char.

Mask

const uint8_t *

Pointer to the first mask char.

AvailableDataLength

uint32_t

The amount of data available.

DataCrc

uint8_t

Data crc. Valid only if AvailableDataLength > Header.DataLength.

temu_SpwRmapWriteCmdPacket

Include

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

Type

struct temu_SpwRmapWriteCmdPacket {
  const uint8_t * Data;
  uint32_t AvailableDataLength;
  uint8_t DataCrc;
}

Description

Fields

Field Type Description

Data

const uint8_t *

Pointer to the first data char.

AvailableDataLength

uint32_t

The amount of data available.

DataCrc

uint8_t

Data crc. Valid only if AvailableDataLength > Header.DataLength.

temu_TargetExecutionIfaceRef

Include

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

Type

struct temu_TargetExecutionIfaceRef {
}

Description

Fields

Field Type Description

temu_TargetExecutionIfaceRefArray

Include

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

Type

struct temu_TargetExecutionIfaceRefArray {
}

Description

Fields

Field Type Description

temu_TrapEventInfo

Include

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

Type

struct temu_TrapEventInfo {
  uint32_t TrapId;
  uint64_t PC;
  uint64_t nPC;
}

Description

Fields

Field Type Description

TrapId

uint32_t

Trap number (architecture specific)

PC

uint64_t

Program counter when trap occurred

nPC

uint64_t

Only valid for targets with delay slots

temu_Vector

Include

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

Type

struct temu_Vector {
  temu_Type Typ;
  void * VecData;
}

Description

Dynamically sized array

Fields

Field Type Description

Typ

temu_Type

Type of vector data

VecData

void *

Managed pointer, do not use directly

temu_i16Array

Include

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

Type

struct temu_i16Array {
}

Description

Fields

Field Type Description

temu_i32Array

Include

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

Type

struct temu_i32Array {
}

Description

Fields

Field Type Description

temu_i64Array

Include

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

Type

struct temu_i64Array {
}

Description

Fields

Field Type Description

temu_i8Array

Include

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

Type

struct temu_i8Array {
}

Description

Fields

Field Type Description

temu_objectArray

Include

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

Type

struct temu_objectArray {
}

Description

Fields

Field Type Description

temu_u16Array

Include

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

Type

struct temu_u16Array {
}

Description

Fields

Field Type Description

temu_u32Array

Include

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

Type

struct temu_u32Array {
}

Description

Fields

Field Type Description

temu_u64Array

Include

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

Type

struct temu_u64Array {
}

Description

Fields

Field Type Description

temu_u8Array

Include

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

Type

struct temu_u8Array {
}

Description

Fields

Field Type Description