FreeNOS
Data Structures | Public Member Functions | Private Types | Private Member Functions | Private Attributes | Static Private Attributes
IntelACPI Class Reference

Intel Advanced Configuration and Power Interface (ACPI). More...

#include <IntelACPI.h>

Inheritance diagram for IntelACPI:
CoreManager

Data Structures

struct  ExtendedSystemTable
 Extended System Descriptor Table (XSDT) More...
 
struct  MultipleAPICTable
 Multiple APIC Description Table (MADT). More...
 
struct  MultipleAPICTableEntry
 Multiple APIC Description Table (MADT) entry. More...
 
struct  MultipleAPICTableProc
 Multiple APIC Description Table (MADT) processor entry. More...
 
struct  RootSystemDescriptor1
 Root System Description Pointer (ACPI v1.0). More...
 
struct  RootSystemDescriptor2
 Root System Description Pointer (ACPI v2.0) More...
 
struct  RootSystemTable
 Root System Descriptor Table (RSDT) More...
 
struct  SystemDescriptorHeader
 System Descriptor Header (ACPI v3.0) More...
 

Public Member Functions

 IntelACPI ()
 Constructor. More...
 
virtual Result initialize ()
 Initialize the ACPI. More...
 
virtual Result discover ()
 Discover processors. More...
 
virtual Result boot (CoreInfo *info)
 Boot a processor. More...
 
- Public Member Functions inherited from CoreManager
 CoreManager ()
 Constructor. More...
 
List< uint > & getCores ()
 Get list of core identities. More...
 

Private Types

enum  Registers
 Hardware registers. More...
 

Private Member Functions

struct IntelACPI::RootSystemDescriptor1 __attribute__ ((packed)) RootSystemDescriptor1
 Root System Description Pointer (ACPI v1.0). More...
 
struct IntelACPI::RootSystemDescriptor2 __attribute__ ((packed)) RootSystemDescriptor2
 Root System Description Pointer (ACPI v2.0) More...
 
struct IntelACPI::SystemDescriptorHeader __attribute__ ((packed)) SystemDescriptorHeader
 System Descriptor Header (ACPI v3.0) More...
 
struct IntelACPI::RootSystemTable __attribute__ ((packed)) RootSystemTable
 Root System Descriptor Table (RSDT) More...
 
struct IntelACPI::ExtendedSystemTable __attribute__ ((packed)) ExtendedSystemTable
 Extended System Descriptor Table (XSDT) More...
 
struct IntelACPI::MultipleAPICTableEntry __attribute__ ((packed)) MultipleAPICTableEntry
 Multiple APIC Description Table (MADT) entry. More...
 
struct IntelACPI::MultipleAPICTableProc __attribute__ ((packed)) MultipleAPICTableProc
 Multiple APIC Description Table (MADT) processor entry. More...
 
struct IntelACPI::MultipleAPICTable __attribute__ ((packed)) MultipleAPICTable
 Multiple APIC Description Table (MADT). More...
 
Result scanAPIC (MultipleAPICTable *madt)
 Scan for cores in the APIC tables. More...
 

Private Attributes

enum IntelACPI::Registers __attribute__
 
IntelIO m_bios
 I/O object for searching the RootSystemDescriptor. More...
 
IntelIO m_rootIO
 Root/Extended SDT table I/O object. More...
 

Static Private Attributes

static const uint RSDBase = 0x1000
 Memory base address for searching the RootSystemDescriptor. More...
 
static const uint RSDSize = MegaByte(1) - 0x1000
 Size of the memory region for searching the RootSystemDescriptor. More...
 
static const uint RootSystemSignature1 = 0x20445352
 Signature to detect a valid RootSystemDescriptor (part 1). More...
 
static const uint RootSystemSignature2 = 0x20525450
 Signature to detect a valid RootSystemDescriptor (part 2). More...
 
static const u32 RootSystemTableSignature = 0x54445352
 Signature for the Root System Descriptor Table (RSDT). More...
 
static const u32 ExtendedSystemTableSignature = 0x54445358
 Signature for the Extended System Descriptor Table (XSDT). More...
 
static const u32 MultipleAPICTableSignature = 0x43495041
 Signature for the Multiple APIC Descriptor Table (MADT). More...
 

Additional Inherited Members

- Public Types inherited from CoreManager
enum  Result { Success, IOError, NotFound, InvalidArgument }
 Result codes. More...
 
- Protected Attributes inherited from CoreManager
List< uintm_cores
 List of core ids found. More...
 

Detailed Description

Intel Advanced Configuration and Power Interface (ACPI).

Definition at line 39 of file IntelACPI.h.

Member Enumeration Documentation

◆ Registers

enum IntelACPI::Registers
private

Hardware registers.

Definition at line 164 of file IntelACPI.h.

