⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ssp_slab.h

📁 abstract rtos
💻 H
字号:
#ifdef __cplusplusextern "C"{#endif #ifndef __INC_SSP_SLAB_H__#define __INC_SSP_SLAB_H__#define MAX_SLAB_NAME_LEN           (AOS_NAME_LEN*2)#define CONFIG_MEM_BUF_NUM          32#define OBJ_CTRL_END                U32_BUTT#define SIZEOF_SLAB_HEAD            (sizeof(SLAB_S)-sizeof(OBJ_CTRL_S))#define SIZEOF_OBJ_CTRL             (sizeof(OBJ_CTRL_S))#define PAGE_FREE    0  #define PAGE_MNG     1  #define PAGE_SYS     2  #define PAGE_FIX     3  #define PAGE_SLAB    4  #define PAGE_HUGE    5  #define obj_to_page(objp) (&g_pstPages[((U32)(objp)-(U32)g_pPageOffset)>>MEM_PAGE_ORDER])typedef struct obj_ctrl_s{    MPE    mpe;    U32    sid;    U32    tick;    U32    ref;    U32    next;    S8    *file;    U32    line;}OBJ_CTRL_S;struct slab_s;typedef struct slab_s SLAB_S;struct slab_s{    SLAB_S *    s_prev;             SLAB_S *    s_next;             U8     *    s_mem;              U32         inuse;              U32         free;               OBJ_CTRL_S  obj_ctrl[1];    };typedef struct mem_buf_s{    U32    status;        SLAB_S *s_list_head;    SLAB_S *s_list_tail;    SLAB_S *firstnofull;        U32    objsize;    U32    objnum;    U32    page_num;    U32    slab_num;        S8     name[MAX_SLAB_NAME_LEN];}MEM_BUF_S;typedef struct page_s{    U16    status;    U16    buf_id;    SLAB_S *slabp;}PAGE_S;typedef struct slab_dbg_info{    U8 is_slab_s_insufficient;    U8 is_page_insufficient;    U8 is_release_slab;}SLAB_DBG_INFO_S;extern U8        * g_pPageOffset;extern MEM_BUF_S * g_pstMemBuf;extern PAGE_S    * g_pstPages;extern U32         g_ulPageNum;extern U32         g_ulFreePageStart;extern U32         g_ulStaticMemStart;extern U32         g_ulStaticMemPageStart;extern U8        * g_pSlabPool;extern U32         g_ulSlabPoolSize;extern SLAB_DBG_INFO_S slab_dbg_info;AOS_INLINE SLAB_S *__mem_slab_s_get( U32 size );AOS_INLINE U32 __mem_slab_s_release( SLAB_S *pslab, U32 size );AOS_INLINE U32 __mem_obj_verify( VOID *objp, MEM_BUF_S **ppBuf, SLAB_S **ppSlab, U32 *pulObjNo );VOID *__mem_page_get( U32 pageNum );U32 __mem_buf_check( MEM_BUF_S *pBuf );U32 __mem_slab_check( MEM_BUF_S *pBuf, SLAB_S *pSlab );OBJ_CTRL_S *mem_obj_ctrl( VOID*objp );#endif#ifdef __cplusplus}#endif 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -