| #ifndef SPARSE_FILE_H |
| #define SPARSE_FILE_H |
| |
| #ifdef __cplusplus |
| extern "C" { |
| #endif |
| |
| #include "sparse_format.h" |
| |
| #define SPARSE_FILE_HEADER_SIZE \ |
| (sizeof(sparse_header_t) + 2 * sizeof(chunk_header_t)) |
| |
| #define SPARSE_FILE_FOOTER_SIZE (sizeof(chunk_header_t)) |
| |
| #define SPARSE_BLOCK_SZ 4096 |
| |
| typedef struct { |
| char header[SPARSE_FILE_HEADER_SIZE]; |
| char footer[SPARSE_FILE_FOOTER_SIZE]; |
| size_t header_size; |
| size_t data_size; |
| size_t fill_size; |
| size_t footer_size; |
| } sparse_file_t; |
| |
| int sparse_file_new(sparse_file_t *sparse_file, size_t offset, |
| size_t size, size_t file_size); |
| |
| #ifdef __cplusplus |
| } /* extern "C" */ |
| #endif |
| |
| #endif /* SPARSE_FILE_H */ |