41 lines
1.1 KiB
C++
41 lines
1.1 KiB
C++
#pragma once
|
|
|
|
#include "types.h"
|
|
#include "fs/Inode.h"
|
|
|
|
class RamFSInode : public Inode
|
|
{
|
|
protected:
|
|
char* data_;
|
|
|
|
public:
|
|
/**
|
|
* constructor
|
|
* @param super_block the superblock to create the inode on
|
|
* @param inode_type the inode type
|
|
*/
|
|
RamFSInode ( Superblock *super_block, uint32 inode_type );
|
|
virtual ~RamFSInode();
|
|
|
|
/**
|
|
* Called when a file is opened
|
|
*/
|
|
virtual File* open(Dentry* dentry, uint32 /*flag*/);
|
|
|
|
/// read the data from the inode
|
|
/// @param offset offset byte
|
|
/// @param size the size of data that read from this inode
|
|
/// @buffer the dest char-array to store the data
|
|
/// @return On successe, return 0. On error, return -1.
|
|
virtual int32 readData ( uint32 offset, uint32 size, char *buffer );
|
|
|
|
/// write the data to the inode
|
|
/// @param offset offset byte
|
|
/// @param size the size of data that write to this inode (data_)
|
|
/// @buffer the src char-array
|
|
/// @return On successe, return 0. On error, return -1.
|
|
virtual int32 writeData ( uint32 offset, uint32 size, const char *buffer );
|
|
|
|
};
|
|
|