Communicator e3000 MPE/iX Release 7.0 Express 1 (Software Release C.70.01) (30216-90328)
158 Chapter6
Technical Articles
ci enhancements
* indicates further restrictions apply to these items: you must have SM capability, or the
PIN must be you, or the user.account of the PIN must be the same as your user.account
and JOBSECURITY is low. Otherwise, the item is not returned and an error is generated.
** indicates you must have at least one of SM,OP,NA,NM,PM capabilities.
PINFO is a CI interface to the AIFPROCGET Architected Interface. In many cases there is
a one-to-one mapping of a PINFO item and the associated item retrieved via
AIFPROCGET. However, there are also many PINFO items that are formatted based on
the raw data returned by the AIF. Below are a few notes on a subset of the returned
PINFO items.
children - as mentioned above, the format for the returned string of all decendant
processes is: 'NNN/pin1 pin2 ... pinN', where the actual (real) number of descendants is
returned to the left of the '/' delimiter. CI string variables are currently limited to 1024
characters, and thus, subject to truncation if there are a large number of descendant
processes. Even if the returned string is truncated the number left of the '/' is the true
number of descendants. The easiest way to detect truncation is to compare the number of
tokens in the returned string versus the first number in the string. For example:
setvar kids PINFO('1234', 'children')
setvar num_tokens WORDCNT(kids) # '/' is not a delimiter to WORDCNT
setvar num_kids ![WORD(kids, '/')] # convert to integer
if num_kids <> num_token then # truncation
There is no work-around for truncation, other than choosing a PIN closer to the end of the
process tree. Also note that the target PIN is not counted as a descendant nor is it included
in the string of children. The same format and truncation logic applies to the
secondarythreads item.
cmask - MPE stores a process' file creation default security (cmask) differently from the
POSIX representation. PINFO returns the POSIX version and the MPE version of the
cmask. For POSIX, the cmask is the ones compliment of the nine file permissions: read,
write, execute access for Owner, for Group and for Other. The shell's umask and umask -S
commands provide cmask information.
The mpecmask item returns the internal MPE cmask as shown below:
1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
---------------------------------|--------------------------------|--------------------------------|----------
|R W X A L TdRdCdDd|R W X A L TdRdCdDd|R W X A L TdRdCdDd|I x x x x|
---------------------------------|--------------------------------|--------------------------------|----------
OWNER GROUP OTHER