Guardian Procedure Calls Reference Manual (G06.25+)

Guardian Procedure Calls (P)
Guardian Procedure Calls Reference Manual522629-013
12-148
PROCESS_LAUNCH_ Procedure
Program file and user library file differences
A user library is an program file containing one or more procedures. The
difference between a program file and a library file is that the library file cannot
contain a MAIN procedure; a program file must contain a MAIN procedure.
Undefined external references in a program file are resolved from the user library,
if any, or the system library. Unresolved references in a library are resolved only
from the system library.
Library conflict: PROCESS_LAUNCH_ error
The library file for a process can be shared by any number of processes.
However, when a program is shared by two or more processes, all non-PIC
processes must have the same user library configuration; that is, all non-PIC
processes sharing the program either have the same user library, or they have no
user library. A library conflict error occurs when there is already a copy of the
non-PIC program running with a library configuration different from that specified in
the call to PROCESS_LAUNCH_.
This error is also generated if a user library file is specified when running an older
TNS program containing an implicit user library. (Prior to the D30.00 RVU, a large
TNS program file could be created with 16 segments of user code and up to 16
additional segments mapped as a user library. Subsequently, the user code and
user library limits were raised to 32 segments each, and the binder stopped
creating programs with an implicit user library.)
Device subtypes for named processes (process subtypes)
The device subtype (or process subtype) is a program file attribute that can be set
by either a TAL compiler directive at compile time,
nld flag at link time, or Binder
command at bind time. You can obtain the device type and subtype of a named
process by calling FILE_GETINFO[BYNAME]_ , FILEINFO, or DEVICEINFO.
Note that a process with a device subtype other than 0 must always be named.
There are 64 process subtypes available, where 0 is the default subtype for
general use. The other subtypes are as follows:
1 — 47 are reserved for definition by HP. Currently, 1 is a CMI process, 2
is a security monitor process, 30 is a device simulation process,
and 31 is a spooler collector process. Also, for subtypes 1 to 15,
PROCESS_LAUNCH_ rejects the create request with an invalid
process subtype error unless the caller has a creator access ID of
the super ID, or the program file is licensed, or the program file has
the PROGID attribute set and an owner of the super ID.
48 — 63 are for general use. Any user can create a named process with a
device subtype in this range.
Refer to Appendix A for a list of all device types and subtypes.