summaryrefslogtreecommitdiff
path: root/src/shared
diff options
context:
space:
mode:
Diffstat (limited to 'src/shared')
-rw-r--r--src/shared/unit-name.c10
-rw-r--r--src/shared/unit-name.h14
2 files changed, 24 insertions, 0 deletions
diff --git a/src/shared/unit-name.c b/src/shared/unit-name.c
index cbe0b05377..3e437b77a1 100644
--- a/src/shared/unit-name.c
+++ b/src/shared/unit-name.c
@@ -48,6 +48,16 @@ static const char* const unit_type_table[_UNIT_TYPE_MAX] = {
DEFINE_STRING_TABLE_LOOKUP(unit_type, UnitType);
+static const char* const unit_load_state_table[_UNIT_LOAD_STATE_MAX] = {
+ [UNIT_STUB] = "stub",
+ [UNIT_LOADED] = "loaded",
+ [UNIT_ERROR] = "error",
+ [UNIT_MERGED] = "merged",
+ [UNIT_MASKED] = "masked"
+};
+
+DEFINE_STRING_TABLE_LOOKUP(unit_load_state, UnitLoadState);
+
bool unit_name_is_valid(const char *n, bool template_ok) {
const char *e, *i, *at;
diff --git a/src/shared/unit-name.h b/src/shared/unit-name.h
index cd30d65e3a..c6c09dd31f 100644
--- a/src/shared/unit-name.h
+++ b/src/shared/unit-name.h
@@ -27,6 +27,7 @@
#define UNIT_NAME_MAX 256
typedef enum UnitType UnitType;
+typedef enum UnitLoadState UnitLoadState;
enum UnitType {
UNIT_SERVICE = 0,
@@ -43,9 +44,22 @@ enum UnitType {
_UNIT_TYPE_INVALID = -1
};
+enum UnitLoadState {
+ UNIT_STUB,
+ UNIT_LOADED,
+ UNIT_ERROR,
+ UNIT_MERGED,
+ UNIT_MASKED,
+ _UNIT_LOAD_STATE_MAX,
+ _UNIT_LOAD_STATE_INVALID = -1
+};
+
const char *unit_type_to_string(UnitType i);
UnitType unit_type_from_string(const char *s);
+const char *unit_load_state_to_string(UnitLoadState i);
+UnitLoadState unit_load_state_from_string(const char *s);
+
int unit_name_to_instance(const char *n, char **instance);
char* unit_name_to_prefix(const char *n);
char* unit_name_to_prefix_and_instance(const char *n);