📄 malloc.c
字号:
#include "ZSysgen.h"
#include "ZTypes.h"
#include "ZThread.h"
#include "ZRegion.h"
#include "ZInterrupt.h"
extern RZK_REGIONHANDLE_t hGlobalRegion ;
extern UINT8 *_g_region_buf ;
extern UINT8 *_g_heap_start ;
extern UINT8 *_g_heap_end ;
extern UINT8 _g_malloc_inited ;
extern void _get_heap_values( void ) ;
UINT8 init_malloc( void )
{
// UINTRMASK intr_mask ;
if( _g_malloc_inited == 1 )
return 0 ;
// get the heap start and end values
_get_heap_values() ;
// create a region..
hGlobalRegion = RZKCreateRegion( ( CADDR_t) "MALLOC", _g_heap_start, ( _g_heap_end - _g_heap_start - 100 ), 16, 1, RECV_ORDER_FIFO ) ;
if( hGlobalRegion == NULL )
return 0 ;
// intr_mask = RZKDisableInterrupts() ;
_g_malloc_inited = 1 ;
// RZKEnableInterrupts( intr_mask ) ;
return 1 ;
}
void *malloc( COUNT_t size )
{
void *seg ;
if( size == 0 )
return NULL ;
seg = RZKAllocSegment( hGlobalRegion, size, 0 ) ;
return seg ;
}
void free( void *seg )
{
RZKFreeSegment( hGlobalRegion, seg ) ;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -