--- /dev/null
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
+
+#include "varlink-io.systemd.Job.h"
+
+/* Keep in sync with job_type_table[] in src/core/job.c */
+SD_VARLINK_DEFINE_ENUM_TYPE(
+ JobType,
+ SD_VARLINK_DEFINE_ENUM_VALUE(start),
+ SD_VARLINK_DEFINE_ENUM_VALUE(verify_active),
+ SD_VARLINK_DEFINE_ENUM_VALUE(stop),
+ SD_VARLINK_DEFINE_ENUM_VALUE(reload),
+ SD_VARLINK_DEFINE_ENUM_VALUE(reload_or_start),
+ SD_VARLINK_DEFINE_ENUM_VALUE(restart),
+ SD_VARLINK_DEFINE_ENUM_VALUE(try_restart),
+ SD_VARLINK_DEFINE_ENUM_VALUE(try_reload),
+ SD_VARLINK_DEFINE_ENUM_VALUE(nop));
+
+/* Keep in sync with job_state_table[] in src/core/job.c */
+SD_VARLINK_DEFINE_ENUM_TYPE(
+ JobState,
+ SD_VARLINK_DEFINE_ENUM_VALUE(waiting),
+ SD_VARLINK_DEFINE_ENUM_VALUE(running),
+ SD_VARLINK_DEFINE_ENUM_VALUE(finished));
+
+/* Keep in sync with job_result_table[] in src/core/job.c */
+SD_VARLINK_DEFINE_ENUM_TYPE(
+ JobResult,
+ SD_VARLINK_DEFINE_ENUM_VALUE(done),
+ SD_VARLINK_DEFINE_ENUM_VALUE(canceled),
+ SD_VARLINK_DEFINE_ENUM_VALUE(timeout),
+ SD_VARLINK_DEFINE_ENUM_VALUE(failed),
+ SD_VARLINK_DEFINE_ENUM_VALUE(dependency),
+ SD_VARLINK_DEFINE_ENUM_VALUE(skipped),
+ SD_VARLINK_DEFINE_ENUM_VALUE(invalid),
+ SD_VARLINK_DEFINE_ENUM_VALUE(assert),
+ SD_VARLINK_DEFINE_ENUM_VALUE(unsupported),
+ SD_VARLINK_DEFINE_ENUM_VALUE(collected),
+ SD_VARLINK_DEFINE_ENUM_VALUE(once),
+ SD_VARLINK_DEFINE_ENUM_VALUE(frozen),
+ SD_VARLINK_DEFINE_ENUM_VALUE(concurrency));
+
+/* Field names match the D-Bus Job properties (Id, JobType, State) */
+SD_VARLINK_DEFINE_STRUCT_TYPE(
+ Job,
+ SD_VARLINK_FIELD_COMMENT("The numeric job ID"),
+ SD_VARLINK_DEFINE_FIELD(Id, SD_VARLINK_INT, 0),
+ SD_VARLINK_FIELD_COMMENT("The job type"),
+ SD_VARLINK_DEFINE_FIELD_BY_TYPE(JobType, JobType, 0),
+ SD_VARLINK_FIELD_COMMENT("Current job state, set in intermediate streaming notifications"),
+ SD_VARLINK_DEFINE_FIELD_BY_TYPE(State, JobState, SD_VARLINK_NULLABLE),
+ SD_VARLINK_FIELD_COMMENT("Final job result, set in the final streaming reply"),
+ SD_VARLINK_DEFINE_FIELD_BY_TYPE(Result, JobResult, SD_VARLINK_NULLABLE));
+
+SD_VARLINK_DEFINE_INTERFACE(
+ io_systemd_Job,
+ "io.systemd.Job",
+ SD_VARLINK_INTERFACE_COMMENT("Job-related types for the systemd service manager."),
+ SD_VARLINK_SYMBOL_COMMENT("Job type"),
+ &vl_type_JobType,
+ SD_VARLINK_SYMBOL_COMMENT("Job state"),
+ &vl_type_JobState,
+ SD_VARLINK_SYMBOL_COMMENT("Job result"),
+ &vl_type_JobResult,
+ SD_VARLINK_SYMBOL_COMMENT("A job object"),
+ &vl_type_Job);
#include "varlink-io.systemd.Hostname.h"
#include "varlink-io.systemd.Import.h"
#include "varlink-io.systemd.InstanceMetadata.h"
+#include "varlink-io.systemd.Job.h"
#include "varlink-io.systemd.Journal.h"
#include "varlink-io.systemd.JournalAccess.h"
#include "varlink-io.systemd.Login.h"
&vl_interface_io_systemd_Hostname,
&vl_interface_io_systemd_Import,
&vl_interface_io_systemd_InstanceMetadata,
+ &vl_interface_io_systemd_Job,
&vl_interface_io_systemd_Journal,
&vl_interface_io_systemd_JournalAccess,
&vl_interface_io_systemd_Login,