From fa29c0ee96cb9cd12654487c7dafb607780eb63d Mon Sep 17 00:00:00 2001 From: Lucas De Marchi Date: Thu, 22 Dec 2011 03:54:46 -0200 Subject: [PATCH] tools: kmod: Add handling of compat modprobe --- Makefile.am | 2 +- tools/kmod-modprobe.c | 19 ++++++++++++++++++- tools/kmod.c | 1 + tools/kmod.h | 1 + 4 files changed, 21 insertions(+), 2 deletions(-) diff --git a/Makefile.am b/Makefile.am index 1752abe..9523d71 100644 --- a/Makefile.am +++ b/Makefile.am @@ -92,7 +92,7 @@ tools_kmod_modinfo_LDADD = libkmod/libkmod.la tools_kmod_SOURCES = tools/kmod.c tools/kmod.h tools/kmod-lsmod.c \ tools/kmod-rmmod.c tools/kmod-insmod.c \ - tools/kmod-modinfo.c + tools/kmod-modinfo.c tools/kmod-modprobe.c tools_kmod_CPPFLAGS = $(AM_CPPFLAGS) -DKMOD_BUNDLE_TOOL=1 tools_kmod_LDADD = libkmod/libkmod.la endif diff --git a/tools/kmod-modprobe.c b/tools/kmod-modprobe.c index 2e4efcb..53efa08 100644 --- a/tools/kmod-modprobe.c +++ b/tools/kmod-modprobe.c @@ -1088,7 +1088,7 @@ static void log_syslog(void *data, int priority, const char *file, int line, (void)data; } -int main(int argc, char **orig_argv) +static int do_modprobe(int argc, char **orig_argv) { struct kmod_ctx *ctx; char **args = NULL, **argv; @@ -1307,3 +1307,20 @@ cmdline_failed: free(config_paths); return EXIT_FAILURE; } + +#ifndef KMOD_BUNDLE_TOOL +int main(int argc, char *argv[]) +{ + return do_modprobe(argc, argv); +} + +#else +#include "kmod.h" + +const struct kmod_cmd kmod_cmd_compat_modprobe = { + .name = "modprobe", + .cmd = do_modprobe, + .help = "compat modprobe command", +}; + +#endif diff --git a/tools/kmod.c b/tools/kmod.c index 0e6c063..1d48b3f 100644 --- a/tools/kmod.c +++ b/tools/kmod.c @@ -43,6 +43,7 @@ static const struct kmod_cmd *kmod_compat_cmds[] = { &kmod_cmd_compat_rmmod, &kmod_cmd_compat_insmod, &kmod_cmd_compat_modinfo, + &kmod_cmd_compat_modprobe, }; static int kmod_help(int argc, char *argv[]) diff --git a/tools/kmod.h b/tools/kmod.h index 62be697..5bab760 100644 --- a/tools/kmod.h +++ b/tools/kmod.h @@ -31,5 +31,6 @@ extern const struct kmod_cmd kmod_cmd_compat_lsmod; extern const struct kmod_cmd kmod_cmd_compat_rmmod; extern const struct kmod_cmd kmod_cmd_compat_insmod; extern const struct kmod_cmd kmod_cmd_compat_modinfo; +extern const struct kmod_cmd kmod_cmd_compat_modprobe; #endif -- 2.7.4