From b84a20608530cac426818be70bb410f0df1bb9dc Mon Sep 17 00:00:00 2001 From: Lucas De Marchi Date: Fri, 25 Nov 2011 01:24:16 -0200 Subject: [PATCH] Add test-rmmod2 Remove module without dealing with the loaded modules first. --- Makefile.am | 6 +++++- test/.gitignore | 1 + test/test-rmmod2.c | 42 ++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 48 insertions(+), 1 deletion(-) create mode 100644 test/test-rmmod2.c diff --git a/Makefile.am b/Makefile.am index db30172..13b655b 100644 --- a/Makefile.am +++ b/Makefile.am @@ -53,6 +53,10 @@ test_test_init_LDADD = libkmod/libkmod.la test_test_loaded_SOURCES = test/test-loaded.c test_test_loaded_LDADD = libkmod/libkmod.la -noinst_PROGRAMS = test/test-rmmod $(check_PROGRAMS) +noinst_PROGRAMS = test/test-rmmod test/test-rmmod2 \ + $(check_PROGRAMS) test_test_rmmod_SOURCES = test/test-rmmod.c test_test_rmmod_LDADD = libkmod/libkmod.la + +test_test_rmmod2_SOURCES = test/test-rmmod2.c +test_test_rmmod2_LDADD = libkmod/libkmod.la diff --git a/test/.gitignore b/test/.gitignore index 1cbe6b8..db1a45e 100644 --- a/test/.gitignore +++ b/test/.gitignore @@ -2,3 +2,4 @@ test-init test-loaded test-rmmod +test-rmmod2 diff --git a/test/test-rmmod2.c b/test/test-rmmod2.c new file mode 100644 index 0000000..c3585be --- /dev/null +++ b/test/test-rmmod2.c @@ -0,0 +1,42 @@ +#include +#include +#include +#include +#include +#include +#include +#include + + +int main(int argc, char *argv[]) +{ + const char *modname = NULL; + struct kmod_ctx *ctx; + struct kmod_module *mod; + int err; + + if (argc < 2) { + fprintf(stderr, "Provide a module name\n"); + return EXIT_FAILURE; + } + + modname = argv[1]; + + ctx = kmod_new(NULL); + if (ctx == NULL) + exit(EXIT_FAILURE); + + printf("libkmod version %s\n", VERSION); + + err = kmod_module_new_from_name(ctx, modname, &mod); + if (err < 0) + exit(EXIT_FAILURE); + + printf("Trying to remove '%s'\n", modname); + kmod_module_remove_module(mod, 0); + + kmod_module_unref(mod); + kmod_unref(ctx); + + return EXIT_SUCCESS; +} -- 2.7.4