Everything

sac_mem

概要
メモリ・オブジェクトのアクセス許可ベクタの変更
C言語形式
 ER      sac_mem ( VP base, ACVCT *p_acvct );
パラメータ
I/O
パラメータ
説明
I
 VP      base;
メモリ・オブジェクトの先頭アドレス
I
 ACVCT   *p_acvct;
アクセス許可ベクタを格納した領域へのポインタ

【 アクセス許可ベクタACVCTの構造 】
 typedef struct  acvct {
         ACPTN   acptn1;         /*オペランド・リード・アクセス許可パターン*/
         ACPTN   acptn2;         /*オペランド・ライト・アクセス許可パターン*/
         ACPTN   acptn3;         /*実行アクセス許可パターン*/
 } ACVCT;

機能
本サービス・コールは,信頼されたドメインに所属するタスクからのみ呼び出せます。
先頭アドレスがbaseのメモリ・オブジェクトのアクセス許可ベクタを,p_acvctで指定された内容に変更します。
戻り値
マクロ
数値
意味
E_OK
0
正常終了
E_PAR
-17
パラメータ・エラー
- p_acvct == NULL
- acptn1 == acptn2 == acptn3 == 0
- acptn1acptn2,またはacptn3の最大ドメインID(VTMAX_DOMAIN)より大きなドメインIDに対応するビットが1。
E_CTX
-25
コンテキスト・エラー
- CPUロック状態から本サービス・コールを発行した。
- 非タスクから本サービス・コールを発行した。
- 「PSW.IPL > カーネル割り込みマスクレベル」の状態から本サービス・コールを発行した。
E_MACV
-26
メモリ・アクセス違反
- スタック・ポインタが呼出しタスクのユーザ・スタック領域の範囲外を指している。
- 呼び出しタスクからのp_acvctが示す領域に対するオペランド・リード・アクセス許可がない。
E_OACV
-27
オブジェクト・アクセス違反
- 呼出しタスクは,信頼されたドメインに所属していない。
- あるドメインにアクセス許可されるメモリ・オブジェクトが7個を超える。
E_NOEXS
-42
オブジェクト未生成
- 先頭アドレスがbaseのメモリ・オブジェクトが存在しない。