hbagetinfo(D4I) hbagetinfo(D4I)
NAME
hbagetinfo - HBA driver get device information structure
SYNOPSIS
#include <sys/sdi.h>
DESCRIPTION
The hbagetinfo structure is used to obtain HBA device
information, often to pass HBA-specific data from the HBA to
SDI.
Return Values
None.
USAGE
This structure is used by getinfo(D2I), which is called by
sdi_name(D3I). It is used to supply the caller, typically a
target driver, with information about a device connected to a
Host Bus Adapter.
Structure Members
The hbagetinfo structure is defined as follows:
struct hbagetinfo { /* Structure used to pass up HBA-specific
data from HBA to SDI */
char *name; /* Device name */
char iotype; /* Specifies device I/O capabilities */
/* For example, DMA, PIO, scatter/gather,
and so on.*/
bcb_t *bcbp; /* Breakup control block defining device
properties */
};
The name is a character array that is typically
``HA # TC #'', with the host adapter number and the target
controller ID filled in.
The device I/O capabilities, in iotype, include:
F_PIO a programmed I/O device
F_SCGTH
supports scatter-gather DMA
Copyright 1994 Novell, Inc. Page 1
hbagetinfo(D4I) hbagetinfo(D4I)
F_RMB uses removable media
F_DMA_32
supports 32-bit DMA
F_DMA_24
supports 24-bit DMA
F_HDWREA
supports hardware bad-block reassignment
The bcbp is a pointer to an uninitialized bcb(D4) structure.
The HBA getinfo routine must first check the bcbp field of
hbagetinfo, and if non-NULL, the bcb structure must be
initialized. The bcb_physreqp element within the bcb
structure is a pointer to the physreq(D4) structure that is
also initialized by getinfo. (See bcb(D4) and physreq(D4) for
information about the elements of these structures.)
The elements of the bcb and physreq structures, uniquely
identify the characteristics of the device, the capabilities
of the controller, and the features supported by the HBA
driver. The target drivers use this information to determine
the type(or types) of addressing the HBA driver supports, the
buffer alignment and size requirements of the controller, and
DMA characteristics, if any.
All fields of the bcb and physreq structures are initialized
by getinfo except for bcb_granularity, which is initialized by
the target drivers when the device is opened.
REFERENCES
bcb(D4), getinfo(D2I), physreq(D4), sdi_name(D3I)
Copyright 1994 Novell, Inc. Page 2