Name |
Date |
Size |
#Lines |
LOC |
||
---|---|---|---|---|---|---|
.. | - | - | ||||
docs/ | 03-May-2024 | - | 187 | 152 | ||
python/ | 03-May-2024 | - | 662 | 526 | ||
.gitignore | D | 03-May-2024 | 45 | 7 | 6 | |
COPYING | D | 03-May-2024 | 25.8 KiB | 505 | 418 | |
Makefile | D | 03-May-2024 | 332 | 14 | 5 | |
README | D | 03-May-2024 | 1.3 KiB | 59 | 42 | |
libkmod-builtin.c | D | 03-May-2024 | 6.2 KiB | 331 | 237 | |
libkmod-config.c | D | 03-May-2024 | 27.8 KiB | 1,196 | 835 | |
libkmod-elf.c | D | 03-May-2024 | 27.9 KiB | 1,215 | 988 | |
libkmod-file.c | D | 03-May-2024 | 10.5 KiB | 524 | 435 | |
libkmod-index.c | D | 03-May-2024 | 23.1 KiB | 1,083 | 738 | |
libkmod-index.h | D | 03-May-2024 | 1.7 KiB | 49 | 22 | |
libkmod-internal.h | D | 03-May-2024 | 10.4 KiB | 206 | 162 | |
libkmod-list.c | D | 03-May-2024 | 6.8 KiB | 315 | 186 | |
libkmod-module.c | D | 03-May-2024 | 70.5 KiB | 2,929 | 1,768 | |
libkmod-signature.c | D | 03-May-2024 | 8.3 KiB | 364 | 272 | |
libkmod.c | D | 03-May-2024 | 22.7 KiB | 980 | 625 | |
libkmod.h | D | 03-May-2024 | 9.2 KiB | 266 | 172 | |
libkmod.pc.in | D | 03-May-2024 | 270 | 12 | 10 | |
libkmod.sym | D | 03-May-2024 | 2 KiB | 94 | 83 |
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