/// lcrash entry point /// super awesome... #include #include #include #include #include #include #include #include #include "types.h" #include "lnxboot.h" #include "efi/efi.h" [[noreturn]] void entry64(struct boot_params* BootParams) { BootBootParams = BootParams; BootSetupInfo = (void*)BootParams + 0x1f1; // Notify the debugger that we're ready struct GdbDataBlock* GdbDataBlock = (struct GdbDataBlock*)0x100000; GdbDataBlock->KernelLoaded = true; GdbDataBlock->KernelBase = (void*)BootSetupInfo->code32_start; GdbDataBlock->Update++; // Parse the kernel command line CmdlineParse((c8*)( ((uptr)BootSetupInfo->cmd_line_ptr) |((uptr)BootBootParams->ext_cmd_line_ptr << 32))); // Initialize the physical memory manager if (PmemInitialize()) while (1) {} // Initialize the kernel heap if (KernelHeapInitialize()) while (1) {} // Initialize the extended debugging information block if (DebugInitialize()) while (1) {} // Initialize the virtual memory manager VmemInitialize(); // Initialize the system bus SysbusInitialize(); // Initialize EFI code if we had EFI EfiInitialize(); // Initialize ACPI code if we have ACPI AcpiInitialize(); // Initialize PCI code.. PciInitialize(); // Hang :) while (1) {} }