The Pedigree Project 0.1
Public Member Functions | Private Attributes | List of all members
LocalApicIcrTransaction Class Reference

#include <LocalApicIcrTransaction.h>

+ Collaboration diagram for LocalApicIcrTransaction:

Public Member Functions

constexpr LocalApicIcrTransaction (bool interruptsWereEnabled)
 
constexpr bool masksMaskableInterrupts () const
 
constexpr bool restoreInterrupts () const
 
constexpr bool allowsMaskableHardIrqPreemption () const
 

Private Attributes

bool m_InterruptsWereEnabled
 

Detailed Description

Models the local interrupt boundary around one LAPIC ICR transaction.

The ICR is per processor. Masking local maskable interrupts before its two register writes prevents a same-core hard interrupt from preempting an in-progress submission; no cross-CPU software ownership exists to acquire.

Definition at line 19 of file LocalApicIcrTransaction.h.

Constructor & Destructor Documentation

◆ LocalApicIcrTransaction()

constexpr LocalApicIcrTransaction::LocalApicIcrTransaction ( bool  interruptsWereEnabled)
inlineexplicitconstexpr

Definition at line 21 of file LocalApicIcrTransaction.h.

Member Function Documentation

◆ allowsMaskableHardIrqPreemption()

constexpr bool LocalApicIcrTransaction::allowsMaskableHardIrqPreemption ( ) const
inlineconstexpr

Definition at line 32 of file LocalApicIcrTransaction.h.

◆ masksMaskableInterrupts()

constexpr bool LocalApicIcrTransaction::masksMaskableInterrupts ( ) const
inlineconstexpr

Definition at line 24 of file LocalApicIcrTransaction.h.

◆ restoreInterrupts()

constexpr bool LocalApicIcrTransaction::restoreInterrupts ( ) const
inlineconstexpr

Definition at line 28 of file LocalApicIcrTransaction.h.

Member Data Documentation

◆ m_InterruptsWereEnabled

bool LocalApicIcrTransaction::m_InterruptsWereEnabled
private

Definition at line 37 of file LocalApicIcrTransaction.h.


The documentation for this class was generated from the following file: