Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
VSCSI(4)	       FreeBSD Kernel Interfaces Manual		      VSCSI(4)

NAME
     vscsi -- virtual SCSI controller

SYNOPSIS
     vscsi0 at root

     #include <sys/types.h>
     #include <sys/ioctl.h>
     #include <scsi/scsi_all.h>
     #include <dev/vscsivar.h>

DESCRIPTION
     The vscsi device takes commands from the kernel SCSI midlayer and makes
     them available to userland	for handling.  Using this interface it is pos-
     sible to implement	virtual	SCSI devices that are usable by	the kernel.

     The following ioctl(2) commands are provided to allow userland to dequeue
     SCSI commands and reply to	them:

     VSCSI_I2T struct vscsi_ioc_i2t *
	     Dequeue a SCSI command.  If no SCSI commands are available	to de-
	     queue, ioctl(2) will fail and set errno to	EAGAIN.

	     When one or more SCSI commands are	available to dequeue,
	     select(2) will indicate the descriptor as ready to	read.

		   struct vscsi_ioc_i2t	{
			   int			   tag;

			   u_int		   target;
			   u_int		   lun;

			   struct scsi_generic	   cmd;
			   size_t		   cmdlen;

			   size_t		   datalen;
			   int			   direction;
		   #define VSCSI_DIR_NONE	   0
		   #define VSCSI_DIR_READ	   1
		   #define VSCSI_DIR_WRITE	   2
		   };

     VSCSI_DATA_READ struct vscsi_ioc_data *
     VSCSI_DATA_WRITE struct vscsi_ioc_data *
	     Read or write data	in response to a SCSI command identified by
	     tag.

		   struct vscsi_ioc_data {
			   int			   tag;

			   void	*		   data;
			   size_t		   datalen;
		   };

     VSCSI_T2I struct vscsi_ioc_t2i *
	     Signal completion of a SCSI command identified by tag.

		   struct vscsi_ioc_t2i	{
			   int			   tag;

			   int			   status;
		   #define VSCSI_STAT_DONE	   0
		   #define VSCSI_STAT_SENSE	   1
		   #define VSCSI_STAT_RESET	   2
		   #define VSCSI_STAT_ERR	   3
			   struct scsi_sense_data  sense;
		   };

     VSCSI_REQPROBE struct vscsi_ioc_devevent *
     VSCSI_REQDETACH struct vscsi_ioc_devevent *
	     Request a probe or	a detach of the	device at the addresses	speci-
	     fied by the target	and lun	fields.

		   struct vscsi_ioc_devevent {
			   u_int		   target;
			   u_int		   lun;
		   };

FILES
     /dev/vscsi0

SEE ALSO
     ioctl(2), intro(4), scsi(4)

HISTORY
     The vscsi driver first appeared in	OpenBSD	4.5.

AUTHORS
     David Gwynne <dlg@openbsd.org>.

FreeBSD	13.0		      September	12, 2017		  FreeBSD 13.0

NAME | SYNOPSIS | DESCRIPTION | FILES | SEE ALSO | HISTORY | AUTHORS

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=vscsi&sektion=4&manpath=OpenBSD+6.9>

home | help