⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 alc_mem.c

📁 Hyper Operating System。基于ITRON接口的实时操作系统。主页: https://sourceforge.jp/projects/hos
💻 C
字号:
/* ------------------------------------------------------------------------ *//*  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"/* メモリの充り碰て */VP kernel_alc_mem(		SIZE size)		/* 艰评する挝拌のサイズ */{	T_KERNEL_MEM_BLK *mblk;	T_KERNEL_MEM_BLK *mblk_next;		/* ヒ〖プの赂哼チェック */	if ( kernel_mem_base == NULL )	{		return NULL;	}		/* サイズのアライメントを拇腊 */	size = (size + MEMBLK_ALIGN - 1) & ~(MEMBLK_ALIGN - 1);		/* 鄂き挝拌を浮瑚 */	mblk = kernel_mem_base;	while ( mblk->size != 0 )	{		if ( mblk->flag == MEMBLK_FREE && mblk->size >= size )		{			/* 浇尸な推翁があったら */			if ( mblk->size - size > MEMBLKSIZE + MEMBLK_ALIGN )			{				/* ブロックを尸充する */				mblk_next = (T_KERNEL_MEM_BLK *)((UB *)mblk + MEMBLKSIZE + size);				mblk_next->prev = mblk;				mblk_next->size = mblk->size - size - MEMBLKSIZE;				mblk_next->flag = MEMBLK_FREE;				mblk->size      = size;			}			mblk->flag = MEMBLK_USING;						return (VP)((UB *)mblk + MEMBLKSIZE);		}				/* 肌のブロックへ渴む */		mblk = (T_KERNEL_MEM_BLK *)((UB *)mblk + mblk->size + MEMBLKSIZE);	}	return NULL;	/* 鄂きが痰い */}/* ------------------------------------------------------------------------ *//*  Copyright (C) 1998-2002 by Project HOS                                  *//* ------------------------------------------------------------------------ */

⌨️ 快捷键说明

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