diff options
author | David Oberhollenzer <david.oberhollenzer@sigma-star.at> | 2019-09-27 15:58:27 +0200 |
---|---|---|
committer | David Oberhollenzer <david.oberhollenzer@sigma-star.at> | 2019-09-27 15:58:27 +0200 |
commit | b01961c0e72ab287520fcd61b47ef8faf141cf3f (patch) | |
tree | 9d2233e9163d4fd821b278207f34688f888476a1 /include/sqfs/block.h | |
parent | f45b36ed81bf3b33f030c769f696e028216ef609 (diff) |
Cleanup: merge data.h into block.h
Signed-off-by: David Oberhollenzer <david.oberhollenzer@sigma-star.at>
Diffstat (limited to 'include/sqfs/block.h')
-rw-r--r-- | include/sqfs/block.h | 31 |
1 files changed, 30 insertions, 1 deletions
diff --git a/include/sqfs/block.h b/include/sqfs/block.h index 15d269d..2a765e0 100644 --- a/include/sqfs/block.h +++ b/include/sqfs/block.h @@ -25,9 +25,38 @@ /** * @file block.h * - * @brief Contains the definition of the @ref sqfs_block_t data structure. + * @brief Contains on-disk data structures for data block management, + * helper macros and the higher level @ref sqfs_block_t structure. */ +#define SQFS_META_BLOCK_SIZE 8192 + +#define SQFS_IS_BLOCK_COMPRESSED(size) (((size) & (1 << 24)) == 0) +#define SQFS_ON_DISK_BLOCK_SIZE(size) ((size) & ((1 << 24) - 1)) +#define SQFS_IS_SPARSE_BLOCK(size) (SQFS_ON_DISK_BLOCK_SIZE(size) == 0) + +/** + * @struct sqfs_fragment_t + * + * @brief Data structure that makes up the fragment table entries. + */ +struct sqfs_fragment_t { + /** + * @brief Location of the fragment block on-disk. + */ + uint64_t start_offset; + + /** + * @brief Size of the fragment block in bytes. + */ + uint32_t size; + + /** + * @brief Unused. Always initialize this to 0. + */ + uint32_t pad0; +}; + /** * @enum E_SQFS_BLK_FLAGS * |