mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-11-21 23:20:20 +00:00
5dcf03ad9a
This device is a block device that allows a user to effectively treat an Inode as a block device. The static construction method is given an OpenFileDescription reference but validates that: - The description has a valid custody (so it's not some arbitrary file). Failing this requirement will yield EINVAL. - The description custody points to an Inode which is a regular file, as we only support (seekable) regular files. Failing this requirement will yield ENOTSUP. LoopDevice can be used to mount a regular file on the filesystem like other supported types of (physical) block devices.
104 lines
2 KiB
C++
104 lines
2 KiB
C++
/*
|
|
* Copyright (c) 2020, Andreas Kling <kling@serenityos.org>
|
|
*
|
|
* SPDX-License-Identifier: BSD-2-Clause
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#include <AK/DistinctNumeric.h>
|
|
#include <Kernel/API/POSIX/sys/types.h>
|
|
|
|
namespace Kernel {
|
|
|
|
enum class LockRank;
|
|
|
|
class BlockDevice;
|
|
class CharacterDevice;
|
|
class Coredump;
|
|
class Credentials;
|
|
class Custody;
|
|
class Device;
|
|
class DeviceControlDevice;
|
|
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 LoopDevice;
|
|
class Mutex;
|
|
class MasterPTY;
|
|
class Mount;
|
|
class PerformanceEventBuffer;
|
|
class ProcFS;
|
|
class ProcFSInode;
|
|
class Process;
|
|
class ProcessGroup;
|
|
class RAMFS;
|
|
template<LockRank Rank>
|
|
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<LockRank Rank>
|
|
class Spinlock;
|
|
template<typename LockType>
|
|
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);
|
|
|
|
}
|