| IOP(4) | Device Drivers Manual | IOP(4) | 
iop —
iop* at pci? dev ? function ?
iopsp* at iop? tid ?
ld* at iop? tid ?
dpti* at iop? tid 0
iop driver provides support for PCI I/O processors
  conforming to the I2O specification, revision 1.5 and above.
I2O is a specification that defines a software interface for communicating with a number of device types. In its basic form, I2O provides the following:
Five types of devices are well defined by the specification. These are:
The iop driver's role is to initialize and
    monitor the IOP, provide a conduit for messages and replies to and from
    devices, and provide other common services for peripheral drivers, such as
    DMA mapping.
IOPIOCPT
    (struct ioppt)
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.
The initiator context and transaction context fields in the
        message frame will be filled by the iop driver.
        As such, this ioctl may not be used to send messages without a
        transaction context payload.
IOPIOCGSTATUS
    (struct iovec)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)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.IOPIOCRECONFIGiop 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)
struct iop_tidmap {
	u_short	it_tid;
	u_short	it_flags;
	char	it_dvname[16];	/* DEVICE_XNAME_SIZE */
};
#define	IT_CONFIGURED	0x02	/* target configured */
    
    iop driver first appeared in NetBSD
  1.5.3.
| December 2, 2007 | NetBSD 10.0 |