core: varlink enum for io.systemd.Unit interface (#40972)
Convert string fields to varlink enums in io.systemd.Unit Following https://github.com/systemd/systemd/pull/39391#discussion_r2489599449, convert all configuration setting fields in the io.systemd.Unit varlink interface from bare SD_VARLINK_STRING to proper enum types, adding type safety to the IDL. This converts ~30 fields across ExecContext, CGroupContext, and UnitContext, adding 25 new varlink enum types. Weak compatibility breakage (per https://github.com/systemd/systemd/pull/40972#issuecomment-4222294318): Varlink enum identifiers cannot contain - or +, so affected values are underscorified on the wire. For example, "tty-force" becomes tty_force, "kmsg+console" becomes kmsg_console. The full list of affected values: ``` - ExecInputType: tty-force, tty-fail - ExecOutputType: kmsg+console, journal+console - ProtectHome: read-only - CGroupController: bpf-firewall, bpf-devices, bpf-foreign, bpf-socket-bind, bpf-restrict-network-interfaces, bpf-bind-network-interface - CollectMode: inactive-or-failed - EmergencyAction: exit-force, reboot-force, reboot-immediate, poweroff-force, poweroff-immediate, soft-reboot, soft-reboot-force, kexec-force, halt-force, halt-immediate - JobMode: replace-irreversibly, ignore-dependencies, ignore-requirements, restart-dependencies ```
This commit is contained in:
@@ -11,6 +11,16 @@ CHANGES WITH 261 in spe:
|
||||
has been repurposed as a standalone switch (without argument) to select
|
||||
the user service manager scope, matching --system.
|
||||
|
||||
* Several configuration fields in the io.systemd.Unit varlink interface
|
||||
that were previously exposed as plain strings have been converted to
|
||||
proper enum types. This adds type safety and IDL-level validation.
|
||||
The output wire format now uses underscores instead of dashes and
|
||||
plus signs in enum values (e.g. "tty-force" becomes "tty_force",
|
||||
"kmsg+console" becomes "kmsg_console"). The previous use of plain
|
||||
strings for these well-defined enumerations is considered a bug.
|
||||
Affected enum types: ExecInputType, ExecOutputType, ProtectHome,
|
||||
CGroupController, CollectMode, EmergencyAction, JobMode.
|
||||
|
||||
* It was discovered that systemd-stub does not measure all the events
|
||||
it measures to the TPM to the hardware CC registers (e.g. Intel TDX
|
||||
RTMRs) using EFI_CC_MEASUREMENT_PROTOCOL. In particular, devicetree,
|
||||
|
||||
@@ -219,7 +219,7 @@ static int controllers_build_json(sd_json_variant **ret, const char *name, void
|
||||
if (!FLAGS_SET(*mask, CGROUP_CONTROLLER_TO_MASK(ctrl)))
|
||||
continue;
|
||||
|
||||
r = sd_json_variant_append_arrayb(&v, SD_JSON_BUILD_STRING(cgroup_controller_to_string(ctrl)));
|
||||
r = sd_json_variant_append_arrayb(&v, JSON_BUILD_STRING_UNDERSCORIFY(cgroup_controller_to_string(ctrl)));
|
||||
if (r < 0)
|
||||
return r;
|
||||
}
|
||||
@@ -309,7 +309,7 @@ int unit_cgroup_context_build_json(sd_json_variant **ret, const char *name, void
|
||||
|
||||
/* Device Access */
|
||||
JSON_BUILD_PAIR_CALLBACK_NON_NULL("DeviceAllow", device_allow_build_json, c->device_allow),
|
||||
SD_JSON_BUILD_PAIR_STRING("DevicePolicy", cgroup_device_policy_to_string(c->device_policy)),
|
||||
JSON_BUILD_PAIR_ENUM("DevicePolicy", cgroup_device_policy_to_string(c->device_policy)),
|
||||
|
||||
/* Control Group Management */
|
||||
SD_JSON_BUILD_PAIR_BOOLEAN("Delegate", c->delegate),
|
||||
@@ -318,16 +318,16 @@ int unit_cgroup_context_build_json(sd_json_variant **ret, const char *name, void
|
||||
JSON_BUILD_PAIR_CALLBACK_NON_NULL("DisableControllers", controllers_build_json, &c->disable_controllers),
|
||||
|
||||
/* Memory Pressure Control */
|
||||
SD_JSON_BUILD_PAIR_STRING("ManagedOOMSwap", managed_oom_mode_to_string(c->moom_swap)),
|
||||
SD_JSON_BUILD_PAIR_STRING("ManagedOOMMemoryPressure", managed_oom_mode_to_string(c->moom_mem_pressure)),
|
||||
JSON_BUILD_PAIR_ENUM("ManagedOOMSwap", managed_oom_mode_to_string(c->moom_swap)),
|
||||
JSON_BUILD_PAIR_ENUM("ManagedOOMMemoryPressure", managed_oom_mode_to_string(c->moom_mem_pressure)),
|
||||
JSON_BUILD_PAIR_UNSIGNED_NON_ZERO("ManagedOOMMemoryPressureLimit", c->moom_mem_pressure_limit),
|
||||
JSON_BUILD_PAIR_FINITE_USEC("ManagedOOMMemoryPressureDurationUSec", c->moom_mem_pressure_duration_usec),
|
||||
SD_JSON_BUILD_PAIR_STRING("ManagedOOMPreference", managed_oom_preference_to_string(c->moom_preference)),
|
||||
SD_JSON_BUILD_PAIR_STRING("MemoryPressureWatch", cgroup_pressure_watch_to_string(c->pressure[PRESSURE_MEMORY].watch)),
|
||||
JSON_BUILD_PAIR_ENUM("ManagedOOMPreference", managed_oom_preference_to_string(c->moom_preference)),
|
||||
JSON_BUILD_PAIR_ENUM("MemoryPressureWatch", cgroup_pressure_watch_to_string(c->pressure[PRESSURE_MEMORY].watch)),
|
||||
JSON_BUILD_PAIR_FINITE_USEC("MemoryPressureThresholdUSec", c->pressure[PRESSURE_MEMORY].threshold_usec),
|
||||
SD_JSON_BUILD_PAIR_STRING("CPUPressureWatch", cgroup_pressure_watch_to_string(c->pressure[PRESSURE_CPU].watch)),
|
||||
JSON_BUILD_PAIR_ENUM("CPUPressureWatch", cgroup_pressure_watch_to_string(c->pressure[PRESSURE_CPU].watch)),
|
||||
JSON_BUILD_PAIR_FINITE_USEC("CPUPressureThresholdUSec", c->pressure[PRESSURE_CPU].threshold_usec),
|
||||
SD_JSON_BUILD_PAIR_STRING("IOPressureWatch", cgroup_pressure_watch_to_string(c->pressure[PRESSURE_IO].watch)),
|
||||
JSON_BUILD_PAIR_ENUM("IOPressureWatch", cgroup_pressure_watch_to_string(c->pressure[PRESSURE_IO].watch)),
|
||||
JSON_BUILD_PAIR_FINITE_USEC("IOPressureThresholdUSec", c->pressure[PRESSURE_IO].threshold_usec),
|
||||
|
||||
/* Others */
|
||||
|
||||
+17
-17
@@ -810,8 +810,8 @@ int unit_exec_context_build_json(sd_json_variant **ret, const char *name, void *
|
||||
SD_JSON_BUILD_PAIR_CALLBACK("ExtensionImagePolicy", image_policy_build_json, c->extension_image_policy),
|
||||
JSON_BUILD_PAIR_YES_NO("MountAPIVFS", exec_context_get_effective_mount_apivfs(c)),
|
||||
SD_JSON_BUILD_PAIR_BOOLEAN("BindLogSockets", exec_context_get_effective_bind_log_sockets(c)),
|
||||
SD_JSON_BUILD_PAIR_STRING("ProtectProc", protect_proc_to_string(c->protect_proc)),
|
||||
SD_JSON_BUILD_PAIR_STRING("ProcSubset", proc_subset_to_string(c->proc_subset)),
|
||||
JSON_BUILD_PAIR_ENUM("ProtectProc", protect_proc_to_string(c->protect_proc)),
|
||||
JSON_BUILD_PAIR_ENUM("ProcSubset", proc_subset_to_string(c->proc_subset)),
|
||||
JSON_BUILD_PAIR_CALLBACK_NON_NULL("BindPaths", bind_paths_build_json, c),
|
||||
JSON_BUILD_PAIR_CALLBACK_NON_NULL("BindReadOnlyPaths", bind_paths_build_json, c),
|
||||
JSON_BUILD_PAIR_CALLBACK_NON_NULL("MountImages", mount_images_build_json, c),
|
||||
@@ -852,7 +852,7 @@ int unit_exec_context_build_json(sd_json_variant **ret, const char *name, void *
|
||||
SD_JSON_BUILD_PAIR_CALLBACK("Limits", rlimit_table_with_defaults_build_json, u),
|
||||
JSON_BUILD_PAIR_UNSIGNED_NON_ZERO("UMask", c->umask),
|
||||
JSON_BUILD_PAIR_UNSIGNED_NON_ZERO("CoredumpFilter", exec_context_get_coredump_filter(c)),
|
||||
SD_JSON_BUILD_PAIR_STRING("KeyringMode", exec_keyring_mode_to_string(c->keyring_mode)),
|
||||
JSON_BUILD_PAIR_ENUM("KeyringMode", exec_keyring_mode_to_string(c->keyring_mode)),
|
||||
JSON_BUILD_PAIR_INTEGER_NON_ZERO("OOMScoreAdjust", exec_context_get_oom_score_adjust(c)),
|
||||
JSON_BUILD_PAIR_UNSIGNED_NOT_EQUAL("TimerSlackNSec", exec_context_get_timer_slack_nsec(c), NSEC_INFINITY),
|
||||
JSON_BUILD_PAIR_STRING_NON_EMPTY("Personality", personality_to_string(c->personality)),
|
||||
@@ -870,17 +870,17 @@ int unit_exec_context_build_json(sd_json_variant **ret, const char *name, void *
|
||||
SD_JSON_BUILD_PAIR_INTEGER("IOSchedulingPriority", ioprio_prio_data(exec_context_get_effective_ioprio(c))),
|
||||
|
||||
JSON_BUILD_PAIR_TRISTATE_NON_NULL("MemoryKSM", c->memory_ksm),
|
||||
SD_JSON_BUILD_PAIR_STRING("MemoryTHP", memory_thp_to_string(c->memory_thp)),
|
||||
JSON_BUILD_PAIR_ENUM("MemoryTHP", memory_thp_to_string(c->memory_thp)),
|
||||
|
||||
/* Sandboxing */
|
||||
SD_JSON_BUILD_PAIR_STRING("ProtectSystem", protect_system_to_string(c->protect_system)),
|
||||
SD_JSON_BUILD_PAIR_STRING("ProtectHome", protect_home_to_string(c->protect_home)),
|
||||
JSON_BUILD_PAIR_ENUM("ProtectSystem", protect_system_to_string(c->protect_system)),
|
||||
JSON_BUILD_PAIR_ENUM("ProtectHome", protect_home_to_string(c->protect_home)),
|
||||
JSON_BUILD_PAIR_CALLBACK_NON_NULL("RuntimeDirectory", exec_dir_build_json, &c->directories[EXEC_DIRECTORY_RUNTIME]),
|
||||
JSON_BUILD_PAIR_CALLBACK_NON_NULL("StateDirectory", exec_dir_build_json, &c->directories[EXEC_DIRECTORY_STATE]),
|
||||
JSON_BUILD_PAIR_CALLBACK_NON_NULL("CacheDirectory", exec_dir_build_json, &c->directories[EXEC_DIRECTORY_CACHE]),
|
||||
JSON_BUILD_PAIR_CALLBACK_NON_NULL("LogsDirectory", exec_dir_build_json, &c->directories[EXEC_DIRECTORY_LOGS]),
|
||||
JSON_BUILD_PAIR_CALLBACK_NON_NULL("ConfigurationDirectory", exec_dir_build_json, &c->directories[EXEC_DIRECTORY_CONFIGURATION]),
|
||||
SD_JSON_BUILD_PAIR_STRING("RuntimeDirectoryPreserve", exec_preserve_mode_to_string(c->runtime_directory_preserve_mode)),
|
||||
JSON_BUILD_PAIR_ENUM("RuntimeDirectoryPreserve", exec_preserve_mode_to_string(c->runtime_directory_preserve_mode)),
|
||||
JSON_BUILD_PAIR_FINITE_USEC("TimeoutCleanUSec", c->timeout_clean_usec),
|
||||
JSON_BUILD_PAIR_STRV_NON_EMPTY("ReadWritePaths", c->read_write_paths),
|
||||
JSON_BUILD_PAIR_STRV_NON_EMPTY("ReadOnlyPaths", c->read_only_paths),
|
||||
@@ -889,26 +889,26 @@ int unit_exec_context_build_json(sd_json_variant **ret, const char *name, void *
|
||||
JSON_BUILD_PAIR_STRV_NON_EMPTY("NoExecPaths", c->no_exec_paths),
|
||||
JSON_BUILD_PAIR_CALLBACK_NON_NULL("TemporaryFileSystem", temporary_filesystems_build_json, c),
|
||||
/* XXX should we make all these Private/Protect strings??? */
|
||||
SD_JSON_BUILD_PAIR_STRING("PrivateTmp", private_tmp_to_string(c->private_tmp)),
|
||||
JSON_BUILD_PAIR_ENUM("PrivateTmp", private_tmp_to_string(c->private_tmp)),
|
||||
JSON_BUILD_PAIR_YES_NO("PrivateDevices", c->private_devices),
|
||||
JSON_BUILD_PAIR_YES_NO("PrivateNetwork", c->private_network),
|
||||
JSON_BUILD_PAIR_STRING_NON_EMPTY("NetworkNamespacePath", c->network_namespace_path),
|
||||
JSON_BUILD_PAIR_YES_NO("PrivateIPC", c->private_ipc),
|
||||
JSON_BUILD_PAIR_STRING_NON_EMPTY("IPCNamespacePath", c->ipc_namespace_path),
|
||||
SD_JSON_BUILD_PAIR_STRING("PrivatePIDs", private_pids_to_string(c->private_pids)),
|
||||
SD_JSON_BUILD_PAIR_STRING("PrivateUsers", private_users_to_string(c->private_users)),
|
||||
JSON_BUILD_PAIR_ENUM("PrivatePIDs", private_pids_to_string(c->private_pids)),
|
||||
JSON_BUILD_PAIR_ENUM("PrivateUsers", private_users_to_string(c->private_users)),
|
||||
JSON_BUILD_PAIR_STRING_NON_EMPTY("UserNamespacePath", c->user_namespace_path),
|
||||
SD_JSON_BUILD_PAIR_STRING("ProtectHostname", protect_hostname_to_string(c->protect_hostname)),
|
||||
JSON_BUILD_PAIR_ENUM("ProtectHostname", protect_hostname_to_string(c->protect_hostname)),
|
||||
JSON_BUILD_PAIR_YES_NO("ProtectClock", c->protect_clock),
|
||||
JSON_BUILD_PAIR_YES_NO("ProtectKernelTunables", c->protect_kernel_tunables),
|
||||
JSON_BUILD_PAIR_YES_NO("ProtectKernelModules", c->protect_kernel_modules),
|
||||
JSON_BUILD_PAIR_YES_NO("ProtectKernelLogs", c->protect_kernel_logs),
|
||||
SD_JSON_BUILD_PAIR_STRING("ProtectControlGroups", protect_control_groups_to_string(c->protect_control_groups)),
|
||||
JSON_BUILD_PAIR_ENUM("ProtectControlGroups", protect_control_groups_to_string(c->protect_control_groups)),
|
||||
JSON_BUILD_PAIR_CALLBACK_NON_NULL("RestrictAddressFamilies", address_families_build_json, c),
|
||||
JSON_BUILD_PAIR_CALLBACK_NON_NULL("RestrictFileSystems", restrict_filesystems_build_json, c),
|
||||
JSON_BUILD_PAIR_CALLBACK_NON_NULL("RestrictNamespaces", namespace_flags_build_json, ULONG_TO_PTR(c->restrict_namespaces)),
|
||||
JSON_BUILD_PAIR_CALLBACK_NON_NULL("DelegateNamespaces", namespace_flags_build_json, ULONG_TO_PTR(c->delegate_namespaces)),
|
||||
SD_JSON_BUILD_PAIR_STRING("PrivatePBF", private_bpf_to_string(c->private_bpf)),
|
||||
JSON_BUILD_PAIR_ENUM("PrivatePBF", private_bpf_to_string(c->private_bpf)),
|
||||
JSON_BUILD_PAIR_CALLBACK_NON_NULL("BPFDelegateCommands", private_bpf_delegate_commands_build_json, c),
|
||||
JSON_BUILD_PAIR_CALLBACK_NON_NULL("BPFDelegateMaps", private_bpf_delegate_maps_build_json, c),
|
||||
JSON_BUILD_PAIR_CALLBACK_NON_NULL("BPFDelegatePrograms", private_bpf_delegate_programs_build_json, c),
|
||||
@@ -934,9 +934,9 @@ int unit_exec_context_build_json(sd_json_variant **ret, const char *name, void *
|
||||
JSON_BUILD_PAIR_STRV_NON_EMPTY("UnsetEnvironment", c->unset_environment),
|
||||
|
||||
/* Logging and Standard Input/Output */
|
||||
SD_JSON_BUILD_PAIR_STRING("StandardInput", exec_input_to_string(c->std_input)),
|
||||
SD_JSON_BUILD_PAIR_STRING("StandardOutput", exec_output_to_string(c->std_output)),
|
||||
SD_JSON_BUILD_PAIR_STRING("StandardError", exec_output_to_string(c->std_error)),
|
||||
JSON_BUILD_PAIR_ENUM("StandardInput", exec_input_to_string(c->std_input)),
|
||||
JSON_BUILD_PAIR_ENUM("StandardOutput", exec_output_to_string(c->std_output)),
|
||||
JSON_BUILD_PAIR_ENUM("StandardError", exec_output_to_string(c->std_error)),
|
||||
JSON_BUILD_PAIR_STRING_NON_EMPTY("StandardInputFileDescriptorName", exec_context_fdname(c, STDIN_FILENO)),
|
||||
JSON_BUILD_PAIR_STRING_NON_EMPTY("StandardOutputFileDescriptorName", exec_context_fdname(c, STDOUT_FILENO)),
|
||||
JSON_BUILD_PAIR_STRING_NON_EMPTY("StandardErrorFileDescriptorName", exec_context_fdname(c, STDERR_FILENO)),
|
||||
@@ -966,5 +966,5 @@ int unit_exec_context_build_json(sd_json_variant **ret, const char *name, void *
|
||||
|
||||
/* System V Compatibility */
|
||||
JSON_BUILD_PAIR_STRING_NON_EMPTY("UtmpIdentifier", c->utmp_id),
|
||||
SD_JSON_BUILD_PAIR_STRING("UtmpMode", exec_utmp_mode_to_string(c->utmp_mode)));
|
||||
JSON_BUILD_PAIR_ENUM("UtmpMode", exec_utmp_mode_to_string(c->utmp_mode)));
|
||||
}
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
#include "varlink-util.h"
|
||||
|
||||
#define JSON_BUILD_EMERGENCY_ACTION_NON_EMPTY(name, value) \
|
||||
SD_JSON_BUILD_PAIR_CONDITION(value > EMERGENCY_ACTION_NONE, name, SD_JSON_BUILD_STRING(emergency_action_to_string(value)))
|
||||
SD_JSON_BUILD_PAIR_CONDITION(value > EMERGENCY_ACTION_NONE, name, JSON_BUILD_STRING_UNDERSCORIFY(emergency_action_to_string(value)))
|
||||
|
||||
static int unit_dependencies_build_json(sd_json_variant **ret, const char *name, void *userdata) {
|
||||
_cleanup_(sd_json_variant_unrefp) sd_json_variant *v = NULL;
|
||||
@@ -149,8 +149,8 @@ static int unit_context_build_json(sd_json_variant **ret, const char *name, void
|
||||
JSON_BUILD_PAIR_CALLBACK_NON_NULL("JoinsNamespaceOf", unit_dependencies_build_json, u),
|
||||
JSON_BUILD_PAIR_CALLBACK_NON_NULL("RequiresMountsFor", unit_mounts_for_build_json, &u->mounts_for),
|
||||
JSON_BUILD_PAIR_CALLBACK_NON_NULL("WantsMountsFor", unit_mounts_for_build_json, &u->mounts_for),
|
||||
SD_JSON_BUILD_PAIR_STRING("OnSuccessJobMode", job_mode_to_string(u->on_success_job_mode)),
|
||||
SD_JSON_BUILD_PAIR_STRING("OnFailureJobMode", job_mode_to_string(u->on_failure_job_mode)),
|
||||
JSON_BUILD_PAIR_ENUM("OnSuccessJobMode", job_mode_to_string(u->on_success_job_mode)),
|
||||
JSON_BUILD_PAIR_ENUM("OnFailureJobMode", job_mode_to_string(u->on_failure_job_mode)),
|
||||
SD_JSON_BUILD_PAIR_BOOLEAN("IgnoreOnIsolate", u->ignore_on_isolate),
|
||||
SD_JSON_BUILD_PAIR_BOOLEAN("StopWhenUnneeded", u->stop_when_unneeded),
|
||||
SD_JSON_BUILD_PAIR_BOOLEAN("RefuseManualStart", u->refuse_manual_start),
|
||||
@@ -158,7 +158,7 @@ static int unit_context_build_json(sd_json_variant **ret, const char *name, void
|
||||
SD_JSON_BUILD_PAIR_BOOLEAN("AllowIsolate", u->allow_isolate),
|
||||
SD_JSON_BUILD_PAIR_BOOLEAN("DefaultDependencies", u->default_dependencies),
|
||||
SD_JSON_BUILD_PAIR_BOOLEAN("SurviveFinalKillSignal", u->survive_final_kill_signal),
|
||||
SD_JSON_BUILD_PAIR_STRING("CollectMode", collect_mode_to_string(u->collect_mode)),
|
||||
JSON_BUILD_PAIR_ENUM("CollectMode", collect_mode_to_string(u->collect_mode)),
|
||||
JSON_BUILD_EMERGENCY_ACTION_NON_EMPTY("FailureAction", u->failure_action),
|
||||
JSON_BUILD_EMERGENCY_ACTION_NON_EMPTY("SuccessAction", u->success_action),
|
||||
JSON_BUILD_PAIR_INTEGER_NON_NEGATIVE("FailureActionExitStatus", u->failure_action_exit_status),
|
||||
|
||||
@@ -259,6 +259,7 @@ enum {
|
||||
#define JSON_BUILD_PAIR_TRISTATE(name, i) SD_JSON_BUILD_PAIR(name, JSON_BUILD_TRISTATE(i))
|
||||
#define JSON_BUILD_PAIR_PIDREF(name, p) SD_JSON_BUILD_PAIR(name, JSON_BUILD_PIDREF(p))
|
||||
#define JSON_BUILD_PAIR_DEVNUM(name, d) SD_JSON_BUILD_PAIR(name, JSON_BUILD_DEVNUM(d))
|
||||
#define JSON_BUILD_PAIR_ENUM(name, s) SD_JSON_BUILD_PAIR(name, JSON_BUILD_STRING_UNDERSCORIFY(s))
|
||||
#define JSON_BUILD_PAIR_YES_NO(name, b) SD_JSON_BUILD_PAIR(name, SD_JSON_BUILD_STRING(yes_no(b)))
|
||||
|
||||
#define JSON_BUILD_PAIR_CONDITION_UNSIGNED(condition, name, value) \
|
||||
|
||||
@@ -3,6 +3,198 @@
|
||||
#include "varlink-idl-common.h"
|
||||
#include "varlink-io.systemd.Unit.h"
|
||||
|
||||
SD_VARLINK_DEFINE_ENUM_TYPE(
|
||||
ExecInputType,
|
||||
SD_VARLINK_DEFINE_ENUM_VALUE(null),
|
||||
SD_VARLINK_DEFINE_ENUM_VALUE(tty),
|
||||
SD_VARLINK_DEFINE_ENUM_VALUE(tty_force),
|
||||
SD_VARLINK_DEFINE_ENUM_VALUE(tty_fail),
|
||||
SD_VARLINK_DEFINE_ENUM_VALUE(socket),
|
||||
SD_VARLINK_DEFINE_ENUM_VALUE(fd),
|
||||
SD_VARLINK_DEFINE_ENUM_VALUE(data),
|
||||
SD_VARLINK_DEFINE_ENUM_VALUE(file));
|
||||
|
||||
SD_VARLINK_DEFINE_ENUM_TYPE(
|
||||
ExecOutputType,
|
||||
SD_VARLINK_DEFINE_ENUM_VALUE(inherit),
|
||||
SD_VARLINK_DEFINE_ENUM_VALUE(null),
|
||||
SD_VARLINK_DEFINE_ENUM_VALUE(tty),
|
||||
SD_VARLINK_DEFINE_ENUM_VALUE(kmsg),
|
||||
SD_VARLINK_DEFINE_ENUM_VALUE(kmsg_console),
|
||||
SD_VARLINK_DEFINE_ENUM_VALUE(journal),
|
||||
SD_VARLINK_DEFINE_ENUM_VALUE(journal_console),
|
||||
SD_VARLINK_DEFINE_ENUM_VALUE(socket),
|
||||
SD_VARLINK_DEFINE_ENUM_VALUE(fd),
|
||||
SD_VARLINK_DEFINE_ENUM_VALUE(file),
|
||||
SD_VARLINK_DEFINE_ENUM_VALUE(append),
|
||||
SD_VARLINK_DEFINE_ENUM_VALUE(truncate));
|
||||
|
||||
SD_VARLINK_DEFINE_ENUM_TYPE(
|
||||
ExecUtmpMode,
|
||||
SD_VARLINK_DEFINE_ENUM_VALUE(init),
|
||||
SD_VARLINK_DEFINE_ENUM_VALUE(login),
|
||||
SD_VARLINK_DEFINE_ENUM_VALUE(user));
|
||||
|
||||
SD_VARLINK_DEFINE_ENUM_TYPE(
|
||||
ExecPreserveMode,
|
||||
SD_VARLINK_DEFINE_ENUM_VALUE(no),
|
||||
SD_VARLINK_DEFINE_ENUM_VALUE(yes),
|
||||
SD_VARLINK_DEFINE_ENUM_VALUE(restart));
|
||||
|
||||
SD_VARLINK_DEFINE_ENUM_TYPE(
|
||||
ExecKeyringMode,
|
||||
SD_VARLINK_DEFINE_ENUM_VALUE(inherit),
|
||||
SD_VARLINK_DEFINE_ENUM_VALUE(private),
|
||||
SD_VARLINK_DEFINE_ENUM_VALUE(shared));
|
||||
|
||||
SD_VARLINK_DEFINE_ENUM_TYPE(
|
||||
MemoryTHP,
|
||||
SD_VARLINK_DEFINE_ENUM_VALUE(inherit),
|
||||
SD_VARLINK_DEFINE_ENUM_VALUE(disable),
|
||||
SD_VARLINK_DEFINE_ENUM_VALUE(madvise),
|
||||
SD_VARLINK_DEFINE_ENUM_VALUE(system));
|
||||
|
||||
SD_VARLINK_DEFINE_ENUM_TYPE(
|
||||
ProtectProc,
|
||||
SD_VARLINK_DEFINE_ENUM_VALUE(default),
|
||||
SD_VARLINK_DEFINE_ENUM_VALUE(noaccess),
|
||||
SD_VARLINK_DEFINE_ENUM_VALUE(invisible),
|
||||
SD_VARLINK_DEFINE_ENUM_VALUE(ptraceable));
|
||||
|
||||
SD_VARLINK_DEFINE_ENUM_TYPE(
|
||||
ProcSubset,
|
||||
SD_VARLINK_DEFINE_ENUM_VALUE(all),
|
||||
SD_VARLINK_DEFINE_ENUM_VALUE(pid));
|
||||
|
||||
SD_VARLINK_DEFINE_ENUM_TYPE(
|
||||
ProtectSystem,
|
||||
SD_VARLINK_DEFINE_ENUM_VALUE(no),
|
||||
SD_VARLINK_DEFINE_ENUM_VALUE(yes),
|
||||
SD_VARLINK_DEFINE_ENUM_VALUE(full),
|
||||
SD_VARLINK_DEFINE_ENUM_VALUE(strict));
|
||||
|
||||
SD_VARLINK_DEFINE_ENUM_TYPE(
|
||||
ProtectHome,
|
||||
SD_VARLINK_DEFINE_ENUM_VALUE(no),
|
||||
SD_VARLINK_DEFINE_ENUM_VALUE(yes),
|
||||
SD_VARLINK_DEFINE_ENUM_VALUE(read_only),
|
||||
SD_VARLINK_DEFINE_ENUM_VALUE(tmpfs));
|
||||
|
||||
SD_VARLINK_DEFINE_ENUM_TYPE(
|
||||
PrivateTmp,
|
||||
SD_VARLINK_DEFINE_ENUM_VALUE(no),
|
||||
SD_VARLINK_DEFINE_ENUM_VALUE(connected),
|
||||
SD_VARLINK_DEFINE_ENUM_VALUE(disconnected));
|
||||
|
||||
SD_VARLINK_DEFINE_ENUM_TYPE(
|
||||
PrivateUsers,
|
||||
SD_VARLINK_DEFINE_ENUM_VALUE(no),
|
||||
SD_VARLINK_DEFINE_ENUM_VALUE(self),
|
||||
SD_VARLINK_DEFINE_ENUM_VALUE(identity),
|
||||
SD_VARLINK_DEFINE_ENUM_VALUE(full),
|
||||
SD_VARLINK_DEFINE_ENUM_VALUE(managed));
|
||||
|
||||
SD_VARLINK_DEFINE_ENUM_TYPE(
|
||||
ProtectHostname,
|
||||
SD_VARLINK_DEFINE_ENUM_VALUE(no),
|
||||
SD_VARLINK_DEFINE_ENUM_VALUE(yes),
|
||||
SD_VARLINK_DEFINE_ENUM_VALUE(private));
|
||||
|
||||
SD_VARLINK_DEFINE_ENUM_TYPE(
|
||||
ProtectControlGroups,
|
||||
SD_VARLINK_DEFINE_ENUM_VALUE(no),
|
||||
SD_VARLINK_DEFINE_ENUM_VALUE(yes),
|
||||
SD_VARLINK_DEFINE_ENUM_VALUE(private),
|
||||
SD_VARLINK_DEFINE_ENUM_VALUE(strict));
|
||||
|
||||
SD_VARLINK_DEFINE_ENUM_TYPE(
|
||||
PrivatePIDs,
|
||||
SD_VARLINK_DEFINE_ENUM_VALUE(no),
|
||||
SD_VARLINK_DEFINE_ENUM_VALUE(yes));
|
||||
|
||||
SD_VARLINK_DEFINE_ENUM_TYPE(
|
||||
CGroupDevicePolicy,
|
||||
SD_VARLINK_DEFINE_ENUM_VALUE(auto),
|
||||
SD_VARLINK_DEFINE_ENUM_VALUE(closed),
|
||||
SD_VARLINK_DEFINE_ENUM_VALUE(strict));
|
||||
|
||||
SD_VARLINK_DEFINE_ENUM_TYPE(
|
||||
ManagedOOMMode,
|
||||
SD_VARLINK_DEFINE_ENUM_VALUE(auto),
|
||||
SD_VARLINK_DEFINE_ENUM_VALUE(kill));
|
||||
|
||||
SD_VARLINK_DEFINE_ENUM_TYPE(
|
||||
ManagedOOMPreference,
|
||||
SD_VARLINK_DEFINE_ENUM_VALUE(none),
|
||||
SD_VARLINK_DEFINE_ENUM_VALUE(avoid),
|
||||
SD_VARLINK_DEFINE_ENUM_VALUE(omit));
|
||||
|
||||
SD_VARLINK_DEFINE_ENUM_TYPE(
|
||||
CGroupPressureWatch,
|
||||
SD_VARLINK_DEFINE_ENUM_VALUE(no),
|
||||
SD_VARLINK_DEFINE_ENUM_VALUE(yes),
|
||||
SD_VARLINK_DEFINE_ENUM_VALUE(auto),
|
||||
SD_VARLINK_DEFINE_ENUM_VALUE(skip));
|
||||
|
||||
SD_VARLINK_DEFINE_ENUM_TYPE(
|
||||
CollectMode,
|
||||
SD_VARLINK_DEFINE_ENUM_VALUE(inactive),
|
||||
SD_VARLINK_DEFINE_ENUM_VALUE(inactive_or_failed));
|
||||
|
||||
SD_VARLINK_DEFINE_ENUM_TYPE(
|
||||
EmergencyAction,
|
||||
SD_VARLINK_DEFINE_ENUM_VALUE(none),
|
||||
SD_VARLINK_DEFINE_ENUM_VALUE(exit),
|
||||
SD_VARLINK_DEFINE_ENUM_VALUE(exit_force),
|
||||
SD_VARLINK_DEFINE_ENUM_VALUE(reboot),
|
||||
SD_VARLINK_DEFINE_ENUM_VALUE(reboot_force),
|
||||
SD_VARLINK_DEFINE_ENUM_VALUE(reboot_immediate),
|
||||
SD_VARLINK_DEFINE_ENUM_VALUE(poweroff),
|
||||
SD_VARLINK_DEFINE_ENUM_VALUE(poweroff_force),
|
||||
SD_VARLINK_DEFINE_ENUM_VALUE(poweroff_immediate),
|
||||
SD_VARLINK_DEFINE_ENUM_VALUE(soft_reboot),
|
||||
SD_VARLINK_DEFINE_ENUM_VALUE(soft_reboot_force),
|
||||
SD_VARLINK_DEFINE_ENUM_VALUE(kexec),
|
||||
SD_VARLINK_DEFINE_ENUM_VALUE(kexec_force),
|
||||
SD_VARLINK_DEFINE_ENUM_VALUE(halt),
|
||||
SD_VARLINK_DEFINE_ENUM_VALUE(halt_force),
|
||||
SD_VARLINK_DEFINE_ENUM_VALUE(halt_immediate));
|
||||
|
||||
SD_VARLINK_DEFINE_ENUM_TYPE(
|
||||
JobMode,
|
||||
SD_VARLINK_DEFINE_ENUM_VALUE(fail),
|
||||
SD_VARLINK_DEFINE_ENUM_VALUE(lenient),
|
||||
SD_VARLINK_DEFINE_ENUM_VALUE(replace),
|
||||
SD_VARLINK_DEFINE_ENUM_VALUE(replace_irreversibly),
|
||||
SD_VARLINK_DEFINE_ENUM_VALUE(isolate),
|
||||
SD_VARLINK_DEFINE_ENUM_VALUE(flush),
|
||||
SD_VARLINK_DEFINE_ENUM_VALUE(ignore_dependencies),
|
||||
SD_VARLINK_DEFINE_ENUM_VALUE(ignore_requirements),
|
||||
SD_VARLINK_DEFINE_ENUM_VALUE(triggering),
|
||||
SD_VARLINK_DEFINE_ENUM_VALUE(restart_dependencies));
|
||||
|
||||
SD_VARLINK_DEFINE_ENUM_TYPE(
|
||||
CGroupController,
|
||||
SD_VARLINK_DEFINE_ENUM_VALUE(cpu),
|
||||
SD_VARLINK_DEFINE_ENUM_VALUE(cpuacct),
|
||||
SD_VARLINK_DEFINE_ENUM_VALUE(cpuset),
|
||||
SD_VARLINK_DEFINE_ENUM_VALUE(io),
|
||||
SD_VARLINK_DEFINE_ENUM_VALUE(blkio),
|
||||
SD_VARLINK_DEFINE_ENUM_VALUE(memory),
|
||||
SD_VARLINK_DEFINE_ENUM_VALUE(devices),
|
||||
SD_VARLINK_DEFINE_ENUM_VALUE(pids),
|
||||
SD_VARLINK_DEFINE_ENUM_VALUE(bpf_firewall),
|
||||
SD_VARLINK_DEFINE_ENUM_VALUE(bpf_devices),
|
||||
SD_VARLINK_DEFINE_ENUM_VALUE(bpf_foreign),
|
||||
SD_VARLINK_DEFINE_ENUM_VALUE(bpf_socket_bind),
|
||||
SD_VARLINK_DEFINE_ENUM_VALUE(bpf_restrict_network_interfaces),
|
||||
SD_VARLINK_DEFINE_ENUM_VALUE(bpf_bind_network_interface));
|
||||
|
||||
SD_VARLINK_DEFINE_ENUM_TYPE(
|
||||
PrivateBPF,
|
||||
SD_VARLINK_DEFINE_ENUM_VALUE(no),
|
||||
SD_VARLINK_DEFINE_ENUM_VALUE(yes));
|
||||
|
||||
/* CGroupContext */
|
||||
static SD_VARLINK_DEFINE_STRUCT_TYPE(
|
||||
CGroupTasksMax,
|
||||
@@ -199,7 +391,7 @@ static SD_VARLINK_DEFINE_STRUCT_TYPE(
|
||||
SD_VARLINK_FIELD_COMMENT("https://www.freedesktop.org/software/systemd/man/"PROJECT_VERSION_STR"/systemd.resource-control.html#DeviceAllow="),
|
||||
SD_VARLINK_DEFINE_FIELD_BY_TYPE(DeviceAllow, CGroupDeviceAllow, SD_VARLINK_ARRAY|SD_VARLINK_NULLABLE),
|
||||
SD_VARLINK_FIELD_COMMENT("https://www.freedesktop.org/software/systemd/man/"PROJECT_VERSION_STR"/systemd.resource-control.html#DevicePolicy=auto%7Cclosed%7Cstrict"),
|
||||
SD_VARLINK_DEFINE_FIELD(DevicePolicy, SD_VARLINK_STRING, 0),
|
||||
SD_VARLINK_DEFINE_FIELD_BY_TYPE(DevicePolicy, CGroupDevicePolicy, 0),
|
||||
|
||||
/* Control Group Management
|
||||
* https://www.freedesktop.org/software/systemd/man/latest/systemd.resource-control.html#Control%20Group%20Management */
|
||||
@@ -208,32 +400,32 @@ static SD_VARLINK_DEFINE_STRUCT_TYPE(
|
||||
SD_VARLINK_FIELD_COMMENT("https://www.freedesktop.org/software/systemd/man/"PROJECT_VERSION_STR"/systemd.resource-control.html#DelegateSubgroup="),
|
||||
SD_VARLINK_DEFINE_FIELD(DelegateSubgroup, SD_VARLINK_STRING, SD_VARLINK_NULLABLE),
|
||||
SD_VARLINK_FIELD_COMMENT("https://www.freedesktop.org/software/systemd/man/"PROJECT_VERSION_STR"/systemd.resource-control.html#DisableControllers="),
|
||||
SD_VARLINK_DEFINE_FIELD(DelegateControllers, SD_VARLINK_STRING, SD_VARLINK_ARRAY|SD_VARLINK_NULLABLE),
|
||||
SD_VARLINK_DEFINE_FIELD_BY_TYPE(DelegateControllers, CGroupController, SD_VARLINK_ARRAY|SD_VARLINK_NULLABLE),
|
||||
SD_VARLINK_FIELD_COMMENT("https://www.freedesktop.org/software/systemd/man/"PROJECT_VERSION_STR"/systemd.resource-control.html#DisableControllers="),
|
||||
SD_VARLINK_DEFINE_FIELD(DisableControllers, SD_VARLINK_STRING, SD_VARLINK_ARRAY|SD_VARLINK_NULLABLE),
|
||||
SD_VARLINK_DEFINE_FIELD_BY_TYPE(DisableControllers, CGroupController, SD_VARLINK_ARRAY|SD_VARLINK_NULLABLE),
|
||||
|
||||
/* Memory Pressure Control
|
||||
* https://www.freedesktop.org/software/systemd/man/latest/systemd.resource-control.html#Memory%20Pressure%20Control */
|
||||
SD_VARLINK_FIELD_COMMENT("https://www.freedesktop.org/software/systemd/man/"PROJECT_VERSION_STR"/systemd.resource-control.html#ManagedOOMSwap=auto%7Ckill"),
|
||||
SD_VARLINK_DEFINE_FIELD(ManagedOOMSwap, SD_VARLINK_STRING, 0),
|
||||
SD_VARLINK_DEFINE_FIELD_BY_TYPE(ManagedOOMSwap, ManagedOOMMode, 0),
|
||||
SD_VARLINK_FIELD_COMMENT("https://www.freedesktop.org/software/systemd/man/"PROJECT_VERSION_STR"/systemd.resource-control.html#ManagedOOMSwap=auto%7Ckill"),
|
||||
SD_VARLINK_DEFINE_FIELD(ManagedOOMMemoryPressure, SD_VARLINK_STRING, 0),
|
||||
SD_VARLINK_DEFINE_FIELD_BY_TYPE(ManagedOOMMemoryPressure, ManagedOOMMode, 0),
|
||||
SD_VARLINK_FIELD_COMMENT("https://www.freedesktop.org/software/systemd/man/"PROJECT_VERSION_STR"/systemd.resource-control.html#ManagedOOMMemoryPressureLimit="),
|
||||
SD_VARLINK_DEFINE_FIELD(ManagedOOMMemoryPressureLimit, SD_VARLINK_INT, SD_VARLINK_NULLABLE),
|
||||
SD_VARLINK_FIELD_COMMENT("https://www.freedesktop.org/software/systemd/man/"PROJECT_VERSION_STR"/systemd.resource-control.html#ManagedOOMMemoryPressureDurationSec="),
|
||||
SD_VARLINK_DEFINE_FIELD(ManagedOOMMemoryPressureDurationUSec, SD_VARLINK_INT, SD_VARLINK_NULLABLE),
|
||||
SD_VARLINK_FIELD_COMMENT("https://www.freedesktop.org/software/systemd/man/"PROJECT_VERSION_STR"/systemd.resource-control.html#ManagedOOMPreference=none%7Cavoid%7Comit"),
|
||||
SD_VARLINK_DEFINE_FIELD(ManagedOOMPreference, SD_VARLINK_STRING, 0),
|
||||
SD_VARLINK_DEFINE_FIELD_BY_TYPE(ManagedOOMPreference, ManagedOOMPreference, 0),
|
||||
SD_VARLINK_FIELD_COMMENT("https://www.freedesktop.org/software/systemd/man/"PROJECT_VERSION_STR"/systemd.resource-control.html#MemoryPressureWatch="),
|
||||
SD_VARLINK_DEFINE_FIELD(MemoryPressureWatch, SD_VARLINK_STRING, 0),
|
||||
SD_VARLINK_DEFINE_FIELD_BY_TYPE(MemoryPressureWatch, CGroupPressureWatch, 0),
|
||||
SD_VARLINK_FIELD_COMMENT("https://www.freedesktop.org/software/systemd/man/"PROJECT_VERSION_STR"/systemd.resource-control.html#MemoryPressureThresholdSec="),
|
||||
SD_VARLINK_DEFINE_FIELD(MemoryPressureThresholdUSec, SD_VARLINK_INT, SD_VARLINK_NULLABLE),
|
||||
SD_VARLINK_FIELD_COMMENT("https://www.freedesktop.org/software/systemd/man/"PROJECT_VERSION_STR"/systemd.resource-control.html#CPUPressureWatch="),
|
||||
SD_VARLINK_DEFINE_FIELD(CPUPressureWatch, SD_VARLINK_STRING, 0),
|
||||
SD_VARLINK_DEFINE_FIELD_BY_TYPE(CPUPressureWatch, CGroupPressureWatch, 0),
|
||||
SD_VARLINK_FIELD_COMMENT("https://www.freedesktop.org/software/systemd/man/"PROJECT_VERSION_STR"/systemd.resource-control.html#CPUPressureThresholdSec="),
|
||||
SD_VARLINK_DEFINE_FIELD(CPUPressureThresholdUSec, SD_VARLINK_INT, SD_VARLINK_NULLABLE),
|
||||
SD_VARLINK_FIELD_COMMENT("https://www.freedesktop.org/software/systemd/man/"PROJECT_VERSION_STR"/systemd.resource-control.html#IOPressureWatch="),
|
||||
SD_VARLINK_DEFINE_FIELD(IOPressureWatch, SD_VARLINK_STRING, 0),
|
||||
SD_VARLINK_DEFINE_FIELD_BY_TYPE(IOPressureWatch, CGroupPressureWatch, 0),
|
||||
SD_VARLINK_FIELD_COMMENT("https://www.freedesktop.org/software/systemd/man/"PROJECT_VERSION_STR"/systemd.resource-control.html#IOPressureThresholdSec="),
|
||||
SD_VARLINK_DEFINE_FIELD(IOPressureThresholdUSec, SD_VARLINK_INT, SD_VARLINK_NULLABLE),
|
||||
|
||||
@@ -445,9 +637,9 @@ static SD_VARLINK_DEFINE_STRUCT_TYPE(
|
||||
SD_VARLINK_FIELD_COMMENT("https://www.freedesktop.org/software/systemd/man"PROJECT_VERSION_STR"systemd.exec.html#BindLogSockets="),
|
||||
SD_VARLINK_DEFINE_FIELD(BindLogSockets, SD_VARLINK_BOOL, 0),
|
||||
SD_VARLINK_FIELD_COMMENT("https://www.freedesktop.org/software/systemd/man"PROJECT_VERSION_STR"systemd.exec.html#ProtectProc="),
|
||||
SD_VARLINK_DEFINE_FIELD(ProtectProc, SD_VARLINK_STRING, 0),
|
||||
SD_VARLINK_DEFINE_FIELD_BY_TYPE(ProtectProc, ProtectProc, 0),
|
||||
SD_VARLINK_FIELD_COMMENT("https://www.freedesktop.org/software/systemd/man"PROJECT_VERSION_STR"systemd.exec.html#ProcSubset="),
|
||||
SD_VARLINK_DEFINE_FIELD(ProcSubset, SD_VARLINK_STRING, 0),
|
||||
SD_VARLINK_DEFINE_FIELD_BY_TYPE(ProcSubset, ProcSubset, 0),
|
||||
SD_VARLINK_FIELD_COMMENT("https://www.freedesktop.org/software/systemd/man"PROJECT_VERSION_STR"systemd.exec.html#BindPaths="),
|
||||
SD_VARLINK_DEFINE_FIELD_BY_TYPE(BindPaths, BindPath, SD_VARLINK_ARRAY|SD_VARLINK_NULLABLE),
|
||||
SD_VARLINK_FIELD_COMMENT("https://www.freedesktop.org/software/systemd/man"PROJECT_VERSION_STR"systemd.exec.html#BindPaths="),
|
||||
@@ -506,7 +698,7 @@ static SD_VARLINK_DEFINE_STRUCT_TYPE(
|
||||
SD_VARLINK_FIELD_COMMENT("https://www.freedesktop.org/software/systemd/man"PROJECT_VERSION_STR"systemd.exec.html#CoredumpFilter="),
|
||||
SD_VARLINK_DEFINE_FIELD(CoredumpFilter, SD_VARLINK_INT, SD_VARLINK_NULLABLE),
|
||||
SD_VARLINK_FIELD_COMMENT("https://www.freedesktop.org/software/systemd/man"PROJECT_VERSION_STR"systemd.exec.html#KeyringMode="),
|
||||
SD_VARLINK_DEFINE_FIELD(KeyringMode, SD_VARLINK_STRING, 0),
|
||||
SD_VARLINK_DEFINE_FIELD_BY_TYPE(KeyringMode, ExecKeyringMode, 0),
|
||||
SD_VARLINK_FIELD_COMMENT("https://www.freedesktop.org/software/systemd/man"PROJECT_VERSION_STR"systemd.exec.html#OOMScoreAdjust="),
|
||||
SD_VARLINK_DEFINE_FIELD(OOMScoreAdjust, SD_VARLINK_INT, SD_VARLINK_NULLABLE),
|
||||
SD_VARLINK_FIELD_COMMENT("https://www.freedesktop.org/software/systemd/man"PROJECT_VERSION_STR"systemd.exec.html#TimerSlackNSec="),
|
||||
@@ -540,14 +732,14 @@ static SD_VARLINK_DEFINE_STRUCT_TYPE(
|
||||
SD_VARLINK_FIELD_COMMENT("https://www.freedesktop.org/software/systemd/man"PROJECT_VERSION_STR"systemd.exec.html#MemoryKSM="),
|
||||
SD_VARLINK_DEFINE_FIELD(MemoryKSM, SD_VARLINK_BOOL, SD_VARLINK_NULLABLE),
|
||||
SD_VARLINK_FIELD_COMMENT("https://www.freedesktop.org/software/systemd/man"PROJECT_VERSION_STR"systemd.exec.html#MemoryTHP="),
|
||||
SD_VARLINK_DEFINE_FIELD(MemoryTHP, SD_VARLINK_STRING, 0),
|
||||
SD_VARLINK_DEFINE_FIELD_BY_TYPE(MemoryTHP, MemoryTHP, 0),
|
||||
|
||||
/* Sandboxing
|
||||
* https://www.freedesktop.org/software/systemd/man/latest/systemd.exec.html#Sandboxing */
|
||||
SD_VARLINK_FIELD_COMMENT("https://www.freedesktop.org/software/systemd/man"PROJECT_VERSION_STR"systemd.exec.html#ProtectSystem="),
|
||||
SD_VARLINK_DEFINE_FIELD(ProtectSystem, SD_VARLINK_STRING, 0),
|
||||
SD_VARLINK_DEFINE_FIELD_BY_TYPE(ProtectSystem, ProtectSystem, 0),
|
||||
SD_VARLINK_FIELD_COMMENT("https://www.freedesktop.org/software/systemd/man"PROJECT_VERSION_STR"systemd.exec.html#ProtectHome="),
|
||||
SD_VARLINK_DEFINE_FIELD(ProtectHome, SD_VARLINK_STRING, 0),
|
||||
SD_VARLINK_DEFINE_FIELD_BY_TYPE(ProtectHome, ProtectHome, 0),
|
||||
SD_VARLINK_FIELD_COMMENT("https://www.freedesktop.org/software/systemd/man"PROJECT_VERSION_STR"systemd.exec.html#RuntimeDirectory="),
|
||||
SD_VARLINK_DEFINE_FIELD_BY_TYPE(RuntimeDirectory, ExecDirectory, SD_VARLINK_NULLABLE),
|
||||
SD_VARLINK_FIELD_COMMENT("https://www.freedesktop.org/software/systemd/man"PROJECT_VERSION_STR"systemd.exec.html#RuntimeDirectory="),
|
||||
@@ -559,7 +751,7 @@ static SD_VARLINK_DEFINE_STRUCT_TYPE(
|
||||
SD_VARLINK_FIELD_COMMENT("https://www.freedesktop.org/software/systemd/man"PROJECT_VERSION_STR"systemd.exec.html#RuntimeDirectory="),
|
||||
SD_VARLINK_DEFINE_FIELD_BY_TYPE(ConfigurationDirectory, ExecDirectory, SD_VARLINK_NULLABLE),
|
||||
SD_VARLINK_FIELD_COMMENT("https://www.freedesktop.org/software/systemd/man"PROJECT_VERSION_STR"systemd.exec.html#RuntimeDirectoryPreserve="),
|
||||
SD_VARLINK_DEFINE_FIELD(RuntimeDirectoryPreserve, SD_VARLINK_STRING, 0),
|
||||
SD_VARLINK_DEFINE_FIELD_BY_TYPE(RuntimeDirectoryPreserve, ExecPreserveMode, 0),
|
||||
SD_VARLINK_FIELD_COMMENT("https://www.freedesktop.org/software/systemd/man"PROJECT_VERSION_STR"systemd.exec.html#TimeoutCleanSec="),
|
||||
SD_VARLINK_DEFINE_FIELD(TimeoutCleanUSec, SD_VARLINK_INT, SD_VARLINK_NULLABLE),
|
||||
SD_VARLINK_FIELD_COMMENT("https://www.freedesktop.org/software/systemd/man"PROJECT_VERSION_STR"systemd.exec.html#ReadWritePaths="),
|
||||
@@ -575,7 +767,7 @@ static SD_VARLINK_DEFINE_STRUCT_TYPE(
|
||||
SD_VARLINK_FIELD_COMMENT("https://www.freedesktop.org/software/systemd/man"PROJECT_VERSION_STR"systemd.exec.html#TemporaryFileSystem="),
|
||||
SD_VARLINK_DEFINE_FIELD_BY_TYPE(TemporaryFileSystem, TemporaryFilesystem, SD_VARLINK_ARRAY|SD_VARLINK_NULLABLE),
|
||||
SD_VARLINK_FIELD_COMMENT("https://www.freedesktop.org/software/systemd/man"PROJECT_VERSION_STR"systemd.exec.html#PrivateTmp="),
|
||||
SD_VARLINK_DEFINE_FIELD(PrivateTmp, SD_VARLINK_STRING, 0),
|
||||
SD_VARLINK_DEFINE_FIELD_BY_TYPE(PrivateTmp, PrivateTmp, 0),
|
||||
SD_VARLINK_FIELD_COMMENT("https://www.freedesktop.org/software/systemd/man"PROJECT_VERSION_STR"systemd.exec.html#PrivateDevices="),
|
||||
SD_VARLINK_DEFINE_FIELD(PrivateDevices, SD_VARLINK_STRING, 0),
|
||||
SD_VARLINK_FIELD_COMMENT("https://www.freedesktop.org/software/systemd/man"PROJECT_VERSION_STR"systemd.exec.html#PrivateNetwork="),
|
||||
@@ -587,13 +779,13 @@ static SD_VARLINK_DEFINE_STRUCT_TYPE(
|
||||
SD_VARLINK_FIELD_COMMENT("https://www.freedesktop.org/software/systemd/man"PROJECT_VERSION_STR"systemd.exec.html#IPCNamespacePath="),
|
||||
SD_VARLINK_DEFINE_FIELD(IPCNamespacePath, SD_VARLINK_STRING, SD_VARLINK_NULLABLE),
|
||||
SD_VARLINK_FIELD_COMMENT("https://www.freedesktop.org/software/systemd/man"PROJECT_VERSION_STR"systemd.exec.html#PrivatePIDs="),
|
||||
SD_VARLINK_DEFINE_FIELD(PrivatePIDs, SD_VARLINK_STRING, 0),
|
||||
SD_VARLINK_DEFINE_FIELD_BY_TYPE(PrivatePIDs, PrivatePIDs, 0),
|
||||
SD_VARLINK_FIELD_COMMENT("https://www.freedesktop.org/software/systemd/man"PROJECT_VERSION_STR"systemd.exec.html#PrivateUsers="),
|
||||
SD_VARLINK_DEFINE_FIELD(PrivateUsers, SD_VARLINK_STRING, 0),
|
||||
SD_VARLINK_DEFINE_FIELD_BY_TYPE(PrivateUsers, PrivateUsers, 0),
|
||||
SD_VARLINK_FIELD_COMMENT("https://www.freedesktop.org/software/systemd/man"PROJECT_VERSION_STR"systemd.exec.html#UserNamespacePath="),
|
||||
SD_VARLINK_DEFINE_FIELD(UserNamespacePath, SD_VARLINK_STRING, SD_VARLINK_NULLABLE),
|
||||
SD_VARLINK_FIELD_COMMENT("https://www.freedesktop.org/software/systemd/man"PROJECT_VERSION_STR"systemd.exec.html#ProtectHostname="),
|
||||
SD_VARLINK_DEFINE_FIELD(ProtectHostname, SD_VARLINK_STRING, 0),
|
||||
SD_VARLINK_DEFINE_FIELD_BY_TYPE(ProtectHostname, ProtectHostname, 0),
|
||||
SD_VARLINK_FIELD_COMMENT("https://www.freedesktop.org/software/systemd/man"PROJECT_VERSION_STR"systemd.exec.html#ProtectClock="),
|
||||
SD_VARLINK_DEFINE_FIELD(ProtectClock, SD_VARLINK_STRING, 0),
|
||||
SD_VARLINK_FIELD_COMMENT("https://www.freedesktop.org/software/systemd/man"PROJECT_VERSION_STR"systemd.exec.html#ProtectKernelTunables="),
|
||||
@@ -603,7 +795,7 @@ static SD_VARLINK_DEFINE_STRUCT_TYPE(
|
||||
SD_VARLINK_FIELD_COMMENT("https://www.freedesktop.org/software/systemd/man"PROJECT_VERSION_STR"systemd.exec.html#ProtectKernelLogs="),
|
||||
SD_VARLINK_DEFINE_FIELD(ProtectKernelLogs, SD_VARLINK_STRING, 0),
|
||||
SD_VARLINK_FIELD_COMMENT("https://www.freedesktop.org/software/systemd/man"PROJECT_VERSION_STR"systemd.exec.html#ProtectControlGroups="),
|
||||
SD_VARLINK_DEFINE_FIELD(ProtectControlGroups, SD_VARLINK_STRING, 0),
|
||||
SD_VARLINK_DEFINE_FIELD_BY_TYPE(ProtectControlGroups, ProtectControlGroups, 0),
|
||||
SD_VARLINK_FIELD_COMMENT("https://www.freedesktop.org/software/systemd/man"PROJECT_VERSION_STR"systemd.exec.html#RestrictAddressFamilies="),
|
||||
SD_VARLINK_DEFINE_FIELD_BY_TYPE(RestrictAddressFamilies, AddressFamilyList, SD_VARLINK_NULLABLE),
|
||||
SD_VARLINK_FIELD_COMMENT("https://www.freedesktop.org/software/systemd/man"PROJECT_VERSION_STR"systemd.exec.html#RestrictFileSystems="),
|
||||
@@ -613,7 +805,7 @@ static SD_VARLINK_DEFINE_STRUCT_TYPE(
|
||||
SD_VARLINK_FIELD_COMMENT("https://www.freedesktop.org/software/systemd/man"PROJECT_VERSION_STR"systemd.exec.html#DelegateNamespaces="),
|
||||
SD_VARLINK_DEFINE_FIELD(DelegateNamespaces, SD_VARLINK_STRING, SD_VARLINK_ARRAY|SD_VARLINK_NULLABLE),
|
||||
SD_VARLINK_FIELD_COMMENT("https://www.freedesktop.org/software/systemd/man"PROJECT_VERSION_STR"systemd.exec.html#PrivatePBF="),
|
||||
SD_VARLINK_DEFINE_FIELD(PrivatePBF, SD_VARLINK_STRING, 0),
|
||||
SD_VARLINK_DEFINE_FIELD_BY_TYPE(PrivatePBF, PrivateBPF, 0),
|
||||
SD_VARLINK_FIELD_COMMENT("https://www.freedesktop.org/software/systemd/man"PROJECT_VERSION_STR"systemd.exec.html#BPFDelegateCommands="),
|
||||
SD_VARLINK_DEFINE_FIELD(BPFDelegateCommands, SD_VARLINK_STRING, SD_VARLINK_NULLABLE),
|
||||
SD_VARLINK_FIELD_COMMENT("https://www.freedesktop.org/software/systemd/man"PROJECT_VERSION_STR"systemd.exec.html#BPFDelegateMaps="),
|
||||
@@ -662,11 +854,11 @@ static SD_VARLINK_DEFINE_STRUCT_TYPE(
|
||||
/* Logging and Standard Input/Output
|
||||
* https://www.freedesktop.org/software/systemd/man/latest/systemd.exec.html#Logging%20and%20Standard%20Input/Output */
|
||||
SD_VARLINK_FIELD_COMMENT("https://www.freedesktop.org/software/systemd/man"PROJECT_VERSION_STR"systemd.exec.html#StandardInput="),
|
||||
SD_VARLINK_DEFINE_FIELD(StandardInput, SD_VARLINK_STRING, 0),
|
||||
SD_VARLINK_DEFINE_FIELD_BY_TYPE(StandardInput, ExecInputType, 0),
|
||||
SD_VARLINK_FIELD_COMMENT("https://www.freedesktop.org/software/systemd/man"PROJECT_VERSION_STR"systemd.exec.html#StandardOutput="),
|
||||
SD_VARLINK_DEFINE_FIELD(StandardOutput, SD_VARLINK_STRING, 0),
|
||||
SD_VARLINK_DEFINE_FIELD_BY_TYPE(StandardOutput, ExecOutputType, 0),
|
||||
SD_VARLINK_FIELD_COMMENT("https://www.freedesktop.org/software/systemd/man"PROJECT_VERSION_STR"systemd.exec.html#StandardError="),
|
||||
SD_VARLINK_DEFINE_FIELD(StandardError, SD_VARLINK_STRING, 0),
|
||||
SD_VARLINK_DEFINE_FIELD_BY_TYPE(StandardError, ExecOutputType, 0),
|
||||
SD_VARLINK_FIELD_COMMENT("The file descriptor name to connect standard input to"),
|
||||
SD_VARLINK_DEFINE_FIELD(StandardInputFileDescriptorName, SD_VARLINK_STRING, SD_VARLINK_NULLABLE),
|
||||
SD_VARLINK_FIELD_COMMENT("The file descriptor name to connect standard output to"),
|
||||
@@ -724,7 +916,7 @@ static SD_VARLINK_DEFINE_STRUCT_TYPE(
|
||||
SD_VARLINK_FIELD_COMMENT("https://www.freedesktop.org/software/systemd/man"PROJECT_VERSION_STR"systemd.exec.html#UtmpIdentifier="),
|
||||
SD_VARLINK_DEFINE_FIELD(UtmpIdentifier, SD_VARLINK_STRING, SD_VARLINK_NULLABLE),
|
||||
SD_VARLINK_FIELD_COMMENT("https://www.freedesktop.org/software/systemd/man"PROJECT_VERSION_STR"systemd.exec.html#UtmpMode="),
|
||||
SD_VARLINK_DEFINE_FIELD(UtmpMode, SD_VARLINK_STRING, 0));
|
||||
SD_VARLINK_DEFINE_FIELD_BY_TYPE(UtmpMode, ExecUtmpMode, 0));
|
||||
|
||||
/* UnitContext */
|
||||
static SD_VARLINK_DEFINE_STRUCT_TYPE(
|
||||
@@ -808,9 +1000,9 @@ static SD_VARLINK_DEFINE_STRUCT_TYPE(
|
||||
SD_VARLINK_FIELD_COMMENT("https://www.freedesktop.org/software/systemd/man/"PROJECT_VERSION_STR"/systemd.unit.html#WantsMountsFor="),
|
||||
SD_VARLINK_DEFINE_FIELD(WantsMountsFor, SD_VARLINK_STRING, SD_VARLINK_ARRAY|SD_VARLINK_NULLABLE),
|
||||
SD_VARLINK_FIELD_COMMENT("https://www.freedesktop.org/software/systemd/man/"PROJECT_VERSION_STR"/systemd.unit.html#OnSuccessJobMode="),
|
||||
SD_VARLINK_DEFINE_FIELD(OnSuccessJobMode, SD_VARLINK_STRING, 0),
|
||||
SD_VARLINK_DEFINE_FIELD_BY_TYPE(OnSuccessJobMode, JobMode, 0),
|
||||
SD_VARLINK_FIELD_COMMENT("https://www.freedesktop.org/software/systemd/man/"PROJECT_VERSION_STR"/systemd.unit.html#OnSuccessJobMode="),
|
||||
SD_VARLINK_DEFINE_FIELD(OnFailureJobMode, SD_VARLINK_STRING, 0),
|
||||
SD_VARLINK_DEFINE_FIELD_BY_TYPE(OnFailureJobMode, JobMode, 0),
|
||||
SD_VARLINK_FIELD_COMMENT("https://www.freedesktop.org/software/systemd/man/"PROJECT_VERSION_STR"/systemd.unit.html#IgnoreOnIsolate="),
|
||||
SD_VARLINK_DEFINE_FIELD(IgnoreOnIsolate, SD_VARLINK_BOOL, 0),
|
||||
SD_VARLINK_FIELD_COMMENT("https://www.freedesktop.org/software/systemd/man/"PROJECT_VERSION_STR"/systemd.unit.html#StopWhenUnneeded="),
|
||||
@@ -826,11 +1018,11 @@ static SD_VARLINK_DEFINE_STRUCT_TYPE(
|
||||
SD_VARLINK_FIELD_COMMENT("https://www.freedesktop.org/software/systemd/man/"PROJECT_VERSION_STR"/systemd.unit.html#SurviveFinalKillSignal="),
|
||||
SD_VARLINK_DEFINE_FIELD(SurviveFinalKillSignal, SD_VARLINK_BOOL, 0),
|
||||
SD_VARLINK_FIELD_COMMENT("https://www.freedesktop.org/software/systemd/man/"PROJECT_VERSION_STR"/systemd.unit.html#CollectMode="),
|
||||
SD_VARLINK_DEFINE_FIELD(CollectMode, SD_VARLINK_STRING, 0),
|
||||
SD_VARLINK_DEFINE_FIELD_BY_TYPE(CollectMode, CollectMode, 0),
|
||||
SD_VARLINK_FIELD_COMMENT("https://www.freedesktop.org/software/systemd/man/"PROJECT_VERSION_STR"/systemd.unit.html#FailureAction="),
|
||||
SD_VARLINK_DEFINE_FIELD(FailureAction, SD_VARLINK_STRING, SD_VARLINK_NULLABLE),
|
||||
SD_VARLINK_DEFINE_FIELD_BY_TYPE(FailureAction, EmergencyAction, SD_VARLINK_NULLABLE),
|
||||
SD_VARLINK_FIELD_COMMENT("https://www.freedesktop.org/software/systemd/man/"PROJECT_VERSION_STR"/systemd.unit.html#FailureAction="),
|
||||
SD_VARLINK_DEFINE_FIELD(SuccessAction, SD_VARLINK_STRING, SD_VARLINK_NULLABLE),
|
||||
SD_VARLINK_DEFINE_FIELD_BY_TYPE(SuccessAction, EmergencyAction, SD_VARLINK_NULLABLE),
|
||||
SD_VARLINK_FIELD_COMMENT("https://www.freedesktop.org/software/systemd/man/"PROJECT_VERSION_STR"/systemd.unit.html#FailureActionExitStatus="),
|
||||
SD_VARLINK_DEFINE_FIELD(FailureActionExitStatus, SD_VARLINK_INT, SD_VARLINK_NULLABLE),
|
||||
SD_VARLINK_FIELD_COMMENT("https://www.freedesktop.org/software/systemd/man/"PROJECT_VERSION_STR"/systemd.unit.html#FailureActionExitStatus="),
|
||||
@@ -840,13 +1032,13 @@ static SD_VARLINK_DEFINE_STRUCT_TYPE(
|
||||
SD_VARLINK_FIELD_COMMENT("https://www.freedesktop.org/software/systemd/man/"PROJECT_VERSION_STR"/systemd.unit.html#JobTimeoutSec="),
|
||||
SD_VARLINK_DEFINE_FIELD(JobRunningTimeoutUSec, SD_VARLINK_INT, SD_VARLINK_NULLABLE),
|
||||
SD_VARLINK_FIELD_COMMENT("https://www.freedesktop.org/software/systemd/man/"PROJECT_VERSION_STR"/systemd.unit.html#JobTimeoutAction="),
|
||||
SD_VARLINK_DEFINE_FIELD(JobTimeoutAction, SD_VARLINK_STRING, SD_VARLINK_NULLABLE),
|
||||
SD_VARLINK_DEFINE_FIELD_BY_TYPE(JobTimeoutAction, EmergencyAction, SD_VARLINK_NULLABLE),
|
||||
SD_VARLINK_FIELD_COMMENT("https://www.freedesktop.org/software/systemd/man/"PROJECT_VERSION_STR"/systemd.unit.html#JobTimeoutAction="),
|
||||
SD_VARLINK_DEFINE_FIELD(JobTimeoutRebootArgument, SD_VARLINK_STRING, SD_VARLINK_NULLABLE),
|
||||
SD_VARLINK_FIELD_COMMENT("https://www.freedesktop.org/software/systemd/man/"PROJECT_VERSION_STR"/systemd.unit.html#StartLimitIntervalSec=interval"),
|
||||
SD_VARLINK_DEFINE_FIELD_BY_TYPE(StartLimit, RateLimit, SD_VARLINK_NULLABLE),
|
||||
SD_VARLINK_FIELD_COMMENT("https://www.freedesktop.org/software/systemd/man/"PROJECT_VERSION_STR"/systemd.unit.html#StartLimitIntervalSec=interval"),
|
||||
SD_VARLINK_DEFINE_FIELD(StartLimitAction, SD_VARLINK_STRING, SD_VARLINK_NULLABLE),
|
||||
SD_VARLINK_DEFINE_FIELD_BY_TYPE(StartLimitAction, EmergencyAction, SD_VARLINK_NULLABLE),
|
||||
SD_VARLINK_FIELD_COMMENT("https://www.freedesktop.org/software/systemd/man/"PROJECT_VERSION_STR"/systemd.unit.html#RebootArgument="),
|
||||
SD_VARLINK_DEFINE_FIELD(RebootArgument, SD_VARLINK_STRING, SD_VARLINK_NULLABLE),
|
||||
SD_VARLINK_FIELD_COMMENT("https://www.freedesktop.org/software/systemd/man/"PROJECT_VERSION_STR"/systemd.unit.html#SourcePath="),
|
||||
@@ -1075,6 +1267,10 @@ SD_VARLINK_DEFINE_INTERFACE(
|
||||
&vl_type_ProcessId,
|
||||
|
||||
/* CGroupContext */
|
||||
&vl_type_CGroupDevicePolicy,
|
||||
&vl_type_ManagedOOMMode,
|
||||
&vl_type_ManagedOOMPreference,
|
||||
&vl_type_CGroupPressureWatch,
|
||||
&vl_type_CGroupTasksMax,
|
||||
&vl_type_CGroupIODeviceWeight,
|
||||
&vl_type_CGroupIODeviceLimit,
|
||||
@@ -1084,6 +1280,7 @@ SD_VARLINK_DEFINE_INTERFACE(
|
||||
&vl_type_CGroupRestrictNetworkInterfaces,
|
||||
&vl_type_CGroupNFTSet,
|
||||
&vl_type_CGroupBPFProgram,
|
||||
&vl_type_CGroupController,
|
||||
&vl_type_CGroupDeviceAllow,
|
||||
SD_VARLINK_SYMBOL_COMMENT("CGroup context of a unit"),
|
||||
&vl_type_CGroupContext,
|
||||
@@ -1091,6 +1288,22 @@ SD_VARLINK_DEFINE_INTERFACE(
|
||||
&vl_type_CGroupRuntime,
|
||||
|
||||
/* ExecContext */
|
||||
&vl_type_ExecInputType,
|
||||
&vl_type_ExecOutputType,
|
||||
&vl_type_ExecUtmpMode,
|
||||
&vl_type_ExecPreserveMode,
|
||||
&vl_type_ExecKeyringMode,
|
||||
&vl_type_MemoryTHP,
|
||||
&vl_type_ProtectProc,
|
||||
&vl_type_ProcSubset,
|
||||
&vl_type_ProtectSystem,
|
||||
&vl_type_ProtectHome,
|
||||
&vl_type_PrivateTmp,
|
||||
&vl_type_PrivateUsers,
|
||||
&vl_type_ProtectHostname,
|
||||
&vl_type_ProtectControlGroups,
|
||||
&vl_type_PrivatePIDs,
|
||||
&vl_type_PrivateBPF,
|
||||
&vl_type_WorkingDirectory,
|
||||
&vl_type_PartitionMountOptions,
|
||||
&vl_type_BindPath,
|
||||
@@ -1117,6 +1330,11 @@ SD_VARLINK_DEFINE_INTERFACE(
|
||||
SD_VARLINK_SYMBOL_COMMENT("Exec context of a unit"),
|
||||
&vl_type_ExecContext,
|
||||
|
||||
/* UnitContext enums */
|
||||
&vl_type_CollectMode,
|
||||
&vl_type_EmergencyAction,
|
||||
&vl_type_JobMode,
|
||||
|
||||
/* Errors */
|
||||
SD_VARLINK_SYMBOL_COMMENT("No matching unit found"),
|
||||
&vl_error_NoSuchUnit,
|
||||
|
||||
@@ -4,3 +4,28 @@
|
||||
#include "sd-varlink-idl.h"
|
||||
|
||||
extern const sd_varlink_interface vl_interface_io_systemd_Unit;
|
||||
|
||||
extern const sd_varlink_symbol vl_type_ExecInputType;
|
||||
extern const sd_varlink_symbol vl_type_ExecOutputType;
|
||||
extern const sd_varlink_symbol vl_type_ExecUtmpMode;
|
||||
extern const sd_varlink_symbol vl_type_ExecPreserveMode;
|
||||
extern const sd_varlink_symbol vl_type_ExecKeyringMode;
|
||||
extern const sd_varlink_symbol vl_type_MemoryTHP;
|
||||
extern const sd_varlink_symbol vl_type_ProtectProc;
|
||||
extern const sd_varlink_symbol vl_type_ProcSubset;
|
||||
extern const sd_varlink_symbol vl_type_ProtectSystem;
|
||||
extern const sd_varlink_symbol vl_type_ProtectHome;
|
||||
extern const sd_varlink_symbol vl_type_PrivateTmp;
|
||||
extern const sd_varlink_symbol vl_type_PrivateUsers;
|
||||
extern const sd_varlink_symbol vl_type_ProtectHostname;
|
||||
extern const sd_varlink_symbol vl_type_ProtectControlGroups;
|
||||
extern const sd_varlink_symbol vl_type_PrivatePIDs;
|
||||
extern const sd_varlink_symbol vl_type_PrivateBPF;
|
||||
extern const sd_varlink_symbol vl_type_CGroupDevicePolicy;
|
||||
extern const sd_varlink_symbol vl_type_ManagedOOMMode;
|
||||
extern const sd_varlink_symbol vl_type_ManagedOOMPreference;
|
||||
extern const sd_varlink_symbol vl_type_CGroupPressureWatch;
|
||||
extern const sd_varlink_symbol vl_type_CGroupController;
|
||||
extern const sd_varlink_symbol vl_type_CollectMode;
|
||||
extern const sd_varlink_symbol vl_type_EmergencyAction;
|
||||
extern const sd_varlink_symbol vl_type_JobMode;
|
||||
|
||||
@@ -493,6 +493,9 @@ executables += [
|
||||
'sources' : files('test-varlink-idl.c'),
|
||||
'dependencies' : threads,
|
||||
},
|
||||
core_test_template + {
|
||||
'sources' : files('test-varlink-idl-unit.c'),
|
||||
},
|
||||
test_template + {
|
||||
'sources' : files('test-watchdog.c'),
|
||||
'type' : 'unsafe',
|
||||
|
||||
@@ -0,0 +1,41 @@
|
||||
/* SPDX-License-Identifier: LGPL-2.1-or-later */
|
||||
|
||||
#include "cgroup.h"
|
||||
#include "tests.h"
|
||||
#include "test-varlink-idl-util.h"
|
||||
#include "unit.h"
|
||||
#include "varlink-io.systemd.Unit.h"
|
||||
|
||||
TEST(unit_enums_idl) {
|
||||
/* ExecContext enums */
|
||||
TEST_IDL_ENUM(ExecInput, exec_input, vl_type_ExecInputType);
|
||||
TEST_IDL_ENUM_TO_STRING(ExecOutput, exec_output, vl_type_ExecOutputType);
|
||||
TEST_IDL_ENUM(ExecUtmpMode, exec_utmp_mode, vl_type_ExecUtmpMode);
|
||||
TEST_IDL_ENUM(ExecPreserveMode, exec_preserve_mode, vl_type_ExecPreserveMode);
|
||||
TEST_IDL_ENUM(ExecKeyringMode, exec_keyring_mode, vl_type_ExecKeyringMode);
|
||||
TEST_IDL_ENUM(MemoryTHP, memory_thp, vl_type_MemoryTHP);
|
||||
TEST_IDL_ENUM(ProtectProc, protect_proc, vl_type_ProtectProc);
|
||||
TEST_IDL_ENUM(ProcSubset, proc_subset, vl_type_ProcSubset);
|
||||
TEST_IDL_ENUM(ProtectSystem, protect_system, vl_type_ProtectSystem);
|
||||
TEST_IDL_ENUM(ProtectHome, protect_home, vl_type_ProtectHome);
|
||||
TEST_IDL_ENUM(PrivateTmp, private_tmp, vl_type_PrivateTmp);
|
||||
TEST_IDL_ENUM(PrivateUsers, private_users, vl_type_PrivateUsers);
|
||||
TEST_IDL_ENUM(ProtectHostname, protect_hostname, vl_type_ProtectHostname);
|
||||
TEST_IDL_ENUM(ProtectControlGroups, protect_control_groups, vl_type_ProtectControlGroups);
|
||||
TEST_IDL_ENUM(PrivatePIDs, private_pids, vl_type_PrivatePIDs);
|
||||
TEST_IDL_ENUM(PrivateBPF, private_bpf, vl_type_PrivateBPF);
|
||||
|
||||
/* CGroupContext enums */
|
||||
TEST_IDL_ENUM(CGroupDevicePolicy, cgroup_device_policy, vl_type_CGroupDevicePolicy);
|
||||
TEST_IDL_ENUM(ManagedOOMMode, managed_oom_mode, vl_type_ManagedOOMMode);
|
||||
TEST_IDL_ENUM(ManagedOOMPreference, managed_oom_preference, vl_type_ManagedOOMPreference);
|
||||
TEST_IDL_ENUM(CGroupPressureWatch, cgroup_pressure_watch, vl_type_CGroupPressureWatch);
|
||||
TEST_IDL_ENUM(CGroupController, cgroup_controller, vl_type_CGroupController);
|
||||
|
||||
/* UnitContext enums */
|
||||
TEST_IDL_ENUM(CollectMode, collect_mode, vl_type_CollectMode);
|
||||
TEST_IDL_ENUM(EmergencyAction, emergency_action, vl_type_EmergencyAction);
|
||||
TEST_IDL_ENUM(JobMode, job_mode, vl_type_JobMode);
|
||||
}
|
||||
|
||||
DEFINE_TEST_MAIN(LOG_DEBUG);
|
||||
@@ -0,0 +1,55 @@
|
||||
/* SPDX-License-Identifier: LGPL-2.1-or-later */
|
||||
#pragma once
|
||||
|
||||
#include "sd-varlink-idl.h"
|
||||
|
||||
#include "json-util.h"
|
||||
#include "string-util.h"
|
||||
|
||||
static inline void test_enum_to_string_name(const char *n, const sd_varlink_symbol *symbol) {
|
||||
assert(n);
|
||||
assert(symbol);
|
||||
|
||||
assert(symbol->symbol_type == SD_VARLINK_ENUM_TYPE);
|
||||
_cleanup_free_ char *m = ASSERT_PTR(json_underscorify(strdup(n)));
|
||||
|
||||
bool found = false;
|
||||
for (const sd_varlink_field *f = symbol->fields; f->name; f++) {
|
||||
if (f->field_type == _SD_VARLINK_FIELD_COMMENT)
|
||||
continue;
|
||||
|
||||
assert(f->field_type == SD_VARLINK_ENUM_VALUE);
|
||||
if (streq(m, f->name)) {
|
||||
found = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
log_debug("'%s' found in '%s': %s", m, strna(symbol->name), yes_no(found));
|
||||
assert(found);
|
||||
}
|
||||
|
||||
#define TEST_IDL_ENUM_TO_STRING(type, ename, symbol) \
|
||||
for (type t = 0;; t++) { \
|
||||
const char *n = ename##_to_string(t); \
|
||||
if (!n) \
|
||||
break; \
|
||||
test_enum_to_string_name(n, &(symbol)); \
|
||||
}
|
||||
|
||||
#define TEST_IDL_ENUM_FROM_STRING(type, ename, symbol) \
|
||||
for (const sd_varlink_field *f = (symbol).fields; f->name; f++) { \
|
||||
if (f->field_type == _SD_VARLINK_FIELD_COMMENT) \
|
||||
continue; \
|
||||
assert(f->field_type == SD_VARLINK_ENUM_VALUE); \
|
||||
_cleanup_free_ char *m = ASSERT_PTR(json_dashify(strdup(f->name))); \
|
||||
type t = ename##_from_string(m); \
|
||||
log_debug("'%s' of '%s' translates: %s", f->name, strna((symbol).name), yes_no(t >= 0)); \
|
||||
assert(t >= 0); \
|
||||
}
|
||||
|
||||
#define TEST_IDL_ENUM(type, name, symbol) \
|
||||
do { \
|
||||
TEST_IDL_ENUM_TO_STRING(type, name, symbol); \
|
||||
TEST_IDL_ENUM_FROM_STRING(type, name, symbol); \
|
||||
} while (false)
|
||||
@@ -11,11 +11,11 @@
|
||||
#include "discover-image.h"
|
||||
#include "fd-util.h"
|
||||
#include "gpt.h"
|
||||
#include "json-util.h"
|
||||
#include "network-util.h"
|
||||
#include "pretty-print.h"
|
||||
#include "resolve-util.h"
|
||||
#include "tests.h"
|
||||
#include "test-varlink-idl-util.h"
|
||||
#include "varlink-idl-util.h"
|
||||
#include "varlink-io.systemd.h"
|
||||
#include "varlink-io.systemd.AskPassword.h"
|
||||
@@ -481,54 +481,6 @@ TEST(validate_method_call) {
|
||||
assert_se(pthread_join(t, NULL) == 0);
|
||||
}
|
||||
|
||||
static void test_enum_to_string_name(const char *n, const sd_varlink_symbol *symbol) {
|
||||
assert(n);
|
||||
assert(symbol);
|
||||
|
||||
assert(symbol->symbol_type == SD_VARLINK_ENUM_TYPE);
|
||||
_cleanup_free_ char *m = ASSERT_PTR(json_underscorify(strdup(n)));
|
||||
|
||||
bool found = false;
|
||||
for (const sd_varlink_field *f = symbol->fields; f->name; f++) {
|
||||
if (f->field_type == _SD_VARLINK_FIELD_COMMENT)
|
||||
continue;
|
||||
|
||||
assert(f->field_type == SD_VARLINK_ENUM_VALUE);
|
||||
if (streq(m, f->name)) {
|
||||
found = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
log_debug("'%s' found in '%s': %s", m, strna(symbol->name), yes_no(found));
|
||||
assert(found);
|
||||
}
|
||||
|
||||
#define TEST_IDL_ENUM_TO_STRING(type, ename, symbol) \
|
||||
for (type t = 0;; t++) { \
|
||||
const char *n = ename##_to_string(t); \
|
||||
if (!n) \
|
||||
break; \
|
||||
test_enum_to_string_name(n, &(symbol)); \
|
||||
}
|
||||
|
||||
#define TEST_IDL_ENUM_FROM_STRING(type, ename, symbol) \
|
||||
for (const sd_varlink_field *f = (symbol).fields; f->name; f++) { \
|
||||
if (f->field_type == _SD_VARLINK_FIELD_COMMENT) \
|
||||
continue; \
|
||||
assert(f->field_type == SD_VARLINK_ENUM_VALUE); \
|
||||
_cleanup_free_ char *m = ASSERT_PTR(json_dashify(strdup(f->name))); \
|
||||
type t = ename##_from_string(m); \
|
||||
log_debug("'%s' of '%s' translates: %s", f->name, strna((symbol).name), yes_no(t >= 0)); \
|
||||
assert(t >= 0); \
|
||||
}
|
||||
|
||||
#define TEST_IDL_ENUM(type, name, symbol) \
|
||||
do { \
|
||||
TEST_IDL_ENUM_TO_STRING(type, name, symbol); \
|
||||
TEST_IDL_ENUM_FROM_STRING(type, name, symbol); \
|
||||
} while (false)
|
||||
|
||||
TEST(enums_idl) {
|
||||
TEST_IDL_ENUM(BootEntryType, boot_entry_type, vl_type_BootEntryType);
|
||||
TEST_IDL_ENUM_TO_STRING(BootEntrySource, boot_entry_source, vl_type_BootEntrySource);
|
||||
|
||||
Reference in New Issue
Block a user