|
@@ -16,6 +16,7 @@
|
|
|
#include <Kernel/FileSystem/FileSystem.h>
|
|
|
#include <Kernel/FileSystem/InodeIdentifier.h>
|
|
|
#include <Kernel/FileSystem/InodeMetadata.h>
|
|
|
+#include <Kernel/FileSystem/Mount.h>
|
|
|
#include <Kernel/KResult.h>
|
|
|
#include <Kernel/UnveilNode.h>
|
|
|
|
|
@@ -33,31 +34,6 @@ struct UidAndGid {
|
|
|
class VirtualFileSystem {
|
|
|
AK_MAKE_ETERNAL
|
|
|
public:
|
|
|
- class Mount {
|
|
|
- public:
|
|
|
- Mount(FileSystem&, Custody* host_custody, int flags);
|
|
|
- Mount(Inode& source, Custody& host_custody, int flags);
|
|
|
-
|
|
|
- const Inode* host() const;
|
|
|
- Inode* host();
|
|
|
-
|
|
|
- const Inode& guest() const { return *m_guest; }
|
|
|
- Inode& guest() { return *m_guest; }
|
|
|
-
|
|
|
- FileSystem const& guest_fs() const { return *m_guest_fs; }
|
|
|
-
|
|
|
- String absolute_path() const;
|
|
|
-
|
|
|
- int flags() const { return m_flags; }
|
|
|
- void set_flags(int flags) { m_flags = flags; }
|
|
|
-
|
|
|
- private:
|
|
|
- NonnullRefPtr<Inode> m_guest;
|
|
|
- NonnullRefPtr<FileSystem> m_guest_fs;
|
|
|
- RefPtr<Custody> m_host_custody;
|
|
|
- int m_flags;
|
|
|
- };
|
|
|
-
|
|
|
static void initialize();
|
|
|
static VirtualFileSystem& the();
|
|
|
|