Loop Timing Witness
Native controller and runtime interfaces; hardware qualification pending
Loading...
Searching...
No Matches
process_protocol.h File Reference
#include <charconv>
#include "refusal.h"
#include <cstdint>
#include <iostream>
#include <limits>
#include <sstream>
#include <stdexcept>
#include <string>

Go to the source code of this file.

Classes

struct  witness::ProtocolReply

Functions

std::uint64_t witness::number (std::istream &input, std::uint64_t maximum)
void witness::end_request (std::istream &input)
template<class Device>
int witness::serve (Device &device)

Variables

constexpr std::uint64_t witness::advance_limit = 10000000

Detailed Description

shared native register process protocol.

Definition in file process_protocol.h.

Function Documentation

◆ end_request()

void witness::end_request ( std::istream & input)
inline

Validate a complete request before accessing either device.

Definition at line 47 of file process_protocol.h.

◆ number()

std::uint64_t witness::number ( std::istream & input,
std::uint64_t maximum )
inline

Reject signs, overflow and suffixes before narrowing protocol integers.

Definition at line 35 of file process_protocol.h.

◆ serve()

template<class Device>
int witness::serve ( Device & device)

Serve validated requests against either actual MMIO or production RTL.

Definition at line 53 of file process_protocol.h.

Variable Documentation

◆ advance_limit

std::uint64_t witness::advance_limit = 10000000
constexpr

Maximum admitted simulated time advance in nanoseconds per protocol request.

Definition at line 27 of file process_protocol.h.