]> git.ipfire.org Git - thirdparty/kmod.git/commitdiff
Refactor index file handling
authorLucas De Marchi <lucas.demarchi@profusion.mobi>
Thu, 8 Dec 2011 16:56:48 +0000 (14:56 -0200)
committerLucas De Marchi <lucas.demarchi@profusion.mobi>
Thu, 8 Dec 2011 21:51:06 +0000 (19:51 -0200)
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.

libkmod/libkmod.c

index 79dd4707af9e27624fbf3230d38276a57d6b5f82..1fb832004d6130aabc7722c368027cf4142a5697 100644 (file)
  * 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;