13#ifndef __xwos_mm_bma_h__
14#define __xwos_mm_bma_h__
44#define XWMM_BMA_MAX_ORDER ((xwu8_t)126)
45#define XWMM_BMA_COMBINED ((xwu8_t)127)
46#define XWMM_BMA_ORDER_MASK ((xwu8_t)0x7F)
47#define XWMM_BMA_INUSED ((xwu8_t)0x80)
49#define XWMM_BMA_ORDERLIST_SIZE(bo) sizeof(struct xwmm_bma_orderlist[(bo) + 1U])
50#define XWMM_BMA_BCB_SIZE(bo) sizeof(struct xwmm_bma_bcb[1U << (bo)])
58#define XWMM_BMA_RAWOBJ_DEF(name, blkodr) \
59 xwu8_t name[sizeof(struct xwmm_bma) + \
60 XWMM_BMA_ORDERLIST_SIZE(blkodr) + XWMM_BMA_BCB_SIZE(blkodr)]
xwer_t xwmm_bma_realloc(struct xwmm_bma *bma, xwsz_t size, void **membuf)
XWMM API:调整内存大小
xwer_t xwmm_bma_init(struct xwmm_bma *bma, const char *name, xwptr_t origin, xwsz_t size, xwsz_t blksize, xwsz_t blkodr)
XWMM API:初始化伙伴算法内存块分配器
xwer_t xwmm_bma_free(struct xwmm_bma *bma, void *mem)
XWMM API:释放内存块
xwer_t xwmm_bma_memalign(struct xwmm_bma *bma, xwsz_t alignment, xwsz_t size, void **membuf)
XWMM API:申请对齐的内存
xwer_t xwmm_bma_malloc(struct xwmm_bma *bma, xwsz_t size, void **membuf)
XWMM API:申请指定大小的连续内存
xwer_t xwmm_bma_malloc_usable_size(struct xwmm_bma *bma, void *mem, xwsz_t *size)
XWMM API:返回该块内存实际可用字节数
xwer_t xwmm_bma_alloc(struct xwmm_bma *bma, xwsq_t order, void **membuf)
XWMM API:申请一块连续的内存
#define xwlib_bclst_head
双循环链表头
struct xwlib_bclst_node head
struct xwmm_bma_orderlist * orderlists
struct xwmm_bma_bcb * bcbs