# OS_FreeAll[To*]

## 構文

      #include <nitro/os.h>

      void OS_FreeAllToHeap( OSArenaId id, OSHeapHandle heap );

      void OS_FreeAllToMain( void );
      void OS_FreeAllToSubPriv( void );
      void OS_FreeAllToMainEx( void );
      void OS_FreeAllToITCM( void );
      void OS_FreeAllToDTCM( void );
      void OS_FreeAllToShared( void );
      void OS_FreeAllToWramMain( void );
      void OS_FreeAllToWramSub( void );
      void OS_FreeAllToSubPrivWram( void );

      void OS_FreeAll( void );

## 引数

id | すべてのメモリブロックを解放するヒープのアリーナのアリーナID
heap | すべてのメモリブロックを解放するヒープのハンドル

## 返り値

なし。

## 説明

割り当てられているすべてのメモリブロックを解放して ヒープ heap に返します。

ヒープのあるアリーナを指定する必要があります。アリーナはアリーナID id で指定します。この値については `OS_InitArena()` を参照してください。

ヒープハンドル heap に OS_CURRENT_HEAP_HANDLE を指定すると、そのアリーナのカレントヒープが指定されたものと見なします。

`OS_FreeAllToMain()` は `OS_FreeAllToHeap( OS_ARENA_MAIN, OS_CURRENT_HEAP_HANDLE, … )` の inline です。
`OS_FreeAllToSubPriv()` は `OS_FreeAllToHeap( OS_ARENA_MAIN_SUBPRIV, OS_CURRENT_HEAP_HANDLE, … )` の inline です。
`OS_FreeAllToMainEx()` は `OS_FreeAllToHeap( OS_ARENA_MAINEX, OS_CURRENT_HEAP_HANDLE, … )` の inline です。
`OS_FreeAllToICTM()` は `OS_FreeAllToHeap( OS_ARENA_ITCM, OS_CURRENT_HEAP_HANDLE, … )` の inline です。
`OS_FreeAllToDTCM()` は `OS_FreeAllToHeap( OS_ARENA_DTCM, OS_CURRENT_HEAP_HANDLE, … )` の inline です。
`OS_FreeAllToShared()` は `OS_FreeAllToHeap( OS_ARENA_SHARED, OS_CURRENT_HEAP_HANDLE, … )` の inline です。
`OS_FreeAllToWramMain()` は `OS_FreeAllToHeap( OS_ARENA_WRAM_MAIN, OS_CURRENT_HEAP_HANDLE, … )` の inline です。
`OS_FreeAllToWramSub()` は `OS_FreeAllToHeap( OS_ARENA_WRAM_SUB, OS_CURRENT_HEAP_HANDLE, … )` の inline です。
`OS_FreeAllToSubPrivWram()` は `OS_FreeAllToHeap( OS_ARENA_WRAM_SUBPRIV, OS_CURRENT_HEAP_HANDLE, … )` の inline です。

`OS_FreeAll()` は ARM9 では `OS_FreeAllToHeap( OS_ARENA_MAIN, OS_CURRENT_HEAP_HANDLE, … )` の inline です。ARM7 では `OS_FreeAllToHeap( OS_ARENA_MAIN_SUBPRIV, OS_CURRENT_HEA_HANDLE, … )` の inline です。

## 参照

`OS_IniteArena, OS_AllocFromHeap, OS_FreeToHeap
`

## 履歴

2004/11/05 初版