MPE/iX Intrinsics Reference Manual (32650-90875)
448 Chapter8
Command Definitions (HPMERGEEND-LOGSTATUS)
HPSWTONMNAME
nparms
16-bit signed integer by value (required)
Passes the number of parameters to be passed to the target NM procedure.
It specifies the length of the
argdesc
array. Account for any hidden
parameters (for example, parameters, an extensible parameter list, and so
forth).
arglist
16-bit signed integer array by reference (required)
Passes the actual parameters to be passed in the NM procedure.
argdesc
16-bit signed integer array by reference (required)
Passes integer codes describing the parameters held in the
arglist
array.
Refer to Switch Programming Guide for code descriptions.
functype
16-bit signed integer by value (required)
Passes the data type of the value the target procedure returns if it is a
function. If the target is not a function, the value of this parameter is zero.
Refer to Switch Programming Guide for possible values.
Operation Notes
Do not use HPSWTONMNAME to invoke a native mode (NM) system supplied intrinsic. The
result of the call may be unpredictable.
NM code can address the entire CM stack, so there is no copying of reference parameters.
The length of each parameter is not needed because lengths are implied in the descriptor
list.
Switches by name involve high system overhead on the first call per name, but
substantially lower overhead on each subsequent call for that name. The HPSWTONMNAME,
HPSWITCHTOCM, HPLOADCMPROCEDURE, and HPLOADNMPROC intrinsics perform a hashing
function on the name of the other-mode procedure and store the plabel for that procedure
in a system internal hash table. The LOADPROC intrinsic, does not perform hashing and
involves high system overhead each time it is called.
The strings supplied as values of the
procname
and
libname
parameters must exactly
match the names of the target NM routine and its NM library, respectively.
NOTE
By default, the search for the referenced library occurs in the procedure's
group and account. In order to reference a library in some other group and/or
account, you must be sure that
libname
is a fully qualified name
(name.group.account)
Related Information
Manual Switch Programming Guide