diff --git a/Kernel/Arch/x86/Processor.h b/Kernel/Arch/x86/Processor.h index 5d35c546de..857d3e8462 100644 --- a/Kernel/Arch/x86/Processor.h +++ b/Kernel/Arch/x86/Processor.h @@ -16,22 +16,20 @@ #include #include #include +#include namespace Kernel { +class ProcessorInfo; +class SchedulerPerProcessorData; +struct MemoryManagerData; +struct ProcessorMessageEntry; + #if ARCH(X86_64) # define MSR_FS_BASE 0xc0000100 # define MSR_GS_BASE 0xc0000101 #endif -class Thread; -class SchedulerPerProcessorData; -struct MemoryManagerData; -struct ProcessorMessageEntry; - -struct TrapFrame; -class ProcessorInfo; - // FIXME: Find a better place for these extern "C" void thread_context_first_enter(void); extern "C" void exit_kernel_thread(void); diff --git a/Kernel/CoreDump.h b/Kernel/CoreDump.h index 76b4ab111b..1bbb98bf45 100644 --- a/Kernel/CoreDump.h +++ b/Kernel/CoreDump.h @@ -13,8 +13,6 @@ namespace Kernel { -class Process; - class CoreDump { public: static OwnPtr create(NonnullRefPtr, const String& output_path); diff --git a/Kernel/FileSystem/DevFS.h b/Kernel/FileSystem/DevFS.h index 785aa75f96..b962998c6d 100644 --- a/Kernel/FileSystem/DevFS.h +++ b/Kernel/FileSystem/DevFS.h @@ -14,13 +14,6 @@ namespace Kernel { -class DevFSInode; -class DevFSDeviceInode; -class DevFSDirectoryInode; -class DevFSRootDirectoryInode; -class DevFSDevicesDirectoryInode; -class DevFSPtsDirectoryInode; -class Device; class DevFS final : public FileSystem { friend class DevFSInode; friend class DevFSRootDirectoryInode; diff --git a/Kernel/FileSystem/FileSystem.h b/Kernel/FileSystem/FileSystem.h index 2e39a35236..d440e4cfe9 100644 --- a/Kernel/FileSystem/FileSystem.h +++ b/Kernel/FileSystem/FileSystem.h @@ -10,6 +10,7 @@ #include #include #include +#include #include #include #include @@ -19,11 +20,6 @@ namespace Kernel { static constexpr u32 mepoch = 476763780; -class Inode; -class FileDescription; -class LocalSocket; -class VMObject; - class FileSystem : public RefCounted { friend class Inode; diff --git a/Kernel/FileSystem/Forward.h b/Kernel/FileSystem/Forward.h deleted file mode 100644 index 859af7747e..0000000000 --- a/Kernel/FileSystem/Forward.h +++ /dev/null @@ -1,20 +0,0 @@ -/* - * Copyright (c) 2018-2021, Andreas Kling - * - * SPDX-License-Identifier: BSD-2-Clause - */ - -#pragma once - -namespace Kernel { - -class FileSystem; -class Inode; -class Mount; -class SysFS; -class SysFSDirectoryInode; -class SysFSInode; -class VirtualFileSystem; -struct InodeMetadata; - -} diff --git a/Kernel/FileSystem/InodeWatcher.h b/Kernel/FileSystem/InodeWatcher.h index 01c0fa3528..3425554e95 100644 --- a/Kernel/FileSystem/InodeWatcher.h +++ b/Kernel/FileSystem/InodeWatcher.h @@ -14,11 +14,10 @@ #include #include #include +#include namespace Kernel { -class Inode; - // A specific description of a watch. struct WatchDescription { int wd; diff --git a/Kernel/FileSystem/Mount.h b/Kernel/FileSystem/Mount.h index 44397744cc..e4a8782971 100644 --- a/Kernel/FileSystem/Mount.h +++ b/Kernel/FileSystem/Mount.h @@ -7,7 +7,7 @@ #pragma once #include -#include +#include namespace Kernel { diff --git a/Kernel/FileSystem/ProcFS.h b/Kernel/FileSystem/ProcFS.h index d0cc2ffc41..fb9b4a7ead 100644 --- a/Kernel/FileSystem/ProcFS.h +++ b/Kernel/FileSystem/ProcFS.h @@ -10,17 +10,13 @@ #include #include #include +#include #include #include #include namespace Kernel { -class Process; - -class ProcFSInode; -class ProcFSDirectoryInode; - class ProcFS final : public FileSystem { friend class ProcFSInode; friend class ProcFSDirectoryInode; @@ -99,4 +95,5 @@ protected: ProcFS& m_parent_fs; }; + } diff --git a/Kernel/FileSystem/SysFSComponent.h b/Kernel/FileSystem/SysFSComponent.h index 7ed8d4d1bc..b645f86671 100644 --- a/Kernel/FileSystem/SysFSComponent.h +++ b/Kernel/FileSystem/SysFSComponent.h @@ -13,7 +13,7 @@ #include #include #include -#include +#include #include namespace Kernel { diff --git a/Kernel/FileSystem/VirtualFileSystem.h b/Kernel/FileSystem/VirtualFileSystem.h index c0820cc9ea..7e99b51fca 100644 --- a/Kernel/FileSystem/VirtualFileSystem.h +++ b/Kernel/FileSystem/VirtualFileSystem.h @@ -17,15 +17,12 @@ #include #include #include +#include #include #include namespace Kernel { -class Custody; -class Device; -class FileDescription; - struct UidAndGid { uid_t uid; gid_t gid; diff --git a/Kernel/Forward.h b/Kernel/Forward.h index abe758997c..08188be682 100644 --- a/Kernel/Forward.h +++ b/Kernel/Forward.h @@ -12,16 +12,23 @@ class BlockDevice; class CharacterDevice; class CoreDump; class Custody; +class DevFSDeviceInode; +class DevFSDirectoryInode; +class DevFSInode; +class DevFSPtsDirectoryInode; +class DevFSRootDirectoryInode; +class Device; class Device; class DiskCache; class DoubleBuffer; class File; class FileDescription; +class FileSystem; class FutexQueue; class IPv4Socket; class Inode; +class Inode; class InodeIdentifier; -class SharedInodeVMObject; class InodeWatcher; class KBuffer; class KResult; @@ -29,36 +36,55 @@ class LocalSocket; class Lock; class MappedROM; class MasterPTY; +class Mount; class PageDirectory; class PerformanceEventBuffer; class PhysicalPage; class PhysicalRegion; +class ProcFS; +class ProcFSBusDirectory; +class ProcFSDirectoryInode; +class ProcFSExposedComponent; +class ProcFSExposedDirectory; +class ProcFSInode; +class ProcFSProcessInformation; +class ProcFSRootDirectory; +class ProcFSSystemBoolean; +class ProcFSSystemDirectory; class Process; class ProcessGroup; -class ThreadTracer; class Range; class RangeAllocator; +class RecursiveSpinLock; class Region; class Scheduler; class SchedulerPerProcessorData; +class SharedInodeVMObject; class Socket; class Space; -template -class SpinLock; -class RecursiveSpinLock; -template -class ScopedSpinLock; +class SysFS; +class SysFSDirectoryInode; +class SysFSInode; class TCPSocket; class TTY; class Thread; +class ThreadTracer; class UDPSocket; class UserOrKernelBuffer; -class VirtualFileSystem; class VMObject; +class VirtualFileSystem; +class VirtualFileSystem; class WaitQueue; class WorkQueue; +template +class SpinLock; +template +class ScopedSpinLock; template class KResultOr; +struct InodeMetadata; +struct TrapFrame; + } diff --git a/Kernel/GlobalProcessExposed.cpp b/Kernel/GlobalProcessExposed.cpp index bd58e60610..22a03830c2 100644 --- a/Kernel/GlobalProcessExposed.cpp +++ b/Kernel/GlobalProcessExposed.cpp @@ -231,8 +231,6 @@ UNMAP_AFTER_INIT ProcFSNetworkDirectory::ProcFSNetworkDirectory(const ProcFSRoot { } -class ProcFSSystemDirectory; - class ProcFSDumpKmallocStacks : public ProcFSSystemBoolean { public: static NonnullRefPtr must_create(const ProcFSSystemDirectory&); diff --git a/Kernel/ProcessExposed.h b/Kernel/ProcessExposed.h index 6401eabb31..2c739978e6 100644 --- a/Kernel/ProcessExposed.h +++ b/Kernel/ProcessExposed.h @@ -21,13 +21,6 @@ namespace Kernel { -class ProcFS; -class ProcFSExposedComponent; -class ProcFSExposedDirectory; -class ProcFSRootDirectory; -class ProcFSBusDirectory; -class ProcFSSystemBoolean; - class ProcFSComponentRegistry { public: static ProcFSComponentRegistry& the(); @@ -130,9 +123,6 @@ protected: mutable Lock m_lock { "ProcFSLink" }; }; -class ProcFSRootDirectory; -class ProcFSProcessInformation; - class ProcFSProcessDirectory final : public ProcFSExposedDirectory { friend class ProcFSComponentRegistry; @@ -167,8 +157,6 @@ private: NonnullRefPtr m_associated_process; }; -class ProcFSRootDirectory; - class ProcFSBusDirectory : public ProcFSExposedDirectory { friend class ProcFSComponentRegistry; diff --git a/Kernel/Scheduler.h b/Kernel/Scheduler.h index 18dcd35cac..26d9adeecb 100644 --- a/Kernel/Scheduler.h +++ b/Kernel/Scheduler.h @@ -10,15 +10,13 @@ #include #include #include +#include #include #include #include namespace Kernel { -class Process; -class Thread; -class WaitQueue; struct RegisterState; extern Thread* g_finalizer; diff --git a/Kernel/VM/MemoryManager.h b/Kernel/VM/MemoryManager.h index 03a5b29fa8..d944a196b9 100644 --- a/Kernel/VM/MemoryManager.h +++ b/Kernel/VM/MemoryManager.h @@ -11,6 +11,7 @@ #include #include #include +#include #include #include #include diff --git a/Kernel/VM/PageDirectory.h b/Kernel/VM/PageDirectory.h index 6c02c03e12..2545f603cc 100644 --- a/Kernel/VM/PageDirectory.h +++ b/Kernel/VM/PageDirectory.h @@ -9,13 +9,12 @@ #include #include #include +#include #include #include namespace Kernel { -class Process; - class PageDirectory : public RefCounted { friend class MemoryManager; diff --git a/Kernel/VM/Region.h b/Kernel/VM/Region.h index 7fe7612a10..ed7bc9aff9 100644 --- a/Kernel/VM/Region.h +++ b/Kernel/VM/Region.h @@ -11,6 +11,7 @@ #include #include #include +#include #include #include #include @@ -21,9 +22,6 @@ namespace Kernel { -class Inode; -class VMObject; - enum class ShouldFlushTLB { No, Yes, diff --git a/Kernel/VM/VMObject.h b/Kernel/VM/VMObject.h index 64de251ef6..3c9cfbb831 100644 --- a/Kernel/VM/VMObject.h +++ b/Kernel/VM/VMObject.h @@ -12,13 +12,11 @@ #include #include #include +#include #include namespace Kernel { -class Inode; -class PhysicalPage; - class VMObjectDeletedHandler { public: virtual ~VMObjectDeletedHandler() = default;