summaryrefslogtreecommitdiff
path: root/include/sqfs
diff options
context:
space:
mode:
authorDavid Oberhollenzer <david.oberhollenzer@sigma-star.at>2019-10-03 12:11:51 +0200
committerDavid Oberhollenzer <david.oberhollenzer@sigma-star.at>2019-10-03 14:57:47 +0200
commit6a218f0927c0cced058e14ee5156f10860a149d3 (patch)
treeedc56ce26501ee3cb47ed335922be22efc4843ef /include/sqfs
parent9ffad2478a04011805132750644eabcb7f0c0e92 (diff)
Store directory index in generic inode structure
This commit modifies the dir writer to store the directory index directly in the payload area of the inode it creates. The size of the index in bytes is stored in a seperate field. Storing the index is moved to the write inode function. The read inode function is in turn also modified to read the directory index from disk and actually store it in the inode structure in memory for later use. Signed-off-by: David Oberhollenzer <david.oberhollenzer@sigma-star.at>
Diffstat (limited to 'include/sqfs')
-rw-r--r--include/sqfs/dir_writer.h14
-rw-r--r--include/sqfs/inode.h6
2 files changed, 6 insertions, 14 deletions
diff --git a/include/sqfs/dir_writer.h b/include/sqfs/dir_writer.h
index b47628b..bb09a86 100644
--- a/include/sqfs/dir_writer.h
+++ b/include/sqfs/dir_writer.h
@@ -192,20 +192,6 @@ sqfs_dir_writer_get_dir_reference(const sqfs_dir_writer_t *writer);
SQFS_API size_t sqfs_dir_writer_get_index_size(const sqfs_dir_writer_t *writer);
/**
- * @brief Write the index of the index of the last written directory to
- * a meta data writer after the extended directory inode.
- *
- * @memberof sqfs_dir_writer_t
- *
- * @param writer A pointer to a directory writer object.
- * @param im A pointer to a meta data writer to write the index to.
- *
- * @return Zero on success, a @ref E_SQFS_ERROR value on failure.
- */
-SQFS_API int sqfs_dir_writer_write_index(const sqfs_dir_writer_t *writer,
- sqfs_meta_writer_t *im);
-
-/**
* @brief Helper function for creating an inode from the last directory.
*
* @memberof sqfs_dir_writer_t
diff --git a/include/sqfs/inode.h b/include/sqfs/inode.h
index f04f036..8b69b7e 100644
--- a/include/sqfs/inode.h
+++ b/include/sqfs/inode.h
@@ -505,6 +505,12 @@ struct sqfs_inode_generic_t {
size_t num_file_blocks;
/**
+ * @brief For extended directory inodes, stores the number of payload
+ * bytes following for the directory index.
+ */
+ size_t num_dir_idx_bytes;
+
+ /**
* @brief Type specific inode data.
*/
union {