FSOverlayID, FS_[LTD}OVERLAY_ID, FS_EXTERN_[LTD]OVERLAY

# FSOverlayID, FS_OVERLAY_ID, FS_EXTERN_OVERLAY

# FS_LDTOVERLAY_ID, FS_EXTERN_LDTOVERLAY

## 定義

  `#include <nitro/fs.h>`
  `

      typedef u32 FSOverlayID;
      #define  FS_EXTERN_OVERLAY(name)   extern u32 SDK_OVERLAY_ ## name ## _ID[1]
      #define  FS_OVERLAY_ID(name)       ((u32)&(SDK_OVERLAY_ ## name ## _ID))
      #define	FS_EXTERN_LTDOVERLAY(name)  extern u32 SDK_LTDOVERLAY_ ## name ## _ID[1]
      #define	FS_LTDOVERLAY_ID(name)      ((u32)&(SDK_LTDOVERLAY_ ## name ## _ID))

  `

## 説明

`FS_LoadOverlay()`、`FS_UnloadOverlay()` に指定するオーバーレイモジュールのIDを定義します。
これらは makerom によりリンク時に生成されるので、プログラム側では以下のように使用します。
(1) .lsf ファイルにてオーバーレイを指定します。
例:
`Overlay overlay_1
{
After main
Object func_1.o
}`
(2) プログラム内にてマクロを使用してオーバーレイIDを宣言します。
例:
`FS_EXTERN_OVERLAY(overlay_1);`
(3) FS_LoadOverlay関数、FS_UnloadOverlay関数にオーバーレイIDを指定します。
例:
`FS_LoadOverlay(MI_PROCESSOR_ARM9, FS_OVERLAY_ID(overlay_1));`
または
`FSOverlayID id = FS_OVERLAY_ID(overlay_1);
FS_LoadOverlay(MI_PROCESSOR_ARM9, id);`
`FS_EXTERN_LTDOVERLAY, FS_LTDOVERLAY_ID` については、LTD 領域でオーバーレイを使用する場合に、`FS_EXTERN_OVERLAY, FS_OVERLAY_ID` の代わりに 使用するものとなります。

## 参照

`FSOverlayInfo
FS_LoadOverlayInfo FS_LoadOverlay FS_UnloadOverlay`

## 履歴

2009/11/11 FS_EXTERN_LTDOVERLAY, FS_LTDOVERLAY_ID についての説明追加
2005/06/02 &を&amp;へ修正
2004/11/02 構造体定義をヘッダファイルと同一に訂正
2004/09/24 リンク修正
2004/04/08 FSOverlayID の型変更による記述修正
2004/04/05 初版