2 * Hyper Operating System Application Framework
4 * @file automemheap_alloc.c
5 * @brief %jp{メモリヒープクラス}%en{auto size memory heap class}
7 * Copyright (C) 2006-2008 by Project HOS
8 * http://sourceforge.jp/projects/hos/
13 #include "automemheap_local.h"
17 /** %jp{MemHeapクラス 仮想関数テーブル}%en{MemHeap class virtual function table} */
18 const static T_MEMHEAP_METHODS AutoMemHeap_Methods =
20 AutoMemHeap_Alloc, /**< メモリの割り当て */
21 AutoMemHeap_ReAlloc, /**< メモリの再割り当て */
22 AutoMemHeap_Free, /**< メモリの開放 */
23 AutoMemHeap_GetSize, /**< メモリのサイズ取得 */
24 AutoMemHeap_GetAlign, /**< メモリアライメントの取得 */
25 AutoMemHeap_AlignSize, /**< サイズをアライメント単位に拡張 */
31 void AutoMemHeap_Constructor(C_AUTOMEMHEAP *self, C_MEMHEAP *pMemHeap)
33 /* %jp{親クラスコンストラクタ} */
34 MemHeap_Constructor(&self->MemHeap, &AutoMemHeap_Methods);
37 self->pValList = NULL;
38 self->pFixList = NULL;
39 self->pMemList = NULL;
42 self->FixSize = MemHeap_AlignSize(&self->MemHeap, 16);
43 self->FixNum = 4096 / self->FixSize;