OS_VisitAllocated

構文

#include <iris/os.h>
void OS_VisitAllocated( OSArenaID id, OSAllocVisitor visitor );

引数

id メモリブロックのあるアリーナのアリーナID
visitor 各メモリブロックに対して呼ぶ関数(定義については下の説明の項を参照)

返り値

なし。

説明

指定のアリーナに含まれるヒープに割り当てられているメモリブロック全てに対し、ユーザが指定した関数 visitor を呼ばせます。
アリーナはアリーナID で指定します。この値については OS_InitArena() を参照してください。

visitor の型 OSAllocVisitor は次のように定義されています。

typedef void (*OSAllocVisitor)( void* obj, u32 size );

最初の引数はメモリブロックへのポインタで、第2引数はメモリブロックの大きさです。
ポインタは、管理ヘッダではなく、実際のデータ領域へのポインタとなります。
大きさは、単位はbyteで、そのメモリブロックがヒープの中で占める大きさから管理ヘッダの大きさを除いたものです。

参照

OS_InitArena, OS_InitAlloc, OS_AllocFromHeap

履歴

2004/01/07 初版