12 VFSFileProvider *fileprovif;
20typedef struct VFSDirEnt {
27typedef struct VFSSearch {
38typedef struct VFSMount VFSMount;
39typedef struct VFSCacheEnt {
43VFSCacheEnt *_vfsCacheEntCreate(VFSMount *m, strref opath);
44extern STypeOps VFSCacheEnt_ops;
46typedef struct VFSDir VFSDir;
47typedef struct VFSDir {
60VFSDir *_vfsDirCreate(_Inout_
VFS *vfs, _In_opt_ VFSDir *parent);
61extern STypeOps VFSDir_ops;
66_When_(!writelockheld, _Requires_shared_lock_held_(vfs->vfslock))
67VFSDir *_vfsGetDir(_Inout_
VFS *vfs, _In_opt_ strref path,
bool isfile,
bool cache,
bool writelockheld);
71_When_(!writelockheld, _Requires_shared_lock_held_(vfs->vfslock))
72VFSCacheEnt *_vfsGetFile(_Inout_
VFS *vfs, _In_opt_ strref path,
bool writelockheld);
74enum VFS_FIND_PROVIDER_ENUM {
75 VFS_FindWriteFile = 0x0100,
76 VFS_FindCreate = 0x0200,
77 VFS_FindDelete = 0x0400,
78 VFS_FindCache = 0x1000,
81VFSMount *_vfsFindMount(_Inout_
VFS *vfs, _Inout_
string *rpath, _In_opt_ strref path, _Out_opt_ VFSMount **cowmount, _Inout_opt_
string *cowrpath, flags_t flags);
82void _vfsInvalidateCache(_Inout_
VFS *vfs, _In_opt_ strref path);
83void _vfsInvalidateRecursive(_Inout_
VFS *vfs, _In_ VFSDir *dir,
bool havelock);
84void _vfsAbsPath(_Inout_
VFS *vfs, _Inout_
string *out, _In_opt_ strref path);
86_Requires_shared_lock_held_(vfs->vfslock)
87int _vfsFindCIHelper(_Inout_
VFS *vfs, _In_ VFSDir *vdir, _Inout_
string *out, _In_ sa_string components, _Inout_ VFSMount *mount, _Inout_ VFSProvider *provif);
89bool _vfsAddPlatformSpecificMounts(_Inout_
VFS *vfs);
90bool _vfsIsPlatformCaseSensitive();
Generic type-safe containers with runtime type system integration.
Copy-on-write strings with automatic memory management and rope optimization.