diff options
Diffstat (limited to 'lib/sqfs/meta_writer.c')
-rw-r--r-- | lib/sqfs/meta_writer.c | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/lib/sqfs/meta_writer.c b/lib/sqfs/meta_writer.c index 29fa183..4dd87a5 100644 --- a/lib/sqfs/meta_writer.c +++ b/lib/sqfs/meta_writer.c @@ -41,7 +41,7 @@ struct sqfs_meta_writer_t { /* The raw data chunk that data is appended to */ uint8_t data[SQFS_META_BLOCK_SIZE]; - bool keep_in_mem; + int flags; meta_block_t *list; meta_block_t *list_end; }; @@ -56,16 +56,20 @@ static int write_block(sqfs_file_t *file, meta_block_t *outblk) sqfs_meta_writer_t *sqfs_meta_writer_create(sqfs_file_t *file, sqfs_compressor_t *cmp, - bool keep_in_mem) + int flags) { - sqfs_meta_writer_t *m = calloc(1, sizeof(*m)); + sqfs_meta_writer_t *m; + if (flags & ~SQFS_META_WRITER_ALL_FLAGS) + return NULL; + + m = calloc(1, sizeof(*m)); if (m == NULL) return NULL; m->cmp = cmp; m->file = file; - m->keep_in_mem = keep_in_mem; + m->flags = flags; return m; } @@ -113,7 +117,7 @@ int sqfs_meta_writer_flush(sqfs_meta_writer_t *m) ret = 0; - if (m->keep_in_mem) { + if (m->flags & SQFS_META_WRITER_KEEP_IN_MEMORY) { if (m->list == NULL) { m->list = outblk; } else { |