(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.