diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/data_writer.h | 27 |
1 files changed, 24 insertions, 3 deletions
diff --git a/include/data_writer.h b/include/data_writer.h index 2ace899..a52b37f 100644 --- a/include/data_writer.h +++ b/include/data_writer.h @@ -9,6 +9,22 @@ typedef struct data_writer_t data_writer_t; +enum { + /* Don't generate fragments, always write the last block to disk as a + block, even if it is incomplete. */ + DW_DONT_FRAGMENT = 0x01, + + /* Intentionally write all blocks uncompressed. This implies + DW_DONT_FRAGMENT since sharing a fragment block with other files + would otherwise require the entire fragment block to be + uncompressed. */ + DW_DONT_COMPRESS = 0x03, + + /* Make sure the first block of a file is alligned to + device block size */ + DW_ALLIGN_DEVBLK = 0x04, +}; + /* Create a data writer. The pointer to the super block is kept internally and used to automatically update various counters when writing data. @@ -16,7 +32,7 @@ typedef struct data_writer_t data_writer_t; Returns NULL on failure and prints errors to stderr. */ data_writer_t *data_writer_create(sqfs_super_t *super, compressor_t *cmp, - int outfd); + int outfd, size_t devblksize); void data_writer_destroy(data_writer_t *data); @@ -46,18 +62,23 @@ int data_writer_flush_fragments(data_writer_t *data); Blocks or fragments that are all zero bytes automatically detected, not written out and the sparse file accounting updated accordingly. + The flags argument is a combination of DW_* flags. + Returns 0 on success, prints errors to stderr. */ -int write_data_from_fd(data_writer_t *data, file_info_t *fi, int infd); +int write_data_from_fd(data_writer_t *data, file_info_t *fi, int infd, + int flags); /* Does the same as write_data_from_fd but the input file is the condensed representation of a sparse file. The layout must be in order and non-overlapping. + The flags argument is a combination of DW_* flags. + Returns 0 on success, prints errors to stderr. */ int write_data_from_fd_condensed(data_writer_t *data, file_info_t *fi, - int infd, sparse_map_t *map); + int infd, sparse_map_t *map, int flags); #endif /* DATA_WRITER_H */ |