From 0d13174578f532ddff69b03e3b8d02e23a08c3d8 Mon Sep 17 00:00:00 2001 From: Gustavo Sverzut Barbieri Date: Fri, 23 Dec 2011 01:43:01 -0200 Subject: [PATCH] kmod-depmod: dump aliases --- tools/kmod-depmod.c | 30 +++++++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/tools/kmod-depmod.c b/tools/kmod-depmod.c index a5e3939..5e10f05 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}, -- 2.7.4