1// BeOSKernelFileSystem.h 2 3#ifndef USERLAND_FS_BEOS_KERNEL_FILE_SYSTEM_H 4#define USERLAND_FS_BEOS_KERNEL_FILE_SYSTEM_H 5 6#include "../FileSystem.h" 7 8struct beos_vnode_ops; 9 10namespace UserlandFS { 11 12class BeOSKernelFileSystem : public FileSystem { 13public: 14 BeOSKernelFileSystem(const char* fsName, 15 beos_vnode_ops* fsOps); 16 virtual ~BeOSKernelFileSystem(); 17 18 status_t Init(); 19 20 virtual status_t CreateVolume(Volume** volume, dev_t id); 21 virtual status_t DeleteVolume(Volume* volume); 22 23 void GetVolumeCapabilities( 24 FSVolumeCapabilities& capabilities) const 25 { capabilities = fVolumeCapabilities; } 26 void GetNodeCapabilities( 27 FSVNodeCapabilities& capabilities) const 28 { capabilities = fNodeCapabilities; } 29 30private: 31 void _InitCapabilities(); 32 33private: 34 beos_vnode_ops* fFSOps; 35 FSVolumeCapabilities fVolumeCapabilities; 36 FSVNodeCapabilities fNodeCapabilities; 37 bool fBlockCacheInitialized; 38}; 39 40} // namespace UserlandFS 41 42using UserlandFS::BeOSKernelFileSystem; 43 44#endif // USERLAND_FS_BEOS_KERNEL_FILE_SYSTEM_H 45