![]() |
F´ Flight Software - C/C++ Documentation
A framework for building embedded system applications to NASA flight quality standards.
|
Auto-generated base for WasmSequencer component. More...
#include <Svc/WasmSequencer/WasmSequencerComponentAc.hpp>
Classes | |
| class | Svc_WasmSequencer_ControllerStateMachine |
| Implementation of state machine Svc_WasmSequencer_ControllerStateMachine. More... | |
| class | Svc_WasmSequencer_InterpreterStateMachine |
| Implementation of state machine Svc_WasmSequencer_InterpreterStateMachine. More... | |
Friends | |
| class | WasmSequencerTesterBase |
| Friend class tester to support autocoded test harness. More... | |
| class | WasmSequencerTester |
| Friend class tester implementation to support white-box testing. More... | |
Additional Inherited Members | |
Public Types inherited from Fw::ActiveComponentBase | |
| enum | { ACTIVE_COMPONENT_EXIT } |
Public Types inherited from Fw::QueuedComponentBase | |
| enum | MsgDispatchStatus { MSG_DISPATCH_OK, MSG_DISPATCH_EMPTY, MSG_DISPATCH_ERROR, MSG_DISPATCH_EXIT } |
Protected Attributes inherited from Fw::ActiveComponentBase | |
| Os::Task | m_task |
| task object for active component More... | |
Protected Attributes inherited from Fw::QueuedComponentBase | |
| Os::Queue | m_queue |
| queue object for active component More... | |
Auto-generated base for WasmSequencer component.
A sequence engine based around a WebAssembly interpreter
Definition at line 74 of file WasmSequencerComponentAc.hpp.
|
protected |
Enumerations for numbers of special input ports.
| Enumerator | |
|---|---|
| NUM_CMDIN_INPUT_PORTS | |
Definition at line 94 of file WasmSequencerComponentAc.hpp.
|
protected |
Enumerations for numbers of typed input ports.
| Enumerator | |
|---|---|
| NUM_CHECKTIMERS_INPUT_PORTS | |
| NUM_CMDRESPONSEIN_INPUT_PORTS | |
| NUM_SEQCANCELIN_INPUT_PORTS | |
| NUM_SEQRUNIN_INPUT_PORTS | |
| NUM_WRITETELEMETRY_INPUT_PORTS | |
Definition at line 99 of file WasmSequencerComponentAc.hpp.
|
protected |
Enumerations for numbers of serial input ports.
| Enumerator | |
|---|---|
| NUM_SERIALIN_INPUT_PORTS | |
Definition at line 108 of file WasmSequencerComponentAc.hpp.
|
protected |
Enumerations for numbers of special output ports.
Definition at line 113 of file WasmSequencerComponentAc.hpp.
|
protected |
Enumerations for numbers of typed output ports.
| Enumerator | |
|---|---|
| NUM_CMDOUT_OUTPUT_PORTS | |
| NUM_GETPARAM_OUTPUT_PORTS | |
| NUM_GETTLMCHAN_OUTPUT_PORTS | |
| NUM_SEQDONEOUT_OUTPUT_PORTS | |
| NUM_SEQSTARTOUT_OUTPUT_PORTS | |
Definition at line 125 of file WasmSequencerComponentAc.hpp.
|
protected |
Enumerations for numbers of serial output ports.
| Enumerator | |
|---|---|
| NUM_SERIALOUT_OUTPUT_PORTS | |
Definition at line 134 of file WasmSequencerComponentAc.hpp.
|
protected |
Command opcodes.
| Enumerator | |
|---|---|
| OPCODE_RUN | Run a Wasm module main function on it's own in the interpreter This command first resets the store (discarding any modules previously staged with LOAD), then is short-hand for: ```sh CANCEL # doesn't actually cancel a sequence, just resets the store LOAD [fileName] "" INVOKE "" [block] ``` If $block == Svc.BlockState.BLOCK this command will wait for completion. |
| OPCODE_LOAD | Loads and validates a WebAssembly module into the store under the given name. Naming the module lets its exports be referenced by other modules and lets INVOKE, GLOBAL_GET and GLOBAL_SET address it. Use an empty name for a single, standalone module. The name must not conflict with a previously loaded module. |
| OPCODE_INVOKE | Invoke a main function from a loaded module. |
| OPCODE_WAIT | Wait for the interpreter to finish and return it's result as a CmdResponse. |
| OPCODE_CANCEL | Cancels a running or validated sequence. After running CANCEL, the sequencer should return to IDLE This completely clears the store. |
| OPCODE_PAUSE | Pauses the execution of the sequencer, just before it is about to start spinning. This simply pends a pause flag that will be taken before the sequence engine starts up again. This command completes immediately |
| OPCODE_CONTINUE | Resume the sequence from a paused state. |
| OPCODE_GLOBAL_SET_I32 | Set a global variable to a given i32 value. Command fails if the module is not found, global is not exported, mutable, or of i32 type |
| OPCODE_GLOBAL_SET_I64 | Set a global variable to a given i64 value. Command fails if the module is not found, global is not exported, mutable, or of i64 type |
| OPCODE_GLOBAL_SET_F32 | Set a global variable to a given f32 value. Command fails if the module is not found, global is not exported, mutable, or of f32 type |
| OPCODE_GLOBAL_SET_F64 | Set a global variable to a given f64 value. Command fails if the module is not found, global is not exported, mutable, or of f64 type |
| OPCODE_GLOBAL_GET | Get the current value of a global variable and emit an event Command fails if the module is not found or the global is not exported |
| OPCODE_HOST_FUNCTION_TIMEOUT_SECS_SET | Opcode to set parameter HOST_FUNCTION_TIMEOUT_SECS. |
| OPCODE_HOST_FUNCTION_TIMEOUT_SECS_SAVE | Opcode to save parameter HOST_FUNCTION_TIMEOUT_SECS. |
| OPCODE_INSTRUCTION_FUEL_SET | Opcode to set parameter INSTRUCTION_FUEL. |
| OPCODE_INSTRUCTION_FUEL_SAVE | Opcode to save parameter INSTRUCTION_FUEL. |
| OPCODE_SEQ_BASE_DIR_SET | Opcode to set parameter SEQ_BASE_DIR. |
| OPCODE_SEQ_BASE_DIR_SAVE | Opcode to save parameter SEQ_BASE_DIR. |
Definition at line 139 of file WasmSequencerComponentAc.hpp.
|
protected |
Event IDs.
| Enumerator | |
|---|---|
| EVENTID_STOREALLOCATIONSUCCEEDED | The interpreter store was allocated with capacity for the given number of modules. |
| EVENTID_CONTROLLERCANNOTINVOKE | A command was issued in a state where it is not valid. |
| EVENTID_CONTROLLERBUSY | A command was issued in a state where it is not valid. |
| EVENTID_MODULENOTFOUND | Failed to find a loaded module with the requested name. |
| EVENTID_MEMORYGROWREJECTED | A guest memory.grow could not be serviced by the guest bump allocator and was rejected. The guest sees memory.grow return -1; execution continues. |
| EVENTID_GLOBALSETFAILED | |
| EVENTID_GLOBALGETFAILED | |
| EVENTID_GLOBALVALUEI32 | |
| EVENTID_GLOBALVALUEI64 | |
| EVENTID_GLOBALVALUEF32 | |
| EVENTID_GLOBALVALUEF64 | |
| EVENTID_FILEOPENERROR | Failed to open the requested Wasm module file. |
| EVENTID_SEQUENCEFILEPATHTOOLONG | The SEQ_BASE_DIR base directory joined with the requested sequence file path exceeds the file-path buffer; the load will fail to open the truncated path. |
| EVENTID_SEQUENCEFILEPATHNOTCONTAINED | A ground-supplied sequence file name contained a ".." path-traversal component while SEQ_BASE_DIR was configured, so it could escape the base directory. The load is rejected rather than opening a path outside the configured base dir. |
| EVENTID_MODULELOADFAILED | A module failed to decode/validate while loading. |
| EVENTID_MODULEMAININVOKEFAILED | Failed to invoke a module's main entrypoint. |
| EVENTID_MODULESTARTINVOKEFAILED | Failed to invoke a module's start function. |
| EVENTID_TOOMANYBLOCKINGCOMMANDS | A blocking command could not be queued because too many commands are already waiting on the sequencer to finish |
| EVENTID_BUFFERTOOLARGE | A guest host function supplied a buffer larger than the host maximum for that call. |
| EVENTID_BUFFERTOOSMALL | A guest host function supplied a buffer too small to hold the host value being returned. |
| EVENTID_HOSTFUNCTIONINVALIDPOINTER | |
| EVENTID_INVALIDBLOCKINGTYPEVALUE | |
| EVENTID_HOSTFUNCTIONINVALIDPORT | A guest serial port host function requested a port index outside the configured range. |
| EVENTID_SERIALPORTSENDFAILED | A guest serial port payload could not be serialized onto the serial output port (the receiving port rejected the guest-supplied bytes) |
| EVENTID_SERIALINFRAMETOOLARGE | An inbound serial frame was larger than the receiving queue could ever hold and was dropped. serialIn is fed by external hardware/ground data, so an oversized frame is rejected here rather than asserting on flight software. |
| EVENTID_HOSTFUNCTIONINVALIDSEVERITY | The guest requested an event at a severity that is not permitted for guest programs (an out-of-range id, or FATAL/COMMAND which are reserved for the host). The guest message is preserved and reported here at WARNING_HI. |
| EVENTID_SEQUENCESTARTING | A sequence is starting after the main entrypoint was invoked. |
| EVENTID_SEQUENCESUCCEEDED | The interpreter ran a program to completion. |
| EVENTID_SEQUENCECANCELLED | The sequence was cancelled. |
| EVENTID_SEQUENCEEXITED | The sequence finished with a non-zero code: the guest returned a non-zero value from main, or called fprime.exit with a non-zero code |
| EVENTID_SEQUENCEPANIC | The guest called fprime.panic. |
| EVENTID_SEQUENCETRAPPED | The interpreter aborted the sequence with a byte-code trap. |
| EVENTID_SEQUENCEHOSTFAILURE | A host function the sequence was awaiting failed: an error reply, a reply timeout, an unexpected reply, or an incomparable timer |
| EVENTID_SEQUENCEPAUSED | Execution was paused at a breakpoint. |
| EVENTID_SEQUENCENOTRUNNING | No sequence is running so we cannot continue from a pause. |
| EVENTID_SLEEPDURATIONTOOLARGE | The guest requested a sleep whose duration (in microseconds) does not fit the host timer representation (its whole-seconds part overflows U32) |
| EVENTID_HOSTFUNCTIONINVALIDID | A guest host function supplied a 64-bit id (telemetry channel or parameter id) that does not fit in the narrower id type used by the framework. Casting it directly would silently alias a different, valid id, so the request is rejected rather than truncated. |
| EVENTID_CMDRESPONSEFROMOLDSEQUENCE | A command response arrived carrying a context (cmdUid) from a previous sequence run. Reported (not failed) because a late reply after CANCEL is nominal. |
| EVENTID_WRONGCMDRESPONSEINDEX | A command response arrived for the correct opcode from this sequence, but for a different dispatch instance than the one currently being awaited. |
| EVENTID_INVALIDMODULEENTRYPOINT | |
| EVENTID_LOGWARNINGHI | A WARNING_HI event emitted by the guest program. |
| EVENTID_LOGWARNINGLO | A WARNING_LO event emitted by the guest program. |
| EVENTID_LOGACTIVITYHI | An ACTIVITY_HI event emitted by the guest program. |
| EVENTID_LOGACTIVITYLO | An ACTIVITY_LO event emitted by the guest program. |
| EVENTID_LOGDIAGNOSTIC | A DIAGNOSTIC event emitted by the guest program. |
Definition at line 184 of file WasmSequencerComponentAc.hpp.
|
protected |
Channel IDs.
Definition at line 251 of file WasmSequencerComponentAc.hpp.
|
protected |
Parameter IDs.
| Enumerator | |
|---|---|
| PARAMID_HOST_FUNCTION_TIMEOUT_SECS | the number of seconds to wait before giving up on a host function/command. if <= 0 or greater than U32 max, never time out. accuracy of this timeout is determined by the rate group driving this component. it will be rounded up. |
| PARAMID_INSTRUCTION_FUEL | Number of Wasm instructions to execute per interpreter cycle. Larger numbers will effect the responsiveness of the interpreter to Larger numbers make the interpreter faster because the engine doesn't need to feed itself through a queue to fuel more cycles. |
| PARAMID_SEQ_BASE_DIR | A literal prefix prepended to every requested sequence file path before resolution following the rules of Os::File::open. When non-empty it also acts as a containment boundary: a requested name with a ".." component is rejected rather than being allowed to escape the prefix. |
Definition at line 264 of file WasmSequencerComponentAc.hpp.
|
strongprotected |
State machine identifiers.
| Enumerator | |
|---|---|
| controller | |
| interpreter | |
Definition at line 282 of file WasmSequencerComponentAc.hpp.
|
protected |
Construct WasmSequencerComponentBase object.
| compName | The component name |
Definition at line 1796 of file WasmSequencerComponentAc.cpp.
|
protectedvirtual |
Destroy WasmSequencerComponentBase object.
Definition at line 1805 of file WasmSequencerComponentAc.cpp.
|
protectedpure virtual |
Handler for command CANCEL
Cancels a running or validated sequence. After running CANCEL, the sequencer should return to IDLE This completely clears the store.
| opCode | The opcode |
| cmdSeq | The command sequence number |
|
protected |
Base-class handler function for command CANCEL
Cancels a running or validated sequence. After running CANCEL, the sequencer should return to IDLE This completely clears the store.
| opCode | The opcode |
| cmdSeq | The command sequence number |
| args | The command argument buffer |
Definition at line 3258 of file WasmSequencerComponentAc.cpp.
|
protectedpure virtual |
Handler for input port checkTimers.
| portNum | The port number |
| context | The call order |
|
protected |
Handler base-class function for input port checkTimers.
| portNum | The port number |
| context | The call order |
Definition at line 2192 of file WasmSequencerComponentAc.cpp.
|
protectedvirtual |
Pre-message hook for async input port checkTimers.
| portNum | The port number |
| context | The call order |
Definition at line 2449 of file WasmSequencerComponentAc.cpp.
|
protected |
Handler base-class function for input port cmdIn.
| portNum | The port number |
| opCode | The opcode |
| cmdSeq | The command sequence number |
| args | The command argument buffer |
Definition at line 1999 of file WasmSequencerComponentAc.cpp.
|
protected |
Invoke output port cmdOut.
| portNum | The port number |
| data | Buffer containing packet data |
| context | Call context value; meaning chosen by user |
Definition at line 2485 of file WasmSequencerComponentAc.cpp.
|
protected |
Emit command response.
| opCode | The opcode |
| cmdSeq | The command sequence number |
| response | The command response |
Definition at line 3005 of file WasmSequencerComponentAc.cpp.
|
protectedpure virtual |
Handler for input port cmdResponseIn.
| portNum | The port number |
| opCode | Command Op Code |
| cmdSeq | Command Sequence |
| response | The command response argument |
|
protected |
Handler base-class function for input port cmdResponseIn.
| portNum | The port number |
| opCode | Command Op Code |
| cmdSeq | Command Sequence |
| response | The command response argument |
Definition at line 2245 of file WasmSequencerComponentAc.cpp.
|
protectedvirtual |
Pre-message hook for async input port cmdResponseIn.
| portNum | The port number |
| opCode | Command Op Code |
| cmdSeq | Command Sequence |
| response | The command response argument |
Definition at line 2458 of file WasmSequencerComponentAc.cpp.
|
protectedpure virtual |
Handler for command CONTINUE
Resume the sequence from a paused state
| opCode | The opcode |
| cmdSeq | The command sequence number |
|
protected |
Base-class handler function for command CONTINUE
Resume the sequence from a paused state
| opCode | The opcode |
| cmdSeq | The command sequence number |
| args | The command argument buffer |
Definition at line 3343 of file WasmSequencerComponentAc.cpp.
|
protectedvirtual |
Pre-message hook for command CONTINUE.
| opCode | The opcode |
| cmdSeq | The command sequence number |
Definition at line 3760 of file WasmSequencerComponentAc.cpp.
|
protected |
Get the state of state machine instance controller.
Definition at line 2680 of file WasmSequencerComponentAc.cpp.
|
protected |
Send signal cancel to state machine controller.
Definition at line 2761 of file WasmSequencerComponentAc.cpp.
|
protected |
Send signal engineFinished to state machine controller.
| value | The value |
Definition at line 2797 of file WasmSequencerComponentAc.cpp.
|
protected |
Send signal invoke to state machine controller.
| value | The value |
Definition at line 2722 of file WasmSequencerComponentAc.cpp.
|
protected |
Send signal invoked to state machine controller.
| value | The value |
Definition at line 2735 of file WasmSequencerComponentAc.cpp.
|
protected |
Send signal invokeFailed to state machine controller.
| value | The value |
Definition at line 2748 of file WasmSequencerComponentAc.cpp.
|
protected |
Send signal load to state machine controller.
| value | The value |
Definition at line 2709 of file WasmSequencerComponentAc.cpp.
|
protected |
Send signal loadFailed to state machine controller.
| value | The value |
Definition at line 2784 of file WasmSequencerComponentAc.cpp.
|
protected |
Send signal loadSucceeded to state machine controller.
| value | The value |
Definition at line 2771 of file WasmSequencerComponentAc.cpp.
|
protected |
Send signal run to state machine controller.
| value | The value |
Definition at line 2696 of file WasmSequencerComponentAc.cpp.
| Svc::InputSchedPort * Svc::WasmSequencerComponentBase::get_checkTimers_InputPort | ( | FwIndexType | portNum | ) |
Get typed input port at index
| portNum | The port number |
Definition at line 1130 of file WasmSequencerComponentAc.cpp.
| Fw::InputCmdPort * Svc::WasmSequencerComponentBase::get_cmdIn_InputPort | ( | FwIndexType | portNum | ) |
Get special input port at index
| portNum | The port number |
Definition at line 1111 of file WasmSequencerComponentAc.cpp.
| Fw::InputCmdResponsePort * Svc::WasmSequencerComponentBase::get_cmdResponseIn_InputPort | ( | FwIndexType | portNum | ) |
Get typed input port at index
| portNum | The port number |
Definition at line 1141 of file WasmSequencerComponentAc.cpp.
| Svc::InputCmdSeqCancelPort * Svc::WasmSequencerComponentBase::get_seqCancelIn_InputPort | ( | FwIndexType | portNum | ) |
Get typed input port at index
| portNum | The port number |
Definition at line 1152 of file WasmSequencerComponentAc.cpp.
| Svc::InputCmdSeqInPort * Svc::WasmSequencerComponentBase::get_seqRunIn_InputPort | ( | FwIndexType | portNum | ) |
Get typed input port at index
| portNum | The port number |
Definition at line 1163 of file WasmSequencerComponentAc.cpp.
| Fw::InputSerializePort * Svc::WasmSequencerComponentBase::get_serialIn_InputPort | ( | FwIndexType | portNum | ) |
Get serial input port at index
| portNum | The port number |
Definition at line 1193 of file WasmSequencerComponentAc.cpp.
| Svc::InputSchedPort * Svc::WasmSequencerComponentBase::get_writeTelemetry_InputPort | ( | FwIndexType | portNum | ) |
Get typed input port at index
| portNum | The port number |
Definition at line 1174 of file WasmSequencerComponentAc.cpp.
|
inlinestaticprotected |
Get the number of checkTimers input ports
Definition at line 1067 of file WasmSequencerComponentAc.hpp.
|
inlinestaticprotected |
Get the number of cmdIn input ports
Definition at line 1054 of file WasmSequencerComponentAc.hpp.
|
inlinestaticprotected |
Get the number of cmdOut output ports
Definition at line 1187 of file WasmSequencerComponentAc.hpp.
|
inlinestaticprotected |
Get the number of cmdRegOut output ports
Definition at line 1121 of file WasmSequencerComponentAc.hpp.
|
inlinestaticprotected |
Get the number of cmdResponseIn input ports
Definition at line 1074 of file WasmSequencerComponentAc.hpp.
|
inlinestaticprotected |
Get the number of cmdResponseOut output ports
Definition at line 1128 of file WasmSequencerComponentAc.hpp.
|
inlinestaticprotected |
Get the number of getParam output ports
Definition at line 1194 of file WasmSequencerComponentAc.hpp.
|
inlinestaticprotected |
Get the number of getTlmChan output ports
Definition at line 1201 of file WasmSequencerComponentAc.hpp.
|
inlinestaticprotected |
Get the number of logOut output ports
Definition at line 1135 of file WasmSequencerComponentAc.hpp.
|
inlinestaticprotected |
Get the number of prmGet output ports
Definition at line 1153 of file WasmSequencerComponentAc.hpp.
|
inlinestaticprotected |
Get the number of prmSet output ports
Definition at line 1160 of file WasmSequencerComponentAc.hpp.
|
inlinestaticprotected |
Get the number of seqCancelIn input ports
Definition at line 1081 of file WasmSequencerComponentAc.hpp.
|
inlinestaticprotected |
Get the number of seqDoneOut output ports
Definition at line 1208 of file WasmSequencerComponentAc.hpp.
|
inlinestaticprotected |
Get the number of seqRunIn input ports
Definition at line 1088 of file WasmSequencerComponentAc.hpp.
|
inlinestaticprotected |
Get the number of seqStartOut output ports
Definition at line 1215 of file WasmSequencerComponentAc.hpp.
|
inlinestaticprotected |
Get the number of serialIn input ports
Definition at line 1108 of file WasmSequencerComponentAc.hpp.
|
inlinestaticprotected |
Get the number of serialOut output ports
Definition at line 1228 of file WasmSequencerComponentAc.hpp.
|
inlinestaticprotected |
Get the number of timeCaller output ports
Definition at line 1167 of file WasmSequencerComponentAc.hpp.
|
inlinestaticprotected |
Get the number of tlmOut output ports
Definition at line 1174 of file WasmSequencerComponentAc.hpp.
|
inlinestaticprotected |
Get the number of writeTelemetry input ports
Definition at line 1095 of file WasmSequencerComponentAc.hpp.
|
protected |
Invoke output port getParam.
| portNum | The port number |
| id | Parameter ID |
| val | Buffer containing serialized parameter value. Unmodified if param not found. |
Definition at line 2507 of file WasmSequencerComponentAc.cpp.
|
protected |
|
protected |
Invoke output port getTlmChan.
| portNum | The port number |
| id | Telemetry Channel ID |
| timeTag | Time Tag |
| val | Buffer containing serialized telemetry value. Size set to 0 if channel not found, or if no value has been received for this channel yet. |
Definition at line 2529 of file WasmSequencerComponentAc.cpp.
|
protectedpure virtual |
Handler for command GLOBAL_GET
Get the current value of a global variable and emit an event Command fails if the module is not found or the global is not exported
| opCode | The opcode |
| cmdSeq | The command sequence number |
| moduleName | Name of the module to get global for |
| name | Name of the global |
|
protected |
Base-class handler function for command GLOBAL_GET
Get the current value of a global variable and emit an event Command fails if the module is not found or the global is not exported
| opCode | The opcode |
| cmdSeq | The command sequence number |
| args | The command argument buffer |
Definition at line 3638 of file WasmSequencerComponentAc.cpp.
|
protectedvirtual |
Pre-message hook for command GLOBAL_GET.
| opCode | The opcode |
| cmdSeq | The command sequence number |
Definition at line 3815 of file WasmSequencerComponentAc.cpp.
|
protectedpure virtual |
Handler for command GLOBAL_SET_F32
Set a global variable to a given f32 value. Command fails if the module is not found, global is not exported, mutable, or of f32 type
| opCode | The opcode |
| cmdSeq | The command sequence number |
| moduleName | Name of the module to set global for |
| name | Name of the global |
| value | Value to set global to |
|
protected |
Base-class handler function for command GLOBAL_SET_F32
Set a global variable to a given f32 value. Command fails if the module is not found, global is not exported, mutable, or of f32 type
| opCode | The opcode |
| cmdSeq | The command sequence number |
| args | The command argument buffer |
Definition at line 3520 of file WasmSequencerComponentAc.cpp.
|
protectedvirtual |
Pre-message hook for command GLOBAL_SET_F32.
| opCode | The opcode |
| cmdSeq | The command sequence number |
Definition at line 3793 of file WasmSequencerComponentAc.cpp.
|
protectedpure virtual |
Handler for command GLOBAL_SET_F64
Set a global variable to a given f64 value. Command fails if the module is not found, global is not exported, mutable, or of f64 type
| opCode | The opcode |
| cmdSeq | The command sequence number |
| moduleName | Name of the module to set global for |
| name | Name of the global |
| value | Value to set global to |
|
protected |
Base-class handler function for command GLOBAL_SET_F64
Set a global variable to a given f64 value. Command fails if the module is not found, global is not exported, mutable, or of f64 type
| opCode | The opcode |
| cmdSeq | The command sequence number |
| args | The command argument buffer |
Definition at line 3579 of file WasmSequencerComponentAc.cpp.
|
protectedvirtual |
Pre-message hook for command GLOBAL_SET_F64.
| opCode | The opcode |
| cmdSeq | The command sequence number |
Definition at line 3804 of file WasmSequencerComponentAc.cpp.
|
protectedpure virtual |
Handler for command GLOBAL_SET_I32
Set a global variable to a given i32 value. Command fails if the module is not found, global is not exported, mutable, or of i32 type
| opCode | The opcode |
| cmdSeq | The command sequence number |
| moduleName | Name of the module to set global for |
| name | Name of the global |
| value | Value to set global to |
|
protected |
Base-class handler function for command GLOBAL_SET_I32
Set a global variable to a given i32 value. Command fails if the module is not found, global is not exported, mutable, or of i32 type
| opCode | The opcode |
| cmdSeq | The command sequence number |
| args | The command argument buffer |
Definition at line 3402 of file WasmSequencerComponentAc.cpp.
|
protectedvirtual |
Pre-message hook for command GLOBAL_SET_I32.
| opCode | The opcode |
| cmdSeq | The command sequence number |
Definition at line 3771 of file WasmSequencerComponentAc.cpp.
|
protectedpure virtual |
Handler for command GLOBAL_SET_I64
Set a global variable to a given i64 value. Command fails if the module is not found, global is not exported, mutable, or of i64 type
| opCode | The opcode |
| cmdSeq | The command sequence number |
| moduleName | Name of the module to set global for |
| name | Name of the global |
| value | Value to set global to |
|
protected |
Base-class handler function for command GLOBAL_SET_I64
Set a global variable to a given i64 value. Command fails if the module is not found, global is not exported, mutable, or of i64 type
| opCode | The opcode |
| cmdSeq | The command sequence number |
| args | The command argument buffer |
Definition at line 3461 of file WasmSequencerComponentAc.cpp.
|
protectedvirtual |
Pre-message hook for command GLOBAL_SET_I64.
| opCode | The opcode |
| cmdSeq | The command sequence number |
Definition at line 3782 of file WasmSequencerComponentAc.cpp.
| void Svc::WasmSequencerComponentBase::init | ( | FwSizeType | queueDepth, |
| FwEnumStoreType | instance = 0 |
||
| ) |
Initialize WasmSequencerComponentBase object.
| queueDepth | The queue depth |
| instance | The instance number |
Definition at line 605 of file WasmSequencerComponentAc.cpp.
|
protected |
Get the state of state machine instance interpreter.
Definition at line 2686 of file WasmSequencerComponentAc.cpp.
|
protected |
Send signal cancel to state machine interpreter.
Definition at line 2833 of file WasmSequencerComponentAc.cpp.
|
protected |
Send signal checkTimers to state machine interpreter.
Definition at line 2866 of file WasmSequencerComponentAc.cpp.
|
protected |
Send signal cmd_CONTINUE to state machine interpreter.
Definition at line 2810 of file WasmSequencerComponentAc.cpp.
|
protected |
Send signal cmdCancel to state machine interpreter.
| value | The value |
Definition at line 2820 of file WasmSequencerComponentAc.cpp.
|
protected |
Send signal entered to state machine interpreter.
Definition at line 2843 of file WasmSequencerComponentAc.cpp.
|
protected |
Send signal hostResponseFailure to state machine interpreter.
Definition at line 2899 of file WasmSequencerComponentAc.cpp.
|
protected |
Send signal hostResponseTimeIncomparable to state machine interpreter.
Definition at line 2922 of file WasmSequencerComponentAc.cpp.
|
protected |
Send signal hostResponseTimeout to state machine interpreter.
Definition at line 2932 of file WasmSequencerComponentAc.cpp.
|
protected |
Send signal hostResponseUnexpected to state machine interpreter.
| value | The value |
Definition at line 2909 of file WasmSequencerComponentAc.cpp.
|
protected |
Send signal hostResume to state machine interpreter.
Definition at line 2876 of file WasmSequencerComponentAc.cpp.
|
protected |
Send signal hostResumeI32 to state machine interpreter.
| value | The value |
Definition at line 2886 of file WasmSequencerComponentAc.cpp.
|
protected |
Send signal interpreterFinished to state machine interpreter.
| value | The value |
Definition at line 2955 of file WasmSequencerComponentAc.cpp.
|
protected |
Send signal interpreterHostFunctionNeedsPause to state machine interpreter.
Definition at line 2991 of file WasmSequencerComponentAc.cpp.
|
protected |
Send signal interpreterOutOfFuel to state machine interpreter.
Definition at line 2981 of file WasmSequencerComponentAc.cpp.
|
protected |
Send signal interpreterTrap to state machine interpreter.
| value | The value |
Definition at line 2968 of file WasmSequencerComponentAc.cpp.
|
protected |
Send signal run to state machine interpreter.
| value | The value |
Definition at line 2853 of file WasmSequencerComponentAc.cpp.
|
protected |
Send signal serialInMessage to state machine interpreter.
| value | The value |
Definition at line 2942 of file WasmSequencerComponentAc.cpp.
|
protectedpure virtual |
Handler for command INVOKE
Invoke a main function from a loaded module
| opCode | The opcode |
| cmdSeq | The command sequence number |
| module | Name of the module to invoke a function from |
| block | Block until sequence has finished running |
|
protected |
Base-class handler function for command INVOKE
Invoke a main function from a loaded module
| opCode | The opcode |
| cmdSeq | The command sequence number |
| args | The command argument buffer |
Definition at line 3140 of file WasmSequencerComponentAc.cpp.
|
protectedvirtual |
Pre-message hook for command INVOKE.
| opCode | The opcode |
| cmdSeq | The command sequence number |
Definition at line 3727 of file WasmSequencerComponentAc.cpp.
|
protected |
Check whether port cmdOut is connected
| portNum | The port number |
Definition at line 1917 of file WasmSequencerComponentAc.cpp.
|
protected |
Check whether port cmdRegOut is connected
| portNum | The port number |
Definition at line 1817 of file WasmSequencerComponentAc.cpp.
|
protected |
Check whether port cmdResponseOut is connected
| portNum | The port number |
Definition at line 1828 of file WasmSequencerComponentAc.cpp.
|
protected |
Check whether port getParam is connected
| portNum | The port number |
Definition at line 1928 of file WasmSequencerComponentAc.cpp.
|
protected |
Check whether port getTlmChan is connected
| portNum | The port number |
Definition at line 1939 of file WasmSequencerComponentAc.cpp.
|
protected |
Check whether port logOut is connected
| portNum | The port number |
Definition at line 1839 of file WasmSequencerComponentAc.cpp.
|
protected |
Check whether port prmGet is connected
| portNum | The port number |
Definition at line 1865 of file WasmSequencerComponentAc.cpp.
|
protected |
Check whether port prmSet is connected
| portNum | The port number |
Definition at line 1876 of file WasmSequencerComponentAc.cpp.
|
protected |
Check whether port seqDoneOut is connected
| portNum | The port number |
Definition at line 1950 of file WasmSequencerComponentAc.cpp.
|
protected |
Check whether port seqStartOut is connected
| portNum | The port number |
Definition at line 1961 of file WasmSequencerComponentAc.cpp.
|
protected |
Check whether port serialOut is connected
| portNum | The port number |
Definition at line 1980 of file WasmSequencerComponentAc.cpp.
|
protected |
Check whether port timeCaller is connected
| portNum | The port number |
Definition at line 1887 of file WasmSequencerComponentAc.cpp.
|
protected |
Check whether port tlmOut is connected
| portNum | The port number |
Definition at line 1898 of file WasmSequencerComponentAc.cpp.
|
protectedpure virtual |
Handler for command LOAD
Loads and validates a WebAssembly module into the store under the given name. Naming the module lets its exports be referenced by other modules and lets INVOKE, GLOBAL_GET and GLOBAL_SET address it. Use an empty name for a single, standalone module. The name must not conflict with a previously loaded module.
| opCode | The opcode |
| cmdSeq | The command sequence number |
| fileName | The name of the sequence file |
| name | WebAssembly module name (empty for a single unnamed module) |
|
protected |
Base-class handler function for command LOAD
Loads and validates a WebAssembly module into the store under the given name. Naming the module lets its exports be referenced by other modules and lets INVOKE, GLOBAL_GET and GLOBAL_SET address it. Use an empty name for a single, standalone module. The name must not conflict with a previously loaded module.
| opCode | The opcode |
| cmdSeq | The command sequence number |
| args | The command argument buffer |
Definition at line 3081 of file WasmSequencerComponentAc.cpp.
|
protectedvirtual |
Pre-message hook for command LOAD.
| opCode | The opcode |
| cmdSeq | The command sequence number |
Definition at line 3716 of file WasmSequencerComponentAc.cpp.
| void Svc::WasmSequencerComponentBase::loadParameters | ( | ) |
Load the parameters from a parameter source.
Connect the parameter first
Definition at line 1694 of file WasmSequencerComponentAc.cpp.
|
protectedvirtual |
Lock the guarded mutex.
Definition at line 8727 of file WasmSequencerComponentAc.cpp.
|
protected |
Log event LogActivityHi
An ACTIVITY_HI event emitted by the guest program
Definition at line 8037 of file WasmSequencerComponentAc.cpp.
|
protected |
Log event SequenceCancelled
The sequence was cancelled
Definition at line 6539 of file WasmSequencerComponentAc.cpp.
|
protected |
Log event SequencePaused
Execution was paused at a breakpoint
Definition at line 7160 of file WasmSequencerComponentAc.cpp.
|
protected |
Log event SequenceStarting
A sequence is starting after the main entrypoint was invoked
Definition at line 6375 of file WasmSequencerComponentAc.cpp.
|
protected |
Log event SequenceSucceeded
The interpreter ran a program to completion
Definition at line 6457 of file WasmSequencerComponentAc.cpp.
|
protected |
Log event GlobalValueF32.
Definition at line 4694 of file WasmSequencerComponentAc.cpp.
|
protected |
Log event GlobalValueF64.
Definition at line 4800 of file WasmSequencerComponentAc.cpp.
|
protected |
Log event GlobalValueI32.
Definition at line 4482 of file WasmSequencerComponentAc.cpp.
|
protected |
Log event GlobalValueI64.
Definition at line 4588 of file WasmSequencerComponentAc.cpp.
|
protected |
Log event LogActivityLo
An ACTIVITY_LO event emitted by the guest program
Definition at line 8112 of file WasmSequencerComponentAc.cpp.
|
protected |
Log event LogDiagnostic
A DIAGNOSTIC event emitted by the guest program
Definition at line 8187 of file WasmSequencerComponentAc.cpp.
|
protected |
Log event StoreAllocationSucceeded
The interpreter store was allocated with capacity for the given number of modules
Definition at line 3830 of file WasmSequencerComponentAc.cpp.
|
protected |
Log event BufferTooLarge
A guest host function supplied a buffer larger than the host maximum for that call
Definition at line 5497 of file WasmSequencerComponentAc.cpp.
|
protected |
Log event BufferTooSmall
A guest host function supplied a buffer too small to hold the host value being returned
Definition at line 5620 of file WasmSequencerComponentAc.cpp.
|
protected |
Log event FileOpenError
Failed to open the requested Wasm module file
Definition at line 4906 of file WasmSequencerComponentAc.cpp.
|
protected |
Log event HostFunctionInvalidId
A guest host function supplied a 64-bit id (telemetry channel or parameter id) that does not fit in the narrower id type used by the framework. Casting it directly would silently alias a different, valid id, so the request is rejected rather than truncated.
Definition at line 7395 of file WasmSequencerComponentAc.cpp.
|
protected |
Log event HostFunctionInvalidPointer.
Definition at line 5743 of file WasmSequencerComponentAc.cpp.
|
protected |
Log event HostFunctionInvalidPort
A guest serial port host function requested a port index outside the configured range
Definition at line 5932 of file WasmSequencerComponentAc.cpp.
|
protected |
Log event HostFunctionInvalidSeverity
The guest requested an event at a severity that is not permitted for guest programs (an out-of-range id, or FATAL/COMMAND which are reserved for the host). The guest message is preserved and reported here at WARNING_HI.
Definition at line 6280 of file WasmSequencerComponentAc.cpp.
|
protected |
Log event InvalidBlockingTypeValue.
Definition at line 5850 of file WasmSequencerComponentAc.cpp.
|
protected |
Log event InvalidModuleEntrypoint.
Definition at line 7782 of file WasmSequencerComponentAc.cpp.
|
protected |
Log event LogWarningHi
A WARNING_HI event emitted by the guest program
Definition at line 7887 of file WasmSequencerComponentAc.cpp.
|
protected |
Log event ModuleLoadFailed
A module failed to decode/validate while loading
Definition at line 5177 of file WasmSequencerComponentAc.cpp.
|
protected |
Log event ModuleMainInvokeFailed
Failed to invoke a module's main entrypoint
Definition at line 5262 of file WasmSequencerComponentAc.cpp.
|
protected |
Log event ModuleStartInvokeFailed
Failed to invoke a module's start function
Definition at line 5347 of file WasmSequencerComponentAc.cpp.
|
protected |
Log event SequenceExited
The sequence finished with a non-zero code: the guest returned a non-zero value from main, or called fprime.exit with a non-zero code
Definition at line 6644 of file WasmSequencerComponentAc.cpp.
|
protected |
Log event SequenceFilePathNotContained
A ground-supplied sequence file name contained a ".." path-traversal component while SEQ_BASE_DIR was configured, so it could escape the base directory. The load is rejected rather than opening a path outside the configured base dir.
Definition at line 5089 of file WasmSequencerComponentAc.cpp.
|
protected |
Log event SequenceFilePathTooLong
The SEQ_BASE_DIR base directory joined with the requested sequence file path exceeds the file-path buffer; the load will fail to open the truncated path.
Definition at line 5001 of file WasmSequencerComponentAc.cpp.
|
protected |
Log event SequenceHostFailure
A host function the sequence was awaiting failed: an error reply, a reply timeout, an unexpected reply, or an incomparable timer
Definition at line 7015 of file WasmSequencerComponentAc.cpp.
|
protected |
Log event SequencePanic
The guest called fprime.panic
Definition at line 6767 of file WasmSequencerComponentAc.cpp.
|
protected |
Log event SequenceTrapped
The interpreter aborted the sequence with a byte-code trap
Definition at line 6890 of file WasmSequencerComponentAc.cpp.
|
protected |
Log event SerialInFrameTooLarge
An inbound serial frame was larger than the receiving queue could ever hold and was dropped. serialIn is fed by external hardware/ground data, so an oversized frame is rejected here rather than asserting on flight software.
Definition at line 6160 of file WasmSequencerComponentAc.cpp.
|
protected |
Log event SerialPortSendFailed
A guest serial port payload could not be serialized onto the serial output port (the receiving port rejected the guest-supplied bytes)
Definition at line 6055 of file WasmSequencerComponentAc.cpp.
|
protected |
Log event SleepDurationTooLarge
The guest requested a sleep whose duration (in microseconds) does not fit the host timer representation (its whole-seconds part overflows U32)
Definition at line 7290 of file WasmSequencerComponentAc.cpp.
|
protected |
Log event TooManyBlockingCommands
A blocking command could not be queued because too many commands are already waiting on the sequencer to finish
Definition at line 5432 of file WasmSequencerComponentAc.cpp.
|
protected |
Log event WrongCmdResponseIndex
A command response arrived for the correct opcode from this sequence, but for a different dispatch instance than the one currently being awaited.
Definition at line 7641 of file WasmSequencerComponentAc.cpp.
|
protected |
Log event CmdResponseFromOldSequence
A command response arrived carrying a context (cmdUid) from a previous sequence run. Reported (not failed) because a late reply after CANCEL is nominal.
Definition at line 7500 of file WasmSequencerComponentAc.cpp.
|
protected |
Log event ControllerBusy
A command was issued in a state where it is not valid
Definition at line 3977 of file WasmSequencerComponentAc.cpp.
|
protected |
Log event ControllerCannotInvoke
A command was issued in a state where it is not valid
Definition at line 3912 of file WasmSequencerComponentAc.cpp.
|
protected |
Log event GlobalGetFailed.
Definition at line 4373 of file WasmSequencerComponentAc.cpp.
|
protected |
Log event GlobalSetFailed.
Definition at line 4264 of file WasmSequencerComponentAc.cpp.
|
protected |
Log event LogWarningLo
A WARNING_LO event emitted by the guest program
Definition at line 7962 of file WasmSequencerComponentAc.cpp.
|
protected |
Log event MemoryGrowRejected
A guest memory.grow could not be serviced by the guest bump allocator and was rejected. The guest sees memory.grow return -1; execution continues.
| reason | why the grow was rejected |
| requestedSize | the requested new linear-memory size in bytes |
Definition at line 4159 of file WasmSequencerComponentAc.cpp.
|
protected |
Log event ModuleNotFound
Failed to find a loaded module with the requested name
Definition at line 4084 of file WasmSequencerComponentAc.cpp.
|
protected |
Log event SequenceNotRunning
No sequence is running so we cannot continue from a pause
Definition at line 7225 of file WasmSequencerComponentAc.cpp.
|
protectedvirtual |
Called for each parameter when parameters are loaded.
By default this notifies the component via parameterUpdated when the parameter loaded successfully (valid or default). You may override it, for example to distinguish load from update.
| id | The parameter ID |
| valid | The parameter validity status |
Definition at line 8649 of file WasmSequencerComponentAc.cpp.
|
protectedvirtual |
Called whenever parameters are loaded.
By default this notifies the component of each parameter via parameterUpdated. You may override it, for example to suppress notification on load.
Definition at line 8643 of file WasmSequencerComponentAc.cpp.
|
protectedvirtual |
Called whenever a parameter is updated.
This function does nothing by default. You may override it.
| id | The parameter ID |
Definition at line 8637 of file WasmSequencerComponentAc.cpp.
|
protected |
Get parameter HOST_FUNCTION_TIMEOUT_SECS
the number of seconds to wait before giving up on a host function/command. if <= 0 or greater than U32 max, never time out. accuracy of this timeout is determined by the rate group driving this component. it will be rounded up.
| valid | Whether the parameter is valid |
Definition at line 8664 of file WasmSequencerComponentAc.cpp.
|
protected |
Get parameter INSTRUCTION_FUEL
Number of Wasm instructions to execute per interpreter cycle. Larger numbers will effect the responsiveness of the interpreter to PAUSE commands. The interpreter will always pause before commands.
Larger numbers make the interpreter faster because the engine doesn't need to feed itself through a queue to fuel more cycles.
| valid | Whether the parameter is valid |
Definition at line 8677 of file WasmSequencerComponentAc.cpp.
|
protected |
Get parameter SEQ_BASE_DIR
A literal prefix prepended to every requested sequence file path before resolution following the rules of Os::File::open. When non-empty it also acts as a containment boundary: a requested name with a ".." component is rejected rather than being allowed to escape the prefix.
| valid | Whether the parameter is valid |
Definition at line 8690 of file WasmSequencerComponentAc.cpp.
|
protectedpure virtual |
Handler for command PAUSE
Pauses the execution of the sequencer, just before it is about to start spinning. This simply pends a pause flag that will be taken before the sequence engine starts up again.
This command completes immediately
| opCode | The opcode |
| cmdSeq | The command sequence number |
|
protected |
Base-class handler function for command PAUSE
Pauses the execution of the sequencer, just before it is about to start spinning. This simply pends a pause flag that will be taken before the sequence engine starts up again.
This command completes immediately
| opCode | The opcode |
| cmdSeq | The command sequence number |
| args | The command argument buffer |
Definition at line 3284 of file WasmSequencerComponentAc.cpp.
|
protectedvirtual |
Pre-message hook for command PAUSE.
| opCode | The opcode |
| cmdSeq | The command sequence number |
Definition at line 3749 of file WasmSequencerComponentAc.cpp.
| void Svc::WasmSequencerComponentBase::regCommands | ( | ) |
Register commands with the Command Dispatcher.
Connect the dispatcher first
Definition at line 1594 of file WasmSequencerComponentAc.cpp.
|
protectedpure virtual |
Handler for command RUN
Run a Wasm module main function on it's own in the interpreter This command first resets the store (discarding any modules previously staged with LOAD), then is short-hand for:
If $block == Svc.BlockState.BLOCK this command will wait for completion.
| opCode | The opcode |
| cmdSeq | The command sequence number |
| fileName | The name of the sequence file |
| block | Block until sequence has finished running |
|
protected |
Base-class handler function for command RUN
Run a Wasm module main function on it's own in the interpreter This command first resets the store (discarding any modules previously staged with LOAD), then is short-hand for:
If $block == Svc.BlockState.BLOCK this command will wait for completion.
| opCode | The opcode |
| cmdSeq | The command sequence number |
| args | The command argument buffer |
Definition at line 3022 of file WasmSequencerComponentAc.cpp.
|
protectedvirtual |
Pre-message hook for command RUN.
| opCode | The opcode |
| cmdSeq | The command sequence number |
Definition at line 3705 of file WasmSequencerComponentAc.cpp.
|
protectedpure virtual |
Handler for input port seqCancelIn.
| portNum | The port number |
|
protected |
Handler base-class function for input port seqCancelIn.
| portNum | The port number |
Definition at line 2316 of file WasmSequencerComponentAc.cpp.
|
protected |
Invoke output port seqDoneOut.
| portNum | The port number |
| opCode | Command Op Code |
| cmdSeq | Command Sequence |
| response | The command response argument |
Definition at line 2553 of file WasmSequencerComponentAc.cpp.
|
protectedpure virtual |
Handler for input port seqRunIn.
| portNum | The port number |
| filename | The sequence file |
| args | Sequence arguments |
|
protected |
Handler base-class function for input port seqRunIn.
| portNum | The port number |
| filename | The sequence file |
| args | Sequence arguments |
Definition at line 2329 of file WasmSequencerComponentAc.cpp.
|
protectedvirtual |
Pre-message hook for async input port seqRunIn.
| portNum | The port number |
| filename | The sequence file |
| args | Sequence arguments |
Definition at line 2469 of file WasmSequencerComponentAc.cpp.
|
protected |
Invoke output port seqStartOut.
| portNum | The port number |
| filename | The sequence file |
| args | Sequence arguments |
Definition at line 2577 of file WasmSequencerComponentAc.cpp.
|
protectedpure virtual |
Handler for input port serialIn.
| portNum | The port number |
| buffer | The serialization buffer |
|
protected |
Handler base-class function for input port serialIn.
| portNum | The port number |
| buffer | The serialization buffer |
Definition at line 2416 of file WasmSequencerComponentAc.cpp.
|
protected |
Invoke output port serialOut.
| portNum | The port number |
| buffer | The serialization buffer |
Definition at line 2607 of file WasmSequencerComponentAc.cpp.
| void Svc::WasmSequencerComponentBase::set_cmdOut_OutputPort | ( | FwIndexType | portNum, |
| Fw::InputComPort * | port | ||
| ) |
Connect port to cmdOut[portNum].
| portNum | The port number |
| port | The input port |
Definition at line 1336 of file WasmSequencerComponentAc.cpp.
| void Svc::WasmSequencerComponentBase::set_cmdRegOut_OutputPort | ( | FwIndexType | portNum, |
| Fw::InputCmdRegPort * | port | ||
| ) |
Connect port to cmdRegOut[portNum].
| portNum | The port number |
| port | The input port |
Definition at line 1212 of file WasmSequencerComponentAc.cpp.
| void Svc::WasmSequencerComponentBase::set_cmdResponseOut_OutputPort | ( | FwIndexType | portNum, |
| Fw::InputCmdResponsePort * | port | ||
| ) |
Connect port to cmdResponseOut[portNum].
| portNum | The port number |
| port | The input port |
Definition at line 1226 of file WasmSequencerComponentAc.cpp.
| void Svc::WasmSequencerComponentBase::set_getParam_OutputPort | ( | FwIndexType | portNum, |
| Fw::InputPrmGetPort * | port | ||
| ) |
Connect port to getParam[portNum].
| portNum | The port number |
| port | The input port |
Definition at line 1350 of file WasmSequencerComponentAc.cpp.
| void Svc::WasmSequencerComponentBase::set_getTlmChan_OutputPort | ( | FwIndexType | portNum, |
| Fw::InputTlmGetPort * | port | ||
| ) |
Connect port to getTlmChan[portNum].
| portNum | The port number |
| port | The input port |
Definition at line 1364 of file WasmSequencerComponentAc.cpp.
| void Svc::WasmSequencerComponentBase::set_logOut_OutputPort | ( | FwIndexType | portNum, |
| Fw::InputLogPort * | port | ||
| ) |
Connect port to logOut[portNum].
| portNum | The port number |
| port | The input port |
Definition at line 1240 of file WasmSequencerComponentAc.cpp.
| void Svc::WasmSequencerComponentBase::set_prmGet_OutputPort | ( | FwIndexType | portNum, |
| Fw::InputPrmGetPort * | port | ||
| ) |
Connect port to prmGet[portNum].
| portNum | The port number |
| port | The input port |
Definition at line 1272 of file WasmSequencerComponentAc.cpp.
| void Svc::WasmSequencerComponentBase::set_prmSet_OutputPort | ( | FwIndexType | portNum, |
| Fw::InputPrmSetPort * | port | ||
| ) |
Connect port to prmSet[portNum].
| portNum | The port number |
| port | The input port |
Definition at line 1286 of file WasmSequencerComponentAc.cpp.
| void Svc::WasmSequencerComponentBase::set_seqDoneOut_OutputPort | ( | FwIndexType | portNum, |
| Fw::InputCmdResponsePort * | port | ||
| ) |
Connect port to seqDoneOut[portNum].
| portNum | The port number |
| port | The input port |
Definition at line 1378 of file WasmSequencerComponentAc.cpp.
| void Svc::WasmSequencerComponentBase::set_seqStartOut_OutputPort | ( | FwIndexType | portNum, |
| Svc::InputCmdSeqInPort * | port | ||
| ) |
Connect port to seqStartOut[portNum].
| portNum | The port number |
| port | The input port |
Definition at line 1392 of file WasmSequencerComponentAc.cpp.
| void Svc::WasmSequencerComponentBase::set_timeCaller_OutputPort | ( | FwIndexType | portNum, |
| Fw::InputTimePort * | port | ||
| ) |
Connect port to timeCaller[portNum].
| portNum | The port number |
| port | The input port |
Definition at line 1300 of file WasmSequencerComponentAc.cpp.
| void Svc::WasmSequencerComponentBase::set_tlmOut_OutputPort | ( | FwIndexType | portNum, |
| Fw::InputTlmPort * | port | ||
| ) |
Connect port to tlmOut[portNum].
| portNum | The port number |
| port | The input port |
Definition at line 1314 of file WasmSequencerComponentAc.cpp.
|
protectedpure virtual |
Implementation for action cancelPendingRequest of state machine Svc_WasmSequencer_ControllerStateMachine
Abort a load/invoke that was cancelled before the engine ran Reports a done on seqDoneOut for a port-sourced RUN
| smId | The state machine id |
| signal | The signal |
| value | The value |
|
protectedpure virtual |
Implementation for action clearCancelRequested of state machine Svc_WasmSequencer_ControllerStateMachine
Acknowledge/clear any pending cancel
| smId | The state machine id |
| signal | The signal |
|
protectedpure virtual |
Implementation for action incrementSequenceFailure of state machine Svc_WasmSequencer_ControllerStateMachine
Increment the SequencesFailed telemetry counter
| smId | The state machine id |
| signal | The signal |
|
protectedpure virtual |
Implementation for action invokeMain of state machine Svc_WasmSequencer_ControllerStateMachine
Invoke the main function for module in context
| smId | The state machine id |
| signal | The signal |
| value | The value |
|
protectedpure virtual |
Implementation for action invokeStart of state machine Svc_WasmSequencer_ControllerStateMachine
Invoke the start function on a loaded module
| smId | The state machine id |
| signal | The signal |
| value | The value |
|
protectedpure virtual |
Implementation for action load of state machine Svc_WasmSequencer_ControllerStateMachine
Load a module into the store. Emits loadSucceded or loadFailed depending on result
| smId | The state machine id |
| signal | The signal |
| value | The value |
|
protectedpure virtual |
Implementation for action processInvoke of state machine Svc_WasmSequencer_ControllerStateMachine
Action to save the invoke arguments and emit an 'invoked' signal
| smId | The state machine id |
| signal | The signal |
| value | The value |
|
protectedpure virtual |
Implementation for action reportModuleInvalidMain of state machine Svc_WasmSequencer_ControllerStateMachine
Emit an event noting that a given module has no [valid] main function
| smId | The state machine id |
| signal | The signal |
| value | The value |
|
protectedpure virtual |
Implementation for action reportModuleMainFailed of state machine Svc_WasmSequencer_ControllerStateMachine
Emit an event noting a module failed during execution. Increment telemetry counters.
| smId | The state machine id |
| signal | The signal |
| value | The value |
|
protectedpure virtual |
Implementation for action reportModuleMainInvokeFailed of state machine Svc_WasmSequencer_ControllerStateMachine
Emit an event noting why the invocation of a module main failed
| smId | The state machine id |
| signal | The signal |
| value | The value |
|
protectedpure virtual |
Implementation for action reportModuleStarted of state machine Svc_WasmSequencer_ControllerStateMachine
Reports that a module started running it's main function
| smId | The state machine id |
| signal | The signal |
| value | The value |
|
protectedpure virtual |
Implementation for action reportModuleStartFailed of state machine Svc_WasmSequencer_ControllerStateMachine
Emit an event noting a module failed during execution of start. Increment telemetry counters.
| smId | The state machine id |
| signal | The signal |
| value | The value |
|
protectedpure virtual |
Implementation for action reportModuleStartInvokeFailed of state machine Svc_WasmSequencer_ControllerStateMachine
Emit an event noting why the invocation of a module start failed
| smId | The state machine id |
| signal | The signal |
| value | The value |
|
protectedpure virtual |
Implementation for action reportModuleSucceeded of state machine Svc_WasmSequencer_ControllerStateMachine
Emit an event noting a module succeeded during execution. Increment telemetry counters.
| smId | The state machine id |
| signal | The signal |
| value | The value |
|
protectedpure virtual |
Implementation for action resetStore of state machine Svc_WasmSequencer_ControllerStateMachine
Create a new store with N_MODULES (parameter) modules
| smId | The state machine id |
| signal | The signal |
|
protectedpure virtual |
Implementation for action respond_block_ERROR of state machine Svc_WasmSequencer_ControllerStateMachine
Responds to $block == BLOCK requests with ERROR. Responds to any pending WAIT requests with ERROR
| smId | The state machine id |
| signal | The signal |
| value | The value |
|
protectedpure virtual |
Implementation for action respond_block_OK of state machine Svc_WasmSequencer_ControllerStateMachine
Responds to $block == BLOCK requests with OK Responds to any pending WAIT requests with OK
| smId | The state machine id |
| signal | The signal |
| value | The value |
|
protectedpure virtual |
Implementation for action respond_ERROR of state machine Svc_WasmSequencer_ControllerStateMachine
Responds to request with EXECUTION_ERROR Reports a done on seqDoneOut for a port-sourced RUN
| smId | The state machine id |
| signal | The signal |
| value | The value |
|
protectedpure virtual |
Implementation for action respond_noblock_OK of state machine Svc_WasmSequencer_ControllerStateMachine
Responds to $block == NO_BLOCK requests with OK
| smId | The state machine id |
| signal | The signal |
| value | The value |
|
protectedpure virtual |
Implementation for action respondInvoke_BUSY of state machine Svc_WasmSequencer_ControllerStateMachine
Responds to request with BUSY Emit an event to say why we are rejecting this request in the current state
| smId | The state machine id |
| signal | The signal |
| value | The value |
|
protectedpure virtual |
Implementation for action respondInvoke_ERROR of state machine Svc_WasmSequencer_ControllerStateMachine
Responds to request with EXECUTION_ERROR Emit an event to say why we are rejecting this request in the current state
| smId | The state machine id |
| signal | The signal |
| value | The value |
|
protectedpure virtual |
Implementation for action respondLoad_BUSY of state machine Svc_WasmSequencer_ControllerStateMachine
Responds to request with BUSY Emit an event to say why we are rejecting this request in the current state Reports a done on seqDoneOut for a port-sourced RUN
| smId | The state machine id |
| signal | The signal |
| value | The value |
|
protectedpure virtual |
Implementation for action runEngine of state machine Svc_WasmSequencer_ControllerStateMachine
Send a signal to the engine state machine to begin running The engine will asynchronously reply with the engineFinished signal
| smId | The state machine id |
| signal | The signal |
| value | The value |
|
protectedpure virtual |
Implementation for action setCancelRequested of state machine Svc_WasmSequencer_ControllerStateMachine
Latch a cancel that arrives while a sequence is loading/resolving
| smId | The state machine id |
| signal | The signal |
|
protectedpure virtual |
Implementation for guard cancelRequested of state machine Svc_WasmSequencer_ControllerStateMachine
True if a cancel was latched since the controller last came to rest.
| smId | The state machine id |
| signal | The signal |
|
protectedpure virtual |
Implementation for guard interpreterSucceeded of state machine Svc_WasmSequencer_ControllerStateMachine
Check if the last engine execution finished executing successfully
| smId | The state machine id |
| signal | The signal |
|
protectedpure virtual |
Implementation for guard invokeSucceeded of state machine Svc_WasmSequencer_ControllerStateMachine
return true if invokeStatus == SPACEWASM_OK. This flag is set as a result of invokeStart/invokeMain
| smId | The state machine id |
| signal | The signal |
| value | The value |
|
protectedpure virtual |
Implementation for guard moduleHasStart of state machine Svc_WasmSequencer_ControllerStateMachine
return true if this module has a start function
| smId | The state machine id |
| signal | The signal |
| value | The value |
|
protectedpure virtual |
Implementation for guard moduleHasValidMain of state machine Svc_WasmSequencer_ControllerStateMachine
return true if this module has a valid main function ([] -> i32)
| smId | The state machine id |
| signal | The signal |
| value | The value |
|
protectedpure virtual |
Implementation for action checkSleepTimers of state machine Svc_WasmSequencer_InterpreterStateMachine
A periodic check on the pending timer to see if we can wake up
| smId | The state machine id |
| signal | The signal |
|
protectedpure virtual |
Implementation for action checkTimeout of state machine Svc_WasmSequencer_InterpreterStateMachine
A periodic check on any host function to guard against timeouts
| smId | The state machine id |
| signal | The signal |
|
protectedpure virtual |
Implementation for action clearContext of state machine Svc_WasmSequencer_InterpreterStateMachine
Clear the current executing context
| smId | The state machine id |
| signal | The signal |
|
protectedpure virtual |
Implementation for action clearExitStatus of state machine Svc_WasmSequencer_InterpreterStateMachine.
| smId | The state machine id |
| signal | The signal |
|
protectedpure virtual |
Implementation for action clearPause of state machine Svc_WasmSequencer_InterpreterStateMachine
sets the pause flag to false
| smId | The state machine id |
| signal | The signal |
|
protectedpure virtual |
Implementation for action clearPendingHostFunction of state machine Svc_WasmSequencer_InterpreterStateMachine
clears the pending host function port call
| smId | The state machine id |
| signal | The signal |
|
protectedpure virtual |
Implementation for action cmdReplyOK of state machine Svc_WasmSequencer_InterpreterStateMachine
Respond to a pending command with OK
| smId | The state machine id |
| signal | The signal |
| value | The value |
|
protectedpure virtual |
Implementation for action dequeueSerialAndResume of state machine Svc_WasmSequencer_InterpreterStateMachine
Dequeue a serial message into the host guest memory and resume the interpreter
| smId | The state machine id |
| signal | The signal |
| value | The value |
|
protectedpure virtual |
Implementation for action dispatchPendingHostFunction of state machine Svc_WasmSequencer_InterpreterStateMachine
dispatch a host function port call
| smId | The state machine id |
| signal | The signal |
|
protectedpure virtual |
Implementation for action finish of state machine Svc_WasmSequencer_InterpreterStateMachine
Send a signal back to the controller state machine that we have finished executing The response codes are stored in m_exit (reason, code, lastTrapReason)
| smId | The state machine id |
| signal | The signal |
|
protectedpure virtual |
Implementation for action reportPaused of state machine Svc_WasmSequencer_InterpreterStateMachine
reports that execution was paused at a breakpoint
| smId | The state machine id |
| signal | The signal |
|
protectedpure virtual |
Implementation for action reset of state machine Svc_WasmSequencer_InterpreterStateMachine
resets the engine's state (clears operand stack, pc, fp, sp)
| smId | The state machine id |
| signal | The signal |
|
protectedpure virtual |
Implementation for action resume of state machine Svc_WasmSequencer_InterpreterStateMachine
spacewasm_engine_resume
| smId | The state machine id |
| signal | The signal |
|
protectedpure virtual |
Implementation for action resumeI32 of state machine Svc_WasmSequencer_InterpreterStateMachine
spacewasm_engine_resume_some(I32(value))
| smId | The state machine id |
| signal | The signal |
| value | The value |
|
protectedpure virtual |
Implementation for action setContext of state machine Svc_WasmSequencer_InterpreterStateMachine
Set the current executing context
| smId | The state machine id |
| signal | The signal |
| value | The value |
|
protectedpure virtual |
Implementation for action setExitCode of state machine Svc_WasmSequencer_InterpreterStateMachine.
| smId | The state machine id |
| signal | The signal |
| value | The value |
|
protectedpure virtual |
Implementation for action setExitReason_CANCEL of state machine Svc_WasmSequencer_InterpreterStateMachine.
| smId | The state machine id |
| signal | The signal |
|
protectedpure virtual |
Implementation for action setExitReason_HOST_FAILURE of state machine Svc_WasmSequencer_InterpreterStateMachine.
| smId | The state machine id |
| signal | The signal |
|
protectedpure virtual |
Implementation for action setExitReason_INTERPRETER_FINISHED of state machine Svc_WasmSequencer_InterpreterStateMachine.
| smId | The state machine id |
| signal | The signal |
|
protectedpure virtual |
Implementation for action setExitReason_INTERPRETER_TRAP of state machine Svc_WasmSequencer_InterpreterStateMachine.
| smId | The state machine id |
| signal | The signal |
|
protectedpure virtual |
Implementation for action setExitReason_REPLY_TIMEOUT of state machine Svc_WasmSequencer_InterpreterStateMachine.
| smId | The state machine id |
| signal | The signal |
|
protectedpure virtual |
Implementation for action setExitReason_TIMER_INCOMPARABLE of state machine Svc_WasmSequencer_InterpreterStateMachine.
| smId | The state machine id |
| signal | The signal |
|
protectedpure virtual |
Implementation for action setExitReason_UNEXPECTED_REPLY of state machine Svc_WasmSequencer_InterpreterStateMachine.
| smId | The state machine id |
| signal | The signal |
|
protectedpure virtual |
Implementation for action setLastHostFunction of state machine Svc_WasmSequencer_InterpreterStateMachine.
| smId | The state machine id |
| signal | The signal |
|
protectedpure virtual |
Implementation for action setTrapReason of state machine Svc_WasmSequencer_InterpreterStateMachine.
| smId | The state machine id |
| signal | The signal |
| value | The value |
|
protectedpure virtual |
Implementation for action signalEntered of state machine Svc_WasmSequencer_InterpreterStateMachine
generic signal raised
| smId | The state machine id |
| signal | The signal |
|
protectedpure virtual |
Implementation for action spin of state machine Svc_WasmSequencer_InterpreterStateMachine
spins the interpreter loop, executing up to a bounded number of instructions
| smId | The state machine id |
| signal | The signal |
|
protectedpure virtual |
Implementation for guard blockingSerialIn of state machine Svc_WasmSequencer_InterpreterStateMachine
Check if we are currently blocking on a serial_recv() for a given serial port index
| smId | The state machine id |
| signal | The signal |
| value | The value |
|
protectedpure virtual |
Implementation for guard dequeueSucceeded of state machine Svc_WasmSequencer_InterpreterStateMachine
Return true dequeueSerialAndResume processed a message successfully
| smId | The state machine id |
| signal | The signal |
|
protectedpure virtual |
Implementation for guard pendingHostFunction of state machine Svc_WasmSequencer_InterpreterStateMachine
a host function is waiting to be processed
| smId | The state machine id |
| signal | The signal |
|
protectedpure virtual |
Implementation for guard pendingHostFunctionIsSleep of state machine Svc_WasmSequencer_InterpreterStateMachine
the pending host function is a sleep (therefore we need to check the sleep timers)
| smId | The state machine id |
| signal | The signal |
|
protectedpure virtual |
Implementation for guard pendingPause of state machine Svc_WasmSequencer_InterpreterStateMachine
return true if execution should pause before spinning the interpreter again
| smId | The state machine id |
| signal | The signal |
|
protected |
Write telemetry channel given its local id and serialized value. Warning: This is a low level telemetry interface that does not guarentee channel type safety. It is up to the caller to make sure the serialized data matches the definition in the model. Update on change semantics are ignored, this telemetry is always written
| id | The channel id |
| _tlmBuff | The serialized telemetry value |
| _tlmTime | Timestamp. Default: unspecified, request from getTime port |
Definition at line 8266 of file WasmSequencerComponentAc.cpp.
|
protected |
Write telemetry channel CommandsDispatched
Commands dispatched total
| arg | The telemetry value |
| _tlmTime | Timestamp. Default: unspecified, request from getTime port |
Definition at line 8482 of file WasmSequencerComponentAc.cpp.
|
protected |
Write telemetry channel CommandsFailed
Number of commands that failed
| arg | The telemetry value |
| _tlmTime | Timestamp. Default: unspecified, request from getTime port |
Definition at line 8519 of file WasmSequencerComponentAc.cpp.
|
protected |
Write telemetry channel ControllerState
Current executing state of the sequencer controller
| arg | The telemetry value |
| _tlmTime | Timestamp. Default: unspecified, request from getTime port |
Definition at line 8297 of file WasmSequencerComponentAc.cpp.
|
protected |
Write telemetry channel InterpreterState
Current executing state of the WebAssembly interpreter engine
| arg | The telemetry value |
| _tlmTime | Timestamp. Default: unspecified, request from getTime port |
Definition at line 8334 of file WasmSequencerComponentAc.cpp.
|
protected |
Write telemetry channel LastTrapReason
Reason last sequence trapped
| arg | The telemetry value |
| _tlmTime | Timestamp. Default: unspecified, request from getTime port |
Definition at line 8556 of file WasmSequencerComponentAc.cpp.
|
protected |
Write telemetry channel SeqName
Currently running sequence name. When a module is loaded under an empty name (RUN, or LOAD with no name) the name is the filename without .wasm; otherwise it is the module name provided to LOAD
| arg | The telemetry value |
| _tlmTime | Timestamp. Default: unspecified, request from getTime port |
Definition at line 8593 of file WasmSequencerComponentAc.cpp.
|
protected |
Write telemetry channel SequencesCancelled
Sequences that were cancelled
| arg | The telemetry value |
| _tlmTime | Timestamp. Default: unspecified, request from getTime port |
Definition at line 8445 of file WasmSequencerComponentAc.cpp.
|
protected |
Write telemetry channel SequencesFailed
Sequences that failed to validate or execute
| arg | The telemetry value |
| _tlmTime | Timestamp. Default: unspecified, request from getTime port |
Definition at line 8408 of file WasmSequencerComponentAc.cpp.
|
protected |
Write telemetry channel SequencesSucceeded
Sequences successfully completed
| arg | The telemetry value |
| _tlmTime | Timestamp. Default: unspecified, request from getTime port |
Definition at line 8371 of file WasmSequencerComponentAc.cpp.
|
protectedvirtual |
Unlock the guarded mutex.
Definition at line 8733 of file WasmSequencerComponentAc.cpp.
|
protectedpure virtual |
Handler for command WAIT
Wait for the interpreter to finish and return it's result as a CmdResponse
| opCode | The opcode |
| cmdSeq | The command sequence number |
|
protected |
Base-class handler function for command WAIT
Wait for the interpreter to finish and return it's result as a CmdResponse
| opCode | The opcode |
| cmdSeq | The command sequence number |
| args | The command argument buffer |
Definition at line 3199 of file WasmSequencerComponentAc.cpp.
|
protectedvirtual |
Pre-message hook for command WAIT.
| opCode | The opcode |
| cmdSeq | The command sequence number |
Definition at line 3738 of file WasmSequencerComponentAc.cpp.
|
protectedpure virtual |
Handler for input port writeTelemetry.
| portNum | The port number |
| context | The call order |
|
protected |
Handler base-class function for input port writeTelemetry.
| portNum | The port number |
| context | The call order |
Definition at line 2391 of file WasmSequencerComponentAc.cpp.
|
protectedpure virtual |
Internal interface handler for writeTelemetryInternal.
|
protected |
Internal interface base-class function for writeTelemetryInternal.
Definition at line 2641 of file WasmSequencerComponentAc.cpp.
|
protectedpure virtual |
Overflow hook for async input port writeTelemetryInternal.
|
friend |
Friend class tester implementation to support white-box testing.
Definition at line 85 of file WasmSequencerComponentAc.hpp.
|
friend |
Friend class tester to support autocoded test harness.
Definition at line 83 of file WasmSequencerComponentAc.hpp.