Name Date Size #Lines LOC

..--

docs/H25-Apr-2025-189154

.gitignoreH A D25-Apr-202545 76

COPYINGH A D25-Apr-202525.8 KiB505418

MakefileH A D25-Apr-2025332 145

READMEH A D25-Apr-20251.3 KiB5942

libkmod-builtin.cH A D25-Apr-20256.2 KiB331237

libkmod-config.cH A D25-Apr-202529.3 KiB1,253870

libkmod-elf.cH A D25-Apr-202527.9 KiB1,220992

libkmod-file.cH A D25-Apr-202511 KiB542444

libkmod-index.cH A D25-Apr-202523.1 KiB1,083738

libkmod-index.hH A D25-Apr-20251.7 KiB4922

libkmod-internal.hH A D25-Apr-202510.3 KiB211166

libkmod-list.cH A D25-Apr-20256.8 KiB315186

libkmod-module.cH A D25-Apr-202572.4 KiB2,9871,790

libkmod-signature.cH A D25-Apr-20258.3 KiB358264

libkmod.cH A D25-Apr-202523.9 KiB1,025660

libkmod.hH A D25-Apr-20259.4 KiB271176

libkmod.pc.inH A D25-Apr-2025270 1210

libkmod.symH A D25-Apr-20252.1 KiB9584

README

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 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
59