aboutsummaryrefslogtreecommitdiff
path: root/libkmod
diff options
context:
space:
mode:
authorLucas De Marchi <lucas.demarchi@profusion.mobi>2011-12-08 14:56:48 -0200
committerLucas De Marchi <lucas.demarchi@profusion.mobi>2011-12-08 19:51:06 -0200
commita4a750297d9ae0e1926c0f106b955b841b38a4b3 (patch)
tree66578591a69f42e9e3c78c7dc606c7839414e776 /libkmod
parent558b0207042f72fc86549a0f411874729a886645 (diff)
downloadkmod-a4a750297d9ae0e1926c0f106b955b841b38a4b3.tar.gz
Refactor index file handling
Put all names in a static vector and declare a enum containing the number of indexes. This way it's easier to create vectors inside ctx that depend on these files.
Diffstat (limited to 'libkmod')
-rw-r--r--libkmod/libkmod.c30
1 files changed, 19 insertions, 11 deletions
diff --git a/libkmod/libkmod.c b/libkmod/libkmod.c
index 79dd470..1fb8320 100644
--- a/libkmod/libkmod.c
+++ b/libkmod/libkmod.c
@@ -44,6 +44,19 @@
* and is passed to all library operations.
*/
+enum kmod_index {
+ KMOD_INDEX_DEP = 0,
+ KMOD_INDEX_ALIAS,
+ KMOD_INDEX_SYMBOL,
+ _KMOD_INDEX_LAST,
+};
+
+static const char* index_files[] = {
+ [KMOD_INDEX_DEP] = "modules.dep",
+ [KMOD_INDEX_ALIAS] = "modules.alias",
+ [KMOD_INDEX_SYMBOL] = "modules.symbols",
+};
+
/**
* kmod_ctx:
*
@@ -382,35 +395,31 @@ fail:
}
-static const char *symbols_file = "modules.symbols";
-
int kmod_lookup_alias_from_symbols_file(struct kmod_ctx *ctx, const char *name,
struct kmod_list **list)
{
if (!startswith(name, "symbol:"))
return 0;
- return kmod_lookup_alias_from_alias_bin(ctx, symbols_file, name, list);
+ return kmod_lookup_alias_from_alias_bin(ctx,
+ index_files[KMOD_INDEX_SYMBOL], name, list);
}
-
-static const char *aliases_file = "modules.alias";
-
int kmod_lookup_alias_from_aliases_file(struct kmod_ctx *ctx, const char *name,
struct kmod_list **list)
{
- return kmod_lookup_alias_from_alias_bin(ctx, aliases_file, name, list);
+ return kmod_lookup_alias_from_alias_bin(ctx,
+ index_files[KMOD_INDEX_ALIAS], name, list);
}
-static const char *moddep_file = "modules.dep";
-
char *kmod_search_moddep(struct kmod_ctx *ctx, const char *name)
{
struct index_file *idx;
char fn[PATH_MAX];
char *line;
- snprintf(fn, sizeof(fn), "%s/%s.bin", ctx->dirname, moddep_file);
+ snprintf(fn, sizeof(fn), "%s/%s.bin", ctx->dirname,
+ index_files[KMOD_INDEX_DEP]);
DBG(ctx, "file=%s modname=%s\n", fn, name);
@@ -491,7 +500,6 @@ fail:
return err;
}
-
KMOD_EXPORT int kmod_module_get_filtered_blacklist(const struct kmod_ctx *ctx, const struct kmod_list *input, struct kmod_list **output)
{
const struct kmod_config *config;