DOC HOME SITE MAP MAN PAGES GNU INFO SEARCH PRINT BOOK
 

hba_idata_v5(D4sdi)


hba_idata_v5 -- HBA driver device instance information structure

Synopsis

   #include <sys/config.h>
   #include <sys/sdi.h>
   #include <sys/ddi.h>

Description

The hba_idata_v5 structure contains information specific to a given instance of a peripheral (target) device supported by the HBA driver. Typically, this information varies for each instance of the same type of device. The hba_idata_v4 and hba_idata structures are variants of this structure used with earlier SDI versions.

Structure members

The hba_idata_v5 structure is defined as follows:
   int            version_num;
   char           *name;
   unsigned char  ha_id;
   ulong          ioaddr1;
   int            dmachan1;
   int            iov;
   int            cntlr;
   int            active;
   ulong_t        idata_memaddr;
   uchar_t        idata_nbus;
   ushort_t       idata_ntargets;
   ushort_t       idata_nluns;
   rm_key_t       idata_rmkey;
   void           *idata_intrcookie;
   int            idata_cpubind;
   char           ha_chan_id[SDI_MAX_CHANS];
   ulong          ioaddr2;
   };

Structure members

The members of the structure are defined as:

version_num
version number of the HBA instance structure. Valid values are:

1
SDI version 1 hba_idata structure for single-threaded drivers.

3
SDI version 1 hba_idata structure for multithreaded drivers and extended getinfo(D2sdi) functionality.

4
SDI version 2 hba_idata_v4 structure

5
SDI versions 3 and 4 hba_idata_v5 structure
This member must be set before the sdi_register(D3sdi) function is called.

name
device name.

ha_id
SCSI target ID of HBA card.

ioaddr1
I/O address.

dmachan1
DMA channel.

iov
interrupt vector.

cntrl
controller number.

active
active flag

idata_memaddr
ROM BIOS start address.

idata_ctlorder
controller order, used for boot. The HBA driver should set this to 1 before calling the sdi_register(D3sdi) function if the peripheral device controlled by this instance is to be used as the boot controller.

idata_nbus
number of SCSI buses (channels) supported; default value is 1. The maximum value for this member is 8, which matches the value of the SDI_MAX_CHANS parameter. The HBA driver can set this to a different value before calling the sdi_register(D3sdi) function.

idata_ntargets
number of target devices supported on this SCSI bus; default value is 8. The HBA driver can set this to a different value before calling the sdi_register(D3sdi) function.

idata_nluns
number of LUNs supported; default value is 8. The HBA driver can set this to a different value before calling the sdi_register(D3sdi) function.

idata_rmkey
resource manager key.

idata_intrcookie
used by the cm_intr_detach(D3) function; drivers should not directly access this member.

idata_cpubind
CPU number, if bound.

ha_chan_id
SCSI bus HA ID. This is used to support multiple SCSI channel IDs. Single channel HBA drivers should use the first member of this array for the HBA ID; multiple channel HBAs should put the channel ID in the corresponding element of the array.

ioaddr2
Secondary I/O address, used by devices that require a secondary I/O address field.

Usage

For autoconfigurable SDI 3 HBA drivers, the array of hba_idata_v5 structures is returned by sdi_hba_autoconf(D3sdi), initialized with information from the resource manager.

Applicable hardware

All.

Version applicability

sdi: 2, 3, 4

Differences between versions

The hba_idata_v4 structure used for SDI version 2 is defined as follows:
   int            version_num;
   char           *name;
   unsigned char  ha_id;
   ulong          ioaddr1;
   int            dmachan1;
   int            iov;
   int            cntlr;
   int            active;
   ulong_t        idata_memaddr;
   uchar_t        idata_nbus;
   ushort_t       idata_ntargets;
   ushort_t       idata_nluns;
   rm_key_t       idata_rmkey;
   void           *idata_intrcookie;
The hba_idata structure used for SDI version 1 is defined as follows:
   int            version_num;
   char           *name;
   unsigned char  ha_id;
   ulong          ioaddr1;
   int            dmachan1;
   int            iov;
   int            cntlr;
   int            active;
For non-autoconfigurable HBA drivers (supported only for DDI versions prior to version 8), an array of hba_idata_v5 structures is normally defined and initialized in the Space.c(DSP/4dsp) file of each HBA driver. Much of the information used to initialize the structure is generated by the kernel configuration tools and is made available by including config.h.

References

getinfo(D2sdi), hba_idata(D4sdi), hba_idata_v4(D4sdi), sdi_hba_autoconf(D3sdi), sdi_register(D3sdi)
19 June 2005
© 2005 The SCO Group, Inc. All rights reserved.
OpenServer 6 and UnixWare (SVR5) HDK - June 2005