fre_hep.c

来自「iTRON4.0最新操作系统」· C语言 代码 · 共 71 行

C
71
字号
/* ------------------------------------------------------------------------ *//*  Hyper Operating System V4  μITRON4.0慌屯 Real-Time OS                  *//*    カ〖ネル メモリ瓷妄                                                   *//*                                                                          *//*                                  Copyright (C) 1998-2006 by Project HOS  *//*                                  http://sourceforge.jp/projects/hos/     *//* ------------------------------------------------------------------------ */#include "knl_hep.h"/** メモリの豺庶 */void kernel_fre_hep(		T_KERNEL_HEPCB *pk_hepcb,		VP             ptr){	T_KERNEL_HEPBLK *mblk;	T_KERNEL_HEPBLK *mblktmp;	T_KERNEL_HEPBLK *mblknext;	/* %jp{ポインタ认跋チェック */	if ( ptr < (VP)pk_hepcb->base || ptr >= (VP)((UB*)pk_hepcb->base + pk_hepcb->heapsz) )	{		return;	}	/* %jp{メモリブロック疤弥を艰评 */	mblk = (T_KERNEL_HEPBLK *)((UB *)ptr - KERNEL_HEP_BLKSIZE);	/* %jp{パラメ〖タ〖チェック */	if ( mblk->flag != KERNEL_HEP_USING )	/* %jp{蝗脱面で痰ければ */	{		return;	}	/* %jp{フラグを踏蝗脱に肋年} */	mblk->flag = KERNEL_HEP_FREE;		/* %jp{肌のブロックをチェック} */	mblktmp = (T_KERNEL_HEPBLK *)((UB *)ptr + mblk->size);	if ( mblktmp->flag == KERNEL_HEP_FREE )	{		/* %jp{肌のブロックが踏蝗脱なら冯圭する} */		mblknext = (T_KERNEL_HEPBLK *)((UB *)mblktmp + mblktmp->size + KERNEL_HEP_BLKSIZE);		mblknext->prev = mblk;		mblk->size += mblktmp->size + KERNEL_HEP_BLKSIZE;	}	/* %jp{涟のブロックをチェック} */	if ( mblk->prev != NULL )	{		mblktmp = mblk->prev;		if ( mblktmp->flag == KERNEL_HEP_FREE )		{			/* %jp{涟のブロックが踏蝗脱なら冯圭する} */			mblknext = (T_KERNEL_HEPBLK *)((UB *)mblk + mblk->size + KERNEL_HEP_BLKSIZE);			mblknext->prev = mblktmp;			mblktmp->size += mblk->size + KERNEL_HEP_BLKSIZE;		}	}}/* ------------------------------------------------------------------------ *//*  Copyright (C) 1998-2006 by Project HOS                                  *//* ------------------------------------------------------------------------ */

⌨️ 快捷键说明

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