MirBSD manpage: iop(4)

IOP(4)                     BSD Programmer's Manual                      IOP(4)


     iop -  I2O 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 re-
           turn 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 oth-
           er 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.

           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 re-
           scanning 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 <ad@netbsd.org> and ported to
     OpenBSD 3.0 by
     Niklas Hallqvist <niklas@openbsd.org> and
     Michael Shalayeff <mickey@openbsd.org>.

MirBSD #10-current             November 8, 2000                              1

Generated on 2022-12-24 01:00:14 by $MirOS: src/scripts/roff2htm,v 1.113 2022/12/21 23:14:31 tg Exp $ — This product includes material provided by mirabilos.

These manual pages and other documentation are copyrighted by their respective writers; their sources are available at the project’s CVSweb, AnonCVS and other mirrors. The rest is Copyright © 2002–2022 MirBSD.

This manual page’s HTML representation is supposed to be valid XHTML/1.1; if not, please send a bug report — diffs preferred.

Kontakt / Impressum & Datenschutzerklärung