Loop Timing Witness
Native controller and runtime interfaces; hardware qualification pending
Loading...
Searching...
No Matches
witness::UioDevice Class Reference

#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

Detailed Description

Exclusive cooperative ownership of one generic platform UIO aperture.

Definition at line 28 of file uio_device.h.

Constructor & Destructor Documentation

◆ UioDevice()

witness::UioDevice::UioDevice ( const UioIdentity & identity)
explicit

Verify sysfs, generic driver and character-device identity before mapping.

◆ ~UioDevice()

witness::UioDevice::~UioDevice ( )

Release ownership without resetting an active hardware run.

Member Function Documentation

◆ advance()

void witness::UioDevice::advance ( std::uint64_t nanoseconds)

Sleep for a requested duration while physical fabric continues running.

◆ last_interrupt_count()

std::uint32_t witness::UioDevice::last_interrupt_count ( ) const
inline

Last actual cumulative UIO interrupt counter, separate from RTL generation.

Definition at line 60 of file uio_device.h.

◆ read()

ProtocolReply witness::UioDevice::read ( std::uint8_t address)

Perform exactly one ordered aligned little-endian volatile 32-bit load.

◆ time()

std::uint64_t witness::UioDevice::time ( ) const

Absolute CLOCK_MONOTONIC nanoseconds; never fabric capture ticks.

◆ wait_interrupt()

bool witness::UioDevice::wait_interrupt ( std::uint64_t nanoseconds)

Re-enable generic IRQ, wait with nanosecond timeout and read its 4-byte count.

◆ write()

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.


The documentation for this class was generated from the following file: