filemap.h 814 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. #ifndef FILEMAP_H__INCLUDED
  2. #define FILEMAP_H__INCLUDED
  3. #include <stddef.h> /* size_t */
  4. struct AFileMap {
  5. const void *map;
  6. size_t size;
  7. struct {
  8. int fd;
  9. } impl_;
  10. };
  11. struct AFileMap aFileMapOpen(const char *filename);
  12. void aFileMapClose(struct AFileMap *file);
  13. struct AFile {
  14. size_t size;
  15. struct {
  16. int fd;
  17. } impl_;
  18. };
  19. #define AFileError ((size_t)-1)
  20. enum AFileResult {
  21. AFile_Success,
  22. AFile_Fail
  23. };
  24. /* reset file to default state, useful for initialization */
  25. void aFileReset(struct AFile *file);
  26. enum AFileResult aFileOpen(struct AFile *file, const char *filename);
  27. size_t aFileRead(struct AFile *file, size_t size, void *buffer);
  28. size_t aFileReadAtOffset(struct AFile *file, size_t off, size_t size, void *buffer);
  29. void aFileClose(struct AFile *file);
  30. #endif /* ifndef FILEMAP_H__INCLUDED */