Guardian Procedure Calls Reference Manual

Z^TPCERROR
indicates the outcome of the Guardian process creation. This parameter is the same as the
error parameter reported by PROCESS_LAUNCH_. For details, see Table 35 (page 1061) and
Table 36 (page 1069). See also the PROCESS_CREATE_ procedure Nowait Considerations
(page 1115).
Z^TPCDETAIL
returns additional information about some classes of Guardian errors. This parameter is the
same as the error-detail parameter reported by PROCESS_LAUNCH_. For details, see
Table 35 (page 1061) and Table 36 (page 1069).
Nowait Considerations
If you call this procedure in a nowait manner, the results are returned in the nowait
PROCESS_SPAWN_ completion message (-141), not the output parameters of the procedure. The
format of this completion message is described in the Kernel-Managed Swap Facility (KMSF)
Manual. If Z^TPCERROR is not 0, no completion message is sent to $RECEIVE. Errors can be
reported either on return from the procedure, in which case the error output parameters might
be meaningful, or through the completion message sent to $RECEIVE.
NOTE: The nowait-tag parameter will remain as an INT(32) data type in pTAL and an
__int32_t data type in C. 64-bit callers who specify an address for this parameter need to
specify a 32-bit address rather than a 64-bit address.
64-bit Considerations
64-bit callers can use the PROCESS_SPAWN_ procedure in a restricted mixed-mode environment.
All pointer parameters must be allocated from 32-bit addressable memory using the malloc32()
procedure. Parameters can be allocated from 32-bit addressable memory similar to the following
example:
struct process_extension _ptr32 * proc_ext;
proc_ext=(struct process_extension _ptr32 *)
malloc32(sizeof(struct process_extension));
The following pointer parameters must point to 32-bit addressable memory:
oss-program-file
fdinfo (and the fdentry sub-structure)
argv
envp
inheritance
process-extension
process-results
path
Note that the fdinfo and fdentry structures contain contain the fields z_cwd and z_name which
are also pointers to 32-bit addressable memory.
The nowait-tag parameter remains as an __int32_t data type in C. 64-bit callers that specify
an address for this parameter need to specify a 32-bit address rather than a 64-bit address.
PROCESS_SPAWN_ Procedure 1115