System Debug Reference Manual (32650-90888)

418 Chapter10
System Debug Standard Functions
func nmentry
are passed in arg0 (r26), arg1 (r25), arg2 (r24), and arg3 (r23). Each may
contain
any
value up to 32 bits in length. The called code must know how
to interpret these values. If the called routine has fewer parameters, the
zeros passed in the remaining argument registers are harmless. If the
called routine has additional parameters, their values are undefined. Be
sure
you understand the procedure calling conventions and the
parameter type alignment restrictions imposed by the various language
compilers before trying to pass complicated parameters.
Examples
$nmdat > wl nmcall("nl.pub.sys/CLOCK")
$d1f3709
$ nmdat > wl nmcall("CLOCK")
$d1f3b00
Call the CLOCK intrinsic which is in the system library. Since that library is part of every
process's loaded file list, the library name is optional.
Limitations, Restrictions
This function is not supported in SAT.
Debug only is affected by the following restrictions. Currently, you must have privileged
mode (PM) to call this function. Furthermore, only code that has been running at privilege
level 0, 1, or 2 (see the PRIV environment variable) is able to use this function. This is due
to security problems that would occur due to the internal implementation of the function.
CAUTION
Because the called code runs on the stack above the debugger, it is possible
for the called code to write into the stack space where the debugger currently
exists. It is conceivable that a process abort or even system abort could result
when returning from the called code due to modification of the debugger's
portion of the stack.
func nmentry
Returns the entry point of the NM procedure containing the indicated address.
Syntax
nmentry (
virtaddr
)
Formal Declaration
nmentry:lptr (
virtaddr
:ptr)