diff options
Diffstat (limited to 'libsparse/sparse.c')
-rw-r--r-- | libsparse/sparse.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/libsparse/sparse.c b/libsparse/sparse.c index fce9dbb..4ebcf0f 100644 --- a/libsparse/sparse.c +++ b/libsparse/sparse.c @@ -70,6 +70,12 @@ int sparse_file_add_file(struct sparse_file *s, len, block); } +int sparse_file_add_fd(struct sparse_file *s, + int fd, int64_t file_offset, unsigned int len, unsigned int block) +{ + return backed_block_add_fd(s->backed_block_list, fd, file_offset, + len, block); +} unsigned int sparse_count_chunks(struct sparse_file *s) { struct backed_block *bb; @@ -122,6 +128,10 @@ int sparse_file_write(struct sparse_file *s, int fd, bool gz, bool sparse, write_file_chunk(out, backed_block_len(bb), backed_block_filename(bb), backed_block_file_offset(bb)); break; + case BACKED_BLOCK_FD: + write_fd_chunk(out, backed_block_len(bb), + backed_block_fd(bb), backed_block_file_offset(bb)); + break; case BACKED_BLOCK_FILL: write_fill_chunk(out, backed_block_len(bb), backed_block_fill_val(bb)); |