iop - I2O (RAID) adapter driver
iop* at pci? dev ? function ?
iopsp* at iop? tid ?
ioprbs* at iop? tid ?
scsibus* at iopsp?
scsibus* at ioprbs?
option I2OVERBOSE
The iop driver provides support for PCI I/O processors conforming to the
I2O specification, revision 1.5 and above.
The following structures and constants are defined in
<dev/i2o/iopio.h>.
Note that the headers <sys/types.h>, <sys/device.h> and
<dev/i2o/i2o.h>
are prerequisites and must therefore be included beforehand.
IOPIOCPT (struct ioppt)
Submit a message to the IOP and return the reply.
Note that the
return value of this ioctl is not affected by completion status as
indicated by the reply.
struct ioppt {
void *pt_msg; /* pointer to message
buffer */
size_t pt_msglen; /* message buffer size
in bytes */
void *pt_reply; /* pointer to reply
buffer */
size_t pt_replylen; /* reply buffer size
in bytes */
int pt_timo; /* completion timeout
in ms */
int pt_nbufs; /* number of transfers
*/
struct ioppt_buf pt_bufs[IOP_MAX_MSG_XFERS];
/* transfers */
};
struct ioppt_buf {
void *ptb_data; /* pointer to buffer
*/
size_t ptb_datalen; /* buffer size in
bytes */
int ptb_out; /* non-zero if transfer is to IOP */
};
The minimum timeout value that may be specified is
1000ms. All
other values must not exceed the iop driver's operational limits.
IOPIOCGSTATUS (struct iovec)
Request the latest available status record from the
IOP. This special-case
ioctl is provided as the I2O_EXEC_STATUS_GET
message does
not post replies, and can therefore not be safely issued using the
IOPIOCPT ioctl.
The following ioctls may block while attempting to acquire
the iop driver's
configuration lock, and may fail if the acquisition
times out.
IOPIOCGLCT (struct iovec)
Retrieve the iop driver's copy of the logical configuration table.
This copy of the LCT matches the current device configuration, but
is not necessarily the latest available version of the
LCT.
IOPIOCRECONFIG
Request that the iop driver scan all bus ports, retrieve the latest
version of the LCT, and attach or detach devices as
necessary.
Note that higher-level reconfiguration tasks (such as
logically rescanning
SCSI busses) will not be performed by this
ioctl.
IOPIOCGTIDMAP (struct iovec)
Retrieve the TID to device map. This map indicates
which targets
are configured, and what the corresponding device name
for each is.
Although at any given point it contains the same number of entries
as the LCT, the number of entries should be determined
using the
iov_len field from the returned iovec.
struct iop_tidmap {
u_short it_tid;
u_short it_flags;
char it_dvname[sizeof(((struct device
*)NULL)->dv_xname)];
};
#define IT_CONFIGURED 0x02 /* target configured
*/
/dev/iopu control device for IOP unit u
intro(4), ioprbs(4), iopsp(4), pci(4), scsibus(4), iopctl(8)
The iop driver first appeared in NetBSD 1.6, OpenBSD support
was added in
OpenBSD 3.0.
The iop driver was written by Andrew Doran <[email protected]>
and ported to
OpenBSD 3.0 by
Niklas Hallqvist <[email protected]> and
Michael Shalayeff <[email protected]>.
OpenBSD 3.6 November 8, 2000
[ Back ] |