/* SPDX-License-Identifier: LGPL-2.1-or-later */
%{
#if __GNUC__ >= 7
_Pragma("GCC diagnostic ignored \"-Wimplicit-fallthrough\"")
#endif
#include <stddef.h>
#include <sys/socket.h>
#include "conf-parser.h"
#include "journald-server.h"
%}
struct ConfigPerfItem;
%null_strings
%language=ANSI-C
%define slot-name section_and_lvalue
%define hash-function-name journald_gperf_hash
%define lookup-function-name journald_gperf_lookup
%readonly-tables
%omit-struct-type
%struct-type
%includes
%%
Journal.Storage,            config_parse_storage,    0, offsetof(Server, storage)
Journal.Compress,           config_parse_compress,   0, offsetof(Server, compress)
Journal.Seal,               config_parse_bool,       0, offsetof(Server, seal)
Journal.ReadKMsg,           config_parse_bool,       0, offsetof(Server, read_kmsg)
Journal.Audit,              config_parse_tristate,   0, offsetof(Server, set_audit)
Journal.SyncIntervalSec,    config_parse_sec,        0, offsetof(Server, sync_interval_usec)
# The following is a legacy name for compatibility
Journal.RateLimitInterval,  config_parse_sec,        0, offsetof(Server, ratelimit_interval)
Journal.RateLimitIntervalSec,config_parse_sec,       0, offsetof(Server, ratelimit_interval)
Journal.RateLimitBurst,     config_parse_unsigned,   0, offsetof(Server, ratelimit_burst)
Journal.SystemMaxUse,       config_parse_iec_uint64, 0, offsetof(Server, system_storage.metrics.max_use)
Journal.SystemMaxFileSize,  config_parse_iec_uint64, 0, offsetof(Server, system_storage.metrics.max_size)
Journal.SystemKeepFree,     config_parse_iec_uint64, 0, offsetof(Server, system_storage.metrics.keep_free)
Journal.SystemMaxFiles,     config_parse_uint64,     0, offsetof(Server, system_storage.metrics.n_max_files)
Journal.RuntimeMaxUse,      config_parse_iec_uint64, 0, offsetof(Server, runtime_storage.metrics.max_use)
Journal.RuntimeMaxFileSize, config_parse_iec_uint64, 0, offsetof(Server, runtime_storage.metrics.max_size)
Journal.RuntimeKeepFree,    config_parse_iec_uint64, 0, offsetof(Server, runtime_storage.metrics.keep_free)
Journal.RuntimeMaxFiles,    config_parse_uint64,     0, offsetof(Server, runtime_storage.metrics.n_max_files)
Journal.MaxRetentionSec,    config_parse_sec,        0, offsetof(Server, max_retention_usec)
Journal.MaxFileSec,         config_parse_sec,        0, offsetof(Server, max_file_usec)
Journal.ForwardToSyslog,    config_parse_bool,       0, offsetof(Server, forward_to_syslog)
Journal.ForwardToKMsg,      config_parse_bool,       0, offsetof(Server, forward_to_kmsg)
Journal.ForwardToConsole,   config_parse_bool,       0, offsetof(Server, forward_to_console)
Journal.ForwardToWall,      config_parse_bool,       0, offsetof(Server, forward_to_wall)
Journal.TTYPath,            config_parse_path,       0, offsetof(Server, tty_path)
Journal.MaxLevelStore,      config_parse_log_level,  0, offsetof(Server, max_level_store)
Journal.MaxLevelSyslog,     config_parse_log_level,  0, offsetof(Server, max_level_syslog)
Journal.MaxLevelKMsg,       config_parse_log_level,  0, offsetof(Server, max_level_kmsg)
Journal.MaxLevelConsole,    config_parse_log_level,  0, offsetof(Server, max_level_console)
Journal.MaxLevelWall,       config_parse_log_level,  0, offsetof(Server, max_level_wall)
Journal.SplitMode,          config_parse_split_mode, 0, offsetof(Server, split_mode)
Journal.LineMax,            config_parse_line_max,   0, offsetof(Server, line_max)
