45 lines
936 B
C
45 lines
936 B
C
|
#pragma once
|
||
|
|
||
|
#include "fs/Superblock.h"
|
||
|
#include "fs/ramfs/RamFSSuperblock.h"
|
||
|
|
||
|
class Inode;
|
||
|
class Superblock;
|
||
|
class CharacterDevice;
|
||
|
class DeviceFSType;
|
||
|
|
||
|
class DeviceFSSuperBlock : public RamFSSuperblock
|
||
|
{
|
||
|
public:
|
||
|
static const char ROOT_NAME[];
|
||
|
static const char DEVICE_ROOT_NAME[];
|
||
|
|
||
|
virtual ~DeviceFSSuperBlock();
|
||
|
|
||
|
/**
|
||
|
* addsa new device to the superblock
|
||
|
* @param inode the inode of the device to add
|
||
|
* @param node_name the device name
|
||
|
*/
|
||
|
void addDevice(Inode* inode, const char* node_name);
|
||
|
|
||
|
/**
|
||
|
* Access method to the singleton instance
|
||
|
*/
|
||
|
static DeviceFSSuperBlock* getInstance();
|
||
|
|
||
|
private:
|
||
|
|
||
|
/**
|
||
|
* Constructor
|
||
|
* @param s_root the root Dentry of the new Filesystem
|
||
|
* @param s_dev the device number of the new Filesystem
|
||
|
*/
|
||
|
DeviceFSSuperBlock(DeviceFSType* fs_type, uint32 s_dev);
|
||
|
|
||
|
protected:
|
||
|
static DeviceFSSuperBlock* instance_;
|
||
|
|
||
|
};
|
||
|
|