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.