### 表 5-1　メモリ管理ルーチンでページ・サイズに依存する可能性のある部分

引数 | Alphaシステムの動作
--- | ---
Adjust Working SetLimit ($ADJWSL)ルーチン
pagcnt | 現在のワーキング・セット・リミットに加算される (またはワーキング・セット・リミットから減算される)ページ数を指定する。 | 値をページレットとして解釈し， CPU固有のサイズのページを表現するために切り上げるか，または切り捨てる。
wsetlm | 現在のワーキング・セット・リミットの値を指定する。 | 値をページレットとして解釈し， CPU固有のサイズのページを表現するために切り上げるか，または切り捨てる。
Create Process ($CREPRC)ルーチン
quota | 省略時のワーキング・セット・サイズ， ページング・ファイル・クォータ，ワーキング・セット拡張クォータなど， ページ・カウントを指定する複数のクォータ記述子を受け付ける。 | 値をページレットとして解釈し， CPU固有のサイズのページを表現するために切り上げるか，または切り捨てる。
Create Virtual Address ($CRETVA)ルーチン
inadr | 割り当てられるメモリの先頭のアドレスと末尾のアドレスを指定する。 末尾アドレスが先頭アドレスと同じである場合には，1ページが割り当てられる。 | CPU固有のページ境界にアラインされるように， アドレスは切り上げられるか，または切り捨てられる。
retadr | 呼び出しの影響を受けるメモリの実際の先頭アドレスと末尾アドレスを指定する。 | 変更されない。
Create and Map Section ($CRMPSC)ルーチン
inadr | 再びマッピングされる領域を定義する先頭アドレスと末尾アドレスを指定する。 末尾アドレスが先頭アドレスと同じである場合には，1ページがマッピングされる。 ただし，SEC$M_EXPREGフラグが設定されている場合には，割り当てが P0空間であるのか，P1空間であるのかを判断し， その結果をもとに先頭アドレスが解釈される。 | アドレスはCPU固有のページにアラインしなければならない (SEC$M_EXPREGフラグが設定されていない場合)。切り上げや切り捨ては実行されない (マッピングについての詳しい説明は第5.3節を参照)。
retadr | 呼び出しの影響を受けるメモリの実際の先頭アドレスと末尾アドレスを指定する。 | 使用可能なアドレス範囲の先頭アドレスと末尾アドレスを戻す。 これはマッピングされた合計サイズと異なる可能性がある。 relpag 引数を指定した場合には，この引数も指定しなければならない。
flags | 作成またはマッピングされるセクションのタイプと属性を指定する。 | フラグ・ビットSEC$M_NO_OVERMAPは， 既存のアドレス空間をマッピングしてはならないことを示す。 フラグ・ビットSEC$M_PFNMAPがセットされている場合には，pagcnt引数は CPU固有のページとして解釈され，ページレットとしては解釈されない。
relpag | セクション・ファイルのマッピングを開始するページ・ オフセットを指定する。 | セクション・ファイルへのインデックスとして解釈され， 単位はページレットであると解釈される。
pagcnt | マッピングされるファイル内のページ数(ブロック数)を指定する。 | ページレットとして解釈される。切り上げや切り捨ては実行されない。 フラグ・ビットSEC$M_PFNMAPがセットされている場合には，pagcnt 引数は CPU固有のページとして解釈され，ページレットとしては解釈されない。
pfc | ページ・フォルトが発生したときにマッピングしなければならないページ数を指定する。 | CPU固有のサイズのページとして解釈される。 この引数の値を指定する場合には，各物理ページに対して少なくとも 16ページレットがマッピングされることを考慮しなければならない。これは， Alphaシステムが8Kバイト，16Kバイト，32Kバイト， 64Kバイトの物理ページ・サイズをサポートするからである。 システムが物理ページより小さいサイズをマッピングすることはできない。
Delete Virtual Address ($DELTVA)ルーチン
inadr | 割り当てが解除されるメモリの先頭アドレスと末尾アドレスを指定する。 | CPU固有のページ境界にアラインされるように， アドレスは切り上げられるか，または切り捨てられる。
retadr | 削除されたメモリの実際の先頭アドレスと末尾アドレスを指定する。 | 変更されない。
Expand Program/Control Region ($EXPREG)ルーチン
pagcnt | 512バイト単位で割り当てるメモリ・サイズを指定する。 | ページレットとして解釈される。
retadr | 呼び出しの影響を受けるメモリの実際の先頭アドレスと末尾アドレスを指定する。 | 変更されない。
Get Job/Process Information ($GETJPI)ルーチン
itmlst | プロセスに関して戻される情報を指定する。 | JPI$_WSEXTENTなど， 多くの項目はページレット単位の値として解釈される。詳しくは 『OpenVMS System Services Reference Manual』を参照。
Get Queue Information ($GETQUI)ルーチン
itmlst | func 引数によって指定された関数を実行するときに使用される情報を指定する。 | いくつかの項目はページレット単位の値として解釈される。詳しくは 『OpenVMS System Services Reference Manual』を参照。
Get Systemwide Information ($GETSYI)ルーチン
itmlst | 1つ以上のノードに関して戻される情報を指定する。 | 一部の項目はページレット単位の値として解釈される。 SYI$_PAGE_SIZEという追加項目は，ノードがサポートするページ・サイズを指定する。 詳しくは『OpenVMS System Services Reference Manual』を参照。
Get User Authorization Information ($GETUAI)ルーチン
itmlst | ユーザのユーザ登録ファイルからどの情報が戻されるかを指定する。 | 一部の項目はページレット単位の値を戻す。詳しくは 『OpenVMSSystem Services Reference Manual』を参照。
Lock Page($LCKPAG)ルーチン
inadr | ロックされるメモリの先頭アドレスと末尾アドレスを指定する。 | CPU固有のページ境界にアラインされるように， アドレスは切り上げられるか，または切り捨てられる。
retadr | ロックされたメモリの実際の先頭アドレスと末尾アドレスを指定する。 | 変更されない。
Lock Working Set ($LKWSET)ルーチン
inadr | ロックされるメモリの先頭アドレスと末尾アドレスを指定する。 | CPU固有のページ境界にアラインされるように， アドレスは切り上げられるか，または切り捨てられる。
retadr | 実際にロックされたメモリの先頭アドレスと末尾アドレスを指定する。 | 変更されない。
Map Global Section ($MGBLSC)ルーチン
inadr | 再びマッピングされる領域を定義する先頭アドレスと末尾アドレスを指定する。 末尾アドレスが先頭アドレスと同じである場合には，1ページがマッピングされる。 ただし，SEC$M_EXPREGフラグがセットされている場合には， 割り当てがP0空間で実行されるのか，P1空間で実行されるのかを判断し， その結果に従って先頭アドレスが解釈される。 | アドレスは CPU固有のページにアラインしなければならない (SEC$M_EXPREGフラグが設定されていない場合)。 アドレスの切り上げや切り捨ては実行されない(マッピングについての詳しい説明は 第5.3節を参照)。
retadr | 呼び出しの影響を受けたメモリの実際の先頭アドレスと末尾アドレスを指定する。 | マッピングされたメモリの使用可能な部分の先頭アドレスと末尾アドレスを戻す。
relpag | セクション・ファイルのマッピングを開始するページ・オフセットを指定する。 | セクション・ファイルに対するインデックスとして解釈され， 単位はページレットであると解釈される。
Purge Working Set ($PURGWS)ルーチン
inadr | パージされるメモリの先頭アドレスと末尾アドレスを指定する。 | CPU固有のページ境界にアラインされるように， アドレスは切り上げられるか，または切り捨てられる。
Set Protection ($SETPRT)ルーチン
inadr | 保護されるメモリの先頭アドレスと末尾アドレスを指定する。 | CPU固有のページ境界にアラインされるように， アドレスは切り上げられるか，または切り捨てられる。
retadr | 保護されたメモリの実際の先頭アドレスと末尾アドレスを指定する。 | 変更されない。
Set User Authorization File ($SETUAI)ルーチン
itmlst | ユーザのユーザ登録ファイルからどの情報を設定するかを指定する。 | いくつかの項目はページレット単位の値として解釈される。 詳しくは『OpenVMSSystem Services Reference Manual』を参照。
Send to Job Controller ($SNDJBC)ルーチン
itmlst | func引 数によって指定された関数を実行するときに使用される情報を指定す る。 | いくつかの項目はページレット単位の値として解 釈される。詳しくは『OpenVMS System Services Reference Manual』を参照。
Unlock Page ($ULKPAG)ルーチン
inadr | アンロックされるメモリの先 頭アドレスと末尾アドレスを指定する。 | CPU固有のページ境界にアラインされるように， アドレスは切り上げられるか，または切り捨てられる。
retadr | アンロックされたメモリの実際の先頭アドレスと末尾アドレスを指定する。 | 変更されない。
Unlock Working Set ($ULWSET)ルーチン
inadr | アンロックされるメモリの先頭アドレスと末尾アドレスを指定する。 | CPU固有のページ境界にアラインされるように， アドレスは切り上げられるか，または切り捨てられる。
retadr | アンロックされたメモリの実際の先頭アドレスと末尾アドレスを指定する。 | 変更されない。
Update Section ($UPDSEC)ルーチン
inadr | ディスクに書き込むセクションの先頭アドレスと末尾アドレスを指定する。 | CPU固有のページになるように要求は切り上げられるか， または切り捨てられる。 ディスク上の記憶空間によって表現される実際のアドレス範囲だけがディスクに書き込まれる。
retadr | ディスクに書き込まれたメモリの実際の先頭アドレスと末尾アドレスを指定する。 | CPU固有のページ境界にアラインされるように， アドレスは切り上げられるか，または切り捨てられる。

[ 本文に戻る ]