diff options
author | David Oberhollenzer <david.oberhollenzer@sigma-star.at> | 2019-05-06 12:09:56 +0200 |
---|---|---|
committer | David Oberhollenzer <david.oberhollenzer@sigma-star.at> | 2019-05-06 12:15:44 +0200 |
commit | d5068781ec2528f88aaa92fbc9a5b9c256d53499 (patch) | |
tree | 8eac6ec1a02f12e71ec97b1cf66113f37df6d508 /lib | |
parent | cbcf86dde27767682483985e42f7ca49e1d3a208 (diff) |
Implement reading and writing of compressor options
- gensquashfs simply asks the backend compressor to write its options
to the file and does accounting
- rdsquasfs simply asks the backend compressor to transparentyl snort
the options from the file
- not implemented in any compressor backend yet
Signed-off-by: David Oberhollenzer <david.oberhollenzer@sigma-star.at>
Diffstat (limited to 'lib')
-rw-r--r-- | lib/comp/gzip.c | 17 | ||||
-rw-r--r-- | lib/comp/lzo.c | 17 | ||||
-rw-r--r-- | lib/comp/xz.c | 17 |
3 files changed, 51 insertions, 0 deletions
diff --git a/lib/comp/gzip.c b/lib/comp/gzip.c index ea634b8..ea86f98 100644 --- a/lib/comp/gzip.c +++ b/lib/comp/gzip.c @@ -29,6 +29,21 @@ static void gzip_destroy(compressor_t *base) free(gzip); } +static int gzip_write_options(compressor_t *base, int fd) +{ + (void)base; + (void)fd; + return 0; +} + +static int gzip_read_options(compressor_t *base, int fd) +{ + (void)base; + (void)fd; + fputs("gzip extra options are not yet implemented\n", stderr); + return -1; +} + static ssize_t gzip_do_block(compressor_t *base, const uint8_t *in, size_t size, uint8_t *out, size_t outsize) { @@ -90,6 +105,8 @@ compressor_t *create_gzip_compressor(bool compress, size_t block_size) gzip->block_size = block_size; base->do_block = gzip_do_block; base->destroy = gzip_destroy; + base->write_options = gzip_write_options; + base->read_options = gzip_read_options; if (compress) { ret = deflateInit(&gzip->strm, Z_BEST_COMPRESSION); diff --git a/lib/comp/lzo.c b/lib/comp/lzo.c index 30b14cb..95ab485 100644 --- a/lib/comp/lzo.c +++ b/lib/comp/lzo.c @@ -14,6 +14,21 @@ typedef struct { uint8_t buffer[LZO1X_999_MEM_COMPRESS]; } lzo_compressor_t; +static int lzo_write_options(compressor_t *base, int fd) +{ + (void)base; + (void)fd; + return 0; +} + +static int lzo_read_options(compressor_t *base, int fd) +{ + (void)base; + (void)fd; + fputs("lzo extra options are not yet implemented\n", stderr); + return -1; +} + static ssize_t lzo_comp_block(compressor_t *base, const uint8_t *in, size_t size, uint8_t *out, size_t outsize) { @@ -67,5 +82,7 @@ compressor_t *create_lzo_compressor(bool compress, size_t block_size) base->destroy = lzo_destroy; base->do_block = compress ? lzo_comp_block : lzo_uncomp_block; + base->write_options = lzo_write_options; + base->read_options = lzo_read_options; return base; } diff --git a/lib/comp/xz.c b/lib/comp/xz.c index 98d740c..dd608ba 100644 --- a/lib/comp/xz.c +++ b/lib/comp/xz.c @@ -12,6 +12,21 @@ typedef struct { size_t block_size; } xz_compressor_t; +static int xz_write_options(compressor_t *base, int fd) +{ + (void)base; + (void)fd; + return 0; +} + +static int xz_read_options(compressor_t *base, int fd) +{ + (void)base; + (void)fd; + fputs("xz extra options are not yet implemented\n", stderr); + return -1; +} + static ssize_t xz_comp_block(compressor_t *base, const uint8_t *in, size_t size, uint8_t *out, size_t outsize) { @@ -86,5 +101,7 @@ compressor_t *create_xz_compressor(bool compress, size_t block_size) xz->block_size = block_size; base->destroy = xz_destroy; base->do_block = compress ? xz_comp_block : xz_uncomp_block; + base->write_options = xz_write_options; + base->read_options = xz_read_options; return base; } |