some cleanup

This commit is contained in:
Adrien Bourmault 2020-02-08 12:19:40 +01:00
parent 97f1c5f25d
commit 4ee95db32e
1 changed files with 11 additions and 25 deletions

View File

@ -28,9 +28,6 @@
#include <mm/paging.h>
#include <mm/map.h>
SDTHeader *AcpiSDT = NULL;
SDTHeader *AcpiFADT = NULL;
char IoACPIVersion = 1;
int tableCount = 1;
@ -94,15 +91,7 @@ static inline RSDPDescriptor *IoFindRSDP()
(ulong)rsdp < (ulong)0x0009FFFF; // EBDA end
rsdp++) {
if (rsdp[0] == 'R' &&
rsdp[1] == 'S' &&
rsdp[2] == 'D' &&
rsdp[3] == ' ' &&
rsdp[4] == 'P' &&
rsdp[5] == 'T' &&
rsdp[6] == 'R' &&
rsdp[7] == ' '
) {
if (!strncmp(rsdp, "RSD PTR", 6)) {
return (RSDPDescriptor *)rsdp;
}
}
@ -112,15 +101,7 @@ static inline RSDPDescriptor *IoFindRSDP()
(ulong)rsdp < (ulong)0x000FFFFF; // BDA end
rsdp++) {
if (rsdp[0] == 'R' &&
rsdp[1] == 'S' &&
rsdp[2] == 'D' &&
rsdp[3] == ' ' &&
rsdp[4] == 'P' &&
rsdp[5] == 'T' &&
rsdp[6] == 'R' &&
rsdp[7] == ' '
) {
if (!strncmp(rsdp, "RSD PTR", 6)) {
return (RSDPDescriptor *)rsdp;
}
}
@ -156,10 +137,10 @@ static inline void IoInitRSDP(void)
rsdp->legacy.OEMID
);
AcpiSDT = (void *)(ulong)rsdp->legacy.rsdtAddress;
SDTDirectory[SDT_RSDT] = (void *)(ulong)rsdp->legacy.rsdtAddress;
if (rsdp->legacy.revision) {
AcpiSDT = (void *)rsdp->xsdtAddress;
SDTDirectory[SDT_XSDT] = (void *)rsdp->xsdtAddress;
IoACPIVersion = 2;
}
}
@ -171,7 +152,11 @@ static inline void IoInitRXSDT(void)
{
char checksum = 1;
SDTHeader *rxsdt = AcpiSDT;
SDTHeader *rxsdt = SDTDirectory[SDT_RSDT];
if (IoACPIVersion == 2) {
rxsdt = SDTDirectory[SDT_XSDT];
}
/* // Checksum calculation */
checksum = DoChecksum(rxsdt, (size_t)rxsdt->length,
@ -204,7 +189,7 @@ static inline void IoInitRXSDT(void)
//
static inline void IoSearchAcpiTables(void)
{
SDTHeader *xrsdt = AcpiSDT;
SDTHeader *xrsdt = SDTDirectory[SDT_RSDT];
SDTHeader *table = NULL;
uint *curInt = NULL;
ulong *curLong = NULL;
@ -214,6 +199,7 @@ static inline void IoSearchAcpiTables(void)
if (IoACPIVersion == 1) {
entries = (xrsdt->length - sizeof(xrsdt)) / 4;
} else {
xrsdt = SDTDirectory[SDT_XSDT];
entries = (xrsdt->length - sizeof(xrsdt)) / 8;
}