/* SPDX-License-Identifier: LGPL-2.1-or-later */
%{
#if __GNUC__ >= 7
_Pragma("GCC diagnostic ignored \"-Wimplicit-fallthrough\"")
#endif
#include <stddef.h>
#include "conf-parser.h"
#include "logind.h"
%}
struct ConfigPerfItem;
%null_strings
%language=ANSI-C
%define slot-name section_and_lvalue
%define hash-function-name logind_gperf_hash
%define lookup-function-name logind_gperf_lookup
%readonly-tables
%omit-struct-type
%struct-type
%includes
%%
Login.NAutoVTs,                     config_parse_n_autovts,             0, offsetof(Manager, n_autovts)
Login.ReserveVT,                    config_parse_unsigned,              0, offsetof(Manager, reserve_vt)
Login.KillUserProcesses,            config_parse_bool,                  0, offsetof(Manager, kill_user_processes)
Login.KillOnlyUsers,                config_parse_strv,                  0, offsetof(Manager, kill_only_users)
Login.KillExcludeUsers,             config_parse_strv,                  0, offsetof(Manager, kill_exclude_users)
Login.InhibitDelayMaxSec,           config_parse_sec,                   0, offsetof(Manager, inhibit_delay_max)
Login.UserStopDelaySec,             config_parse_sec,                   0, offsetof(Manager, user_stop_delay)
Login.HandlePowerKey,               config_parse_handle_action,         0, offsetof(Manager, handle_power_key)
Login.HandleSuspendKey,             config_parse_handle_action,         0, offsetof(Manager, handle_suspend_key)
Login.HandleHibernateKey,           config_parse_handle_action,         0, offsetof(Manager, handle_hibernate_key)
Login.HandleLidSwitch,              config_parse_handle_action,         0, offsetof(Manager, handle_lid_switch)
Login.HandleLidSwitchExternalPower, config_parse_handle_action,         0, offsetof(Manager, handle_lid_switch_ep)
Login.HandleLidSwitchDocked,        config_parse_handle_action,         0, offsetof(Manager, handle_lid_switch_docked)
Login.HandleRebootKey,              config_parse_handle_action,         0, offsetof(Manager, handle_reboot_key)
Login.PowerKeyIgnoreInhibited,      config_parse_bool,                  0, offsetof(Manager, power_key_ignore_inhibited)
Login.SuspendKeyIgnoreInhibited,    config_parse_bool,                  0, offsetof(Manager, suspend_key_ignore_inhibited)
Login.HibernateKeyIgnoreInhibited,  config_parse_bool,                  0, offsetof(Manager, hibernate_key_ignore_inhibited)
Login.LidSwitchIgnoreInhibited,     config_parse_bool,                  0, offsetof(Manager, lid_switch_ignore_inhibited)
Login.RebootKeyIgnoreInhibited,     config_parse_bool,                  0, offsetof(Manager, reboot_key_ignore_inhibited)
Login.HoldoffTimeoutSec,            config_parse_sec,                   0, offsetof(Manager, holdoff_timeout_usec)
Login.IdleAction,                   config_parse_handle_action,         0, offsetof(Manager, idle_action)
Login.IdleActionSec,                config_parse_sec,                   0, offsetof(Manager, idle_action_usec)
Login.RuntimeDirectorySize,         config_parse_tmpfs_size,            0, offsetof(Manager, runtime_dir_size)
Login.RuntimeDirectoryInodesMax,    config_parse_uint64,                0, offsetof(Manager, runtime_dir_inodes)
Login.RemoveIPC,                    config_parse_bool,                  0, offsetof(Manager, remove_ipc)
Login.InhibitorsMax,                config_parse_uint64,                0, offsetof(Manager, inhibitors_max)
Login.SessionsMax,                  config_parse_uint64,                0, offsetof(Manager, sessions_max)
Login.UserTasksMax,                 config_parse_compat_user_tasks_max, 0, 0
