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のメモリ・オブジェクトが存在しない。