Skip to main content

Module types

Module types 

Source
Expand description

Widely-shared type definitions.

Modules§

boundary
Explicit slice-boundary protocol. A complete typed stream keeps ordinary events and actual scheduling boundaries in one causal order.

Structs§

ChildWaitSpec
Scheduler-owned selection criteria for a terminal child wait.
ClockExhausted
A scheduler turn whose configured charge would pass the end of representable virtual time (GlobalTime::add_scheduler_time).
DetInode
Deterministic “virtual” inode.
DetPid
Deterministic “virtual” version of reverie::Pid
DetTime
A determinstic notion of time, measuring progress of one thread.
FdSlot
Identity of one numeric descriptor slot within a descriptor table.
FilesId
Identity of a Linux descriptor table (files_struct).
GlobalTime
Deterministic global time, combining local times.
LogicalTime
Represents an absolute point in time in nanoseconds. Parts of this API are largely inspired by std::time::Duration. This could go to 128 bits if we need more than ~585 years of nanosecond precision.
MmId
Identity of a Linux memory address space (mm_struct).
OpenFileId
Identity of a Linux open file description (struct file).
RawInode
Nondeterministic “physical” inode: a host file’s identity, its device and its inode number on that device.
RcbTimeMultiplier
A positive Q32 multiplier for converting RCB progress into virtual time.
SchedEvent
A scheduled action by one thread in the system. This can be recorded, or replayed to guide the schedule.
SigWrapper
A signal the scheduler can name, INCLUDING the realtime signals nix cannot.

Enums§

ChildWaitExitClass
Linux’s clone-child filtering for terminal wait events.
ChildWaitSelector
Child population addressed by a wait syscall whose exit readiness Detcore can model.
ExactChildWaitState
Scheduler-owned lifecycle state for an exact child-process wait.
FutexID
Identity of a futex word.
GuestIds
How the guest’s process and thread IDs are numbered (Config::guest_ids).
Op
NOTE [Event Semantics]
PosixTimerThread
What timer_create’s sigev_notify_thread_id names (Scheduler::posix_timer_thread).
SharedMemoryObjectId
Identity of an object that backs a process-shared memory mapping.
SyscallPhase
Which phase of the syscall did we observe on a given event: the prehook or the posthook.

Constants§

NANOS_PER_NONDET_INSTR
Virtual nanoseconds elapsed per nondeterministic instruction other than system calls.
NANOS_PER_RCB
Virtual nanoseconds elapsed per Retired Conditional Branch.
NANOS_PER_SCHED
Virtual nanoseconds elapsed per step of the scheduler.
NANOS_PER_SYSCALL
Default virtual nanoseconds elapsed for callers that do not provide a syscall-specific cost.

Type Aliases§

DetTid
Deterministic “virtual” version of reverie::Tid
InstructionPointer
The type of the RIP value.
LogicalDuration
Microseconds
The same basic type alias as nanoseconds. Just for clarity/readability.
RawFd
For now we use the definiton of RawFd from std::os.