[ Bottom of Page | Previous Page | Next Page | Contents | Index | Library Home | Legal | Search ]

Understanding the Diagnostic Subsystem for AIX

Diagnostic Object Classes

The Diagnostic Package contains ODM object classes that are used extensively by the Diagnostic components. Some object classes store 'predefined' diagnostic information about the system and resources. Other object classes store 'customized' information that is built and used during runtime operation of diagnostics.

The following is a list of the Diagnostic ODM object classes:

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];
                    };

Parmeter 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.
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 bootinfo -p 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.

Predefined Diagnostic Attribute Device Object Class

The Predefined Diagnostic Attribute Device object class (PDiagAtt) contains device- specific attributes for the DAs, diagnostic controller, and service aids to use.

The PDiagAtt object class structure is defined as:

class PDiagAtt {
                     char DClass[16];
                     char DSClass[16];
                     char DType[16];
                     char attribute[16];
                     vchar value[255];
                     char rep[8];
                     vchar DApp[255];
                     };

Parmeter Description
DClass Predefined device class. Devices are uniquely identified by a combination of DClass, DSClass, and DType.
DSClass Predefined device sub-class. Devices are uniquely identified by a combination of of DClass, DSClass, and DType.
DType Predefined device type.
attribute 16-byte char field. The attribute value used by service aids to determine test mode for devices is test_mode. Uses value field.
value 255-byte variable char field.
rep 8-byte char field.
DApp 255-byte variable char field.

Each field has specific meaning to each application that utilizes the Predefined Diagnostic Attribute Device object class (PDiagAtt).

EXAMPLES:

Predefined Diagnostic Task Object Class

The Predefined Diagnostic Task object class (PDiagTask) identifies the tasks supported by diagnostics and provides additional information needed to execute the task.

The PDiagTask object class structure is:

class PDiagTask {
                     long TaskId;
                     long SetId;
                     long MsgId;
                     long Multisession;
                     short Order;
                     long ResourceFlag;
                     long DiagEnvironment;
                     short Builtin;
                     vchar Action[255];
                     vchar Catalog[255];
                     vchar KernExt[255];
                     short DescriptionSetId;
                     short DescriptionMsgId;
                     char PkgBlock[5];
                     };

Parmeter Description
TaskId Unique number identifying the task.
SetId Catalog set number in either Dctrl.cat for the 'built-in' tasks, or in the catalog file specified for this task. The Setid and Msgid are used to display the task description on the Task Selection Menu.
MsgId Catalog message number in either Dctrl.cat for the 'built-in' tasks, or in the catalog file specified for this task. The Setid and Msgid are used to display the task description on the Task Selection Menu.
Multisession Flag indicating whether multiple instances of this task can be run simultaneously. While not currently used, this is a reserved field, and should be left blank.
0
No
1
Yes
Order Order to display the tasks in the Task Selection Menu. Value of 0 implies no order required, and the task will be placed at the end.
ResourceFlag Flag indicating whether the Resource Selection menu should be presented after the task has been selected. If a resource is selected, then the task will be called with the resource name as a command-line argument to the task. If this value is 0, then the task is invoked directly.
Bit
Task
1
Present Resource Selection menu, and pass in selected Resource
2
Present Resource Section menu, and pass in selected Resources
4
Present Resource Selection menu, and pass in "ALL" if All is selected.
8
Rebuild Resource List after executing Task
16
Search PDiagAtt for DApp associated with Task
32
Task supports No Console mode
64
Task should be supported by all resources.
DiagEnvironment Bit mask indicating various test mode environments this task is capable of running in.
Bit
Mode
1
Service Mode
2
Hardfile
4
Multiple Processor Platform Specific
8
ISA Bus Capability
16
RS6K and RS6KSMP Platform Specific
32
Removable Standalone Media
64
Hidden, do not display in Task Selection List
128
CHRP Platform
256
RSPC Platform
512
Do not display under WEB Diagnostics
1024
Task and the kernel extensions listed in KernExt are supported on the 64-bit kernel.
2048
The task should be queried with the -S flag to determine if it is supported.
Builtin Built-in task (part of the Controller).
Action Basename of the program for this task. If no path given, then the default path of /usr/lpp/diagnostics/bin is used. If a complete path is given, then that path is used.
Catalog Catalog file for this task. Catalog files containing default message text are assumed to be located in /usr/lpp/diagnostics/catalog/default directory. Translated files are assumed to be in /usr/lib/nls/msg/$LANG directories.
KernExt ',' separated list of kernel extensions to load for this task.
DescriptionSetId Catalog set number of the help message text in either Dctrl.cat for the 'built-in' tasks, or in the catalog file specified for this task. The DescriptionSetId and DescriptionMsgId are used to display the help task description on the Task Selection Menu.
DescriptionMsgId Catalog message number of the help message text in either Dctrl.cat for the 'built-in' tasks, or in the catalog file specified for this task. The DescriptionSetId and DescriptionMsgId are used to display the help task description on the Task Selection Menu.
PkgBlock Block number that includes the task on the Removable Media Diagnostic package. This value should be an "S" if the task is on a Supplemental Media.

