The --resolve-alias option prints all module names that match the
alias given on the commandline and exits. If no valid alias is specified,
it does nothing.
---
doc/modprobe.sgml | 9 +++++++++
modprobe.c | 35 ++++++++++++++++++++++-------------
2 files changed, 31 insertions(+), 13 deletions(-)
diff --git a/doc/modprobe.sgml b/doc/modprobe.sgml
index fde8ca7..4f8c5ab 100644
--- a/doc/modprobe.sgml
+++ b/doc/modprobe.sgml
@@ -367,6 +367,15 @@
</listitem>
</varlistentry>
<varlistentry>
+ <term><option>--resolve-alias</option>
+ </term>
+ <listitem>
+ <para>
+ Resolve all module names matching an alias.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
<term><option>-o</option> <option>--name</option>
</term>
<listitem>
diff --git a/modprobe.c b/modprobe.c
index 21a3111..6a0da22 100644
--- a/modprobe.c
+++ b/modprobe.c
@@ -69,7 +69,8 @@ typedef enum
mit_ignore_commands = 16,
mit_ignore_loaded = 32,
mit_strip_vermagic = 64,
- mit_strip_modversion = 128
+ mit_strip_modversion = 128,
+ mit_resolve_alias = 256
} modprobe_flags_t;
@@ -1342,20 +1343,23 @@ int do_modprobe(char *modname,
if (aliases->next)
err = warn;
while (aliases) {
- /* Add the options for this alias. */
- char *opts = NOFAIL(strdup(cmdline_opts));
- opts = add_extra_options(modname,
- opts, modoptions);
-
- read_depends(dirname, aliases->module, &list);
- failed |= handle_module(aliases->module,
- &list, newname, opts, modoptions,
- commands, cmdline_opts, err, flags);
-
+ if(flags & mit_resolve_alias) {
+ info("%s\n", aliases->module);
+ } else {
+ /* Add the options for this alias. */
+ char *opts = NOFAIL(strdup(cmdline_opts));
+ opts = add_extra_options(modname,
+ opts, modoptions);
+
+ read_depends(dirname, aliases->module, &list);
+ failed |= handle_module(aliases->module,
+ &list, newname, opts, modoptions,
+ commands, cmdline_opts, err, flags);
+ INIT_LIST_HEAD(&list);
+ }
aliases = aliases->next;
- INIT_LIST_HEAD(&list);
}
- } else {
+ } else if(!(flags & mit_resolve_alias)) {
if (flags & mit_use_blacklist
&& find_blacklist(modname, blacklist))
return failed;
@@ -1373,6 +1377,7 @@ static struct option options[] = { { "version", 0, NULL,
'V' },
{ "show", 0, NULL, 'n' },
{ "dry-run", 0, NULL, 'n' },
{ "show-depends", 0, NULL, 'D' },
+ { "resolve-alias", 0, NULL, 'R' },
{ "dirname", 1, NULL, 'd' },
{ "set-version", 1, NULL, 'S' },
{ "config", 1, NULL, 'C' },
@@ -1453,6 +1458,10 @@ int main(int argc, char *argv[])
flags |= mit_ignore_loaded;
verbose = 1;
break;
+ case 'R':
+ flags |= mit_resolve_alias;
+ verbose = 1;
+ break;
case 'o':
newname = optarg;
break;
--
1.6.4.1
--
To unsubscribe from this list: send the line "unsubscribe linux-modules" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html