イベント通知
SOLID-OSは、コアサービス内の機能の初期化終了時や、特定処理の実行時に イベントを通知します。
要実装関数
イベント通知関連の要実装関数の定義は、impl_cs_event.h
にあります。
#include "impl_cs_event.h"
SOLID_CS_EVENTID
-
enum SOLID_CS_EVENTID
イベント種別
定数
-
enumerator SOLID_CS_ENTRY
コアサービスが起動開始した
-
enumerator INIT_MEM
メモリが初期化された
-
enumerator INIT_IORES
IOリソースが初期化された
-
enumerator INIT_INTC
割り込みが初期化された
-
enumerator INIT_TIMER
タイマが初期化された
-
enumerator INIT_LOG
ログ出力が初期化された
-
enumerator INIT_FS
ファイルシステムが初期化された
-
enumerator INIT_LDR
ローダーが初期化された
-
enumerator ENABLE_INT
割り込みが有効になった
-
enumerator INIT_FATFS
FATFSが初期化された
-
enumerator INIT_SANITIZER
サニタイザが初期化された
-
enumerator INIT_NET
ネットワークが初期化された
-
enumerator START_KERNEL
RTOS(NonOS時は起動アドレス)を起動しようとした
-
enumerator LDR_LOADING
ローダーがロードを開始した
-
enumerator LDR_LOADED
ローダーがロードを完了した
-
enumerator LDR_UNLOADING
ローダーがアンロードを開始した
-
enumerator LDR_UNLOADED
ローダーがアンロードを完了した
-
enumerator LDR_SYMBOL
ローダーがロード中にシンボルを解決した
-
enumerator LDR_UNRESOLVED
ローダーが未解決シンボル情報を通知した
-
enumerator INIT_ERR
初期化時に致命的なエラーが発生した
-
enumerator SOLID_CS_ENTRY
SOLID_CS_EVENT_INFO_INIT_ERR
-
typedef struct _SOLID_CS_EVENT_INFO_INIT_ERR_ SOLID_CS_EVENT_INFO_INIT_ERR
-
struct _SOLID_CS_EVENT_INFO_INIT_ERR_
説明
初期化エラー通知時(
SOLID_CS_EVENTID.INIT_ERR
)の追加情報構造体定義
typedef struct _SOLID_CS_EVENT_INFO_INIT_ERR_ { int ercd; const char* pStr; } SOLID_CS_EVENT_INFO_INIT_ERR;
メンバー
-
int ercd
エラーコード(SOLID_ERR_XXX)
-
const char *pStr
エラー詳細の文字列(NULL終端)
-
int ercd
SOLID_CS_EVENT_INFO_LDR
-
typedef struct _SOLID_CS_EVENT_INFO_LDR_ SOLID_CS_EVENT_INFO_LDR
-
struct _SOLID_CS_EVENT_INFO_LDR_
説明
ローダー通知時(
SOLID_CS_EVENTID.LDR_LOADING
~SOLID_CS_EVENTID.LDR_UNLOADED
)の追加情報構造体定義
typedef struct _SOLID_CS_EVENT_INFO_LDR_ { const char* pName; const char* pPath; SOLID_ADDRESS offset; SOLID_ADDRESS tlsOffset; } SOLID_CS_EVENT_INFO_LDR;
メンバー
-
const char *pName
ロードオブジェクト名(NULL終端)
-
const char *pPath
ロードオブジェクトのビルド時パス名(NULL終端)
-
SOLID_ADDRESS offset
ロード先アドレス (
LDR_LOADED
イベントのみ有効)
-
SOLID_ADDRESS tlsOffset
TLSベースオフセット (
LDR_LOADED
イベントのみ有効)
-
const char *pName
SOLID_CS_EVENT_INFO_LDR_SYMBOL
-
typedef struct _SOLID_CS_EVENT_INFO_LDR_SYMBOL_ SOLID_CS_EVENT_INFO_LDR_SYMBOL
-
struct _SOLID_CS_EVENT_INFO_LDR_SYMBOL_
説明
シンボルを解決通知時(
SOLID_CS_EVENTID.LDR_SYMBOL
)の追加情報構造体定義
typedef struct _SOLID_CS_EVENT_INFO_LDR_SYMBOL_ { const char* pName; SOLID_ADDRESS addr; } SOLID_CS_EVENT_INFO_LDR_SYMBOL;
メンバー
-
const char *pName
シンボル名(NULL終端)
-
SOLID_ADDRESS addr
アドレス
-
const char *pName
IMPL_CS_EventNotify
-
void IMPL_CS_EventNotify(enum SOLID_CS_EVENTID evtId, void *pInfo)
コアサービス内の初期化に関するイベントを通知します
特定の初期化後に実装側で処理を行いたい場合に、この関数を利用してください
- パラメータ
evtId -- イベント種別
pInfo -- 追加情報