// 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