[ Previous | Next | Contents | Home | Search ]
AIX Version 4.3 Kernel Extensions and Device Support Programming Concepts

Chapter 6. Device Configuration Subsystem

Devices are usually pieces of equipment that attach to a computer. Devices include printers, adapters, and disk drives. Additionally, devices are special files that can handle device-related tasks.

System users cannot operate devices until device configuration occurs. To configure devices, the Device Configuration Subsystem is available.

Scope of Device Configuration Support

The term device has a wider range of meaning in this operating system than in traditional operating systems. Traditionally, devices refers to hardware components such as disk drives, tape drives, printers, and keyboards. Pseudo-devices, such as the console, error special file, and null special file, are also included in this category. However, in this operating system, all of these devices are referred to as kernel devices, which have device drivers and are known to the system by major and minor numbers.

Also, in this operating system, hardware components such as buses, adapters, and enclosures (including racks, drawers, and expansion boxes) are considered devices.

Device Configuration Subsystem Overview

Devices are organized hierarchically within the system. This organization requires lower-level device dependence on upper-level devices in child-parent relationships. The system device (sys0) is the highest-level device in the system node, which consists of all physical devices in the system.

Each device is classified into functional classes, functional subclasses and device types (for example, printer class, parallel subclass, 4201 Proprinter type). These classifications are maintained in the device configuration databases with all other device information.

A DDS (device dependent structure) is a structure provided to communicate a device's characteristics from a Configure method to a device driver. The device's DDS is built each time the device is configured (Configure method).

The Device Configuration Subsystem consists of:

High-level Commands Maintain (add, delete, view, change) configured devices within the system. These commands manage all of the configuration functions and are performed by invoking the appropriate device methods for the device being configured. These commands call device methods and low-level commands.

The system uses the high-level Configuration Manager (cfgmgr) command used to invoke automatic device configurations through system boot phases and the user can invoke the command during system run time. Configuration rules govern the cfgmgr command.

Device Methods Define and configure, start and stop devices. The device methods are used to identify or change the device states (operational modes). Device methods can call low-level commands.
Low-level Commands Perform routines and functions common to all devices (e.g., to update device attribute information).
Database Maintains data through the ODM (Object Data Manager) by object classes. Predefined Device Objects contain configuration data for all devices that can possibly be used by the system. Customized Device Objects contain data for device instances that are actually in use by the system.

General Structure of the Device Configuration Subsystem

The Device Configuration Subsystem can be viewed from three different levels:

Data that is used by the three levels is maintained in the Configuration database. The database is managed as object classes by the Object Data Manager (ODM). All information relevant to support the device configuration process is stored in the configuration database.

The system cannot use any device unless it is configured.

The database has two components: the Predefined database and the Customized database. The Predefined database contains configuration data for all devices that could possibly be supported by the system. The Customized database contains configuration data for the devices actually defined and configured in that particular system.

The Configuration manager (cfgmgr command) performs the configuration of a system's devices automatically when the system is booted. This high-level program can also be invoked through the system keyboard to perform automatic device configuration. The configuration manager command configures devices as specified by Configuration rules.

These components are illustrated in the Components Involved in Device Configuration Support diagram.

The Devices Graph: Examples of Connectivity and Dependence diagram provides more information about the connections and dependencies between these components.

The Overview of System Management of Devices diagram illustrates the general structure of the Device Configuration Subsystem.

High-Level Perspective

From a high-level, user-oriented perspective, device configuration comprises the following basic tasks:

From a high-level, system-oriented perspective, device configuration provides the basic task of automatic device configuration: running the configuration manager program.

A set of high-level commands accomplish all of these tasks during run time: chdev, mkdev, lsattr, lsconn, lsdev, lsparent, rmdev, and cfgmgr. High-level commands can invoke device methods and low-level commands.

Device Method Level

Beneath the high-level commands (including the cfgmgr Configuration Manager program) is a set of functions called device methods. These methods perform well-defined configuration steps, including these five functions:

Device methods also provide two optional functions for devices that need them:

The Device States diagram illustrates all possible device states and how the various methods affect device state changes.

The high-level device commands (including cfgmgr) can use the device methods. These methods insulate high-level configuration programs from kernel-specific, hardware-specific, and device-specific configuration steps. Device methods can invoke low-level commands.

Low-Level Perspective

Beneath the device methods is a set of low-level device configuration commands and library routines that can be directly called by device methods as well as by high-level configuration programs.

Related Information

Basic Device Configuration Procedures Overview.

Device Configuration Database Overview.

Device Configuration Manager Overview.

Device Classes, Subclasses, and Types Overview.

Writing a Device Method.

Machine Device Driver.

List of Device Configuration Subroutines.

List of Device Configuration Commands.

[ Previous | Next | Contents | Home | Search ]