Predefined Diagnostic Resource Object Class

The Predefined Diagnostic Resource object class (PDiagRes) identifies the resources supported by diagnostics and provides additional information needed to test the resource.

The PDiagRes object class structure is defined as:


class PDiagRes {
                    char Uniquetype[48];
                    short Ports;
                    short PSet;
                    short PreTest;
                    char AttUniquetype[48];
                    short SupTests;
                    short Menu;
                    short DNext;
                    vchar DaName[255];
                    char PkgBlock[5];
                    vchar EnclDaName[255];
                    vchar SysxApp[255];
                    vchar SupTasks[255];
                    long FFC;
                    short Fru;
                    long TestSuiteId;
                    long DiagEnvironment;
                    vchar KernExt[255];
                    char Version[5];
                    };
Parameter Description
Uniquetype Predefined device "class/subclass/type."
Ports Indicates if the device will be represented in the Resource Selection menu by its children. The intent is to use device names that are well known to the user (for example, printers rather than serial ports). The values are as follows:
DIAG_NO (0)
Child devices should not be defined.
DIAG_YES (1)
Child devices should be defined.

When determining whether a child device should be defined, consider whether the device is self-determining. Will the mkdev command be unsuccessful if the device is not really there?

PSet Identifies the message set in either dcda.cat or the diagnostic application catalog file reserved for the device. If the Ports field is not equal to 0, the first message in the set describes the adapter port. This adapter text is used in place of the real device text so that the customers are not misled into thinking that they have devices that are not actually present. The additional messages are used for reason-code text, which the DAs name when reporting FRUs.

The diagnostic application catalog file should be used by all diagnostic applications integrated into the Diagnostic Package. This capability allows for greater flexibility in installing and maintaining the diagnostic code. To use this catalog file, set bit DIAG_DA_SRN in the Menu field.

PreTest Indicates that the device should be tested before the system is brought up. Pretest occurs when the system is initial-program loaded with the key in service position. The keyboard device, native serial ports, and display adapters are normally pretested.
AttUniquetype The device class/subclass/type of the child device to define when the Ports field is set. The device named should include a set of device drivers that contain support for diagnostics.
SupTests Identifies the types of tests supported by the DA. See Staging the Impact of Diagnostics for more information. More than one of the following types may be specified:
SUPTESTS_SHR (0x0001)
Shared tests are supported.
SUPTESTS_SUB (0x0002)
Sub-tests are supported.
SUPTESTS_FULL (0x0004)
Full-tests are supported.
SUPTESTS_MS1 (0x0008)
An optional procedure that determines why the device was not detected. This procedure is typically specified for devices that have external power supplies. This procedure is associated with the first selection at the Missing Resource menu.
SUPTESTS_MS2 (0x0010)
An optional procedure that performs device-specific actions when a device is removed. For example, the DA might notify a subsystem (LVM) that a physical resource (disk) has been removed. Or the DA might provide warning about deleting a device. If this procedure is not specified, the Diagnostic Controller deletes the device. If it is specified, the DA should delete the device. Devices are deleted by calling the device's Undefine Method. This procedure is associated with the second selection at the Missing Resource menu.
Menu Identifies the diagnostic menus in which the device should be included. The values are as follows:
DIAG_DTL (0x0001)
The Diagnostic Test List menu.
DIAG_NOTDLT (0x0002)
Indicates that the device should not be allowed to be deleted from the Diagnostic Test List menu; for example, the VME adapters in the external display enclosure.
DIAG_DS (0x0004)
Indicates that the device should be included in the Diagnostic Selection menu.
DIAG_CON (0x0008)
Indicates that the device should be put in the Resource Selection menu if no children are attached; otherwise, the child device is put in the menu and the named device is not.
DIAG_DA_SRN (0x0010)
Indicates that the device's SRN text resides in the diagnostic applications catalog file.
DNext Indicates the resource to be tested next. The values are as follows:
DIAG_PAR (0x0001)
The parent resource.
DIAG_SIB (0x0002)
A sibling resource.
DaName The name of the DA associated with the device.
PkgBlock The block number that includes the DA associated with the device for the Removable Media Diagnostic package. This value should be an "S" if the DA is on a Supplemental Diskette, or a "3S" if the DA is a graphics adapter that can be used as a console device.
EnclDaName This field names a DA that provides missing-device analysis for an enclosure that is not explicitly represented in the device configuration, but that needs to be processed before the missing device. Many enclosures have their own problem-determination procedures for checking cabling, power, idiot lights, and so on, and frequently, it is helpful to know if a sibling of the missing device in the same enclosure is available.

The specification of a separate DA to missing-device diagnostics for devices not represented (for example, external enclosures or drawers) centralizes this logic in a single command instead of distributing it among each DA supporting a device that can operate in a bridge box or drawer.

For most devices, this field is null. The Diagnostic Controller calls the EnclDaName field, if the user indicates that the device has not been moved or turned off. The EnclDaName field is called before DaName.

SysxApp Identifies the application to invoke that performs a system exerciser function for this resource. While not currently used, this is a reserved field, and should be left blank.
SupTasks Reserved. This field is retained for compatibility and should not be used. For more information, see Predefined Diagnostic Attribute Device.
FFC Failing Function Code for the resource. (may be used to override the PdDv led value)
Fru Field Replaceable Unit indicator. (may be used to override the PdDv fru value):
0
No-Fru
1
Self-FRU
2
Parent-FRU
3
Hybrid - Could be integrated or nonintegrated device.
TestSuiteId Bit mask indicating test suite this resource is a member of:
Bit
Resource
1
Base system (planars, memory, etc.)
2
I/O Device (keyboard, mouse, etc.)
4
Asynchronous Device
8
Graphics
16
SCSI Adapters
32
Storage Device (disks, diskettes, tapes, etc.)
64
Commo
128
Multimedia
256
Miscellaneous Devices
DiagEnvironment Bit mask indicating various test mode environments this resource is capable of running in:
Bit
Environment
1
Supports Diagnostics in concurrent mode
2
Supports ELA
4
LFT Device (should not be run with X)
8
Group Member, set if this resource is part of a conglomerate group, such as memory, or SIMMS.
16
Resource supports ELA in concurrent mode only
32
Resource is not supported under WEBDIAG mode.
64
This object supports multiple resource types. The type for a given resource is found in the CuAt object attribute=aix-subtype. The value of the attribute is the type and is used to find the specific PDiagRes that supports the resource. A value of "nodiag" in the CuAt object indicates that the resource is not supported by diagnostics.
1024
The kernel extensions listed in KernExt are supported on the 64-bit kernel.
KernExt ',' separated list of kernel extensions to load for this resource. Each kernel extension may be preceded by a platform type to indicate the platform that the kernel extension should be loaded on. For example, chrp:device_kext, pdiagex would indicate to always load pdiagex, and to conditionally load device_kext only on a 'chrp' platform. The platform name is derived as the output from the lscfg | grep Architecture command.
Version Version change number for this resource stanza. This value should be 1.0.
Note: All values can be found in header files under /usr/include/diag directory.