/sys$common/syshlp/HELPLIB.HLB  —  System Services, $ADJSTK
    Modifies the stack pointer for a less privileged access mode.
    The operating system uses this service to modify a stack pointer
    for a less privileged access mode after placing arguments on the
    stack.

    Format

      SYS$ADJSTK  [acmode] ,[adjust] ,newadr

    C Prototype

      int sys$adjstk  (unsigned int acmode, short int adjust, void

                      *(*(newadr)));

1  –  Arguments

 acmode

    OpenVMS usage:access_mode
    type:         longword (unsigned)
    access:       read only
    mechanism:    by value
    Access mode for which the stack pointer is to be adjusted. The
    acmode argument is this longword value. If not specified, the
    default value 0 (kernel access mode) is used.

 adjust

    OpenVMS usage:word_signed
    type:         word (signed)
    access:       read only
    mechanism:    by value
    Signed adjustment value used to modify the value specified by the
    newadr argument. The adjust argument is a signed longword, which
    is the adjustment value.

    Only the low-order word of this argument is used. The value
    specified by the low-order word is added to or subtracted
    from (depending on the sign) the value specified by the newadr
    argument. The result is loaded into the stack pointer for the
    specified access mode.

    If the adjust argument is not specified or is specified as 0, the
    stack pointer is loaded with the value specified by the newadr
    argument.

 newadr

    OpenVMS usage:address
    type:         longword (unsigned)
    access:       modify
    mechanism:    by reference
    Value that adjust is to adjust. The newadr argument is the
    address of this longword value.

    The value specified by this argument is both read and written
    by $ADJSTK. The $ADJSTK service reads the value specified and
    adjusts it by the value of the adjust argument (if specified).
    After this adjustment is made, $ADJSTK writes the adjusted value
    back into the longword specified by newadr and then loads the
    stack pointer with the adjusted value.

    If the value specified by newadr is 0, the current value of the
    stack pointer is adjusted by the value specified by adjust. This
    new value is then written back into newadr, and the stack pointer
    is modified.
Close Help