VMS Help
RTL Routines, LIB$, LIB$DECODE_FAULT
*Conan The Librarian (sorry for the slow response - running on an old VAX)
|
|
The Decode Instruction Stream During Fault routine is a tool
for building condition handlers that process instruction fault
exceptions. It is called from a condition handler.
This routine is not available to native OpenVMS Alpha programs
but is available to translated VAX images.
Format
LIB$DECODE_FAULT signal-arguments ,mechanism-arguments
,user-procedure [,unspecified-user-argument]
[,instruction-definitions]
OpenVMS usage:cond_value
type: longword (unsigned)
access: write only
mechanism: by value
signal-arguments
OpenVMS usage:vector_longword_unsigned
type: unspecified
access: read only
mechanism: by reference, array reference
Signal arguments array that was passed from the OpenVMS operating
system to your condition handler. The signal-arguments argument
is the address of the signal arguments array.
mechanism-arguments
OpenVMS usage:vector_longword_unsigned
type: unspecified
access: read only
mechanism: by reference, array reference
Mechanism arguments array that was passed from OpenVMS to your
condition handler. The mechanism-arguments argument is the
address of the mechanism arguments array.
user-procedure
OpenVMS usage:procedure
type: procedure value
access: call after stack unwind
mechanism: by descriptor, procedure descriptor
User-supplied action routine that LIB$DECODE_FAULT calls to
handle the exception. The user-procedure argument is the address
of a descriptor pointing to your user action routine. The user-
procedure argument may be of type "procedure value" when called
by languages with up-level addressing. If user-procedure is not
of type "bound routine value," it is assumed to be the address of
an entry mask.
unspecified-user-argument
OpenVMS usage:user_arg
type: longword (unsigned)
access: read only
mechanism: by value
Additional information passed from your handler without
interpretation to your user action routine. The unspecified-
user-argument argument contains the value of this additional
information. The unspecified-user-argument argument is optional;
if it is omitted, zero is used as the default.
instruction-definitions
OpenVMS usage:vector_byte_unsigned
type: byte (unsigned)
access: read only
mechanism: by reference, array reference
Array of bytes specifying instruction opcodes and operand
definitions that are to replace or supplement the standard
instruction definitions. The instruction-definitions argument
is the address of this array.
If instruction-definitions is omitted, only the standard
instruction definitions are used. If supplied, instruction-
definitions is searched first, followed by the standard
definitions.
Each instruction definition consists of a series of bytes, the
first one or two of which is the instruction opcode. If the
instruction is a 2-byte opcode, the escape byte, which must
be hex FD, FE, or FF, is placed in the first of the two bytes.
Following the opcode may be from 0 to 16 operand definition
bytes. These bytes indicate the operand's access type and data
type.
The end of each instruction definition is denoted by a byte
containing the value LIB$K_DCFOPR_END (zero). The list of
instruction definitions is terminated by two bytes, each of which
contains the value -1 (hexadecimal FF).
[legal]
[privacy]
[GNU]
[policy]
[netiquette]
[sponsors]
[FAQ]
Polarhome, production since 1999.
Member of Polarhome portal.