X-Git-Url: http://git.rot13.org/?p=bcm963xx.git;a=blobdiff_plain;f=userapps%2Fopensource%2Fnet-snmp%2Fagent%2Fmibgroup%2Fheader_complex.h;fp=userapps%2Fopensource%2Fnet-snmp%2Fagent%2Fmibgroup%2Fheader_complex.h;h=2028ceed826545392810616f32536a015393df85;hp=0000000000000000000000000000000000000000;hb=9dffd9f7659a1b28265e0dc9497343eb3d108d02;hpb=e48c2529a5a7e7dbf1797bb6d1bf964bc03e78a7 diff --git a/userapps/opensource/net-snmp/agent/mibgroup/header_complex.h b/userapps/opensource/net-snmp/agent/mibgroup/header_complex.h new file mode 100644 index 00000000..2028ceed --- /dev/null +++ b/userapps/opensource/net-snmp/agent/mibgroup/header_complex.h @@ -0,0 +1,72 @@ +/* + * 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); + +/* + * 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); + +#endif /* _MIBGROUP_HEADER_COMPLEX_H */