This source file includes following definitions.
- load_fragment_gperf_hash
- load_fragment_gperf_lookup
#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
&& ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \
&& (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \
&& ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \
&& ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \
&& ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \
&& ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \
&& ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \
&& ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \
&& ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \
&& ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \
&& ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \
&& ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \
&& ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \
&& ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \
&& ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \
&& ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \
&& ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \
&& ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \
&& ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \
&& ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \
&& ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \
&& ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126))
#error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gnu-gperf@gnu.org>."
#endif
#include <stddef.h>
#include "conf-parser.h"
#include "load-fragment.h"
#include "missing.h"
#include <string.h>
#define TOTAL_KEYWORDS 565
#define MIN_WORD_LENGTH 9
#define MAX_WORD_LENGTH 32
#define MIN_HASH_VALUE 26
#define MAX_HASH_VALUE 1855
#ifdef __GNUC__
__inline
#else
#ifdef __cplusplus
inline
#endif
#endif
static unsigned int
load_fragment_gperf_hash (register const char *str, register unsigned int len)
{
static const unsigned short asso_values[] =
{
1856, 1856, 1856, 1856, 1856, 1856, 1856, 1856, 1856, 1856,
1856, 1856, 1856, 1856, 1856, 1856, 1856, 1856, 1856, 1856,
1856, 1856, 1856, 1856, 1856, 1856, 1856, 1856, 1856, 1856,
1856, 1856, 1856, 1856, 1856, 1856, 1856, 1856, 1856, 1856,
1856, 1856, 1856, 1856, 1856, 1856, 1856, 1856, 1856, 1856,
1856, 1856, 1856, 1856, 5, 1856, 1856, 1856, 1856, 1856,
1856, 1856, 1856, 1856, 1856, 585, 705, 485, 490, 260,
785, 555, 20, 215, 395, 110, 195, 475, 325, 440,
45, 640, 530, 35, 190, 525, 230, 130, 20, 1856,
120, 1856, 1856, 1856, 1856, 1856, 1856, 25, 275, 0,
180, 0, 450, 295, 305, 25, 105, 570, 220, 85,
145, 145, 65, 810, 15, 10, 0, 35, 530, 565,
340, 40, 315, 1856, 1856, 1856, 1856, 1856, 1856, 1856,
1856, 1856, 1856, 1856, 1856, 1856, 1856, 1856, 1856, 1856,
1856, 1856, 1856, 1856, 1856, 1856, 1856, 1856, 1856, 1856,
1856, 1856, 1856, 1856, 1856, 1856, 1856, 1856, 1856, 1856,
1856, 1856, 1856, 1856, 1856, 1856, 1856, 1856, 1856, 1856,
1856, 1856, 1856, 1856, 1856, 1856, 1856, 1856, 1856, 1856,
1856, 1856, 1856, 1856, 1856, 1856, 1856, 1856, 1856, 1856,
1856, 1856, 1856, 1856, 1856, 1856, 1856, 1856, 1856, 1856,
1856, 1856, 1856, 1856, 1856, 1856, 1856, 1856, 1856, 1856,
1856, 1856, 1856, 1856, 1856, 1856, 1856, 1856, 1856, 1856,
1856, 1856, 1856, 1856, 1856, 1856, 1856, 1856, 1856, 1856,
1856, 1856, 1856, 1856, 1856, 1856, 1856, 1856, 1856, 1856,
1856, 1856, 1856, 1856, 1856, 1856, 1856, 1856, 1856, 1856,
1856, 1856, 1856, 1856, 1856, 1856, 1856
};
register int hval = len;
switch (hval)
{
default:
hval += asso_values[(unsigned char)str[14]];
case 14:
case 13:
case 12:
hval += asso_values[(unsigned char)str[11]];
case 11:
case 10:
case 9:
hval += asso_values[(unsigned char)str[8]+1];
case 8:
case 7:
case 6:
case 5:
case 4:
case 3:
hval += asso_values[(unsigned char)str[2]];
break;
}
return hval + asso_values[(unsigned char)str[len - 1]];
}
#ifdef __GNUC__
__inline
#if defined __GNUC_STDC_INLINE__ || defined __GNUC_GNU_INLINE__
__attribute__ ((__gnu_inline__))
#endif
#endif
const struct ConfigPerfItem *
load_fragment_gperf_lookup (register const char *str, register unsigned int len)
{
static const struct ConfigPerfItem wordlist[] =
{
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0},
{"Socket.User", config_parse_unit_string_printf, 0, offsetof(Socket, exec_context.user)},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0},
{"Path.Unit", config_parse_trigger_unit, 0, 0},
{(char*)0}, {(char*)0}, {(char*)0},
{"Socket.ProtectHome", config_parse_protect_home, 0, offsetof(Socket, exec_context)},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{"Socket.Transparent", config_parse_bool, 0, offsetof(Socket, transparent)},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0},
{"Swap.User", config_parse_unit_string_printf, 0, offsetof(Swap, exec_context.user)},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0},
{"Service.Restart", config_parse_service_restart, 0, offsetof(Service, restart)},
{"Socket.OOMScoreAdjust", config_parse_exec_oom_score_adjust, 0, offsetof(Socket, exec_context)},
{(char*)0},
{"Service.RestartSec", config_parse_sec, 0, offsetof(Service, restart_usec)},
{"Swap.What", config_parse_path, 0, offsetof(Swap, parameters_fragment.what)},
{(char*)0}, {(char*)0}, {(char*)0},
{"Swap.TTYReset", config_parse_bool, 0, offsetof(Swap, exec_context.tty_reset)},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{"Service.RuntimeDirectoryMode", config_parse_mode, 0, offsetof(Service, exec_context.runtime_directory_mode)},
{(char*)0},
{"Unit.Wants", config_parse_unit_deps, UNIT_WANTS, 0},
{(char*)0}, {(char*)0},
{"Automount.DirectoryMode", config_parse_mode, 0, offsetof(Automount, directory_mode)},
{(char*)0},
{"Path.PathExists", config_parse_path_spec, 0, 0},
{(char*)0}, {(char*)0},
{"Unit.ConditionHost", config_parse_unit_condition_string, CONDITION_HOST, 0},
{(char*)0},
{"Service.RestartForceExitStatus", config_parse_set_status, 0, offsetof(Service, restart_force_status)},
{"Service.RestrictAddressFamilies", config_parse_address_families, 0, offsetof(Service, exec_context)},
{"Service.RestartPreventExitStatus", config_parse_set_status, 0, offsetof(Service, restart_prevent_status)},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{"Socket.Slice", config_parse_unit_slice, 0, 0},
{(char*)0}, {(char*)0},
{"Swap.RuntimeDirectoryMode", config_parse_mode, 0, offsetof(Swap, exec_context.runtime_directory_mode)},
{"Unit.Before", config_parse_unit_deps, UNIT_BEFORE, 0},
{(char*)0}, {(char*)0},
{"Mount.DirectoryMode", config_parse_mode, 0, offsetof(Mount, directory_mode)},
{(char*)0},
{"Swap.Personality", config_parse_personality, 0, offsetof(Swap, exec_context.personality)},
{"Socket.SocketUser", config_parse_unit_string_printf, 0, offsetof(Socket, user)},
{(char*)0},
{"Socket.ExecStartPre", config_parse_exec, SOCKET_EXEC_START_PRE, offsetof(Socket, exec_command)},
{"Socket.ExecStartPost", config_parse_exec, SOCKET_EXEC_START_POST, offsetof(Socket, exec_command)},
{(char*)0}, {(char*)0}, {(char*)0},
{"Service.RuntimeDirectory", config_parse_runtime_directory, 0, offsetof(Service, exec_context.runtime_directory)},
{(char*)0},
{"Socket.Nice", config_parse_exec_nice, 0, offsetof(Socket, exec_context)},
{"Socket.MountFlags", config_parse_exec_mount_flags, 0, offsetof(Socket, exec_context)},
{(char*)0}, {(char*)0},
{"Socket.Priority", config_parse_int, 0, offsetof(Socket, priority)},
{(char*)0}, {(char*)0}, {(char*)0},
{"Unit.ConditionPathIsReadWrite", config_parse_unit_condition_path, CONDITION_PATH_IS_READ_WRITE, 0},
{"Unit.ConditionPathIsMountPoint", config_parse_unit_condition_path, CONDITION_PATH_IS_MOUNT_POINT, 0},
{"Service.RootDirectory", config_parse_unit_path_printf, 0, offsetof(Service, exec_context.root_directory)},
{(char*)0}, {(char*)0},
{"Unit.ConditionPathExists", config_parse_unit_condition_path, CONDITION_PATH_EXISTS, 0},
{"Socket.ListenMessageQueue", config_parse_socket_listen, SOCKET_MQUEUE, 0},
{(char*)0},
{"Service.OOMScoreAdjust", config_parse_exec_oom_score_adjust, 0, offsetof(Service, exec_context)},
{"Swap.RootDirectory", config_parse_unit_path_printf, 0, offsetof(Swap, exec_context.root_directory)},
{"Socket.ListenSequentialPacket", config_parse_socket_listen, SOCKET_SOCKET, 0},
{"Service.RootDirectoryStartOnly", config_parse_bool, 0, offsetof(Service, root_directory_start_only)},
{"Swap.RuntimeDirectory", config_parse_runtime_directory, 0, offsetof(Swap, exec_context.runtime_directory)},
{(char*)0},
{"Install.RequiredBy", NULL, 0, 0},
{(char*)0},
{"Socket.DirectoryMode", config_parse_mode, 0, offsetof(Socket, directory_mode)},
{"Slice.Slice", config_parse_unit_slice, 0, 0},
{"Unit.AllowIsolate", config_parse_bool, 0, offsetof(Unit, allow_isolate)},
{"Swap.Priority", config_parse_int, 0, offsetof(Swap, parameters_fragment.priority)},
{(char*)0}, {(char*)0}, {(char*)0},
{"Unit.ConditionSecurity", config_parse_unit_condition_string, CONDITION_SECURITY, 0},
{"Service.Group", config_parse_unit_string_printf, 0, offsetof(Service, exec_context.group)},
{(char*)0},
{"Socket.ProtectSystem", config_parse_protect_system, 0, offsetof(Socket, exec_context)},
{"Mount.Slice", config_parse_unit_slice, 0, 0},
{"Socket.Group", config_parse_unit_string_printf, 0, offsetof(Socket, exec_context.group)},
{(char*)0},
{"Socket.LimitAS", config_parse_limit, RLIMIT_AS, offsetof(Socket, exec_context.rlimit)},
{"Socket.PipeSize", config_parse_iec_size, 0, offsetof(Socket, pipe_size)},
{(char*)0}, {(char*)0},
{"Socket.ExecStopPre", config_parse_exec, SOCKET_EXEC_STOP_PRE, offsetof(Socket, exec_command)},
{"Socket.ExecStopPost", config_parse_exec, SOCKET_EXEC_STOP_POST, offsetof(Socket, exec_command)},
{(char*)0},
{"Swap.ProtectHome", config_parse_protect_home, 0, offsetof(Swap, exec_context)},
{"Swap.Options", config_parse_string, 0, offsetof(Swap, parameters_fragment.options)},
{"Socket.SocketGroup", config_parse_unit_string_printf, 0, offsetof(Socket, group)},
{"Unit.ConditionPathIsDirectory", config_parse_unit_condition_path, CONDITION_PATH_IS_DIRECTORY, 0},
{(char*)0},
{"Socket.TimerSlackNSec", config_parse_nsec, 0, offsetof(Socket, exec_context.timer_slack_nsec)},
{(char*)0}, {(char*)0},
{"Mount.SloppyOptions", config_parse_bool, 0, offsetof(Mount, sloppy_options)},
{"Mount.PrivateDevices", config_parse_bool, 0, offsetof(Mount, exec_context.private_devices)},
{(char*)0}, {(char*)0},
{"Swap.ProtectSystem", config_parse_protect_system, 0, offsetof(Swap, exec_context)},
{(char*)0}, {(char*)0},
{"Mount.Group", config_parse_unit_string_printf, 0, offsetof(Mount, exec_context.group)},
{(char*)0}, {(char*)0},
{"Mount.TTYReset", config_parse_bool, 0, offsetof(Mount, exec_context.tty_reset)},
{(char*)0},
{"Unit.BindTo", config_parse_unit_deps, UNIT_BINDS_TO, 0},
{(char*)0}, {(char*)0},
{"Mount.RootDirectory", config_parse_unit_path_printf, 0, offsetof(Mount, exec_context.root_directory)},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0},
{"Socket.LimitRSS", config_parse_limit, RLIMIT_RSS, offsetof(Socket, exec_context.rlimit)},
{"Unit.ConditionKernelCommandLine", config_parse_unit_condition_string, CONDITION_KERNEL_COMMAND_LINE, 0},
{(char*)0}, {(char*)0}, {(char*)0},
{"Socket.InaccessibleDirectories", config_parse_namespace_path_strv, 0, offsetof(Socket, exec_context.inaccessible_dirs)},
{(char*)0}, {(char*)0}, {(char*)0},
{"Service.WatchdogSec", config_parse_sec, 0, offsetof(Service, watchdog_usec)},
{"Timer.Unit", config_parse_trigger_unit, 0, 0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{"Socket.ListenStream", config_parse_socket_listen, SOCKET_SOCKET, 0},
{(char*)0}, {(char*)0},
{"Swap.LimitAS", config_parse_limit, RLIMIT_AS, offsetof(Swap, exec_context.rlimit)},
{"Swap.LimitRSS", config_parse_limit, RLIMIT_RSS, offsetof(Swap, exec_context.rlimit)},
{(char*)0},
{"Swap.Slice", config_parse_unit_slice, 0, 0},
{"Socket.Broadcast", config_parse_bool, 0, offsetof(Socket, broadcast)},
{(char*)0},
{"Service.Slice", config_parse_unit_slice, 0, 0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0},
{"Mount.Nice", config_parse_exec_nice, 0, offsetof(Mount, exec_context)},
{(char*)0},
{"Socket.SocketMode", config_parse_mode, 0, offsetof(Socket, socket_mode)},
{(char*)0}, {(char*)0}, {(char*)0},
{"Mount.TimeoutSec", config_parse_sec, 0, offsetof(Mount, timeout_usec)},
{(char*)0},
{"Swap.StandardError", config_parse_output, 0, offsetof(Swap, exec_context.std_error)},
{(char*)0},
{"Mount.TimerSlackNSec", config_parse_nsec, 0, offsetof(Mount, exec_context.timer_slack_nsec)},
{"Socket.ListenDatagram", config_parse_socket_listen, SOCKET_SOCKET, 0},
{(char*)0},
{"Mount.Options", config_parse_string, 0, offsetof(Mount, parameters_fragment.options)},
{"Swap.StandardOutput", config_parse_output, 0, offsetof(Swap, exec_context.std_output)},
{(char*)0},
{"Mount.SecureBits", config_parse_exec_secure_bits, 0, offsetof(Mount, exec_context)},
{(char*)0}, {(char*)0},
{"Mount.ProtectSystem", config_parse_protect_system, 0, offsetof(Mount, exec_context)},
{(char*)0},
{"Path.PathChanged", config_parse_path_spec, 0, 0},
{(char*)0}, {(char*)0}, {(char*)0},
{"Service.SuccessExitStatus", config_parse_set_status, 0, offsetof(Service, success_status)},
{(char*)0}, {(char*)0}, {(char*)0},
{"Swap.CPUShares", config_parse_cpu_shares, 0, offsetof(Swap, cgroup_context.cpu_shares)},
{(char*)0}, {(char*)0},
{"Swap.DevicePolicy", config_parse_device_policy, 0, offsetof(Swap, cgroup_context.device_policy)},
{"Socket.Accept", config_parse_bool, 0, offsetof(Socket, accept)},
{(char*)0}, {(char*)0},
{"Scope.Slice", config_parse_unit_slice, 0, 0},
{"Mount.ProtectHome", config_parse_protect_home, 0, offsetof(Mount, exec_context)},
{"Socket.Environment", config_parse_environ, 0, offsetof(Socket, exec_context.environment)},
{(char*)0}, {(char*)0},
{"Timer.Persistent", config_parse_bool, 0, offsetof(Timer, persistent)},
{"Socket.EnvironmentFile", config_parse_unit_env_file, 0, offsetof(Socket, exec_context.environment_files)},
{"Service.StartLimitBurst", config_parse_unsigned, 0, offsetof(Service, start_limit.burst)},
{(char*)0},
{"Swap.StartupBlockIOWeight", config_parse_blockio_weight, 0, offsetof(Swap, cgroup_context.startup_blockio_weight)},
{(char*)0},
{"Mount.Personality", config_parse_personality, 0, offsetof(Mount, exec_context.personality)},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{"Mount.WorkingDirectory", config_parse_unit_path_printf, 0, offsetof(Mount, exec_context.working_directory)},
{"Swap.RestrictAddressFamilies", config_parse_address_families, 0, offsetof(Swap, exec_context)},
{"Mount.KillMode", config_parse_kill_mode, 0, offsetof(Mount, kill_context.kill_mode)},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0},
{"Service.User", config_parse_unit_string_printf, 0, offsetof(Service, exec_context.user)},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0},
{"Service.ReadWriteDirectories", config_parse_namespace_path_strv, 0, offsetof(Service, exec_context.read_write_dirs)},
{(char*)0}, {(char*)0},
{"Mount.TTYVHangup", config_parse_bool, 0, offsetof(Mount, exec_context.tty_vhangup)},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0},
{"Socket.TimeoutSec", config_parse_sec, 0, offsetof(Socket, timeout_usec)},
{"Swap.KillMode", config_parse_kill_mode, 0, offsetof(Swap, kill_context.kill_mode)},
{"Swap.ReadOnlyDirectories", config_parse_namespace_path_strv, 0, offsetof(Swap, exec_context.read_only_dirs)},
{(char*)0},
{"Mount.PrivateTmp", config_parse_bool, 0, offsetof(Mount, exec_context.private_tmp)},
{"Socket.PrivateTmp", config_parse_bool, 0, offsetof(Socket, exec_context.private_tmp)},
{(char*)0}, {(char*)0},
{"Unit.ReloadPropagatedFrom", config_parse_unit_deps, UNIT_RELOAD_PROPAGATED_FROM, 0},
{(char*)0},
{"Slice.MemoryLimit", config_parse_memory_limit, 0, offsetof(Slice, cgroup_context)},
{"Service.StartupBlockIOWeight", config_parse_blockio_weight, 0, offsetof(Service, cgroup_context.startup_blockio_weight)},
{"Socket.BindToDevice", config_parse_socket_bindtodevice, 0, 0},
{"Slice.CPUShares", config_parse_cpu_shares, 0, offsetof(Slice, cgroup_context.cpu_shares)},
{"Mount.RuntimeDirectoryMode", config_parse_mode, 0, offsetof(Mount, exec_context.runtime_directory_mode)},
{(char*)0},
{"Install.DefaultInstance", NULL, 0, 0},
{"Service.StartupCPUShares", config_parse_cpu_shares, 0, offsetof(Service, cgroup_context.startup_cpu_shares)},
{"Mount.What", config_parse_string, 0, offsetof(Mount, parameters_fragment.what)},
{(char*)0},
{"Mount.MemoryLimit", config_parse_memory_limit, 0, offsetof(Mount, cgroup_context)},
{(char*)0},
{"Slice.BlockIOWeight", config_parse_blockio_weight, 0, offsetof(Slice, cgroup_context.blockio_weight)},
{"Mount.CPUShares", config_parse_cpu_shares, 0, offsetof(Mount, cgroup_context.cpu_shares)},
{"Swap.MemoryLimit", config_parse_memory_limit, 0, offsetof(Swap, cgroup_context)},
{"Unit.BindsTo", config_parse_unit_deps, UNIT_BINDS_TO, 0},
{(char*)0}, {(char*)0},
{"Slice.BlockIODeviceWeight", config_parse_blockio_device_weight, 0, offsetof(Slice, cgroup_context)},
{(char*)0}, {(char*)0}, {(char*)0},
{"Mount.BlockIOWeight", config_parse_blockio_weight, 0, offsetof(Mount, cgroup_context.blockio_weight)},
{(char*)0},
{"Timer.OnUnitActiveSec", config_parse_timer, 0, 0},
{(char*)0}, {(char*)0},
{"Socket.NoDelay", config_parse_bool, 0, offsetof(Socket, no_delay)},
{"Mount.BlockIODeviceWeight", config_parse_blockio_device_weight, 0, offsetof(Mount, cgroup_context)},
{(char*)0},
{"Timer.AccuracySec", config_parse_sec, 0, offsetof(Timer, accuracy_usec)},
{(char*)0},
{"Unit.Conflicts", config_parse_unit_deps, UNIT_CONFLICTS, 0},
{"Scope.TimeoutStopSec", config_parse_sec, 0, offsetof(Scope, timeout_stop_usec)},
{(char*)0},
{"Service.UtmpIdentifier", config_parse_unit_string_printf, 0, offsetof(Service, exec_context.utmp_id)},
{"Swap.StandardInput", config_parse_input, 0, offsetof(Swap, exec_context.std_input)},
{"Unit.OnFailure", config_parse_unit_deps, UNIT_ON_FAILURE, 0},
{(char*)0}, {(char*)0},
{"Mount.RuntimeDirectory", config_parse_runtime_directory, 0, offsetof(Mount, exec_context.runtime_directory)},
{(char*)0},
{"Path.PathExistsGlob", config_parse_path_spec, 0, 0},
{"Automount.Where", config_parse_path, 0, offsetof(Automount, where)},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0},
{"Mount.ReadWriteDirectories", config_parse_namespace_path_strv, 0, offsetof(Mount, exec_context.read_write_dirs)},
{(char*)0},
{"Timer.OnUnitInactiveSec", config_parse_timer, 0, 0},
{(char*)0}, {(char*)0}, {(char*)0},
{"Mount.SyslogIdentifier", config_parse_unit_string_printf, 0, offsetof(Mount, exec_context.syslog_identifier)},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0},
{"Timer.OnStartupSec", config_parse_timer, 0, 0},
{"Mount.InaccessibleDirectories", config_parse_namespace_path_strv, 0, offsetof(Mount, exec_context.inaccessible_dirs)},
{"Socket.Symlinks", config_parse_unit_path_strv_printf, 0, offsetof(Socket, symlinks)},
{(char*)0},
{"Mount.SystemCallFilter", config_parse_syscall_filter, 0, offsetof(Mount, exec_context)},
{"Socket.SystemCallFilter", config_parse_syscall_filter, 0, offsetof(Socket, exec_context)},
{"Mount.SystemCallArchitectures", config_parse_syscall_archs, 0, offsetof(Mount, exec_context.syscall_archs)},
{"Socket.SystemCallArchitectures", config_parse_syscall_archs, 0, offsetof(Socket, exec_context.syscall_archs)},
{(char*)0},
{"Mount.SystemCallErrorNumber", config_parse_syscall_errno, 0, offsetof(Mount, exec_context)},
{"Socket.SystemCallErrorNumber", config_parse_syscall_errno, 0, offsetof(Socket, exec_context)},
{"Socket.BindIPv6Only", config_parse_socket_bind, 0, 0,},
{(char*)0},
{"Service.StandardInput", config_parse_input, 0, offsetof(Service, exec_context.std_input)},
{"Service.StandardOutput", config_parse_output, 0, offsetof(Service, exec_context.std_output)},
{(char*)0},
{"Scope.KillMode", config_parse_kill_mode, 0, offsetof(Scope, kill_context.kill_mode)},
{"Mount.SyslogFacility", config_parse_log_facility, 0, offsetof(Mount, exec_context.syslog_priority)},
{(char*)0},
{"Service.SupplementaryGroups", config_parse_strv, 0, offsetof(Service, exec_context.supplementary_groups)},
{(char*)0}, {(char*)0},
{"Mount.UtmpIdentifier", config_parse_unit_string_printf, 0, offsetof(Mount, exec_context.utmp_id)},
{(char*)0}, {(char*)0},
{"Unit.ConditionPathExistsGlob", config_parse_unit_condition_path, CONDITION_PATH_EXISTS_GLOB, 0},
{"Unit.DefaultDependencies", config_parse_bool, 0, offsetof(Unit, default_dependencies)},
{"Unit.ConditionNeedsUpdate", config_parse_unit_condition_path, CONDITION_NEEDS_UPDATE, 0},
{"Service.StandardError", config_parse_output, 0, offsetof(Service, exec_context.std_error)},
{(char*)0}, {(char*)0},
{"Socket.PassSecurity", config_parse_bool, 0, offsetof(Socket, pass_sec)},
{"Service.DevicePolicy", config_parse_device_policy, 0, offsetof(Service, cgroup_context.device_policy)},
{"Mount.KillSignal", config_parse_kill_signal, 0, offsetof(Mount, kill_context.kill_signal)},
{(char*)0}, {(char*)0}, {(char*)0},
{"Socket.ListenSpecial", config_parse_socket_listen, SOCKET_SPECIAL, 0},
{(char*)0},
{"Slice.StartupCPUShares", config_parse_cpu_shares, 0, offsetof(Slice, cgroup_context.startup_cpu_shares)},
{(char*)0},
{"Service.StartLimitAction", config_parse_failure_action, 0, offsetof(Service, start_limit_action)},
{"Socket.StandardInput", config_parse_input, 0, offsetof(Socket, exec_context.std_input)},
{"Socket.StandardOutput", config_parse_output, 0, offsetof(Socket, exec_context.std_output)},
{(char*)0}, {(char*)0},
{"Socket.IOSchedulingClass", config_parse_exec_io_class, 0, offsetof(Socket, exec_context)},
{(char*)0},
{"Swap.TTYVTDisallocate", config_parse_bool, 0, offsetof(Swap, exec_context.tty_vt_disallocate)},
{"Mount.StartupCPUShares", config_parse_cpu_shares, 0, offsetof(Mount, cgroup_context.startup_cpu_shares)},
{(char*)0}, {(char*)0},
{"Swap.MountFlags", config_parse_exec_mount_flags, 0, offsetof(Swap, exec_context)},
{(char*)0},
{"Path.PathModified", config_parse_path_spec, 0, 0},
{(char*)0},
{"Swap.OOMScoreAdjust", config_parse_exec_oom_score_adjust, 0, offsetof(Swap, exec_context)},
{"Socket.StandardError", config_parse_output, 0, offsetof(Socket, exec_context.std_error)},
{"Socket.UtmpIdentifier", config_parse_unit_string_printf, 0, offsetof(Socket, exec_context.utmp_id)},
{"Scope.MemoryLimit", config_parse_memory_limit, 0, offsetof(Scope, cgroup_context)},
{(char*)0}, {(char*)0},
{"Scope.CPUShares", config_parse_cpu_shares, 0, offsetof(Scope, cgroup_context.cpu_shares)},
{"Swap.Environment", config_parse_environ, 0, offsetof(Swap, exec_context.environment)},
{(char*)0}, {(char*)0},
{"Slice.CPUQuota", config_parse_cpu_quota, 0, offsetof(Slice, cgroup_context)},
{"Swap.EnvironmentFile", config_parse_unit_env_file, 0, offsetof(Swap, exec_context.environment_files)},
{(char*)0},
{"Swap.IOSchedulingClass", config_parse_exec_io_class, 0, offsetof(Swap, exec_context)},
{(char*)0},
{"Scope.BlockIOWeight", config_parse_blockio_weight, 0, offsetof(Scope, cgroup_context.blockio_weight)},
{"Swap.TTYVHangup", config_parse_bool, 0, offsetof(Swap, exec_context.tty_vhangup)},
{"Timer.WakeSystem", config_parse_bool, 0, offsetof(Timer, wake_system)},
{(char*)0},
{"Swap.IgnoreSIGPIPE", config_parse_bool, 0, offsetof(Swap, exec_context.ignore_sigpipe)},
{"Mount.CPUQuota", config_parse_cpu_quota, 0, offsetof(Mount, cgroup_context)},
{"Scope.BlockIODeviceWeight", config_parse_blockio_device_weight, 0, offsetof(Scope, cgroup_context)},
{"Socket.MaxConnections", config_parse_unsigned, 0, offsetof(Socket, max_connections)},
{"Socket.IOSchedulingPriority", config_parse_exec_io_priority, 0, offsetof(Socket, exec_context)},
{"Unit.ConditionVirtualization", config_parse_unit_condition_string, CONDITION_VIRTUALIZATION, 0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{"Mount.PAMName", config_parse_unit_string_printf, 0, offsetof(Mount, exec_context.pam_name)},
{(char*)0}, {(char*)0},
{"Service.InaccessibleDirectories", config_parse_namespace_path_strv, 0, offsetof(Service, exec_context.inaccessible_dirs)},
{"BusName.Name", config_parse_string, 0, offsetof(BusName, name)},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{"Service.Nice", config_parse_exec_nice, 0, offsetof(Service, exec_context)},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0},
{"Mount.TTYPath", config_parse_unit_path_printf, 0, offsetof(Mount, exec_context.tty_path)},
{(char*)0},
{"Swap.IOSchedulingPriority", config_parse_exec_io_priority, 0, offsetof(Swap, exec_context)},
{(char*)0},
{"Swap.PAMName", config_parse_unit_string_printf, 0, offsetof(Swap, exec_context.pam_name)},
{"Mount.IOSchedulingClass", config_parse_exec_io_class, 0, offsetof(Mount, exec_context)},
{(char*)0}, {(char*)0},
{"Socket.ReusePort", config_parse_bool, 0, offsetof(Socket, reuse_port)},
{(char*)0}, {(char*)0},
{"Swap.Nice", config_parse_exec_nice, 0, offsetof(Swap, exec_context)},
{(char*)0},
{"Socket.DeferAcceptSec", config_parse_sec, 0, offsetof(Socket, defer_accept)},
{"Service.ReadOnlyDirectories", config_parse_namespace_path_strv, 0, offsetof(Service, exec_context.read_only_dirs)},
{(char*)0},
{"Socket.Service", config_parse_socket_service, 0, 0},
{"Swap.TimeoutSec", config_parse_sec, 0, offsetof(Swap, timeout_usec)},
{"Service.StartLimitInterval", config_parse_sec, 0, offsetof(Service, start_limit.interval)},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{"Mount.Where", config_parse_path, 0, offsetof(Mount, where)},
{(char*)0}, {(char*)0},
{"Swap.CPUSchedulingPolicy", config_parse_exec_cpu_sched_policy, 0, offsetof(Swap, exec_context)},
{"Unit.After", config_parse_unit_deps, UNIT_AFTER, 0},
{"Swap.CPUSchedulingPriority", config_parse_exec_cpu_sched_prio, 0, offsetof(Swap, exec_context)},
{(char*)0},
{"Service.NoNewPrivileges", config_parse_no_new_privileges, 0, offsetof(Service, exec_context)},
{(char*)0},
{"Socket.RestrictAddressFamilies", config_parse_address_families, 0, offsetof(Socket, exec_context)},
{"Swap.SyslogIdentifier", config_parse_unit_string_printf, 0, offsetof(Swap, exec_context.syslog_identifier)},
{(char*)0},
{"Socket.MemoryLimit", config_parse_memory_limit, 0, offsetof(Socket, cgroup_context)},
{(char*)0},
{"Mount.User", config_parse_unit_string_printf, 0, offsetof(Mount, exec_context.user)},
{"Mount.IOSchedulingPriority", config_parse_exec_io_priority, 0, offsetof(Mount, exec_context)},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{"Scope.KillSignal", config_parse_kill_signal, 0, offsetof(Scope, kill_context.kill_signal)},
{"Socket.SecureBits", config_parse_exec_secure_bits, 0, offsetof(Socket, exec_context)},
{(char*)0}, {(char*)0}, {(char*)0},
{"Unit.PartOf", config_parse_unit_deps, UNIT_PART_OF, 0},
{"Socket.KillSignal", config_parse_kill_signal, 0, offsetof(Socket, kill_context.kill_signal)},
{"Path.MakeDirectory", config_parse_bool, 0, offsetof(Path, make_directory)},
{(char*)0},
{"Service.SysVStartPriority", config_parse_sysv_priority, 0, offsetof(Service, sysv_start_priority)},
{(char*)0},
{"Slice.MemoryAccounting", config_parse_bool, 0, offsetof(Slice, cgroup_context.memory_accounting)},
{"Swap.InaccessibleDirectories", config_parse_namespace_path_strv, 0, offsetof(Swap, exec_context.inaccessible_dirs)},
{(char*)0}, {(char*)0}, {(char*)0},
{"Scope.StartupCPUShares", config_parse_cpu_shares, 0, offsetof(Scope, cgroup_context.startup_cpu_shares)},
{(char*)0}, {(char*)0}, {(char*)0},
{"Mount.LimitLOCKS", config_parse_limit, RLIMIT_LOCKS, offsetof(Mount, exec_context.rlimit)},
{"Mount.MemoryAccounting", config_parse_bool, 0, offsetof(Mount, cgroup_context.memory_accounting)},
{(char*)0}, {(char*)0},
{"Socket.TTYReset", config_parse_bool, 0, offsetof(Socket, exec_context.tty_reset)},
{"Swap.SyslogLevel", config_parse_log_level, 0, offsetof(Swap, exec_context.syslog_priority)},
{(char*)0}, {(char*)0}, {(char*)0},
{"Swap.NoNewPrivileges", config_parse_no_new_privileges, 0, offsetof(Swap, exec_context)},
{"Socket.SyslogFacility", config_parse_log_facility, 0, offsetof(Socket, exec_context.syslog_priority)},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0},
{"Service.Type", config_parse_service_type, 0, offsetof(Service, type)},
{"Socket.StartupCPUShares", config_parse_cpu_shares, 0, offsetof(Socket, cgroup_context.startup_cpu_shares)},
{(char*)0},
{"Swap.LimitSTACK", config_parse_limit, RLIMIT_STACK, offsetof(Swap, exec_context.rlimit)},
{"Socket.PrivateDevices", config_parse_bool, 0, offsetof(Socket, exec_context.private_devices)},
{(char*)0},
{"Service.TimeoutSec", config_parse_service_timeout, 0, offsetof(Service, timeout_start_usec)},
{"Scope.CPUQuota", config_parse_cpu_quota, 0, offsetof(Scope, cgroup_context)},
{"Unit.IgnoreOnIsolate", config_parse_bool, 0, offsetof(Unit, ignore_on_isolate)},
{(char*)0},
{"Service.TimeoutStopSec", config_parse_service_timeout, 0, offsetof(Service, timeout_stop_usec)},
{"Service.TimeoutStartSec", config_parse_service_timeout, 0, offsetof(Service, timeout_start_usec)},
{(char*)0}, {(char*)0}, {(char*)0},
{"Socket.SendSIGHUP", config_parse_bool, 0, offsetof(Socket, kill_context.send_sighup)},
{"Unit.JobTimeoutSec", config_parse_sec, 0, offsetof(Unit, job_timeout)},
{"Mount.StandardInput", config_parse_input, 0, offsetof(Mount, exec_context.std_input)},
{(char*)0},
{"Unit.OnFailureIsolate", config_parse_job_mode_isolate, 0, offsetof(Unit, on_failure_job_mode)},
{"Swap.Capabilities", config_parse_exec_capabilities, 0, offsetof(Swap, exec_context)},
{"Socket.LimitRTTIME", config_parse_limit, RLIMIT_RTTIME, offsetof(Socket, exec_context.rlimit)},
{(char*)0},
{"Swap.ReadWriteDirectories", config_parse_namespace_path_strv, 0, offsetof(Swap, exec_context.read_write_dirs)},
{"Unit.Description", config_parse_unit_string_printf, 0, offsetof(Unit, description)},
{(char*)0},
{"Unit.Requires", config_parse_unit_deps, UNIT_REQUIRES, 0},
{"Unit.JobTimeoutRebootArgument", config_parse_string, 0, offsetof(Unit, job_timeout_reboot_arg)},
{"Service.GuessMainPID", config_parse_bool, 0, offsetof(Service, guess_main_pid)},
{"Slice.StartupBlockIOWeight", config_parse_blockio_weight, 0, offsetof(Slice, cgroup_context.startup_blockio_weight)},
{"Service.CPUShares", config_parse_cpu_shares, 0, offsetof(Service, cgroup_context.cpu_shares)},
{(char*)0}, {(char*)0},
{"Timer.OnBootSec", config_parse_timer, 0, 0},
{"Swap.CapabilityBoundingSet", config_parse_bounding_set, 0, offsetof(Swap, exec_context.capability_bounding_set_drop)},
{"BusName.SELinuxContext", config_parse_exec_selinux_context, 0, 0},
{(char*)0}, {(char*)0}, {(char*)0},
{"Mount.StartupBlockIOWeight", config_parse_blockio_weight, 0, offsetof(Mount, cgroup_context.startup_blockio_weight)},
{"Service.SELinuxContext", config_parse_exec_selinux_context, 0, offsetof(Service, exec_context)},
{"Swap.CPUQuota", config_parse_cpu_quota, 0, offsetof(Swap, cgroup_context)},
{"Unit.Requisite", config_parse_unit_deps, UNIT_REQUISITE, 0},
{"Socket.KillMode", config_parse_kill_mode, 0, offsetof(Socket, kill_context.kill_mode)},
{(char*)0},
{"Socket.LimitFSIZE", config_parse_limit, RLIMIT_FSIZE, offsetof(Socket, exec_context.rlimit)},
{(char*)0},
{"Unit.ConditionCapability", config_parse_unit_condition_string, CONDITION_CAPABILITY, 0},
{"Service.LimitAS", config_parse_limit, RLIMIT_AS, offsetof(Service, exec_context.rlimit)},
{"Service.LimitRSS", config_parse_limit, RLIMIT_RSS, offsetof(Service, exec_context.rlimit)},
{(char*)0},
{"Socket.CapabilityBoundingSet", config_parse_bounding_set, 0, offsetof(Socket, exec_context.capability_bounding_set_drop)},
{"Socket.Capabilities", config_parse_exec_capabilities, 0, offsetof(Socket, exec_context)},
{"Swap.UMask", config_parse_mode, 0, offsetof(Swap, exec_context.umask)},
{(char*)0},
{"Service.CPUSchedulingPolicy", config_parse_exec_cpu_sched_policy, 0, offsetof(Service, exec_context)},
{"Socket.LimitRTPRIO", config_parse_limit, RLIMIT_RTPRIO, offsetof(Socket, exec_context.rlimit)},
{"Service.CPUSchedulingPriority", config_parse_exec_cpu_sched_prio, 0, offsetof(Service, exec_context)},
{(char*)0},
{"Unit.ConditionDirectoryNotEmpty", config_parse_unit_condition_path, CONDITION_DIRECTORY_NOT_EMPTY, 0},
{(char*)0},
{"Unit.ConditionNull", config_parse_unit_condition_null, 0, 0},
{(char*)0},
{"Socket.RootDirectory", config_parse_unit_path_printf, 0, offsetof(Socket, exec_context.root_directory)},
{"Swap.WorkingDirectory", config_parse_unit_path_printf, 0, offsetof(Swap, exec_context.working_directory)},
{"Socket.ReadWriteDirectories", config_parse_namespace_path_strv, 0, offsetof(Socket, exec_context.read_write_dirs)},
{(char*)0},
{"Swap.LimitNICE", config_parse_limit, RLIMIT_NICE, offsetof(Swap, exec_context.rlimit)},
{(char*)0}, {(char*)0}, {(char*)0},
{"Slice.BlockIOAccounting", config_parse_bool, 0, offsetof(Slice, cgroup_context.blockio_accounting)},
{(char*)0},
{"Service.IOSchedulingClass", config_parse_exec_io_class, 0, offsetof(Service, exec_context)},
{"Service.KillMode", config_parse_kill_mode, 0, offsetof(Service, kill_context.kill_mode)},
{"Service.BusPolicy", config_parse_warn_compat, 0, 0},
{(char*)0},
{"Mount.StandardError", config_parse_output, 0, offsetof(Mount, exec_context.std_error)},
{"Swap.Group", config_parse_unit_string_printf, 0, offsetof(Swap, exec_context.group)},
{"Timer.OnCalendar", config_parse_timer, 0, 0},
{(char*)0},
{"Mount.BlockIOAccounting", config_parse_bool, 0, offsetof(Mount, cgroup_context.blockio_accounting)},
{"Swap.SELinuxContext", config_parse_exec_selinux_context, 0, offsetof(Swap, exec_context)},
{(char*)0},
{"Slice.BlockIOReadBandwidth", config_parse_blockio_bandwidth, 0, offsetof(Slice, cgroup_context)},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0},
{"Socket.LimitLOCKS", config_parse_limit, RLIMIT_LOCKS, offsetof(Socket, exec_context.rlimit)},
{"Socket.WorkingDirectory", config_parse_unit_path_printf, 0, offsetof(Socket, exec_context.working_directory)},
{(char*)0}, {(char*)0},
{"Mount.BlockIOReadBandwidth", config_parse_blockio_bandwidth, 0, offsetof(Mount, cgroup_context)},
{"Scope.MemoryAccounting", config_parse_bool, 0, offsetof(Scope, cgroup_context.memory_accounting)},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{"Slice.BlockIOWriteBandwidth", config_parse_blockio_bandwidth, 0, offsetof(Slice, cgroup_context)},
{(char*)0},
{"Socket.DevicePolicy", config_parse_device_policy, 0, offsetof(Socket, cgroup_context.device_policy)},
{"Swap.LimitLOCKS", config_parse_limit, RLIMIT_LOCKS, offsetof(Swap, exec_context.rlimit)},
{"Swap.StartupCPUShares", config_parse_cpu_shares, 0, offsetof(Swap, cgroup_context.startup_cpu_shares)},
{(char*)0},
{"Service.IOSchedulingPriority", config_parse_exec_io_priority, 0, offsetof(Service, exec_context)},
{(char*)0}, {(char*)0},
{"Unit.ConditionArchitecture", config_parse_unit_condition_string, CONDITION_ARCHITECTURE, 0},
{"Mount.BlockIOWriteBandwidth", config_parse_blockio_bandwidth, 0, offsetof(Mount, cgroup_context)},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{"Swap.SyslogLevelPrefix", config_parse_bool, 0, offsetof(Swap, exec_context.syslog_level_prefix)},
{(char*)0}, {(char*)0},
{"Mount.CPUSchedulingPolicy", config_parse_exec_cpu_sched_policy, 0, offsetof(Mount, exec_context)},
{"Unit.ConditionACPower", config_parse_unit_condition_string, CONDITION_AC_POWER, 0},
{"Mount.CPUSchedulingPriority", config_parse_exec_cpu_sched_prio, 0, offsetof(Mount, exec_context)},
{(char*)0},
{"Service.ProtectHome", config_parse_protect_home, 0, offsetof(Service, exec_context)},
{(char*)0},
{"Unit.JoinsNamespaceOf", config_parse_unit_deps, UNIT_JOINS_NAMESPACE_OF, 0},
{(char*)0},
{"Socket.SyslogIdentifier", config_parse_unit_string_printf, 0, offsetof(Socket, exec_context.syslog_identifier)},
{"Service.SyslogIdentifier", config_parse_unit_string_printf, 0, offsetof(Service, exec_context.syslog_identifier)},
{(char*)0}, {(char*)0}, {(char*)0},
{"Service.RemainAfterExit", config_parse_bool, 0, offsetof(Service, remain_after_exit)},
{"Mount.RestrictAddressFamilies", config_parse_address_families, 0, offsetof(Mount, exec_context)},
{"Swap.SendSIGHUP", config_parse_bool, 0, offsetof(Swap, kill_context.send_sighup)},
{(char*)0},
{"Socket.NoNewPrivileges", config_parse_no_new_privileges, 0, offsetof(Socket, exec_context)},
{"Swap.BlockIOWeight", config_parse_blockio_weight, 0, offsetof(Swap, cgroup_context.blockio_weight)},
{(char*)0}, {(char*)0}, {(char*)0},
{"Mount.TTYVTDisallocate", config_parse_bool, 0, offsetof(Mount, exec_context.tty_vt_disallocate)},
{(char*)0}, {(char*)0},
{"Socket.ListenNetlink", config_parse_socket_listen, SOCKET_SOCKET, 0},
{"Unit.IgnoreOnSnapshot", config_parse_bool, 0, offsetof(Unit, ignore_on_snapshot)},
{"Unit.ConditionPathIsSymbolicLink",config_parse_unit_condition_path, CONDITION_PATH_IS_SYMBOLIC_LINK,0},
{"Socket.SyslogLevel", config_parse_log_level, 0, offsetof(Socket, exec_context.syslog_priority)},
{"Service.MemoryLimit", config_parse_memory_limit, 0, offsetof(Service, cgroup_context)},
{"Swap.LimitFSIZE", config_parse_limit, RLIMIT_FSIZE, offsetof(Swap, exec_context.rlimit)},
{"Scope.StartupBlockIOWeight", config_parse_blockio_weight, 0, offsetof(Scope, cgroup_context.startup_blockio_weight)},
{(char*)0}, {(char*)0}, {(char*)0},
{"Unit.SourcePath", config_parse_path, 0, offsetof(Unit, source_path)},
{(char*)0}, {(char*)0}, {(char*)0},
{"Socket.LimitMEMLOCK", config_parse_limit, RLIMIT_MEMLOCK, offsetof(Socket, exec_context.rlimit)},
{"Mount.SELinuxContext", config_parse_exec_selinux_context, 0, offsetof(Mount, exec_context)},
{(char*)0}, {(char*)0},
{"Swap.LimitCPU", config_parse_limit, RLIMIT_CPU, offsetof(Swap, exec_context.rlimit)},
{"Slice.CPUAccounting", config_parse_bool, 0, offsetof(Slice, cgroup_context.cpu_accounting)},
{(char*)0},
{"Unit.JobTimeoutAction", config_parse_failure_action, 0, offsetof(Unit, job_timeout_action)},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0},
{"Socket.IPTOS", config_parse_ip_tos, 0, offsetof(Socket, ip_tos)},
{(char*)0},
{"Mount.CPUAccounting", config_parse_bool, 0, offsetof(Mount, cgroup_context.cpu_accounting)},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{"Service.SystemCallFilter", config_parse_syscall_filter, 0, offsetof(Service, exec_context)},
{"Mount.PrivateNetwork", config_parse_bool, 0, offsetof(Mount, exec_context.private_network)},
{"Service.SystemCallArchitectures", config_parse_syscall_archs, 0, offsetof(Service, exec_context.syscall_archs)},
{(char*)0},
{"Service.MountFlags", config_parse_exec_mount_flags, 0, offsetof(Service, exec_context)},
{"Service.SystemCallErrorNumber", config_parse_syscall_errno, 0, offsetof(Service, exec_context)},
{"Swap.PrivateTmp", config_parse_bool, 0, offsetof(Swap, exec_context.private_tmp)},
{(char*)0},
{"Unit.RequiresMountsFor", config_parse_unit_requires_mounts_for, 0, 0},
{(char*)0}, {(char*)0},
{"Socket.CPUQuota", config_parse_cpu_quota, 0, offsetof(Socket, cgroup_context)},
{(char*)0}, {(char*)0},
{"Scope.BlockIOAccounting", config_parse_bool, 0, offsetof(Scope, cgroup_context.blockio_accounting)},
{"Socket.PAMName", config_parse_unit_string_printf, 0, offsetof(Socket, exec_context.pam_name)},
{"BusName.Service", config_parse_busname_service, 0, 0},
{(char*)0}, {(char*)0},
{"Socket.TTYVTDisallocate", config_parse_bool, 0, offsetof(Socket, exec_context.tty_vt_disallocate)},
{"Service.Personality", config_parse_personality, 0, offsetof(Service, exec_context.personality)},
{(char*)0},
{"Unit.OnFailureJobMode", config_parse_job_mode, 0, offsetof(Unit, on_failure_job_mode)},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{"Scope.BlockIOReadBandwidth", config_parse_blockio_bandwidth, 0, offsetof(Scope, cgroup_context)},
{(char*)0}, {(char*)0},
{"Mount.LimitRSS", config_parse_limit, RLIMIT_RSS, offsetof(Mount, exec_context.rlimit)},
{(char*)0},
{"Service.ProtectSystem", config_parse_protect_system, 0, offsetof(Service, exec_context)},
{"Mount.Environment", config_parse_environ, 0, offsetof(Mount, exec_context.environment)},
{"Install.Alias", NULL, 0, 0},
{(char*)0}, {(char*)0},
{"Mount.EnvironmentFile", config_parse_unit_env_file, 0, offsetof(Mount, exec_context.environment_files)},
{"Socket.StartupBlockIOWeight", config_parse_blockio_weight, 0, offsetof(Socket, cgroup_context.startup_blockio_weight)},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{"Scope.BlockIOWriteBandwidth", config_parse_blockio_bandwidth, 0, offsetof(Scope, cgroup_context)},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{"Socket.ListenFIFO", config_parse_socket_listen, SOCKET_FIFO, 0},
{(char*)0},
{"Service.CapabilityBoundingSet", config_parse_bounding_set, 0, offsetof(Service, exec_context.capability_bounding_set_drop)},
{"Service.Capabilities", config_parse_exec_capabilities, 0, offsetof(Service, exec_context)},
{(char*)0},
{"Service.TimerSlackNSec", config_parse_nsec, 0, offsetof(Service, exec_context.timer_slack_nsec)},
{"Socket.MemoryAccounting", config_parse_bool, 0, offsetof(Socket, cgroup_context.memory_accounting)},
{(char*)0}, {(char*)0},
{"Socket.SupplementaryGroups", config_parse_strv, 0, offsetof(Socket, exec_context.supplementary_groups)},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{"Install.WantedBy", NULL, 0, 0},
{(char*)0}, {(char*)0}, {(char*)0},
{"Mount.StandardOutput", config_parse_output, 0, offsetof(Mount, exec_context.std_output)},
{(char*)0},
{"Mount.CPUAffinity", config_parse_exec_cpu_affinity, 0, offsetof(Mount, exec_context)},
{(char*)0}, {(char*)0},
{"Socket.TCPCongestion", config_parse_string, 0, offsetof(Socket, tcp_congestion)},
{"Swap.SystemCallFilter", config_parse_syscall_filter, 0, offsetof(Swap, exec_context)},
{"Service.RebootArgument", config_parse_string, 0, offsetof(Service, reboot_arg)},
{"Swap.SystemCallArchitectures", config_parse_syscall_archs, 0, offsetof(Swap, exec_context.syscall_archs)},
{"Socket.Backlog", config_parse_unsigned, 0, offsetof(Socket, backlog)},
{"Socket.BlockIOWeight", config_parse_blockio_weight, 0, offsetof(Socket, cgroup_context.blockio_weight)},
{"Swap.SystemCallErrorNumber", config_parse_syscall_errno, 0, offsetof(Swap, exec_context)},
{(char*)0},
{"Socket.SendSIGKILL", config_parse_bool, 0, offsetof(Socket, kill_context.send_sigkill)},
{(char*)0},
{"Service.Sockets", config_parse_service_sockets, 0, 0},
{"Swap.CPUAffinity", config_parse_exec_cpu_affinity, 0, offsetof(Swap, exec_context)},
{(char*)0},
{"Mount.LimitAS", config_parse_limit, RLIMIT_AS, offsetof(Mount, exec_context.rlimit)},
{(char*)0},
{"Socket.IgnoreSIGPIPE", config_parse_bool, 0, offsetof(Socket, exec_context.ignore_sigpipe)},
{(char*)0},
{"Socket.LimitSTACK", config_parse_limit, RLIMIT_STACK, offsetof(Socket, exec_context.rlimit)},
{"Service.PermissionsStartOnly", config_parse_bool, 0, offsetof(Service, permissions_start_only)},
{"Service.TTYVTDisallocate", config_parse_bool, 0, offsetof(Service, exec_context.tty_vt_disallocate)},
{(char*)0}, {(char*)0},
{"Mount.SendSIGKILL", config_parse_bool, 0, offsetof(Mount, kill_context.send_sigkill)},
{(char*)0},
{"Socket.SyslogLevelPrefix", config_parse_bool, 0, offsetof(Socket, exec_context.syslog_level_prefix)},
{(char*)0},
{"Mount.LimitSTACK", config_parse_limit, RLIMIT_STACK, offsetof(Mount, exec_context.rlimit)},
{(char*)0},
{"Service.LimitFSIZE", config_parse_limit, RLIMIT_FSIZE, offsetof(Service, exec_context.rlimit)},
{(char*)0}, {(char*)0},
{"Service.LimitMSGQUEUE", config_parse_limit, RLIMIT_MSGQUEUE, offsetof(Service, exec_context.rlimit)},
{(char*)0},
{"Service.LimitSTACK", config_parse_limit, RLIMIT_STACK, offsetof(Service, exec_context.rlimit)},
{"Scope.CPUAccounting", config_parse_bool, 0, offsetof(Scope, cgroup_context.cpu_accounting)},
{(char*)0},
{"Mount.LimitSIGPENDING", config_parse_limit, RLIMIT_SIGPENDING, offsetof(Mount, exec_context.rlimit)},
{(char*)0},
{"Service.UMask", config_parse_mode, 0, offsetof(Service, exec_context.umask)},
{(char*)0},
{"Service.BusName", config_parse_unit_string_printf, 0, offsetof(Service, bus_name)},
{(char*)0},
{"Service.ExecStart", config_parse_exec, SERVICE_EXEC_START, offsetof(Service, exec_command)},
{(char*)0},
{"Swap.LimitCORE", config_parse_limit, RLIMIT_CORE, offsetof(Swap, exec_context.rlimit)},
{"Service.ExecStartPre", config_parse_exec, SERVICE_EXEC_START_PRE, offsetof(Service, exec_command)},
{"Service.ExecStartPost", config_parse_exec, SERVICE_EXEC_START_POST, offsetof(Service, exec_command)},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{"Mount.Type", config_parse_string, 0, offsetof(Mount, parameters_fragment.fstype)},
{"Socket.Mark", config_parse_int, 0, offsetof(Socket, mark)},
{(char*)0},
{"Unit.ConditionFirstBoot", config_parse_unit_condition_string, CONDITION_FIRST_BOOT, 0},
{"Service.SyslogLevel", config_parse_log_level, 0, offsetof(Service, exec_context.syslog_priority)},
{"Swap.KillSignal", config_parse_kill_signal, 0, offsetof(Swap, kill_context.kill_signal)},
{(char*)0},
{"Socket.AppArmorProfile", config_parse_warn_compat, 0, 0},
{"Unit.Documentation", config_parse_documentation, 0, offsetof(Unit, documentation)},
{(char*)0},
{"Unit.ConditionFileIsExecutable", config_parse_unit_condition_path, CONDITION_FILE_IS_EXECUTABLE, 0},
{"Socket.LimitNICE", config_parse_limit, RLIMIT_NICE, offsetof(Socket, exec_context.rlimit)},
{"Timer.OnActiveSec", config_parse_timer, 0, 0},
{"Slice.DevicePolicy", config_parse_device_policy, 0, offsetof(Slice, cgroup_context.device_policy)},
{"Socket.TTYPath", config_parse_unit_path_printf, 0, offsetof(Socket, exec_context.tty_path)},
{(char*)0},
{"Service.IgnoreSIGPIPE", config_parse_bool, 0, offsetof(Service, exec_context.ignore_sigpipe)},
{(char*)0},
{"Socket.Personality", config_parse_personality, 0, offsetof(Socket, exec_context.personality)},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{"Mount.DevicePolicy", config_parse_device_policy, 0, offsetof(Mount, cgroup_context.device_policy)},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0},
{"Socket.CPUSchedulingPolicy", config_parse_exec_cpu_sched_policy, 0, offsetof(Socket, exec_context)},
{(char*)0},
{"Socket.CPUSchedulingPriority", config_parse_exec_cpu_sched_prio, 0, offsetof(Socket, exec_context)},
{(char*)0}, {(char*)0},
{"Mount.UMask", config_parse_mode, 0, offsetof(Mount, exec_context.umask)},
{(char*)0}, {(char*)0},
{"Swap.UtmpIdentifier", config_parse_unit_string_printf, 0, offsetof(Swap, exec_context.utmp_id)},
{(char*)0},
{"Socket.LimitDATA", config_parse_limit, RLIMIT_DATA, offsetof(Socket, exec_context.rlimit)},
{"Mount.CapabilityBoundingSet", config_parse_bounding_set, 0, offsetof(Mount, exec_context.capability_bounding_set_drop)},
{"Mount.Capabilities", config_parse_exec_capabilities, 0, offsetof(Mount, exec_context)},
{(char*)0}, {(char*)0},
{"Unit.ConditionFileNotEmpty", config_parse_unit_condition_path, CONDITION_FILE_NOT_EMPTY, 0},
{"BusName.AllowUser", config_parse_bus_policy, 0, 0},
{(char*)0}, {(char*)0},
{"Service.LimitMEMLOCK", config_parse_limit, RLIMIT_MEMLOCK, offsetof(Service, exec_context.rlimit)},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{"Swap.AppArmorProfile", config_parse_warn_compat, 0, 0},
{"Socket.LimitCORE", config_parse_limit, RLIMIT_CORE, offsetof(Socket, exec_context.rlimit)},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0},
{"Socket.TTYVHangup", config_parse_bool, 0, offsetof(Socket, exec_context.tty_vhangup)},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0},
{"Scope.SendSIGKILL", config_parse_bool, 0, offsetof(Scope, kill_context.send_sigkill)},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0},
{"Socket.LimitMSGQUEUE", config_parse_limit, RLIMIT_MSGQUEUE, offsetof(Socket, exec_context.rlimit)},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0},
{"Socket.PrivateNetwork", config_parse_bool, 0, offsetof(Socket, exec_context.private_network)},
{(char*)0}, {(char*)0},
{"Swap.SupplementaryGroups", config_parse_strv, 0, offsetof(Swap, exec_context.supplementary_groups)},
{(char*)0},
{"Service.FailureAction", config_parse_failure_action, 0, offsetof(Service, failure_action)},
{"Swap.LimitMEMLOCK", config_parse_limit, RLIMIT_MEMLOCK, offsetof(Swap, exec_context.rlimit)},
{"BusName.AllowGroup", config_parse_bus_policy, 0, 0},
{(char*)0}, {(char*)0},
{"Service.BlockIOWeight", config_parse_blockio_weight, 0, offsetof(Service, cgroup_context.blockio_weight)},
{"Swap.BlockIOAccounting", config_parse_bool, 0, offsetof(Swap, cgroup_context.blockio_accounting)},
{"Service.KillSignal", config_parse_kill_signal, 0, offsetof(Service, kill_context.kill_signal)},
{"Service.WorkingDirectory", config_parse_unit_path_printf, 0, offsetof(Service, exec_context.working_directory)},
{"Service.ExecStopPost", config_parse_exec, SERVICE_EXEC_STOP_POST, offsetof(Service, exec_command)},
{"Socket.ReadOnlyDirectories", config_parse_namespace_path_strv, 0, offsetof(Socket, exec_context.read_only_dirs)},
{"Service.BlockIODeviceWeight", config_parse_blockio_device_weight, 0, offsetof(Service, cgroup_context)},
{"Swap.LimitMSGQUEUE", config_parse_limit, RLIMIT_MSGQUEUE, offsetof(Swap, exec_context.rlimit)},
{(char*)0}, {(char*)0},
{"Socket.CPUShares", config_parse_cpu_shares, 0, offsetof(Socket, cgroup_context.cpu_shares)},
{"Socket.PassCredentials", config_parse_bool, 0, offsetof(Socket, pass_cred)},
{"Service.SecureBits", config_parse_exec_secure_bits, 0, offsetof(Service, exec_context)},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{"Mount.LimitMEMLOCK", config_parse_limit, RLIMIT_MEMLOCK, offsetof(Mount, exec_context.rlimit)},
{"Swap.SyslogFacility", config_parse_log_facility, 0, offsetof(Swap, exec_context.syslog_priority)},
{"Mount.ReadOnlyDirectories", config_parse_namespace_path_strv, 0, offsetof(Mount, exec_context.read_only_dirs)},
{"Mount.SendSIGHUP", config_parse_bool, 0, offsetof(Mount, kill_context.send_sighup)},
{"Path.DirectoryNotEmpty", config_parse_path_spec, 0, 0},
{(char*)0},
{"Service.LimitRTTIME", config_parse_limit, RLIMIT_RTTIME, offsetof(Service, exec_context.rlimit)},
{"Service.SyslogLevelPrefix", config_parse_bool, 0, offsetof(Service, exec_context.syslog_level_prefix)},
{"Swap.SendSIGKILL", config_parse_bool, 0, offsetof(Swap, kill_context.send_sigkill)},
{(char*)0},
{"Scope.DevicePolicy", config_parse_device_policy, 0, offsetof(Scope, cgroup_context.device_policy)},
{"Service.Environment", config_parse_environ, 0, offsetof(Service, exec_context.environment)},
{"Socket.CPUAccounting", config_parse_bool, 0, offsetof(Socket, cgroup_context.cpu_accounting)},
{"Swap.LimitRTPRIO", config_parse_limit, RLIMIT_RTPRIO, offsetof(Swap, exec_context.rlimit)},
{(char*)0},
{"Service.EnvironmentFile", config_parse_unit_env_file, 0, offsetof(Service, exec_context.environment_files)},
{(char*)0},
{"Service.PAMName", config_parse_unit_string_printf, 0, offsetof(Service, exec_context.pam_name)},
{"Mount.AppArmorProfile", config_parse_warn_compat, 0, 0},
{"Mount.LimitNOFILE", config_parse_limit, RLIMIT_NOFILE, offsetof(Mount, exec_context.rlimit)},
{"Service.TTYVHangup", config_parse_bool, 0, offsetof(Service, exec_context.tty_vhangup)},
{(char*)0},
{"Swap.BlockIOReadBandwidth", config_parse_blockio_bandwidth, 0, offsetof(Swap, cgroup_context)},
{"Swap.BlockIOWriteBandwidth", config_parse_blockio_bandwidth, 0, offsetof(Swap, cgroup_context)},
{(char*)0},
{"Service.SendSIGHUP", config_parse_bool, 0, offsetof(Service, kill_context.send_sighup)},
{(char*)0}, {(char*)0}, {(char*)0},
{"Service.LimitNICE", config_parse_limit, RLIMIT_NICE, offsetof(Service, exec_context.rlimit)},
{"Service.LimitLOCKS", config_parse_limit, RLIMIT_LOCKS, offsetof(Service, exec_context.rlimit)},
{(char*)0}, {(char*)0}, {(char*)0},
{"Socket.SmackLabelIPOut", config_parse_string, 0, offsetof(Socket, smack_ip_out)},
{(char*)0},
{"Mount.IgnoreSIGPIPE", config_parse_bool, 0, offsetof(Mount, exec_context.ignore_sigpipe)},
{(char*)0}, {(char*)0},
{"Install.Also", NULL, 0, 0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0},
{"Mount.SupplementaryGroups", config_parse_strv, 0, offsetof(Mount, exec_context.supplementary_groups)},
{"Service.ExecStop", config_parse_exec, SERVICE_EXEC_STOP, offsetof(Service, exec_command)},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0},
{"Swap.CPUSchedulingResetOnFork", config_parse_bool, 0, offsetof(Swap, exec_context.cpu_sched_reset_on_fork)},
{(char*)0}, {(char*)0}, {(char*)0},
{"Unit.PropagatesReloadTo", config_parse_unit_deps, UNIT_PROPAGATES_RELOAD_TO, 0},
{(char*)0},
{"Mount.LimitNICE", config_parse_limit, RLIMIT_NICE, offsetof(Mount, exec_context.rlimit)},
{"Swap.LimitNOFILE", config_parse_limit, RLIMIT_NOFILE, offsetof(Swap, exec_context.rlimit)},
{"Socket.IPTTL", config_parse_int, 0, offsetof(Socket, ip_ttl)},
{(char*)0}, {(char*)0},
{"Unit.RequisiteOverridable", config_parse_unit_deps, UNIT_REQUISITE_OVERRIDABLE, 0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0},
{"BusName.Activating", config_parse_bool, 0, offsetof(BusName, activating)},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0},
{"Service.LimitNPROC", config_parse_limit, RLIMIT_NPROC, offsetof(Service, exec_context.rlimit)},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0},
{"Swap.LimitRTTIME", config_parse_limit, RLIMIT_RTTIME, offsetof(Swap, exec_context.rlimit)},
{"Socket.RuntimeDirectoryMode", config_parse_mode, 0, offsetof(Socket, exec_context.runtime_directory_mode)},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{"Mount.NoNewPrivileges", config_parse_no_new_privileges, 0, offsetof(Mount, exec_context)},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{"Service.TTYReset", config_parse_bool, 0, offsetof(Service, exec_context.tty_reset)},
{"Unit.RefuseManualStart", config_parse_bool, 0, offsetof(Unit, refuse_manual_start)},
{"Path.DirectoryMode", config_parse_mode, 0, offsetof(Path, directory_mode)},
{(char*)0},
{"Socket.FreeBind", config_parse_bool, 0, offsetof(Socket, free_bind)},
{"Scope.SendSIGHUP", config_parse_bool, 0, offsetof(Scope, kill_context.send_sighup)},
{(char*)0}, {(char*)0}, {(char*)0},
{"Service.NotifyAccess", config_parse_notify_access, 0, offsetof(Service, notify_access)},
{(char*)0},
{"Mount.SyslogLevel", config_parse_log_level, 0, offsetof(Mount, exec_context.syslog_priority)},
{(char*)0}, {(char*)0}, {(char*)0},
{"Service.LimitCPU", config_parse_limit, RLIMIT_CPU, offsetof(Service, exec_context.rlimit)},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0},
{"Socket.RuntimeDirectory", config_parse_runtime_directory, 0, offsetof(Socket, exec_context.runtime_directory)},
{"Unit.RequiresOverridable", config_parse_unit_deps, UNIT_REQUIRES_OVERRIDABLE, 0},
{"Mount.OOMScoreAdjust", config_parse_exec_oom_score_adjust, 0, offsetof(Mount, exec_context)},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0},
{"Socket.BlockIOWriteBandwidth", config_parse_blockio_bandwidth, 0, offsetof(Socket, cgroup_context)},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0},
{"Swap.MemoryAccounting", config_parse_bool, 0, offsetof(Swap, cgroup_context.memory_accounting)},
{"Socket.LimitNPROC", config_parse_limit, RLIMIT_NPROC, offsetof(Socket, exec_context.rlimit)},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{"Service.CPUSchedulingResetOnFork", config_parse_bool, 0, offsetof(Service, exec_context.cpu_sched_reset_on_fork)},
{(char*)0}, {(char*)0},
{"Socket.MessageQueueMessageSize", config_parse_long, 0, offsetof(Socket, mq_msgsize)},
{(char*)0}, {(char*)0}, {(char*)0},
{"Swap.PrivateDevices", config_parse_bool, 0, offsetof(Swap, exec_context.private_devices)},
{(char*)0},
{"Unit.RefuseManualStop", config_parse_bool, 0, offsetof(Unit, refuse_manual_stop)},
{(char*)0}, {(char*)0},
{"Service.SendSIGKILL", config_parse_bool, 0, offsetof(Service, kill_context.send_sigkill)},
{"Socket.MessageQueueMaxMessages", config_parse_long, 0, offsetof(Socket, mq_maxmsg)},
{"Socket.SmackLabelIPIn", config_parse_string, 0, offsetof(Socket, smack_ip_in)},
{(char*)0}, {(char*)0}, {(char*)0},
{"Swap.LimitNPROC", config_parse_limit, RLIMIT_NPROC, offsetof(Swap, exec_context.rlimit)},
{(char*)0}, {(char*)0}, {(char*)0},
{"Service.LimitRTPRIO", config_parse_limit, RLIMIT_RTPRIO, offsetof(Service, exec_context.rlimit)},
{(char*)0}, {(char*)0}, {(char*)0},
{"Socket.LimitNOFILE", config_parse_limit, RLIMIT_NOFILE, offsetof(Socket, exec_context.rlimit)},
{(char*)0},
{"Socket.LimitCPU", config_parse_limit, RLIMIT_CPU, offsetof(Socket, exec_context.rlimit)},
{"Socket.BlockIODeviceWeight", config_parse_blockio_device_weight, 0, offsetof(Socket, cgroup_context)},
{(char*)0}, {(char*)0},
{"Service.CPUAffinity", config_parse_exec_cpu_affinity, 0, offsetof(Service, exec_context)},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{"Swap.PrivateNetwork", config_parse_bool, 0, offsetof(Swap, exec_context.private_network)},
{"Swap.LimitSIGPENDING", config_parse_limit, RLIMIT_SIGPENDING, offsetof(Swap, exec_context.rlimit)},
{"Unit.StopWhenUnneeded", config_parse_bool, 0, offsetof(Unit, stop_when_unneeded)},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{"Service.CPUQuota", config_parse_cpu_quota, 0, offsetof(Service, cgroup_context)},
{(char*)0},
{"Swap.CPUAccounting", config_parse_bool, 0, offsetof(Swap, cgroup_context.cpu_accounting)},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0},
{"Swap.BlockIODeviceWeight", config_parse_blockio_device_weight, 0, offsetof(Swap, cgroup_context)},
{"Mount.LimitCORE", config_parse_limit, RLIMIT_CORE, offsetof(Mount, exec_context.rlimit)},
{(char*)0},
{"Mount.LimitRTTIME", config_parse_limit, RLIMIT_RTTIME, offsetof(Mount, exec_context.rlimit)},
{"BusName.AllowWorld", config_parse_bus_policy_world, 0, offsetof(BusName, policy_world)},
{"Mount.LimitCPU", config_parse_limit, RLIMIT_CPU, offsetof(Mount, exec_context.rlimit)},
{"Mount.CPUSchedulingResetOnFork", config_parse_bool, 0, offsetof(Mount, exec_context.cpu_sched_reset_on_fork)},
{(char*)0}, {(char*)0}, {(char*)0},
{"Socket.RemoveOnStop", config_parse_bool, 0, offsetof(Socket, remove_on_stop)},
{"Service.TTYPath", config_parse_unit_path_printf, 0, offsetof(Service, exec_context.tty_path)},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{"Socket.ReceiveBuffer", config_parse_iec_size, 0, offsetof(Socket, receive_buffer)},
{(char*)0},
{"Service.PrivateDevices", config_parse_bool, 0, offsetof(Service, exec_context.private_devices)},
{"Service.ExecReload", config_parse_exec, SERVICE_EXEC_RELOAD, offsetof(Service, exec_command)},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{"Mount.SyslogLevelPrefix", config_parse_bool, 0, offsetof(Mount, exec_context.syslog_level_prefix)},
{(char*)0}, {(char*)0}, {(char*)0},
{"Socket.SmackLabel", config_parse_string, 0, offsetof(Socket, smack)},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{"Service.LimitCORE", config_parse_limit, RLIMIT_CORE, offsetof(Service, exec_context.rlimit)},
{(char*)0},
{"Service.LimitNOFILE", config_parse_limit, RLIMIT_NOFILE, offsetof(Service, exec_context.rlimit)},
{(char*)0}, {(char*)0},
{"Socket.LimitSIGPENDING", config_parse_limit, RLIMIT_SIGPENDING, offsetof(Socket, exec_context.rlimit)},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0},
{"Socket.DeviceAllow", config_parse_device_allow, 0, offsetof(Socket, cgroup_context)},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0},
{"Service.BlockIOAccounting", config_parse_bool, 0, offsetof(Service, cgroup_context.blockio_accounting)},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0},
{"Service.PrivateTmp", config_parse_bool, 0, offsetof(Service, exec_context.private_tmp)},
{(char*)0}, {(char*)0}, {(char*)0},
{"Service.SyslogFacility", config_parse_log_facility, 0, offsetof(Service, exec_context.syslog_priority)},
{"Service.BlockIOReadBandwidth", config_parse_blockio_bandwidth, 0, offsetof(Service, cgroup_context)},
{"Service.BlockIOWriteBandwidth", config_parse_blockio_bandwidth, 0, offsetof(Service, cgroup_context)},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0},
{"Swap.TimerSlackNSec", config_parse_nsec, 0, offsetof(Swap, exec_context.timer_slack_nsec)},
{(char*)0}, {(char*)0},
{"Swap.TTYPath", config_parse_unit_path_printf, 0, offsetof(Swap, exec_context.tty_path)},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0},
{"Socket.CPUAffinity", config_parse_exec_cpu_affinity, 0, offsetof(Socket, exec_context)},
{(char*)0},
{"Swap.SecureBits", config_parse_exec_secure_bits, 0, offsetof(Swap, exec_context)},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{"Service.LimitSIGPENDING", config_parse_limit, RLIMIT_SIGPENDING, offsetof(Service, exec_context.rlimit)},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0},
{"Swap.LimitDATA", config_parse_limit, RLIMIT_DATA, offsetof(Swap, exec_context.rlimit)},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0},
{"Mount.LimitFSIZE", config_parse_limit, RLIMIT_FSIZE, offsetof(Mount, exec_context.rlimit)},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0},
{"Service.MemoryAccounting", config_parse_bool, 0, offsetof(Service, cgroup_context.memory_accounting)},
{(char*)0}, {(char*)0},
{"Slice.DeviceAllow", config_parse_device_allow, 0, offsetof(Slice, cgroup_context)},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0},
{"Mount.DeviceAllow", config_parse_device_allow, 0, offsetof(Mount, cgroup_context)},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0},
{"Socket.CPUSchedulingResetOnFork", config_parse_bool, 0, offsetof(Socket, exec_context.cpu_sched_reset_on_fork)},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0},
{"Socket.SELinuxContext", config_parse_exec_selinux_context, 0, offsetof(Socket, exec_context)},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{"Swap.DeviceAllow", config_parse_device_allow, 0, offsetof(Swap, cgroup_context)},
{(char*)0},
{"Socket.SELinuxContextFromNet", config_parse_bool, 0, offsetof(Socket, selinux_context_from_net)},
{(char*)0}, {(char*)0},
{"Mount.LimitNPROC", config_parse_limit, RLIMIT_NPROC, offsetof(Mount, exec_context.rlimit)},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{"Service.PIDFile", config_parse_unit_path_printf, 0, offsetof(Service, pid_file)},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0},
{"Service.DeviceAllow", config_parse_device_allow, 0, offsetof(Service, cgroup_context)},
{(char*)0}, {(char*)0}, {(char*)0},
{"Service.AppArmorProfile", config_parse_warn_compat, 0, 0},
{"Service.NonBlocking", config_parse_bool, 0, offsetof(Service, exec_context.non_blocking)},
{(char*)0}, {(char*)0},
{"Socket.UMask", config_parse_mode, 0, offsetof(Socket, exec_context.umask)},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0},
{"Unit.PropagateReloadFrom", config_parse_unit_deps, UNIT_RELOAD_PROPAGATED_FROM, 0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{"Scope.DeviceAllow", config_parse_device_allow, 0, offsetof(Scope, cgroup_context)},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{"Socket.BlockIOReadBandwidth", config_parse_blockio_bandwidth, 0, offsetof(Socket, cgroup_context)},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0},
{"BusName.AcceptFileDescriptors", config_parse_bool, 0, offsetof(BusName, accept_fd)},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0},
{"Service.CPUAccounting", config_parse_bool, 0, offsetof(Service, cgroup_context.cpu_accounting)},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0},
{"Unit.PropagateReloadTo", config_parse_unit_deps, UNIT_PROPAGATES_RELOAD_TO, 0},
{(char*)0},
{"Socket.BlockIOAccounting", config_parse_bool, 0, offsetof(Socket, cgroup_context.blockio_accounting)},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0},
{"Mount.LimitMSGQUEUE", config_parse_limit, RLIMIT_MSGQUEUE, offsetof(Mount, exec_context.rlimit)},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0},
{"Socket.KeepAlive", config_parse_bool, 0, offsetof(Socket, keep_alive)},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0},
{"Socket.KeepAliveTimeSec", config_parse_sec, 0, offsetof(Socket, keep_alive_time)},
{(char*)0}, {(char*)0}, {(char*)0},
{"Socket.KeepAliveIntervalSec", config_parse_sec, 0, offsetof(Socket, keep_alive_interval)},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{"Socket.KeepAliveProbes", config_parse_unsigned, 0, offsetof(Socket, keep_alive_cnt)},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0},
{"Socket.SendBuffer", config_parse_iec_size, 0, offsetof(Socket, send_buffer)},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0},
{"Mount.MountFlags", config_parse_exec_mount_flags, 0, offsetof(Mount, exec_context)},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0},
{"Mount.LimitRTPRIO", config_parse_limit, RLIMIT_RTPRIO, offsetof(Mount, exec_context.rlimit)},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{"Service.LimitDATA", config_parse_limit, RLIMIT_DATA, offsetof(Service, exec_context.rlimit)},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0},
{"Service.PrivateNetwork", config_parse_bool, 0, offsetof(Service, exec_context.private_network)},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0},
{"Mount.LimitDATA", config_parse_limit, RLIMIT_DATA, offsetof(Mount, exec_context.rlimit)}
};
if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
{
register int key = load_fragment_gperf_hash (str, len);
if (key <= MAX_HASH_VALUE && key >= 0)
{
register const char *s = wordlist[key].section_and_lvalue;
if (s && *str == *s && !strcmp (str + 1, s + 1))
return &wordlist[key];
}
}
return 0;
}