Constructor & Destructor Documentation

◆ IntelACPI()

IntelACPI::IntelACPI ( )

Constructor.

Definition at line 22 of file IntelACPI.cpp.

References m_bios, IO::map(), RSDBase, and RSDSize.

Member Function Documentation

◆ __attribute__() [1/8]

struct IntelACPI::ExtendedSystemTable IntelACPI::__attribute__ ( (packed)  )
private

Extended System Descriptor Table (XSDT)

◆ __attribute__() [2/8]

struct IntelACPI::MultipleAPICTable IntelACPI::__attribute__ ( (packed)  )
private

Multiple APIC Description Table (MADT).

◆ __attribute__() [3/8]

struct IntelACPI::MultipleAPICTableEntry IntelACPI::__attribute__ ( (packed)  )
private

Multiple APIC Description Table (MADT) entry.

◆ __attribute__() [4/8]

struct IntelACPI::MultipleAPICTableProc IntelACPI::__attribute__ ( (packed)  )
private

Multiple APIC Description Table (MADT) processor entry.

◆ __attribute__() [5/8]

struct IntelACPI::RootSystemDescriptor1 IntelACPI::__attribute__ ( (packed)  )
private

Root System Description Pointer (ACPI v1.0).

◆ __attribute__() [6/8]

struct IntelACPI::RootSystemDescriptor2 IntelACPI::__attribute__ ( (packed)  )
private

Root System Description Pointer (ACPI v2.0)

◆ __attribute__() [7/8]

struct IntelACPI::RootSystemTable IntelACPI::__attribute__ ( (packed)  )
private

Root System Descriptor Table (RSDT)

◆ __attribute__() [8/8]

struct IntelACPI::SystemDescriptorHeader IntelACPI::__attribute__ ( (packed)  )
private

System Descriptor Header (ACPI v3.0)

◆ boot()

IntelACPI::Result IntelACPI::boot ( CoreInfo info)
virtual

Boot a processor.

Parameters
infoCoreInfo object pointer.
Returns
Result code.

Implements CoreManager.

Definition at line 148 of file IntelACPI.cpp.

References CoreManager::IOError.

◆ discover()

IntelACPI::Result IntelACPI::discover ( )
virtual

◆ initialize()

IntelACPI::Result IntelACPI::initialize ( )
virtual

◆ scanAPIC()

IntelACPI::Result IntelACPI::scanAPIC ( MultipleAPICTable madt)
private

Field Documentation

◆ __attribute__

enum IntelACPI::Registers IntelACPI::__attribute__
private

◆ ExtendedSystemTableSignature

const u32 IntelACPI::ExtendedSystemTableSignature = 0x54445358
staticprivate

Signature for the Extended System Descriptor Table (XSDT).

Definition at line 59 of file IntelACPI.h.

Referenced by discover().

◆ m_bios

IntelIO IntelACPI::m_bios
private

I/O object for searching the RootSystemDescriptor.

Definition at line 210 of file IntelACPI.h.

Referenced by initialize(), and IntelACPI().

◆ m_rootIO

IntelIO IntelACPI::m_rootIO
private

Root/Extended SDT table I/O object.

Definition at line 213 of file IntelACPI.h.

Referenced by discover(), and initialize().

◆ MultipleAPICTableSignature

const u32 IntelACPI::MultipleAPICTableSignature = 0x43495041
staticprivate

Signature for the Multiple APIC Descriptor Table (MADT).

Definition at line 62 of file IntelACPI.h.

Referenced by discover().

◆ RootSystemSignature1

const uint IntelACPI::RootSystemSignature1 = 0x20445352
staticprivate

Signature to detect a valid RootSystemDescriptor (part 1).

Definition at line 50 of file IntelACPI.h.

Referenced by initialize().

◆ RootSystemSignature2

const uint IntelACPI::RootSystemSignature2 = 0x20525450
staticprivate

Signature to detect a valid RootSystemDescriptor (part 2).

Definition at line 53 of file IntelACPI.h.

Referenced by initialize().

◆ RootSystemTableSignature

const u32 IntelACPI::RootSystemTableSignature = 0x54445352
staticprivate

Signature for the Root System Descriptor Table (RSDT).

Definition at line 56 of file IntelACPI.h.

Referenced by discover().

◆ RSDBase

const uint IntelACPI::RSDBase = 0x1000
staticprivate

Memory base address for searching the RootSystemDescriptor.

Definition at line 44 of file IntelACPI.h.

Referenced by IntelACPI().

◆ RSDSize

const uint IntelACPI::RSDSize = MegaByte(1) - 0x1000
staticprivate

Size of the memory region for searching the RootSystemDescriptor.

Definition at line 47 of file IntelACPI.h.

Referenced by initialize(), and IntelACPI().


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