Generated from C.70.00 /SYS/PUB/CICAT last modified on Mon Feb 16 17:55:04 2004
Syntax: PINFO(pinID, item [,status])
Defn: A CI evaluator function that returns information about
the specified process or thread.
Type: String, integer, or Boolean depending upon item.
Parms:
pinID: Required. String or integer identifying the target process.
Format is: nnn, "[#P]nnn" or "[#P]nnn.tid", where "nnn" is a
number, and "tid" is an optional thread ID. Zero or "0"
indicates the target process is the caller.
Item: Required. String label specifying which information is to
be returned.
Status: Optional. CI variable name where a PINFO error number can be
returned. Zero indicates success. Non-zero indicates a
failure. Error values returned in 'status' are the same as
the CIERROR value when an error occurs. If the 'status'
parm is passed the CI will not set CIERROR and will not
report an error message. If 'status' is not specified the
CI performs its normal error handling.
Example: PINFO('#P78', "alive")
Result: TRUE
Example: PINFO( 0, 'QPri')
Result: C152
Example: PINFO( 123, 'children')
Result: 8/41 44 56 73 81 92 107 112
Example: PINFO( PINFO( 0, "parent"), 'procType')
Result: MAIN # process type of caller's parent #
PINFO enforces the same security as the SHOWPROC command and the
SHOWCONN utility. See these commands for the details.
The following table summarizes the items of the PINFO function. The
description includes the item string, one or more aliases, the data
type, and a brief description of the item.
Item String Type * Description
------------ ---- --------------------------------------------
Alive bool True if pin is alive (not dead)
Boosted bool True if pin's priority has been boosted
BoostReason string 'NO BOOST','OWNS PRI SEMA','OWNS SIR','LONG
SYS TRANS','BREAK','BLOCKED UNPREEMPTABLE',
'IPC SERV CONTENTION',LONG USER TRANS',
'OWNS PRI SEMA PORT','PRI OSCILLATION'
BoostType string 'NO BOOST','LINEAR','DECAY'
Child int pin of first child process
ChildPin int same as 'child'
Children string list of all descendant pins, format:
'total/pin1 pin2 ... pinN'. Note that
truncation is evident when 'total' is >
than the number of pins returned, e.g.
:setvar x pinfo('123','children')
:if wordcnt(x) < ![word(x,'/')] then
# truncation occurred...
ChildrenPins string same as 'children'
CMask int POSIX cmask for file creation security
CMMode bool True if pin is currently in CM
CMProg bool True if pin is a CM program (PROG filecode)
CPUMilliSec int number of milliseconds of CPU
Creator int creator pin, usually the parent pin
CreatorPin int same as 'creator'
CriticalDepth int > 0 means process is critical and cannot be
aborted
EGID int POSIX effective group ID
EUID int POSIX effective user ID
ExecState string execution state: 'BLOCK MEM MGR','BLOCK CB',
'BLOCK MSG','READY','BLOCK TERM'
Exist bool True if the target pin exists in any state
Exists bool same as 'exist'
FmtCPUMilliSec string formatted CPU time 'MM:SS.mls' or 'HH:MM:SS'
FmtEGID string formatted EGID ('account name')
FmtEUID string formatted EUID ('user.account')
FmtGID string formatted GID ('account name')
FmtPID string MPE internal process ID: 'pin reuse_cnt'
FmtUID string formatted UID ('user.account')
FmtWaitMilliSec string formatted CPU time 'MM:SS.mls' or 'HH:MM:SS'
GID int POSIX group ID
HasSIR bool true if pin owns a SIR
HPEPri int internal priority in the range 0..32767; a
higher number is greater priority
InBreak bool true if pin is in break mode
Info string * info= string with all lockwords removed
InfoString string same as 'info'
InitThreadPin int the PIN of the initial thread, 0 if not a
thread
IntProcType int process type, 0=user, 1=son, 2=usermain,
3=task, 4=system, 5=detach, 6=jsmain
IntWaitReason int see 'waitreason' item
IPAddr string ** IP address in dotted format (xx.xx.xx.xx)
JobNum string job/session ID, '#J|Snnn'
JSMAIN int pin of JSMAIN process
JSMAINPin int same as 'jsmain'
Linear bool true if process priority does not decay
LinearPriority bool same as 'linear'
MPECmask int internal MPE cmask
MPEPri int MPE external priority in the range 0..255; a
higher number is less priority
NumFilesOpen int number of open files including system files
NumOpenFiles int same a 'numopenfiles'
NumPINs int number of descendant processes
NumProcesses int same as 'numpins'
Parent int parent pin
ParentPin int same as 'parent'
Parm int run/creation parm= value
PendingIOCount int total IOs outstanding for pin
PendIOs int same as 'pendingiocount'
PIN int pin, useful if target pin is a thread
PriAfterBoost int pin priority when boost period is over
ProcState string 'DYING','DEAD','ALIVE','INITIATE',
'UNBORN' -- only 'alive' is expected
ProcType string 'USER','SON','MAIN','TASK','SYSTEM',
'DETACH','JSMAIN'
Program string * MPE or POSIX name of program file
ProgramName string same as 'program'
PxPID int POSIX PID: 16 bit re-use cnt, 16 bit PIN
QPri string scheduling queue followed by MPE priority
QueuePriority string same as 'qpri'
SchedQ string scheduling queue, 'AS','BS,'CS','DS','ES'
SchedQueue string same as 'schedq'
SchedState string 'EXECUTING','READY','SHORT WAIT','LONG WAIT'
SecondaryThreads string list of secondary threads in the same format
as used by "Children"
Setdump bool true if SETDUMP enbabled
Sibling int first sibling pin
SiblingPin int same as 'sibling'
SystemDepth int system code depth, >0 means in system code
ThreadID int TIN (thread ID number), 1 for non-threaded
processes, > 1 for threaded processes
ThreadType string 'NONE','INITIAL','SECONDARY'
TIN int same as 'threadid'
UID int POSIX user ID
UnboostPri int same as 'priafterboost'
UserAcct string 'user.account'
UserProcess bool true if pin is a user process, process type
is 0,1,2
WaitMilliSec int time pin has been waiting (need MI)
WaitReason string 'PAGE FLT NM CODE','PAGE FLT NM STK','PAGE
FLT NM TRANSIENT','PAGE FLT FILE','PAGE FLT
CM CODE','PAGE FLT CM STK','PAGE FLT CM
TRANSIENT' (above 7 require MI),'TERMINAL
READ','TERMINAL WRITE','DISC IO','OTHER IO',
'IPC TRANS COMPLETE','SIR','RIN','MM
PREFETCH','EXPIRED QUANTUM','TIMER','PARENT'
'CB','CHILD','DATA COMM','RIT','DISP WORK',
'PORT','MAIL','JUNK','MSG','IMPEDE','BREAK',
'WAIT QUEUE','MEM MGR','PORT BLOCK','FILE
BLOCK','FILE UNBLOCK','STORAGE MGT','DEBUG
MSG','IO CONF','PFP REPLY','DBMON','FILL
DISC','HILO','FS TERM IO','MM POST','SIG
TIMER','PREEMPTION','DISC IO PREMPTION','PRI
PREEMPTION','SQL LOCK','SQL LATCH','SQL
BUFF','LONG PAUSE','MM FREEEZE','RELEASE',
'DEFERRED PREEMPT','MM PSEUDO IO READ','MM
PSEUDO IO WRITE','OTHER','NOT WAITING',
'DEAD PROCESS'
WG string workgroup name
WorkGroup string same as 'wg'
* 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.