イベント通知

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

初期化時に致命的なエラーが発生した

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終端)

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_LOADINGSOLID_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 イベントのみ有効)

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

アドレス

IMPL_CS_EventNotify

void IMPL_CS_EventNotify(enum SOLID_CS_EVENTID evtId, void *pInfo)

コアサービス内の初期化に関するイベントを通知します

特定の初期化後に実装側で処理を行いたい場合に、この関数を利用してください

パラメータ:
  • evtId -- イベント種別

  • pInfo -- 追加情報