HPlogo HP-UX Reference Volume 3 of 5 > i

ioconfig(4)

Series 800 Only
» 

Technical documentation

Complete book in PDF

 » Table of Contents

 » Index

NAME

ioconfig — ioconfig entry format

SYNOPSIS

#include <sys/ioconfig.h>

DESCRIPTION

The ioconfig file provides the mapping between information stored in device file dev_t (major number and logical unit) and the information the I/O system uses to communicate with devices (hardware paths and manager paths).

At boot time ioinit reads the file and stores the information in the io_tree kernel data structure (see ioinit(1M)). The ioconfig file is created by insf at install time and is modified by insf and rmsf when devices are added or removed (see insf(1M) and rmsf(1M)). The only purpose of the ioconfig file to maintain configuration information when the system is not running. While the system is running, all accesses are made directly to the kernel io_tree structure, although any tools that change the kernel structures must also keep ioconfig consistent.

The ioconfig file begins with the ioconfig magic number.

#define IOCONFIG_MAGIC 0x2122494f /* magic number */

Following the magic number is an array of ioconfig_entry structures, which logically form a tree structure defining the connectivity of the various levels of software modules and managers, the device class and hardware address of each element, and the logical unit associated with each leaf node. The root of the tree is array element 0.

Each ioconfig_entry contains the following fields as defined in <sys/ioconfig.h>:

#define IOCONFIG_FILE "/etc/ioconfig" #define MAX_ID 16 #define NONE -1 typedef char io_name_type[MAX_ID]; typedef struct { int parent; /* parent in io_tree */ int sibling; /* sibling in io_tree */ int child; /* child in io_tree */ io_name_type manager; /* manager name */ io_name_type module; /* module name */ io_name_type class; /* device class */ int lu; /* logical unit number */ int hdw_address; /* hardware address */ } ioconfig_entry;

The definitions of each element are as follows:

parent, sibling, child

Each of the parent, sibling, and child fields is the array index of another ioconfig structure within the file. This allows the file to represent the tree structure of the kernel io_tree without using pointers. The value NONE indicates there is no node of the appropriate type.

hdw_address

Hardware address of the entity. The value NONE indicates the node corresponds to a manager controlling a logical device (one without a hardware address).

manager

A NULL-terminated character string representing the manager name.

module

A NULL-terminated character string representing the module name.

class

A NULL-terminated character string representing the device class.

lu

Logical unit associated with this particular node by the user. Meaningful only for leaf nodes; has the value NONE for all others.

There can be multiple chains of nodes in ioconfig with the same manager names, module names, and/or hardware addresses, provided each manager name/lu pair uniquely identifies a single leaf node.

AUTHOR

ioconfig was developed by HP.

FILES

/etc/ioconfig

© Hewlett-Packard Development Company, L.P.