Lines Matching defs:rsdt
71 acpi_validate_rsdt(acpi_descriptor_header* rsdt)
73 const char* data = (const char*)rsdt;
75 for (uint32 i = 0; i < rsdt->length; i++)
92 TRACE(("acpi: rsdp points to rsdt at 0x%lx\n", rsdp->rsdt_address));
95 acpi_descriptor_header* rsdt = NULL;
98 rsdt = (acpi_descriptor_header*)mmu_map_physical_memory(
100 if (rsdt != NULL
101 && strncmp(rsdt->signature, ACPI_XSDT_SIGNATURE, 4) != 0) {
102 mmu_free(rsdt, rsdp->xsdt_length);
103 rsdt = NULL;
111 if (rsdt == NULL) {
113 rsdt = (acpi_descriptor_header*)mmu_map_physical_memory(
116 if (rsdt == NULL) {
117 TRACE(("acpi: couldn't map rsdt header\n"));
120 if (strncmp(rsdt->signature, ACPI_RSDT_SIGNATURE, 4) != 0) {
121 mmu_free(rsdt, sizeof(acpi_descriptor_header));
122 rsdt = NULL;
127 length = rsdt->length;
129 TRACE(("acpi: rsdt length: %lu\n", length));
130 mmu_free(rsdt, sizeof(acpi_descriptor_header));
131 rsdt = (acpi_descriptor_header*)mmu_map_physical_memory(
135 if (rsdt != NULL) {
136 if (acpi_validate_rsdt(rsdt) != B_OK) {
137 ERROR("acpi: %.4s failed checksum validation\n", rsdt->signature);
140 sAcpiXsdt = rsdt;
142 sAcpiRsdt = rsdt;
143 TRACE(("acpi: found %.4s at %p\n", rsdt->signature, rsdt));