# OS_VisitAllocated

## 構文

      #include <nitro/os.h>

      void OS_VisitAllocated( OSArenaID id, OSAllocVisitor visitor );

## 引数

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

## 返り値

なし。

## 説明

指定のアリーナに含まれるヒープに割り当てられているメモリブロック全てに対し、ユーザが指定した関数 visitor を呼ばせます。

アリーナはアリーナID id で指定します。この値については `OS_InitArena()` を参照してください。

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

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

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

## 参照

`OS_InitArena, OS_InitAlloc, OS_AllocFromHeap
`

## 履歴

2004/01/07 初版