HELPLIB.HLB  —  RTL Routines, LIB$  LIB$DECODE_FAULT
    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 and I64
    programs but is available to translated VAX images.

    Format

      LIB$DECODE_FAULT  signal-arguments ,mechanism-arguments

                        ,user-procedure [,unspecified-user-argument]

                        [,instruction-definitions]

1  –  Returns

    OpenVMS usage:cond_value
    type:         longword (unsigned)
    access:       write only
    mechanism:    by value

2  –  Arguments

 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).
Close Help