# EL_Link*

## 構文

  `#include <twl/el.h>`
  `ELDlld EL_Link( ELReadImage readfunc, u32 len, void* buf );`
  `ELDlld EL_LinkFile( const char* FilePath, void* buf);`
  `ELDlld EL_LinkImage( void* obj_image, u32 obj_len, void* buf );`

## 引数

readfunc | ユーザー独自の READ 関数
FilePath | 登録する動的モジュールのパス名
obj_image | 登録する動的モジュールのメモリ上のアドレス
len / obj_len | 登録する動的モジュールのサイズ
buf | 動的モジュールの登録先となるバッファ

## 返り値

登録に成功した場合、登録した動的モジュールが返ってきます。
登録に失敗した場合は 0 が返ってきます。

## 説明

動的モジュールをELライブラリに登録します。
`EL_Link()` は、ユーザーが指定した READ 関数を使用して、動的モジュールを読み込みます。
`EL_LinkFile()` は、登録する動的モジュールを ROM から読み込みます。
`EL_LinkImage()` は、メモリに読み込み済みの動的モジュールを使用します。
buf には、`EL_CalcEnoughBufferSizeforLink*()` で求めたサイズ以上の 領域を確保しておく必要があります。
また、あくまで動的モジュールの登録先のバッファは buf なので、`EL_LinkImage()` で動的モジュールの登録作業を行う場合には、 一時的に動的モジュール(ELFファイル)のサイズ分のバッファ(obj_image)が追加で必要となることに注意してください。

注意
デバッガを利用して動的モジュールをデバッグできるのは `EL_LinkFile()` を使用した場合のみという点に注意してください。
また、通常は本関数ではなく `EL_Link*Ex()` を使用するようにしてください。

## 参照

`EL_Link*Ex, EL_CalcEnoughBufferSizeforLink*, ELReadImage`

## 履歴

2009/03/16 `EL_Link*Ex()` の使用の推奨を追加
2009/01/30 buf に確保するサイズについて説明変更
2008/10/02 buf に確保するサイズについて説明追加
2008/04/22 デバッガについて追記
2008/04/14 `EL_LinkFile()` の仕様変更
2007/08/21 初版