Module kernel::process

source ·
Expand description

Types for Tock-compatible processes.


  • pub use crate::process_binary::ProcessBinary;
  • pub use crate::process_checker::ProcessCheckerMachine;
  • pub use crate::process_checker::ProcessCheckerMachineClient;
  • pub use crate::process_loading::load_processes;
  • pub use crate::process_loading::ProcessLoadError;
  • pub use crate::process_loading::SequentialProcessLoaderMachine;
  • pub use crate::process_loading::ProcessLoadingAsync;
  • pub use crate::process_loading::ProcessLoadingAsyncClient;
  • pub use crate::process_policies::ProcessFaultPolicy;
  • pub use crate::process_printer::ProcessPrinter;
  • pub use crate::process_printer::ProcessPrinterContext;
  • pub use crate::process_standard::ProcessStandard;


  • The version of a binary.
  • Struct that defines a upcall that can be passed to a process. The upcall takes four arguments that are Driver and upcall specific, so they are represented generically here.
  • Collection of process state information related to the memory addresses of different elements of the process.
  • Opaque identifier for custom grants allocated dynamically from a process’s grant region.
  • Userspace process identifier.
  • Collection of process state related to the size in memory of various process structures.
  • This is similar to FunctionCall but for the special case of the Null Upcall for a subscribe. Because there is no function pointer in a Null Upcall we can only return these values to userspace. This is used to pass around upcall parameters when there is no associated upcall to actually call or userdata.


  • Error types related to processes.
  • The action the kernel should take when a process encounters a fault.
  • Enumeration to identify whether a function call for a process comes directly from the kernel or from a upcall subscribed through a Driver implementation.
  • A compressed form of an Application Identifier.
  • States a process can be in.
  • Enum used to inform scheduler why a process stopped executing (aka why do_process() returned).
  • States a process could previously have been in when stopped.
  • Tasks that can be enqueued for a process.


  • This trait represents a generic process that the Tock scheduler can schedule.