From: Mike Yuan Date: Thu, 18 Apr 2024 00:53:50 +0000 (+0800) Subject: core/manager: introduce ManagerObjective string table lookup X-Git-Tag: v256-rc1~132^2~2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=37ca2ccf333f82ce78e646ae5fe3225ad6264968;p=thirdparty%2Fsystemd.git core/manager: introduce ManagerObjective string table lookup --- diff --git a/src/core/manager.c b/src/core/manager.c index 19614b53245..fb3da638538 100644 --- a/src/core/manager.c +++ b/src/core/manager.c @@ -4413,7 +4413,7 @@ void manager_override_show_status(Manager *m, ShowStatus mode, const char *reaso set_show_status_marker(show_status_on(mode)); } -const char *manager_get_confirm_spawn(Manager *m) { +const char* manager_get_confirm_spawn(Manager *m) { static int last_errno = 0; struct stat st; int r; @@ -5036,7 +5036,7 @@ LogTarget manager_get_executor_log_target(Manager *m) { return LOG_TARGET_KMSG; } -static const char *const manager_state_table[_MANAGER_STATE_MAX] = { +static const char* const manager_state_table[_MANAGER_STATE_MAX] = { [MANAGER_INITIALIZING] = "initializing", [MANAGER_STARTING] = "starting", [MANAGER_RUNNING] = "running", @@ -5047,7 +5047,22 @@ static const char *const manager_state_table[_MANAGER_STATE_MAX] = { DEFINE_STRING_TABLE_LOOKUP(manager_state, ManagerState); -static const char *const manager_timestamp_table[_MANAGER_TIMESTAMP_MAX] = { +static const char* const manager_objective_table[_MANAGER_OBJECTIVE_MAX] = { + [MANAGER_OK] = "ok", + [MANAGER_EXIT] = "exit", + [MANAGER_RELOAD] = "reload", + [MANAGER_REEXECUTE] = "reexecute", + [MANAGER_REBOOT] = "reboot", + [MANAGER_SOFT_REBOOT] = "soft-reboot", + [MANAGER_POWEROFF] = "poweroff", + [MANAGER_HALT] = "halt", + [MANAGER_KEXEC] = "kexec", + [MANAGER_SWITCH_ROOT] = "switch-root", +}; + +DEFINE_STRING_TABLE_LOOKUP(manager_objective, ManagerObjective); + +static const char* const manager_timestamp_table[_MANAGER_TIMESTAMP_MAX] = { [MANAGER_TIMESTAMP_FIRMWARE] = "firmware", [MANAGER_TIMESTAMP_LOADER] = "loader", [MANAGER_TIMESTAMP_KERNEL] = "kernel", diff --git a/src/core/manager.h b/src/core/manager.h index 70ae78aa849..c4ad42293e5 100644 --- a/src/core/manager.h +++ b/src/core/manager.h @@ -627,13 +627,16 @@ void manager_restore_original_log_level(Manager *m); void manager_override_log_target(Manager *m, LogTarget target); void manager_restore_original_log_target(Manager *m); -const char *manager_state_to_string(ManagerState m) _const_; +const char* manager_get_confirm_spawn(Manager *m); +void manager_disable_confirm_spawn(void); + +const char* manager_state_to_string(ManagerState m) _const_; ManagerState manager_state_from_string(const char *s) _pure_; -const char *manager_get_confirm_spawn(Manager *m); -void manager_disable_confirm_spawn(void); +const char* manager_objective_to_string(ManagerObjective m) _const_; +ManagerObjective manager_objective_from_string(const char *s) _pure_; -const char *manager_timestamp_to_string(ManagerTimestamp m) _const_; +const char* manager_timestamp_to_string(ManagerTimestamp m) _const_; ManagerTimestamp manager_timestamp_from_string(const char *s) _pure_; ManagerTimestamp manager_timestamp_initrd_mangle(ManagerTimestamp s);