26 #ifndef M2MB_OS_POOL_H
27 #define M2MB_OS_POOL_H
33 #define M2MB_OS_POOL_INVALID 0
34 #define M2MB_OS_POOL_INVALID_ATTR 0
36 #define M2MB_OS_POOL_BLOCK ( ( MEM_W ) 0x1 )
37 #define M2MB_OS_POOL_BYTE ( ( MEM_W ) 0x0 )
40 #define M2MB_OS_MIN_POOL_SIZE ( 128 )
57 #define m2mb_os_pool_setAttrItem_( h, ... ) m2mb_os_pool_setAttrItem( h, CMDS_ARGS( __VA_ARGS__ ) )
59 #define m2mb_os_pool_setAttrItem_( h, args... ) m2mb_os_pool_setAttrItem( h, CMDS_ARGS( args ) )
64 typedef struct M2MB_OS_POOL_HANDLE_TAG *M2MB_OS_POOL_HANDLE;
65 typedef struct M2MB_OS_POOL_ATTR_HANDLE_TAG *M2MB_OS_POOL_ATTR_HANDLE;
78 M2MB_OS_POOL_SEL_CMD_CREATE_ATTR,
79 M2MB_OS_POOL_SEL_CMD_DEL_ATTR,
81 M2MB_OS_POOL_SEL_CMD_NAME,
83 M2MB_OS_POOL_SEL_CMD_USRNAME,
85 M2MB_OS_POOL_SEL_CMD_POOL_TYPE,
87 M2MB_OS_POOL_SEL_CMD_BLOCK_SIZE,
89 M2MB_OS_POOL_SEL_CMD_MEM_SIZE,
91 M2MB_OS_POOL_SEL_CMD_MEM_START,
93 M2MB_OS_POOL_SEL_CMD_VADDR,
95 M2MB_OS_POOL_SEL_CMD_PERMISSION,
98 M2MB_OS_POOL_SEL_CMD_END,
99 ENUM_TO_INT( M2MB_OS_POOL_SEL_CMD_E )
100 } M2MB_OS_POOL_SEL_CMD_E;
110 M2MB_OS_POOL_BYTE_MEMINFO_FRAGMENTS,
111 M2MB_OS_POOL_MEMINFO_BYTES_AVAILABLE,
112 M2MB_OS_POOL_MEMINFO_SIZE,
113 M2MB_OS_POOL_MEMINFO_BLOCKS_AVAILABLE,
114 M2MB_OS_POOL_MEMINFO_BLOCK_SIZE ,
115 M2MB_OS_POOL_MEMINFO_TOTAL_BLOCKS,
116 M2MB_OS_POOL_MEMINFO_BYTES_MAX_OCCUPATION,
119 M2MB_OS_POOL_MEMINFO_END,
120 ENUM_TO_INT( M2MB_OS_POOL_MEMINFO_E )
121 } M2MB_OS_POOL_MEMINFO_E;
206 M2MB_OS_POOL_ATTR_HANDLE *pPoolAttrHandle
387 void *ptrOld, UINT32 newsize );
422 M2MB_OS_RESULT_E
m2mb_os_pool_free( M2MB_OS_POOL_HANDLE poolHandle,
void *ptrToFree );
546 M2MB_OS_POOL_SEL_CMD_E selCmd,
601 M2MB_OS_POOL_SEL_CMD_E selCmd,
677 M2MB_OS_POOL_MEMINFO_E memInfoSelect,