HP 3000 Manuals

General Information About How the Intrinsics Work [ HP DeskManager Intrinsics ] MPE/iX 5.0 Documentation


HP DeskManager Intrinsics

General Information About How the Intrinsics Work 

System Security 
[REV BEG]

An application must provide a sign on password (if one is set) before it
can perform any operations with the Intrinsics.  In addition, all
database access is confined to the son Driver process, so preventing any
unauthorized access to it from the application program.[REV END]

Another important security provision prevents messages being sent on
behalf of others without authority.  The User Intrinsics may only send
messages from the user which the application has signed on to.  The
HPDGateSend intrinsic is only able to send messages from users associated
with the signed on gateway, that is only from users on mailnodes routed
out through that gateway.

These security features prevent unauthorized people sending messages on
behalf of other users, for example, the Managing Director, or reading
messages addressed to other users.

Parameter Passing 

All parameters passed to the Intrinsics are passed by REFERENCE, that is
the address of a parameter is passed rather than its value.

Parameter Types 

The parameter types that are passed to the Intrinsics are shown below:

Integer Parameters (I) 

All binary numbers are passed as 32-bit integer values which can range
from -2,147,483,648 to 2,147,483,647.  These are declared as follows:

Pascal:               INTEGER

COBOL:                PIC S9(9) COMP

FORTRAN:              INTEGER *4

Status Parameter (S) 

This is an array of 12 32-bit integers used to return information about
the success of an Intrinsic call.  Typical definitions might be:

Pascal:               Type STATUS_TYPE = ARRAY[1..12] OF INTEGER;
                      Var STATUS : STATUS_TYPE;

COBOL:                03 STATUS Pic S9(9) COMP OCCURS 12

FORTRAN:              INTEGER *4 STATUS (12)


NOTE A definition of the Status Parameter is provided in the Pascal and FORTRAN Include Files, and in the COBOL Copy Library.
Byte Arrays These are for passing character based information. Pascal string constructs should not be used for this purpose. Pascal: Type PACn = PACKED ARRAY [1..n] OF CHAR; Var BYTE_ARRAY : PACn; COBOL: 03 BYTE-ARRAY Pic X OCCURS n FORTRAN: CHARACTER *n BYTE_ARRAY When byte arrays are passed as parameters, the Intrinsics concerned expect them to have a certain length. Byte arrays longer than expected can be passed as parameters; the excess will be ignored. Values passed in byte arrays should be left justified. Records If records are to be used as parameters, their format can be found in the relevant include files. Status Returns Every call to an Intrinsic has a status parameter. This is a 12 byte array and is used to give the result of the Intrinsic call. Its 12 elements are used as described below: STATUS [1] Describes in broad terms the result of the Intrinsic call. Subsequent elements in the STATUS array provide additional information as follows: STATUS [2] Reserved for future use STATUS [3] Number of erroneous transactions in the Transaction File (where relevant) STATUS [4] Position in file of first erroneous transaction (where relevant). A value of 0 refers to the first record in the file, and so on. STATUS [5] Subsystem error (where relevant) 1 - FS error 2 - IMAGE error 10 - CREATEPROCESS error 11 - PROCINFO error 12 - GENMESSAGE error 13 - JOBINFO error 14 - SENDMAIL/RECEIVEMAIL error 15 - HPSWITCHTOCM error (MPE/XL only) STATUS [6] Error value if STATUS [5] <> 0. For example, if STATUS [5] has a value of 1, STATUS [6] gives the number of the FS error which has occurred STATUS [7-12] Other, dependent on STATUS [1] The STATUS [1] field will have a value in the range -32768 to 32767 and all error numbers will have a unique meaning regardless of sign. If its value is 0, the Intrinsic call was successfully completed without any errors or exception conditions. If the main status field is positive this indicates that one of two things has happened. Either the call was successful but an exception condition arose which fell inside the "limits of acceptable failure" as defined in the Session Profile file, or some other warning condition arose. If the main status field is negative, this either indicates an exception condition outside the "limits of acceptable failure" or some other failure condition which results in termination of processing. Error Condition STATUS[1] STATUS[3] STATUS[4] Process to end? None 0 0 0 Yes Exception within acc. >0 n n Yes failure warning >0 n n Yes outside acc. <0 n n No failure Failure <0 n n No A full list of status returns is given in Appendix B . Split-Stack Calls Split-stack calls to the Intrinsics are not supported.


MPE/iX 5.0 Documentation