EL_Link*Ex

構文

#include <twl/el.h>

ELDlld EL_LinkEx( ELReadImage readfunc, u32 len, void* buf, u32 buf_size );
ELDlld EL_LinkFileEx( const char* FilePath, void* buf, u32 buf_size );
ELDlld EL_LinkImageEx( void* obj_image, u32 obj_len, void* buf, u32 buf_size );

引数

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

返り値

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

説明

動的モジュールをELライブラリに登録します。

EL_LinkEx() は、ユーザーが指定した READ 関数を使用して、動的モジュールを読み込みます。
EL_LinkFileEx() は、登録する動的モジュールを ROM から読み込みます。
EL_LinkImageEx() は、メモリに読み込み済みの動的モジュールを使用します。

buf には、EL_CalcEnoughBufferSizeforLink*() で求めたサイズ以上の 領域を確保しておく必要があります。
buf_size に指定したサイズで足りなかった場合、リンク処理は途中で失敗します。その後 EL_GetResultCode() を呼び出すと EL_RESULT_NO_MORE_RESOURCE が返ります。

また、あくまで動的モジュールの登録先のバッファは buf なので、EL_LinkImageEx() で動的モジュールの登録作業を行う場合には、 一時的に動的モジュール(ELFファイル)のサイズ分のバッファ(obj_image)が追加で必要となることに注意してください。

注意
デバッガを利用して動的モジュールをデバッグできるのは EL_LinkFileEx() を使用した場合のみという点に注意してください。

参照

EL_CalcEnoughBufferSizeforLink*, ELReadImage

履歴

2009/03/16 初版