/* * Copyright (c) 2026, Chloe M. * Provided under the BSD-3 clause. * * Description: Where your machine gets turned on~ * Author: Chloe M. */ #include #include #include #include #include #include #include #include #include #include #include #include #include #define DTRACE(Fmt, ...) \ TRACE("[ INIT ]: " Fmt, ##__VA_ARGS__) /* Globals */ static KPCR BootstrapCore; /* * Display a boot banner */ static VOID BootBanner(VOID) { TRACE("-- SystemPaw3 ~ %s --\n", ST_VERSION); DTRACE("booting SystemPaw3 !! <3\n"); } VOID KiKernelEntry(VOID) { /* Initialize the serial driver */ HalSerialInit(); /* Write the boot banner */ BootBanner(); /* Initialize BPAL */ KeBpalInit(); /* Initialize boot video */ BootVidInit(); /* Initialize the command line parser */ ExCmdLineInit(); /* Phase 1 initialization the bootstrap core */ HalKpcrP1Init(&BootstrapCore); /* Initialize the pre-boot image manager */ ExPbiInit(); /* * If the console is not enabled then we should show a * splash rather thann a black screen. */ if (!BootVidConsEn()) { BootVidSplash(); } /* Initialize physical memory */ MmInitPmm(); /* Initialize virtual memory */ MmInitVmm(); /* Initialize ACPI */ AcpiInit(); /* Phase 2 initialization of the bootstrap core */ HalKpcrP2Init(&BootstrapCore); /* Initialize the object manager */ ObInitManager(); }