]>
git.ipfire.org Git - thirdparty/systemd.git/blob - src/journal/compress.h
1 /* SPDX-License-Identifier: LGPL-2.1+ */
5 Copyright 2011 Lennart Poettering
10 #include "journal-def.h"
12 const char* object_compressed_to_string(int compression
);
13 int object_compressed_from_string(const char *compression
);
15 int compress_blob_xz(const void *src
, uint64_t src_size
,
16 void *dst
, size_t dst_alloc_size
, size_t *dst_size
);
17 int compress_blob_lz4(const void *src
, uint64_t src_size
,
18 void *dst
, size_t dst_alloc_size
, size_t *dst_size
);
20 static inline int compress_blob(const void *src
, uint64_t src_size
,
21 void *dst
, size_t dst_alloc_size
, size_t *dst_size
) {
24 r
= compress_blob_lz4(src
, src_size
, dst
, dst_alloc_size
, dst_size
);
26 return OBJECT_COMPRESSED_LZ4
;
28 r
= compress_blob_xz(src
, src_size
, dst
, dst_alloc_size
, dst_size
);
30 return OBJECT_COMPRESSED_XZ
;
35 int decompress_blob_xz(const void *src
, uint64_t src_size
,
36 void **dst
, size_t *dst_alloc_size
, size_t* dst_size
, size_t dst_max
);
37 int decompress_blob_lz4(const void *src
, uint64_t src_size
,
38 void **dst
, size_t *dst_alloc_size
, size_t* dst_size
, size_t dst_max
);
39 int decompress_blob(int compression
,
40 const void *src
, uint64_t src_size
,
41 void **dst
, size_t *dst_alloc_size
, size_t* dst_size
, size_t dst_max
);
43 int decompress_startswith_xz(const void *src
, uint64_t src_size
,
44 void **buffer
, size_t *buffer_size
,
45 const void *prefix
, size_t prefix_len
,
47 int decompress_startswith_lz4(const void *src
, uint64_t src_size
,
48 void **buffer
, size_t *buffer_size
,
49 const void *prefix
, size_t prefix_len
,
51 int decompress_startswith(int compression
,
52 const void *src
, uint64_t src_size
,
53 void **buffer
, size_t *buffer_size
,
54 const void *prefix
, size_t prefix_len
,
57 int compress_stream_xz(int fdf
, int fdt
, uint64_t max_bytes
);
58 int compress_stream_lz4(int fdf
, int fdt
, uint64_t max_bytes
);
60 int decompress_stream_xz(int fdf
, int fdt
, uint64_t max_size
);
61 int decompress_stream_lz4(int fdf
, int fdt
, uint64_t max_size
);
64 # define compress_stream compress_stream_lz4
65 # define COMPRESSED_EXT ".lz4"
67 # define compress_stream compress_stream_xz
68 # define COMPRESSED_EXT ".xz"
71 int decompress_stream(const char *filename
, int fdf
, int fdt
, uint64_t max_bytes
);