diff --git a/src/core/varlink-manager.c b/src/core/varlink-manager.c index f63d2a2e8f..b48d212475 100644 --- a/src/core/varlink-manager.c +++ b/src/core/varlink-manager.c @@ -170,6 +170,12 @@ static int manager_runtime_build_json(sd_json_variant **ret, const char *name, v JSON_BUILD_PAIR_DUAL_TIMESTAMP_NON_NULL("InitRDTimestamp", &m->timestamps[MANAGER_TIMESTAMP_INITRD]), JSON_BUILD_PAIR_DUAL_TIMESTAMP_NON_NULL("UserspaceTimestamp", &m->timestamps[MANAGER_TIMESTAMP_USERSPACE]), JSON_BUILD_PAIR_DUAL_TIMESTAMP_NON_NULL("FinishTimestamp", &m->timestamps[MANAGER_TIMESTAMP_FINISH]), + JSON_BUILD_PAIR_DUAL_TIMESTAMP_NON_NULL("ShutdownStartTimestamp", &m->timestamps[MANAGER_TIMESTAMP_SHUTDOWN_START]), + JSON_BUILD_PAIR_DUAL_TIMESTAMP_NON_NULL("ShutdownFinishTimestamp", &m->timestamps[MANAGER_TIMESTAMP_SHUTDOWN_FINISH]), + JSON_BUILD_PAIR_DUAL_TIMESTAMP_NON_NULL("PreviousShutdownStartTimestamp", &m->timestamps[MANAGER_TIMESTAMP_PREVIOUS_SHUTDOWN_START]), + JSON_BUILD_PAIR_DUAL_TIMESTAMP_NON_NULL("PreviousShutdownFinishTimestamp", &m->timestamps[MANAGER_TIMESTAMP_PREVIOUS_SHUTDOWN_FINISH]), + JSON_BUILD_PAIR_DUAL_TIMESTAMP_NON_NULL("PreviousShutdownLateStartTimestamp", &m->timestamps[MANAGER_TIMESTAMP_PREVIOUS_SHUTDOWN_LATE_START]), + JSON_BUILD_PAIR_DUAL_TIMESTAMP_NON_NULL("PreviousShutdownLateFinishTimestamp", &m->timestamps[MANAGER_TIMESTAMP_PREVIOUS_SHUTDOWN_LATE_FINISH]), JSON_BUILD_PAIR_DUAL_TIMESTAMP_NON_NULL("SecurityStartTimestamp", &m->timestamps[MANAGER_TIMESTAMP_SECURITY_START]), JSON_BUILD_PAIR_DUAL_TIMESTAMP_NON_NULL("SecurityFinishTimestamp", &m->timestamps[MANAGER_TIMESTAMP_SECURITY_FINISH]), JSON_BUILD_PAIR_DUAL_TIMESTAMP_NON_NULL("GeneratorsStartTimestamp", &m->timestamps[MANAGER_TIMESTAMP_GENERATORS_START]), diff --git a/src/shared/varlink-io.systemd.Manager.c b/src/shared/varlink-io.systemd.Manager.c index 9331a2b1ae..7b0224323f 100644 --- a/src/shared/varlink-io.systemd.Manager.c +++ b/src/shared/varlink-io.systemd.Manager.c @@ -141,6 +141,18 @@ static SD_VARLINK_DEFINE_STRUCT_TYPE( SD_VARLINK_DEFINE_FIELD_BY_TYPE(UserspaceTimestamp, Timestamp, SD_VARLINK_NULLABLE), SD_VARLINK_FIELD_COMMENT("Timestamp when the system finished booting up"), SD_VARLINK_DEFINE_FIELD_BY_TYPE(FinishTimestamp, Timestamp, SD_VARLINK_NULLABLE), + SD_VARLINK_FIELD_COMMENT("Timestamp when shutdown began, i.e. when units started to be stopped"), + SD_VARLINK_DEFINE_FIELD_BY_TYPE(ShutdownStartTimestamp, Timestamp, SD_VARLINK_NULLABLE), + SD_VARLINK_FIELD_COMMENT("Timestamp when all units finished stopping during shutdown"), + SD_VARLINK_DEFINE_FIELD_BY_TYPE(ShutdownFinishTimestamp, Timestamp, SD_VARLINK_NULLABLE), + SD_VARLINK_FIELD_COMMENT("Timestamp when the previous boot began stopping units, restored across a kexec-based live update"), + SD_VARLINK_DEFINE_FIELD_BY_TYPE(PreviousShutdownStartTimestamp, Timestamp, SD_VARLINK_NULLABLE), + SD_VARLINK_FIELD_COMMENT("Timestamp when the previous boot finished stopping units, restored across a kexec-based live update"), + SD_VARLINK_DEFINE_FIELD_BY_TYPE(PreviousShutdownFinishTimestamp, Timestamp, SD_VARLINK_NULLABLE), + SD_VARLINK_FIELD_COMMENT("Timestamp when systemd-shutdown began execution during the previous boot, restored across a kexec-based live update"), + SD_VARLINK_DEFINE_FIELD_BY_TYPE(PreviousShutdownLateStartTimestamp, Timestamp, SD_VARLINK_NULLABLE), + SD_VARLINK_FIELD_COMMENT("Timestamp when systemd-shutdown was about to kexec into the current kernel, restored across a kexec-based live update"), + SD_VARLINK_DEFINE_FIELD_BY_TYPE(PreviousShutdownLateFinishTimestamp, Timestamp, SD_VARLINK_NULLABLE), SD_VARLINK_FIELD_COMMENT("Timestamp when the manager started uploading security policies to the kernel"), SD_VARLINK_DEFINE_FIELD_BY_TYPE(SecurityStartTimestamp, Timestamp, SD_VARLINK_NULLABLE), SD_VARLINK_FIELD_COMMENT("Timestamp when the manager finished uploading security policies to the kernel"),