Customized Diagnostic Attribute Object Class

The Customized Diagnostic Attribute object class (CDiagAtt) contains customized entries for selected devices found in the current configuration, which is supported by diagnostics. The CDiagAtt object class indicates specialized diagnostic attribute status of the device. It is used to maintain diagnostic information about devices found in the current configuration across sessions.

The CDiagAtt object class structure is defined as:

class CDiagAtt {
                     char name[16];
                     char attribute[16];
                     vchar value[255];
                     char type[8];
                     char rep[8];
                     };

Parmeter Description
name Resource name as specified in CuDv.
attribute 16-byte char field. The attribute value used by the Controller to identify persistent state data for the device. Uses value field.
value 255-byte variable char field.
type 8-byte char field specifying data type.
rep 8-byte char field.

Examples:

Test Mode Input Object Class

The input parameters to the Diagnostic Application are stored in the TMInput object class. The subroutine getdainput should be used to retrieve the test mode input data values from this object class.

The TMInput object class structure is defined as:

class TMInput {
                     short exenv;
                     short advanced;
                     short system;
                     short dmode;
                     char date[80];
                     short loopmode;
                     short lcount;
                     short lerrors;
                     short console;
                     char parent[16];
                     char parentloc[16];
                     char dname[16];
                     char dnameloc[16];
                     char child1[16];
                     short state1;
                     char childloc1[16];
                     char child2[16];
                     short state2;
                     char childloc2[16];
                     long pid;
                     short cpuid;
                     };

