23 #include "Filesystem.h" 24 #include "pedigree/kernel/compiler.h" 25 #include "pedigree/kernel/processor/types.h" 26 #include "pedigree/kernel/utilities/HashTable.h" 27 #include "pedigree/kernel/utilities/List.h" 28 #include "pedigree/kernel/utilities/LruCache.h" 29 #include "pedigree/kernel/utilities/String.h" 30 #include "pedigree/kernel/utilities/Tree.h" 31 #include "pedigree/kernel/utilities/utility.h" 39 #define VFS_WITH_LRU_CACHES 0 61 typedef void (*MountCallback)();
72 static VFS &instance();
83 void addAlias(
const String &oldAlias,
const String &newAlias);
89 bool aliasExists(
const String &alias);
106 void removeAlias(
const String &alias);
110 void removeAllAliases(
Filesystem *pFs,
bool canDelete=
true);
122 bool createFile(
const String &path, uint32_t mask,
File *pStartNode = 0);
126 createDirectory(
const String &path, uint32_t mask,
File *pStartNode = 0);
133 bool createLink(
const String &path,
File *target,
File *pStartNode = 0);
137 bool remove(
const String &path,
File *pStartNode = 0);
145 void addMountCallback(MountCallback callback);
149 checkAccess(
File *pFile,
bool bRead,
bool bWrite,
bool bExecute);
158 ssize_t findColon(
const String &path);
166 AliasTable m_Aliases;
HashTable< String, Filesystem *, HashedStringView > AliasTable
Tree< Filesystem *, List< String * > * > & getMounts()
AliasTable & getAliases()
Filesystem *(* ProbeCallback)(Disk *)
static constexpr const char * mountSeparator()
static File * m_EmptyFile