The Pedigree Project 0.1
mach_virt/Acpi.h
1/* Copyright (c) 2026, Pedigree Developers. SPDX-License-Identifier: ISC */
2#ifndef KERNEL_MACHINE_VIRT_ACPI_H
3#define KERNEL_MACHINE_VIRT_ACPI_H
4
5#include "DeviceTree.h"
6
8 VirtPciHost pciHost;
9 VirtPciWindow pciWindows[8];
10 size_t pciWindowCount;
11 uint32_t pciIrq[32][4];
12 VirtMsiController msiController;
13 uintptr_t uart;
14 uintptr_t rtc;
15 uintptr_t gicDistributor;
16 uintptr_t gicCpu;
17 uintptr_t gicRedistributor;
18 uint32_t gicVersion;
19 uint32_t msiItsId;
20 uint32_t uartIrq;
21 uint32_t physicalTimerIrq;
22 uint32_t virtualTimerIrq;
23 bool pciMsiIdentity;
24 bool psciAvailable;
25 bool psciHvc;
26};
27
28bool virtParseAcpi(uint64_t rsdpPhysical, const BootstrapStruct_t::MemoryMapEntry* memoryMap,
29 size_t memoryMapCount, VirtAcpiInfo& info);
30
31#endif