TLV: add function to patch a tlv definition table
This commit is contained in:
parent
6e670aab5a
commit
5078148829
|
@ -185,6 +185,7 @@ struct tlv_p_entry {
|
|||
};
|
||||
|
||||
enum tlv_type {
|
||||
TLV_TYPE_NONE,
|
||||
TLV_TYPE_FIXED,
|
||||
TLV_TYPE_T,
|
||||
TLV_TYPE_TV,
|
||||
|
@ -213,6 +214,8 @@ int tlv_parse_one(u_int8_t *o_tag, u_int16_t *o_len, const u_int8_t **o_val,
|
|||
const u_int8_t *buf, int buf_len);
|
||||
int tlv_parse(struct tlv_parsed *dec, const struct tlv_definition *def,
|
||||
const u_int8_t *buf, int buf_len, u_int8_t lv_tag, u_int8_t lv_tag2);
|
||||
/* take a master (src) tlvdev and fill up all empty slots in 'dst' */
|
||||
void tlv_def_patch(struct tlv_definition *dst, const struct tlv_definition *src);
|
||||
|
||||
#define TLVP_PRESENT(x, y) ((x)->lv[y].val)
|
||||
#define TLVP_LEN(x, y) (x)->lv[y].len
|
||||
|
|
|
@ -149,6 +149,19 @@ int tlv_parse(struct tlv_parsed *dec, const struct tlv_definition *def,
|
|||
return num_parsed;
|
||||
}
|
||||
|
||||
/* take a master (src) tlvdev and fill up all empty slots in 'dst' */
|
||||
void tlv_def_patch(struct tlv_definition *dst, const struct tlv_definition *src)
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i = 0; i < ARRAY_SIZE(dst->def); i++) {
|
||||
if (src->def[i].type == TLV_TYPE_NONE)
|
||||
continue;
|
||||
if (dst->def[i].type == TLV_TYPE_NONE)
|
||||
dst->def[i] = src->def[i];
|
||||
}
|
||||
}
|
||||
|
||||
static __attribute__((constructor)) void on_dso_load_tlv(void)
|
||||
{
|
||||
int i;
|
||||
|
|
Loading…
Reference in New Issue