]> git.ipfire.org Git - thirdparty/kmod.git/blame - README
Do not use config if it's not needed/wanted
[thirdparty/kmod.git] / README
CommitLineData
91b44c77
GSB
1libkmod - linux kernel module handling library
2
3ABSTRACT
4========
5
6libkmod was created to allow programs to easily insert, remove and
7list modules, also checking its properties, dependencies and aliases.
8
9there is no shared/global context information and it can be used by
10multiple sites on a single program, also being able to be used from
11threads, although it's not thread safe (you must lock explicitly).
12
13
14OVERVIEW
15========
16
17Every user should create and manage it's own library context with:
18
19 struct kmod_ctx *ctx = kmod_new(kernel_dirname);
20 kmod_unref(ctx);
21
22
23Modules can be created with by various means:
24
25 struct kmod_module *mod;
26 int err;
27
28 err = kmod_module_new_from_path(ctx, path, &mod);
29 if (err < 0) {
30 /* code */
31 } else {
32 /* code */
33 kmod_module_unref(mod);
34 }
35
36 err = kmod_module_new_from_name(ctx, name, &mod);
37 if (err < 0) {
38 /* code */
39 } else {
40 /* code */
41 kmod_module_unref(mod);
42 }
43
44
45Or could be resolved from a known alias to a list of alternatives:
46
47 struct kmod_list *list, *itr;
48 int err;
49 err = kmod_module_new_from_lookup(ctx, alias, &list);
50 if (err < 0) {
51 /* code */
52 } else {
53 kmod_list_foreach(itr, list) {
54 struct kmod_module *mod = kmod_module_get_module(itr);
55 /* code */
56 }
57 }
58