summaryrefslogtreecommitdiffstats
path: root/src/simutil.h
diff options
context:
space:
mode:
authorDenis Kenzior <denkenz@gmail.com>2010-02-23 12:01:09 -0600
committerDenis Kenzior <denkenz@gmail.com>2010-02-23 12:03:04 -0600
commit19a20e4ccd1553eaadbd8f61955d0b0e065e663f (patch)
treecc957e9b30d904457895dbe43cd0538b1b01c191 /src/simutil.h
parentd98be70fa98f35e253bb367a52347c309d8cfc6d (diff)
downloadofono-19a20e4ccd1553eaadbd8f61955d0b0e065e663f.tar.bz2
Add COMPREHENSION TLV iterator utilities
Diffstat (limited to 'src/simutil.h')
-rw-r--r--src/simutil.h23
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,