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.