IterRemainingLength
- Macro
- August 22, 2025
Table of Contents
IterRemainingLength
IterRemainingLength
Description
Get remaining length left to read this memory iterator.
Success
If provided Iter object is not NULL_ITER(mi) then remaining size left to read in memory region is returned.
Failure
If provided Iter is NULL_ITER(mi) then returns 0
Usage example (Cross-references)
- In
StrIter.h:130
:
///
/// TAGS: StrIter, Length, Query, Iter
#define StrIterRemainingLength(mi) IterRemainingLength(mi)
///
- In
Move.h:16
:
#define IterMove(mi, n) \
do { \
if (IterRemainingLength(mi) - (mi)->dir * (n) <= IterLength(mi)) \
(mi)->pos += (mi)->dir * (n); \
} while (0)
- In
Access.h:51
:
/// TAGS: Memory, Iter, Size
///
#define IterRemainingSize(mi) IterRemainingLength(mi) * ALIGN_UP(sizeof(ITER_DATA_TYPE(mi)), (mi)->alignment)
///
- In
Access.h:64
:
///
#define IterPos(mi) \
(IterRemainingLength(mi) ? \
(ITER_DATA_TYPE(mi) *)(((u64)(mi)->data) + \
(mi)->pos * ALIGN_UP(sizeof(ITER_DATA_TYPE(mi)), (mi)->alignment)) : \
- In
Access.h:82
:
///
#define IterRead(mi) \
(IterRemainingLength(mi) ? (((mi)->pos = (mi)->pos + (mi)->dir), (mi)->data[(mi)->pos - (mi)->dir]) : \
(ITER_DATA_TYPE(mi)) {0})
- In
Access.h:101
:
///
#define IterPeekAt(mi, n) \
(IterRemainingLength(mi) > (n) || (mi)->pos + (n) >= 0 ? (mi)->data[(mi)->pos + (n)] : (ITER_DATA_TYPE(mi)) {0})
#endif // MISRA_STD_UTILITY_ITER_ACCESS_H