]>
Commit | Line | Data |
---|---|---|
586fc304 LDM |
1 | /* |
2 | * libkmod - interface to kernel module operations | |
3 | * | |
4 | * Copyright (C) 2011 ProFUSION embedded systems | |
5 | * Copyright (C) 2011 Lucas De Marchi <lucas.de.marchi@gmail.com> | |
6 | * | |
7 | * This library is free software; you can redistribute it and/or | |
8 | * modify it under the terms of the GNU Lesser General Public | |
9 | * License as published by the Free Software Foundation version 2.1. | |
10 | * | |
11 | * This library is distributed in the hope that it will be useful, | |
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
14 | * Lesser General Public License for more details. | |
15 | * | |
16 | * You should have received a copy of the GNU Lesser General Public | |
17 | * License along with this library; if not, write to the Free Software | |
18 | * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA | |
19 | */ | |
20 | ||
21 | #ifndef _LIBABC_H_ | |
22 | #define _LIBABC_H_ | |
23 | ||
24 | #include <stdarg.h> | |
25 | ||
26 | #ifdef __cplusplus | |
27 | extern "C" { | |
28 | #endif | |
29 | ||
30 | /* | |
31 | * kmod_ctx | |
32 | * | |
33 | * library user context - reads the config and system | |
34 | * environment, user variables, allows custom logging | |
35 | */ | |
36 | struct kmod_ctx; | |
37 | struct kmod_ctx *kmod_ref(struct kmod_ctx *ctx); | |
38 | struct kmod_ctx *kmod_unref(struct kmod_ctx *ctx); | |
39 | int kmod_new(struct kmod_ctx **ctx); | |
40 | void kmod_set_log_fn(struct kmod_ctx *ctx, | |
e4351b05 LDM |
41 | void (*log_fn)(struct kmod_ctx *ctx, |
42 | int priority, const char *file, int line, | |
43 | const char *fn, const char *format, | |
44 | va_list args)); | |
586fc304 LDM |
45 | int kmod_get_log_priority(struct kmod_ctx *ctx); |
46 | void kmod_set_log_priority(struct kmod_ctx *ctx, int priority); | |
47 | void *kmod_get_userdata(struct kmod_ctx *ctx); | |
48 | void kmod_set_userdata(struct kmod_ctx *ctx, void *userdata); | |
49 | ||
50 | /* | |
51 | * kmod_list | |
52 | * | |
53 | * access to kmod generated lists | |
54 | */ | |
55 | struct kmod_list_entry; | |
56 | struct kmod_list_entry *kmod_list_entry_get_next(struct kmod_list_entry *list_entry); | |
57 | const char *kmod_list_entry_get_name(struct kmod_list_entry *list_entry); | |
58 | const char *kmod_list_entry_get_value(struct kmod_list_entry *list_entry); | |
59 | #define kmod_list_entry_foreach(list_entry, first_entry) \ | |
60 | for (list_entry = first_entry; \ | |
e4351b05 LDM |
61 | list_entry != NULL; \ |
62 | list_entry = kmod_list_entry_get_next(list_entry)) | |
586fc304 LDM |
63 | |
64 | /* | |
65 | * kmod_thing | |
66 | * | |
67 | * access to things of kmod | |
68 | */ | |
69 | struct kmod_thing; | |
70 | struct kmod_thing *kmod_thing_ref(struct kmod_thing *thing); | |
71 | struct kmod_thing *kmod_thing_unref(struct kmod_thing *thing); | |
72 | struct kmod_ctx *kmod_thing_get_ctx(struct kmod_thing *thing); | |
73 | int kmod_thing_new_from_string(struct kmod_ctx *ctx, const char *string, struct kmod_thing **thing); | |
74 | struct kmod_list_entry *kmod_thing_get_some_list_entry(struct kmod_thing *thing); | |
75 | ||
76 | #ifdef __cplusplus | |
77 | } /* extern "C" */ | |
78 | #endif | |
79 | ||
80 | #endif |