Parmeter Description
exenv The execution environment. Possible values include the following:
EXENV_IPL
Diagnostics is being run in pre-test mode. Tests should not take longer than one-minute.
EXENV_STD
Standalone and Online Service diagnostics. The Service IPL was used to load the system. This can be accomplished either by initial program loading from disk or removable media. This mode also applies if the normal IPL was used to load the system and then maintenance mode was entered by issuing the command shutdown -m.
EXENV_CONC
Online Concurrent diagnostics. The Normal IPL was used to load the system.
advanced Derived from the Function Selection menu. Possible values include the following:
ADVANCED_TRUE
Advanced Diagnostic Routines, which are run by a trained service representative. May prompt for wrap plugs, etc.
ADVANCED_FALSE
Diagnostic Routines, which are run by the customer.
system Derived from the Diagnostic or Resource Selection menu. Possible values include the following;
SYSTEM_TRUE
System Checkout (All Resources) was chosen. The DAs perform noninteractive tests.
SYSTEM_FALSE
Option Checkout was chosen. The DAs perform interactive tests.
dmode The diagnostic mode indicates the type of analysis that should be undertaken. Possible values include the following:
DMODE_ELA
Error-log analysis. No diagnostic tests are executed.
DMODE_MS1
This procedure is started because the user indicated that the named device was not removed, moved, or turned off. This procedure should determine why the option was not detected. Generally, this type of analysis involves asking the user to check cables, power supplies, fans, panel lights, and so on. The device is not deleted from the configuration.
DMODE_MS2
This procedure is started because the user indicated that the named device has been removed from the system and should be removed from the system configuration. This procedure should perform any unique "pseudo" device manipulation, notification, and so on. For example, when a physical disk is removed from the system, the LVM should be notified. The DA is responsible for deleting the device from the configuration. The Device's Undefine Method is provided for this purpose.
DMODE_PD
Problem determination, including error-log analysis and diagnostics tests.
DMODE_REMIND
Diagnostic reminder, which defaults to running once a week, looks for deconfigured resources or other problems that have been previously reported, but have not been fixed.
DMODE_REPAIR
Repair checkout, which includes only diagnostics tests. The error log is not used because the user is attempting to verify new hardware.
date The date from which the error log should be scanned. For the syntax used to describe the data, see the date command.
loopmode The maintenance mode and service mode diagnostic package supports loop testing. All or part of the system can be tested multiple times. Possible values include the following:
LOOPMODE_NOTLM
Not loop mode. The default value for concurrent diagnostics.
LOOPMODE_ENTERLM
Entering loop mode. The DA can interact with the user to set up a test or to isolate a problem. The next time the DA is executed, it will be in loop mode.
LOOPMODE_INLM
In loop mode. No user interaction is allowed. The DA polls the keyboard. The tests should be stopped when the user presses Cancel.
LOOPMODE_EXITLM
The system is restored to its pretest state. The DA guides the user in the restoration of the system to its pretest state. For example, wrap plugs are removed and cables are replugged. No tests are executed.
lcount Number of passes in loop mode that have been completed.
lerrors Number of errors logged while in loop mode.
console Diagnostic Controller queries the database to determine if the default console has been configured. Configuration states include:
CONSOLE_TRUE
A console is available.
CONSOLE_FALSE
No console is available, or no console output is desired. The LEDs are used to signal an error (if the platform supports LEDs).
parent Name of the parent of dname.
parentloc Location of parent. Format of string is "00-00-00-00".
dname Name of the device to be tested.
dnameloc Location of dname. Format of string is "00-00-00-00".
child1 Name of the child device that has already been tested. Relevant for Option Checkout only.
childloc1 Location of child1. Format of string is "00-00-00-00".
state1 State associated with child1. The resource states include:
STATE_NOTEST
The resource has not been tested.
STATE_GOOD
The resource passed its tests.
STATE_BAD
The resource failed its tests.
child2 Name of another child device that has already been tested. Relevant for Option Checkout only.
childloc2 Location of child2. The format of the string is "00-00-00-00".
state2 State associated with child2. The resource states include:
STATE_NOTEST
The resource has not been tested.
STATE_GOOD
The resource passed its tests.
STATE_BAD
The resource failed its tests.
pid Process ID of the DA when started from the Controller.
cpuid Logical processor number plus one which the DA when started from the Controller should bind itself to. While not currently used, this is a reserved field, and should be left blank.

All values can be found in /usr/include/diag/tmdefs.h.

The Menu Goal object class (MenuGoal) is used to store additional text information that the Diagnostic Application wants to pass back to the Diagnostic Controller. This text information is displayed to the user. This information is usually additional information that would be useful to the user concerning the state of the resource. One example would be that the Tape Drive requires cleaning.

All applications using the MenuGoal capability must use the menugoal diagnostic library subroutine.

The MenuGoal object class structure is defined as:

class MenuGoal {
 		    char dname[16];
                    longchar tbuffer1[1000];
                    longchar tbuffer2[1000];
                    };

Parmeter Description
dname Resource name as specified in CuDV
tbuffer1 Buffer used to store 1000 bytes of text
tbuffer2 Buffer used to store 1000 bytes of text

FRU Bucket Object Class

The Fru Bucket Object Class (FRUB) is used to store failing replaceable unit information. This information is specified by the Diagnostic Application and passed back to the Diagnostic Controller after an error has been detected.

All applications using the FRU capability must use the addfrub diagnostic library subroutine.

The FRUB object class structure is defined as:

class FRUB {
                    char dname[16];
                    short ftype;
                    short sn;
                    short rcode;
                    short rmsg;
                    char timestamp[80];
                    };

Parmeter Description
dname Names the device under test.
ftype Indicates the type of FRU Bucket being added to the system. The following values are defined:
FRUB1
The FRUs include the resource that failed, its parent, and any cables needed to attach the resource to its parent.
FRUB2
This FRU Bucket is similar to FRU Bucket FRUB1, but does not include the parent resource.
FRUB_ENCLDA
This FRU Bucket is used for missing devices in the I/O enclosure(s).
sn Source number of the failure.
rcode Reason code associated with the failure.
Note
A Service Request Number is formatted as follows:
SSS - RRR

where SSS is the sn and RRR is the rcode.

Some devices may use a different nomenclature for their service request numbers. For this special case, the sn parameter indicates how the rcode value should be formatted. If sn = 0, then rcode is interpreted as decimal. If sn = -1, then rcode is interpreted as a 4-digit hexadecimal number.

If sn = -2, then the object class DAVars is searched for an attribute of Error_code. This allows the displaying of eight-digit hex error codes. The diagnostic application is responsible for setting up a DAVars object similar to the following:

DAVars:

dname: <device name under test>
vname: Error_code           "Error_code is an ascii string"
vtype: DIAG_STRING          "Literal value"
val: <8 digit hex character string>

See the getdavar/putdavar subroutine for more information.

rmsg Message number of the text describing the reason code. The set number of the text is predefined by the PSet field in the Predefined Diagnostic Resources object class.
timestamp Specifies the time the FRU bucket was added.

FRU Reporting Object Class

The Fru Reporting Object Class (FRUs) is used to store failing replaceable unit information. This information is specified by the Diagnostic Application and passed back to the Diagnostic Controller after an error has been detected.

All applications using the FRU capability must use the addfrub diagnostic library subroutine.

The FRUs object class structure is defined as:

class FRUs {
                    char dname[16];
                    char fname[16];
                    char floc[16];
                    short ftype;
                    short fmsg;
                    short conf;
                    };

Parmeter Description
dname Names the device under test.
fname Names the FRU.

The parameters floc and fmsg must be specified, if fname is not represented in the Customized Devices object class. Otherwise, they should be set to 0.

floc Location icode for fname.
ftype Indicates the type of FRU Bucket being added to the system. The following values are defined:
FRUB1
The FRUs include the resource that failed, its parent, and any cables needed to attach the resource to its parent.
FRUB2
This FRU Bucket is similar to FRU Bucket FRUB1, but does not include the parent resource.
FRUB_ENCLDA
This FRU Bucket is used for missing devices in the I/O enclosure(s).
fmsg Message number of the text describing fname. The set number is predefined by the PSet descriptor in the Predefined Diagnostic Resources object class.
conf Indicates whether an FRU is valid. A value of 0 indicates an invalid FRU. No other FRUs are displayed once an invalid FRU is found in the FRU bucket.

However, if fname contains the string REF-CODE, then the fmsg and conf values are used to make the 8-digit ref code.

For AIX 4.3.2 and earlier versions, this field indicates the probability of failure associated with the named FRU.

Diagnostic Application Variables Object Class

The Diagnostic Application Variables Object Class (DAVars) is used to store run time information needed by the Diagnostic Application. This object class is used to store state variables to support Loop Testing.

All applications using the DAVars capability must use the getdavar/putdavar diagnostic library subroutine.

The DAVars object class structure is defined as:

class DAVars {
                    char dname[16];
                    char vname[30];
                    short vtype;
                    char vvalue[30];
                    long ivalue;
                    };

Parmeter Description
dname Name of the device with which the variable is associated.
vname Name of the variable.
vtype Type of the variable. The following values are defined:
DIAG_STRING
The variable should be treated as a character string.
DIAG_INT
The variable should be treated as an integer.
DIAG_SHORT
The variable should be treated as a short.
vvalue Stores character string variable.
ivalue Stores integer or short value of variable.

Predefined Diagnostic Devices Object Class

The Predefined Diagnostic Devices object class (PDiagDev) identifies the resources supported by AIX 4.1 diagnostics and provides additional information needed to test the resource. This object class is recognized by the operating system for backlevel compatibility purposes. For development purposes, use PDiagRes instead.

The PDiagDev object class structure is defined as:

