30#ifndef __BASIC_ACPI_H__
31#define __BASIC_ACPI_H__
35#if defined(__GNUC__) || defined(__clang__)
42#define ACPI_APICTYPE_LAPIC 0
43#define ACPI_APICTYPE_IOAPIC 1
44#define ACPI_MADTTYPE_GICC 11
45#define ACPI_MADTTYPE_GICD 12
46#define ACPI_MADTTYPE_GICMSI 13
47#define ACPI_MADTTYPE_GICR 14
48#define ACPI_MADTTYPE_GICITS 15
49#define ACPI_MADTTYPE_CIC 17
50#define ACPI_MADTTYPE_LPI 18
51#define ACPI_MADTTYPE_GICCPU_AFFIN 19
52#define ACPI_MADTTYPE_GICV4 20
55#define ACPI_SIG_RSDP "RSD PTR "
56#define ACPI_SIG_APIC "APIC"
57#define ACPI_SIG_DSDT "DSDT"
58#define ACPI_SIG_FADT "FACP"
59#define ACPI_SIG_FACS "FACS"
60#define ACPI_SIG_PSDT "PSDT"
61#define ACPI_SIG_RSDT "RSDT"
62#define ACPI_SIG_SSDT "SSDT"
63#define ACPI_SIG_SBST "SBST"
66#define ACPI_FACSFL_S4BIOS 0x00000001
69#define ACPI_PMCTRL_SCI_EN 0x0001
70#define ACPI_PMCTRL_BM_RLD 0x0002
71#define ACPI_PMCTRL_GBL_RLS 0x0004
72#define ACPI_PMCTRL_SLP_TYPX 0x1C00
73#define ACPI_PMCTRL_SLP_EN 0x2000
77#define ACPI_SIG_ECDT "ECDT"
78#define ACPI_SIG_OEMX "OEM"
79#define ACPI_SIG_XSDT "XSDT"
80#define ACPI_SIG_BOOT "BOOT"
81#define ACPI_SIG_CPEP "CPEP"
82#define ACPI_SIG_DBGP "DBGP"
83#define ACPI_SIG_ETDT "ETDT"
84#define ACPI_SIG_HPET "HPET"
85#define ACPI_SIG_SLIT "SLIT"
86#define ACPI_SIG_SPCR "SPCR"
87#define ACPI_SIG_SRAT "SRAT"
88#define ACPI_SIG_SPMI "SPMI"
89#define ACPI_SIG_TCPA "TCPA"
92#define ACPI_APICTYPE_ISOVER 2
93#define ACPI_APICTYPE_NMI 3
94#define ACPI_APICTYPE_LAPIC_NMI 4
95#define ACPI_APICTYPE_LAPIC_AOS 5
96#define ACPI_APICTYPE_IOSAPIC 6
97#define ACPI_APICTYPE_LSAPIC 7
98#define ACPI_APICTYPE_PLATIS 8
101#define ACPI_SIG_BERT "BERT"
102#define ACPI_SIG_DMAR "DMAR"
103#define ACPI_SIG_ERST "ERST"
104#define ACPI_SIG_HEST "HEST"
105#define ACPI_SIG_IBFT "IBFT"
106#define ACPI_SIG_MCFG "MCFG"
107#define ACPI_SIG_UEFI "UEFI"
108#define ACPI_SIG_WAET "WAET"
109#define ACPI_SIG_WDAT "WDAT"
110#define ACPI_SIG_WDRT "WDRT"
111#define ACPI_SIG_WSPT "WSPT"
114#define ACPI_SIG_EINJ "EINJ"
115#define ACPI_SIG_MSCT "MSCT"
116#define ACPI_SIG_PSDT "PSDT"
117#define ACPI_SIG_IVRS "IVRS"
118#define ACPI_SIG_MCHI "MCHI"
121#define ACPI_FACSFL_64BITWAKE 0x00000002
280 unsigned char res4[1];
285 unsigned char res5[3];
312 unsigned char res1[3];
315 unsigned char res2[24];
321 unsigned char data[];
344 unsigned char res[3];
423#define APIC_TYPE_INTERRUPT_OVERRIDE 2
unsigned int uint32_t
Definition acefiex.h:163
unsigned char uint8_t
Definition acefiex.h:161
COMPILER_DEPENDENT_UINT64 uint64_t
Definition acefiex.h:165
unsigned short int uint16_t
Definition acefiex.h:162
void AuACPIInitialise(void *acpi_base)
Definition basicacpi.cpp:159
void AuACPIEnable()
Definition basicacpi.cpp:70
struct _aurora_acpi_ AuroraBasicACPI
Standard kernel ACPI header for kernel use only.
struct _acpiSysDesc acpiSysDescHeader
bool AuACPIPCIESupported()
Definition basicacpi.cpp:249
struct _acpi_table_srat_x_ acpi_table_srat_xe
void * AuACPIGetRSDP()
Definition basicacpi.cpp:257
void AuInitialiseACPISubsys(KERNEL_BOOT_INFO *info)
Definition basicacpi.cpp:266
struct _rsdp_ acpiRsdp
ACPI version 1.0 structures.
struct _acpi_sub_tab_ acpi_sub_table
struct _acpi_srat_mem_affinity_ AcpiSRATMemAffinity
uint8_t AuGetCPUCount()
Definition basicacpi.cpp:302
struct _apic_interrupt_override_ apic_interrupt_override
acpiMcfg * AuACPIGetMCFG()
Definition basicacpi.cpp:241
acpi_srat_type
Definition basicacpi.h:399
@ acpi_srat_type_cpu_affinity
Definition basicacpi.h:400
@ acpi_srat_type_reserved
ACPI 6.3.
Definition basicacpi.h:406
@ acpi_srat_type_gicc_affinity
Definition basicacpi.h:403
@ acpi_srat_type_gic_its_affinity
Definition basicacpi.h:404
@ acpi_srat_type_x2apic_cpu_affinity
Definition basicacpi.h:402
@ acpi_srat_type_memory_affinity
Definition basicacpi.h:401
@ acpi_srat_type_generic_affinity
ACPI 6.2.
Definition basicacpi.h:405
struct _acpi_apic_header_ acpiApicHeader
void AuACPIShutdown()
Definition basicacpi.cpp:63
void(* entry)(void *)
Definition process.h:98
Definition basicacpi.h:151
char oemTableId[8]
Definition basicacpi.h:157
unsigned char checksum
Definition basicacpi.h:155
char signature[4]
Definition basicacpi.h:152
unsigned creatorId
Definition basicacpi.h:159
char oemId[6]
Definition basicacpi.h:156
unsigned length
Definition basicacpi.h:153
unsigned oemRevision
Definition basicacpi.h:158
unsigned creatorRevision
Definition basicacpi.h:160
unsigned char revision
Definition basicacpi.h:154
Definition basicacpi.h:411
uint64_t reserved2
Definition basicacpi.h:419
uint64_t length
Definition basicacpi.h:416
uint16_t reserved
Definition basicacpi.h:414
uint32_t flags
Definition basicacpi.h:418
uint64_t base_address
Definition basicacpi.h:415
acpi_sub_table header
Definition basicacpi.h:412
uint32_t reserved1
Definition basicacpi.h:417
uint32_t proximity_domain
Definition basicacpi.h:413
Definition basicacpi.h:392
uint8_t type
Definition basicacpi.h:393
uint8_t length
Definition basicacpi.h:394
Definition basicacpi.h:384
uint64_t Reserved
Definition basicacpi.h:387
uint32_t TableRevision
Definition basicacpi.h:386
acpiSysDescHeader Header
Definition basicacpi.h:385
Definition basicacpi.h:375
uint32_t interrupt
Definition basicacpi.h:379
acpiApicHeader header
Definition basicacpi.h:376
uint16_t flags
Definition basicacpi.h:380
uint8_t bus
Definition basicacpi.h:377
uint8_t source
Definition basicacpi.h:378
Standard kernel ACPI header for kernel use only.
Definition basicacpi.h:362
acpiMadt * madt
Definition basicacpi.h:364
uint16_t slp_typa
Definition basicacpi.h:369
uint16_t slp_typb
Definition basicacpi.h:370
acpiMcfg * mcfg
Definition basicacpi.h:368
acpiFadt * fadt
Definition basicacpi.h:365
acpiDsdt * dsdt
Definition basicacpi.h:367
uint8_t num_cpu
Definition basicacpi.h:371
acpiFacs * facs
Definition basicacpi.h:366
unsigned char revision
Definition basicacpi.h:363
ACPI version 1.0 structures.
Definition basicacpi.h:137
uint64_t xsdtAddr
Definition basicacpi.h:145
unsigned char revision
Definition basicacpi.h:141
char oemId[6]
Definition basicacpi.h:140
unsigned char res[3]
Definition basicacpi.h:147
unsigned char checksum
Definition basicacpi.h:139
char signature[8]
Definition basicacpi.h:138
unsigned length
Definition basicacpi.h:144
unsigned rsdtAddr
Definition basicacpi.h:142
unsigned char xChecksum
Definition basicacpi.h:146
Definition basicacpi.h:341
acpiSysDescHeader header
Definition basicacpi.h:342
unsigned char cmosIndex
Definition basicacpi.h:343
Definition basicacpi.h:319
acpiSysDescHeader header
Definition basicacpi.h:320
Firmware ACPI Control structure.
Definition basicacpi.h:301
unsigned hardwareSig
Definition basicacpi.h:304
unsigned flags
Definition basicacpi.h:307
unsigned ospmFlags
Definition basicacpi.h:313
unsigned char version
Definition basicacpi.h:310
uint64_t xWakingVector
Definition basicacpi.h:309
unsigned wakingVector
Definition basicacpi.h:305
unsigned globalLock
Definition basicacpi.h:306
unsigned length
Definition basicacpi.h:303
Definition basicacpi.h:243
unsigned pm1bCtrlBlock
Definition basicacpi.h:258
unsigned char pm1EventBlockLen
Definition basicacpi.h:263
unsigned char resetValue
Definition basicacpi.h:284
unsigned char genEvent0BlockLen
Definition basicacpi.h:267
unsigned char dutyOffset
Definition basicacpi.h:275
acpiGenAddr xPmTimerBlock
Definition basicacpi.h:293
uint64_t xFacsAddr
Definition basicacpi.h:286
unsigned short flushStride
Definition basicacpi.h:274
unsigned facsAddr
Definition basicacpi.h:245
acpiGenAddr xPm1bCtrlBlock
Definition basicacpi.h:291
unsigned char intMode
Definition basicacpi.h:247
unsigned char dutyAlarm
Definition basicacpi.h:277
unsigned char pmTimerBlockLen
Definition basicacpi.h:266
unsigned char pm1CtrlBlockLen
Definition basicacpi.h:264
unsigned char dutyWidth
Definition basicacpi.h:276
unsigned dsdtAddr
Definition basicacpi.h:246
unsigned short flushSize
Definition basicacpi.h:273
unsigned genEvent1Block
Definition basicacpi.h:262
acpiGenAddr xPm1bEventBlock
Definition basicacpi.h:289
unsigned char century
Definition basicacpi.h:278
unsigned pm2CtrlBlock
Definition basicacpi.h:259
unsigned flags
Definition basicacpi.h:281
unsigned char acpiEnable
Definition basicacpi.h:251
acpiSysDescHeader header
Definition basicacpi.h:244
acpiGenAddr xPm2CtrlBlock
Definition basicacpi.h:292
unsigned char res3
Definition basicacpi.h:270
uint64_t xDsdtAddr
Definition basicacpi.h:287
unsigned char pm2CtrlBlockLen
Definition basicacpi.h:265
unsigned char genEvent1BlockLen
Definition basicacpi.h:268
unsigned pmTimerBlock
Definition basicacpi.h:260
acpiGenAddr resetReg
Definition basicacpi.h:283
acpiGenAddr xPm1aCtrlBlock
Definition basicacpi.h:290
unsigned genEvent0Block
Definition basicacpi.h:261
unsigned char acpiDisable
Definition basicacpi.h:252
unsigned char res1
Definition basicacpi.h:248
unsigned short c2Latency
Definition basicacpi.h:271
unsigned char genEvent1Bbase
Definition basicacpi.h:269
acpiGenAddr xPm1aEventBlock
Definition basicacpi.h:288
unsigned short sciInt
Definition basicacpi.h:249
unsigned short bootArch
Definition basicacpi.h:279
unsigned pm1aEventBlock
Definition basicacpi.h:255
acpiGenAddr xGenEvent0Block
Definition basicacpi.h:294
unsigned sciCmdPort
Definition basicacpi.h:250
unsigned pm1aCtrlBlock
Definition basicacpi.h:257
unsigned char s4BiosReq
Definition basicacpi.h:253
acpiGenAddr xGenEvent1Block
Definition basicacpi.h:295
unsigned short c3Latency
Definition basicacpi.h:272
unsigned char res2
Definition basicacpi.h:254
unsigned pm1bEventBlock
Definition basicacpi.h:256
Definition basicacpi.h:185
uint16_t SPEOverflowInterrupt
Definition basicacpi.h:202
uint16_t TRBEInterrupt
Definition basicacpi.h:203
uint32_t cpuInterfaceNumber
Definition basicacpi.h:188
uint64_t gicv
Definition basicacpi.h:195
uint32_t performanceGSI
Definition basicacpi.h:192
uint64_t gich
Definition basicacpi.h:196
uint64_t physicalBaseAddress
Definition basicacpi.h:194
uint32_t parkingProtocolVersion
Definition basicacpi.h:191
uint8_t reserved2
Definition basicacpi.h:201
uint32_t acpiProcessorUID
Definition basicacpi.h:189
uint64_t mpidr
Definition basicacpi.h:199
uint32_t vgicMaintenanceInterrupt
Definition basicacpi.h:197
uint64_t parkedAddress
Definition basicacpi.h:193
uint8_t processorPowerEfficiencyClass
Definition basicacpi.h:200
uint32_t flags
Definition basicacpi.h:190
uint16_t reserved1
Definition basicacpi.h:187
uint64_t gicrBaseAddress
Definition basicacpi.h:198
acpiApicHeader header
Definition basicacpi.h:186
Definition basicacpi.h:206
acpiApicHeader header
Definition basicacpi.h:207
uint32_t gicID
Definition basicacpi.h:209
uint32_t systemVectorBase
Definition basicacpi.h:211
uint8_t gicVersion
Definition basicacpi.h:212
uint16_t reserved01
Definition basicacpi.h:208
uint64_t physicalBaseAddress
Definition basicacpi.h:210
Definition basicacpi.h:215
uint64_t physicalBaseAddress
Definition basicacpi.h:219
uint16_t spiCount
Definition basicacpi.h:221
acpiApicHeader header
Definition basicacpi.h:216
uint32_t gicMSIFrameID
Definition basicacpi.h:218
uint16_t spiBase
Definition basicacpi.h:222
uint32_t flags
Definition basicacpi.h:220
uint16_t reserved
Definition basicacpi.h:217
source from Visopsys Operating System
Definition basicacpi.h:127
uint64_t address
Definition basicacpi.h:132
unsigned char addrSize
Definition basicacpi.h:131
unsigned char addrSpaceId
Definition basicacpi.h:128
unsigned char regBitWidth
Definition basicacpi.h:129
unsigned char regBitOffset
Definition basicacpi.h:130
Definition basicacpi.h:226
unsigned gsiBase
Definition basicacpi.h:231
unsigned char ioApicId
Definition basicacpi.h:228
unsigned int ioApicAddr
Definition basicacpi.h:230
acpiApicHeader header
Definition basicacpi.h:227
unsigned char res
Definition basicacpi.h:229
Definition basicacpi.h:326
acpiApicHeader header
Definition basicacpi.h:327
uint64_t address
Definition basicacpi.h:331
uint8_t reserved
Definition basicacpi.h:329
uint32_t global_irq_base
Definition basicacpi.h:330
uint8_t id
Definition basicacpi.h:328
Definition basicacpi.h:178
unsigned flags
Definition basicacpi.h:182
acpiApicHeader header
Definition basicacpi.h:179
unsigned char lapicId
Definition basicacpi.h:181
unsigned char procId
Definition basicacpi.h:180
Definition basicacpi.h:235
unsigned flags
Definition basicacpi.h:238
unsigned localApicAddr
Definition basicacpi.h:237
acpiSysDescHeader header
Definition basicacpi.h:236
Definition basicacpi.h:352
uint32_t reserved
Definition basicacpi.h:357
uint64_t baseAddress
Definition basicacpi.h:353
uint8_t endBusNum
Definition basicacpi.h:356
uint16_t pciSegment
Definition basicacpi.h:354
uint8_t startBusNum
Definition basicacpi.h:355
Definition basicacpi.h:347
acpiSysDescHeader header
Definition basicacpi.h:348
Root System Descriptor Table.
Definition basicacpi.h:166
acpiSysDescHeader header
Definition basicacpi.h:167
Definition basicacpi.h:335
acpiSysDescHeader header
Definition basicacpi.h:336