#include "kapi/acpi.hpp" #include "kapi/memory.hpp" #include #include #include #include #include namespace kapi::acpi { auto root_system_description_pointer::oem_id() const noexcept -> std::string_view { return {m_oem_id.data(), m_oem_id.size()}; } auto root_system_description_pointer::revision() const noexcept -> std::uint8_t { return m_revision; } auto root_system_description_pointer::signature() const noexcept -> std::string_view { return {m_signature.data(), m_signature.size()}; } auto root_system_description_pointer::table_address() const noexcept -> memory::physical_address { auto raw = std::bit_cast(m_rsdt_address); return memory::physical_address{static_cast(raw)}; } auto root_system_description_pointer::validate() const noexcept -> bool { return validate_checksum({reinterpret_cast(this), sizeof(root_system_description_pointer)}); } auto extended_system_description_pointer::length() const noexcept -> kstd::units::bytes { return kstd::units::bytes{m_length}; } auto extended_system_description_pointer::table_address() const noexcept -> memory::physical_address { return memory::physical_address{std::bit_cast(m_xsdt_address)}; } auto extended_system_description_pointer::validate() const noexcept -> bool { return validate_checksum({reinterpret_cast(this), m_length}); } } // namespace kapi::acpi