Allocator API
| Name | Value |
|---|---|
ALLOC_FLAG_PREFER_CACHE_ALIGNED | (1 << 0) |
ALLOC_FLAG_NO_CACHE_ALIGN | (1 << 1) |
ALLOC_FLAG_FLEXIBLE_LOCALITY | (1 << 2) |
ALLOC_FLAG_STRICT_LOCALITY | (1 << 3) |
ALLOC_FLAG_PAGEABLE | (1 << 4) |
ALLOC_FLAG_NONPAGEABLE | (1 << 5) |
ALLOC_FLAG_MOVABLE | (1 << 6) |
ALLOC_FLAG_NONMOVABLE | (1 << 7) |
ALLOC_FLAG_CLASS_DEFAULT | (0 << ALLOC_CLASS_SHIFT) |
ALLOC_FLAG_CLASS_INTERLEAVED | (1 << ALLOC_CLASS_SHIFT) |
ALLOC_FLAG_CLASS_HIGH_BANDWIDTH | (2 << ALLOC_CLASS_SHIFT) |
| Name | Value |
|---|---|
ALLOC_BEHAVIOR_NORMAL | None |
ALLOC_BEHAVIOR_ATOMIC | None |
ALLOC_BEHAVIOR_NO_WAIT | None |
ALLOC_BEHAVIOR_NO_RECLAIM | None |
ALLOC_BEHAVIOR_FAULT_SAFE | None |
ALLOC_BEHAVIOR_FLAG_FAST | 1 << ALLOC_BEHAVIOR_FLAG_SHIFT |
static inline boolalloc_flags_valid(uint16_t flags)static inlineenum alloc_behavioralloc_behavior_base(enum alloc_behaviorraw)static inline boolalloc_behavior_may_fault(enum alloc_behaviorraw)static inline boolalloc_behavior_may_block(enum alloc_behaviorraw)static inline boolalloc_behavior_is_isr_safe(enum alloc_behaviorraw)static inline boolalloc_behavior_no_reclaim(enum alloc_behaviorraw)static inline boolalloc_behavior_is_fast(enum alloc_behaviorraw)static inline boolalloc_flag_behavior_verify(enum alloc_flagsf,enum alloc_behaviorbehavior)static inline voidalloc_request_sanitize(enum alloc_flags*f,enum alloc_behavior*b)void *kmalloc_new(size_t size,enum alloc_flagsflags,enum alloc_behaviorbehavior)voidkfree_new(void *ptr,enum alloc_behaviorbehavior)void *kmalloc_from_domain(size_t domain,size_t size)void *kmalloc(size_t size,enum alloc_flagsflags,enum alloc_behaviorbehavior)void *krealloc(void *ptr,size_t size,enum alloc_flagsflags,enum alloc_behaviorbehavior)void *kzalloc(size_t size,enum alloc_flagsflags,enum alloc_behaviorbehavior)voidkfree(void *ptr,enum alloc_behaviorbehavior)size_tksize(void *ptr)void *kmalloc_aligned(size_t size,size_t align,enum alloc_flagsflags,enum alloc_behaviorbehavior)void *kzalloc_aligned(size_t size,size_t align,enum alloc_flagsflags,enum alloc_behaviorbehavior)voidkfree_aligned(void *ptr,enum alloc_behaviorbehavior)
Defines
Section titled “Defines”ALLOC_LOCALITY_SHIFT:8ALLOC_CLASS_SHIFT:12ALLOC_CLASS_MASK:0xFALLOC_LOCALITY_MAX:7ALLOC_LOCALITY_MIN:0ALLOC_LOCALITY_MASK:0x7ALLOC_FLAGS_DEFAULT:
(ALLOC_FLAG_CLASS_DEFAULT | ALLOC_FLAG_FLEXIBLE_LOCALITY | ALLOC_FLAG_NONMOVABLE | ALLOC_FLAG_NONPAGEABLE | ALLOC_FLAG_NO_CACHE_ALIGN | ALLOC_LOCALITY_TO_FLAGS(ALLOC_LOCALITY_MIN))ALLOC_FLAG_PAGEABLE | ALLOC_FLAG_CLASS_DEFAULT | ALLOC_FLAG_FLEXIBLE_LOCALITYALLOC_BEHAVIOR_FLAG_SHIFT:4ALLOC_BEHAVIOR_MASK:(0xF)ALLOC_BEHAVIOR_DEFAULT:ALLOC_BEHAVIOR_NORMALALLOC_PARAMS_PAGEABLE:ALLOC_FLAGS_PAGEABLE, ALLOC_BEHAVIOR_DEFAULTALLOC_PARAMS_DEFAULT:ALLOC_FLAGS_DEFAULT, ALLOC_BEHAVIOR_DEFAULTFREE_PARAMS_DEFAULT:ALLOC_BEHAVIOR_DEFAULT