filemap.h 529 B

123456789101112131415161718192021222324252627
  1. #pragma once
  2. #include "libc.h"
  3. typedef struct AFile {
  4. size_t size;
  5. struct {
  6. #ifndef _WIN32
  7. int fd;
  8. #else
  9. HANDLE handle;
  10. #endif
  11. } impl_;
  12. } AFile;
  13. #define AFileError ((size_t)-1)
  14. enum AFileResult {
  15. AFile_Success,
  16. AFile_Fail
  17. };
  18. /* reset file to default state, useful for initialization */
  19. void aFileReset(struct AFile *file);
  20. enum AFileResult aFileOpen(struct AFile *file, const char *filename);
  21. size_t aFileReadAtOffset(struct AFile *file, size_t off, size_t size, void *buffer);
  22. void aFileClose(struct AFile *file);