[ 前のページ ]
[ 次のページ ]
[ 目次 ]
[ DOC Home ]
特定のシステム・イベントが発生したときに,アプリケーションにそのことを通知するように登録することができます。 たとえば,インスタンスがgalaxy に参加したり,CPUが構成セットに参加したときに,そのことを通知できます。 イベントが登録されると,アプリケーションは登録されたイベントの発生時にどのように応答するかを判断できます。
Set System Event (システム・イベントの設定)
OpenVMSシステム・イベントが発生したときに,それを通知するための要求を設定します。
形式:
SYS$SET_SYSTEM_EVENT (event ,astadr ,astprm, acmode, flags,handle)
Cプロトタイプ:
int sys$set_system_event (unsigned int event, void (*astadr)(__unknown_params), int astprm, unsigned int acmode, unsigned int flags, struct _generic_64 * handle;
引数:
event
OpenVMSでの使用方法: | event_ code |
タイプ: | longword (unsigned) |
アクセス: | read only |
メカニズム: | by value |
ASTが配信されるシステム・イベントのタイプを示すイベント・コード。 event引数は,問題のイベントのタイプを示す値です。
各イベント・タイプにシンボル名が割り当てられています。$SYSEVTDEF マクロは次のシンボル名を定義します。
シンボル名 | 説明 |
---|---|
SYSEVT$C_ADD_MEMBER | 1つ以上のOpenVMSインスタンスがOpenVMS Galaxy 共用コミュニティに参加している。 |
SYSEVT$C_DEL_MEMBER | 1つ以上のOpenVMS インスタンスがOpenVMS Galaxy共用コミュニティから離脱した。 |
SYSEVT$C_ADD_ACTIVE_CPU | 1つ以上のプロセッサがこのOpenVMSインスタンス内でアクティブになった。 |
SYSEVT$C_DEL_ACTIVE_CPU | 1つ以上のプロセッサがこのOpenVMSインスタンス内で非アクティブになった。 |
SYSEVT$C_ADD_CONFIG_CPU | 1つ以上のプロセッサがこのOpenVMSインスタンス内でアクティブになった。 |
SYSEVT$C_DEL_CONFIG_CPU | 1つ以上のプロセッサがこのOpenVMSインスタンス内で非アクティブになった。 |
astadr
OpenVMSでの使用方法: | ast_ procedure |
タイプ: | procedure value |
アクセス: | call without stack unwinding |
メカニズム: | by 32-bit or 64-bit reference |
OpenVMSシステム構成が変更された後,制御を受け取る通知ASTルーチン。
astprm
OpenVMSでの使用方法: | user_arg |
タイプ: | quadword |
アクセス: | read only |
メカニズム: | by value |
ASTルーチンに渡されるクォドワードASTパラメータ。
acmode
OpenVMSでの使用方法: | access_ mode |
タイプ: | longword (unsigned) |
アクセス: | read only |
メカニズム: | by value |
システム・イベントASTが実行されたアクセス・モード。acmode引数はアクセス・ モードを格納したロングワードです。
各アクセス・モードにはシンボル名が設定されています。$PSLDEFマクロは,4 つのアクセス・モードに対して次のシンボルを定義します。
シンボル名 | 説明 |
---|---|
PSL$C_KERNEL | カーネル |
PSL$C_EXEC | エグゼクティブ |
PSL$C_SUPER | スーパーバイザ |
PSL$C_USER | ユーザ |
指定できるアクセス・モードの最大値は,呼び出しプロセスのアクセス・ モードです。
flags
SYSEVTDEFで定義。
SYSEVT$M_REPEAT_NOTIFY | このフラグがセットされている場合は, イベント通知が繰り返される。 |
handle
OpenVMSでの使用方法: | handle |
タイプ: | quadword (unsigned) |
アクセス: | read /write |
メカニズム: | by reference |
クォドワード・アライメントされたイベント・ハンドルの仮想アドレス。
説明
Set System Eventサービスは,システム・イベントが発生したときに通知の要求を設定します。 新しいシステム・イベント通知オブジェクトを作成し, イベントを(新しいまたは既存の)オブジェクトに追加し,(新しいまたは既存の) オブジェクトで通知を有効に設定できます。
指定されたhandleが0の場合は,新しいシステム通知要求オブジェクトが作成され, 新しいオブジェクトのハンドルが返されます。
指定されたeventが0以外の値の場合は,イベントがイベント・セットに追加され, 通知オブジェクトで通知が起動されます。
このサービスは,入力パラメータに有効な要求が指定されているかどうか確認し, 通知オブジェクトを有効にします。通知はASTの配布によって実現されます。AST が配布された後,flagがセットされていない場合は, 別の通知(ASTの配布)が発生する前に,オブジェクトで通知を再び有効にしなければなりません。
次の場合はエラーが返されます。
必要な特権
なし。
必要なクォータ
ASTLM
関連サービス
$CLEAR_SYSTEM_EVENT
返される条件値
SS$_NORMAL | サービスは正常終了した。 |
SS$_ACCVIO | サービスは,1 つ以上の引数によって指定された場所にアクセスできない。 |
SS$_BADPARAM | 1 つ以上の引数の値が不正である。 |
SS$_ EXASTLM | プロセスが未処理のASTのクォータを超えた。 |
SS$_INSFMEM | システム動的メモリが不十分なので, サービスを完了できない。 |
Clear System Event (システム・イベントのクリア)
Clear Eventでは,ハンドルとイベントを指定できません。これらのパラメータのいずれかとして0 を渡さなければなりません。ハンドルを指定してクリアするか, またはユーザのすべてのイベントをクリアすることを要求できます。
SYS$SET_SYSTEM_EVENTを呼び出すことで設定された1つ以上の通知要求を削除します。
形式:
SYS$CLEAR_SYSTEM_EVENT [handle], [acmode], event
Cプロトタイプ:
int sys$clear_system_event (struct _generic_64 * handle, unsigned int acmode, unsigned int event);
引数:
handle
OpenVMSでの使用方法: | 識別子 |
タイプ: | quadword (unsigned) |
アクセス: | read only |
メカニズム: | by reference |
クリアするAST要求を指定します。handle引数は要求を一意に識別し,$SET_SYSTEM_EVENT サービスが呼び出されたときに制御を返します。 アドレスとして0を指定すれば,handle引数は省略できます。
acmode
OpenVMSでの使用方法: | access_ mode |
タイプ: | longword (unsigned) |
アクセス: | read only |
メカニズム: | by value |
クリアするシステム・イベントのアクセス・モード。acmode 引数はアクセス・ モードを格納したロングワードです。アクセス・モードの値の最大値は, 呼び出しプロセスのアクセス・モードです。
event
OpenVMSでの使用方法: | event_ code |
タイプ: | longword (unsigned) |
アクセス: | read only |
メカニズム: | by value |
event引数は,クリアするシステム・イベントのタイプを示す値です。SYSEVT$C_ALL_EVENTS を指定すれば,すべてのイベント・タイプをクリアできます。
説明
Clear System Eventサービスは,$SET_SYSTEM_EVENTサービスを呼び出すことで設定された通知オブジェクトまたは1 つ以上のイベント・タイプを削除します。
特定の通知要求をクリアするときは, handle を指定します。アクセス・ モードが acmode に等しいか,またはそれ以上のすべての通知オブジェクトをクリアするときは, ワイルドカードを指定できます。
handle 引数を指定した場合は,呼び出し側のアクセス・モードはクリアされるオブジェクトのアクセス・ モードに等しいか,それより低くなければなりません。
SYSEVT$C_ALL_EVENTSを指定した場合や,オブジェクトに対して有効に設定されているイベント・ セットが空になった場合は,通知オブジェクトが削除されます。
必要なアクセス権または特権
なし。
必要なクォータ
なし。
関連サービス
$SET_SYSTEM_EVENT
返される条件値
SS$_NORMAL | サービスは正常終了した。 |
SS$_ACCVIO | サービスはハンドルによって指定された場所にアクセスできない。 |
SS$_BADPARAM | 1つ以上の引数の値が不正である。 たとえば,ハンドルが不正である。 |
SS$_NOSUCHOBJ | 指定された説明と一致する要求を見つけることができなかった。 |
[ 前のページ ]
[ 次のページ ]
[ 目次 ]
[ DOC Home ]