25 #ifndef M2MB_OS_POOL_H
26 #define M2MB_OS_POOL_H
32 #define M2MB_OS_POOL_INVALID 0
33 #define M2MB_OS_POOL_INVALID_ATTR 0
35 #define M2MB_OS_POOL_BLOCK ( ( MEM_W ) 0x1 )
36 #define M2MB_OS_POOL_BYTE ( ( MEM_W ) 0x0 )
39 #define M2MB_OS_MIN_POOL_SIZE ( 128 )
56 #define m2mb_os_pool_setAttrItem_( h, ... ) m2mb_os_pool_setAttrItem( h, CMDS_ARGS( __VA_ARGS__ ) )
58 #define m2mb_os_pool_setAttrItem_( h, args... ) m2mb_os_pool_setAttrItem( h, CMDS_ARGS( args ) )
63 typedef struct M2MB_OS_POOL_HANDLE_TAG *M2MB_OS_POOL_HANDLE;
64 typedef struct M2MB_OS_POOL_ATTR_HANDLE_TAG *M2MB_OS_POOL_ATTR_HANDLE;
77 M2MB_OS_POOL_SEL_CMD_CREATE_ATTR,
78 M2MB_OS_POOL_SEL_CMD_DEL_ATTR,
80 M2MB_OS_POOL_SEL_CMD_NAME,
82 M2MB_OS_POOL_SEL_CMD_USRNAME,
84 M2MB_OS_POOL_SEL_CMD_POOL_TYPE,
86 M2MB_OS_POOL_SEL_CMD_BLOCK_SIZE,
88 M2MB_OS_POOL_SEL_CMD_MEM_SIZE,
90 M2MB_OS_POOL_SEL_CMD_MEM_START,
92 M2MB_OS_POOL_SEL_CMD_VADDR,
94 M2MB_OS_POOL_SEL_CMD_PERMISSION,
97 M2MB_OS_POOL_SEL_CMD_END,
98 ENUM_TO_INT( M2MB_OS_POOL_SEL_CMD_E )
99 } M2MB_OS_POOL_SEL_CMD_E;
109 M2MB_OS_POOL_BYTE_MEMINFO_FRAGMENTS,
110 M2MB_OS_POOL_MEMINFO_BYTES_AVAILABLE,
111 M2MB_OS_POOL_MEMINFO_SIZE,
112 M2MB_OS_POOL_MEMINFO_BLOCKS_AVAILABLE,
113 M2MB_OS_POOL_MEMINFO_BLOCK_SIZE ,
114 M2MB_OS_POOL_MEMINFO_TOTAL_BLOCKS,
115 M2MB_OS_POOL_MEMINFO_BYTES_MAX_OCCUPATION,
118 M2MB_OS_POOL_MEMINFO_END,
119 ENUM_TO_INT( M2MB_OS_POOL_MEMINFO_E )
120 } M2MB_OS_POOL_MEMINFO_E;
205 M2MB_OS_POOL_ATTR_HANDLE *pPoolAttrHandle
386 void *ptrOld, UINT32 newsize );
421 M2MB_OS_RESULT_E
m2mb_os_pool_free( M2MB_OS_POOL_HANDLE poolHandle,
void *ptrToFree );
545 M2MB_OS_POOL_SEL_CMD_E selCmd,
600 M2MB_OS_POOL_SEL_CMD_E selCmd,
676 M2MB_OS_POOL_MEMINFO_E memInfoSelect,