The Predefined Devices (PdDv) object class contains entries for all device types currently on the system. It can also contain additional device types if the user has specifically installed certain packages that contain device support for devices that are not on the system. The term devices is used generally to mean both intermediate devices (for example, adapters) and terminal devices (for example, disks, printers, display terminals, and keyboards). Pseudo-devices (for example, pseudo terminals, logical volumes, and TCP/IP) are also included there. Pseudo-devices can either be intermediate or terminal devices.
Each device type, as determined by class-subclass-type information, is represented by an object in the PdDv object class. These objects contain basic information about the devices, such as device method names and instructions for accessing information contained in other object classes. The PdDv object class is referenced by the Customized Devices (CuDv) object class using a link that keys into the Unique Type descriptor. This descriptor is uniquely identified by the class-subclass-type information.
Typically, the Predefined database is consulted but never modified during system boot or run time, except when a new device is added to the Predefined database. In this case, the predefined information for the new device must be added into the Predefined database. However, any new predefined information for a new base device must be written to the boot file system to be effective. This is done with the bosboot command.
You build a Predefined Device object by defining the objects in a file in stanza format and then processing the file with the odmadd command or the odm_add_obj subroutine. See the odmadd command or the odm_add_obj subroutine for information on creating the input file and compiling the object definitions into objects.
Each Predefined Devices object corresponds to an instance of the PdDv object class. The descriptors for the Predefined Devices object class are as follows:
ODM Type | Descriptor Name | Description | Descriptor Status |
---|---|---|---|
ODM_CHAR | type[TYPESIZE] | Device Type | Required |
ODM_CHAR | class[CLASSIZE] | Device Class | Required |
ODM_CHAR | subclass[CLASSIZE] | Device Subclass | Required |
ODM_CHAR | prefix[PREFIXSIZE] | Prefix Name | Required |
ODM_CHAR | devid[DEVIDSIZE] | Device ID | Optional |
ODM_SHORT | base | Base Device Flag | Required |
ODM_SHORT | has_vpd | VPD Flag | Required |
ODM_SHORT | detectable | Detectable/Non- detectable Flag | Required |
ODM_SHORT | chgstatus | Change Status Flag | Required |
ODM_SHORT | bus_ext | Bus Extender Flag | Required |
ODM_SHORT | inventory_only | Inventory Only Flag | Required |
ODM_SHORT | fru | FRU Flag | Required |
ODM_SHORT | led | LED Value | Required |
ODM_SHORT | setno | Set Number | Required |
ODM_SHORT | msgno | Message Number | Required |
ODM_VCHAR | catalog[CATSIZE] | Catalog File Name | Required |
ODM_CHAR | DvDr[DDNAMESIZE] | Device Driver Name | Optional |
ODM_METHOD | Define | Define Method | Required |
ODM_METHOD | Configure | Configure Method | Required |
ODM_METHOD | Change | Change Method | Required |
ODM_METHOD | Unconfigure | Unconfigure Method | Optional* |
ODM_METHOD | Undefine | Undefine Method | Optional* |
ODM_METHOD | Start | Start Method | Optional |
ODM_METHOD | Stop | Stop Method | Optional |
ODM_CHAR | uniquetype[UNIQUESIZE] | Unique Type | Required |
These descriptors are described as follows:
Descriptor | Description |
---|---|
Device Type | Specifies the product name or model number. For example, IBM® 3812-2 Model 2 Page printer and IBM 4201 Proprinter II are two types of printer device types. Each device type supported by the system should have an entry in the PdDv object class. |
Device Class | Specifies the functional class name. A functional class is a group of device instances sharing the same high-level function. For example, printer is a functional class name representing all devices that generate hardcopy output. |
Device Subclass | Identifies
the device subclass associated with the device
type. A device class can be partitioned into a set of device subclasses
whose members share the same interface and typically are managed
by the same device driver. For example, parallel and serial printers
form two subclasses within the class of printer devices. The configuration process uses the subclass to determine valid parent-child connections. For example, an rs232 8-port adapter has information that indicates that each of its eight ports only supports devices whose subclass is rs232. Also, the subclass for one device class can be a subclass for a different device class. In other words, several device classes can have the same device subclass. |
Prefix Name | Specifies the Assigned Prefix in the Customized database, which is used to derive the device instance name and /dev name. For example, tty is a Prefix Name assigned to the tty port device type. Names of tty port instances would then look like tty0, tty1, or tty2. The rules for generating device instance names are given in the Customized Devices object class under the Device Name descriptor. |
Base Device Flag | A base device is any device that forms part of a minimal
base system. During the first phase of system boot, a minimal base
system is configured to permit access to the root volume group and
hence to the root file system. This minimal base system can include,
for example, the standard I/O diskette adapter and a SCSI hard drive.
The Base Device flag is a bit mask representing the type of boot for which the device is considered a base device. The bosboot command uses this flag to determine what predefined device information to save in the boot file system. The savebase command uses this flag to determine what customized device information to save in the boot file system. Under certain conditions, the cfgmgr command also uses the Base Device flag to determine whether to configure a device. |
VPD Flag | Specifies whether device instances belonging to the device type contain extractable vital product data (VPD). Certain devices contain VPD that can be retrieved from the device itself. A value of TRUE means that the device has extractable VPD, and a value of FALSE that it does not. These values are defined in the /usr/include/sys/cfgdb.h file. |
Detectable/Nondetectable Flag | Specifies whether the device instance is detectable or nondetectable. A device whose presence and type can be electronically determined, once it is actually powered on and attached to the system, is said to be detectable. A value of TRUE means that the device is detectable, and a value of FALSE that it is not. These values are defined in the /usr/include/sys/cfgdb.h file. |
Change Status Flag | Indicates the initial value of the Change Status flag used in the Customized Devices (CuDv) object class. Refer to the corresponding descriptor in the CuDv object class for a complete description of this flag. A value of NEW means that the device is to be flagged as new, and a value of DONT_CARE means "it is not important." These values are defined in the /usr/include/sys/cfgdb.h file. |
Bus Extender Flag |
Indicates that the device is a bus extender. The Bus Configurator
uses the Bus Extender flag descriptor to determine whether it should
directly invoke the device's Configure
method. A value of TRUE means that the device is a bus extender,
and a value of FALSE that it is not. These values are defined in
the /usr/include/sys/cfgdb.h file. This flag is further described in "Device Methods for Adapter Cards: Guidelines" . |
Inventory Only Flag | Distinguishes devices that are represented solely for their replacement algorithm from those that actually manage the system. There are several devices that are represented solely for inventory or diagnostic purposes. Racks, drawers, and planars represent such devices. A value of TRUE means that the device is used solely for inventory or diagnostic purposes, and a value of FALSE that it is not used solely for diagnostic or inventory purposes. These values are defined in the /usr/include/sys/cfgdb.h file |
FRU Flag | Identifies
the type of field replaceable unit (FRU) for the
device. The three possible values for this field are:
These values are defined in the /usr/include/sys/cfgdb.h file. |
LED Value | Indicates the hexadecimal value displayed on the LEDs when the Configure method executes. |
Catalog File Name | Identifies the file name of the NLS message catalog that contains all messages pertaining to this device. This includes the device description and its attribute descriptions. All NLS messages are identified by a catalog file name, set number, and message number. |
Set Number | Identifies the set number that contains all the messages for this device in the specified NLS message catalog. This includes the device description and its attribute descriptions. |
Message Number | Identifies the message number in the specified set of the NLS message catalog. The message corresponding to the message number contains the textual description of the device. |
Device Driver Name | Identifies the base name of the device driver associated with all device instances belonging to the device type. For example, a device driver name for a keyboard could be ktsdd. For the tape device driver, the name could be tapedd. The Device Driver Name descriptor can be passed as a parameter to the loadext routine to load the device driver, if the device driver is located in the /usr/lib/drivers directory. If the driver is located in a different directory, the full path must be appended in front of the Device Driver Name descriptor before passing it as a parameter to the loadext subroutine. |
Define Method | Names the Define method associated with the device type. All Define method names start with the def prefix. |
Configure Method | Names the Configure method associated with the device type. All Configure method names start with the cfg prefix. |
Change Method | Names the Change method associated with the device type. All Change method names start with the chg prefix. |
Unconfigure Method | Names the Unconfigure
method associated with the device type. All Unconfigure method
names start with the ucfg prefix. Note: The Optional* descriptor
status indicates that this field is optional for those devices (for
example, the bus) that are never unconfigured or undefined. For all
other devices, this descriptor is required.
|
Undefine Method | Names
the Undefine
method associated with the device type. All Undefine method
names start with the und prefix. Note: The Optional* descriptor
status indicates that this field is optional for those devices (for
example, the bus) that are never unconfigured or undefined. For all
other devices, this descriptor is required.
|
Start Method | Names the Start method associated with the device type. All Start method names start with the stt prefix. The Start method is optional and only applies to devices that support the Stopped device state. |
Stop Method | Names the Stop method associated with the device type. All Stop method names start with the stp prefix. The Stop method is optional and only applies to devices that support the Stopped device state. |
Unique Type |
A key that is referenced by the PdDvLn link in CuDv object class.
The key is a concatenation of the Device Class, Device Subclass,
and Device Type values with a / (slash) used as a separator.
For example, for a class of disk, a subclass of scsi,
and a type of 670mb, the Unique Type is disk/scsi/670mb.
This descriptor is needed so that a device instance's object in the CuDv object class can have a link to its corresponding PdDv object. Other object classes in both the Predefined and Customized databases also use the information contained in this descriptor. |
Item | Description |
---|---|
/usr/lib/drivers directory | Contains device drivers. |