ChibiOS/RT
6.0.3
|
Memory Alignment services.
Memory alignment support macros | |
#define | MEM_ALIGN_MASK(a) ((size_t)(a) - 1U) |
Alignment mask constant. More... | |
#define | MEM_ALIGN_PREV(p, a) |
Aligns to the previous aligned memory address. More... | |
#define | MEM_ALIGN_NEXT(p, a) |
Aligns to the next aligned memory address. More... | |
#define | MEM_IS_ALIGNED(p, a) (((size_t)(p) & MEM_ALIGN_MASK(a)) == 0U) |
Returns whatever a pointer or memory size is aligned. More... | |
#define | MEM_IS_VALID_ALIGNMENT(a) (((size_t)(a) != 0U) && (((size_t)(a) & ((size_t)(a) - 1U)) == 0U)) |
Returns whatever a constant is a valid alignment. More... | |
#define MEM_ALIGN_MASK | ( | a | ) | ((size_t)(a) - 1U) |
#define MEM_ALIGN_PREV | ( | p, | |
a | |||
) |
Aligns to the previous aligned memory address.
[in] | p | variable to be aligned |
[in] | a | alignment, must be a power of two |
#define MEM_ALIGN_NEXT | ( | p, | |
a | |||
) |
Aligns to the next aligned memory address.
[in] | p | variable to be aligned |
[in] | a | alignment, must be a power of two |
Definition at line 79 of file chalign.h.
Referenced by chCoreAllocAlignedWithOffsetI(), chHeapAllocAligned(), chHeapFree(), chHeapObjectInit(), chThdCreateStatic(), and chThdCreateSuspendedI().
#define MEM_IS_ALIGNED | ( | p, | |
a | |||
) | (((size_t)(p) & MEM_ALIGN_MASK(a)) == 0U) |
Returns whatever a pointer or memory size is aligned.
[in] | p | variable to be aligned |
[in] | a | alignment, must be a power of two |
Definition at line 90 of file chalign.h.
Referenced by chHeapFree(), chPoolAllocI(), chPoolFreeI(), chThdCreateStatic(), and chThdCreateSuspendedI().
#define MEM_IS_VALID_ALIGNMENT | ( | a | ) | (((size_t)(a) != 0U) && (((size_t)(a) & ((size_t)(a) - 1U)) == 0U)) |
Returns whatever a constant is a valid alignment.
Valid alignments are powers of two.
[in] | a | alignment to be checked, must be a constant |
Definition at line 98 of file chalign.h.
Referenced by chCoreAllocAlignedWithOffsetI(), chHeapAllocAligned(), and chPoolObjectInitAligned().