|
Loop Timing Witness
Native controller and runtime interfaces; hardware qualification pending
|
#include <uio_device.h>
Public Member Functions | |
| UioDevice (const UioIdentity &identity) | |
| ~UioDevice () | |
| UioDevice (const UioDevice &)=delete | |
| UioDevice & | operator= (const UioDevice &)=delete |
| std::uint64_t | time () const |
| ProtocolReply | read (std::uint8_t address) |
| ProtocolReply | write (std::uint8_t address, std::uint32_t data, std::uint8_t strobes) |
| void | advance (std::uint64_t nanoseconds) |
| bool | wait_interrupt (std::uint64_t nanoseconds) |
| std::uint32_t | last_interrupt_count () const |
Exclusive cooperative ownership of one generic platform UIO aperture.
Definition at line 28 of file uio_device.h.
|
explicit |
Verify sysfs, generic driver and character-device identity before mapping.
| witness::UioDevice::~UioDevice | ( | ) |
Release ownership without resetting an active hardware run.
| void witness::UioDevice::advance | ( | std::uint64_t | nanoseconds | ) |
Sleep for a requested duration while physical fabric continues running.
|
inline |
Last actual cumulative UIO interrupt counter, separate from RTL generation.
Definition at line 60 of file uio_device.h.
| ProtocolReply witness::UioDevice::read | ( | std::uint8_t | address | ) |
Perform exactly one ordered aligned little-endian volatile 32-bit load.
| std::uint64_t witness::UioDevice::time | ( | ) | const |
Absolute CLOCK_MONOTONIC nanoseconds; never fabric capture ticks.
| bool witness::UioDevice::wait_interrupt | ( | std::uint64_t | nanoseconds | ) |
Re-enable generic IRQ, wait with nanosecond timeout and read its 4-byte count.
| ProtocolReply witness::UioDevice::write | ( | std::uint8_t | address, |
| std::uint32_t | data, | ||
| std::uint8_t | strobes ) |
Full-word ordered store; refuse partial strobes before any MMIO access.