Line data Source code
1 : /* ANSI-C code produced by gperf version 3.0.4 */
2 : /* Command-line: gperf */
3 : /* Computed positions: -k'3,9,12,15,$' */
4 :
5 : #if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
6 : && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \
7 : && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \
8 : && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \
9 : && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \
10 : && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \
11 : && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \
12 : && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \
13 : && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \
14 : && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \
15 : && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \
16 : && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \
17 : && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \
18 : && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \
19 : && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \
20 : && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \
21 : && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \
22 : && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \
23 : && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \
24 : && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \
25 : && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \
26 : && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \
27 : && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126))
28 : /* The character set is not based on ISO-646. */
29 : #error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gnu-gperf@gnu.org>."
30 : #endif
31 :
32 :
33 : #include <stddef.h>
34 : #include "conf-parser.h"
35 : #include "load-fragment.h"
36 : #include "missing.h"
37 : #include <string.h>
38 :
39 : #define TOTAL_KEYWORDS 596
40 : #define MIN_WORD_LENGTH 9
41 : #define MAX_WORD_LENGTH 32
42 : #define MIN_HASH_VALUE 26
43 : #define MAX_HASH_VALUE 2039
44 : /* maximum key range = 2014, duplicates = 0 */
45 :
46 : #ifdef __GNUC__
47 : __inline
48 : #else
49 : #ifdef __cplusplus
50 : inline
51 : #endif
52 : #endif
53 : static unsigned int
54 340 : load_fragment_gperf_hash (register const char *str, register unsigned int len)
55 : {
56 : static const unsigned short asso_values[] =
57 : {
58 : 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040,
59 : 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040,
60 : 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040,
61 : 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040,
62 : 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040,
63 : 2040, 2040, 2040, 2040, 5, 2040, 2040, 2040, 2040, 2040,
64 : 2040, 2040, 2040, 2040, 2040, 470, 925, 425, 555, 235,
65 : 780, 535, 365, 295, 260, 330, 410, 755, 620, 275,
66 : 375, 820, 475, 80, 180, 550, 390, 85, 5, 2040,
67 : 15, 2040, 2040, 2040, 2040, 2040, 2040, 25, 300, 0,
68 : 185, 0, 320, 470, 155, 25, 120, 525, 175, 20,
69 : 175, 40, 90, 670, 15, 10, 0, 35, 265, 765,
70 : 355, 110, 0, 2040, 2040, 2040, 2040, 2040, 2040, 2040,
71 : 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040,
72 : 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040,
73 : 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040,
74 : 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040,
75 : 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040,
76 : 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040,
77 : 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040,
78 : 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040,
79 : 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040,
80 : 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040,
81 : 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040,
82 : 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040,
83 : 2040, 2040, 2040, 2040, 2040, 2040, 2040
84 : };
85 340 : register int hval = len;
86 :
87 340 : switch (hval)
88 : {
89 : default:
90 244 : hval += asso_values[(unsigned char)str[14]];
91 : /*FALLTHROUGH*/
92 : case 14:
93 : case 13:
94 : case 12:
95 291 : hval += asso_values[(unsigned char)str[11]];
96 : /*FALLTHROUGH*/
97 : case 11:
98 : case 10:
99 : case 9:
100 340 : hval += asso_values[(unsigned char)str[8]+1];
101 : /*FALLTHROUGH*/
102 : case 8:
103 : case 7:
104 : case 6:
105 : case 5:
106 : case 4:
107 : case 3:
108 340 : hval += asso_values[(unsigned char)str[2]];
109 340 : break;
110 : }
111 340 : return hval + asso_values[(unsigned char)str[len - 1]];
112 : }
113 :
114 : #ifdef __GNUC__
115 : __inline
116 : #if defined __GNUC_STDC_INLINE__ || defined __GNUC_GNU_INLINE__
117 : __attribute__ ((__gnu_inline__))
118 : #endif
119 : #endif
120 : const struct ConfigPerfItem *
121 340 : load_fragment_gperf_lookup (register const char *str, register unsigned int len)
122 : {
123 : static const struct ConfigPerfItem wordlist[] =
124 : {
125 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
126 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
127 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
128 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
129 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
130 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
131 : {(char*)0}, {(char*)0},
132 : {"Socket.User", config_parse_unit_string_printf, 0, offsetof(Socket, exec_context.user)},
133 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
134 : {(char*)0},
135 : {"Socket.Slice", config_parse_unit_slice, 0, 0},
136 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
137 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
138 : {(char*)0}, {(char*)0}, {(char*)0},
139 : {"Path.Unit", config_parse_trigger_unit, 0, 0},
140 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
141 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
142 : {"Socket.Transparent", config_parse_bool, 0, offsetof(Socket, transparent)},
143 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
144 : {(char*)0},
145 : {"Swap.User", config_parse_unit_string_printf, 0, offsetof(Swap, exec_context.user)},
146 : {"Socket.Symlinks", config_parse_unit_path_strv_printf, 0, offsetof(Socket, symlinks)},
147 : {(char*)0}, {(char*)0},
148 : {"Socket.SystemCallFilter", config_parse_syscall_filter, 0, offsetof(Socket, exec_context)},
149 : {(char*)0},
150 : {"Socket.SystemCallArchitectures", config_parse_syscall_archs, 0, offsetof(Socket, exec_context.syscall_archs)},
151 : {(char*)0}, {(char*)0},
152 : {"Socket.SystemCallErrorNumber", config_parse_syscall_errno, 0, offsetof(Socket, exec_context)},
153 : {"Swap.What", config_parse_path, 0, offsetof(Swap, parameters_fragment.what)},
154 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
155 : {"Mount.TTYReset", config_parse_bool, 0, offsetof(Mount, exec_context.tty_reset)},
156 : {(char*)0},
157 : {"Unit.BindTo", config_parse_unit_deps, UNIT_BINDS_TO, 0},
158 : {(char*)0}, {(char*)0},
159 : {"Service.WatchdogSec", config_parse_sec, 0, offsetof(Service, watchdog_usec)},
160 : {"Unit.Wants", config_parse_unit_deps, UNIT_WANTS, 0},
161 : {(char*)0}, {(char*)0},
162 : {"Automount.DirectoryMode", config_parse_mode, 0, offsetof(Automount, directory_mode)},
163 : {"Slice.Delegate", config_parse_bool, 0, offsetof(Slice, cgroup_context.delegate)},
164 : {"Path.PathExists", config_parse_path_spec, 0, 0},
165 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
166 : {"Socket.InaccessibleDirectories", config_parse_namespace_path_strv, 0, offsetof(Socket, exec_context.inaccessible_dirs)},
167 : {(char*)0}, {(char*)0},
168 : {"Socket.Environment", config_parse_environ, 0, offsetof(Socket, exec_context.environment)},
169 : {"Mount.Delegate", config_parse_bool, 0, offsetof(Mount, cgroup_context.delegate)},
170 : {(char*)0},
171 : {"Swap.ProtectHome", config_parse_protect_home, 0, offsetof(Swap, exec_context)},
172 : {"Socket.EnvironmentFile", config_parse_unit_env_file, 0, offsetof(Socket, exec_context.environment_files)},
173 : {(char*)0},
174 : {"Scope.Delegate", config_parse_bool, 0, offsetof(Scope, cgroup_context.delegate)},
175 : {"Swap.RuntimeDirectoryMode", config_parse_mode, 0, offsetof(Swap, exec_context.runtime_directory_mode)},
176 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
177 : {(char*)0}, {(char*)0}, {(char*)0},
178 : {"Swap.ProtectSystem", config_parse_protect_system, 0, offsetof(Swap, exec_context)},
179 : {"Mount.KillMode", config_parse_kill_mode, 0, offsetof(Mount, kill_context.kill_mode)},
180 : {"Service.Restart", config_parse_service_restart, 0, offsetof(Service, restart)},
181 : {(char*)0}, {(char*)0},
182 : {"Service.RestartSec", config_parse_sec, 0, offsetof(Service, restart_usec)},
183 : {"Scope.KillMode", config_parse_kill_mode, 0, offsetof(Scope, kill_context.kill_mode)},
184 : {(char*)0}, {(char*)0},
185 : {"Unit.BindsTo", config_parse_unit_deps, UNIT_BINDS_TO, 0},
186 : {"Swap.TTYReset", config_parse_bool, 0, offsetof(Swap, exec_context.tty_reset)},
187 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
188 : {"Service.RuntimeDirectoryMode", config_parse_mode, 0, offsetof(Service, exec_context.runtime_directory_mode)},
189 : {"Automount.TimeoutIdleSec", config_parse_sec, 0, offsetof(Automount, timeout_idle_usec)},
190 : {(char*)0},
191 : {"Unit.Before", config_parse_unit_deps, UNIT_BEFORE, 0},
192 : {(char*)0},
193 : {"Swap.StandardError", config_parse_output, 0, offsetof(Swap, exec_context.std_error)},
194 : {(char*)0},
195 : {"Socket.ProtectSystem", config_parse_protect_system, 0, offsetof(Socket, exec_context)},
196 : {"Socket.Nice", config_parse_exec_nice, 0, offsetof(Socket, exec_context)},
197 : {"Socket.SocketUser", config_parse_unit_string_printf, 0, offsetof(Socket, user)},
198 : {(char*)0},
199 : {"Swap.StandardOutput", config_parse_output, 0, offsetof(Swap, exec_context.std_output)},
200 : {"Service.RestartForceExitStatus", config_parse_set_status, 0, offsetof(Service, restart_force_status)},
201 : {"Service.RestrictAddressFamilies", config_parse_address_families, 0, offsetof(Service, exec_context)},
202 : {"Service.RestartPreventExitStatus", config_parse_set_status, 0, offsetof(Service, restart_prevent_status)},
203 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
204 : {"Socket.MountFlags", config_parse_exec_mount_flags, 0, offsetof(Socket, exec_context)},
205 : {(char*)0}, {(char*)0},
206 : {"Socket.ListenMessageQueue", config_parse_socket_listen, SOCKET_MQUEUE, 0},
207 : {"Mount.RuntimeDirectoryMode", config_parse_mode, 0, offsetof(Mount, exec_context.runtime_directory_mode)},
208 : {"Socket.SocketMode", config_parse_mode, 0, offsetof(Socket, socket_mode)},
209 : {(char*)0},
210 : {"Socket.ListenSequentialPacket", config_parse_socket_listen, SOCKET_SOCKET, 0},
211 : {"Timer.Unit", config_parse_trigger_unit, 0, 0},
212 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
213 : {"Socket.DirectoryMode", config_parse_mode, 0, offsetof(Socket, directory_mode)},
214 : {"Slice.Slice", config_parse_unit_slice, 0, 0},
215 : {(char*)0}, {(char*)0},
216 : {"Socket.ListenStream", config_parse_socket_listen, SOCKET_SOCKET, 0},
217 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
218 : {(char*)0}, {(char*)0},
219 : {"Mount.Slice", config_parse_unit_slice, 0, 0},
220 : {"Unit.AllowIsolate", config_parse_bool, 0, offsetof(Unit, allow_isolate)},
221 : {(char*)0}, {(char*)0}, {(char*)0},
222 : {"Scope.Slice", config_parse_unit_slice, 0, 0},
223 : {(char*)0}, {(char*)0},
224 : {"Mount.DirectoryMode", config_parse_mode, 0, offsetof(Mount, directory_mode)},
225 : {(char*)0},
226 : {"Swap.Personality", config_parse_personality, 0, offsetof(Swap, exec_context.personality)},
227 : {"Swap.Options", config_parse_string, 0, offsetof(Swap, parameters_fragment.options)},
228 : {(char*)0}, {(char*)0}, {(char*)0},
229 : {"Socket.TimerSlackNSec", config_parse_nsec, 0, offsetof(Socket, exec_context.timer_slack_nsec)},
230 : {"Mount.ProtectHome", config_parse_protect_home, 0, offsetof(Mount, exec_context)},
231 : {(char*)0}, {(char*)0},
232 : {"Mount.PrivateDevices", config_parse_bool, 0, offsetof(Mount, exec_context.private_devices)},
233 : {"Socket.ListenDatagram", config_parse_socket_listen, SOCKET_SOCKET, 0},
234 : {(char*)0}, {(char*)0}, {(char*)0},
235 : {"Swap.StartupBlockIOWeight", config_parse_blockio_weight, 0, offsetof(Swap, cgroup_context.startup_blockio_weight)},
236 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
237 : {(char*)0},
238 : {"Socket.SyslogFacility", config_parse_log_facility, 0, offsetof(Socket, exec_context.syslog_priority)},
239 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
240 : {(char*)0},
241 : {"Socket.Group", config_parse_unit_string_printf, 0, offsetof(Socket, exec_context.group)},
242 : {"Swap.RootDirectory", config_parse_unit_path_printf, 0, offsetof(Swap, exec_context.root_directory)},
243 : {(char*)0},
244 : {"Automount.Where", config_parse_path, 0, offsetof(Automount, where)},
245 : {"Swap.RuntimeDirectory", config_parse_runtime_directory, 0, offsetof(Swap, exec_context.runtime_directory)},
246 : {(char*)0},
247 : {"Service.Slice", config_parse_unit_slice, 0, 0},
248 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
249 : {"Socket.SocketGroup", config_parse_unit_string_printf, 0, offsetof(Socket, group)},
250 : {"Socket.LimitAS", config_parse_limit, RLIMIT_AS, offsetof(Socket, exec_context.rlimit)},
251 : {"Socket.PipeSize", config_parse_iec_size, 0, offsetof(Socket, pipe_size)},
252 : {"Mount.TTYVHangup", config_parse_bool, 0, offsetof(Mount, exec_context.tty_vhangup)},
253 : {(char*)0},
254 : {"Mount.TTYPath", config_parse_unit_path_printf, 0, offsetof(Mount, exec_context.tty_path)},
255 : {(char*)0},
256 : {"Swap.Slice", config_parse_unit_slice, 0, 0},
257 : {"Socket.Broadcast", config_parse_bool, 0, offsetof(Socket, broadcast)},
258 : {(char*)0}, {(char*)0},
259 : {"Socket.ExecStartPre", config_parse_exec, SOCKET_EXEC_START_PRE, offsetof(Socket, exec_command)},
260 : {"Socket.ExecStartPost", config_parse_exec, SOCKET_EXEC_START_POST, offsetof(Socket, exec_command)},
261 : {"Mount.Group", config_parse_unit_string_printf, 0, offsetof(Mount, exec_context.group)},
262 : {(char*)0}, {(char*)0},
263 : {"Service.RuntimeDirectory", config_parse_runtime_directory, 0, offsetof(Service, exec_context.runtime_directory)},
264 : {"Mount.Nice", config_parse_exec_nice, 0, offsetof(Mount, exec_context)},
265 : {"Timer.Persistent", config_parse_bool, 0, offsetof(Timer, persistent)},
266 : {(char*)0},
267 : {"Socket.SyslogLevel", config_parse_log_level, 0, offsetof(Socket, exec_context.syslog_priority)},
268 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
269 : {"Swap.Priority", config_parse_int, 0, offsetof(Swap, parameters_fragment.priority)},
270 : {(char*)0},
271 : {"Service.SuccessExitStatus", config_parse_set_status, 0, offsetof(Service, success_status)},
272 : {"Service.RootDirectory", config_parse_unit_path_printf, 0, offsetof(Service, exec_context.root_directory)},
273 : {(char*)0},
274 : {"Swap.KillMode", config_parse_kill_mode, 0, offsetof(Swap, kill_context.kill_mode)},
275 : {"Swap.CPUShares", config_parse_cpu_shares, 0, offsetof(Swap, cgroup_context.cpu_shares)},
276 : {(char*)0},
277 : {"Mount.SecureBits", config_parse_exec_secure_bits, 0, offsetof(Mount, exec_context)},
278 : {(char*)0}, {(char*)0}, {(char*)0},
279 : {"Service.RootDirectoryStartOnly", config_parse_bool, 0, offsetof(Service, root_directory_start_only)},
280 : {"Path.PathChanged", config_parse_path_spec, 0, 0},
281 : {"Mount.RuntimeDirectory", config_parse_runtime_directory, 0, offsetof(Mount, exec_context.runtime_directory)},
282 : {"Install.RequiredBy", NULL, 0, 0},
283 : {(char*)0}, {(char*)0}, {(char*)0},
284 : {"Socket.TimeoutSec", config_parse_sec, 0, offsetof(Socket, timeout_usec)},
285 : {"Service.StartLimitBurst", config_parse_unsigned, 0, offsetof(Service, start_limit.burst)},
286 : {"Swap.ReadOnlyDirectories", config_parse_namespace_path_strv, 0, offsetof(Swap, exec_context.read_only_dirs)},
287 : {"Socket.Priority", config_parse_int, 0, offsetof(Socket, priority)},
288 : {"Mount.TimeoutSec", config_parse_sec, 0, offsetof(Mount, timeout_usec)},
289 : {"Unit.ConditionSecurity", config_parse_unit_condition_string, CONDITION_SECURITY, offsetof(Unit, conditions)},
290 : {"Socket.SyslogIdentifier", config_parse_unit_string_printf, 0, offsetof(Socket, exec_context.syslog_identifier)},
291 : {"Mount.SloppyOptions", config_parse_bool, 0, offsetof(Mount, sloppy_options)},
292 : {(char*)0},
293 : {"Service.Delegate", config_parse_bool, 0, offsetof(Service, cgroup_context.delegate)},
294 : {"Mount.SystemCallFilter", config_parse_syscall_filter, 0, offsetof(Mount, exec_context)},
295 : {"Mount.Options", config_parse_string, 0, offsetof(Mount, parameters_fragment.options)},
296 : {"Mount.SystemCallArchitectures", config_parse_syscall_archs, 0, offsetof(Mount, exec_context.syscall_archs)},
297 : {"Scope.TimeoutStopSec", config_parse_sec, 0, offsetof(Scope, timeout_stop_usec)},
298 : {(char*)0},
299 : {"Mount.SystemCallErrorNumber", config_parse_syscall_errno, 0, offsetof(Mount, exec_context)},
300 : {"Swap.StandardInput", config_parse_input, 0, offsetof(Swap, exec_context.std_input)},
301 : {"Mount.ProtectSystem", config_parse_protect_system, 0, offsetof(Mount, exec_context)},
302 : {"Swap.MountFlags", config_parse_exec_mount_flags, 0, offsetof(Swap, exec_context)},
303 : {(char*)0}, {(char*)0}, {(char*)0},
304 : {"Mount.RootDirectory", config_parse_unit_path_printf, 0, offsetof(Mount, exec_context.root_directory)},
305 : {(char*)0},
306 : {"Mount.PrivateTmp", config_parse_bool, 0, offsetof(Mount, exec_context.private_tmp)},
307 : {(char*)0},
308 : {"Swap.RestrictAddressFamilies", config_parse_address_families, 0, offsetof(Swap, exec_context)},
309 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
310 : {"Socket.Accept", config_parse_bool, 0, offsetof(Socket, accept)},
311 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
312 : {"Install.DefaultInstance", NULL, 0, 0},
313 : {(char*)0},
314 : {"Socket.LimitRSS", config_parse_limit, RLIMIT_RSS, offsetof(Socket, exec_context.rlimit)},
315 : {"Mount.KillSignal", config_parse_kill_signal, 0, offsetof(Mount, kill_context.kill_signal)},
316 : {"BusName.Name", config_parse_string, 0, offsetof(BusName, name)},
317 : {"Socket.ExecStopPre", config_parse_exec, SOCKET_EXEC_STOP_PRE, offsetof(Socket, exec_command)},
318 : {"Socket.ExecStopPost", config_parse_exec, SOCKET_EXEC_STOP_POST, offsetof(Socket, exec_command)},
319 : {(char*)0},
320 : {"Scope.KillSignal", config_parse_kill_signal, 0, offsetof(Scope, kill_context.kill_signal)},
321 : {"Service.Nice", config_parse_exec_nice, 0, offsetof(Service, exec_context)},
322 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
323 : {(char*)0}, {(char*)0}, {(char*)0},
324 : {"Mount.TimerSlackNSec", config_parse_nsec, 0, offsetof(Mount, exec_context.timer_slack_nsec)},
325 : {(char*)0},
326 : {"Swap.PAMName", config_parse_unit_string_printf, 0, offsetof(Swap, exec_context.pam_name)},
327 : {"Unit.Requires", config_parse_unit_deps, UNIT_REQUIRES, 0},
328 : {(char*)0}, {(char*)0}, {(char*)0},
329 : {"Swap.LimitAS", config_parse_limit, RLIMIT_AS, offsetof(Swap, exec_context.rlimit)},
330 : {"Swap.LimitRSS", config_parse_limit, RLIMIT_RSS, offsetof(Swap, exec_context.rlimit)},
331 : {"Socket.BindToDevice", config_parse_socket_bindtodevice, 0, 0},
332 : {(char*)0}, {(char*)0},
333 : {"Socket.PrivateTmp", config_parse_bool, 0, offsetof(Socket, exec_context.private_tmp)},
334 : {"Timer.OnStartupSec", config_parse_timer, 0, 0},
335 : {(char*)0}, {(char*)0},
336 : {"Service.InaccessibleDirectories", config_parse_namespace_path_strv, 0, offsetof(Service, exec_context.inaccessible_dirs)},
337 : {"Timer.AccuracySec", config_parse_sec, 0, offsetof(Timer, accuracy_usec)},
338 : {"Service.StartupBlockIOWeight", config_parse_blockio_weight, 0, offsetof(Service, cgroup_context.startup_blockio_weight)},
339 : {"Unit.Requisite", config_parse_unit_deps, UNIT_REQUISITE, 0},
340 : {(char*)0},
341 : {"Swap.TTYVTDisallocate", config_parse_bool, 0, offsetof(Swap, exec_context.tty_vt_disallocate)},
342 : {(char*)0}, {(char*)0},
343 : {"Service.StartupCPUShares", config_parse_cpu_shares, 0, offsetof(Service, cgroup_context.startup_cpu_shares)},
344 : {(char*)0}, {(char*)0}, {(char*)0},
345 : {"Service.NoNewPrivileges", config_parse_no_new_privileges, 0, offsetof(Service, exec_context)},
346 : {(char*)0}, {(char*)0},
347 : {"Timer.WakeSystem", config_parse_bool, 0, offsetof(Timer, wake_system)},
348 : {"Service.SupplementaryGroups", config_parse_strv, 0, offsetof(Service, exec_context.supplementary_groups)},
349 : {"Service.ReadWriteDirectories", config_parse_namespace_path_strv, 0, offsetof(Service, exec_context.read_write_dirs)},
350 : {(char*)0},
351 : {"Mount.What", config_parse_string, 0, offsetof(Mount, parameters_fragment.what)},
352 : {(char*)0},
353 : {"Slice.MemoryLimit", config_parse_memory_limit, 0, offsetof(Slice, cgroup_context)},
354 : {(char*)0}, {(char*)0}, {(char*)0},
355 : {"Socket.ReusePort", config_parse_bool, 0, offsetof(Socket, reuse_port)},
356 : {(char*)0}, {(char*)0},
357 : {"Swap.Nice", config_parse_exec_nice, 0, offsetof(Swap, exec_context)},
358 : {(char*)0},
359 : {"Socket.DeferAcceptSec", config_parse_sec, 0, offsetof(Socket, defer_accept)},
360 : {"Mount.MemoryLimit", config_parse_memory_limit, 0, offsetof(Mount, cgroup_context)},
361 : {"Swap.Delegate", config_parse_bool, 0, offsetof(Swap, cgroup_context.delegate)},
362 : {"Socket.Service", config_parse_socket_service, 0, 0},
363 : {"Swap.TimeoutSec", config_parse_sec, 0, offsetof(Swap, timeout_usec)},
364 : {(char*)0},
365 : {"Scope.MemoryLimit", config_parse_memory_limit, 0, offsetof(Scope, cgroup_context)},
366 : {(char*)0}, {(char*)0}, {(char*)0},
367 : {"Mount.Where", config_parse_path, 0, offsetof(Mount, where)},
368 : {"Unit.RequiresMountsFor", config_parse_unit_requires_mounts_for, 0, 0},
369 : {(char*)0}, {(char*)0},
370 : {"Unit.After", config_parse_unit_deps, UNIT_AFTER, 0},
371 : {"Socket.MaxConnections", config_parse_unsigned, 0, offsetof(Socket, max_connections)},
372 : {"Mount.Personality", config_parse_personality, 0, offsetof(Mount, exec_context.personality)},
373 : {(char*)0},
374 : {"Unit.OnFailure", config_parse_unit_deps, UNIT_ON_FAILURE, 0},
375 : {"Socket.RestrictAddressFamilies", config_parse_address_families, 0, offsetof(Socket, exec_context)},
376 : {(char*)0},
377 : {"Mount.WorkingDirectory", config_parse_unit_path_printf, 0, offsetof(Mount, exec_context.working_directory)},
378 : {"Socket.MemoryLimit", config_parse_memory_limit, 0, offsetof(Socket, cgroup_context)},
379 : {"Path.PathExistsGlob", config_parse_path_spec, 0, 0},
380 : {"Mount.User", config_parse_unit_string_printf, 0, offsetof(Mount, exec_context.user)},
381 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
382 : {(char*)0},
383 : {"Mount.ReadWriteDirectories", config_parse_namespace_path_strv, 0, offsetof(Mount, exec_context.read_write_dirs)},
384 : {"Socket.SecureBits", config_parse_exec_secure_bits, 0, offsetof(Socket, exec_context)},
385 : {(char*)0},
386 : {"Socket.NoDelay", config_parse_bool, 0, offsetof(Socket, no_delay)},
387 : {"Swap.Group", config_parse_unit_string_printf, 0, offsetof(Swap, exec_context.group)},
388 : {"Unit.PartOf", config_parse_unit_deps, UNIT_PART_OF, 0},
389 : {(char*)0},
390 : {"Socket.ProtectHome", config_parse_protect_home, 0, offsetof(Socket, exec_context)},
391 : {(char*)0}, {(char*)0},
392 : {"Socket.OOMScoreAdjust", config_parse_exec_oom_score_adjust, 0, offsetof(Socket, exec_context)},
393 : {(char*)0}, {(char*)0},
394 : {"Mount.InaccessibleDirectories", config_parse_namespace_path_strv, 0, offsetof(Mount, exec_context.inaccessible_dirs)},
395 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
396 : {(char*)0},
397 : {"Socket.ListenSpecial", config_parse_socket_listen, SOCKET_SPECIAL, 0},
398 : {"Service.StandardInput", config_parse_input, 0, offsetof(Service, exec_context.std_input)},
399 : {"Service.StandardOutput", config_parse_output, 0, offsetof(Service, exec_context.std_output)},
400 : {(char*)0}, {(char*)0},
401 : {"Service.SmackProcessLabel", config_parse_exec_smack_process_label, 0, offsetof(Service, exec_context)},
402 : {"Unit.ConditionKernelCommandLine", config_parse_unit_condition_string, CONDITION_KERNEL_COMMAND_LINE, offsetof(Unit, conditions)},
403 : {(char*)0}, {(char*)0}, {(char*)0},
404 : {"Swap.NoNewPrivileges", config_parse_no_new_privileges, 0, offsetof(Swap, exec_context)},
405 : {(char*)0}, {(char*)0}, {(char*)0},
406 : {"Socket.SyslogLevelPrefix", config_parse_bool, 0, offsetof(Socket, exec_context.syslog_level_prefix)},
407 : {"Unit.IgnoreOnIsolate", config_parse_bool, 0, offsetof(Unit, ignore_on_isolate)},
408 : {"Service.StandardError", config_parse_output, 0, offsetof(Service, exec_context.std_error)},
409 : {"Swap.SmackProcessLabel", config_parse_exec_smack_process_label, 0, offsetof(Swap, exec_context)},
410 : {"Mount.IOSchedulingClass", config_parse_exec_io_class, 0, offsetof(Mount, exec_context)},
411 : {"Swap.OOMScoreAdjust", config_parse_exec_oom_score_adjust, 0, offsetof(Swap, exec_context)},
412 : {"Socket.StandardInput", config_parse_input, 0, offsetof(Socket, exec_context.std_input)},
413 : {"Socket.StandardOutput", config_parse_output, 0, offsetof(Socket, exec_context.std_output)},
414 : {(char*)0}, {(char*)0},
415 : {"Slice.BlockIOWeight", config_parse_blockio_weight, 0, offsetof(Slice, cgroup_context.blockio_weight)},
416 : {"Mount.UtmpIdentifier", config_parse_unit_string_printf, 0, offsetof(Mount, exec_context.utmp_id)},
417 : {"Timer.OnUnitActiveSec", config_parse_timer, 0, 0},
418 : {(char*)0},
419 : {"Unit.ConditionHost", config_parse_unit_condition_string, CONDITION_HOST, offsetof(Unit, conditions)},
420 : {"Service.StartLimitAction", config_parse_failure_action, 0, offsetof(Service, start_limit_action)},
421 : {"Slice.BlockIODeviceWeight", config_parse_blockio_device_weight, 0, offsetof(Slice, cgroup_context)},
422 : {"Service.StartLimitInterval", config_parse_sec, 0, offsetof(Service, start_limit.interval)},
423 : {"Path.PathModified", config_parse_path_spec, 0, 0},
424 : {(char*)0},
425 : {"Mount.BlockIOWeight", config_parse_blockio_weight, 0, offsetof(Mount, cgroup_context.blockio_weight)},
426 : {"Socket.StandardError", config_parse_output, 0, offsetof(Socket, exec_context.std_error)},
427 : {"Unit.JoinsNamespaceOf", config_parse_unit_deps, UNIT_JOINS_NAMESPACE_OF, 0},
428 : {"Socket.ReadWriteDirectories", config_parse_namespace_path_strv, 0, offsetof(Socket, exec_context.read_write_dirs)},
429 : {(char*)0},
430 : {"Scope.BlockIOWeight", config_parse_blockio_weight, 0, offsetof(Scope, cgroup_context.blockio_weight)},
431 : {"Mount.BlockIODeviceWeight", config_parse_blockio_device_weight, 0, offsetof(Mount, cgroup_context)},
432 : {(char*)0},
433 : {"Service.User", config_parse_unit_string_printf, 0, offsetof(Service, exec_context.user)},
434 : {(char*)0},
435 : {"Unit.DefaultDependencies", config_parse_bool, 0, offsetof(Unit, default_dependencies)},
436 : {"Scope.BlockIODeviceWeight", config_parse_blockio_device_weight, 0, offsetof(Scope, cgroup_context)},
437 : {(char*)0},
438 : {"Swap.IOSchedulingClass", config_parse_exec_io_class, 0, offsetof(Swap, exec_context)},
439 : {(char*)0},
440 : {"Unit.ConditionPathIsReadWrite", config_parse_unit_condition_path, CONDITION_PATH_IS_READ_WRITE, offsetof(Unit, conditions)},
441 : {"Unit.ConditionPathIsMountPoint", config_parse_unit_condition_path, CONDITION_PATH_IS_MOUNT_POINT, offsetof(Unit, conditions)},
442 : {(char*)0}, {(char*)0},
443 : {"Timer.OnUnitInactiveSec", config_parse_timer, 0, 0},
444 : {"Unit.ConditionPathExists", config_parse_unit_condition_path, CONDITION_PATH_EXISTS, offsetof(Unit, conditions)},
445 : {"Timer.OnBootSec", config_parse_timer, 0, 0},
446 : {(char*)0}, {(char*)0},
447 : {"Path.MakeDirectory", config_parse_bool, 0, offsetof(Path, make_directory)},
448 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
449 : {(char*)0}, {(char*)0},
450 : {"BusName.Service", config_parse_busname_service, 0, 0},
451 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
452 : {"Slice.CPUShares", config_parse_cpu_shares, 0, offsetof(Slice, cgroup_context.cpu_shares)},
453 : {"Socket.SupplementaryGroups", config_parse_strv, 0, offsetof(Socket, exec_context.supplementary_groups)},
454 : {(char*)0}, {(char*)0}, {(char*)0},
455 : {"Swap.TTYVHangup", config_parse_bool, 0, offsetof(Swap, exec_context.tty_vhangup)},
456 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
457 : {"Mount.CPUShares", config_parse_cpu_shares, 0, offsetof(Mount, cgroup_context.cpu_shares)},
458 : {(char*)0}, {(char*)0}, {(char*)0},
459 : {"Socket.DevicePolicy", config_parse_device_policy, 0, offsetof(Socket, cgroup_context.device_policy)},
460 : {"Scope.CPUShares", config_parse_cpu_shares, 0, offsetof(Scope, cgroup_context.cpu_shares)},
461 : {(char*)0},
462 : {"Service.ReadOnlyDirectories", config_parse_namespace_path_strv, 0, offsetof(Service, exec_context.read_only_dirs)},
463 : {"Socket.StartupCPUShares", config_parse_cpu_shares, 0, offsetof(Socket, cgroup_context.startup_cpu_shares)},
464 : {"Slice.CPUQuota", config_parse_cpu_quota, 0, offsetof(Slice, cgroup_context)},
465 : {"Service.IOSchedulingClass", config_parse_exec_io_class, 0, offsetof(Service, exec_context)},
466 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
467 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
468 : {"Mount.CPUQuota", config_parse_cpu_quota, 0, offsetof(Mount, cgroup_context)},
469 : {(char*)0}, {(char*)0},
470 : {"Service.OOMScoreAdjust", config_parse_exec_oom_score_adjust, 0, offsetof(Service, exec_context)},
471 : {(char*)0},
472 : {"Scope.CPUQuota", config_parse_cpu_quota, 0, offsetof(Scope, cgroup_context)},
473 : {(char*)0},
474 : {"Swap.Environment", config_parse_environ, 0, offsetof(Swap, exec_context.environment)},
475 : {(char*)0}, {(char*)0},
476 : {"Swap.CPUSchedulingPolicy", config_parse_exec_cpu_sched_policy, 0, offsetof(Swap, exec_context)},
477 : {"Swap.EnvironmentFile", config_parse_unit_env_file, 0, offsetof(Swap, exec_context.environment_files)},
478 : {"Swap.CPUSchedulingPriority", config_parse_exec_cpu_sched_prio, 0, offsetof(Swap, exec_context)},
479 : {(char*)0},
480 : {"Service.Group", config_parse_unit_string_printf, 0, offsetof(Service, exec_context.group)},
481 : {"Unit.Conflicts", config_parse_unit_deps, UNIT_CONFLICTS, 0},
482 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
483 : {(char*)0}, {(char*)0},
484 : {"Mount.IOSchedulingPriority", config_parse_exec_io_priority, 0, offsetof(Mount, exec_context)},
485 : {(char*)0},
486 : {"Swap.BlockIOWeight", config_parse_blockio_weight, 0, offsetof(Swap, cgroup_context.blockio_weight)},
487 : {(char*)0}, {(char*)0},
488 : {"Unit.Description", config_parse_unit_string_printf, 0, offsetof(Unit, description)},
489 : {"Service.UtmpIdentifier", config_parse_unit_string_printf, 0, offsetof(Service, exec_context.utmp_id)},
490 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
491 : {(char*)0},
492 : {"Swap.CPUQuota", config_parse_cpu_quota, 0, offsetof(Swap, cgroup_context)},
493 : {(char*)0}, {(char*)0},
494 : {"Socket.UtmpIdentifier", config_parse_unit_string_printf, 0, offsetof(Socket, exec_context.utmp_id)},
495 : {"Mount.SyslogIdentifier", config_parse_unit_string_printf, 0, offsetof(Mount, exec_context.syslog_identifier)},
496 : {(char*)0},
497 : {"Socket.PassSecurity", config_parse_bool, 0, offsetof(Socket, pass_sec)},
498 : {(char*)0},
499 : {"Unit.ConditionArchitecture", config_parse_unit_condition_string, CONDITION_ARCHITECTURE, offsetof(Unit, conditions)},
500 : {(char*)0}, {(char*)0},
501 : {"Socket.BindIPv6Only", config_parse_socket_bind, 0, 0,},
502 : {(char*)0},
503 : {"Swap.SyslogIdentifier", config_parse_unit_string_printf, 0, offsetof(Swap, exec_context.syslog_identifier)},
504 : {"Swap.Capabilities", config_parse_exec_capabilities, 0, offsetof(Swap, exec_context)},
505 : {"Socket.LimitRTTIME", config_parse_limit, RLIMIT_RTTIME, offsetof(Socket, exec_context.rlimit)},
506 : {(char*)0},
507 : {"Swap.IOSchedulingPriority", config_parse_exec_io_priority, 0, offsetof(Swap, exec_context)},
508 : {"Unit.ConditionACPower", config_parse_unit_condition_string, CONDITION_AC_POWER, offsetof(Unit, conditions)},
509 : {(char*)0},
510 : {"Swap.InaccessibleDirectories", config_parse_namespace_path_strv, 0, offsetof(Swap, exec_context.inaccessible_dirs)},
511 : {(char*)0},
512 : {"Swap.UMask", config_parse_mode, 0, offsetof(Swap, exec_context.umask)},
513 : {"Slice.StartupBlockIOWeight", config_parse_blockio_weight, 0, offsetof(Slice, cgroup_context.startup_blockio_weight)},
514 : {(char*)0}, {(char*)0},
515 : {"Unit.ConditionPathIsDirectory", config_parse_unit_condition_path, CONDITION_PATH_IS_DIRECTORY, offsetof(Unit, conditions)},
516 : {"Socket.TTYReset", config_parse_bool, 0, offsetof(Socket, exec_context.tty_reset)},
517 : {"Swap.MemoryLimit", config_parse_memory_limit, 0, offsetof(Swap, cgroup_context)},
518 : {"Socket.KillSignal", config_parse_kill_signal, 0, offsetof(Socket, kill_context.kill_signal)},
519 : {(char*)0},
520 : {"Mount.RestrictAddressFamilies", config_parse_address_families, 0, offsetof(Mount, exec_context)},
521 : {(char*)0},
522 : {"Mount.StartupBlockIOWeight", config_parse_blockio_weight, 0, offsetof(Mount, cgroup_context.startup_blockio_weight)},
523 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
524 : {"Scope.StartupBlockIOWeight", config_parse_blockio_weight, 0, offsetof(Scope, cgroup_context.startup_blockio_weight)},
525 : {"Service.Type", config_parse_service_type, 0, offsetof(Service, type)},
526 : {(char*)0},
527 : {"Unit.RequiresOverridable", config_parse_unit_deps, UNIT_REQUIRES_OVERRIDABLE, 0},
528 : {(char*)0}, {(char*)0}, {(char*)0},
529 : {"Service.TimeoutSec", config_parse_service_timeout, 0, offsetof(Service, timeout_start_usec)},
530 : {(char*)0}, {(char*)0},
531 : {"Unit.IgnoreOnSnapshot", config_parse_bool, 0, offsetof(Unit, ignore_on_snapshot)},
532 : {"Service.TimeoutStopSec", config_parse_service_timeout, 0, offsetof(Service, timeout_stop_usec)},
533 : {"Service.TimeoutStartSec", config_parse_service_timeout, 0, offsetof(Service, timeout_start_usec)},
534 : {"Unit.AssertSecurity", config_parse_unit_condition_string, CONDITION_SECURITY, offsetof(Unit, asserts)},
535 : {(char*)0},
536 : {"Slice.BlockIOReadBandwidth", config_parse_blockio_bandwidth, 0, offsetof(Slice, cgroup_context)},
537 : {"BusName.SELinuxContext", config_parse_exec_selinux_context, 0, 0},
538 : {"Unit.JobTimeoutSec", config_parse_sec, 0, offsetof(Unit, job_timeout)},
539 : {(char*)0},
540 : {"Swap.LimitLOCKS", config_parse_limit, RLIMIT_LOCKS, offsetof(Swap, exec_context.rlimit)},
541 : {(char*)0},
542 : {"Service.SELinuxContext", config_parse_warn_compat, DISABLED_CONFIGURATION, 0},
543 : {"Service.IOSchedulingPriority", config_parse_exec_io_priority, 0, offsetof(Service, exec_context)},
544 : {"Socket.IOSchedulingClass", config_parse_exec_io_class, 0, offsetof(Socket, exec_context)},
545 : {(char*)0},
546 : {"Mount.BlockIOReadBandwidth", config_parse_blockio_bandwidth, 0, offsetof(Mount, cgroup_context)},
547 : {(char*)0}, {(char*)0},
548 : {"Unit.JobTimeoutRebootArgument", config_parse_string, 0, offsetof(Unit, job_timeout_reboot_arg)},
549 : {(char*)0},
550 : {"Scope.BlockIOReadBandwidth", config_parse_blockio_bandwidth, 0, offsetof(Scope, cgroup_context)},
551 : {"Slice.BlockIOWriteBandwidth", config_parse_blockio_bandwidth, 0, offsetof(Slice, cgroup_context)},
552 : {(char*)0},
553 : {"Unit.ConditionCapability", config_parse_unit_condition_string, CONDITION_CAPABILITY, offsetof(Unit, conditions)},
554 : {(char*)0}, {(char*)0}, {(char*)0},
555 : {"Service.RemainAfterExit", config_parse_bool, 0, offsetof(Service, remain_after_exit)},
556 : {(char*)0},
557 : {"Unit.RequisiteOverridable", config_parse_unit_deps, UNIT_REQUISITE_OVERRIDABLE, 0},
558 : {(char*)0},
559 : {"Mount.BlockIOWriteBandwidth", config_parse_blockio_bandwidth, 0, offsetof(Mount, cgroup_context)},
560 : {(char*)0}, {(char*)0}, {(char*)0},
561 : {"Socket.PrivateDevices", config_parse_bool, 0, offsetof(Socket, exec_context.private_devices)},
562 : {"Scope.BlockIOWriteBandwidth", config_parse_blockio_bandwidth, 0, offsetof(Scope, cgroup_context)},
563 : {(char*)0}, {(char*)0},
564 : {"Unit.ReloadPropagatedFrom", config_parse_unit_deps, UNIT_RELOAD_PROPAGATED_FROM, 0},
565 : {(char*)0},
566 : {"Service.RebootArgument", config_parse_string, 0, offsetof(Service, reboot_arg)},
567 : {(char*)0},
568 : {"Mount.StandardError", config_parse_output, 0, offsetof(Mount, exec_context.std_error)},
569 : {(char*)0},
570 : {"Timer.OnCalendar", config_parse_timer, 0, 0},
571 : {(char*)0}, {(char*)0}, {(char*)0},
572 : {"Mount.SyslogFacility", config_parse_log_facility, 0, offsetof(Mount, exec_context.syslog_priority)},
573 : {"Swap.CapabilityBoundingSet", config_parse_bounding_set, 0, offsetof(Swap, exec_context.capability_bounding_set_drop)},
574 : {(char*)0}, {(char*)0}, {(char*)0},
575 : {"Swap.ReadWriteDirectories", config_parse_namespace_path_strv, 0, offsetof(Swap, exec_context.read_write_dirs)},
576 : {"Unit.OnFailureJobMode", config_parse_job_mode, 0, offsetof(Unit, on_failure_job_mode)},
577 : {"Socket.LimitLOCKS", config_parse_limit, RLIMIT_LOCKS, offsetof(Socket, exec_context.rlimit)},
578 : {"Unit.ConditionVirtualization", config_parse_unit_condition_string, CONDITION_VIRTUALIZATION, offsetof(Unit, conditions)},
579 : {(char*)0}, {(char*)0},
580 : {"Swap.SyslogLevel", config_parse_log_level, 0, offsetof(Swap, exec_context.syslog_priority)},
581 : {(char*)0}, {(char*)0}, {(char*)0},
582 : {"Socket.BlockIOWeight", config_parse_blockio_weight, 0, offsetof(Socket, cgroup_context.blockio_weight)},
583 : {"Service.IgnoreSIGPIPE", config_parse_bool, 0, offsetof(Service, exec_context.ignore_sigpipe)},
584 : {"Mount.TTYVTDisallocate", config_parse_bool, 0, offsetof(Mount, exec_context.tty_vt_disallocate)},
585 : {"Socket.CapabilityBoundingSet", config_parse_bounding_set, 0, offsetof(Socket, exec_context.capability_bounding_set_drop)},
586 : {"Socket.Capabilities", config_parse_exec_capabilities, 0, offsetof(Socket, exec_context)},
587 : {"Mount.StandardOutput", config_parse_output, 0, offsetof(Mount, exec_context.std_output)},
588 : {(char*)0}, {(char*)0},
589 : {"Unit.Documentation", config_parse_documentation, 0, offsetof(Unit, documentation)},
590 : {"Service.SystemCallFilter", config_parse_syscall_filter, 0, offsetof(Service, exec_context)},
591 : {(char*)0},
592 : {"Service.SystemCallArchitectures", config_parse_syscall_archs, 0, offsetof(Service, exec_context.syscall_archs)},
593 : {(char*)0},
594 : {"Socket.Personality", config_parse_personality, 0, offsetof(Socket, exec_context.personality)},
595 : {"Service.SystemCallErrorNumber", config_parse_syscall_errno, 0, offsetof(Service, exec_context)},
596 : {"Socket.ListenNetlink", config_parse_socket_listen, SOCKET_SOCKET, 0},
597 : {(char*)0},
598 : {"Socket.LimitFSIZE", config_parse_limit, RLIMIT_FSIZE, offsetof(Socket, exec_context.rlimit)},
599 : {(char*)0},
600 : {"Swap.LimitCORE", config_parse_limit, RLIMIT_CORE, offsetof(Swap, exec_context.rlimit)},
601 : {(char*)0}, {(char*)0},
602 : {"Swap.DevicePolicy", config_parse_device_policy, 0, offsetof(Swap, cgroup_context.device_policy)},
603 : {(char*)0},
604 : {"Mount.StandardInput", config_parse_input, 0, offsetof(Mount, exec_context.std_input)},
605 : {(char*)0},
606 : {"Unit.OnFailureIsolate", config_parse_job_mode_isolate, 0, offsetof(Unit, on_failure_job_mode)},
607 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
608 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
609 : {(char*)0}, {(char*)0}, {(char*)0},
610 : {"Mount.PAMName", config_parse_unit_string_printf, 0, offsetof(Mount, exec_context.pam_name)},
611 : {"Swap.LimitNICE", config_parse_limit, RLIMIT_NICE, offsetof(Swap, exec_context.rlimit)},
612 : {"Swap.BlockIOReadBandwidth", config_parse_blockio_bandwidth, 0, offsetof(Swap, cgroup_context)},
613 : {"Swap.BlockIOWriteBandwidth", config_parse_blockio_bandwidth, 0, offsetof(Swap, cgroup_context)},
614 : {"Service.CPUShares", config_parse_cpu_shares, 0, offsetof(Service, cgroup_context.cpu_shares)},
615 : {(char*)0},
616 : {"Swap.SELinuxContext", config_parse_warn_compat, DISABLED_CONFIGURATION, 0},
617 : {"Unit.ConditionNeedsUpdate", config_parse_unit_condition_path, CONDITION_NEEDS_UPDATE, offsetof(Unit, conditions)},
618 : {"Swap.SystemCallFilter", config_parse_syscall_filter, 0, offsetof(Swap, exec_context)},
619 : {(char*)0},
620 : {"Swap.SystemCallArchitectures", config_parse_syscall_archs, 0, offsetof(Swap, exec_context.syscall_archs)},
621 : {(char*)0},
622 : {"Mount.PrivateNetwork", config_parse_bool, 0, offsetof(Mount, exec_context.private_network)},
623 : {"Swap.SystemCallErrorNumber", config_parse_syscall_errno, 0, offsetof(Swap, exec_context)},
624 : {"Socket.IOSchedulingPriority", config_parse_exec_io_priority, 0, offsetof(Socket, exec_context)},
625 : {(char*)0},
626 : {"Service.SyslogIdentifier", config_parse_unit_string_printf, 0, offsetof(Service, exec_context.syslog_identifier)},
627 : {(char*)0},
628 : {"Swap.StartupCPUShares", config_parse_cpu_shares, 0, offsetof(Swap, cgroup_context.startup_cpu_shares)},
629 : {"Socket.ListenFIFO", config_parse_socket_listen, SOCKET_FIFO, 0},
630 : {(char*)0}, {(char*)0},
631 : {"Swap.LimitFSIZE", config_parse_limit, RLIMIT_FSIZE, offsetof(Swap, exec_context.rlimit)},
632 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
633 : {"Mount.Type", config_parse_string, 0, offsetof(Mount, parameters_fragment.fstype)},
634 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
635 : {"Socket.IgnoreSIGPIPE", config_parse_bool, 0, offsetof(Socket, exec_context.ignore_sigpipe)},
636 : {(char*)0},
637 : {"Socket.AppArmorProfile", config_parse_warn_compat, DISABLED_CONFIGURATION, 0},
638 : {(char*)0}, {(char*)0},
639 : {"Unit.AssertHost", config_parse_unit_condition_string, CONDITION_HOST, offsetof(Unit, asserts)},
640 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
641 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
642 : {(char*)0},
643 : {"Unit.SourcePath", config_parse_path, 0, offsetof(Unit, source_path)},
644 : {"Service.BlockIOWeight", config_parse_blockio_weight, 0, offsetof(Service, cgroup_context.blockio_weight)},
645 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
646 : {"Socket.ReadOnlyDirectories", config_parse_namespace_path_strv, 0, offsetof(Socket, exec_context.read_only_dirs)},
647 : {"Service.BlockIODeviceWeight", config_parse_blockio_device_weight, 0, offsetof(Service, cgroup_context)},
648 : {(char*)0},
649 : {"Socket.TTYPath", config_parse_unit_path_printf, 0, offsetof(Socket, exec_context.tty_path)},
650 : {"Service.SysVStartPriority", config_parse_warn_compat, DISABLED_LEGACY, 0},
651 : {"Unit.ConditionDirectoryNotEmpty", config_parse_unit_condition_path, CONDITION_DIRECTORY_NOT_EMPTY, offsetof(Unit, conditions)},
652 : {(char*)0}, {(char*)0},
653 : {"Swap.SupplementaryGroups", config_parse_strv, 0, offsetof(Swap, exec_context.supplementary_groups)},
654 : {"Mount.CPUSchedulingPolicy", config_parse_exec_cpu_sched_policy, 0, offsetof(Mount, exec_context)},
655 : {(char*)0},
656 : {"Mount.CPUSchedulingPriority", config_parse_exec_cpu_sched_prio, 0, offsetof(Mount, exec_context)},
657 : {"Unit.ConditionPathExistsGlob", config_parse_unit_condition_path, CONDITION_PATH_EXISTS_GLOB, offsetof(Unit, conditions)},
658 : {"Swap.UtmpIdentifier", config_parse_unit_string_printf, 0, offsetof(Swap, exec_context.utmp_id)},
659 : {"Service.Sockets", config_parse_service_sockets, 0, 0},
660 : {(char*)0},
661 : {"Mount.CapabilityBoundingSet", config_parse_bounding_set, 0, offsetof(Mount, exec_context.capability_bounding_set_drop)},
662 : {"Mount.Capabilities", config_parse_exec_capabilities, 0, offsetof(Mount, exec_context)},
663 : {(char*)0}, {(char*)0}, {(char*)0},
664 : {"Service.TimerSlackNSec", config_parse_nsec, 0, offsetof(Service, exec_context.timer_slack_nsec)},
665 : {"Socket.TTYVTDisallocate", config_parse_bool, 0, offsetof(Socket, exec_context.tty_vt_disallocate)},
666 : {(char*)0}, {(char*)0}, {(char*)0},
667 : {"Slice.StartupCPUShares", config_parse_cpu_shares, 0, offsetof(Slice, cgroup_context.startup_cpu_shares)},
668 : {(char*)0}, {(char*)0}, {(char*)0},
669 : {"Unit.JobTimeoutAction", config_parse_failure_action, 0, offsetof(Unit, job_timeout_action)},
670 : {(char*)0},
671 : {"Mount.LimitAS", config_parse_limit, RLIMIT_AS, offsetof(Mount, exec_context.rlimit)},
672 : {"Swap.BlockIODeviceWeight", config_parse_blockio_device_weight, 0, offsetof(Swap, cgroup_context)},
673 : {"Socket.RootDirectory", config_parse_unit_path_printf, 0, offsetof(Socket, exec_context.root_directory)},
674 : {(char*)0},
675 : {"Mount.StartupCPUShares", config_parse_cpu_shares, 0, offsetof(Mount, cgroup_context.startup_cpu_shares)},
676 : {(char*)0},
677 : {"Mount.LimitRSS", config_parse_limit, RLIMIT_RSS, offsetof(Mount, exec_context.rlimit)},
678 : {"Service.DevicePolicy", config_parse_device_policy, 0, offsetof(Service, cgroup_context.device_policy)},
679 : {(char*)0},
680 : {"Scope.StartupCPUShares", config_parse_cpu_shares, 0, offsetof(Scope, cgroup_context.startup_cpu_shares)},
681 : {(char*)0}, {(char*)0}, {(char*)0},
682 : {"Socket.LimitDATA", config_parse_limit, RLIMIT_DATA, offsetof(Socket, exec_context.rlimit)},
683 : {"Service.CPUSchedulingPolicy", config_parse_exec_cpu_sched_policy, 0, offsetof(Service, exec_context)},
684 : {"Socket.LimitRTPRIO", config_parse_limit, RLIMIT_RTPRIO, offsetof(Socket, exec_context.rlimit)},
685 : {"Service.CPUSchedulingPriority", config_parse_exec_cpu_sched_prio, 0, offsetof(Service, exec_context)},
686 : {"Socket.TCPCongestion", config_parse_string, 0, offsetof(Socket, tcp_congestion)},
687 : {(char*)0}, {(char*)0},
688 : {"Unit.PropagatesReloadTo", config_parse_unit_deps, UNIT_PROPAGATES_RELOAD_TO, 0},
689 : {(char*)0}, {(char*)0},
690 : {"Socket.LimitNICE", config_parse_limit, RLIMIT_NICE, offsetof(Socket, exec_context.rlimit)},
691 : {(char*)0}, {(char*)0},
692 : {"Service.CapabilityBoundingSet", config_parse_bounding_set, 0, offsetof(Service, exec_context.capability_bounding_set_drop)},
693 : {"Service.Capabilities", config_parse_exec_capabilities, 0, offsetof(Service, exec_context)},
694 : {"Service.KillMode", config_parse_kill_mode, 0, offsetof(Service, kill_context.kill_mode)},
695 : {"Slice.MemoryAccounting", config_parse_bool, 0, offsetof(Slice, cgroup_context.memory_accounting)},
696 : {"Socket.WorkingDirectory", config_parse_unit_path_printf, 0, offsetof(Socket, exec_context.working_directory)},
697 : {(char*)0},
698 : {"Socket.Delegate", config_parse_bool, 0, offsetof(Socket, cgroup_context.delegate)},
699 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
700 : {(char*)0}, {(char*)0},
701 : {"Mount.MemoryAccounting", config_parse_bool, 0, offsetof(Mount, cgroup_context.memory_accounting)},
702 : {"Socket.BlockIOWriteBandwidth", config_parse_blockio_bandwidth, 0, offsetof(Socket, cgroup_context)},
703 : {(char*)0},
704 : {"Service.NotifyAccess", config_parse_notify_access, 0, offsetof(Service, notify_access)},
705 : {"Swap.WorkingDirectory", config_parse_unit_path_printf, 0, offsetof(Swap, exec_context.working_directory)},
706 : {"Scope.MemoryAccounting", config_parse_bool, 0, offsetof(Scope, cgroup_context.memory_accounting)},
707 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
708 : {(char*)0},
709 : {"Swap.IgnoreSIGPIPE", config_parse_bool, 0, offsetof(Swap, exec_context.ignore_sigpipe)},
710 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
711 : {"Socket.MemoryAccounting", config_parse_bool, 0, offsetof(Socket, cgroup_context.memory_accounting)},
712 : {(char*)0}, {(char*)0}, {(char*)0},
713 : {"Swap.SyslogLevelPrefix", config_parse_bool, 0, offsetof(Swap, exec_context.syslog_level_prefix)},
714 : {(char*)0}, {(char*)0}, {(char*)0},
715 : {"Socket.Mark", config_parse_int, 0, offsetof(Socket, mark)},
716 : {"Service.ExecStart", config_parse_exec, SERVICE_EXEC_START, offsetof(Service, exec_command)},
717 : {(char*)0}, {(char*)0},
718 : {"Service.ExecStartPre", config_parse_exec, SERVICE_EXEC_START_PRE, offsetof(Service, exec_command)},
719 : {"Service.ExecStartPost", config_parse_exec, SERVICE_EXEC_START_POST, offsetof(Service, exec_command)},
720 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
721 : {"Socket.LimitCORE", config_parse_limit, RLIMIT_CORE, offsetof(Socket, exec_context.rlimit)},
722 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
723 : {(char*)0}, {(char*)0},
724 : {"Unit.ConditionFirstBoot", config_parse_unit_condition_string, CONDITION_FIRST_BOOT, offsetof(Unit, conditions)},
725 : {"Service.ProtectHome", config_parse_protect_home, 0, offsetof(Service, exec_context)},
726 : {"Service.ExecStopPost", config_parse_exec, SERVICE_EXEC_STOP_POST, offsetof(Service, exec_command)},
727 : {(char*)0},
728 : {"Mount.Environment", config_parse_environ, 0, offsetof(Mount, exec_context.environment)},
729 : {(char*)0}, {(char*)0},
730 : {"Unit.ConditionFileIsExecutable", config_parse_unit_condition_path, CONDITION_FILE_IS_EXECUTABLE, offsetof(Unit, conditions)},
731 : {"Mount.EnvironmentFile", config_parse_unit_env_file, 0, offsetof(Mount, exec_context.environment_files)},
732 : {(char*)0},
733 : {"Unit.ConditionNull", config_parse_unit_condition_null, 0, offsetof(Unit, conditions)},
734 : {"Mount.IgnoreSIGPIPE", config_parse_bool, 0, offsetof(Mount, exec_context.ignore_sigpipe)},
735 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
736 : {"Socket.RemoveOnStop", config_parse_bool, 0, offsetof(Socket, remove_on_stop)},
737 : {(char*)0},
738 : {"Mount.UMask", config_parse_mode, 0, offsetof(Mount, exec_context.umask)},
739 : {"Socket.RuntimeDirectoryMode", config_parse_mode, 0, offsetof(Socket, exec_context.runtime_directory_mode)},
740 : {(char*)0}, {(char*)0}, {(char*)0},
741 : {"Service.ProtectSystem", config_parse_protect_system, 0, offsetof(Service, exec_context)},
742 : {(char*)0},
743 : {"Unit.AssertKernelCommandLine", config_parse_unit_condition_string, CONDITION_KERNEL_COMMAND_LINE, offsetof(Unit, asserts)},
744 : {(char*)0},
745 : {"Swap.KillSignal", config_parse_kill_signal, 0, offsetof(Swap, kill_context.kill_signal)},
746 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
747 : {"Mount.SELinuxContext", config_parse_warn_compat, DISABLED_CONFIGURATION, 0},
748 : {(char*)0}, {(char*)0},
749 : {"Unit.AssertACPower", config_parse_unit_condition_string, CONDITION_AC_POWER, offsetof(Unit, asserts)},
750 : {(char*)0},
751 : {"Socket.KillMode", config_parse_kill_mode, 0, offsetof(Socket, kill_context.kill_mode)},
752 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
753 : {(char*)0}, {(char*)0},
754 : {"Mount.CPUAffinity", config_parse_exec_cpu_affinity, 0, offsetof(Mount, exec_context)},
755 : {"Service.BlockIOReadBandwidth", config_parse_blockio_bandwidth, 0, offsetof(Service, cgroup_context)},
756 : {"Service.BlockIOWriteBandwidth", config_parse_blockio_bandwidth, 0, offsetof(Service, cgroup_context)},
757 : {(char*)0},
758 : {"Unit.AssertPathIsReadWrite", config_parse_unit_condition_path, CONDITION_PATH_IS_READ_WRITE, offsetof(Unit, asserts)},
759 : {"Unit.AssertPathIsMountPoint", config_parse_unit_condition_path, CONDITION_PATH_IS_MOUNT_POINT, offsetof(Unit, asserts)},
760 : {"Slice.BlockIOAccounting", config_parse_bool, 0, offsetof(Slice, cgroup_context.blockio_accounting)},
761 : {(char*)0}, {(char*)0},
762 : {"Unit.AssertPathExists", config_parse_unit_condition_path, CONDITION_PATH_EXISTS, offsetof(Unit, asserts)},
763 : {(char*)0},
764 : {"Mount.SmackProcessLabel", config_parse_exec_smack_process_label, 0, offsetof(Mount, exec_context)},
765 : {(char*)0},
766 : {"Socket.LimitMSGQUEUE", config_parse_limit, RLIMIT_MSGQUEUE, offsetof(Socket, exec_context.rlimit)},
767 : {"Swap.LimitRTPRIO", config_parse_limit, RLIMIT_RTPRIO, offsetof(Swap, exec_context.rlimit)},
768 : {"Socket.NoNewPrivileges", config_parse_no_new_privileges, 0, offsetof(Socket, exec_context)},
769 : {"Mount.BlockIOAccounting", config_parse_bool, 0, offsetof(Mount, cgroup_context.blockio_accounting)},
770 : {(char*)0},
771 : {"Mount.SupplementaryGroups", config_parse_strv, 0, offsetof(Mount, exec_context.supplementary_groups)},
772 : {(char*)0}, {(char*)0},
773 : {"Scope.BlockIOAccounting", config_parse_bool, 0, offsetof(Scope, cgroup_context.blockio_accounting)},
774 : {(char*)0},
775 : {"Socket.CPUQuota", config_parse_cpu_quota, 0, offsetof(Socket, cgroup_context)},
776 : {"Service.FailureAction", config_parse_failure_action, 0, offsetof(Service, failure_action)},
777 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
778 : {"Unit.AssertCapability", config_parse_unit_condition_string, CONDITION_CAPABILITY, offsetof(Unit, asserts)},
779 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
780 : {(char*)0}, {(char*)0}, {(char*)0},
781 : {"Swap.CPUSchedulingResetOnFork", config_parse_bool, 0, offsetof(Swap, exec_context.cpu_sched_reset_on_fork)},
782 : {"Unit.AssertVirtualization", config_parse_unit_condition_string, CONDITION_VIRTUALIZATION, offsetof(Unit, asserts)},
783 : {(char*)0},
784 : {"Socket.LimitSTACK", config_parse_limit, RLIMIT_STACK, offsetof(Socket, exec_context.rlimit)},
785 : {(char*)0},
786 : {"Socket.SmackProcessLabel", config_parse_exec_smack_process_label, 0, offsetof(Socket, exec_context)},
787 : {(char*)0},
788 : {"Service.ExecStop", config_parse_exec, SERVICE_EXEC_STOP, offsetof(Service, exec_command)},
789 : {"Socket.PassCredentials", config_parse_bool, 0, offsetof(Socket, pass_cred)},
790 : {(char*)0}, {(char*)0},
791 : {"Service.FileDescriptorStoreMax", config_parse_unsigned, 0, offsetof(Service, n_fd_store_max)},
792 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
793 : {(char*)0}, {(char*)0}, {(char*)0},
794 : {"Service.UMask", config_parse_mode, 0, offsetof(Service, exec_context.umask)},
795 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
796 : {(char*)0},
797 : {"Socket.Backlog", config_parse_unsigned, 0, offsetof(Socket, backlog)},
798 : {(char*)0}, {(char*)0},
799 : {"Mount.SyslogLevel", config_parse_log_level, 0, offsetof(Mount, exec_context.syslog_priority)},
800 : {(char*)0},
801 : {"Socket.PAMName", config_parse_unit_string_printf, 0, offsetof(Socket, exec_context.pam_name)},
802 : {(char*)0},
803 : {"Unit.ConditionFileNotEmpty", config_parse_unit_condition_path, CONDITION_FILE_NOT_EMPTY, offsetof(Unit, conditions)},
804 : {"Service.BusPolicy", config_parse_bus_endpoint_policy, 0, offsetof(Service, exec_context)},
805 : {(char*)0}, {(char*)0},
806 : {"Service.LimitAS", config_parse_limit, RLIMIT_AS, offsetof(Service, exec_context.rlimit)},
807 : {"Service.LimitRSS", config_parse_limit, RLIMIT_RSS, offsetof(Service, exec_context.rlimit)},
808 : {(char*)0}, {(char*)0},
809 : {"Service.SyslogLevel", config_parse_log_level, 0, offsetof(Service, exec_context.syslog_priority)},
810 : {(char*)0}, {(char*)0},
811 : {"Swap.BlockIOAccounting", config_parse_bool, 0, offsetof(Swap, cgroup_context.blockio_accounting)},
812 : {"Socket.RuntimeDirectory", config_parse_runtime_directory, 0, offsetof(Socket, exec_context.runtime_directory)},
813 : {"Swap.SyslogFacility", config_parse_log_facility, 0, offsetof(Swap, exec_context.syslog_priority)},
814 : {(char*)0},
815 : {"Mount.NoNewPrivileges", config_parse_no_new_privileges, 0, offsetof(Mount, exec_context)},
816 : {"Unit.ConditionPathIsSymbolicLink",config_parse_unit_condition_path, CONDITION_PATH_IS_SYMBOLIC_LINK,offsetof(Unit, conditions)},
817 : {"Install.Alias", NULL, 0, 0},
818 : {(char*)0},
819 : {"Swap.PrivateTmp", config_parse_bool, 0, offsetof(Swap, exec_context.private_tmp)},
820 : {(char*)0},
821 : {"Socket.StartupBlockIOWeight", config_parse_blockio_weight, 0, offsetof(Socket, cgroup_context.startup_blockio_weight)},
822 : {(char*)0}, {(char*)0},
823 : {"Service.GuessMainPID", config_parse_bool, 0, offsetof(Service, guess_main_pid)},
824 : {(char*)0},
825 : {"Socket.IPTOS", config_parse_ip_tos, 0, offsetof(Socket, ip_tos)},
826 : {"Unit.AssertArchitecture", config_parse_unit_condition_string, CONDITION_ARCHITECTURE, offsetof(Unit, asserts)},
827 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
828 : {(char*)0},
829 : {"Service.Personality", config_parse_personality, 0, offsetof(Service, exec_context.personality)},
830 : {"Swap.LimitSTACK", config_parse_limit, RLIMIT_STACK, offsetof(Swap, exec_context.rlimit)},
831 : {"Socket.CPUShares", config_parse_cpu_shares, 0, offsetof(Socket, cgroup_context.cpu_shares)},
832 : {"Swap.LimitMEMLOCK", config_parse_limit, RLIMIT_MEMLOCK, offsetof(Swap, exec_context.rlimit)},
833 : {"Service.PermissionsStartOnly", config_parse_bool, 0, offsetof(Service, permissions_start_only)},
834 : {"Service.TTYVTDisallocate", config_parse_bool, 0, offsetof(Service, exec_context.tty_vt_disallocate)},
835 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
836 : {(char*)0}, {(char*)0},
837 : {"Unit.AssertPathIsDirectory", config_parse_unit_condition_path, CONDITION_PATH_IS_DIRECTORY, offsetof(Unit, asserts)},
838 : {(char*)0},
839 : {"Service.MountFlags", config_parse_exec_mount_flags, 0, offsetof(Service, exec_context)},
840 : {"Service.Environment", config_parse_environ, 0, offsetof(Service, exec_context.environment)},
841 : {(char*)0}, {(char*)0},
842 : {"BusName.AllowUser", config_parse_bus_policy, 0, 0},
843 : {"Service.EnvironmentFile", config_parse_unit_env_file, 0, offsetof(Service, exec_context.environment_files)},
844 : {(char*)0}, {(char*)0}, {(char*)0},
845 : {"Socket.SmackLabelIPOut", config_parse_string, 0, offsetof(Socket, smack_ip_out)},
846 : {(char*)0}, {(char*)0},
847 : {"Swap.AppArmorProfile", config_parse_warn_compat, DISABLED_CONFIGURATION, 0},
848 : {(char*)0},
849 : {"Install.Also", NULL, 0, 0},
850 : {"Swap.LimitMSGQUEUE", config_parse_limit, RLIMIT_MSGQUEUE, offsetof(Swap, exec_context.rlimit)},
851 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
852 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
853 : {"Socket.LimitNPROC", config_parse_limit, RLIMIT_NPROC, offsetof(Socket, exec_context.rlimit)},
854 : {"Unit.AssertDirectoryNotEmpty", config_parse_unit_condition_path, CONDITION_DIRECTORY_NOT_EMPTY, offsetof(Unit, asserts)},
855 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
856 : {(char*)0}, {(char*)0}, {(char*)0},
857 : {"Mount.LimitLOCKS", config_parse_limit, RLIMIT_LOCKS, offsetof(Mount, exec_context.rlimit)},
858 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
859 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
860 : {(char*)0},
861 : {"Service.TTYReset", config_parse_bool, 0, offsetof(Service, exec_context.tty_reset)},
862 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
863 : {"Mount.LimitSTACK", config_parse_limit, RLIMIT_STACK, offsetof(Mount, exec_context.rlimit)},
864 : {(char*)0}, {(char*)0},
865 : {"Swap.TimerSlackNSec", config_parse_nsec, 0, offsetof(Swap, exec_context.timer_slack_nsec)},
866 : {(char*)0},
867 : {"Install.WantedBy", NULL, 0, 0},
868 : {"Timer.OnActiveSec", config_parse_timer, 0, 0},
869 : {(char*)0}, {(char*)0}, {(char*)0},
870 : {"Socket.KeepAlive", config_parse_bool, 0, offsetof(Socket, keep_alive)},
871 : {(char*)0}, {(char*)0}, {(char*)0},
872 : {"Service.BusName", config_parse_bus_name, 0, offsetof(Service, bus_name)},
873 : {"Unit.StopWhenUnneeded", config_parse_bool, 0, offsetof(Unit, stop_when_unneeded)},
874 : {(char*)0},
875 : {"Socket.KeepAliveTimeSec", config_parse_sec, 0, offsetof(Socket, keep_alive_time)},
876 : {"Slice.CPUAccounting", config_parse_bool, 0, offsetof(Slice, cgroup_context.cpu_accounting)},
877 : {(char*)0},
878 : {"Swap.LimitNOFILE", config_parse_limit, RLIMIT_NOFILE, offsetof(Swap, exec_context.rlimit)},
879 : {"Socket.KeepAliveIntervalSec", config_parse_sec, 0, offsetof(Socket, keep_alive_interval)},
880 : {"Swap.LimitCPU", config_parse_limit, RLIMIT_CPU, offsetof(Swap, exec_context.rlimit)},
881 : {"Swap.PrivateDevices", config_parse_bool, 0, offsetof(Swap, exec_context.private_devices)},
882 : {(char*)0}, {(char*)0},
883 : {"Socket.KeepAliveProbes", config_parse_unsigned, 0, offsetof(Socket, keep_alive_cnt)},
884 : {(char*)0},
885 : {"Mount.CPUAccounting", config_parse_bool, 0, offsetof(Mount, cgroup_context.cpu_accounting)},
886 : {(char*)0}, {(char*)0},
887 : {"Mount.SendSIGKILL", config_parse_bool, 0, offsetof(Mount, kill_context.send_sigkill)},
888 : {"Slice.DevicePolicy", config_parse_device_policy, 0, offsetof(Slice, cgroup_context.device_policy)},
889 : {"Scope.CPUAccounting", config_parse_bool, 0, offsetof(Scope, cgroup_context.cpu_accounting)},
890 : {(char*)0}, {(char*)0},
891 : {"Scope.SendSIGKILL", config_parse_bool, 0, offsetof(Scope, kill_context.send_sigkill)},
892 : {"BusName.AllowGroup", config_parse_bus_policy, 0, 0},
893 : {"Swap.LimitDATA", config_parse_limit, RLIMIT_DATA, offsetof(Swap, exec_context.rlimit)},
894 : {"Mount.ReadOnlyDirectories", config_parse_namespace_path_strv, 0, offsetof(Mount, exec_context.read_only_dirs)},
895 : {"Swap.CPUAffinity", config_parse_exec_cpu_affinity, 0, offsetof(Swap, exec_context)},
896 : {"Unit.RefuseManualStart", config_parse_bool, 0, offsetof(Unit, refuse_manual_start)},
897 : {"Mount.DevicePolicy", config_parse_device_policy, 0, offsetof(Mount, cgroup_context.device_policy)},
898 : {"Service.MemoryLimit", config_parse_memory_limit, 0, offsetof(Service, cgroup_context)},
899 : {(char*)0}, {(char*)0}, {(char*)0},
900 : {"Scope.DevicePolicy", config_parse_device_policy, 0, offsetof(Scope, cgroup_context.device_policy)},
901 : {(char*)0}, {(char*)0}, {(char*)0},
902 : {"Path.DirectoryNotEmpty", config_parse_path_spec, 0, 0},
903 : {(char*)0}, {(char*)0}, {(char*)0},
904 : {"Swap.MemoryAccounting", config_parse_bool, 0, offsetof(Swap, cgroup_context.memory_accounting)},
905 : {(char*)0}, {(char*)0}, {(char*)0},
906 : {"Mount.LimitCORE", config_parse_limit, RLIMIT_CORE, offsetof(Mount, exec_context.rlimit)},
907 : {"Mount.AppArmorProfile", config_parse_warn_compat, DISABLED_CONFIGURATION, 0},
908 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
909 : {"Socket.BlockIODeviceWeight", config_parse_blockio_device_weight, 0, offsetof(Socket, cgroup_context)},
910 : {(char*)0},
911 : {"Service.LimitFSIZE", config_parse_limit, RLIMIT_FSIZE, offsetof(Service, exec_context.rlimit)},
912 : {(char*)0}, {(char*)0},
913 : {"Service.LimitMSGQUEUE", config_parse_limit, RLIMIT_MSGQUEUE, offsetof(Service, exec_context.rlimit)},
914 : {"Service.PrivateDevices", config_parse_bool, 0, offsetof(Service, exec_context.private_devices)},
915 : {"Path.DirectoryMode", config_parse_mode, 0, offsetof(Path, directory_mode)},
916 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
917 : {(char*)0}, {(char*)0}, {(char*)0},
918 : {"Socket.CPUSchedulingPolicy", config_parse_exec_cpu_sched_policy, 0, offsetof(Socket, exec_context)},
919 : {(char*)0},
920 : {"Socket.CPUSchedulingPriority", config_parse_exec_cpu_sched_prio, 0, offsetof(Socket, exec_context)},
921 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
922 : {"Mount.SyslogLevelPrefix", config_parse_bool, 0, offsetof(Mount, exec_context.syslog_level_prefix)},
923 : {"Service.WorkingDirectory", config_parse_unit_path_printf, 0, offsetof(Service, exec_context.working_directory)},
924 : {(char*)0}, {(char*)0},
925 : {"Unit.AssertFileIsExecutable", config_parse_unit_condition_path, CONDITION_FILE_IS_EXECUTABLE, offsetof(Unit, asserts)},
926 : {"Socket.LimitNOFILE", config_parse_limit, RLIMIT_NOFILE, offsetof(Socket, exec_context.rlimit)},
927 : {(char*)0},
928 : {"Unit.AssertFirstBoot", config_parse_unit_condition_string, CONDITION_FIRST_BOOT, offsetof(Unit, asserts)},
929 : {(char*)0},
930 : {"Socket.SendSIGHUP", config_parse_bool, 0, offsetof(Socket, kill_context.send_sighup)},
931 : {"Socket.SendSIGKILL", config_parse_bool, 0, offsetof(Socket, kill_context.send_sigkill)},
932 : {(char*)0},
933 : {"Service.SyslogLevelPrefix", config_parse_bool, 0, offsetof(Service, exec_context.syslog_level_prefix)},
934 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
935 : {(char*)0}, {(char*)0},
936 : {"Swap.TTYPath", config_parse_unit_path_printf, 0, offsetof(Swap, exec_context.tty_path)},
937 : {"Service.LimitLOCKS", config_parse_limit, RLIMIT_LOCKS, offsetof(Service, exec_context.rlimit)},
938 : {(char*)0},
939 : {"Mount.CPUSchedulingResetOnFork", config_parse_bool, 0, offsetof(Mount, exec_context.cpu_sched_reset_on_fork)},
940 : {(char*)0},
941 : {"Unit.AssertNeedsUpdate", config_parse_unit_condition_path, CONDITION_NEEDS_UPDATE, offsetof(Unit, asserts)},
942 : {"Service.ExecReload", config_parse_exec, SERVICE_EXEC_RELOAD, offsetof(Service, exec_command)},
943 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
944 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
945 : {(char*)0},
946 : {"Service.SecureBits", config_parse_exec_secure_bits, 0, offsetof(Service, exec_context)},
947 : {(char*)0},
948 : {"Mount.OOMScoreAdjust", config_parse_exec_oom_score_adjust, 0, offsetof(Mount, exec_context)},
949 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
950 : {(char*)0},
951 : {"Unit.RefuseManualStop", config_parse_bool, 0, offsetof(Unit, refuse_manual_stop)},
952 : {"Socket.SmackLabel", config_parse_string, 0, offsetof(Socket, smack)},
953 : {(char*)0},
954 : {"Service.CPUAffinity", config_parse_exec_cpu_affinity, 0, offsetof(Service, exec_context)},
955 : {"Socket.MessageQueueMessageSize", config_parse_long, 0, offsetof(Socket, mq_msgsize)},
956 : {"Socket.SmackLabelIPIn", config_parse_string, 0, offsetof(Socket, smack_ip_in)},
957 : {(char*)0}, {(char*)0},
958 : {"Mount.LimitCPU", config_parse_limit, RLIMIT_CPU, offsetof(Mount, exec_context.rlimit)},
959 : {"Unit.AssertPathExistsGlob", config_parse_unit_condition_path, CONDITION_PATH_EXISTS_GLOB, offsetof(Unit, asserts)},
960 : {"Socket.PrivateNetwork", config_parse_bool, 0, offsetof(Socket, exec_context.private_network)},
961 : {"Socket.BlockIOReadBandwidth", config_parse_blockio_bandwidth, 0, offsetof(Socket, cgroup_context)},
962 : {(char*)0}, {(char*)0},
963 : {"Socket.MessageQueueMaxMessages", config_parse_long, 0, offsetof(Socket, mq_maxmsg)},
964 : {(char*)0},
965 : {"Service.CPUSchedulingResetOnFork", config_parse_bool, 0, offsetof(Service, exec_context.cpu_sched_reset_on_fork)},
966 : {"Service.PrivateTmp", config_parse_bool, 0, offsetof(Service, exec_context.private_tmp)},
967 : {(char*)0},
968 : {"Service.BlockIOAccounting", config_parse_bool, 0, offsetof(Service, cgroup_context.blockio_accounting)},
969 : {(char*)0},
970 : {"Socket.LimitSIGPENDING", config_parse_limit, RLIMIT_SIGPENDING, offsetof(Socket, exec_context.rlimit)},
971 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
972 : {(char*)0},
973 : {"BusName.AllowWorld", config_parse_bus_policy_world, 0, offsetof(BusName, policy_world)},
974 : {(char*)0}, {(char*)0},
975 : {"Mount.LimitSIGPENDING", config_parse_limit, RLIMIT_SIGPENDING, offsetof(Mount, exec_context.rlimit)},
976 : {(char*)0}, {(char*)0},
977 : {"Socket.LimitMEMLOCK", config_parse_limit, RLIMIT_MEMLOCK, offsetof(Socket, exec_context.rlimit)},
978 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
979 : {"Service.LimitRTTIME", config_parse_limit, RLIMIT_RTTIME, offsetof(Service, exec_context.rlimit)},
980 : {"Swap.LimitSIGPENDING", config_parse_limit, RLIMIT_SIGPENDING, offsetof(Swap, exec_context.rlimit)},
981 : {(char*)0},
982 : {"Mount.LimitRTTIME", config_parse_limit, RLIMIT_RTTIME, offsetof(Mount, exec_context.rlimit)},
983 : {(char*)0}, {(char*)0},
984 : {"Socket.LimitCPU", config_parse_limit, RLIMIT_CPU, offsetof(Socket, exec_context.rlimit)},
985 : {(char*)0}, {(char*)0},
986 : {"Service.TTYVHangup", config_parse_bool, 0, offsetof(Service, exec_context.tty_vhangup)},
987 : {"Unit.PropagateReloadFrom", config_parse_unit_deps, UNIT_RELOAD_PROPAGATED_FROM, 0},
988 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
989 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
990 : {(char*)0}, {(char*)0},
991 : {"Swap.SecureBits", config_parse_exec_secure_bits, 0, offsetof(Swap, exec_context)},
992 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
993 : {(char*)0},
994 : {"Mount.LimitFSIZE", config_parse_limit, RLIMIT_FSIZE, offsetof(Mount, exec_context.rlimit)},
995 : {"Unit.PropagateReloadTo", config_parse_unit_deps, UNIT_PROPAGATES_RELOAD_TO, 0},
996 : {"Unit.AssertFileNotEmpty", config_parse_unit_condition_path, CONDITION_FILE_NOT_EMPTY, offsetof(Unit, asserts)},
997 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
998 : {"Service.KillSignal", config_parse_kill_signal, 0, offsetof(Service, kill_context.kill_signal)},
999 : {(char*)0},
1000 : {"Service.TTYPath", config_parse_unit_path_printf, 0, offsetof(Service, exec_context.tty_path)},
1001 : {(char*)0}, {(char*)0}, {(char*)0},
1002 : {"Service.LimitRTPRIO", config_parse_limit, RLIMIT_RTPRIO, offsetof(Service, exec_context.rlimit)},
1003 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1004 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1005 : {"Socket.DeviceAllow", config_parse_device_allow, 0, offsetof(Socket, cgroup_context)},
1006 : {(char*)0}, {(char*)0}, {(char*)0},
1007 : {"Service.SyslogFacility", config_parse_log_facility, 0, offsetof(Service, exec_context.syslog_priority)},
1008 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1009 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1010 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1011 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1012 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1013 : {(char*)0}, {(char*)0},
1014 : {"Socket.ReceiveBuffer", config_parse_iec_size, 0, offsetof(Socket, receive_buffer)},
1015 : {(char*)0}, {(char*)0},
1016 : {"Service.SendSIGHUP", config_parse_bool, 0, offsetof(Service, kill_context.send_sighup)},
1017 : {(char*)0}, {(char*)0},
1018 : {"Mount.SendSIGHUP", config_parse_bool, 0, offsetof(Mount, kill_context.send_sighup)},
1019 : {(char*)0}, {(char*)0}, {(char*)0},
1020 : {"Mount.LimitNICE", config_parse_limit, RLIMIT_NICE, offsetof(Mount, exec_context.rlimit)},
1021 : {"Scope.SendSIGHUP", config_parse_bool, 0, offsetof(Scope, kill_context.send_sighup)},
1022 : {(char*)0}, {(char*)0}, {(char*)0},
1023 : {"Socket.FreeBind", config_parse_bool, 0, offsetof(Socket, free_bind)},
1024 : {(char*)0},
1025 : {"Service.LimitCORE", config_parse_limit, RLIMIT_CORE, offsetof(Service, exec_context.rlimit)},
1026 : {"Service.LimitSTACK", config_parse_limit, RLIMIT_STACK, offsetof(Service, exec_context.rlimit)},
1027 : {"Service.LimitNOFILE", config_parse_limit, RLIMIT_NOFILE, offsetof(Service, exec_context.rlimit)},
1028 : {"Swap.SendSIGHUP", config_parse_bool, 0, offsetof(Swap, kill_context.send_sighup)},
1029 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1030 : {"Unit.AssertNull", config_parse_unit_condition_null, 0, offsetof(Unit, asserts)},
1031 : {"Swap.LimitRTTIME", config_parse_limit, RLIMIT_RTTIME, offsetof(Swap, exec_context.rlimit)},
1032 : {(char*)0}, {(char*)0},
1033 : {"Swap.PrivateNetwork", config_parse_bool, 0, offsetof(Swap, exec_context.private_network)},
1034 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1035 : {(char*)0}, {(char*)0}, {(char*)0},
1036 : {"Service.LimitNICE", config_parse_limit, RLIMIT_NICE, offsetof(Service, exec_context.rlimit)},
1037 : {(char*)0},
1038 : {"Service.SendSIGKILL", config_parse_bool, 0, offsetof(Service, kill_context.send_sigkill)},
1039 : {"Socket.CPUAccounting", config_parse_bool, 0, offsetof(Socket, cgroup_context.cpu_accounting)},
1040 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1041 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1042 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1043 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1044 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1045 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1046 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1047 : {(char*)0}, {(char*)0}, {(char*)0},
1048 : {"Mount.LimitNOFILE", config_parse_limit, RLIMIT_NOFILE, offsetof(Mount, exec_context.rlimit)},
1049 : {(char*)0}, {(char*)0},
1050 : {"Service.LimitMEMLOCK", config_parse_limit, RLIMIT_MEMLOCK, offsetof(Service, exec_context.rlimit)},
1051 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1052 : {"Swap.LimitNPROC", config_parse_limit, RLIMIT_NPROC, offsetof(Swap, exec_context.rlimit)},
1053 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1054 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1055 : {(char*)0}, {(char*)0},
1056 : {"Swap.SendSIGKILL", config_parse_bool, 0, offsetof(Swap, kill_context.send_sigkill)},
1057 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1058 : {"Socket.SELinuxContext", config_parse_warn_compat, DISABLED_CONFIGURATION, 0},
1059 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1060 : {(char*)0}, {(char*)0},
1061 : {"Socket.SELinuxContextFromNet", config_parse_warn_compat, DISABLED_CONFIGURATION, 0},
1062 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1063 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1064 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1065 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1066 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1067 : {"Unit.AssertPathIsSymbolicLink", config_parse_unit_condition_path, CONDITION_PATH_IS_SYMBOLIC_LINK,offsetof(Unit, asserts)},
1068 : {(char*)0},
1069 : {"Service.CPUQuota", config_parse_cpu_quota, 0, offsetof(Service, cgroup_context)},
1070 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1071 : {"Swap.DeviceAllow", config_parse_device_allow, 0, offsetof(Swap, cgroup_context)},
1072 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1073 : {(char*)0}, {(char*)0},
1074 : {"Socket.CPUAffinity", config_parse_exec_cpu_affinity, 0, offsetof(Socket, exec_context)},
1075 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1076 : {"BusName.Activating", config_parse_bool, 0, offsetof(BusName, activating)},
1077 : {(char*)0}, {(char*)0}, {(char*)0},
1078 : {"Mount.LimitRTPRIO", config_parse_limit, RLIMIT_RTPRIO, offsetof(Mount, exec_context.rlimit)},
1079 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1080 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1081 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1082 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1083 : {(char*)0},
1084 : {"Service.PAMName", config_parse_unit_string_printf, 0, offsetof(Service, exec_context.pam_name)},
1085 : {(char*)0}, {(char*)0},
1086 : {"Service.AppArmorProfile", config_parse_warn_compat, DISABLED_CONFIGURATION, 0},
1087 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1088 : {"Swap.CPUAccounting", config_parse_bool, 0, offsetof(Swap, cgroup_context.cpu_accounting)},
1089 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1090 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1091 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1092 : {(char*)0},
1093 : {"Socket.TTYVHangup", config_parse_bool, 0, offsetof(Socket, exec_context.tty_vhangup)},
1094 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1095 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1096 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1097 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1098 : {"Socket.BlockIOAccounting", config_parse_bool, 0, offsetof(Socket, cgroup_context.blockio_accounting)},
1099 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1100 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1101 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1102 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1103 : {(char*)0}, {(char*)0}, {(char*)0},
1104 : {"Service.DeviceAllow", config_parse_device_allow, 0, offsetof(Service, cgroup_context)},
1105 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1106 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1107 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1108 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1109 : {"Mount.LimitNPROC", config_parse_limit, RLIMIT_NPROC, offsetof(Mount, exec_context.rlimit)},
1110 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1111 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1112 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1113 : {(char*)0}, {(char*)0},
1114 : {"Socket.CPUSchedulingResetOnFork", config_parse_bool, 0, offsetof(Socket, exec_context.cpu_sched_reset_on_fork)},
1115 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1116 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1117 : {(char*)0},
1118 : {"Service.CPUAccounting", config_parse_bool, 0, offsetof(Service, cgroup_context.cpu_accounting)},
1119 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1120 : {"Mount.MountFlags", config_parse_exec_mount_flags, 0, offsetof(Mount, exec_context)},
1121 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1122 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1123 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1124 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1125 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1126 : {"Socket.SendBuffer", config_parse_iec_size, 0, offsetof(Socket, send_buffer)},
1127 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1128 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1129 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1130 : {(char*)0}, {(char*)0}, {(char*)0},
1131 : {"Service.LimitNPROC", config_parse_limit, RLIMIT_NPROC, offsetof(Service, exec_context.rlimit)},
1132 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1133 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1134 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1135 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1136 : {"Service.PIDFile", config_parse_unit_path_printf, 0, offsetof(Service, pid_file)},
1137 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1138 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1139 : {"Service.MemoryAccounting", config_parse_bool, 0, offsetof(Service, cgroup_context.memory_accounting)},
1140 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1141 : {(char*)0}, {(char*)0}, {(char*)0},
1142 : {"Service.PrivateNetwork", config_parse_bool, 0, offsetof(Service, exec_context.private_network)},
1143 : {"Service.LimitSIGPENDING", config_parse_limit, RLIMIT_SIGPENDING, offsetof(Service, exec_context.rlimit)},
1144 : {(char*)0}, {(char*)0}, {(char*)0},
1145 : {"Socket.IPTTL", config_parse_int, 0, offsetof(Socket, ip_ttl)},
1146 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1147 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1148 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1149 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1150 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1151 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1152 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1153 : {(char*)0},
1154 : {"Socket.UMask", config_parse_mode, 0, offsetof(Socket, exec_context.umask)},
1155 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1156 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1157 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1158 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1159 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1160 : {(char*)0},
1161 : {"Service.NonBlocking", config_parse_bool, 0, offsetof(Service, exec_context.non_blocking)},
1162 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1163 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1164 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1165 : {(char*)0}, {(char*)0}, {(char*)0},
1166 : {"Mount.LimitDATA", config_parse_limit, RLIMIT_DATA, offsetof(Mount, exec_context.rlimit)},
1167 : {(char*)0}, {(char*)0},
1168 : {"Mount.LimitMEMLOCK", config_parse_limit, RLIMIT_MEMLOCK, offsetof(Mount, exec_context.rlimit)},
1169 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1170 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1171 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1172 : {"Service.LimitCPU", config_parse_limit, RLIMIT_CPU, offsetof(Service, exec_context.rlimit)},
1173 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1174 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1175 : {(char*)0}, {(char*)0},
1176 : {"Slice.DeviceAllow", config_parse_device_allow, 0, offsetof(Slice, cgroup_context)},
1177 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1178 : {"Service.LimitDATA", config_parse_limit, RLIMIT_DATA, offsetof(Service, exec_context.rlimit)},
1179 : {(char*)0},
1180 : {"BusName.AcceptFileDescriptors", config_parse_bool, 0, offsetof(BusName, accept_fd)},
1181 : {(char*)0}, {(char*)0},
1182 : {"Mount.DeviceAllow", config_parse_device_allow, 0, offsetof(Mount, cgroup_context)},
1183 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1184 : {"Scope.DeviceAllow", config_parse_device_allow, 0, offsetof(Scope, cgroup_context)},
1185 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1186 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1187 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1188 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1189 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1190 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1191 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1192 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1193 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1194 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1195 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1196 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1197 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1198 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1199 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1200 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1201 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1202 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1203 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1204 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1205 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1206 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1207 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1208 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1209 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1210 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1211 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1212 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1213 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1214 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1215 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1216 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1217 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1218 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1219 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1220 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1221 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1222 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1223 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1224 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1225 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1226 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1227 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1228 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1229 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1230 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1231 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1232 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1233 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1234 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1235 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1236 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1237 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1238 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1239 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1240 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1241 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1242 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1243 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1244 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1245 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1246 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1247 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1248 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1249 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1250 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1251 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1252 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1253 : {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
1254 : {"Mount.LimitMSGQUEUE", config_parse_limit, RLIMIT_MSGQUEUE, offsetof(Mount, exec_context.rlimit)}
1255 : };
1256 :
1257 340 : if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
1258 : {
1259 340 : register int key = load_fragment_gperf_hash (str, len);
1260 :
1261 340 : if (key <= MAX_HASH_VALUE && key >= 0)
1262 : {
1263 340 : register const char *s = wordlist[key].section_and_lvalue;
1264 :
1265 340 : if (s && *str == *s && !strcmp (str + 1, s + 1))
1266 340 : return &wordlist[key];
1267 : }
1268 : }
1269 0 : return 0;
1270 : }
|