HP 3000 Manuals

HPSWITCHTOCM [ MPE/iX Intrinsics Reference Manual ] MPE/iX 5.0 Documentation


MPE/iX Intrinsics Reference Manual

HPSWITCHTOCM 

NM callable only.

Makes native mode (NM) to compatibility mode (CM) mixed-mode procedure
calls possible.

Syntax 
_____________________________________________________
|                                                   |
|                   REC  I32V    I32V     RECA      |
|     HPSWITCHTOCM(proc,method,numparms,parms,      |
|                   I32V  RECV  I16    I32          |
|                  fretlen,fretval,condcode,status);|
_____________________________________________________

            

Parameters 

proc                  record (required) 

                      Passes the target CM procedure identifier, which
                      you can specify either by a library to search and
                      an ASCII name of up to 16 characters or by a CM
                      plabel (obtained from the HPLOADCMPROCEDURE or
                      LOADPROC intrinsic).

                      The structure of the proc record varies, depending
                      on how the target procedure is identified.  All
                      variants have a p_proc_id_type field.

method                32-bit signed integer by value (required) 

                      Passes a value indicating whether the CM target
                      procedure runs in normal, split-stack, or no-copy
                      mode.  Valid values are:

                         Value    Meaning 

                           0      Normal (non-split-stack)

                           1      Split-stack

                           2      No-copy


NOTE If all parameters are within the CM stack or the length of the reference parameters are less than the threshold, use the normal value. If the reference parameters are outside of the CM stack (split-stack), wrap the reference parameters in an extra data segment if the reference parameters are outside of the CM stack (split-stack method). The no-copy method is the same as the split-stack method, except that the threshold check is omitted.
numparms 32-bit signed integer by value (required) The number of parameters you are passing to the CM target procedure. parms array of records (required) Passes descriptions of each parameter being passed to the CM target procedure. Each parameter is located and described by a record in this array. fretlen 32-bit signed integer by value (optional) The length in bytes of the optional functional return value. fretval record by value (optional) NM pointer to the beginning of the area to which the optional functional return value is returned. condcode 16-bit signed integer by reference (optional) Returns the condition code that the target CM procedure returns. Valid values are in the range 0..2.
NOTE If a call to HPSWITCHTOCM fails, the value of the condcode parameter becomes undefined. Before attempting to use the condcode, first check the value of the status parameter.
status 32-bit signed integer by reference (optional) Returns the status of the HPSWITCHTOCM intrinsic call. If no errors or warnings are encountered, status returns 32 bits of zero. If errors or warnings are encountered, status is interpreted as two 16-bit fields. Bits (0:16) comprise status.info. A negative value indicates an error condition, and a positive value indicates a warning condition. Refer to the MPE/iX Error Message Manual Volumes 1, 2 and 3 (32650-90066, 32650-90152, and 32650-90368) for a description of its value. Bits (16:16) comprise status.subsys. The value represented by these bits defines the subsystem that set the status information. The subsystem identifier for HPSWITCHTOCM is 100. Operation Notes There are differences in data and variable representations between NM and CM. Programs that switch from NM to CM must use the HPSWITCHTOCM intrinsic which provides mixed-mode execution access and performs the necessary parameter translation between the two modes of execution. Related Information Intrinsics None Commands None Manuals Switch Programming Guide (32650-90014)


MPE/iX 5.0 Documentation