enum config_type type)
{
struct kmod_config_iter *iter = calloc(1, sizeof(*iter));
+ const struct kmod_config *config = kmod_get_config(ctx);
if (iter == NULL)
return NULL;
switch (type) {
case CONFIG_TYPE_BLACKLIST:
- iter->list = kmod_get_blacklists(ctx);
+ iter->list = config->blacklists;
iter->get_key = kmod_blacklist_get_modname;
break;
case CONFIG_TYPE_INSTALL:
- iter->list = kmod_get_install_commands(ctx);
+ iter->list = config->install_commands;
iter->get_key = kmod_command_get_modname;
iter->get_value = kmod_command_get_command;
break;
case CONFIG_TYPE_REMOVE:
- iter->list = kmod_get_remove_commands(ctx);
+ iter->list = config->remove_commands;
iter->get_key = kmod_command_get_modname;
iter->get_value = kmod_command_get_command;
break;
case CONFIG_TYPE_ALIAS:
- iter->list = kmod_get_aliases(ctx);
+ iter->list = config->aliases;
iter->get_key = kmod_alias_get_name;
iter->get_value = kmod_alias_get_modname;
break;
case CONFIG_TYPE_OPTION:
- iter->list = kmod_get_options(ctx);
+ iter->list = config->options;
iter->get_key = kmod_option_get_modname;
iter->get_value = kmod_option_get_options;
break;
case CONFIG_TYPE_SOFTDEP:
- iter->list = kmod_get_softdeps(ctx);
+ iter->list = config->softdeps;
iter->get_key = kmod_softdep_get_name;
iter->get_value = softdep_get_plain_softdep;
iter->intermediate = true;
static bool module_is_blacklisted(struct kmod_module *mod)
{
struct kmod_ctx *ctx = mod->ctx;
- const struct kmod_list *bl = kmod_get_blacklists(ctx);
+ const struct kmod_config *config = kmod_get_config(ctx);
+ const struct kmod_list *bl = config->blacklists;
const struct kmod_list *l;
kmod_list_foreach(l, bl) {
if (!mod->init.options) {
/* lazy init */
struct kmod_module *m = (struct kmod_module *)mod;
- const struct kmod_list *l, *ctx_options;
+ const struct kmod_list *l;
+ const struct kmod_config *config;
char *opts = NULL;
size_t optslen = 0;
- ctx_options = kmod_get_options(mod->ctx);
+ config = kmod_get_config(mod->ctx);
- kmod_list_foreach(l, ctx_options) {
+ kmod_list_foreach(l, config->options) {
const char *modname = kmod_option_get_modname(l);
const char *str;
size_t len;
if (!mod->init.install_commands) {
/* lazy init */
struct kmod_module *m = (struct kmod_module *)mod;
- const struct kmod_list *l, *ctx_install_commands;
+ const struct kmod_list *l;
+ const struct kmod_config *config;
- ctx_install_commands = kmod_get_install_commands(mod->ctx);
+ config = kmod_get_config(mod->ctx);
- kmod_list_foreach(l, ctx_install_commands) {
+ kmod_list_foreach(l, config->install_commands) {
const char *modname = kmod_command_get_modname(l);
if (fnmatch(modname, mod->name, 0) != 0)
struct kmod_list **pre,
struct kmod_list **post)
{
- const struct kmod_list *l, *ctx_softdeps;
+ const struct kmod_list *l;
+ const struct kmod_config *config;
if (mod == NULL || pre == NULL || post == NULL)
return -ENOENT;
assert(*pre == NULL);
assert(*post == NULL);
- ctx_softdeps = kmod_get_softdeps(mod->ctx);
+ config = kmod_get_config(mod->ctx);
- kmod_list_foreach(l, ctx_softdeps) {
+ kmod_list_foreach(l, config->softdeps) {
const char *modname = kmod_softdep_get_name(l);
const char * const *array;
unsigned count;
if (!mod->init.remove_commands) {
/* lazy init */
struct kmod_module *m = (struct kmod_module *)mod;
- const struct kmod_list *l, *ctx_remove_commands;
+ const struct kmod_list *l;
+ const struct kmod_config *config;
- ctx_remove_commands = kmod_get_remove_commands(mod->ctx);
+ config = kmod_get_config(mod->ctx);
- kmod_list_foreach(l, ctx_remove_commands) {
+ kmod_list_foreach(l, config->remove_commands) {
const char *modname = kmod_command_get_modname(l);
if (fnmatch(modname, mod->name, 0) != 0)
void kmod_pool_add_module(struct kmod_ctx *ctx, struct kmod_module *mod, const char *key) __attribute__((nonnull(1,2, 3)));
void kmod_pool_del_module(struct kmod_ctx *ctx, struct kmod_module *mod, const char *key) __attribute__((nonnull(1,2, 3)));
-const struct kmod_list *kmod_get_blacklists(const struct kmod_ctx *ctx) _must_check_ __attribute__((nonnull(1)));
-const struct kmod_list *kmod_get_options(const struct kmod_ctx *ctx) _must_check_ __attribute__((nonnull(1)));
-const struct kmod_list *kmod_get_install_commands(const struct kmod_ctx *ctx) _must_check_ __attribute__((nonnull(1)));
-const struct kmod_list *kmod_get_remove_commands(const struct kmod_ctx *ctx) _must_check_ __attribute__((nonnull(1)));
-const struct kmod_list *kmod_get_softdeps(const struct kmod_ctx *ctx) _must_check_ __attribute__((nonnull(1)));
-const struct kmod_list *kmod_get_aliases(const struct kmod_ctx *ctx) _must_check_ __attribute__((nonnull(1)));
-
+const struct kmod_config *kmod_get_config(const struct kmod_ctx *ctx) __attribute__((nonnull(1)));
/* libkmod-config.c */
struct kmod_config_path {
return 0;
}
-const struct kmod_list *kmod_get_blacklists(const struct kmod_ctx *ctx)
+const struct kmod_config *kmod_get_config(const struct kmod_ctx *ctx)
{
- return ctx->config->blacklists;
-}
-
-const struct kmod_list *kmod_get_options(const struct kmod_ctx *ctx)
-{
- return ctx->config->options;
-}
-
-const struct kmod_list *kmod_get_install_commands(const struct kmod_ctx *ctx)
-{
- return ctx->config->install_commands;
-}
-
-const struct kmod_list *kmod_get_remove_commands(const struct kmod_ctx *ctx)
-{
- return ctx->config->remove_commands;
-}
-
-const struct kmod_list *kmod_get_softdeps(const struct kmod_ctx *ctx)
-{
- return ctx->config->softdeps;
-}
-
-const struct kmod_list *kmod_get_aliases(const struct kmod_ctx *ctx)
-{
- return ctx->config->aliases;
+ return ctx->config;
}