LCOV - code coverage report
Current view: top level - shared - journal-importer.h (source / functions) Hit Total Coverage
Test: main_coverage.info Lines: 0 2 0.0 %
Date: 2019-08-22 15:41:25 Functions: 0 1 0.0 %

          Line data    Source code
       1             : /* SPDX-License-Identifier: LGPL-2.1+ */
       2             : 
       3             : #pragma once
       4             : 
       5             : #include <stddef.h>
       6             : #include <stdbool.h>
       7             : #include <sys/uio.h>
       8             : 
       9             : #include "io-util.h"
      10             : #include "sd-id128.h"
      11             : #include "time-util.h"
      12             : 
      13             : /* Make sure not to make this smaller than the maximum coredump size.
      14             :  * See JOURNAL_SIZE_MAX in coredump.c */
      15             : #ifndef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
      16             : #define ENTRY_SIZE_MAX (1024*1024*770u)
      17             : #define DATA_SIZE_MAX (1024*1024*768u)
      18             : #else
      19             : #define ENTRY_SIZE_MAX (1024*1024*13u)
      20             : #define DATA_SIZE_MAX (1024*1024*11u)
      21             : #endif
      22             : #define LINE_CHUNK 8*1024u
      23             : 
      24             : /* The maximum number of fields in an entry */
      25             : #define ENTRY_FIELD_COUNT_MAX 1024
      26             : 
      27             : typedef struct JournalImporter {
      28             :         int fd;
      29             :         bool passive_fd;
      30             :         char *name;
      31             : 
      32             :         char *buf;
      33             :         size_t size;       /* total size of the buffer */
      34             :         size_t offset;     /* offset to the beginning of live data in the buffer */
      35             :         size_t scanned;    /* number of bytes since the beginning of data without a newline */
      36             :         size_t filled;     /* total number of bytes in the buffer */
      37             : 
      38             :         size_t field_len;  /* used for binary fields: the field name length */
      39             :         size_t data_size;  /* and the size of the binary data chunk being processed */
      40             : 
      41             :         struct iovec_wrapper iovw;
      42             : 
      43             :         int state;
      44             :         dual_timestamp ts;
      45             :         sd_id128_t boot_id;
      46             : } JournalImporter;
      47             : 
      48             : #define JOURNAL_IMPORTER_INIT(_fd) { .fd = (_fd), .iovw = {} }
      49             : #define JOURNAL_IMPORTER_MAKE(_fd) (JournalImporter) JOURNAL_IMPORTER_INIT(_fd)
      50             : 
      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 *);
      56             : 
      57           0 : static inline size_t journal_importer_bytes_remaining(const JournalImporter *imp) {
      58           0 :         return imp->filled;
      59             : }

Generated by: LCOV version 1.14