Pass the file system name to the FileSystem base class and store it there.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29610 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -10,8 +10,10 @@ FileSystem* FileSystem::sInstance = NULL;
|
|||||||
|
|
||||||
|
|
||||||
// constructor
|
// constructor
|
||||||
FileSystem::FileSystem()
|
FileSystem::FileSystem(const char* fsName)
|
||||||
{
|
{
|
||||||
|
strlcpy(fName, fsName, sizeof(fName));
|
||||||
|
|
||||||
sInstance = this;
|
sInstance = this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -19,11 +19,13 @@ class Volume;
|
|||||||
|
|
||||||
class FileSystem {
|
class FileSystem {
|
||||||
public:
|
public:
|
||||||
FileSystem();
|
FileSystem(const char* fsName);
|
||||||
virtual ~FileSystem();
|
virtual ~FileSystem();
|
||||||
|
|
||||||
static FileSystem* GetInstance();
|
static FileSystem* GetInstance();
|
||||||
|
|
||||||
|
const char* GetName() const { return fName; }
|
||||||
|
|
||||||
virtual status_t CreateVolume(Volume** volume, dev_t id) = 0;
|
virtual status_t CreateVolume(Volume** volume, dev_t id) = 0;
|
||||||
virtual status_t DeleteVolume(Volume* volume) = 0;
|
virtual status_t DeleteVolume(Volume* volume) = 0;
|
||||||
|
|
||||||
@@ -45,6 +47,7 @@ protected:
|
|||||||
VolumeList fVolumes;
|
VolumeList fVolumes;
|
||||||
FSCapabilities fCapabilities;
|
FSCapabilities fCapabilities;
|
||||||
client_fs_type fClientFSType;
|
client_fs_type fClientFSType;
|
||||||
|
char fName[B_FILE_NAME_LENGTH];
|
||||||
|
|
||||||
static FileSystem* sInstance;
|
static FileSystem* sInstance;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -14,9 +14,10 @@ static const int32 kMaxBlockCacheBlocks = 16384;
|
|||||||
|
|
||||||
|
|
||||||
// constructor
|
// constructor
|
||||||
BeOSKernelFileSystem::BeOSKernelFileSystem(beos_vnode_ops* fsOps)
|
BeOSKernelFileSystem::BeOSKernelFileSystem(const char* fsName,
|
||||||
|
beos_vnode_ops* fsOps)
|
||||||
:
|
:
|
||||||
FileSystem(),
|
FileSystem(fsName),
|
||||||
fFSOps(fsOps),
|
fFSOps(fsOps),
|
||||||
fBlockCacheInitialized(false)
|
fBlockCacheInitialized(false)
|
||||||
{
|
{
|
||||||
@@ -250,7 +251,7 @@ userlandfs_create_file_system(const char* fsName, image_id image,
|
|||||||
|
|
||||||
// create the file system
|
// create the file system
|
||||||
BeOSKernelFileSystem* fileSystem
|
BeOSKernelFileSystem* fileSystem
|
||||||
= new(std::nothrow) BeOSKernelFileSystem(fsOps);
|
= new(std::nothrow) BeOSKernelFileSystem(fsName, fsOps);
|
||||||
if (!fileSystem)
|
if (!fileSystem)
|
||||||
RETURN_ERROR(B_NO_MEMORY);
|
RETURN_ERROR(B_NO_MEMORY);
|
||||||
|
|
||||||
|
|||||||
@@ -11,7 +11,8 @@ namespace UserlandFS {
|
|||||||
|
|
||||||
class BeOSKernelFileSystem : public FileSystem {
|
class BeOSKernelFileSystem : public FileSystem {
|
||||||
public:
|
public:
|
||||||
BeOSKernelFileSystem(beos_vnode_ops* fsOps);
|
BeOSKernelFileSystem(const char* fsName,
|
||||||
|
beos_vnode_ops* fsOps);
|
||||||
virtual ~BeOSKernelFileSystem();
|
virtual ~BeOSKernelFileSystem();
|
||||||
|
|
||||||
status_t Init();
|
status_t Init();
|
||||||
|
|||||||
@@ -114,9 +114,10 @@ private:
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
FUSEFileSystem::FUSEFileSystem(int (*mainFunction)(int, const char* const*))
|
FUSEFileSystem::FUSEFileSystem(const char* fsName,
|
||||||
|
int (*mainFunction)(int, const char* const*))
|
||||||
:
|
:
|
||||||
FileSystem(),
|
FileSystem(fsName),
|
||||||
fMainFunction(mainFunction)
|
fMainFunction(mainFunction)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
@@ -154,7 +155,7 @@ FUSEFileSystem::InitClientFS(const char* parameters)
|
|||||||
{
|
{
|
||||||
// parse the parameters
|
// parse the parameters
|
||||||
ArgumentVector args;
|
ArgumentVector args;
|
||||||
status_t error = args.Init("FUSE", parameters);
|
status_t error = args.Init(GetName(), parameters);
|
||||||
if (error != B_OK)
|
if (error != B_OK)
|
||||||
RETURN_ERROR(error);
|
RETURN_ERROR(error);
|
||||||
|
|
||||||
@@ -184,7 +185,8 @@ printf("userlandfs_create_file_system()\n");
|
|||||||
printf("userlandfs_create_file_system(): found main: %p\n", mainFunction);
|
printf("userlandfs_create_file_system(): found main: %p\n", mainFunction);
|
||||||
|
|
||||||
// create the file system
|
// create the file system
|
||||||
FUSEFileSystem* fileSystem = new(std::nothrow) FUSEFileSystem(mainFunction);
|
FUSEFileSystem* fileSystem = new(std::nothrow) FUSEFileSystem(fsName,
|
||||||
|
mainFunction);
|
||||||
if (fileSystem == NULL)
|
if (fileSystem == NULL)
|
||||||
return B_NO_MEMORY;
|
return B_NO_MEMORY;
|
||||||
|
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ namespace UserlandFS {
|
|||||||
|
|
||||||
class FUSEFileSystem : public FileSystem {
|
class FUSEFileSystem : public FileSystem {
|
||||||
public:
|
public:
|
||||||
FUSEFileSystem(
|
FUSEFileSystem(const char* fsName,
|
||||||
int (*mainFunction)(int,
|
int (*mainFunction)(int,
|
||||||
const char* const*));
|
const char* const*));
|
||||||
virtual ~FUSEFileSystem();
|
virtual ~FUSEFileSystem();
|
||||||
|
|||||||
@@ -79,9 +79,10 @@ struct HaikuKernelFileSystem::NodeCapabilitiesTable
|
|||||||
|
|
||||||
|
|
||||||
// constructor
|
// constructor
|
||||||
HaikuKernelFileSystem::HaikuKernelFileSystem(file_system_module_info* fsModule)
|
HaikuKernelFileSystem::HaikuKernelFileSystem(const char* fsName,
|
||||||
|
file_system_module_info* fsModule)
|
||||||
:
|
:
|
||||||
FileSystem(),
|
FileSystem(fsName),
|
||||||
fFSModule(fsModule),
|
fFSModule(fsModule),
|
||||||
fIORequests(NULL),
|
fIORequests(NULL),
|
||||||
fNodeCapabilities(NULL),
|
fNodeCapabilities(NULL),
|
||||||
@@ -410,7 +411,7 @@ userlandfs_create_file_system(const char* fsName, image_id image,
|
|||||||
|
|
||||||
// create the file system
|
// create the file system
|
||||||
HaikuKernelFileSystem* fileSystem
|
HaikuKernelFileSystem* fileSystem
|
||||||
= new(std::nothrow) HaikuKernelFileSystem(module);
|
= new(std::nothrow) HaikuKernelFileSystem(fsName, module);
|
||||||
if (!fileSystem)
|
if (!fileSystem)
|
||||||
RETURN_ERROR(B_NO_MEMORY);
|
RETURN_ERROR(B_NO_MEMORY);
|
||||||
|
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ struct HaikuKernelIORequest;
|
|||||||
|
|
||||||
class HaikuKernelFileSystem : public FileSystem {
|
class HaikuKernelFileSystem : public FileSystem {
|
||||||
public:
|
public:
|
||||||
HaikuKernelFileSystem(
|
HaikuKernelFileSystem(const char* fsName,
|
||||||
file_system_module_info* fsModule);
|
file_system_module_info* fsModule);
|
||||||
virtual ~HaikuKernelFileSystem();
|
virtual ~HaikuKernelFileSystem();
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user