X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Fbasic%2Funit-name.h;h=c23ccc803d66a5a98355a532649e994297651fa4;hp=b2043d0870b0f9deb2a9219bc786bacfb071354a;hb=dfc15f0ea42513f256e636ee78991e637b67be34;hpb=1cfc78c91965df340cdde100ad6cb3ed50b28927 diff --git a/src/basic/unit-name.h b/src/basic/unit-name.h index b2043d087..c23ccc803 100644 --- a/src/basic/unit-name.h +++ b/src/basic/unit-name.h @@ -27,11 +27,7 @@ #define UNIT_NAME_MAX 256 -typedef enum UnitType UnitType; -typedef enum UnitLoadState UnitLoadState; -typedef enum UnitDependency UnitDependency; - -enum UnitType { +typedef enum UnitType { UNIT_SERVICE = 0, UNIT_SOCKET, UNIT_BUSNAME, @@ -47,9 +43,11 @@ enum UnitType { UNIT_SCOPE, _UNIT_TYPE_MAX, _UNIT_TYPE_INVALID = -1 -}; +} UnitType; -enum UnitLoadState { +/// UNNEEDED by elogind +#if 0 +typedef enum UnitLoadState { UNIT_STUB = 0, UNIT_LOADED, UNIT_NOT_FOUND, @@ -58,9 +56,176 @@ enum UnitLoadState { UNIT_MASKED, _UNIT_LOAD_STATE_MAX, _UNIT_LOAD_STATE_INVALID = -1 -}; - -enum UnitDependency { +} UnitLoadState; + +typedef enum UnitActiveState { + UNIT_ACTIVE, + UNIT_RELOADING, + UNIT_INACTIVE, + UNIT_FAILED, + UNIT_ACTIVATING, + UNIT_DEACTIVATING, + _UNIT_ACTIVE_STATE_MAX, + _UNIT_ACTIVE_STATE_INVALID = -1 +} UnitActiveState; + +typedef enum AutomountState { + AUTOMOUNT_DEAD, + AUTOMOUNT_WAITING, + AUTOMOUNT_RUNNING, + AUTOMOUNT_FAILED, + _AUTOMOUNT_STATE_MAX, + _AUTOMOUNT_STATE_INVALID = -1 +} AutomountState; + +typedef enum BusNameState { + BUSNAME_DEAD, + BUSNAME_MAKING, + BUSNAME_REGISTERED, + BUSNAME_LISTENING, + BUSNAME_RUNNING, + BUSNAME_SIGTERM, + BUSNAME_SIGKILL, + BUSNAME_FAILED, + _BUSNAME_STATE_MAX, + _BUSNAME_STATE_INVALID = -1 +} BusNameState; + +/* We simply watch devices, we cannot plug/unplug them. That + * simplifies the state engine greatly */ +typedef enum DeviceState { + DEVICE_DEAD, + DEVICE_TENTATIVE, /* mounted or swapped, but not (yet) announced by udev */ + DEVICE_PLUGGED, /* announced by udev */ + _DEVICE_STATE_MAX, + _DEVICE_STATE_INVALID = -1 +} DeviceState; + +typedef enum MountState { + MOUNT_DEAD, + MOUNT_MOUNTING, /* /usr/bin/mount is running, but the mount is not done yet. */ + MOUNT_MOUNTING_DONE, /* /usr/bin/mount is running, and the mount is done. */ + MOUNT_MOUNTED, + MOUNT_REMOUNTING, + MOUNT_UNMOUNTING, + MOUNT_MOUNTING_SIGTERM, + MOUNT_MOUNTING_SIGKILL, + MOUNT_REMOUNTING_SIGTERM, + MOUNT_REMOUNTING_SIGKILL, + MOUNT_UNMOUNTING_SIGTERM, + MOUNT_UNMOUNTING_SIGKILL, + MOUNT_FAILED, + _MOUNT_STATE_MAX, + _MOUNT_STATE_INVALID = -1 +} MountState; + +typedef enum PathState { + PATH_DEAD, + PATH_WAITING, + PATH_RUNNING, + PATH_FAILED, + _PATH_STATE_MAX, + _PATH_STATE_INVALID = -1 +} PathState; + +typedef enum ScopeState { + SCOPE_DEAD, + SCOPE_RUNNING, + SCOPE_ABANDONED, + SCOPE_STOP_SIGTERM, + SCOPE_STOP_SIGKILL, + SCOPE_FAILED, + _SCOPE_STATE_MAX, + _SCOPE_STATE_INVALID = -1 +} ScopeState; + +typedef enum ServiceState { + SERVICE_DEAD, + SERVICE_START_PRE, + SERVICE_START, + SERVICE_START_POST, + SERVICE_RUNNING, + SERVICE_EXITED, /* Nothing is running anymore, but RemainAfterExit is true hence this is OK */ + SERVICE_RELOAD, + SERVICE_STOP, /* No STOP_PRE state, instead just register multiple STOP executables */ + SERVICE_STOP_SIGABRT, /* Watchdog timeout */ + SERVICE_STOP_SIGTERM, + SERVICE_STOP_SIGKILL, + SERVICE_STOP_POST, + SERVICE_FINAL_SIGTERM, /* In case the STOP_POST executable hangs, we shoot that down, too */ + SERVICE_FINAL_SIGKILL, + SERVICE_FAILED, + SERVICE_AUTO_RESTART, + _SERVICE_STATE_MAX, + _SERVICE_STATE_INVALID = -1 +} ServiceState; + +typedef enum SliceState { + SLICE_DEAD, + SLICE_ACTIVE, + _SLICE_STATE_MAX, + _SLICE_STATE_INVALID = -1 +} SliceState; + +typedef enum SnapshotState { + SNAPSHOT_DEAD, + SNAPSHOT_ACTIVE, + _SNAPSHOT_STATE_MAX, + _SNAPSHOT_STATE_INVALID = -1 +} SnapshotState; + +typedef enum SocketState { + SOCKET_DEAD, + SOCKET_START_PRE, + SOCKET_START_CHOWN, + SOCKET_START_POST, + SOCKET_LISTENING, + SOCKET_RUNNING, + SOCKET_STOP_PRE, + SOCKET_STOP_PRE_SIGTERM, + SOCKET_STOP_PRE_SIGKILL, + SOCKET_STOP_POST, + SOCKET_FINAL_SIGTERM, + SOCKET_FINAL_SIGKILL, + SOCKET_FAILED, + _SOCKET_STATE_MAX, + _SOCKET_STATE_INVALID = -1 +} SocketState; + +typedef enum SwapState { + SWAP_DEAD, + SWAP_ACTIVATING, /* /sbin/swapon is running, but the swap not yet enabled. */ + SWAP_ACTIVATING_DONE, /* /sbin/swapon is running, and the swap is done. */ + SWAP_ACTIVE, + SWAP_DEACTIVATING, + SWAP_ACTIVATING_SIGTERM, + SWAP_ACTIVATING_SIGKILL, + SWAP_DEACTIVATING_SIGTERM, + SWAP_DEACTIVATING_SIGKILL, + SWAP_FAILED, + _SWAP_STATE_MAX, + _SWAP_STATE_INVALID = -1 +} SwapState; + + +typedef enum TargetState { + TARGET_DEAD, + TARGET_ACTIVE, + _TARGET_STATE_MAX, + _TARGET_STATE_INVALID = -1 +} TargetState; + +typedef enum TimerState { + TIMER_DEAD, + TIMER_WAITING, + TIMER_RUNNING, + TIMER_ELAPSED, + TIMER_FAILED, + _TIMER_STATE_MAX, + _TIMER_STATE_INVALID = -1 +} TimerState; + +typedef enum UnitDependency { /* Positive dependencies */ UNIT_REQUIRES, UNIT_REQUIRES_OVERRIDABLE, @@ -107,7 +272,8 @@ enum UnitDependency { _UNIT_DEPENDENCY_MAX, _UNIT_DEPENDENCY_INVALID = -1 -}; +} UnitDependency; +#endif // 0 typedef enum UnitNameFlags { UNIT_NAME_PLAIN = 1, /* Allow foo.service */ @@ -121,37 +287,45 @@ bool unit_prefix_is_valid(const char *p) _pure_; bool unit_instance_is_valid(const char *i) _pure_; bool unit_suffix_is_valid(const char *s) _pure_; +/// UNNEEDED by elogind +#if 0 static inline int unit_prefix_and_instance_is_valid(const char *p) { /* For prefix+instance and instance the same rules apply */ return unit_instance_is_valid(p); } +#endif // 0 -int unit_name_to_prefix(const char *n, char **prefix); -int unit_name_to_instance(const char *n, char **instance); -int unit_name_to_prefix_and_instance(const char *n, char **ret); +// UNNEEDED int unit_name_to_prefix(const char *n, char **prefix); +// UNNEEDED int unit_name_to_instance(const char *n, char **instance); +// UNNEEDED int unit_name_to_prefix_and_instance(const char *n, char **ret); -UnitType unit_name_to_type(const char *n) _pure_; +// UNNEEDED UnitType unit_name_to_type(const char *n) _pure_; -int unit_name_change_suffix(const char *n, const char *suffix, char **ret); +// UNNEEDED int unit_name_change_suffix(const char *n, const char *suffix, char **ret); int unit_name_build(const char *prefix, const char *instance, const char *suffix, char **ret); -char *unit_name_escape(const char *f); -int unit_name_unescape(const char *f, char **ret); -int unit_name_path_escape(const char *f, char **ret); -int unit_name_path_unescape(const char *f, char **ret); +// UNNEEDED char *unit_name_escape(const char *f); +// UNNEEDED int unit_name_unescape(const char *f, char **ret); +// UNNEEDED int unit_name_path_escape(const char *f, char **ret); +// UNNEEDED int unit_name_path_unescape(const char *f, char **ret); + +// UNNEEDED int unit_name_replace_instance(const char *f, const char *i, char **ret); -int unit_name_replace_instance(const char *f, const char *i, char **ret); +// UNNEEDED int unit_name_template(const char *f, char **ret); -int unit_name_template(const char *f, char **ret); +// UNNEEDED int unit_name_from_path(const char *path, const char *suffix, char **ret); +// UNNEEDED int unit_name_from_path_instance(const char *prefix, const char *path, const char *suffix, char **ret); +// UNNEEDED int unit_name_to_path(const char *name, char **ret); -int unit_name_from_path(const char *path, const char *suffix, char **ret); -int unit_name_from_path_instance(const char *prefix, const char *path, const char *suffix, char **ret); -int unit_name_to_path(const char *name, char **ret); +// UNNEEDED char *unit_dbus_path_from_name(const char *name); +// UNNEEDED int unit_name_from_dbus_path(const char *path, char **name); -char *unit_dbus_path_from_name(const char *name); -int unit_name_from_dbus_path(const char *path, char **name); +// UNNEEDED const char* unit_dbus_interface_from_type(UnitType t); +// UNNEEDED const char *unit_dbus_interface_from_name(const char *name); +/// UNNEEDED by elogind +#if 0 typedef enum UnitNameMangle { UNIT_NAME_NOGLOB, UNIT_NAME_GLOB, @@ -162,16 +336,59 @@ int unit_name_mangle_with_suffix(const char *name, UnitNameMangle allow_globs, c static inline int unit_name_mangle(const char *name, UnitNameMangle allow_globs, char **ret) { return unit_name_mangle_with_suffix(name, allow_globs, ".service", ret); } +#endif // 0 -int slice_build_parent_slice(const char *slice, char **ret); +// UNNEEDED int slice_build_parent_slice(const char *slice, char **ret); int slice_build_subslice(const char *slice, const char*name, char **subslice); bool slice_name_is_valid(const char *name); const char *unit_type_to_string(UnitType i) _const_; UnitType unit_type_from_string(const char *s) _pure_; -const char *unit_load_state_to_string(UnitLoadState i) _const_; -UnitLoadState unit_load_state_from_string(const char *s) _pure_; +// UNNEEDED const char *unit_load_state_to_string(UnitLoadState i) _const_; +// UNNEEDED UnitLoadState unit_load_state_from_string(const char *s) _pure_; + +// UNNEEDED const char *unit_active_state_to_string(UnitActiveState i) _const_; +// UNNEEDED UnitActiveState unit_active_state_from_string(const char *s) _pure_; + +// UNNEEDED const char* automount_state_to_string(AutomountState i) _const_; +// UNNEEDED AutomountState automount_state_from_string(const char *s) _pure_; + +// UNNEEDED const char* busname_state_to_string(BusNameState i) _const_; +// UNNEEDED BusNameState busname_state_from_string(const char *s) _pure_; + +// UNNEEDED const char* device_state_to_string(DeviceState i) _const_; +// UNNEEDED DeviceState device_state_from_string(const char *s) _pure_; + +// UNNEEDED const char* mount_state_to_string(MountState i) _const_; +// UNNEEDED MountState mount_state_from_string(const char *s) _pure_; + +// UNNEEDED const char* path_state_to_string(PathState i) _const_; +// UNNEEDED PathState path_state_from_string(const char *s) _pure_; + +// UNNEEDED const char* scope_state_to_string(ScopeState i) _const_; +// UNNEEDED ScopeState scope_state_from_string(const char *s) _pure_; + +// UNNEEDED const char* service_state_to_string(ServiceState i) _const_; +// UNNEEDED ServiceState service_state_from_string(const char *s) _pure_; + +// UNNEEDED const char* slice_state_to_string(SliceState i) _const_; +// UNNEEDED SliceState slice_state_from_string(const char *s) _pure_; + +// UNNEEDED const char* snapshot_state_to_string(SnapshotState i) _const_; +// UNNEEDED SnapshotState snapshot_state_from_string(const char *s) _pure_; + +// UNNEEDED const char* socket_state_to_string(SocketState i) _const_; +// UNNEEDED SocketState socket_state_from_string(const char *s) _pure_; + +// UNNEEDED const char* swap_state_to_string(SwapState i) _const_; +// UNNEEDED SwapState swap_state_from_string(const char *s) _pure_; + +// UNNEEDED const char* target_state_to_string(TargetState i) _const_; +// UNNEEDED TargetState target_state_from_string(const char *s) _pure_; + +// UNNEEDED const char *timer_state_to_string(TimerState i) _const_; +// UNNEEDED TimerState timer_state_from_string(const char *s) _pure_; -const char *unit_dependency_to_string(UnitDependency i) _const_; -UnitDependency unit_dependency_from_string(const char *s) _pure_; +// UNNEEDED const char *unit_dependency_to_string(UnitDependency i) _const_; +// UNNEEDED UnitDependency unit_dependency_from_string(const char *s) _pure_;