From: Lennart Poettering Date: Mon, 11 May 2015 20:53:54 +0000 (+0200) Subject: install: when exporting prefix InstallInfo to become UnitFileInstallInfo X-Git-Tag: v226.4~1^2~393 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=commitdiff_plain;h=15658a4bc930a9b4b9511256431c2e2383dad0f5 install: when exporting prefix InstallInfo to become UnitFileInstallInfo All other types exported from install.h should be namespaces like this, hence namespace InstallInfo the same way. Also, remove external forward definition of UnitFileScope type. --- diff --git a/src/shared/install-printf.c b/src/shared/install-printf.c index 7c25d3693..cbe984d2f 100644 --- a/src/shared/install-printf.c +++ b/src/shared/install-printf.c @@ -28,7 +28,7 @@ #include "formats-util.h" static int specifier_prefix_and_instance(char specifier, void *data, void *userdata, char **ret) { - InstallInfo *i = userdata; + UnitFileInstallInfo *i = userdata; assert(i); @@ -36,7 +36,7 @@ static int specifier_prefix_and_instance(char specifier, void *data, void *userd } static int specifier_prefix(char specifier, void *data, void *userdata, char **ret) { - InstallInfo *i = userdata; + UnitFileInstallInfo *i = userdata; assert(i); @@ -44,7 +44,7 @@ static int specifier_prefix(char specifier, void *data, void *userdata, char **r } static int specifier_instance(char specifier, void *data, void *userdata, char **ret) { - InstallInfo *i = userdata; + UnitFileInstallInfo *i = userdata; char *instance; int r; @@ -65,7 +65,7 @@ static int specifier_instance(char specifier, void *data, void *userdata, char * } static int specifier_user_name(char specifier, void *data, void *userdata, char **ret) { - InstallInfo *i = userdata; + UnitFileInstallInfo *i = userdata; const char *username; _cleanup_free_ char *tmp = NULL; char *printed = NULL; @@ -102,7 +102,7 @@ static int specifier_user_name(char specifier, void *data, void *userdata, char } -int install_full_printf(InstallInfo *i, const char *format, char **ret) { +int install_full_printf(UnitFileInstallInfo *i, const char *format, char **ret) { /* This is similar to unit_full_printf() but does not support * anything path-related. diff --git a/src/shared/install-printf.h b/src/shared/install-printf.h index 6ffa488b1..655033782 100644 --- a/src/shared/install-printf.h +++ b/src/shared/install-printf.h @@ -22,4 +22,5 @@ #pragma once #include "install.h" -int install_full_printf(InstallInfo *i, const char *format, char **ret); + +int install_full_printf(UnitFileInstallInfo *i, const char *format, char **ret); diff --git a/src/shared/install.c b/src/shared/install.c index 9648c641d..dc4cc62ff 100644 --- a/src/shared/install.c +++ b/src/shared/install.c @@ -809,7 +809,7 @@ void unit_file_changes_free(UnitFileChange *changes, unsigned n_changes) { free(changes); } -static void install_info_free(InstallInfo *i) { +static void install_info_free(UnitFileInstallInfo *i) { assert(i); free(i->name); @@ -823,7 +823,7 @@ static void install_info_free(InstallInfo *i) { } static void install_info_hashmap_free(OrderedHashmap *m) { - InstallInfo *i; + UnitFileInstallInfo *i; if (!m) return; @@ -847,7 +847,7 @@ static int install_info_add( InstallContext *c, const char *name, const char *path) { - InstallInfo *i = NULL; + UnitFileInstallInfo *i = NULL; int r; assert(c); @@ -867,7 +867,7 @@ static int install_info_add( if (r < 0) return r; - i = new0(InstallInfo, 1); + i = new0(UnitFileInstallInfo, 1); if (!i) return -ENOMEM; @@ -926,7 +926,7 @@ static int config_parse_also( size_t l; const char *word, *state; InstallContext *c = data; - InstallInfo *i = userdata; + UnitFileInstallInfo *i = userdata; assert(filename); assert(lvalue); @@ -967,7 +967,7 @@ static int config_parse_user( void *data, void *userdata) { - InstallInfo *i = data; + UnitFileInstallInfo *i = data; char *printed; int r; @@ -997,7 +997,7 @@ static int config_parse_default_instance( void *data, void *userdata) { - InstallInfo *i = data; + UnitFileInstallInfo *i = data; char *printed; int r; @@ -1022,7 +1022,7 @@ static int config_parse_default_instance( static int unit_file_load( InstallContext *c, - InstallInfo *info, + UnitFileInstallInfo *info, const char *path, const char *root_dir, bool allow_symlink, @@ -1082,7 +1082,7 @@ static int unit_file_load( static int unit_file_search( InstallContext *c, - InstallInfo *info, + UnitFileInstallInfo *info, const LookupPaths *paths, const char *root_dir, bool allow_symlink, @@ -1159,7 +1159,7 @@ static int unit_file_can_install( bool *also) { _cleanup_(install_context_done) InstallContext c = {}; - InstallInfo *i; + UnitFileInstallInfo *i; int r; assert(paths); @@ -1226,7 +1226,7 @@ static int create_symlink( } static int install_info_symlink_alias( - InstallInfo *i, + UnitFileInstallInfo *i, const char *config_path, bool force, UnitFileChange **changes, @@ -1258,7 +1258,7 @@ static int install_info_symlink_alias( } static int install_info_symlink_wants( - InstallInfo *i, + UnitFileInstallInfo *i, const char *config_path, char **list, const char *suffix, @@ -1315,7 +1315,7 @@ static int install_info_symlink_wants( } static int install_info_symlink_link( - InstallInfo *i, + UnitFileInstallInfo *i, const LookupPaths *paths, const char *config_path, const char *root_dir, @@ -1343,7 +1343,7 @@ static int install_info_symlink_link( } static int install_info_apply( - InstallInfo *i, + UnitFileInstallInfo *i, const LookupPaths *paths, const char *config_path, const char *root_dir, @@ -1383,7 +1383,7 @@ static int install_context_apply( UnitFileChange **changes, unsigned *n_changes) { - InstallInfo *i; + UnitFileInstallInfo *i; int r, q; assert(c); @@ -1428,7 +1428,7 @@ static int install_context_mark_for_removal( const char *config_path, const char *root_dir) { - InstallInfo *i; + UnitFileInstallInfo *i; int r, q; assert(c); @@ -1513,7 +1513,7 @@ int unit_file_add_dependency( _cleanup_free_ char *config_path = NULL; char **i; int r; - InstallInfo *info; + UnitFileInstallInfo *info; assert(scope >= 0); assert(scope < _UNIT_FILE_SCOPE_MAX); @@ -1702,7 +1702,7 @@ int unit_file_set_default( _cleanup_free_ char *config_path = NULL; char *path; int r; - InstallInfo *i = NULL; + UnitFileInstallInfo *i = NULL; assert(scope >= 0); assert(scope < _UNIT_FILE_SCOPE_MAX); diff --git a/src/shared/install.h b/src/shared/install.h index 3ca39397e..45eca4266 100644 --- a/src/shared/install.h +++ b/src/shared/install.h @@ -21,19 +21,27 @@ along with systemd; If not, see . ***/ +typedef enum UnitFileScope UnitFileScope; +typedef enum UnitFileState UnitFileState; +typedef enum UnitFilePresetMode UnitFilePresetMode; +typedef enum UnitFileChangeType UnitFileChangeType; +typedef struct UnitFileChange UnitFileChange; +typedef struct UnitFileList UnitFileList; +typedef struct UnitFileInstallInfo UnitFileInstallInfo; + #include "hashmap.h" #include "unit-name.h" #include "path-lookup.h" -typedef enum UnitFileScope { +enum UnitFileScope { UNIT_FILE_SYSTEM, UNIT_FILE_GLOBAL, UNIT_FILE_USER, _UNIT_FILE_SCOPE_MAX, _UNIT_FILE_SCOPE_INVALID = -1 -} UnitFileScope; +}; -typedef enum UnitFileState { +enum UnitFileState { UNIT_FILE_ENABLED, UNIT_FILE_ENABLED_RUNTIME, UNIT_FILE_LINKED, @@ -46,35 +54,35 @@ typedef enum UnitFileState { UNIT_FILE_INVALID, _UNIT_FILE_STATE_MAX, _UNIT_FILE_STATE_INVALID = -1 -} UnitFileState; +}; -typedef enum UnitFilePresetMode { +enum UnitFilePresetMode { UNIT_FILE_PRESET_FULL, UNIT_FILE_PRESET_ENABLE_ONLY, UNIT_FILE_PRESET_DISABLE_ONLY, _UNIT_FILE_PRESET_MAX, _UNIT_FILE_PRESET_INVALID = -1 -} UnitFilePresetMode; +}; -typedef enum UnitFileChangeType { +enum UnitFileChangeType { UNIT_FILE_SYMLINK, UNIT_FILE_UNLINK, _UNIT_FILE_CHANGE_TYPE_MAX, _UNIT_FILE_CHANGE_TYPE_INVALID = -1 -} UnitFileChangeType; +}; -typedef struct UnitFileChange { +struct UnitFileChange { UnitFileChangeType type; char *path; char *source; -} UnitFileChange; +}; -typedef struct UnitFileList { +struct UnitFileList { char *path; UnitFileState state; -} UnitFileList; +}; -typedef struct { +struct UnitFileInstallInfo { char *name; char *path; char *user; @@ -85,7 +93,7 @@ typedef struct { char **also; char *default_instance; -} InstallInfo; +}; int unit_file_enable(UnitFileScope scope, bool runtime, const char *root_dir, char **files, bool force, UnitFileChange **changes, unsigned *n_changes); int unit_file_disable(UnitFileScope scope, bool runtime, const char *root_dir, char **files, UnitFileChange **changes, unsigned *n_changes); diff --git a/src/shared/path-lookup.h b/src/shared/path-lookup.h index 31b2df3c1..e35c8d3c0 100644 --- a/src/shared/path-lookup.h +++ b/src/shared/path-lookup.h @@ -23,8 +23,6 @@ #include "macro.h" -typedef enum UnitFileScope UnitFileScope; - typedef struct LookupPaths { char **unit_path; #ifdef HAVE_SYSV_COMPAT @@ -52,9 +50,12 @@ int lookup_paths_init(LookupPaths *p, const char *generator, const char *generator_early, const char *generator_late); -void lookup_paths_free(LookupPaths *p); + +#include "install.h" + int lookup_paths_init_from_scope(LookupPaths *paths, UnitFileScope scope, const char *root_dir); +void lookup_paths_free(LookupPaths *p); #define _cleanup_lookup_paths_free_ _cleanup_(lookup_paths_free)