* Split the FSCapabilities bit mask into three bit masks for the FS, the
volume, and the vnodes, since we have three independent FS interface
structures, now. The latter is not supported in the kernel add-on, yet.
* Server:
- Temporarily removed some things from the build (the BeOS interface
and the cache implementations).
- Some WIP in HaikuKernelVolume and [haiku_]kernel_emu.{h,cpp}.
- Added HaikuKernelNode, which wraps fs_vnode for the client FS.
The server is still quite a bit away from being buildable again.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29323 a95241bf-73f2-0310-859d-f6bbb57e9c96
39 lines
777 B
C++
39 lines
777 B
C++
// FileSystem.h
|
|
|
|
#ifndef USERLAND_FS_FILE_SYSTEM_H
|
|
#define USERLAND_FS_FILE_SYSTEM_H
|
|
|
|
#include <fs_interface.h>
|
|
#include <SupportDefs.h>
|
|
|
|
#include "FSCapabilities.h"
|
|
|
|
namespace UserlandFS {
|
|
|
|
class Volume;
|
|
|
|
class FileSystem {
|
|
public:
|
|
FileSystem();
|
|
virtual ~FileSystem();
|
|
|
|
virtual status_t CreateVolume(Volume** volume, dev_t id) = 0;
|
|
virtual status_t DeleteVolume(Volume* volume) = 0;
|
|
|
|
void GetCapabilities(
|
|
FSCapabilities& capabilities) const
|
|
{ capabilities = fCapabilities; }
|
|
client_fs_type GetClientFSType() const
|
|
{ return fClientFSType; }
|
|
|
|
protected:
|
|
FSCapabilities fCapabilities;
|
|
client_fs_type fClientFSType;
|
|
};
|
|
|
|
} // namespace UserlandFS
|
|
|
|
using UserlandFS::FileSystem;
|
|
|
|
#endif // USERLAND_FS_FILE_SYSTEM_H
|