blob: 7198df073f5f0ad14962dadf9474516e9a05fab5 [file] [log] [blame]
Lucas De Marchia5494f82011-11-25 01:25:18 -02001#include <stdio.h>
2#include <stdlib.h>
3#include <stddef.h>
4#include <errno.h>
5#include <unistd.h>
6#include <inttypes.h>
7#include <string.h>
8#include <libkmod.h>
9
10
11int main(int argc, char *argv[])
12{
13 const char *path;
14 struct kmod_ctx *ctx;
15 struct kmod_module *mod;
16 int err;
17
18 if (argc < 2) {
19 fprintf(stderr, "Provide a path to a module\n");
20 return EXIT_FAILURE;
21 }
22
23 path = argv[1];
24
Gustavo Sverzut Barbiericb8d4d32011-12-11 20:37:01 -020025 ctx = kmod_new(NULL, NULL);
Lucas De Marchia5494f82011-11-25 01:25:18 -020026 if (ctx == NULL)
27 exit(EXIT_FAILURE);
28
29 printf("libkmod version %s\n", VERSION);
30
31 err = kmod_module_new_from_path(ctx, path, &mod);
Gustavo Sverzut Barbieri82260582011-12-04 21:18:21 -020032 if (err < 0) {
33 kmod_unref(ctx);
Lucas De Marchia5494f82011-11-25 01:25:18 -020034 exit(EXIT_FAILURE);
Gustavo Sverzut Barbieri82260582011-12-04 21:18:21 -020035 }
Lucas De Marchia5494f82011-11-25 01:25:18 -020036
Lucas De Marchiac9f8762011-12-08 10:57:50 -020037 printf("Trying insmod '%s' (%s)\n", kmod_module_get_name(mod),
38 kmod_module_get_path(mod));
Gustavo Sverzut Barbieri3a721bb2011-12-10 21:02:39 -020039 err = kmod_module_insert_module(mod, 0, NULL);
Lucas De Marchia5494f82011-11-25 01:25:18 -020040 if (err < 0) {
41 fprintf(stderr, "%s\n", strerror(-err));
42
43 kmod_module_unref(mod);
44 kmod_unref(ctx);
45 exit(EXIT_FAILURE);
46 }
47
48 kmod_module_unref(mod);
49 kmod_unref(ctx);
50
51 return EXIT_SUCCESS;
52}