HELPLIB.HLB  —  System Services, $CMKRNL
    Changes the access mode of the calling process to kernel mode.
    This service allows a process to change its access mode to
    kernel, execute a specified routine, and then return to the
    access mode in effect before the call was issued.

    Format

      SYS$CMKRNL  routin ,[arglst]

    C Prototype

      int sys$cmkrnl  (int (*routin)(__unknown_params), unsigned int

                      *arglst);

1  –  Arguments

 routin

    OpenVMS usage:procedure
    type:         procedure value
    access:       call without stack unwinding
    mechanism:    by reference
    Routine to be executed while the process is in kernel mode. The
    routin argument is the address of this routine.

 arglst

    OpenVMS usage:arg_list
    type:         longword (unsigned)
    access:       read only
    mechanism:    by reference
    Argument list to be passed to the routine specified by the routin
    argument. The arglst argument is the address of this argument
    list.

    If the arglst value is nonzero and is not accessible as an
    address or if the routine is inaccessible, the service returns
    SS$_ACCVIO.

    Alpha systems require a pointer to a valid argument list or a
    value of 0 in the arglst argument. This means that the arglst
    argument must contain an accessible virtual address for an
    argument list, the first longword of which must be a valid list
    size.
Close Help