#ifndef COMMON_H #define COMMON_H #define _GNU_SOURCE #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include noreturn void fatal_error(const char* fmt, ...); void setup(); int open_input_fd(const char* path); void read_fd(const char* path, int fd, void* buffer, size_t size); void seek_fd(const char* path, int fd, off_t offset, int mode); off_t tell_fd(const char* path, int fd); int open_output_fd(const char* path, bool rdwr); void write_fd(const char* path, int fd, const void* buffer, size_t size); void close_fd(const char* path, int fd); void* mmap_fd(const char* path, int fd, int protection, size_t offset, size_t size); void munmap_fd(const char* path, void* address, size_t size); FILE* open_input_stdio(const char* path); void read_stdio(const char* path, FILE* f, void* buffer, size_t size); void seek_stdio(const char* path, FILE* f, off_t offset, int mode); off_t tell_stdio(const char* path, FILE* f); void close_stdio(const char* path, FILE* f); FILE* open_output_stdio(const char* path, bool rdwr); void write_stdio(const char* path, FILE* f, const void* buffer, size_t size); void* alloc_buffer(size_t size); void fill_random(void* buffer, size_t size); void copy_data(int fi, int fo, const char* input_path, const char* output_path, size_t size); #endif