[ 前のページ ]
[ 次のページ ]
[ 目次 ]
[ DOC Home ]
特定のシステム・イベントが発生したときに,アプリケーションにそのことを通知するように登録することができます。 たとえば,インスタンスがgalaxy に参加したり,CPUが構成セットに参加したときに,そのことを通知できます。 イベントが登録されると,アプリケーションは登録されたイベントの発生時にどのように応答するかを判断できます。
OpenVMSシステム・イベントが発生したときに,それを通知するための要求を設定します。
SYS$SET_SYSTEM_EVENT event ,astadr ,astprm ,acmode ,flags ,handle
int sys$set_system_event (unsigned int event, void (*astadr)(__unknown_params), int astprm, unsigned int acmode, unsigned int flags, struct _generic_64 * handle);
OpenVMS使用法: event_code タイプ: longword (unsigned) アクセス: read only メカニズム: by value
各イベント・タイプにはシンボル名が割り当てられています。$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 インスタンス内で非アクティブになった。 |
OpenVMS使用法: ast_procedure タイプ: procedure value アクセス: call without stack unwinding メカニズム: by 32-bit or 64-bit reference
OpenVMS使用法: user_arg タイプ: quadword アクセス: read only メカニズム: by value
OpenVMS使用法: access_mode タイプ: longword (unsigned) アクセス: read only メカニズム: by value
各アクセス・モードにはシンボル名が設定されています。$PSLDEFマクロは,4 つのアクセス・モードに対して次のシンボルを定義します。
シンボル名 | 説明 |
---|---|
PSL$C_KERNEL | カーネル |
PSL$C_EXEC | エグゼクティブ |
PSL$C_SUPER | スーパーバイザ |
PSL$C_USER | ユーザ |
指定できるアクセス・モードの最大値は,呼び出しプロセスのアクセス・ モードです。
SYSEVT$M_REPEAT_NOTIFY | このフラグがセットされている場合は, イベント通知が繰り返される。 |
OpenVMS使用法: handle タイプ: quadword (unsigned) アクセス: read/write メカニズム: by reference
指定された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 | システム動的メモリが不十分なので, サービスを完了できない。 |
SYS$SET_SYSTEM_EVENTを呼び出すことで設定された1つ以上の通知要求を削除します。
Clear Eventでは,ハンドルとイベントを指定できません。これらのパラメータのいずれかとして0 を渡さなければなりません。ハンドルを指定してクリアするか, またはユーザのすべてのイベントをクリアすることを要求できます。
SYS$CLEAR_SYSTEM_EVENT [handle] ,[acmode] ,event
int sys$clear_system_event (struct _generic_64 * handle, unsigned int acmode, unsigned int event);
OpenVMS使用法: identifier タイプ: quadword (unsigned) アクセス: read only メカニズム: by reference
OpenVMS使用法: access_mode タイプ: longword (unsigned) アクセス: read only メカニズム: by value
OpenVMS使用法: event_code タイプ: longword (unsigned) アクセス: read only メカニズム: by value
特定の通知要求をクリアするときは, handle を指定します。アクセス・ モードが acmode に等しいか,またはそれ以上のすべての通知オブジェクトをクリアするときは, ワイルドカードを指定できます。
handle 引数を指定した場合は,呼び出し側のアクセス・モードはクリアされるオブジェクトのアクセス・ モードに等しいか,それより低くなければなりません。
SYSEVT$C_ALL_EVENTSを指定した場合や,オブジェクトに対して有効に設定されているイベント・ セットが空になった場合は,通知オブジェクトが削除されます。
なし。
なし。
$SET_SYSTEM_EVENT
SS$_NORMAL | サービスは正常終了した。 |
SS$_ACCVIO | サービスはハンドルによって指定された場所にアクセスできない。 |
SS$_BADPARAM | 1つ以上の引数の値が不正である。 たとえば,ハンドルが不正である。 |
SS$_NOSUCHOBJ | 指定された説明と一致する要求を見つけることができなかった。 |
[ 前のページ ]
[ 次のページ ]
[ 目次 ]
[ DOC Home ]