#include #include #include #include #include #include #include #include uacpi_status uacpi_kernel_get_rsdp (uacpi_phys_addr* out_rsdp_address) { struct limine_hhdm_response* hhdm = limine_hhdm_request.response; struct limine_rsdp_response* rsdp = limine_rsdp_request.response; *out_rsdp_address = (uacpi_phys_addr)((uintptr_t)rsdp->address - (uintptr_t)hhdm->offset); return UACPI_STATUS_OK; } void* uacpi_kernel_map (uacpi_phys_addr addr, uacpi_size len) { (void)len; struct limine_hhdm_response* hhdm = limine_hhdm_request.response; return (void*)((uintptr_t)hhdm->offset + (uintptr_t)addr); } void uacpi_kernel_unmap (void* addr, uacpi_size len) { (void)addr; (void)len; } void uacpi_kernel_log (uacpi_log_level level, const uacpi_char* msg) { const char* prefix = NULL; switch (level) { case UACPI_LOG_DEBUG: prefix = "Debug"; break; case UACPI_LOG_TRACE: prefix = "Trace"; break; case UACPI_LOG_INFO: prefix = "Info"; break; case UACPI_LOG_WARN: prefix = "Warning"; break; case UACPI_LOG_ERROR: prefix = "Error"; break; } DEBUG ("%s %s", prefix, msg); }