diff options
Diffstat (limited to 'include/frag_reader.h')
-rw-r--r-- | include/frag_reader.h | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/include/frag_reader.h b/include/frag_reader.h new file mode 100644 index 0000000..6495f5b --- /dev/null +++ b/include/frag_reader.h @@ -0,0 +1,31 @@ +/* SPDX-License-Identifier: GPL-3.0-or-later */ +#ifndef FRAG_READER_H +#define FRAG_READER_H + +#include "squashfs.h" +#include "compress.h" + +#include <stdint.h> +#include <stddef.h> + +typedef struct { + sqfs_fragment_t *tbl; + size_t num_fragments; + + int fd; + compressor_t *cmp; + size_t block_size; + size_t used; + size_t current_index; + uint8_t buffer[]; +} frag_reader_t; + +frag_reader_t *frag_reader_create(sqfs_super_t *super, int fd, + compressor_t *cmp); + +void frag_reader_destroy(frag_reader_t *f); + +int frag_reader_read(frag_reader_t *f, size_t index, size_t offset, + void *buffer, size_t size); + +#endif /* FRAG_READER_H */ |