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_BTIfaceRef

Include

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

Type

struct temu_BTIfaceRef {
}

Description

Fields

Field Type Description

temu_BTIfaceRefArray

Include

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

Type

struct temu_BTIfaceRefArray {
}

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_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 {
}

Description

Fields

Field Type Description

temu_CpuVTable

Include

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

Type

struct temu_CpuVTable {
}

Description

Fields

Field Type Description

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 {
}

Description

Fields

Field Type Description

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 {
}

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

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 {
}

Description

Fields

Field Type Description

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 {
}

Description

Fields

Field Type Description

temu_MemAccessCapabilities

Include

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

Type

struct temu_MemAccessCapabilities {
  uint16_t TransactionBaseSizes;
  uint16_t LargeTransactions;
}

Description

Fields

Field Type Description

TransactionBaseSizes

uint16_t

Flags indicating legal transaction sizes

LargeTransactions

uint16_t

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

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 {
}

Description

Fields

Field Type Description

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 {
}

Description

Fields

Field Type Description

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_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 {
}

Description

Fields

Field Type Description

temu_Propref

Include

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

Type

struct temu_Propref {
}

Description

Typed property reference.

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

Fields

Field Type Description

temu_Propval

Include

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

Type

struct temu_Propval {
}

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

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 {
  uint64_t PC;
  uint64_t nPC;
}

Description

Fields

Field Type Description

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 {
}

Description

Fields

Field Type Description

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