FUSEVolume
FUSEVolume* volume = new(std::nothrow) FUSEVolume(this, id);
FUSEVolume::RemoveVNode(void* node, bool reenter)
FUSEVolume::DoIO(void* _node, void* _cookie, const IORequestInfo& requestInfo)
FUSEVolume::SetFlags(void* _node, void* _cookie, int flags)
FUSEVolume::FSync(void* _node)
FUSEVolume::ReadSymlink(void* _node, char* buffer, size_t bufferSize,
FUSEVolume::CreateSymlink(void* _dir, const char* name, const char* target,
FUSEVolume::Link(void* _dir, const char* name, void* _node)
FUSEVolume::Unlink(void* _dir, const char* name)
FUSEVolume::Rename(void* _oldDir, const char* oldName, void* _newDir,
struct FUSEVolume::DirCookie : fuse_file_info, RWLockable {
FUSEVolume::Access(void* _node, int mode)
FUSEVolume::ReadStat(void* _node, struct stat* st)
FUSEVolume::WriteStat(void* _node, const struct stat* st, uint32 mask)
FUSEVolume::Create(void* _dir, const char* name, int openMode, int mode,
FUSEVolume::Open(void* _node, int openMode, void** _cookie)
struct FUSEVolume::FileCookie : fuse_file_info, RWLockable {
FUSEVolume::Close(void* _node, void* _cookie)
FUSEVolume::FreeCookie(void* _node, void* _cookie)
struct FUSEVolume::AttrDirCookie : RWLockable {
FUSEVolume::Read(void* _node, void* _cookie, off_t pos, void* buffer,
FUSEVolume::Write(void* _node, void* _cookie, off_t pos, const void* buffer,
FUSEVolume::CreateDir(void* _dir, const char* name, int mode)
FUSEVolume::RemoveDir(void* _dir, const char* name)
FUSEVolume::OpenDir(void* _node, void** _cookie)
FUSEVolume::CloseDir(void* node, void* _cookie)
FUSEVolume::FreeDirCookie(void* _node, void* _cookie)
FUSEVolume::ReadDir(void* _node, void* _cookie, void* buffer, size_t bufferSize,
FUSEVolume::RewindDir(void* _node, void* _cookie)
FUSEVolume::OpenAttrDir(void* _node, void** _cookie)
FUSEVolume::CloseAttrDir(void* node, void* cookie)
FUSEVolume::FreeAttrDirCookie(void* _node, void* _cookie)
FUSEVolume::ReadAttrDir(void* _node, void* _cookie, void* buffer,
FUSEVolume::RewindAttrDir(void* _node, void* _cookie)
FUSEVolume::OpenAttr(void* _node, const char* name, int openMode,
FUSEVolume::CloseAttr(void* _node, void* _cookie)
FUSEVolume::FreeAttrCookie(void* _node, void* _cookie)
FUSEVolume::ReadAttr(void* _node, void* _cookie, off_t pos, void* buffer,
FUSEVolume::ReadAttrStat(void* _node, void* _cookie, struct stat* st)
FUSEVolume::_GenerateNodeID()
FUSEVolume::_GetNodeID(FUSENode* dir, const char* entryName, ino_t* _nodeID)
FUSEVolume::_GetNode(FUSENode* dir, const char* entryName, FUSENode** _node)
FUSEVolume::_InternalGetNode(FUSENode* dir, const char* entryName,
struct FUSEVolume::AttrCookie : RWLockable {
FUSEVolume::_PutNode(FUSENode* node)
FUSEVolume::_PutNodes(FUSENode* const* nodes, int32 count)
FUSEVolume::_RemoveEntry(FUSEEntry* entry)
FUSEVolume::_RemoveEntry(FUSENode* dir, const char* name)
FUSEVolume::_RenameEntry(FUSENode* oldDir, const char* oldName,
FUSEVolume::_LockNodeChain(FUSENode* node, bool lockParent, bool writeLock)
FUSEVolume::_UnlockNodeChain(FUSENode* node, bool parent, bool writeLock)
FUSEVolume::_UnlockNodeChainInternal(FUSENode* node, bool writeLock,
FUSEVolume::_LockNodeChains(FUSENode* node1, bool lockParent1, bool writeLock1,
FUSEVolume::_LockNodeChainsInternal(FUSENode* node1, bool lockParent1,
FUSEVolume::_UnlockNodeChains(FUSENode* node1, bool lockParent1,
FUSEVolume::_FindCommonAncestor(FUSENode* node1, FUSENode* node2,
FUSEVolume::_GetNodeAncestors(FUSENode* node, FUSENode** ancestors,
FUSEVolume::_BuildPath(FUSENode* dir, const char* entryName, char* path,
FUSEVolume::_BuildPath(FUSENode* node, char* path, size_t& pathLen)
FUSEVolume::_AddReadDirEntryLowLevel(void* _buffer, char* buf, size_t bufsize, const char* name,
FUSEVolume::_AddReadDirEntry(void* _buffer, const char* name,
FUSEVolume::_AddReadDirEntryGetDir(fuse_dirh_t handle, const char* name,
FUSEVolume::_AddReadDirEntryLowLevel(ReadDirBuffer* buffer, char* buf, size_t bufsize, const char* name,
FUSEVolume::_AddReadDirEntry(ReadDirBuffer* buffer, const char* name,
FUSEVolume::_InternalIO(FUSENode* node, FileCookie* cookie, const char* path,
struct FUSEVolume::ReadDirBuffer {
FUSEVolume* volume;
struct FUSEVolume::DirEntryCache {
ReadDirBuffer(FUSEVolume* volume, FUSENode* directory, DirCookie* cookie,
struct FUSEVolume::LockIterator {
FUSEVolume* volume;
LockIterator(FUSEVolume* volume, FUSENode* node, bool writeLock,
void SetTo(FUSEVolume* volume, FUSENode* node, bool writeLock,
struct FUSEVolume::RWLockableReadLocking {
RWLockableReadLocking(FUSEVolume* volume)
struct FUSEVolume::RWLockableWriteLocking {
RWLockableWriteLocking(FUSEVolume* volume)
struct FUSEVolume::RWLockableReadLocker
RWLockableReadLocker(FUSEVolume* volume, RWLockable* lockable)
struct FUSEVolume::RWLockableWriteLocker
RWLockableWriteLocker(FUSEVolume* volume, RWLockable* lockable)
struct FUSEVolume::NodeLocker {
NodeLocker(FUSEVolume* volume, FUSENode* node, bool parent, bool writeLock)
FUSEVolume* fVolume;
struct FUSEVolume::NodeReadLocker : NodeLocker {
NodeReadLocker(FUSEVolume* volume, FUSENode* node, bool parent)
struct FUSEVolume::NodeWriteLocker : NodeLocker {
NodeWriteLocker(FUSEVolume* volume, FUSENode* node, bool parent)
struct FUSEVolume::MultiNodeLocker {
MultiNodeLocker(FUSEVolume* volume, FUSENode* node1, bool lockParent1,
FUSEVolume* fVolume;
FUSEVolume::FUSEVolume(FUSEFileSystem* fileSystem, dev_t id)
FUSEVolume::~FUSEVolume()
FUSEVolume::Init()
FUSEVolume::Mount(const char* device, uint32 flags, const char* parameters,
FUSEVolume::Unmount()
FUSEVolume::Sync()
FUSEVolume::ReadFSInfo(fs_info* info)
FUSEVolume::Lookup(void* _dir, const char* entryName, ino_t* vnid)
FUSEVolume::GetVNodeName(void* _node, char* buffer, size_t bufferSize)
FUSEVolume::ReadVNode(ino_t vnid, bool reenter, void** _node, int* type,
FUSEVolume::WriteVNode(void* _node, bool reenter)
using UserlandFS::FUSEVolume;
class FUSEVolume : public Volume {
FUSEVolume(FUSEFileSystem* fileSystem,
virtual ~FUSEVolume();