X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fjournal%2Fjournal-def.h;h=e55fa196f28294ea978cdfb4c0d37af6a00416f0;hb=bf3d3e2bb7ae2d3854be57f28dd1403c8f7e4c3c;hp=7e407a416cb1ca1674202c1162cddcc745d91d46;hpb=f274ece0f76b5709408821e317e87aef76123db6;p=elogind.git diff --git a/src/journal/journal-def.h b/src/journal/journal-def.h index 7e407a416..e55fa196f 100644 --- a/src/journal/journal-def.h +++ b/src/journal/journal-def.h @@ -23,7 +23,7 @@ #include "sparse-endian.h" -#include +#include "systemd/sd-id128.h" #include "macro.h" @@ -66,9 +66,13 @@ enum { /* Object flags */ enum { - OBJECT_COMPRESSED = 1 + OBJECT_COMPRESSED_XZ = 1 << 0, + OBJECT_COMPRESSED_LZ4 = 1 << 1, + _OBJECT_COMPRESSED_MAX }; +#define OBJECT_COMPRESSION_MASK (OBJECT_COMPRESSED_XZ | OBJECT_COMPRESSED_LZ4) + struct ObjectHeader { uint8_t type; uint8_t flags; @@ -155,13 +159,33 @@ enum { /* Header flags */ enum { - HEADER_INCOMPATIBLE_COMPRESSED = 1 + HEADER_INCOMPATIBLE_COMPRESSED_XZ = 1 << 0, + HEADER_INCOMPATIBLE_COMPRESSED_LZ4 = 1 << 1, }; +#define HEADER_INCOMPATIBLE_ANY (HEADER_INCOMPATIBLE_COMPRESSED_XZ|HEADER_INCOMPATIBLE_COMPRESSED_LZ4) + +#if defined(HAVE_XZ) && defined(HAVE_LZ4) +# define HEADER_INCOMPATIBLE_SUPPORTED HEADER_INCOMPATIBLE_ANY +#elif defined(HAVE_XZ) +# define HEADER_INCOMPATIBLE_SUPPORTED HEADER_INCOMPATIBLE_COMPRESSED_XZ +#elif defined(HAVE_LZ4) +# define HEADER_INCOMPATIBLE_SUPPORTED HEADER_INCOMPATIBLE_COMPRESSED_LZ4 +#else +# define HEADER_INCOMPATIBLE_SUPPORTED 0 +#endif + enum { HEADER_COMPATIBLE_SEALED = 1 }; +#define HEADER_COMPATIBLE_ANY HEADER_COMPATIBLE_SEALED +#ifdef HAVE_GCRYPT +# define HEADER_COMPATIBLE_SUPPORTED HEADER_COMPATIBLE_SEALED +#else +# define HEADER_COMPATIBLE_SUPPORTED 0 +#endif + #define HEADER_SIGNATURE ((char[]) { 'L', 'P', 'K', 'S', 'H', 'H', 'R', 'H' }) struct Header {