//thread/interrupt safe. allocations will not fail if space exists. even in interrupts. //itemAlign over 4 will not be guaranteed since the heap does not hand out chunks with that kind of alignment struct SlabAllocator* slabAllocatorNew(uint32_t itemSz, uint32_t itemAlign, uint32_t numItems); void slabAllocatorDestroy(struct SlabAllocator *allocator); void* slabAllocatorAlloc(struct SlabAllocator *allocator); void slabAllocatorFree(struct SlabAllocator *allocator, void *ptr);
void* slabAllocatorGetNth(struct SlabAllocator *allocator, uint32_t idx); // -> pointer or NULL if that slot is empty may be not int-safe. YMMV
uint32_t slabAllocatorGetIndex(struct SlabAllocator *allocator, void *ptr); // -> index or -1 if invalid pointer
uint32_t slabAllocatorGetNumItems(struct SlabAllocator *allocator); // simply say hwo many items it can hold max (numItems passed to constructor)
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.