Shinobi Library

1998/10/4


メモリマネジメント関数

0.概要

OSの介在しないSHINOBIライブラリ下において、メモリの管理を行います。
初期化関数以外の仕様は、関数自体の名前が異なる以外は、C標準関数の「malloc」と同一です。
仕組みの詳細については、こちらをご覧ください。

1.データ型

2.関数仕様

2.1関数一覧

関数 機能
syMallocInitメモリ管理関数の利用するメモリエリアの確保と宣言
syMalloc メモリの確保
syFree メモリの開放
syMallocStat取得可能な最大連続メモリサイズ及び空き領域サイズの取得
syMallocFinishMallocシステムの終了

2.1関数API


syMallocInit

[関数]
Void syMallocInit(Void *heap, Uint32 size);
[入力]
heap
管理を任せる領域の先頭アドレス
size
管理を任せるサイズ
[出力]
なし
[戻値]
なし
[機能]
syMalloc ライブラリに管理を任せる領域を指定し、ライブラリを初期化します。
本関数は、sbInitSystem関数内で実行されます。
sbInitSystem関数でのデフォルト値は以下の通りです。

ヒープ領域の先頭アドレス:Bセクションの終わり
ヒープのサイズ :メモリの最後まで

[注意点]
本関数は、Bセクション以降をメモリアロケート空間と見なし、メモリの内容を初期化します。
もし、Bセクション以降にユーザセクションが存在していた場合、そこを初期化してしまいます。
ユーザセクションを割り当てる際は、必ずBセクションよりも手前に置く必要があります。

syMalloc

[関数]
Void *syMalloc(Uint32 size);
[入力]
size
要求するサイズ(byte)
[出力]
なし
[戻値]
確保した領域へのポインタ
NULL の場合は、確保失敗

[機能]
Cの標準関数のmalloc(size) と同じです。
本関数は必ず32バイトアラインメントでメモリを確保します。
データサイズを32バイトバウンダリで定義する事で、メモリ効率のよいメモリアロケーションが可能です。

syFree

[関数]
Void syFree(void *ap);
[入力]
開放したい領域を示すポインタ
[出力]
なし
[戻値]
なし
[機能]
free(*ap)と同じ

syMallocStat

[関数]
Void syMallocStat( Uint32 *free, Uint32 *size );
[入力]
free
利用可能なヒープの残り
size
一回の確保で可能な最大サイズ
[出力]
free
利用可能なヒープの残り
size
一回の確保で可能な最大サイズ
[戻値]
なし
[機能]
syMallocInitで確保したヒープのうちで未使用の領域の総和および、一回のsyMallocで獲得可能な最大サイズを取得します。

syMallocFinish

[関数]
Void syMallocFinish
[入力]
なし
[出力]
なし
[戻値]
なし
[機能]
Mallocシステムを終了します。その際にsyMallocInitで確保したヒープは開放されます。

オーバービューに戻る

TOPに戻る
Copyright 1998 SEGA Enterprises, LTD.