Basic System Problem Analysis - August 2003
9
Process Management Structures
These are the fundamental process management structures and their types. DEBUG, DAT
and SAT provide functions that return pointers to these structures. These functions are:
PIB - returns a pointer to the PIB for a given pin
Example: fv pib(5) ‘pib_type’
PIBX - returns a pointer to the PIBX for a given pin
Example: fv pibx(pin) ‘pibx_type’
PCB - returns a pointer to the PCB for a given pin
Example: fv pcb(200) ‘pcb_type’
PCBX - returns a pointer to the PCBX for a given pin
Example: fv pcbx(10) ‘pcbx_type’
The PIB contains information about a given process. The type for the PIB is divided into
functional areas such as:
DISPATCH_INFO which contains linkages to the dispatcher run queues.
IO_AREA which contains information about outstanding non-memory management I/O
requests for the process.
PIB_ERROR_STACK is the area that holds that status of errors or warnings. The values
in this stack are of type “HPE_STATUS” and are pushed onto this stack by the procedure
HPERRPUSH. The PM_ERRORS macro will dump this stack but often times it is useful
to dump it raw, e.g. DV PIB(PIN)+350,20 so you can see all the errors, even those that
are not current. The PM_ERRORS macro will only dump the active part of the error
stack.
Decoding HPE_STATUS errors is accomplished using the ERRMSG function in DAT
and DEBUG, for example given an HPE_STATUS of fffd008f decoding would be:
$1d5 ($21d) nmdat > wl errmsg(S16(fffd), 8f)
Intrinsic layer; an access violation occurred.
The “S16” function is used so that “fffd” is treated as a signed quantity rather than as the
low 16 bits of a 32 bit quantity.