1.\" Copyright (c) 2002 2.\" Nate Lawson. All rights reserved. 3.\" 4.\" Redistribution and use in source and binary forms, with or without 5.\" modification, are permitted provided that the following conditions 6.\" are met: 7.\" 1. Redistributions of source code must retain the above copyright 8.\" notice, this list of conditions and the following disclaimer. 9.\" 2. Redistributions in binary form must reproduce the above copyright 10.\" notice, this list of conditions and the following disclaimer in the 11.\" documentation and/or other materials provided with the distribution. 12.\" 3. Neither the name of the author nor the names of any co-contributors 13.\" may be used to endorse or promote products derived from this software 14.\" without specific prior written permission. 15.\" 16.\" THIS SOFTWARE IS PROVIDED BY Nate Lawson AND CONTRIBUTORS ``AS IS'' AND 17.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 18.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 19.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 20.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 21.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 22.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 23.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 24.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 25.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 26.\" SUCH DAMAGE. 27.\" 28.\" $FreeBSD$ 29.\" 30.Dd November 15, 2002 31.Dt SCSI_TARGET 8 32.Os 33.Sh NAME 34.Nm scsi_target 35.Nd usermode SCSI disk emulator 36.Sh SYNOPSIS 37.Nm 38.Op Fl AdST 39.Op Fl b Ar size 40.Op Fl c Ar size 41.Op Fl s Ar size 42.Op Fl W Ar num 43.Ar bus : Ns Ar target : Ns Ar lun 44.Ar filename 45.Sh DESCRIPTION 46The 47.Nm 48utility emulates a SCSI target device using the 49.Xr targ 4 50device driver. 51It supports the basic commands of a direct access device, like 52.Xr da 4 . 53In typical operation, it opens a control device and 54enables target mode for the specified LUN. 55It then communicates with 56the SIM using CCBs exchanged via 57.Xr read 2 58and 59.Xr write 2 . 60READ and WRITE CDBs are satisfied with the specified backing store file. 61.Pp 62For performance, all backing store accesses use 63.Xr aio 4 . 64Thus, 65.Nm 66requires a kernel compiled with 67.Cd "options VFS_AIO" . 68.Pp 69Options: 70.Bl -tag -width indent 71.It Fl A 72Enable 16 addresses if supported by the SIM. 73Default is 8. 74.It Fl S 75Enable synchronous transfers if supported by the SIM. 76Default is disabled. 77.It Fl T 78Enable tagged queuing if supported by the SIM. 79Default is no tagged queuing. 80.It Fl W Cm 8 | 16 | 32 81Enable 16 or 32 bit wide transfers if supported by the SIM. 82Default is 8. 83.It Fl b Ar bufsize 84Set buffer size for transfers. 85Transfers larger than this will be split into multiple transfers. 86.It Fl c Ar sectorsize 87Set sector size for emulated volume. 88Default is 512. 89.It Fl d 90Enable debugging output in 91.Nm 92and its associated control device. 93.It Fl s Ar volsize 94Use a different size for the emulated volume. 95Must be less than or equal to the size of 96.Ar filename . 97If the number ends with a 98.Dq Li k , 99.Dq Li m , 100.Dq Li g , 101.Dq Li t , 102.Dq Li p , 103or 104.Dq Li e , 105the number is multiplied by 2^10 (1K), 2^20 (1M), 2^30 (1G), 2^40 (1T), 1062^50 (1P) and 2^60 (1E) 107respectively. 108.El 109.Pp 110Required arguments: 111.Bl -tag -width indent 112.It Ar bus : Ns Ar target : Ns Ar lun 113Attach to specified bus ID, target ID, and LUN. 114.It Ar filename 115File to use as a backing store. 116.El 117.Pp 118All options default to the minimal functionality of SCSI-1. 119To be safe, 120.Nm 121checks the SIM for the requested capability before enabling target mode. 122.Sh FILES 123.Bl -tag -width ".Pa /usr/share/examples/scsi_target" -compact 124.It Pa /dev/targ* 125Control devices. 126.It Pa /usr/share/examples/scsi_target 127Source directory. 128.El 129.Sh EXAMPLES 130Create a 5 megabyte backing store file. 131.Pp 132.Dl "dd if=/dev/zero of=vol size=1m count=5" 133.Pp 134Enable target mode on bus 0, target ID 1, LUN 0, using 135.Pa vol 136as the backing store for READ6/10 and WRITE6/10 commands. 137Only the first 1000 bytes of 138.Pa vol 139will be used. 140Debugging information will be output. 14116-bit wide transfers will be used if the SIM supports them. 142.Pp 143.Dl "scsi_target -d -s 1000 -W 16 0:1:0 vol" 144.Sh SEE ALSO 145.Xr scsi 4 , 146.Xr targ 4 147.Sh AUTHORS 148.An -nosplit 149The 150.Nm 151example first appeared in 152.Fx 3.0 153and was written by 154.An Justin T. Gibbs . 155It was rewritten for 156.Fx 5.0 157by 158.An Nate Lawson Aq Mt nate@root.org . 159