summaryrefslogtreecommitdiff
path: root/include/sqfs/block.h
diff options
context:
space:
mode:
authorDavid Oberhollenzer <david.oberhollenzer@sigma-star.at>2019-09-27 15:58:27 +0200
committerDavid Oberhollenzer <david.oberhollenzer@sigma-star.at>2019-09-27 15:58:27 +0200
commitb01961c0e72ab287520fcd61b47ef8faf141cf3f (patch)
tree9d2233e9163d4fd821b278207f34688f888476a1 /include/sqfs/block.h
parentf45b36ed81bf3b33f030c769f696e028216ef609 (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.h31
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
*