Skip to content
ITER_DATA_TYPE

ITER_DATA_TYPE

Description

Get data type of Iter elements

Parameters

Name Direction Description
mi in Iter object

Usage example (Cross-references)

Usage examples (Cross-references)
    ///
    #define IterDataAt(mi, idx)                                                                                            \
        ((ITER_DATA_TYPE(mi) *)(((u8 *)(mi)->data) + (idx) * ALIGN_UP(sizeof(ITER_DATA_TYPE(mi)), (mi)->alignment)))
    
    ///
    /// TAGS: Memory, Size, Iter
    ///
    #define IterSize(mi) (IterLength(mi) * ALIGN_UP(sizeof(ITER_DATA_TYPE(mi)), (mi)->alignment))
    
    ///
    /// TAGS: Memory, Iter, Size
    ///
    #define IterRemainingSize(mi) (IterRemainingLength(mi) * ALIGN_UP(sizeof(ITER_DATA_TYPE(mi)), (mi)->alignment))
    
    ///
    #define IterPos(mi)                                                                                                    \
        (IterRemainingLength(mi) ?                                                                                         \
             (ITER_DATA_TYPE(mi) *)(((u64)(mi)->data) +                                                                    \
                                    (mi)->pos * ALIGN_UP(sizeof(ITER_DATA_TYPE(mi)), (mi)->alignment)) :                   \
             NULL_ITER_DATA(mi))
        (IterRemainingLength(mi) ?                                                                                         \
             (ITER_DATA_TYPE(mi) *)(((u64)(mi)->data) +                                                                    \
                                    (mi)->pos * ALIGN_UP(sizeof(ITER_DATA_TYPE(mi)), (mi)->alignment)) :                   \
             NULL_ITER_DATA(mi))
    /// TAGS: Utility, NullValue, Iter
    ///
    #define NULL_ITER_DATA(mi) (ITER_DATA_TYPE(mi) *)0
    
    #endif // MISRA_STD_UTILITY_ITER_TYPE_H
Last updated on