diff options
Diffstat (limited to 'gisi/iter.h')
-rw-r--r-- | gisi/iter.h | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/gisi/iter.h b/gisi/iter.h index 7596af04..081d85c4 100644 --- a/gisi/iter.h +++ b/gisi/iter.h @@ -34,13 +34,22 @@ extern "C" { struct _GIsiSubBlockIter { uint8_t *start; uint8_t *end; - bool longhdr; + uint16_t longhdr; + uint16_t sub_blocks; }; + typedef struct _GIsiSubBlockIter GIsiSubBlockIter; -bool g_isi_sb_iter_init(const void *restrict data, size_t len, - GIsiSubBlockIter *iter, bool longhdr); -bool g_isi_sb_iter_is_valid(const GIsiSubBlockIter *iter); +void g_isi_sb_iter_init(GIsiSubBlockIter *iter, + const void *restrict data, + size_t len, size_t used); +void g_isi_sb_iter_init_full(GIsiSubBlockIter *iter, + const void *restrict data, + size_t len, size_t used, + bool longhdr, + uint16_t sub_blocks); +bool g_isi_sb_iter_is_valid(GIsiSubBlockIter const *iter); + bool g_isi_sb_iter_next(GIsiSubBlockIter *iter); int g_isi_sb_iter_get_id(const GIsiSubBlockIter *iter); |