cache.h 906 B

123456789101112131415161718192021222324252627282930313233343536
  1. #ifndef CACHE_H_INCLUDED
  2. #define CACHE_H_INCLUDED
  3. #include <windows.h>
  4. #include "internal.h"
  5. #include "list.h"
  6. #define BLOCK_CACHE_SIZE 128
  7. struct _MINIX_FS;
  8. typedef struct _MX_CACHE_ITEM
  9. {
  10. LIST_ENTRY MruList;
  11. unsigned Index;
  12. BOOL Dirty;
  13. BYTE Data[MINIX_BLOCK_SIZE];
  14. } MX_CACHE_ITEM;
  15. typedef struct
  16. {
  17. LIST_ENTRY MruList;
  18. unsigned Count;
  19. CRITICAL_SECTION Lock;
  20. struct _MINIX_FS *FileSys;
  21. } MX_BLOCK_CACHE;
  22. void MxfsCacheInit(struct _MINIX_FS *FileSys);
  23. void MxfsCacheDestroy(struct _MINIX_FS *FileSys);
  24. void MxfsCacheFlush(struct _MINIX_FS *FileSys);
  25. int MxfsCacheRead(struct _MINIX_FS *FileSys, void *Buffer, unsigned Block, unsigned Offset, unsigned Length);
  26. int MxfsCacheWrite(struct _MINIX_FS *FileSys, const void *Buffer, unsigned Block, unsigned Offset, unsigned Length);
  27. void MxfsCacheZero(struct _MINIX_FS *FileSys, unsigned Block);
  28. #endif // CACHE_H_INCLUDED