HELPLIB.HLB  —  RTL Routines, LIB$  LIB$PUT_INVO_REGISTERS
    (Alpha and I64 only.) The Put Invocation Registers routine
    modifies specified values in a procedure's invocation context.
    A procedure's invocation context consists of the values stored in
    the integer and floating-point registers as well as the program
    counter and the processor status registers.

    LIB$PUT_INVO_REGISTERS updates internal register save areas with
    the new values. These values are written to the active register
    set by the time control returns to the procedure asociated with
    the specified invocation handle.

    Format

      LIB$PUT_INVO_REGISTERS   invo_handle, invo_context, invo_mask

1  –  Returns

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

    Status value. A value of 1 indicates success. When the initial
    context represents the bottom of the call chain, a value of 0 is
    returned.

2  –  Arguments

 invo_handle

    OpenVMS usage:invo_handle
    type:         longword (unsigned)
    access:       read only
    mechanism:    by value

    Handle for the invocation to be updated.

 invo_context

    OpenVMS usage:invo_context_blk
    type:         structure
    access:       read only
    mechanism:    by reference

    Address of an invocation context block that contains the values
    to be written to the registers.

    Each register that is set in the invo_mask parameter is updated
    using the value found in the corresponding IREG or FREG field of
    the invocation context block. The program counter and processor
    status of the given invocation can also be updated in this way.
    No other fields of the invocation context block are used.

 invo_mask

    OpenVMS usage:mask_quadword
    type:         quadword (unsigned)
    access:       read only
    mechanism:    by reference

    Address of a 64-bit vector, where each bit corresponds to a
    register field in the passed invo_context. Bits 0 through 29
    correspond to IREG[0] through IREG[29], bit 30 corresponds
    to STACK_POINTER and cannot be changed, bit 31 corresponds to
    PROGRAM_COUNTER, bits 32 through 62 correspond to FREG[0] through
    FREG[30], and bit 63 corresponds to PROCESSOR_STATUS.
Close Help