• 検索結果がありません。

システム状態管理機能

ドキュメント内 px100.book (ページ 106-110)

第 3 章 従来機能の変更 25

3.8 システム状態管理機能

システム状態管理機能には,システム状態のアクセス許可ベクタを設定/変更 する機能と,実行状態のタスクの所属保護ドメイン IDを参照する機能を追加 する.また,参照できるシステム状態に追加がある.

システム状態のパケット形式に,アクセス許可ベクタを追加する.

typedef struct t_rsys {

ACVCT acvct ; /* システム状態のアクセス許可ベク

タ  */

/* 実装独自に他のフィールドを追加してもよい  */

} T_RSYS ;

システム状態管理機能の新規サービスコールの機能コードは次の通りである.

TFN_SAC_SYS –0x62 sac_sysの機能コード TFN_GET_DID –0x57 get_didの機能コード

SAC_SYS

システム状態のアクセス許可ベクタの設定(静的 API)

sac_sys

システム状態のアクセス許可ベクタの変更

【静的 API】

SAC_SYS ( ACVCT acvct ) ;

【 C言語 API】

ER ercd = sac_sys ( ACVCT *p_acvct ) ;

【パラメータ】

ACVCT acvct システム状態のアクセス許可ベクタ

【リターンパラメータ】

ER ercd 正常終了( E_OK)またはエラーコード

【エラーコード】

E_PAR パラメータエラー( p_acvct, acvctが不正)

【機能】

システム状態に対するアクセス許可ベクタを, acvctで指定されるアクセス許 可ベクタに設定する.

get_did

実行状態のタスクの所属保護ドメイン IDの参照

【 C言語 API】

ER ercd = get_did ( ID *p_domid ) ;

【パラメータ】

なし

【リターンパラメータ】

ER ercd 正常終了( E_OK)またはエラーコード

ID domid 実行状態のタスクの所属する保護ドメインの

ID番号

【エラーコード】

E_PAR パラメータエラー( p_domidが不正)

【機能】

実行状態のタスク(タスクコンテキストから呼び出された場合は,自タスクに 一致する)の所属する保護ドメインの ID番号を参照し, domidに返す.

【補足説明】

タスクから呼び出された拡張サービスコールルーチン内で get_didを呼び出し た場合には,拡張サービスコールを呼び出したタスクの所属する保護ドメイン の ID番号が返る.また,タスクを実行中に起動された CPU例外ハンドラ(タ スクコンテキストで動作する場合)内で get_didを呼び出した場合には, CPU 例外を発生させたタスクの所属する保護ドメインの ID番号が返る.

呼び出した処理単位の所属する保護ドメイン(拡張サービスコール内で呼び出 した場合にはカーネルドメイン)を参照する機能や,拡張サービスコールを呼 び出した処理単位の所属する保護ドメインを参照する機能は,この仕様では用 意していない(将来のバージョンで用意する可能性はある).

非タスクコンテキスト用の iget_didについても,必要性が明らかでないため,

この仕様では用意していない.

ref_sys

システムの状態参照

【 C言語 API】

ER ercd = ref_sys ( T_RSYS *pk_rsys ) ;

【パラメータ】

T_RSYS * pk_rsys システム状態を返すパケットへのポインタ

【リターンパラメータ】

ER ercd 正常終了( E_OK)またはエラーコード pk_rsysの内容( T_RSYS型)

ACVCT acvct システム状態のアクセス許可ベクタ

(実装独自に他の情報を追加してもよい)

【エラーコード】

E_PAR パラメータエラー( pk_rsysが不正)

【機能】

システムの状態を参照し, pk_rsysで指定されるパケットに返す.

acvctには,システム状態のアクセス許可ベクタを返す.

ドキュメント内 px100.book (ページ 106-110)