📄 vmalloc.c
字号:
/* *---------------------------------------------------------------------- * T-Kernel / Standard Extension * * Copyright (C) 2006 by Ken Sakamura. All rights reserved. * T-Kernel / Standard Extension is distributed * under the T-License for T-Kernel / Standard Extension. *---------------------------------------------------------------------- * * Version: 1.00.00 * Released by T-Engine Forum(http://www.t-engine.org) at 2006/8/11. * *---------------------------------------------------------------------- *//* * vmalloc.c (libtkse) * * Allocation of non-resident system memory * * For system process * Cannot be used in ordinary processes */#include "libtkse.h"#include <extension/memory.h>Inline void Vmeminit( void );#ifndef VMALLOCTESTEXPORT MACB _Vmacb; /* Vmalloc management information */#elseIMPORT MACB _Vmacb; /* Vmalloc management information */#endifInline void Vmeminit( void ){ if ( AlignMACB(&_Vmacb)->pagesz == 0U ) { (void)_mem_init(M_SYSTEM, &_Vmacb); }}#ifndef VMALLOCTESTEXPORT void* Vmalloc( size_t size ){ void *p; MEMLOCK( return NULL ) Vmeminit(); p = _mem_malloc(size, &_Vmacb); MEMUNLOCK() return p;}EXPORT void* Vcalloc( size_t nmemb, size_t size ){ void *p; MEMLOCK( return NULL ) Vmeminit(); p = _mem_calloc(nmemb, size, &_Vmacb); MEMUNLOCK() return p;}EXPORT void* Vrealloc( void *ptr, size_t size ){ void *p; MEMLOCK( return NULL ) Vmeminit(); p = _mem_realloc(ptr, size, &_Vmacb); MEMUNLOCK() return p;}EXPORT void Vfree( void *ptr ){ MEMLOCK( return ) Vmeminit(); _mem_free(ptr, &_Vmacb); MEMUNLOCK()}#else /* VMALLOCTEST */EXPORT void Vmalloctest( int mode ){ MEMLOCK( return ) Vmeminit(); _mem_malloctest(mode, &_Vmacb); MEMUNLOCK()}EXPORT BOOL Vmalloccheck( void *ptr ){ BOOL b; MEMLOCK( return FALSE ) Vmeminit(); b = _mem_malloccheck(ptr, &_Vmacb); MEMUNLOCK() return b;}#endif /* VMALLOCTEST */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -