Crate fault_log

source ·
Expand description

This crate logs all the faults occuring within Theseus. Maintains a list of exceptions and panics that has occured since booting up. This crate does not hold reference to any task or app.

Structs

  • A data structure to hold information about each fault.

Enums

  • The possible faults (panics and exceptions) encountered during operations.
  • The different types of recovery procedures used for the observed fault

Functions

  • Clears the log of faults so far occured in the system
  • Utility function to get Fault type from exception number.
  • Provides the most recent entry in the log for given crate Utility function for iterative crate replacement
  • Add a new exception instance to the fault log. Generally it will have fault_type and instruction_pointer. If error_code is provided with exception it will be send to the function as Some(error_code). If the exception is a page fault the address attempted to accesss will also be send to the function as Some(address_accessed)
  • Add a FaultEntry to fault log.
  • Add a new panic instance to the fault log.
  • Prints the fault log
  • Removes the unhandled faults from the fault log and returns. Is useful when we update the recovery detail about unhandled exceptions.