gitignore: ignore release files
[platform/upstream/kmod.git] / libkmod / README
1 libkmod - linux kernel module handling library
2
3 ABSTRACT
4 ========
5
6 libkmod was created to allow programs to easily insert, remove and
7 list modules, also checking its properties, dependencies and aliases.
8
9 there is no shared/global context information and it can be used by
10 multiple sites on a single program, also being able to be used from
11 threads, although it's not thread safe (you must lock explicitly).
12
13
14 OVERVIEW
15 ========
16
17 Every 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
23 Modules can be created 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
45 Or 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