summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorDavid Oberhollenzer <david.oberhollenzer@sigma-star.at>2019-05-20 11:01:10 +0200
committerDavid Oberhollenzer <david.oberhollenzer@sigma-star.at>2019-05-20 11:01:10 +0200
commitc2e01ed987e942005fa66f11d96b8edb1d930c99 (patch)
tree856042ae5b3b1928a8ca7275c996f68972a5f680 /include
parent93f5a822b208b7df1c9a3f15685f397e0ce344aa (diff)
cleanup: internalize meta reader/writer implementations
Signed-off-by: David Oberhollenzer <david.oberhollenzer@sigma-star.at>
Diffstat (limited to 'include')
-rw-r--r--include/fstree.h2
-rw-r--r--include/meta_reader.h42
-rw-r--r--include/meta_writer.h42
3 files changed, 8 insertions, 78 deletions
diff --git a/include/fstree.h b/include/fstree.h
index e8324a9..4986ec2 100644
--- a/include/fstree.h
+++ b/include/fstree.h
@@ -28,7 +28,7 @@ struct tree_xattr_t {
size_t num_attr;
size_t max_attr;
- uint32_t block;
+ uint64_t block;
uint32_t offset;
uint32_t size;
diff --git a/include/meta_reader.h b/include/meta_reader.h
index 78c0db3..a662959 100644
--- a/include/meta_reader.h
+++ b/include/meta_reader.h
@@ -5,47 +5,7 @@
#include "compress.h"
#include "squashfs.h"
-/**
- * @struct meta_reader_t
- *
- * @brief Abstracts away I/O on SquashFS meta data
- */
-typedef struct {
- /**
- * @brief The location of the current block in the file
- */
- uint64_t block_offset;
-
- /**
- * @brief The location of the next block after the current one
- */
- uint64_t next_block;
-
- /**
- * @brief A byte offset into the uncompressed data of the current block
- */
- size_t offset;
-
- /**
- * @brief The underlying file descriptor to read from
- */
- int fd;
-
- /**
- * @brief A pointer to the compressor to use for extracting data
- */
- compressor_t *cmp;
-
- /**
- * @brief The raw data read from the input file
- */
- uint8_t data[SQFS_META_BLOCK_SIZE];
-
- /**
- * @brief The uncompressed data read from the input file
- */
- uint8_t scratch[SQFS_META_BLOCK_SIZE];
-} meta_reader_t;
+typedef struct meta_reader_t meta_reader_t;
/**
* @brief Create a meta data reader
diff --git a/include/meta_writer.h b/include/meta_writer.h
index 9dcc22d..6bcb29b 100644
--- a/include/meta_writer.h
+++ b/include/meta_writer.h
@@ -5,42 +5,7 @@
#include "compress.h"
#include "squashfs.h"
-/**
- * @struct meta_writer_t
- *
- * @brief Abstracts away I/O on SquashFS meta data
- */
-typedef struct {
- /**
- * @brief A byte offset into the uncompressed data of the current block
- */
- size_t offset;
-
- /**
- * @brief The location of the current block in the file
- */
- size_t block_offset;
-
- /**
- * @brief The underlying file descriptor to write to
- */
- int outfd;
-
- /**
- * @brief A pointer to the compressor to use for compressing the data
- */
- compressor_t *cmp;
-
- /**
- * @brief The raw data chunk that data is appended to
- */
- uint8_t data[SQFS_META_BLOCK_SIZE + 2];
-
- /**
- * @brief Scratch buffer for compressing data
- */
- uint8_t scratch[SQFS_META_BLOCK_SIZE + 2];
-} meta_writer_t;
+typedef struct meta_writer_t meta_writer_t;
/**
* @brief Create a meta data writer
@@ -102,4 +67,9 @@ int meta_writer_flush(meta_writer_t *m);
*/
int meta_writer_append(meta_writer_t *m, const void *data, size_t size);
+void meta_writer_get_position(const meta_writer_t *m, uint64_t *block_start,
+ uint32_t *offset);
+
+void meta_writer_reset(meta_writer_t *m);
+
#endif /* META_WRITER_H */