]>
git.ipfire.org Git - thirdparty/systemd.git/blob - src/basic/journal-importer.h
1 /* SPDX-License-Identifier: LGPL-2.1+ */
3 Copyright © 2016 Zbigniew Jędrzejewski-Szmek
14 #include "time-util.h"
16 /* Make sure not to make this smaller than the maximum coredump size.
17 * See COREDUMP_MAX in coredump.c */
18 #define ENTRY_SIZE_MAX (1024*1024*770u)
19 #define DATA_SIZE_MAX (1024*1024*768u)
20 #define LINE_CHUNK 8*1024u
22 struct iovec_wrapper
{
28 size_t iovw_size(struct iovec_wrapper
*iovw
);
30 typedef struct JournalImporter
{
36 size_t size
; /* total size of the buffer */
37 size_t offset
; /* offset to the beginning of live data in the buffer */
38 size_t scanned
; /* number of bytes since the beginning of data without a newline */
39 size_t filled
; /* total number of bytes in the buffer */
41 size_t field_len
; /* used for binary fields: the field name length */
42 size_t data_size
; /* and the size of the binary data chunk being processed */
44 struct iovec_wrapper iovw
;
51 void journal_importer_cleanup(JournalImporter
*);
52 int journal_importer_process_data(JournalImporter
*);
53 int journal_importer_push_data(JournalImporter
*, const char *data
, size_t size
);
54 void journal_importer_drop_iovw(JournalImporter
*);
55 bool journal_importer_eof(const JournalImporter
*);
57 static inline size_t journal_importer_bytes_remaining(const JournalImporter
*imp
) {