38 lines
779 B
C++
38 lines
779 B
C++
// Ext2OpenDirectory.h
|
|
// Author: Josh Holtrop
|
|
// Date: 12/26/05
|
|
// Modified: 12/26/05
|
|
|
|
#ifndef __HOS_EXT2OPENDIRECTORY__
|
|
#define __HOS_EXT2OPENDIRECTORY__ __HOS_EXT2OPENDIRECTORY__
|
|
|
|
#include "ext2.h"
|
|
#include "Ext2BlockCache.h"
|
|
|
|
class Ext2OpenDirectory : public OpenDirectory
|
|
{
|
|
private:
|
|
u32_t myPosition;
|
|
Ext2fs *myFS;
|
|
int myMode;
|
|
u32_t myInum;
|
|
u8_t *myBuffer;
|
|
u32_t myBlocks;
|
|
u32_t myBlockSize;
|
|
Ext2BlockCache *myCache;
|
|
ext2_inode_t myInode;
|
|
|
|
void readDirectory();
|
|
void writeInclusiveRange(u32_t first, u32_t last);
|
|
|
|
public:
|
|
Ext2OpenDirectory(Ext2fs *fs, u32_t inum, int mode);
|
|
~Ext2OpenDirectory();
|
|
int seek(int pos, int mode);
|
|
int read(vfs_dir_entry_t *ent);
|
|
int create(char *name, int mode, u32_t permissions, u32_t dev);
|
|
int unlink(char *name);
|
|
};
|
|
|
|
#endif
|