XenevaOS
Loading...
Searching...
No Matches
Classes | Macros | Typedefs | Enumerations | Functions
basicacpi.h File Reference
#include <stdint.h>
#include <aurora.h>
Include dependency graph for basicacpi.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  acpiGenAddr
 source from Visopsys Operating System More...
 
struct  _rsdp_
 ACPI version 1.0 structures. More...
 
struct  _acpiSysDesc
 
struct  acpiRsdt
 Root System Descriptor Table. More...
 
struct  _acpi_apic_header_
 
struct  acpiLocalApic
 
struct  acpiGICCpuInterface
 
struct  acpiGICDistributor
 
struct  acpiGICv2MFrame
 
struct  acpiIoApic
 
struct  acpiMadt
 
struct  acpiFadt
 
struct  acpiFacs
 Firmware ACPI Control structure. More...
 
struct  acpiDsdt
 
struct  acpiIsOver
 
struct  acpiXsdt
 
struct  acpiBoot
 
struct  acpiMcfg
 
struct  acpiMcfgAlloc
 
struct  _aurora_acpi_
 Standard kernel ACPI header for kernel use only. More...
 
struct  _apic_interrupt_override_
 
struct  _acpi_table_srat_x_
 
struct  _acpi_sub_tab_
 
struct  _acpi_srat_mem_affinity_
 

Macros

#define ACPI_APICTYPE_LAPIC   0
 
#define ACPI_APICTYPE_IOAPIC   1
 
#define ACPI_MADTTYPE_GICC   11
 
#define ACPI_MADTTYPE_GICD   12
 
#define ACPI_MADTTYPE_GICMSI   13
 
#define ACPI_MADTTYPE_GICR   14
 
#define ACPI_MADTTYPE_GICITS   15
 
#define ACPI_MADTTYPE_CIC   17
 
#define ACPI_MADTTYPE_LPI   18
 
#define ACPI_MADTTYPE_GICCPU_AFFIN   19
 
#define ACPI_MADTTYPE_GICV4   20
 
#define ACPI_SIG_RSDP   "RSD PTR "
 
#define ACPI_SIG_APIC   "APIC"
 
#define ACPI_SIG_DSDT   "DSDT"
 
#define ACPI_SIG_FADT   "FACP"
 
#define ACPI_SIG_FACS   "FACS"
 
#define ACPI_SIG_PSDT   "PSDT"
 
#define ACPI_SIG_RSDT   "RSDT"
 
#define ACPI_SIG_SSDT   "SSDT"
 
#define ACPI_SIG_SBST   "SBST"
 
#define ACPI_FACSFL_S4BIOS   0x00000001
 
#define ACPI_PMCTRL_SCI_EN   0x0001
 Power management control block command.
 
#define ACPI_PMCTRL_BM_RLD   0x0002
 
#define ACPI_PMCTRL_GBL_RLS   0x0004
 
#define ACPI_PMCTRL_SLP_TYPX   0x1C00
 
#define ACPI_PMCTRL_SLP_EN   0x2000
 
#define ACPI_SIG_ECDT   "ECDT"
 
#define ACPI_SIG_OEMX   "OEM"
 
#define ACPI_SIG_XSDT   "XSDT"
 
#define ACPI_SIG_BOOT   "BOOT"
 
#define ACPI_SIG_CPEP   "CPEP"
 
#define ACPI_SIG_DBGP   "DBGP"
 
#define ACPI_SIG_ETDT   "ETDT"
 
#define ACPI_SIG_HPET   "HPET"
 
#define ACPI_SIG_SLIT   "SLIT"
 
#define ACPI_SIG_SPCR   "SPCR"
 
#define ACPI_SIG_SRAT   "SRAT"
 
#define ACPI_SIG_SPMI   "SPMI"
 
#define ACPI_SIG_TCPA   "TCPA"
 
#define ACPI_APICTYPE_ISOVER   2
 APIC structure type.
 
#define ACPI_APICTYPE_NMI   3
 
