Loop Timing Witness
Native controller and runtime interfaces; hardware qualification pending
Loading...
Searching...
No Matches
run_control.h File Reference
#include "run_output.h"
#include "refusal.h"
#include <cstring>
#include <functional>

Go to the source code of this file.

Classes

struct  witness::RunHooks
struct  witness::RunResult

Functions

std::int32_t witness::signed_word (std::uint32_t value)
template<class Device>
std::uint32_t witness::read_register (Device &device, std::uint8_t address)
template<class Device>
void witness::write_register (Device &device, std::uint8_t address, std::uint32_t value)
template<class Device>
void witness::configure_run (Device &device, const RunConfiguration &configuration)
template<class Device>
void witness::drain_available (Device &device, RunOutput &output, RunResult &result)
template<class Device>
void witness::control_sample (Device &device, const RunConfiguration &configuration, witness_pid_state &state, RunOutput &output, RunResult &result, std::uint64_t generation, std::uint32_t &previous_cycle, bool &have_previous)
template<class Device>
RunResult witness::execute_run (Device &device, const RunConfiguration &configuration, RunOutput &output, const RunHooks *hooks=nullptr)

Detailed Description

native IRQ sample command and drain lifecycle.

Definition in file run_control.h.

Function Documentation

◆ configure_run()

template<class Device>
void witness::configure_run ( Device & device,
const RunConfiguration & configuration )

Reset only an idle/finished run, poll real release readiness, then configure.

Definition at line 56 of file run_control.h.

◆ control_sample()

template<class Device>
void witness::control_sample ( Device & device,
const RunConfiguration & configuration,
witness_pid_state & state,
RunOutput & output,
RunResult & result,
std::uint64_t generation,
std::uint32_t & previous_cycle,
bool & have_previous )

Handle one actual sample with the native kernel and an independently safe commit.

Definition at line 99 of file run_control.h.

◆ drain_available()

template<class Device>
void witness::drain_available ( Device & device,
RunOutput & output,
RunResult & result )

Drain at most eight held records before returning to IRQ service.

Definition at line 86 of file run_control.h.

◆ execute_run()

template<class Device>
RunResult witness::execute_run ( Device & device,
const RunConfiguration & configuration,
RunOutput & output,
const RunHooks * hooks = nullptr )

Run configuration through final producer quiescence, receiver drain and real statistics.

Definition at line 143 of file run_control.h.

◆ read_register()

template<class Device>
std::uint32_t witness::read_register ( Device & device,
std::uint8_t address )

Use the actual decoder response; hardware UIO accesses may instead bus-fault.

Definition at line 41 of file run_control.h.

◆ signed_word()

std::int32_t witness::signed_word ( std::uint32_t value)
inline

Preserve signed raw word bits without out-of-range arithmetic conversion.

Definition at line 34 of file run_control.h.

◆ write_register()

template<class Device>
void witness::write_register ( Device & device,
std::uint8_t address,
std::uint32_t value )

Full-word register submission through the selected in-process transport.

Definition at line 50 of file run_control.h.