/* * Copyright (c) 2026, Chloe M., et al * Provided under the BSD-3 clause. * * Description: System bringup core * Author: Chloe M. */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include /* Globals */ static KPCR BootstrapCore; static PROCESS *RootProcess; /* * Display the copyright for legal reasons */ static VOID Copyright(VOID) { TRACE("~ Plural Technology ~\n"); TRACE("Copyright (c) 2026, Chloe M., et al\n"); } /* * Initialize the first process */ static VOID InitializeRootProcess(VOID) { PT_STATUS Status; /* Create the client server runtime service */ Status = PsCreateProcess( "csrts.sys", 0, &RootProcess ); if (PT_ERROR(Status)) { KeBugCheck( BUGCHECK_MISC, "could not create csrts.sys process\n" ); } } /* * Starting here is where the world is brought up and system * components are initialized. */ VOID KiKernelInit(VOID) { /* Initialize the boot protocol abstraction layer */ KeBpalInit(); /* Initialize the serial driver */ HalSerialInit(); /* Display the copyright */ Copyright(); /* Initialize the boot video driver */ BootVidInit(); /* Initialize the boot video console */ BootVidInitCons(NULL); /* Initialize physical memory */ MmPmInit(); /* Phase 1 init of bootstrap core */ HalKpcrP1Init(&BootstrapCore); /* Initialize virtual memory */ MmVmInit(); /* Initialize ACPI */ AcpiInit(); /* Phase 2 init of bootstrap core */ HalKpcrP2Init(&BootstrapCore); /* Initialize the PBI manager */ ExPbiInit(); /* Initialize the root process */ InitializeRootProcess(); /* Prime the scheduler timer */ HalPrimeThreadTimer(SCHED_MIN_QUANTUM); for (;;) { HalCpuSpinWait(); } }