#define ACPI_APICTYPE_LAPIC_NMI   4
 
#define ACPI_APICTYPE_LAPIC_AOS   5
 
#define ACPI_APICTYPE_IOSAPIC   6
 
#define ACPI_APICTYPE_LSAPIC   7
 
#define ACPI_APICTYPE_PLATIS   8
 
#define ACPI_SIG_BERT   "BERT"
 ACPI Version 3.0 definitions.
 
#define ACPI_SIG_DMAR   "DMAR"
 
#define ACPI_SIG_ERST   "ERST"
 
#define ACPI_SIG_HEST   "HEST"
 
#define ACPI_SIG_IBFT   "IBFT"
 
#define ACPI_SIG_MCFG   "MCFG"
 
#define ACPI_SIG_UEFI   "UEFI"
 
#define ACPI_SIG_WAET   "WAET"
 
#define ACPI_SIG_WDAT   "WDAT"
 
#define ACPI_SIG_WDRT   "WDRT"
 
#define ACPI_SIG_WSPT   "WSPT"
 
#define ACPI_SIG_EINJ   "EINJ"
 
#define ACPI_SIG_MSCT   "MSCT"
 
#define ACPI_SIG_PSDT   "PSDT"
 
#define ACPI_SIG_IVRS   "IVRS"
 
#define ACPI_SIG_MCHI   "MCHI"
 
#define ACPI_FACSFL_64BITWAKE   0x00000002
 
#define APIC_TYPE_INTERRUPT_OVERRIDE   2
 

Typedefs

typedef struct _rsdp_ acpiRsdp
 ACPI version 1.0 structures.
 
typedef struct _acpiSysDesc acpiSysDescHeader
 
typedef struct _acpi_apic_header_ acpiApicHeader
 
typedef struct _aurora_acpi_ AuroraBasicACPI
 Standard kernel ACPI header for kernel use only.
 
typedef struct _apic_interrupt_override_ apic_interrupt_override
 
typedef struct _acpi_table_srat_x_ acpi_table_srat_xe
 
typedef struct _acpi_sub_tab_ acpi_sub_table
 
typedef struct _acpi_srat_mem_affinity_ AcpiSRATMemAffinity
 

Enumerations

enum  acpi_srat_type {
  acpi_srat_type_cpu_affinity = 0 , acpi_srat_type_memory_affinity = 1 , acpi_srat_type_x2apic_cpu_affinity = 2 , acpi_srat_type_gicc_affinity = 3 ,
  acpi_srat_type_gic_its_affinity = 4 , acpi_srat_type_generic_affinity = 5 , acpi_srat_type_reserved = 6
}
 

Functions

void AuACPIEnable ()
 
void AuACPIShutdown ()
 
void AuACPIInitialise (void *acpi_base)
 
acpiMcfgAuACPIGetMCFG ()
 
bool AuACPIPCIESupported ()
 
void * AuACPIGetRSDP ()
 
void AuInitialiseACPISubsys (KERNEL_BOOT_INFO *info)
 
uint8_t AuGetCPUCount ()
 

Macro Definition Documentation

◆ ACPI_APICTYPE_IOAPIC

#define ACPI_APICTYPE_IOAPIC   1

◆ ACPI_APICTYPE_IOSAPIC

#define ACPI_APICTYPE_IOSAPIC   6

◆ ACPI_APICTYPE_ISOVER

#define ACPI_APICTYPE_ISOVER   2

APIC structure type.

◆ ACPI_APICTYPE_LAPIC

#define ACPI_APICTYPE_LAPIC   0

BSD 2-Clause License

Copyright (c) 2022-2023, Manas Kamal Choudhury All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

  1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
  2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

◆ ACPI_APICTYPE_LAPIC_AOS

#define ACPI_APICTYPE_LAPIC_AOS   5

◆ ACPI_APICTYPE_LAPIC_NMI

#define ACPI_APICTYPE_LAPIC_NMI   4

