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