Skip to main content

Crate detcore_model

Crate detcore_model 

Source
Expand description

Widely-shared type definitions.

Modules§

access_trace
Record types of the access trace (--record-access-trace-to).
backend_engagement
Machine-readable evidence that the selected backend performed its own work.
build_info
Machine-readable facts about a Hermit binary.
canonical_test_epoch
The one virtual-time epoch tests and E2E cells pass when they need a fixed one, as --epoch or HERMIT_EPOCH: hermit run --strict refuses a run whose epoch would come from the host clock. Bump it here and nowhere else.
collections
config
Detcore configuration and widely used types.
container_mounts
The guest’s container mount table: the mounts /proc/<pid>/mountinfo and /proc/<pid>/mounts show, which hermit-cli builds once, in the completed container namespace before the guest starts, and Detcore renders on every backend (package K slice K3a, https://github.com/rrnewton/hermit/issues/4213).
cpu_profile
The virtual CPU a guest sees (https://github.com/rrnewton/hermit/issues/4243).
fd
futex
happens_before
Happens-before edges: a sparse, authored partial order over dynamic events.
host_capability
Closed host-capability vocabulary and probes shared by validation records.
host_input
The host identity of a file a guest opened.
liteinst_initial_image
Bounded InitialImage launch packet shared by the host and private runtime.
liteinst_native_exec_input
Separate, inactive native Initial/Successor bootstrap input data.
liteinst_native_exec_runtime
Exact native runtime/dispatch-sequence envelope, separate from admission. Exact fixed runtime envelope shared by native consumer and coordinator. Decoding shape is not authority to restore counters or publish an image.
liteinst_native_exec_state
Exact versioned neutral cut envelope outside opaque Tool state. Exact neutral identity envelope around opaque Tool and backend state.
logdiff_policy
Shared policy tokens for the log comparator and report consumers.
network_engine
The pure state machine behind network record and replay.
network_trace
Versioned data model for schedule-independent external network input.
pedigree
An example that tracks thread pedigree using local state.
pid
procfs
Types and parsers shared by procfs producers and consumers.
replay_departure
Bounded observations of a faithful preemption replay leaving its history. These observations do not establish a timer cause or a common replay prefix.
schedule
summary
Summaries of complete hermit runs.
syscall_histogram
Per-run syscall histograms: how many times the guest made each syscall, and what Detcore did with it.
time
virtual_timeout
Admission for a virtual bound whose scheduler must observe final signal delivery.

Macros§

canonical_test_epoch
The canonical test epoch as a string literal, for concat!.
host_no_rdrand_residual
The host-profile caveat, shared by help and admission diagnostics.
v3_residual
The residual as a literal, so that the command-line help can include it with concat! while V3_RESIDUAL stays the one source of its words.

Enums§

TerminalOutcome
How Detcore’s scheduler ended a run itself, with a status and a stderr class line of its own: NEITHER KIND IS A GUEST RESULT. A deadlock is a verdict of Hermit’s model (see HERMIT_GUEST_DEADLOCK_EXIT) and a virtual timeout is a bound Hermit imposed, so --verify (under the default --verify-allow=success), chaos-stress and analyze do not take either as the guest’s outcome. Neither is a Hermit failure (125) either.

Constants§

HERMIT_GUEST_DEADLOCK_EXIT
Exit status for a run that DEADLOCKED UNDER HERMIT’S MODEL: Detcore’s scheduler found every remaining guest thread blocked on something no later turn can supply (its “Deadlock detected” report) and ended the run.
HERMIT_MODEL_DEADLOCK_LINE
The stderr class line Hermit prints, last, for a run that ended with HERMIT_GUEST_DEADLOCK_EXIT: a deadlock under Hermit’s model. Named for the model, not the guest, because the verdict is only as complete as the model (see HERMIT_GUEST_DEADLOCK_EXIT).
HERMIT_POLICY_REFUSAL_EXIT
Exit status for a run HERMIT DELIBERATELY REFUSED, as distinct from one where hermit itself broke.
HERMIT_SIGINT_DEATH_EXIT
128 + SIGINT. Spelled from the shared helper so it cannot drift from the band, and pinned below so it cannot drift from 130.
SIGNAL_EXIT_BASE
The shell’s base for “killed by signal N”: a process killed by signal N is conventionally reported as 128 + N.

Functions§

signal_exit_status
The status a signal-terminated run reports, 128 + signo.
signal_from_exit_status
Recover the signal from a 128 + signo status, or None if it is not in the band.