OSDN Git Service

(none)
[hos/hos-v4a.git] / aplfw / library / container / automemheap / automemheap_constructor.c
1 /** 
2  *  Hyper Operating System  Application Framework
3  *
4  * @file  automemheap_alloc.c
5  * @brief %jp{メモリヒープクラス}%en{auto size memory heap class}
6  *
7  * Copyright (C) 2006-2008 by Project HOS
8  * http://sourceforge.jp/projects/hos/
9  */
10
11
12 #include <stdio.h>
13 #include "automemheap_local.h"
14
15
16
17 /** %jp{MemHeapクラス 仮想関数テーブル}%en{MemHeap class virtual function table} */
18 const static T_MEMHEAP_METHODS AutoMemHeap_Methods =
19         {
20                 AutoMemHeap_Alloc,                      /**< メモリの割り当て */
21                 AutoMemHeap_ReAlloc,            /**< メモリの再割り当て */
22                 AutoMemHeap_Free,                       /**< メモリの開放 */
23                 AutoMemHeap_GetSize,            /**< メモリのサイズ取得 */
24                 AutoMemHeap_GetAlign,           /**< メモリアライメントの取得 */
25                 AutoMemHeap_AlignSize,          /**< サイズをアライメント単位に拡張 */
26         };
27
28
29
30 /** %jp{コンストラクタ} */
31 void AutoMemHeap_Constructor(C_AUTOMEMHEAP *self, C_MEMHEAP *pMemHeap)
32 {
33         /* %jp{親クラスコンストラクタ} */
34         MemHeap_Constructor(&self->MemHeap, &AutoMemHeap_Methods);
35         
36         /* メンバ変数設定 */
37         self->pValList = NULL;
38         self->pFixList = NULL;
39         self->pMemList = NULL;
40         
41         self->ValSize = 4096;
42         self->FixSize = MemHeap_AlignSize(&self->MemHeap, 16);
43         self->FixNum  = 4096 / self->FixSize;
44         self->iValMax = 16;
45         self->iFixMax = 16;
46 }
47
48
49 /* end of file */