/* 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.ForwardToSocket,    config_parse_forward_to_socket, 0, offsetof(Server, forward_to_socket)
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.MaxLevelSocket,     config_parse_log_level,         0, offsetof(Server, max_level_socket)
Journal.SplitMode,          config_parse_split_mode,        0, offsetof(Server, split_mode)
Journal.LineMax,            config_parse_line_max,          0, offsetof(Server, line_max)