]>
Commit | Line | Data |
---|---|---|
db9ecf05 | 1 | /* SPDX-License-Identifier: LGPL-2.1-or-later */ |
c2f1db8f | 2 | #pragma once |
3efd4195 | 3 | |
a2106925 | 4 | #include "conf-parser.h" |
87f0e418 | 5 | #include "unit.h" |
3efd4195 | 6 | |
88022148 DDM |
7 | /* These functions are declared in the header to make them accessible to unit tests. */ |
8 | bool contains_instance_specifier_superset(const char *s); | |
9 | int unit_is_likely_recursive_template_dependency(Unit *u, const char *name, const char *format); | |
10 | ||
a07a7324 FS |
11 | /* Config-parsing helpers relevant only for sources under src/core/ */ |
12 | int parse_crash_chvt(const char *value, int *data); | |
13 | int parse_confirm_spawn(const char *value, char **console); | |
14 | ||
3efd4195 LP |
15 | /* Read service data from .desktop file style configuration fragments */ |
16 | ||
e537352b LP |
17 | int unit_load_fragment(Unit *u); |
18 | ||
19 | void unit_dump_config_items(FILE *f); | |
3efd4195 | 20 | |
a2106925 LP |
21 | CONFIG_PARSER_PROTOTYPE(config_parse_unit_deps); |
22 | CONFIG_PARSER_PROTOTYPE(config_parse_obsolete_unit_deps); | |
23 | CONFIG_PARSER_PROTOTYPE(config_parse_unit_string_printf); | |
24 | CONFIG_PARSER_PROTOTYPE(config_parse_unit_strv_printf); | |
25 | CONFIG_PARSER_PROTOTYPE(config_parse_unit_path_printf); | |
8c35c10d | 26 | CONFIG_PARSER_PROTOTYPE(config_parse_colon_separated_paths); |
a2106925 LP |
27 | CONFIG_PARSER_PROTOTYPE(config_parse_unit_path_strv_printf); |
28 | CONFIG_PARSER_PROTOTYPE(config_parse_documentation); | |
29 | CONFIG_PARSER_PROTOTYPE(config_parse_socket_listen); | |
30 | CONFIG_PARSER_PROTOTYPE(config_parse_socket_protocol); | |
31 | CONFIG_PARSER_PROTOTYPE(config_parse_socket_bind); | |
32 | CONFIG_PARSER_PROTOTYPE(config_parse_exec_nice); | |
33 | CONFIG_PARSER_PROTOTYPE(config_parse_exec_oom_score_adjust); | |
ad21e542 | 34 | CONFIG_PARSER_PROTOTYPE(config_parse_exec_coredump_filter); |
a2106925 LP |
35 | CONFIG_PARSER_PROTOTYPE(config_parse_exec); |
36 | CONFIG_PARSER_PROTOTYPE(config_parse_service_timeout); | |
dc653bf4 | 37 | CONFIG_PARSER_PROTOTYPE(config_parse_service_timeout_abort); |
bf760801 | 38 | CONFIG_PARSER_PROTOTYPE(config_parse_service_timeout_failure_mode); |
a2106925 | 39 | CONFIG_PARSER_PROTOTYPE(config_parse_service_type); |
596e4470 | 40 | CONFIG_PARSER_PROTOTYPE(config_parse_service_exit_type); |
a2106925 LP |
41 | CONFIG_PARSER_PROTOTYPE(config_parse_service_restart); |
42 | CONFIG_PARSER_PROTOTYPE(config_parse_socket_bindtodevice); | |
43 | CONFIG_PARSER_PROTOTYPE(config_parse_exec_output); | |
44 | CONFIG_PARSER_PROTOTYPE(config_parse_exec_input); | |
45 | CONFIG_PARSER_PROTOTYPE(config_parse_exec_input_text); | |
46 | CONFIG_PARSER_PROTOTYPE(config_parse_exec_input_data); | |
47 | CONFIG_PARSER_PROTOTYPE(config_parse_exec_io_class); | |
48 | CONFIG_PARSER_PROTOTYPE(config_parse_exec_io_priority); | |
49 | CONFIG_PARSER_PROTOTYPE(config_parse_exec_cpu_sched_policy); | |
50 | CONFIG_PARSER_PROTOTYPE(config_parse_exec_cpu_sched_prio); | |
51 | CONFIG_PARSER_PROTOTYPE(config_parse_exec_cpu_affinity); | |
5e98086d | 52 | CONFIG_PARSER_PROTOTYPE(config_parse_exec_mount_apivfs); |
a2106925 | 53 | CONFIG_PARSER_PROTOTYPE(config_parse_exec_secure_bits); |
18d73705 | 54 | CONFIG_PARSER_PROTOTYPE(config_parse_root_image_options); |
0389f4fa | 55 | CONFIG_PARSER_PROTOTYPE(config_parse_exec_root_hash); |
d4d55b0d | 56 | CONFIG_PARSER_PROTOTYPE(config_parse_exec_root_hash_sig); |
a2106925 | 57 | CONFIG_PARSER_PROTOTYPE(config_parse_capability_set); |
a2106925 LP |
58 | CONFIG_PARSER_PROTOTYPE(config_parse_exec_mount_flags); |
59 | CONFIG_PARSER_PROTOTYPE(config_parse_timer); | |
60 | CONFIG_PARSER_PROTOTYPE(config_parse_trigger_unit); | |
61 | CONFIG_PARSER_PROTOTYPE(config_parse_path_spec); | |
62 | CONFIG_PARSER_PROTOTYPE(config_parse_socket_service); | |
63 | CONFIG_PARSER_PROTOTYPE(config_parse_service_sockets); | |
64 | CONFIG_PARSER_PROTOTYPE(config_parse_unit_env_file); | |
65 | CONFIG_PARSER_PROTOTYPE(config_parse_ip_tos); | |
66 | CONFIG_PARSER_PROTOTYPE(config_parse_unit_condition_path); | |
67 | CONFIG_PARSER_PROTOTYPE(config_parse_unit_condition_string); | |
a2106925 LP |
68 | CONFIG_PARSER_PROTOTYPE(config_parse_kill_mode); |
69 | CONFIG_PARSER_PROTOTYPE(config_parse_notify_access); | |
70 | CONFIG_PARSER_PROTOTYPE(config_parse_emergency_action); | |
71 | CONFIG_PARSER_PROTOTYPE(config_parse_unit_requires_mounts_for); | |
72 | CONFIG_PARSER_PROTOTYPE(config_parse_syscall_filter); | |
73 | CONFIG_PARSER_PROTOTYPE(config_parse_syscall_archs); | |
74 | CONFIG_PARSER_PROTOTYPE(config_parse_syscall_errno); | |
9df2cdd8 | 75 | CONFIG_PARSER_PROTOTYPE(config_parse_syscall_log); |
a2106925 LP |
76 | CONFIG_PARSER_PROTOTYPE(config_parse_environ); |
77 | CONFIG_PARSER_PROTOTYPE(config_parse_pass_environ); | |
78 | CONFIG_PARSER_PROTOTYPE(config_parse_unset_environ); | |
79 | CONFIG_PARSER_PROTOTYPE(config_parse_unit_slice); | |
984faf29 | 80 | CONFIG_PARSER_PROTOTYPE(config_parse_cg_weight); |
c8340822 | 81 | CONFIG_PARSER_PROTOTYPE(config_parse_cg_cpu_weight); |
a2106925 LP |
82 | CONFIG_PARSER_PROTOTYPE(config_parse_cpu_shares); |
83 | CONFIG_PARSER_PROTOTYPE(config_parse_memory_limit); | |
84 | CONFIG_PARSER_PROTOTYPE(config_parse_tasks_max); | |
85 | CONFIG_PARSER_PROTOTYPE(config_parse_delegate); | |
4d824a4e AZ |
86 | CONFIG_PARSER_PROTOTYPE(config_parse_managed_oom_mode); |
87 | CONFIG_PARSER_PROTOTYPE(config_parse_managed_oom_mem_pressure_limit); | |
4e806bfa | 88 | CONFIG_PARSER_PROTOTYPE(config_parse_managed_oom_preference); |
a2106925 LP |
89 | CONFIG_PARSER_PROTOTYPE(config_parse_device_policy); |
90 | CONFIG_PARSER_PROTOTYPE(config_parse_device_allow); | |
6ae4283c | 91 | CONFIG_PARSER_PROTOTYPE(config_parse_io_device_latency); |
a2106925 LP |
92 | CONFIG_PARSER_PROTOTYPE(config_parse_io_device_weight); |
93 | CONFIG_PARSER_PROTOTYPE(config_parse_io_limit); | |
94 | CONFIG_PARSER_PROTOTYPE(config_parse_blockio_weight); | |
95 | CONFIG_PARSER_PROTOTYPE(config_parse_blockio_device_weight); | |
96 | CONFIG_PARSER_PROTOTYPE(config_parse_blockio_bandwidth); | |
a2106925 LP |
97 | CONFIG_PARSER_PROTOTYPE(config_parse_job_mode); |
98 | CONFIG_PARSER_PROTOTYPE(config_parse_job_mode_isolate); | |
99 | CONFIG_PARSER_PROTOTYPE(config_parse_exec_selinux_context); | |
100 | CONFIG_PARSER_PROTOTYPE(config_parse_exec_apparmor_profile); | |
101 | CONFIG_PARSER_PROTOTYPE(config_parse_exec_smack_process_label); | |
102 | CONFIG_PARSER_PROTOTYPE(config_parse_address_families); | |
103 | CONFIG_PARSER_PROTOTYPE(config_parse_runtime_preserve_mode); | |
104 | CONFIG_PARSER_PROTOTYPE(config_parse_exec_directories); | |
bb0c0d6f LP |
105 | CONFIG_PARSER_PROTOTYPE(config_parse_set_credential); |
106 | CONFIG_PARSER_PROTOTYPE(config_parse_load_credential); | |
a2106925 LP |
107 | CONFIG_PARSER_PROTOTYPE(config_parse_set_status); |
108 | CONFIG_PARSER_PROTOTYPE(config_parse_namespace_path_strv); | |
109 | CONFIG_PARSER_PROTOTYPE(config_parse_temporary_filesystems); | |
a2106925 | 110 | CONFIG_PARSER_PROTOTYPE(config_parse_cpu_quota); |
31d3a520 | 111 | CONFIG_PARSER_PROTOTYPE(config_parse_allowed_cpuset); |
a2106925 LP |
112 | CONFIG_PARSER_PROTOTYPE(config_parse_protect_home); |
113 | CONFIG_PARSER_PROTOTYPE(config_parse_protect_system); | |
114 | CONFIG_PARSER_PROTOTYPE(config_parse_bus_name); | |
115 | CONFIG_PARSER_PROTOTYPE(config_parse_exec_utmp_mode); | |
116 | CONFIG_PARSER_PROTOTYPE(config_parse_working_directory); | |
117 | CONFIG_PARSER_PROTOTYPE(config_parse_fdname); | |
ae480f0b ZJS |
118 | CONFIG_PARSER_PROTOTYPE(config_parse_user_group_compat); |
119 | CONFIG_PARSER_PROTOTYPE(config_parse_user_group_strv_compat); | |
a2106925 | 120 | CONFIG_PARSER_PROTOTYPE(config_parse_restrict_namespaces); |
e59ccd03 | 121 | CONFIG_PARSER_PROTOTYPE(config_parse_restrict_filesystems); |
a2106925 LP |
122 | CONFIG_PARSER_PROTOTYPE(config_parse_bind_paths); |
123 | CONFIG_PARSER_PROTOTYPE(config_parse_exec_keyring_mode); | |
4e399953 LP |
124 | CONFIG_PARSER_PROTOTYPE(config_parse_protect_proc); |
125 | CONFIG_PARSER_PROTOTYPE(config_parse_proc_subset); | |
a2106925 LP |
126 | CONFIG_PARSER_PROTOTYPE(config_parse_job_timeout_sec); |
127 | CONFIG_PARSER_PROTOTYPE(config_parse_job_running_timeout_sec); | |
128 | CONFIG_PARSER_PROTOTYPE(config_parse_log_extra_fields); | |
91dd5f7c | 129 | CONFIG_PARSER_PROTOTYPE(config_parse_log_namespace); |
a2106925 | 130 | CONFIG_PARSER_PROTOTYPE(config_parse_collect_mode); |
a9353a5c | 131 | CONFIG_PARSER_PROTOTYPE(config_parse_pid_file); |
7af67e9a | 132 | CONFIG_PARSER_PROTOTYPE(config_parse_exit_status); |
c72703e2 | 133 | CONFIG_PARSER_PROTOTYPE(config_parse_disable_controllers); |
afcfaa69 | 134 | CONFIG_PARSER_PROTOTYPE(config_parse_oom_policy); |
b070c7c0 MS |
135 | CONFIG_PARSER_PROTOTYPE(config_parse_numa_policy); |
136 | CONFIG_PARSER_PROTOTYPE(config_parse_numa_mask); | |
fab34748 | 137 | CONFIG_PARSER_PROTOTYPE(config_parse_ip_filter_bpf_progs); |
a07a7324 FS |
138 | CONFIG_PARSER_PROTOTYPE(config_parse_cpu_affinity2); |
139 | CONFIG_PARSER_PROTOTYPE(config_parse_show_status); | |
6327aa9f | 140 | CONFIG_PARSER_PROTOTYPE(config_parse_status_unit_format); |
a07a7324 FS |
141 | CONFIG_PARSER_PROTOTYPE(config_parse_output_restricted); |
142 | CONFIG_PARSER_PROTOTYPE(config_parse_crash_chvt); | |
143 | CONFIG_PARSER_PROTOTYPE(config_parse_timeout_abort); | |
eb34a981 | 144 | CONFIG_PARSER_PROTOTYPE(config_parse_swap_priority); |
b3d13314 | 145 | CONFIG_PARSER_PROTOTYPE(config_parse_mount_images); |
9b191525 | 146 | CONFIG_PARSER_PROTOTYPE(config_parse_socket_timestamping); |
93f59701 | 147 | CONFIG_PARSER_PROTOTYPE(config_parse_extension_images); |
0879da98 | 148 | CONFIG_PARSER_PROTOTYPE(config_parse_bpf_foreign_program); |
8dd210ab | 149 | CONFIG_PARSER_PROTOTYPE(config_parse_cgroup_socket_bind); |
4f0c25c7 | 150 | CONFIG_PARSER_PROTOTYPE(config_parse_restrict_network_interfaces); |
8a85c5b6 | 151 | CONFIG_PARSER_PROTOTYPE(config_parse_watchdog_sec); |
51462135 | 152 | CONFIG_PARSER_PROTOTYPE(config_parse_tty_size); |
523ea123 | 153 | CONFIG_PARSER_PROTOTYPE(config_parse_log_filter_patterns); |
f975e971 LP |
154 | |
155 | /* gperf prototypes */ | |
c9f7b4d3 | 156 | const struct ConfigPerfItem* load_fragment_gperf_lookup(const char *key, GPERF_LEN_TYPE length); |
f975e971 | 157 | extern const char load_fragment_gperf_nulstr[]; |