Kernel: Use Forward.h headers more

This commit is contained in:
Andreas Kling 2021-07-11 11:49:16 +02:00
parent 47bfd366a8
commit 98080497d2
Notes: sideshowbarker 2024-07-18 09:20:28 +09:00
18 changed files with 52 additions and 88 deletions

View file

@ -16,22 +16,20 @@
#include <Kernel/Arch/x86/DescriptorTable.h>
#include <Kernel/Arch/x86/PageDirectory.h>
#include <Kernel/Arch/x86/TSS.h>
#include <Kernel/Forward.h>
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);

View file

@ -13,8 +13,6 @@
namespace Kernel {
class Process;
class CoreDump {
public:
static OwnPtr<CoreDump> create(NonnullRefPtr<Process>, const String& output_path);

View file

@ -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;

View file

@ -10,6 +10,7 @@
#include <AK/RefPtr.h>
#include <AK/StringView.h>
#include <Kernel/FileSystem/InodeIdentifier.h>
#include <Kernel/Forward.h>
#include <Kernel/KResult.h>
#include <Kernel/Lock.h>
#include <Kernel/UnixTypes.h>
@ -19,11 +20,6 @@ namespace Kernel {
static constexpr u32 mepoch = 476763780;
class Inode;
class FileDescription;
class LocalSocket;
class VMObject;
class FileSystem : public RefCounted<FileSystem> {
friend class Inode;

View file

@ -1,20 +0,0 @@
/*
* Copyright (c) 2018-2021, Andreas Kling <kling@serenityos.org>
*
* 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;
}

View file

@ -14,11 +14,10 @@
#include <AK/NonnullOwnPtr.h>
#include <Kernel/API/InodeWatcherEvent.h>
#include <Kernel/FileSystem/File.h>
#include <Kernel/Forward.h>
namespace Kernel {
class Inode;
// A specific description of a watch.
struct WatchDescription {
int wd;

View file

@ -7,7 +7,7 @@
#pragma once
#include <AK/NonnullRefPtr.h>
#include <Kernel/FileSystem/Forward.h>
#include <Kernel/Forward.h>
namespace Kernel {

View file

@ -10,17 +10,13 @@
#include <AK/Types.h>
#include <Kernel/FileSystem/FileSystem.h>
#include <Kernel/FileSystem/Inode.h>
#include <Kernel/Forward.h>
#include <Kernel/KBufferBuilder.h>
#include <Kernel/Lock.h>
#include <Kernel/ProcessExposed.h>
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;
};
}

View file

@ -13,7 +13,7 @@
#include <AK/Types.h>
#include <Kernel/FileSystem/File.h>
#include <Kernel/FileSystem/FileSystem.h>
#include <Kernel/FileSystem/Forward.h>
#include <Kernel/Forward.h>
#include <Kernel/KResult.h>
namespace Kernel {

View file

@ -17,15 +17,12 @@
#include <Kernel/FileSystem/InodeIdentifier.h>
#include <Kernel/FileSystem/InodeMetadata.h>
#include <Kernel/FileSystem/Mount.h>
#include <Kernel/Forward.h>
#include <Kernel/KResult.h>
#include <Kernel/UnveilNode.h>
namespace Kernel {
class Custody;
class Device;
class FileDescription;
struct UidAndGid {
uid_t uid;
gid_t gid;

View file

@ -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<typename BaseType>
class SpinLock;
class RecursiveSpinLock;
template<typename LockType>
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<typename BaseType>
class SpinLock;
template<typename LockType>
class ScopedSpinLock;
template<typename T>
class KResultOr;
struct InodeMetadata;
struct TrapFrame;
}

View file

@ -231,8 +231,6 @@ UNMAP_AFTER_INIT ProcFSNetworkDirectory::ProcFSNetworkDirectory(const ProcFSRoot
{
}
class ProcFSSystemDirectory;
class ProcFSDumpKmallocStacks : public ProcFSSystemBoolean {
public:
static NonnullRefPtr<ProcFSDumpKmallocStacks> must_create(const ProcFSSystemDirectory&);

View file

@ -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<Process> m_associated_process;
};
class ProcFSRootDirectory;
class ProcFSBusDirectory : public ProcFSExposedDirectory {
friend class ProcFSComponentRegistry;

View file

@ -10,15 +10,13 @@
#include <AK/Function.h>
#include <AK/IntrusiveList.h>
#include <AK/Types.h>
#include <Kernel/Forward.h>
#include <Kernel/SpinLock.h>
#include <Kernel/Time/TimeManagement.h>
#include <Kernel/UnixTypes.h>
namespace Kernel {
class Process;
class Thread;
class WaitQueue;
struct RegisterState;
extern Thread* g_finalizer;

View file

@ -11,6 +11,7 @@
#include <AK/NonnullRefPtrVector.h>
#include <AK/String.h>
#include <Kernel/Arch/x86/PageFault.h>
#include <Kernel/Arch/x86/TrapFrame.h>
#include <Kernel/Forward.h>
#include <Kernel/SpinLock.h>
#include <Kernel/VM/AllocationStrategy.h>

View file

@ -9,13 +9,12 @@
#include <AK/HashMap.h>
#include <AK/RefCounted.h>
#include <AK/RefPtr.h>
#include <Kernel/Forward.h>
#include <Kernel/VM/PhysicalPage.h>
#include <Kernel/VM/RangeAllocator.h>
namespace Kernel {
class Process;
class PageDirectory : public RefCounted<PageDirectory> {
friend class MemoryManager;

View file

@ -11,6 +11,7 @@
#include <AK/WeakPtr.h>
#include <AK/Weakable.h>
#include <Kernel/Arch/x86/PageFault.h>
#include <Kernel/Forward.h>
#include <Kernel/Heap/SlabAllocator.h>
#include <Kernel/KString.h>
#include <Kernel/Sections.h>
@ -21,9 +22,6 @@
namespace Kernel {
class Inode;
class VMObject;
enum class ShouldFlushTLB {
No,
Yes,

View file

@ -12,13 +12,11 @@
#include <AK/RefPtr.h>
#include <AK/Vector.h>
#include <AK/Weakable.h>
#include <Kernel/Forward.h>
#include <Kernel/Lock.h>
namespace Kernel {
class Inode;
class PhysicalPage;
class VMObjectDeletedHandler {
public:
virtual ~VMObjectDeletedHandler() = default;