ini_mem.c

来自「itron」· C语言 代码 · 共 58 行

C
58
字号
/* ------------------------------------------------------------------------ */
/*  Hyper Operating System V4  μITRON4.0慌屯 Real-Time OS                  */
/*    カ〖ネルメモリ瓷妄                                                    */
/*                                                                          */
/*                                  Copyright (C) 1998-2002 by Project HOS  */
/*                                  http://sourceforge.jp/projects/hos/     */
/* ------------------------------------------------------------------------ */


#include "knl_mem.h"



/* グロ〖バル恃眶 */
T_KERNEL_MEM_BLK *kernel_mem_base = NULL;	/* カ〖ネル脱メモリ黎片ブロックのアドレス */
SIZE             kernel_mem_size;			/* カ〖ネル脱メモリサイズ */


/* メモリ瓷妄を介袋步 */
void kernel_ini_mem(
		void *p_base,		/* 瓷妄する挝拌の黎片アドレス */
		SIZE size)			/* 瓷妄する挝拌のサイズ */
{
	T_KERNEL_MEM_BLK *mblklast;
	
	/* サイズのアライメントを拇腊 */
	size &= ~(MEMBLK_ALIGN - 1);
	
	/* サイズチェック */
	if ( size <= sizeof(T_KERNEL_MEM_BLK) )
	{
		return;
	}
	
	/* 肋年瘦赂 */
	kernel_mem_base = (T_KERNEL_MEM_BLK *)p_base;
	kernel_mem_size = size;
	
	/* 姜眉疤弥に戎客を肋年 */
	mblklast = (T_KERNEL_MEM_BLK *)((UB *)p_base + size - MEMBLKSIZE);
	
	/* 链挛を鄂き挝拌に肋年 */
	kernel_mem_base->prev = NULL;
	kernel_mem_base->size = size - (MEMBLKSIZE * 2);
	kernel_mem_base->flag = MEMBLK_FREE;
	
	/* 姜眉の戎客を网脱面に肋年 */
	mblklast->prev = NULL;
	mblklast->size = 0;
	mblklast->flag = MEMBLK_USING;
}


/* ------------------------------------------------------------------------ */
/*  Copyright (C) 1998-2002 by Project HOS                                  */
/* ------------------------------------------------------------------------ */

⌨️ 快捷键说明

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