#ifndef DIRCACHE_H
#define DIRCACHE_H

#include "ubixfs.h"

struct cacheNode {
  char * name;
  struct cacheNode * prev;
  struct cacheNode * next;
  struct cacheNode * parent;
  struct cacheNode * subDirsHead;
  struct cacheNode * subDirsTail;
  struct directoryEntry * dirList; 
  int    dirListEntryCount;
  int    dirty;
  unsigned int dirBlock;
}; /* cacheNode */

struct cacheNode * ubixfs_dirCacheFind(struct cacheNode *, char *);
struct cacheNode * ubixfs_dirCacheNew(const char *);
void ubixfs_dirCacheDelete(struct cacheNode **);
void ubixfs_dirCacheAdd(struct cacheNode *, struct cacheNode *);

#endif /* !DIRCACHE_H */
