diff options
author | Denis Kenzior <denkenz@gmail.com> | 2010-02-23 11:22:06 -0600 |
---|---|---|
committer | Denis Kenzior <denkenz@gmail.com> | 2010-02-23 12:03:03 -0600 |
commit | d98be70fa98f35e253bb367a52347c309d8cfc6d (patch) | |
tree | db150444b586caaed1f3bd4908f95435a927ac1a /src/simutil.h | |
parent | 0db01081200f80092deeeef40e6d08ecb04a2d99 (diff) | |
download | ofono-d98be70fa98f35e253bb367a52347c309d8cfc6d.tar.bz2 |
Add Simple TLV iterator utilities
Diffstat (limited to 'src/simutil.h')
-rw-r--r-- | src/simutil.h | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/src/simutil.h b/src/simutil.h index 816c3c9d..5cad1d78 100644 --- a/src/simutil.h +++ b/src/simutil.h @@ -84,6 +84,15 @@ struct sim_ef_info { enum sim_file_access perm_update; }; +struct simple_tlv_iter { + unsigned int max; + unsigned int pos; + const unsigned char *pdu; + unsigned char tag; + unsigned short len; + const unsigned char *data; +}; + struct ber_tlv_iter { unsigned int max; unsigned int pos; @@ -95,6 +104,13 @@ struct ber_tlv_iter { const unsigned char *data; }; +void simple_tlv_iter_init(struct simple_tlv_iter *iter, + const unsigned char *pdu, unsigned int len); +gboolean simple_tlv_iter_next(struct simple_tlv_iter *iter); +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 ber_tlv_iter_init(struct ber_tlv_iter *iter, const unsigned char *pdu, unsigned int len); /* @@ -122,6 +138,8 @@ const unsigned char *ber_tlv_iter_get_data(struct ber_tlv_iter *iter); gboolean ber_tlv_iter_next(struct ber_tlv_iter *iter); 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); struct sim_eons *sim_eons_new(int pnn_records); void sim_eons_add_pnn_record(struct sim_eons *eons, int record, |