The Pedigree Project 0.1
Modules | Classes | Enumerations | Functions
machine-specifc kernel

machine-specific kernel interface More...

+ Collaboration diagram for machine-specifc kernel:

Modules

 x86-common
 x86-common machine-specific kernel
 

Classes

class  IrqHandlerBase
 
class  IrqHandler
 
class  HardIrqHandler
 
class  IrqPolicy
 
struct  IrqLineDiagnosticSnapshot
 
class  IrqManager
 
class  SchedulerTimer
 
class  SchedulerTimerHandler
 
class  Timer
 
class  TimerHandler
 

Enumerations

enum class  IrqDisposition { NotHandled , Handled , IrqDisposition::Quiesced }
 
enum class  HardIrqDisposition { NotHandled = 0 , Handled , HardIrqDisposition::KeepMasked }
 
enum class  IrqTrigger : uint8_t { Edge , Level , Synthetic }
 
enum class  IrqControllerAck : uint8_t { None , BeforeHardStage , AfterHardStage }
 
enum class  IrqLineRelease : uint8_t { AfterHardStage , AfterThreadedCompletion }
 
enum class  IrqDelivery : uint8_t { None , Hard , Threaded , Mixed }
 
enum  IrqMaskReason : uint16_t {
  IrqMaskNone = 0 , IrqMaskNoHandler = 1U << 0 , IrqMaskAdministrativelyDisabled = 1U << 1 , IrqMaskAwaitingAcknowledgement = 1U << 2 ,
  IrqMaskAwaitingThreadedCompletion = 1U << 3 , IrqMaskMitigated = 1U << 4 , IrqMaskShuttingDown = 1U << 5 , IrqMaskControllerContention = 1U << 6
}
 
enum class  IrqWorkerDebugState : uint8_t {
  Unavailable , None , SemaphoreWait , ConditionWait ,
  Joining , FutexWait , EventWait , ProcessWait ,
  CallbackDrain
}
 
enum class  IrqWorkerWaitReason : uint8_t {
  Unavailable , Waiting , Signalled , Event ,
  Unwinding , Terminating , Spurious
}
 
enum class  IrqControllerPromptState : uint8_t { NotRequired , Submitted , Failed }
 

Functions

typedef MACHINE_SPECIFIC_NAME (irq_id_t) irq_id_t
 

Detailed Description

machine-specific kernel interface

machine-specific kernel interface

Enumeration Type Documentation

◆ HardIrqDisposition

enum class HardIrqDisposition
strong

Result of a bounded hard-IRQ callback.

Enumerator
KeepMasked 

The source was recognised, but completion could not be handed off safely. The controller must still perform its required acknowledgement, while leaving the physical line masked after this occurrence.

This disposition dominates a peer's Handled result on a shared line.

Definition at line 44 of file IrqHandler.h.

◆ IrqControllerAck

enum class IrqControllerAck : uint8_t
strong

Controller acknowledgement order relative to the bounded hard stage.

Definition at line 47 of file include/pedigree/kernel/machine/IrqManager.h.

◆ IrqControllerPromptState

enum class IrqControllerPromptState : uint8_t
strong

Last terminal state of the PIC controller-worker reschedule prompt.

Definition at line 205 of file include/pedigree/kernel/machine/IrqManager.h.

◆ IrqDelivery

enum class IrqDelivery : uint8_t
strong

Delivery context currently configured for a physical interrupt line.

Definition at line 161 of file include/pedigree/kernel/machine/IrqManager.h.

◆ IrqDisposition

enum class IrqDisposition
strong

Result of an ordinary thread-context IRQ callback.

Enumerator
Quiesced 

Teardown synchronously gated this device's contribution to the physical line before publishing callback-admission closure. A stale threaded dispatch may therefore rearm that line without claiming that this callback observed the occurrence.

Definition at line 31 of file IrqHandler.h.

◆ IrqLineRelease

enum class IrqLineRelease : uint8_t
strong

Point at which a controller-masked line may be made live again.

Definition at line 54 of file include/pedigree/kernel/machine/IrqManager.h.

◆ IrqMaskReason

enum IrqMaskReason : uint16_t

Independent reasons an interrupt line is not currently live.

Definition at line 169 of file include/pedigree/kernel/machine/IrqManager.h.

◆ IrqTrigger

enum class IrqTrigger : uint8_t
strong

Source-declared trigger semantics used for safe controller behaviour. The PC PCI registration path configures its selected ELCR line as level triggered while masked. Interrupt routing to that line remains platform-owned.

Definition at line 40 of file include/pedigree/kernel/machine/IrqManager.h.

◆ IrqWorkerDebugState

enum class IrqWorkerDebugState : uint8_t
strong

Detached higher-level state for a threaded IRQ worker.

Definition at line 181 of file include/pedigree/kernel/machine/IrqManager.h.

◆ IrqWorkerWaitReason

enum class IrqWorkerWaitReason : uint8_t
strong

Detached wake state for a threaded IRQ worker's active WaitQueue record.

Definition at line 194 of file include/pedigree/kernel/machine/IrqManager.h.

Function Documentation

◆ MACHINE_SPECIFIC_NAME()

typedef MACHINE_SPECIFIC_NAME ( irq_id_t  )

Define a type for IRQ identifications