Home Man
Search
Today's Posts
Register

Linux & Unix Commands - Search Man Pages

NetBSD 6.1.5 - man page for iop (netbsd section 4)

IOP(4)				   BSD Kernel Interfaces Manual 			   IOP(4)

NAME
     iop -- I2O adapter driver

SYNOPSIS
     iop* at pci? dev ? function ?
     iopsp* at iop? tid ?
     ld* at iop? tid ?
     dpti* at iop? tid 0

DESCRIPTION
     The 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:

     o	 A vendor-neutral interface for communicating with an I/O processor (IOP) and a number of
	 types of peripherals.	In order to achieve this, hardware-specific device drivers run on
	 the IOP, and hardware-neutral device drivers run on the host.

     o	 Reduced I/O overhead for the host.  All communication between the host and the IOP is
	 performed using a high level protocol.  The specification also provides for batching of
	 requests and replies between the host and IOP.

     o	 An optional vendor-neutral configuration interface.  Data from HTTP GET and POST opera-
	 tions can be channeled to individual devices, and HTML pages returned.

     Five types of devices are well defined by the specification.  These are:

     o	 Random block storage devices (disks).
     o	 Sequential storage devices (tapes).
     o	 LAN interfaces, including Ethernet, FDDI, and Token Ring.
     o	 Bus ports (SCSI).
     o	 SCSI peripherals.

     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.

IOCTL INTERFACE
     The following structures and constants are defined in dev/i2o/iopio.h.  Note that the head-
     ers 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.

	   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 with-
	   out a transaction context payload.

     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 avail-
	   able 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 reconfigura-
	   tion 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 con-
	   tains the same number of entries as the LCT, the number of entries should be deter-
	   mined 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 */

FILES
     /dev/iopu	control device for IOP unit u

SEE ALSO
     dpti(4), intro(4), iopsp(4), ld(4), iopctl(8)

     http://www.intelligent-io.com/

HISTORY
     The iop driver first appeared in NetBSD 1.5.3.

BSD					 December 2, 2007				      BSD


All times are GMT -4. The time now is 07:18 AM.

Unix & Linux Forums Content Copyrightę1993-2018. All Rights Reserved.
UNIX.COM Login
Username:
Password:  
Show Password