From: Gustavo Sverzut Barbieri Date: Fri, 23 Dec 2011 03:43:01 +0000 (-0200) Subject: kmod-depmod: dump aliases X-Git-Tag: v3~66 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=0d13174578f532ddff69b03e3b8d02e23a08c3d8;p=thirdparty%2Fkmod.git kmod-depmod: dump aliases --- diff --git a/tools/kmod-depmod.c b/tools/kmod-depmod.c index a5e3939e..5e10f056 100644 --- a/tools/kmod-depmod.c +++ b/tools/kmod-depmod.c @@ -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},