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