/* * Copyright (c) 2020, Andreas Kling * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include #include namespace Kernel { enum class LockRank; class BlockDevice; class CharacterDevice; class Coredump; class Credentials; class Custody; class Device; class DiskCache; class DoubleBuffer; class File; class FATInode; class OpenFileDescription; class DisplayConnector; class FileSystem; class FutexQueue; class IPv4Socket; class Inode; class InodeIdentifier; class InodeWatcher; class MountFile; class Jail; class KBuffer; class KString; class LocalSocket; class Mutex; class MasterPTY; class Mount; class PerformanceEventBuffer; class ProcFS; class ProcFSInode; class Process; class ProcessGroup; class RAMFS; template class RecursiveSpinlock; class Scheduler; class Socket; class SysFS; class SysFSDirectory; class SysFSRootDirectory; class SysFSBusDirectory; class SysFSDevicesDirectory; class SysFSDirectoryInode; class SysFSInode; class TCPSocket; class TTY; class Thread; class ThreadTracer; class RAMFSInode; class UDPSocket; class UserOrKernelBuffer; class VirtualFileSystem; class WaitQueue; class WorkQueue; namespace Memory { class AddressSpace; class AnonymousVMObject; class InodeVMObject; class MappedROM; class MemoryManager; class PageDirectory; class PhysicalPage; class PhysicalRegion; class PrivateInodeVMObject; class Region; class SharedInodeVMObject; class VMObject; class VirtualRange; } template class Spinlock; template class SpinlockLocker; struct InodeMetadata; struct TrapFrame; AK_TYPEDEF_DISTINCT_ORDERED_ID(pid_t, ProcessID); AK_TYPEDEF_DISTINCT_ORDERED_ID(pid_t, ThreadID); AK_TYPEDEF_DISTINCT_ORDERED_ID(pid_t, SessionID); AK_TYPEDEF_DISTINCT_ORDERED_ID(pid_t, ProcessGroupID); AK_TYPEDEF_DISTINCT_ORDERED_ID(uid_t, UserID); AK_TYPEDEF_DISTINCT_ORDERED_ID(gid_t, GroupID); }