From ce99c68a3362a2905743a0673a4c016f2b8ab1a6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= Date: Sat, 30 Apr 2016 18:34:13 -0400 Subject: [PATCH] Move no_instances information to shared/ This way it can be used in install.c in subsequent commit. --- src/core/automount.c | 2 -- src/core/busname.c | 2 -- src/core/device.c | 2 -- src/core/mount.c | 2 -- src/core/scope.c | 1 - src/core/slice.c | 1 - src/core/swap.c | 2 -- src/core/unit.c | 2 +- src/core/unit.h | 3 --- src/shared/install.c | 9 +++++++++ src/shared/install.h | 1 + 11 files changed, 11 insertions(+), 16 deletions(-) diff --git a/src/core/automount.c b/src/core/automount.c index 7374d50ae8a..1239a0efc69 100644 --- a/src/core/automount.c +++ b/src/core/automount.c @@ -1050,8 +1050,6 @@ const UnitVTable automount_vtable = { "Automount\0" "Install\0", - .no_instances = true, - .init = automount_init, .load = automount_load, .done = automount_done, diff --git a/src/core/busname.c b/src/core/busname.c index 4d43bd21e6d..e7b7b5c0125 100644 --- a/src/core/busname.c +++ b/src/core/busname.c @@ -1028,8 +1028,6 @@ const UnitVTable busname_vtable = { "Install\0", .private_section = "BusName", - .no_instances = true, - .init = busname_init, .done = busname_done, .load = busname_load, diff --git a/src/core/device.c b/src/core/device.c index d01bec53d8d..16e56efcc33 100644 --- a/src/core/device.c +++ b/src/core/device.c @@ -841,8 +841,6 @@ const UnitVTable device_vtable = { "Device\0" "Install\0", - .no_instances = true, - .init = device_init, .done = device_done, .load = unit_load_fragment_and_dropin_optional, diff --git a/src/core/mount.c b/src/core/mount.c index adc74c3bea0..c8a898e4dcd 100644 --- a/src/core/mount.c +++ b/src/core/mount.c @@ -1839,8 +1839,6 @@ const UnitVTable mount_vtable = { "Install\0", .private_section = "Mount", - .no_instances = true, - .init = mount_init, .load = mount_load, .done = mount_done, diff --git a/src/core/scope.c b/src/core/scope.c index 3915e5c88c6..238f63a7299 100644 --- a/src/core/scope.c +++ b/src/core/scope.c @@ -569,7 +569,6 @@ const UnitVTable scope_vtable = { "Install\0", .private_section = "Scope", - .no_instances = true, .can_transient = true, .init = scope_init, diff --git a/src/core/slice.c b/src/core/slice.c index 96c7c745984..c7700b8857d 100644 --- a/src/core/slice.c +++ b/src/core/slice.c @@ -309,7 +309,6 @@ const UnitVTable slice_vtable = { "Install\0", .private_section = "Slice", - .no_instances = true, .can_transient = true, .init = slice_init, diff --git a/src/core/swap.c b/src/core/swap.c index f486a44cf56..c018648d87b 100644 --- a/src/core/swap.c +++ b/src/core/swap.c @@ -1465,8 +1465,6 @@ const UnitVTable swap_vtable = { "Install\0", .private_section = "Swap", - .no_instances = true, - .init = swap_init, .load = swap_load, .done = swap_done, diff --git a/src/core/unit.c b/src/core/unit.c index 0313ee2ad3f..a2726f10a60 100644 --- a/src/core/unit.c +++ b/src/core/unit.c @@ -193,7 +193,7 @@ int unit_add_name(Unit *u, const char *text) { if (r < 0) return r; - if (i && unit_vtable[t]->no_instances) + if (i && !unit_type_may_template(t)) return -EINVAL; /* Ensure that this unit is either instanced or not instanced, diff --git a/src/core/unit.h b/src/core/unit.h index 6ac925a1851..be62e88421f 100644 --- a/src/core/unit.h +++ b/src/core/unit.h @@ -416,9 +416,6 @@ struct UnitVTable { /* The strings to print in status messages */ UnitStatusMessageFormats status_message_formats; - /* Instances make no sense for this type */ - bool no_instances:1; - /* True if transient units of this type are OK */ bool can_transient:1; }; diff --git a/src/shared/install.c b/src/shared/install.c index 1635f50fdb0..cc39aaf6773 100644 --- a/src/shared/install.c +++ b/src/shared/install.c @@ -78,6 +78,15 @@ bool unit_type_may_alias(UnitType type) { UNIT_PATH); } +bool unit_type_may_template(UnitType type) { + return IN_SET(type, + UNIT_SERVICE, + UNIT_SOCKET, + UNIT_TARGET, + UNIT_TIMER, + UNIT_PATH); +} + static int in_search_path(const LookupPaths *p, const char *path) { _cleanup_free_ char *parent = NULL; char **i; diff --git a/src/shared/install.h b/src/shared/install.h index 8a8bd09c7c3..5812447c5ba 100644 --- a/src/shared/install.h +++ b/src/shared/install.h @@ -139,6 +139,7 @@ static inline bool UNIT_FILE_INSTALL_INFO_HAS_ALSO(UnitFileInstallInfo *i) { } bool unit_type_may_alias(UnitType type) _const_; +bool unit_type_may_template(UnitType type) _const_; int unit_file_enable( UnitFileScope scope,