Guardian Procedure Calls Reference Manual

TargetIPU
output
INT .EXT:ref:1
on successful return, contains the IPU number associated with the target process.
Options
output
INT(32) .EXT:ref:1
on successful return, contains the IPU affinity options associated with this process. This is a bit
mask (with bit 0 being the high-order bit, and bit 31 being the low-order bit) defined as follows:
The process is not currently bound to an IPU via IPUAFFINITY_SET_.0<31>
The process is currently bound to the TargetIPU.1
The process can be set via IPUAFFINITY_SET_.0<30>
The process cannot be set via IPUAFFINITY_SET_.1
These bits are reserved and return undefined values.<0:29>
Returned Value
INT
A file system error code that indicates the outcome of the call:
FEOK0
The procedure executed successfully.
FEBOUNDSERR14
The specified ProcessHandle refers to an invalid or non-existent process.
FEBOUNDSERR22
An invalid address was specified for one of the parameters.
Considerations
CAUTION: For a process that is not currently bound to an IPU via a prior call to IPUAFFINITY_SET_,
this procedure returns the IPU number currently associated with the process, which can dynamically
change at any time.
There are no security restrictions on the caller of this interface.
If a system process that is not subjected to the IPU affinity settings is specified (see
Considerations (page 745) under IPUAFFINITY_SET_), then Options bit 30 will be set to 1 to
indicate this.
Example
The following C example obtains the IPU affinity of the $XYZ process:
int16 err=FEOK;
int16 tgt_phandle[10]={0};
uint16 tgt_ipu;
uint32 aff_options;
err=FILENAME_TO_PROCESSHANDLE_("$XYZ", strlen("$XYZ"),
&tgt_phandle);
if (err == FEOK)
{
err = IPUAFFINITY_GET_(&tgt_phandle,&tgt_ipu, &aff_options);
if (err)
IPUAFFINITY_GET_ Procedure 741