◆ ACPI_APICTYPE_LSAPIC

#define ACPI_APICTYPE_LSAPIC   7

◆ ACPI_APICTYPE_NMI

#define ACPI_APICTYPE_NMI   3

◆ ACPI_APICTYPE_PLATIS

#define ACPI_APICTYPE_PLATIS   8

◆ ACPI_FACSFL_64BITWAKE

#define ACPI_FACSFL_64BITWAKE   0x00000002

◆ ACPI_FACSFL_S4BIOS

#define ACPI_FACSFL_S4BIOS   0x00000001

◆ ACPI_MADTTYPE_CIC

#define ACPI_MADTTYPE_CIC   17

◆ ACPI_MADTTYPE_GICC

#define ACPI_MADTTYPE_GICC   11

◆ ACPI_MADTTYPE_GICCPU_AFFIN

#define ACPI_MADTTYPE_GICCPU_AFFIN   19

◆ ACPI_MADTTYPE_GICD

#define ACPI_MADTTYPE_GICD   12

◆ ACPI_MADTTYPE_GICITS

#define ACPI_MADTTYPE_GICITS   15

◆ ACPI_MADTTYPE_GICMSI

#define ACPI_MADTTYPE_GICMSI   13

◆ ACPI_MADTTYPE_GICR

#define ACPI_MADTTYPE_GICR   14

◆ ACPI_MADTTYPE_GICV4

#define ACPI_MADTTYPE_GICV4   20

◆ ACPI_MADTTYPE_LPI

#define ACPI_MADTTYPE_LPI   18

◆ ACPI_PMCTRL_BM_RLD

#define ACPI_PMCTRL_BM_RLD   0x0002

◆ ACPI_PMCTRL_GBL_RLS

#define ACPI_PMCTRL_GBL_RLS   0x0004

◆ ACPI_PMCTRL_SCI_EN

#define ACPI_PMCTRL_SCI_EN   0x0001

Power management control block command.

◆ ACPI_PMCTRL_SLP_EN

#define ACPI_PMCTRL_SLP_EN   0x2000

◆ ACPI_PMCTRL_SLP_TYPX

#define ACPI_PMCTRL_SLP_TYPX   0x1C00

◆ ACPI_SIG_APIC

#define ACPI_SIG_APIC   "APIC"

◆ ACPI_SIG_BERT

#define ACPI_SIG_BERT   "BERT"

ACPI Version 3.0 definitions.

◆ ACPI_SIG_BOOT

#define ACPI_SIG_BOOT   "BOOT"

◆ ACPI_SIG_CPEP

#define ACPI_SIG_CPEP   "CPEP"

◆ ACPI_SIG_DBGP

#define ACPI_SIG_DBGP   "DBGP"

◆ ACPI_SIG_DMAR

#define ACPI_SIG_DMAR   "DMAR"

◆ ACPI_SIG_DSDT

#define ACPI_SIG_DSDT   "DSDT"

◆ ACPI_SIG_ECDT

#define ACPI_SIG_ECDT   "ECDT"

◆ ACPI_SIG_EINJ

#define ACPI_SIG_EINJ   "EINJ"

◆ ACPI_SIG_ERST

#define ACPI_SIG_ERST   "ERST"

◆ ACPI_SIG_ETDT

#define ACPI_SIG_ETDT   "ETDT"

◆ ACPI_SIG_FACS

#define ACPI_SIG_FACS   "FACS"

◆ ACPI_SIG_FADT

#define ACPI_SIG_FADT   "FACP"

◆ ACPI_SIG_HEST

#define ACPI_SIG_HEST   "HEST"

◆ ACPI_SIG_HPET

#define ACPI_SIG_HPET   "HPET"

◆ ACPI_SIG_IBFT

#define ACPI_SIG_IBFT   "IBFT"

◆ ACPI_SIG_IVRS

#define ACPI_SIG_IVRS   "IVRS"

◆ ACPI_SIG_MCFG

