]> git.ipfire.org Git - thirdparty/kmod.git/commitdiff
kmod-depmod: dump aliases
authorGustavo Sverzut Barbieri <barbieri@profusion.mobi>
Fri, 23 Dec 2011 03:43:01 +0000 (01:43 -0200)
committerLucas De Marchi <lucas.demarchi@profusion.mobi>
Tue, 27 Dec 2011 14:09:16 +0000 (12:09 -0200)
tools/kmod-depmod.c

index a5e3939e6011ceade36d19b6a95563ced685d83e..5e10f0563b54aa484303755175e291239bb74be2 100644 (file)
@@ -1676,6 +1676,34 @@ static int depmod_load(struct depmod *depmod)
        return 0;
 }
 
+static int output_aliases(struct depmod *depmod, FILE *out)
+{
+       size_t i;
+
+       fputs("# Aliases extracted from modules themselves.\n", out);
+
+       for (i = 0; i < depmod->modules.count; i++) {
+               const struct mod *mod = depmod->modules.array[i];
+               struct kmod_list *l, *list = NULL;
+               int r = kmod_module_get_info(mod->kmod, &list);
+               if (r < 0 || list == NULL)
+                       continue;
+               kmod_list_foreach(l, list) {
+                       const char *key = kmod_module_info_get_key(l);
+                       const char *value = kmod_module_info_get_value(l);
+
+                       if (!streq(key, "alias"))
+                               continue;
+
+                       fprintf(out, "alias %s %s\n",
+                               value, kmod_module_get_name(mod->kmod));
+               }
+               kmod_module_info_free_list(list);
+       }
+
+       return 0;
+}
+
 static int output_softdeps(struct depmod *depmod, FILE *out)
 {
        size_t i;
@@ -1789,7 +1817,7 @@ static int depmod_output(struct depmod *depmod, FILE *out)
        } *itr, depfiles[] = {
                //{"modules.dep", output_deps},
                //{"modules.dep.bin", output_deps_bin},
-               //{"modules.alias", output_aliases},
+               {"modules.alias", output_aliases},
                //{"modules.alias.bin", output_aliases_bin},
                {"modules.softdep", output_softdeps},
                {"modules.symbols", output_symbols},