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: src/share/examples/scsi_target/scsi_target.8,v 1.2.4.1 2003/02/18 22:07:10 njl Exp $
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 .
97.El
98.Pp
99Required arguments:
100.Bl -tag -width indent
101.It Ar bus : Ns Ar target : Ns Ar lun
102Attach to specified bus ID, target ID, and LUN.
103.It Ar filename
104File to use as a backing store.
105.El
106.Pp
107All options default to the minimal functionality of SCSI-1.
108To be safe,
109.Nm
110checks the SIM for the requested capability before enabling target mode.
111.Sh FILES
112.Bl -tag -width ".Pa /usr/share/examples/scsi_target" -compact
113.It Pa /dev/targ*
114Control devices.
115.It Pa /usr/share/examples/scsi_target
116Source directory.
117.El
118.Sh EXAMPLES
119Create a 5 megabyte backing store file.
120.Pp
121.Dl "dd if=/dev/zero of=vol size=1m count=5"
122.Pp
123Enable target mode on bus 0, target ID 1, LUN 0, using
124.Pa vol
125as the backing store for READ6/10 and WRITE6/10 commands.
126Only the first 1000 bytes of
127.Pa vol
128will be used.
129Debugging information will be output.
13016-bit wide transfers will be used if the SIM supports them.
131.Pp
132.Dl "scsi_target -d -v 1000 -W 16 0:1:0 vol"
133.Sh SEE ALSO
134.Xr scsi 4 ,
135.Xr targ 4
136.Sh AUTHORS
137.An -nosplit
138The
139.Nm
140example first appeared in
141.Fx 3.0
142and was written by
143.An Justin T. Gibbs .
144It was rewritten for
145.Fx 5.0
146by
147.An Nate Lawson Aq Mt nate@root.org .
148