forked from hardaker/net-snmp
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathheader_complex.h
81 lines (73 loc) · 4.29 KB
/
header_complex.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
/*
* header_complex.h: More complex storage and data sorting for mib modules
*/
#ifndef _MIBGROUP_HEADER_COMPLEX_H
#define _MIBGROUP_HEADER_COMPLEX_H
struct header_complex_index {
oid *name;
size_t namelen;
void *data;
struct header_complex_index *next;
struct header_complex_index *prev;
};
/*
* Function pointer called by the header_comlpex functions when a client pointer (void * to us) needs to be cleaned.
*/
typedef void (HeaderComplexCleaner) (void *);
void *header_complex(struct header_complex_index *datalist,
struct variable *vp, oid * name,
size_t * length, int exact,
size_t * var_len,
WriteMethod ** write_method);
int header_complex_generate_varoid(netsnmp_variable_list *
var);
int header_complex_parse_oid(oid * oidIndex, size_t oidLen,
netsnmp_variable_list * data);
void header_complex_generate_oid(oid * name, size_t * length,
oid * prefix,
size_t prefix_len,
netsnmp_variable_list * data);
void header_complex_free_all(struct header_complex_index
*thestuff,
HeaderComplexCleaner * cleaner);
void header_complex_free_entry(struct header_complex_index
*theentry,
HeaderComplexCleaner * cleaner);
void *header_complex_extract_entry(struct header_complex_index
**thetop,
struct header_complex_index
*thespot);
struct header_complex_index *header_complex_find_entry(struct
header_complex_index
*thestuff,
void *entry);
void *header_complex_get(struct header_complex_index *datalist,
netsnmp_variable_list * index);
void *header_complex_get_from_oid(struct header_complex_index
*datalist, oid * searchfor,
size_t searchfdor_len);
struct header_complex_index *header_complex_add_data(struct
header_complex_index
**thedata,
netsnmp_variable_list
* var, void *data);
struct header_complex_index *header_complex_maybe_add_data(struct header_complex_index **thedata,
netsnmp_variable_list * var,
void *data,
int dont_allow_duplicates);
/*
* Note: newoid is copied/cloned for you
*/
struct header_complex_index *header_complex_add_data_by_oid(struct
header_complex_index
**thedata,
oid * newoid,
size_t
newoid_len,
void *data);
struct header_complex_index *header_complex_maybe_add_data_by_oid(struct header_complex_index **thedata,
oid * newoid,
size_t newoid_len,
void *data,
int dont_allow_duplicates);
#endif /* _MIBGROUP_HEADER_COMPLEX_H */