class PDiagDev {
                    char DType[16];
                    char DSClass[16];
                    short Ports;
                    short PSet;
                    short PreTest;
                    char AttDType[16];
                    char AttSClass[16];
                    short Conc;
                    short SupTests;
                    short Menu;
                    short DNext;
                    vchar DaName[255];
                    char  Diskette[5];
                    vchar EnclDaName[255];
                    short Sysxflg;
                    char DClass[16];
                    };

Parmeter Description
DType Predefined device type.
DSClass Predefined device subclass.
DClass Predefined device class.
Ports Same definition as PDiagRes->Ports.
PSet Same definition as PDiagRes->PSet.
PreTest Same definition as PDiagRes->PreTest.
AttDType Device predefined 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.
AttSClass Device subclass of the child device to define when the Ports field is set.
Conc Indicates if the device is supported in multiuser mode. The values are as follows:
DIAG_YES
The device is supported in multiuser mode.
DIAG_NO
The device is not supported in multiuser mode.
SupTests Identifies the types of tests supported by the DA. 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.
SUPTESTS_HFT
Set if the device is a graphics-related device.
SUPTESTS_DIAGEX
Set if the device uses DIAGEX, the diagnostic kernel extension. Also used if the DA requires a second kernel extension loaded. The PDiagAtt database is used in this instance. A stanza similar to the following must be used:

PDiagAtt:

DClass
The device Class.
DSClass
The device SubClass.
DType
The device Type.
attribute
Must be diag_kext.
value
Set to the kernel extension driver name. Must reside in /usr/lib/drivers directory.
Menu Same definition as PDiagRes->Menu.
DNext Same definition as PDiagRes->DNext.
DaName Same definition as PDiagRes->DaName.
Diskette A diskette identification that includes the DA associated with the device for the Standalone 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 Same definition as PDiagRes->EnclDaName.
SysxFlg Identifies the types of tests supported by the DA while running in the System Exerciser Environment. The System Exerciser Environment is not supported by version 4.2 of the diagnostic controller.
SYSX_NO
Set if the DA should not be run by the System Exerciser.
SYSX_ALONE
Set if the DA cannot be run with others with the same bit also set. This includes the diskette DAs that issue a reset to the adapter, which would cause problems if another diskette DA was running at the same time. Another example would be graphics-related devices such as the keyboard, mouse, tablet, dials, and LPFKeys.
SYSX_INTERACTION
Set if the DA can be run with media to be tested. This includes the diskette, tape and CD-ROM DAs. SYSX_INTERACTION was formerly SYSX_MEDIA.
SYSX_LONG
Set if the DA runs for more than a minute or so. This bit can be used to determine how many times to run the other DAs if no long DAs are running. The current loop count for DAs that do not take long to run is 25 loops.

Diagnostic Supervisor Menu Options Object Class

The Diagnostic Supervisor Menu Options object class (DSMOptions) contains stanzas describing AIX 4.1 Diagnostic Service Aids. This object class is recognized by the operating system for backlevel compatibility purposes. For development purposes, use PDiagRes instead.

The DSMOptions object class structure is defined as:

class DSMOptions {
                    char msgkey[4];
                    vchar catalogue[255];
                    short order;
                    short setid;
                    short msgid;
                    vchar action[255];
                    char  Diskette[5];
                    };

Parmeter Description
msgkey Key used by the Service Aid Utility Controller to identify this entry as a Service Aid. Must be set to "USM" for Service Aids.
catalogue Catalog name from which to extract the message for the Service Aid title and description.
order Order in which the messages should be appended to build the menu. The following values are defined:
0
Used by Third Party Service Aids. This causes the service aid to be appended to the end of the menu.
99
Only display this service aid if not running in an 8MB system.
setid Set number of the message.
msgid Message ID of the message.
action Command to start, if the user selects the specified option.
Diskette Indicates that the Service Aid is on a Supplemental Diskette, and what actions to take before processing the Service Aid. The following values are defined:
S
Supplemental Diskette.
100X
Indicates that all diskettes should be read in and processed before starting this service aid.
200X
Indicates that this service aid is only supported in Service Mode from hardfile.

[ Top of Page | Previous Page | Next Page | Contents | Index | Library Home | Legal | Search ]