#define ACPI_SIG_MCFG   "MCFG"

◆ ACPI_SIG_MCHI

#define ACPI_SIG_MCHI   "MCHI"

◆ ACPI_SIG_MSCT

#define ACPI_SIG_MSCT   "MSCT"

◆ ACPI_SIG_OEMX

#define ACPI_SIG_OEMX   "OEM"

◆ ACPI_SIG_PSDT [1/2]

#define ACPI_SIG_PSDT   "PSDT"

◆ ACPI_SIG_PSDT [2/2]

#define ACPI_SIG_PSDT   "PSDT"

◆ ACPI_SIG_RSDP

#define ACPI_SIG_RSDP   "RSD PTR "

◆ ACPI_SIG_RSDT

#define ACPI_SIG_RSDT   "RSDT"

◆ ACPI_SIG_SBST

#define ACPI_SIG_SBST   "SBST"

◆ ACPI_SIG_SLIT

#define ACPI_SIG_SLIT   "SLIT"

◆ ACPI_SIG_SPCR

#define ACPI_SIG_SPCR   "SPCR"

◆ ACPI_SIG_SPMI

#define ACPI_SIG_SPMI   "SPMI"

◆ ACPI_SIG_SRAT

#define ACPI_SIG_SRAT   "SRAT"

◆ ACPI_SIG_SSDT

#define ACPI_SIG_SSDT   "SSDT"

◆ ACPI_SIG_TCPA

#define ACPI_SIG_TCPA   "TCPA"

◆ ACPI_SIG_UEFI

#define ACPI_SIG_UEFI   "UEFI"

◆ ACPI_SIG_WAET

#define ACPI_SIG_WAET   "WAET"

◆ ACPI_SIG_WDAT

#define ACPI_SIG_WDAT   "WDAT"

◆ ACPI_SIG_WDRT

#define ACPI_SIG_WDRT   "WDRT"

◆ ACPI_SIG_WSPT

#define ACPI_SIG_WSPT   "WSPT"

◆ ACPI_SIG_XSDT

#define ACPI_SIG_XSDT   "XSDT"

◆ APIC_TYPE_INTERRUPT_OVERRIDE

#define APIC_TYPE_INTERRUPT_OVERRIDE   2

Typedef Documentation

◆ acpi_sub_table

◆ acpi_table_srat_xe

◆ acpiApicHeader

◆ acpiRsdp

typedef struct _rsdp_ acpiRsdp

ACPI version 1.0 structures.

◆ AcpiSRATMemAffinity

◆ acpiSysDescHeader

◆ apic_interrupt_override

◆ AuroraBasicACPI

Standard kernel ACPI header for kernel use only.

Enumeration Type Documentation

◆ acpi_srat_type

Enumerator
acpi_srat_type_cpu_affinity 
acpi_srat_type_memory_affinity 
acpi_srat_type_x2apic_cpu_affinity 
acpi_srat_type_gicc_affinity 
acpi_srat_type_gic_its_affinity 
acpi_srat_type_generic_affinity 

ACPI 6.2.

acpi_srat_type_reserved 

ACPI 6.3.

Function Documentation

◆ AuACPIEnable()

void AuACPIEnable ( )
extern

◆ AuACPIGetMCFG()

acpiMcfg * AuACPIGetMCFG ( )
extern

AuACPIGetMCFG – Returns the mcfg table from basic acpi

◆ AuACPIGetRSDP()

void * AuACPIGetRSDP ( )
extern

◆ AuACPIInitialise()

void AuACPIInitialise ( void *  acpi_base)
extern

◆ AuACPIPCIESupported()

bool AuACPIPCIESupported ( )
extern

◆ AuACPIShutdown()

void AuACPIShutdown ( )
extern

◆ AuGetCPUCount()

uint8_t AuGetCPUCount ( )
extern

◆ AuInitialiseACPISubsys()

void AuInitialiseACPISubsys ( KERNEL_BOOT_INFO info)
extern