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§
- Child
Wait Spec - Scheduler-owned selection criteria for a terminal child wait.
- Clock
Exhausted - 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). - Global
Time - Deterministic global time, combining local times.
- Logical
Time - 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). - Open
File Id - 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.
- RcbTime
Multiplier - A positive Q32 multiplier for converting RCB progress into virtual time.
- Sched
Event - 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
nixcannot.
Enums§
- Child
Wait Exit Class - Linux’s clone-child filtering for terminal wait events.
- Child
Wait Selector - Child population addressed by a wait syscall whose exit readiness Detcore can model.
- Exact
Child Wait State - Scheduler-owned lifecycle state for an exact child-process wait.
- FutexID
- Identity of a futex word.
- Guest
Ids - How the guest’s process and thread IDs are numbered
(
Config::guest_ids). - Op
- NOTE [Event Semantics]
- Posix
Timer Thread - What
timer_create’ssigev_notify_thread_idnames (Scheduler::posix_timer_thread). - Shared
Memory Object Id - Identity of an object that backs a process-shared memory mapping.
- Syscall
Phase - 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 - Instruction
Pointer - The type of the RIP value.
- Logical
Duration - Microseconds
- The same basic type alias as nanoseconds. Just for clarity/readability.
- RawFd
- For now we use the definiton of
RawFdfromstd::os.