From ad6026965f8c13c8b16fe2a49ea697bc67d14f2e Mon Sep 17 00:00:00 2001 From: Lucas De Marchi Date: Thu, 22 Dec 2011 03:45:07 -0200 Subject: [PATCH] tools: kmod: Add handling of compat insmod --- Makefile.am | 2 +- tools/kmod-insmod.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 184ecc8..32c4173 100644 --- a/Makefile.am +++ b/Makefile.am @@ -91,7 +91,7 @@ tools_kmod_modprobe_LDADD = libkmod/libkmod.la 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-rmmod.c tools/kmod-insmod.c tools_kmod_CPPFLAGS = $(AM_CPPFLAGS) -DKMOD_BUNDLE_TOOL=1 tools_kmod_LDADD = libkmod/libkmod.la endif diff --git a/tools/kmod-insmod.c b/tools/kmod-insmod.c index 33364fa..b071109 100644 --- a/tools/kmod-insmod.c +++ b/tools/kmod-insmod.c @@ -59,7 +59,7 @@ static const char *mod_strerror(int err) } } -int main(int argc, char *argv[]) +static int do_insmod(int argc, char *argv[]) { struct kmod_ctx *ctx; struct kmod_module *mod; @@ -152,3 +152,20 @@ end: free(opts); return err >= 0 ? EXIT_SUCCESS : EXIT_FAILURE; } + +#ifndef KMOD_BUNDLE_TOOL +int main(int argc, char *argv[]) +{ + return do_insmod(argc, argv); +} + +#else +#include "kmod.h" + +const struct kmod_cmd kmod_cmd_compat_insmod = { + .name = "insmod", + .cmd = do_insmod, + .help = "compat insmod command", +}; + +#endif diff --git a/tools/kmod.c b/tools/kmod.c index 4c8dc10..53469ba 100644 --- a/tools/kmod.c +++ b/tools/kmod.c @@ -41,6 +41,7 @@ static const struct kmod_cmd *kmod_cmds[] = { static const struct kmod_cmd *kmod_compat_cmds[] = { &kmod_cmd_compat_lsmod, &kmod_cmd_compat_rmmod, + &kmod_cmd_compat_insmod, }; static int kmod_help(int argc, char *argv[]) diff --git a/tools/kmod.h b/tools/kmod.h index 290d32e..ffee228 100644 --- a/tools/kmod.h +++ b/tools/kmod.h @@ -29,5 +29,6 @@ struct kmod_cmd { 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; #endif -- 2.7.4