|
The Pedigree Project 0.1
|
#include <PicIrqState.h>
Collaboration diagram for PicIrqState:Public Types | |
| enum class | TriggerMode : uint8_t { Unconfigured , Level , Edge } |
Public Member Functions | |
| bool | canRegister (size_t irq, const IrqPolicy &policy, IrqDelivery delivery) const |
| bool | canRegister (size_t irq, const IrqPolicy &policy) const |
| bool | canReservePciRoute (size_t irq) const |
| void | reservePciRoute (size_t irq) |
| bool | pciRouteReserved (size_t irq) const |
| bool | canReserveIoApic (size_t irq) const |
| void | reserveIoApic (size_t irq) |
| bool | canRegisterScheduler (size_t irq, const IrqPolicy &policy) const |
| void | schedulerRegistered (size_t irq, const IrqPolicy &policy) |
| void | schedulerUnregistered (size_t irq) |
| bool | schedulerRegistered (size_t irq) const |
| void | handlerRegistered (size_t irq, const IrqPolicy &policy, IrqDelivery delivery) |
| void | handlerRegistered (size_t irq, const IrqPolicy &policy) |
| void | handlerUnregistered (size_t irq, IrqDelivery delivery) |
| void | handlerUnregistered (size_t irq) |
| size_t | beginDispatch (size_t irq) |
| void | completeDispatch (size_t irq, size_t dispatchGeneration, bool needsAcknowledgement) |
| bool | acknowledge (size_t irq) |
| void | beginThreadedDispatch (size_t irq) |
| bool | completeThreadedDispatch (size_t irq, size_t dispatchGeneration, bool allowRearm) |
| bool | threadedPending (size_t irq) const |
| bool | acknowledgementPending (size_t irq) const |
| void | beginLineTransition (size_t irq) |
| void | finishLineTransition (size_t irq) |
| bool | lineTransitionPending (size_t irq) const |
| size_t | handlerCount (size_t irq) const |
| size_t | hardHandlerCount (size_t irq) const |
| size_t | threadedHandlerCount (size_t irq) const |
| IrqDelivery | delivery (size_t irq) const |
| bool | edgeTriggered (size_t irq) const |
| IrqTrigger | trigger (size_t irq) const |
| IrqControllerAck | controllerAck (size_t irq) const |
| IrqLineRelease | lineRelease (size_t irq) const |
| bool | enabled (size_t irq) const |
| bool | requestedEnabled (size_t irq) const |
| size_t | dispatchGeneration (size_t irq) const |
| size_t | acknowledgedGeneration (size_t irq) const |
| void | setEnabled (size_t irq, bool enabled) |
| void | setAllEnabled (bool enabled) |
| uint16_t | mask () const |
| uint8_t | masterMask () const |
| uint8_t | slaveMask () const |
Static Public Attributes | |
| static constexpr size_t | LineCount = 16 |
| static constexpr size_t | CascadeIrq = 2 |
Private Member Functions | |
| void | rebuildMask () |
Static Private Member Functions | |
| static IrqDelivery | legacyDelivery (const IrqPolicy &policy) |
| static uint16_t | bit (size_t irq) |
| static bool | generationReached (size_t current, size_t target) |
Private Attributes | |
| uint16_t | m_Mask |
| TriggerMode | m_TriggerModes [LineCount] |
| IrqControllerAck | m_ControllerAck [LineCount] |
| size_t | m_HardHandlerCounts [LineCount] |
| size_t | m_ThreadedHandlerCounts [LineCount] |
| size_t | m_DispatchGenerations [LineCount] |
| size_t | m_AcknowledgedGenerations [LineCount] |
| bool | m_AcknowledgementPending [LineCount] |
| bool | m_ThreadedPending [LineCount] |
| bool | m_TransitionPending [LineCount] |
| bool | m_RequestedEnabled [LineCount] |
| bool | m_SchedulerOwned [LineCount] |
| bool | m_PciRouteReserved [LineCount] |
| bool | m_IoApicReserved [LineCount] |
Software ownership state for the dual 8259 PIC.
The caller serialises every operation with controller-state ownership and writes the returned master/slave masks to hardware. Registration counts are updated independently of the callback registry's drain latency, so a new handler cannot be hidden by the final accounting step of an older unregister.
Definition at line 28 of file PicIrqState.h.
|
strong |
Definition at line 33 of file PicIrqState.h.
|
inline |
Definition at line 39 of file PicIrqState.h.
|
inline |
Definition at line 219 of file PicIrqState.h.
|
inline |
Definition at line 355 of file PicIrqState.h.
|
inline |
Definition at line 265 of file PicIrqState.h.
|
inline |
Definition at line 194 of file PicIrqState.h.
|
inline |
Definition at line 270 of file PicIrqState.h.
|
inline |
Applies a policy-requested mask until the bottom half completes.
Definition at line 234 of file PicIrqState.h.
Referenced by Pic::interrupt().
Here is the caller graph for this function:
|
inlinestaticprivate |
Definition at line 401 of file PicIrqState.h.
|
inline |
Definition at line 74 of file PicIrqState.h.
|
inline |
Definition at line 57 of file PicIrqState.h.
|
inline |
Definition at line 112 of file PicIrqState.h.
|
inline |
Definition at line 99 of file PicIrqState.h.
|
inline |
Definition at line 78 of file PicIrqState.h.
|
inline |
Completes a dispatch without losing an acknowledgement which raced the handler return. An acknowledgement covers every dispatch admitted before it observed the line.
Definition at line 208 of file PicIrqState.h.
Referenced by Pic::interrupt().
Here is the caller graph for this function:
|
inline |
Completes the latest threaded batch. A stale batch cannot reopen a line which has since delivered another occurrence.
Definition at line 246 of file PicIrqState.h.
|
inline |
Definition at line 328 of file PicIrqState.h.
|
inline |
Definition at line 302 of file PicIrqState.h.
|
inline |
Definition at line 350 of file PicIrqState.h.
|
inline |
Definition at line 318 of file PicIrqState.h.
|
inline |
Definition at line 340 of file PicIrqState.h.
|
inline |
Definition at line 276 of file PicIrqState.h.
|
inlinestaticprivate |
Definition at line 405 of file PicIrqState.h.
|
inline |
Definition at line 287 of file PicIrqState.h.
|
inline |
Definition at line 156 of file PicIrqState.h.
|
inline |
Definition at line 134 of file PicIrqState.h.
|
inline |
Definition at line 187 of file PicIrqState.h.
|
inline |
Definition at line 160 of file PicIrqState.h.
|
inline |
Definition at line 292 of file PicIrqState.h.
|
inlinestaticprivate |
Definition at line 392 of file PicIrqState.h.
|
inline |
Definition at line 333 of file PicIrqState.h.
|
inline |
Definition at line 282 of file PicIrqState.h.
|
inline |
Definition at line 379 of file PicIrqState.h.
|
inline |
Definition at line 383 of file PicIrqState.h.
|
inline |
Definition at line 94 of file PicIrqState.h.
|
inlineprivate |
Definition at line 409 of file PicIrqState.h.
|
inline |
Definition at line 345 of file PicIrqState.h.
|
inline |
The same input must never be enabled on both interrupt controllers.
Definition at line 105 of file PicIrqState.h.
|
inline |
Platform routing outlives the drivers which register its callbacks.
Definition at line 84 of file PicIrqState.h.
Referenced by Pic::reservePciRoute().
Here is the caller graph for this function:
|
inline |
Definition at line 129 of file PicIrqState.h.
|
inline |
Definition at line 117 of file PicIrqState.h.
|
inline |
Definition at line 123 of file PicIrqState.h.
|
inline |
Definition at line 366 of file PicIrqState.h.
|
inline |
Definition at line 360 of file PicIrqState.h.
|
inline |
Definition at line 387 of file PicIrqState.h.
|
inline |
Definition at line 297 of file PicIrqState.h.
|
inline |
Definition at line 260 of file PicIrqState.h.
|
inline |
Definition at line 323 of file PicIrqState.h.
|
staticconstexpr |
Definition at line 31 of file PicIrqState.h.
|
staticconstexpr |
Definition at line 30 of file PicIrqState.h.
|
private |
Definition at line 433 of file PicIrqState.h.
|
private |
Definition at line 434 of file PicIrqState.h.
|
private |
Definition at line 429 of file PicIrqState.h.
|
private |
Definition at line 432 of file PicIrqState.h.
|
private |
Definition at line 430 of file PicIrqState.h.
|
private |
Definition at line 440 of file PicIrqState.h.
|
private |
Definition at line 427 of file PicIrqState.h.
|
private |
Definition at line 439 of file PicIrqState.h.
|
private |
Definition at line 437 of file PicIrqState.h.
|
private |
Definition at line 438 of file PicIrqState.h.
|
private |
Definition at line 431 of file PicIrqState.h.
|
private |
Definition at line 435 of file PicIrqState.h.
|
private |
Definition at line 436 of file PicIrqState.h.
|
private |
Definition at line 428 of file PicIrqState.h.