summaryrefslogtreecommitdiff
path: root/futility/futility.h
diff options
context:
space:
mode:
Diffstat (limited to 'futility/futility.h')
-rw-r--r--futility/futility.h24
1 files changed, 21 insertions, 3 deletions
diff --git a/futility/futility.h b/futility/futility.h
index 652b5fbc..5f9a5b78 100644
--- a/futility/futility.h
+++ b/futility/futility.h
@@ -85,11 +85,29 @@ int print_hwid_digest(GoogleBinaryBlockHeader *gbb,
/* Copies a file or dies with an error message */
void futil_copy_file_or_die(const char *infile, const char *outfile);
-/* Wrapper for mmap/munmap. Returns 0 on success. Skips stupidly large files. */
+/* Possible file operation errors */
+enum futil_file_err {
+ FILE_ERR_NONE,
+ FILE_ERR_STAT,
+ FILE_ERR_SIZE,
+ FILE_ERR_MMAP,
+ FILE_ERR_MSYNC,
+ FILE_ERR_MUNMAP,
+ FILE_ERR_OPEN,
+ FILE_ERR_CLOSE,
+ FILE_ERR_DIR,
+ FILE_ERR_CHR,
+ FILE_ERR_FIFO,
+ FILE_ERR_SOCK,
+};
+
+/* Wrapper for mmap/munmap. Skips stupidly large files. */
#define MAP_RO 0
#define MAP_RW 1
-int futil_map_file(int fd, int writeable, uint8_t **buf, uint32_t *len);
-int futil_unmap_file(int fd, int writeable, uint8_t *buf, uint32_t len);
+enum futil_file_err futil_map_file(int fd, int writeable,
+ uint8_t **buf, uint32_t *len);
+enum futil_file_err futil_unmap_file(int fd, int writeable,
+ uint8_t *buf, uint32_t len);
/* The CPU architecture is occasionally important */
enum arch_t {