]>
git.ipfire.org Git - thirdparty/systemd.git/blob - src/journal/compress.h
1 /* SPDX-License-Identifier: LGPL-2.1+ */
6 #include "journal-def.h"
8 const char* object_compressed_to_string(int compression
);
9 int object_compressed_from_string(const char *compression
);
11 int compress_blob_xz(const void *src
, uint64_t src_size
,
12 void *dst
, size_t dst_alloc_size
, size_t *dst_size
);
13 int compress_blob_lz4(const void *src
, uint64_t src_size
,
14 void *dst
, size_t dst_alloc_size
, size_t *dst_size
);
16 static inline int compress_blob(const void *src
, uint64_t src_size
,
17 void *dst
, size_t dst_alloc_size
, size_t *dst_size
) {
20 r
= compress_blob_lz4(src
, src_size
, dst
, dst_alloc_size
, dst_size
);
22 return OBJECT_COMPRESSED_LZ4
;
24 r
= compress_blob_xz(src
, src_size
, dst
, dst_alloc_size
, dst_size
);
26 return OBJECT_COMPRESSED_XZ
;
31 int decompress_blob_xz(const void *src
, uint64_t src_size
,
32 void **dst
, size_t *dst_alloc_size
, size_t* dst_size
, size_t dst_max
);
33 int decompress_blob_lz4(const void *src
, uint64_t src_size
,
34 void **dst
, size_t *dst_alloc_size
, size_t* dst_size
, size_t dst_max
);
35 int decompress_blob(int compression
,
36 const void *src
, uint64_t src_size
,
37 void **dst
, size_t *dst_alloc_size
, size_t* dst_size
, size_t dst_max
);
39 int decompress_startswith_xz(const void *src
, uint64_t src_size
,
40 void **buffer
, size_t *buffer_size
,
41 const void *prefix
, size_t prefix_len
,
43 int decompress_startswith_lz4(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(int compression
,
48 const void *src
, uint64_t src_size
,
49 void **buffer
, size_t *buffer_size
,
50 const void *prefix
, size_t prefix_len
,
53 int compress_stream_xz(int fdf
, int fdt
, uint64_t max_bytes
);
54 int compress_stream_lz4(int fdf
, int fdt
, uint64_t max_bytes
);
56 int decompress_stream_xz(int fdf
, int fdt
, uint64_t max_size
);
57 int decompress_stream_lz4(int fdf
, int fdt
, uint64_t max_size
);
60 # define compress_stream compress_stream_lz4
61 # define COMPRESSED_EXT ".lz4"
63 # define compress_stream compress_stream_xz
64 # define COMPRESSED_EXT ".xz"
67 int decompress_stream(const char *filename
, int fdf
, int fdt
, uint64_t max_bytes
);