/* * Copyright (c) 2026, Chloe M. * Provided under the BSD-3 clause. * * Description: Boot protocol abstraction layer * Author: Chloe M. */ #include #include #include #define DTRACE(Fmt, ...) \ TRACE("[ BPAL ]: " Fmt, ##__VA_ARGS__) /* Bootloader information */ static struct limine_bootloader_info_response *LoaderInfoResp = NULL; static volatile struct limine_bootloader_info_request LoaderInfoReq = { .id = LIMINE_BOOTLOADER_INFO_REQUEST_ID, .revision = 0 }; /* Bootloader perf information */ static struct limine_bootloader_performance_response *LoaderPerfResp = NULL; static struct limine_bootloader_performance_request LoaderPerReq = { .id = LIMINE_BOOTLOADER_PERFORMANCE_REQUEST_ID, .revision = 0 }; VOID KeBpalLimineInit(VOID) { LoaderInfoResp = LoaderInfoReq.response; LoaderPerfResp = LoaderPerReq.response; DTRACE( "slut handed control by %s %s\n", LoaderInfoResp->name, LoaderInfoResp->version ); DTRACE( "loader took %d usec\n", LoaderPerfResp->init_usec ); DTRACE( "handoff took %d usec\n", LoaderPerfResp->exec_usec ); }