diff options
author | Denis Kenzior <denkenz@gmail.com> | 2010-02-23 12:01:09 -0600 |
---|---|---|
committer | Denis Kenzior <denkenz@gmail.com> | 2010-02-23 12:03:04 -0600 |
commit | 19a20e4ccd1553eaadbd8f61955d0b0e065e663f (patch) | |
tree | cc957e9b30d904457895dbe43cd0538b1b01c191 /src/simutil.h | |
parent | d98be70fa98f35e253bb367a52347c309d8cfc6d (diff) | |
download | ofono-19a20e4ccd1553eaadbd8f61955d0b0e065e663f.tar.bz2 |
Add COMPREHENSION TLV iterator utilities
Diffstat (limited to 'src/simutil.h')
-rw-r--r-- | src/simutil.h | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/src/simutil.h b/src/simutil.h index 5cad1d78..043c21fc 100644 --- a/src/simutil.h +++ b/src/simutil.h @@ -93,6 +93,16 @@ struct simple_tlv_iter { const unsigned char *data; }; +struct comprehension_tlv_iter { + unsigned int max; + unsigned int pos; + const unsigned char *pdu; + unsigned short tag; + gboolean cr; + unsigned int len; + const unsigned char *data; +}; + struct ber_tlv_iter { unsigned int max; unsigned int pos; @@ -111,6 +121,17 @@ unsigned char simple_tlv_iter_get_tag(struct simple_tlv_iter *iter); unsigned short simple_tlv_iter_get_length(struct simple_tlv_iter *iter); const unsigned char *simple_tlv_iter_get_data(struct simple_tlv_iter *iter); +void comprehension_tlv_iter_init(struct comprehension_tlv_iter *iter, + const unsigned char *pdu, + unsigned int len); +gboolean comprehension_tlv_iter_next(struct comprehension_tlv_iter *iter); +unsigned short comprehension_tlv_iter_get_tag(struct comprehension_tlv_iter *i); +gboolean comprehension_tlv_get_cr(struct comprehension_tlv_iter *iter); +unsigned int comprehension_tlv_iter_get_length( + struct comprehension_tlv_iter *iter); +const unsigned char *comprehension_tlv_iter_get_data( + struct comprehension_tlv_iter *iter); + void ber_tlv_iter_init(struct ber_tlv_iter *iter, const unsigned char *pdu, unsigned int len); /* @@ -140,6 +161,8 @@ void ber_tlv_iter_recurse(struct ber_tlv_iter *iter, struct ber_tlv_iter *recurse); void ber_tlv_iter_recurse_simple(struct ber_tlv_iter *iter, struct simple_tlv_iter *container); +void ber_tlv_iter_recurse_comprehension(struct ber_tlv_iter *iter, + struct comprehension_tlv_iter *recurse); struct sim_eons *sim_eons_new(int pnn_records); void sim_eons_add_pnn_record(struct sim_eons *eons, int record, |