1 /*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/
3 #ifndef foojournaldefhfoo
4 #define foojournaldefhfoo
7 This file is part of systemd.
9 Copyright 2011 Lennart Poettering
11 systemd is free software; you can redistribute it and/or modify it
12 under the terms of the GNU General Public License as published by
13 the Free Software Foundation; either version 2 of the License, or
14 (at your option) any later version.
16 systemd is distributed in the hope that it will be useful, but
17 WITHOUT ANY WARRANTY; without even the implied warranty of
18 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
19 General Public License for more details.
21 You should have received a copy of the GNU General Public License
22 along with systemd; If not, see <http://www.gnu.org/licenses/>.
30 typedef struct Header Header;
31 typedef struct ObjectHeader ObjectHeader;
32 typedef union Object Object;
33 typedef struct DataObject DataObject;
34 typedef struct EntryObject EntryObject;
35 typedef struct HashTableObject HashTableObject;
36 typedef struct BisectTableObject BisectTableObject;
37 typedef struct EntryItem EntryItem;
38 typedef struct HashItem HashItem;
49 _packed_ struct ObjectHeader {
56 _packed_ struct DataObject {
59 uint64_t head_entry_offset;
60 uint64_t tail_entry_offset;
61 uint64_t prev_hash_offset;
62 uint64_t next_hash_offset;
66 _packed_ struct EntryItem {
67 uint64_t object_offset;
69 uint64_t prev_entry_offset;
70 uint64_t next_entry_offset;
73 _packed_ struct EntryObject {
80 uint64_t prev_entry_offset;
81 uint64_t next_entry_offset;
85 _packed_ struct HashItem {
86 uint64_t head_hash_offset;
87 uint64_t tail_hash_offset;
90 _packed_ struct HashTableObject {
95 _packed_ struct BisectTableObject {
104 HashTableObject hash_table;
105 BisectTableObject bisect_table;
114 _packed_ struct Header {
115 uint8_t signature[8]; /* "LPKSHHRH" */
116 uint32_t compatible_flags;
117 uint32_t incompatible_flags;
121 sd_id128_t machine_id;
123 sd_id128_t seqnum_id;
124 uint64_t arena_offset;
126 uint64_t arena_max_size;
127 uint64_t arena_min_size;
128 uint64_t arena_keep_free;
129 uint64_t hash_table_offset; /* for looking up data objects */
130 uint64_t hash_table_size;
131 uint64_t bisect_table_offset; /* for looking up entry objects */
132 uint64_t bisect_table_size;
133 uint64_t head_object_offset;
134 uint64_t tail_object_offset;
135 uint64_t head_entry_offset;
136 uint64_t tail_entry_offset;
137 uint64_t last_bisect_offset;
140 uint64_t head_entry_realtime;
141 uint64_t tail_entry_realtime;