/* * Copyright (c) 2021, Nico Weber * * SPDX-License-Identifier: BSD-2-Clause */ #include #include #include #include #include #include #include #include #include #include #include #include // Scheduler namespace Kernel { READONLY_AFTER_INIT Thread* g_finalizer; RecursiveSpinlock g_scheduler_lock { LockRank::None }; } // Random namespace Kernel { void get_fast_random_bytes(Bytes) { VERIFY_NOT_REACHED(); } } // Mutex namespace Kernel { void Mutex::lock(Mode, [[maybe_unused]] LockLocation const& location) { VERIFY_NOT_REACHED(); } void Mutex::unlock() { VERIFY_NOT_REACHED(); } } // Process namespace Kernel { SpinlockProtected& Process::all_instances() { VERIFY_NOT_REACHED(); } } // LockRank namespace Kernel { void track_lock_acquire(LockRank) { } void track_lock_release(LockRank) { } } // Inode namespace Kernel { static Singleton> s_all_instances; SpinlockProtected& Inode::all_instances() { VERIFY_NOT_REACHED(); return s_all_instances; } LockRefPtr Inode::shared_vmobject() const { VERIFY_NOT_REACHED(); return LockRefPtr(nullptr); } void Inode::will_be_destroyed() { VERIFY_NOT_REACHED(); } ErrorOr Inode::set_shared_vmobject(Memory::SharedInodeVMObject&) { VERIFY_NOT_REACHED(); return {}; } } // UserOrKernelBuffer.cpp namespace Kernel { ErrorOr UserOrKernelBuffer::write(void const*, size_t, size_t) { VERIFY_NOT_REACHED(); return {}; } ErrorOr UserOrKernelBuffer::read(void*, size_t, size_t) const { VERIFY_NOT_REACHED(); return {}; } } // x86 init multiboot_module_entry_t multiboot_copy_boot_modules_array[16]; size_t multiboot_copy_boot_modules_count; extern "C" { READONLY_AFTER_INIT PhysicalAddress start_of_prekernel_image; READONLY_AFTER_INIT PhysicalAddress end_of_prekernel_image; READONLY_AFTER_INIT size_t physical_to_virtual_offset; // READONLY_AFTER_INIT FlatPtr kernel_mapping_base; READONLY_AFTER_INIT FlatPtr kernel_load_base; #if ARCH(X86_64) READONLY_AFTER_INIT PhysicalAddress boot_pml4t; #endif READONLY_AFTER_INIT PhysicalAddress boot_pdpt; READONLY_AFTER_INIT PhysicalAddress boot_pd0; READONLY_AFTER_INIT PhysicalAddress boot_pd_kernel; READONLY_AFTER_INIT Kernel::PageTableEntry* boot_pd_kernel_pt1023; READONLY_AFTER_INIT char const* kernel_cmdline; READONLY_AFTER_INIT u32 multiboot_flags; READONLY_AFTER_INIT multiboot_memory_map_t* multiboot_memory_map; READONLY_AFTER_INIT size_t multiboot_memory_map_count; READONLY_AFTER_INIT multiboot_module_entry_t* multiboot_modules; READONLY_AFTER_INIT size_t multiboot_modules_count; READONLY_AFTER_INIT PhysicalAddress multiboot_framebuffer_addr; READONLY_AFTER_INIT u32 multiboot_framebuffer_pitch; READONLY_AFTER_INIT u32 multiboot_framebuffer_width; READONLY_AFTER_INIT u32 multiboot_framebuffer_height; READONLY_AFTER_INIT u8 multiboot_framebuffer_bpp; READONLY_AFTER_INIT u8 multiboot_framebuffer_type; } extern "C" { FlatPtr kernel_mapping_base; }