/* * Copyright (c) 2026, Chloe M. * Provided under the BSD-3 clause. * * Description: Boot protocol abstraction layer * Author: Chloe M. */ #include #include #include #ifndef _BOOT_PROTO #error "Boot protocol must be defined" #else #define BOOT_PROTO _BOOT_PROTO #endif /* !_BOOT_PROTO */ static BPAL_HANDLE BpalHandle; VOID KeBpalGetHandle(BPAL_HANDLE *Result) { if (Result == NULL) { return; } *Result = BpalHandle; } VOID KeBpalInit(VOID) { const CHAR *BootProto = BOOT_PROTO; switch (*BootProto) { case 'l': if (RtlMemCmp(BootProto, "limine", 6) == 0) { KeBpalLimineInit(&BpalHandle); return; } } /* TODO: PANIC HERE */ }