diff options
| author | Alexey Gavrilov <rebovas@yahoo.com> | 2024-03-26 13:51:05 +0700 |
|---|---|---|
| committer | Alexey Gavrilov <rebovas@yahoo.com> | 2024-03-26 13:51:05 +0700 |
| commit | e0bac2387b373316337b177fe8aa9851b0d5e870 (patch) | |
| tree | a829ca7f1b8b766700f32f975477d49535354c24 /drivers/acpi/acpi.cpp | |
| parent | 91b4d8fa6bed598e2969f16a7a953e293a1b7f89 (diff) | |
Implement MADT table
Diffstat (limited to 'drivers/acpi/acpi.cpp')
| -rw-r--r-- | drivers/acpi/acpi.cpp | 61 |
1 files changed, 0 insertions, 61 deletions
diff --git a/drivers/acpi/acpi.cpp b/drivers/acpi/acpi.cpp deleted file mode 100644 index 25dad9d..0000000 --- a/drivers/acpi/acpi.cpp +++ /dev/null @@ -1,61 +0,0 @@ -#include "acpi.h" - - -const char *Rsdp::signatureString = "RSD PTR "; -const uint8 Rsdp::validFieldRevision = 2; -const memAddr Rsdp::romAreaStart = 0xe0000; -const memAddr Rsdp::romAreaEnd = 0xfffff; -const memAddr Rsdp::ebdaAreaStart = 0x80000; -const memAddr Rsdp::ebdaAreaEnd = 0x803ff; -const uint8 Rsdp::checksunFieldSize = 20; -// Entry **Rsdt::entries = nullptr; - -Rsdt *Rsdp::getRsdt() const -{ - Rsdt *rsdtPtr = (Rsdt *)(rsdtAddress); - if(rsdtPtr == nullptr or checksumCheck()) return nullptr; - else return rsdtPtr; -}; - -Xsdt *Rsdp::getXsdt() const -{ - Xsdt *xsdtPtr = (Xsdt *)(xsdtAddress); - if(xsdtPtr == nullptr or checksumCheck()) return nullptr; - else return xsdtPtr; -}; - - -const uint32 DescHeader::getLength() const -{ - return length; -}; - -const Entry *Rsdt::getEntry(uint8 index) -{ - uint32 entriesAmount = (header.getLength() - sizeof(DescHeader)) / Entry::size; - - if(index >= entriesAmount - or entries == nullptr - or header.checksumCheck()) return nullptr; - else return ((const Entry **)&entries)[index]; -}; - -uint8 Rsdp::checksumCheck() const -{ - uint8 check = 0; - for(uint32 offset = 0; offset < checksunFieldSize; offset++) - { - check += *(uint8 *)((memAddr)this + offset); - } - return check; -}; - -uint8 DescHeader::checksumCheck() const -{ - uint8 check = 0; - for(uint32 offset = 0; offset < length; offset++) - { - check += *(uint8 *)((memAddr)this + offset); - } - return check; -}; |
