2 .\" Nate Lawson. All rights reserved.
4 .\" Redistribution and use in source and binary forms, with or without
5 .\" modification, are permitted provided that the following conditions
7 .\" 1. Redistributions of source code must retain the above copyright
8 .\" notice, this list of conditions and the following disclaimer.
9 .\" 2. Neither the name of the author nor the names of any co-contributors
10 .\" may be used to endorse or promote products derived from this software
11 .\" without specific prior written permission.
13 .\" THIS SOFTWARE IS PROVIDED BY Nate Lawson AND CONTRIBUTORS ``AS IS'' AND
14 .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15 .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
16 .\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
17 .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
18 .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
19 .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
20 .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
21 .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
22 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
32 .Nd SCSI target emulator driver
38 driver provides an interface for usermode programs to emulate SCSI target
40 A sample program that emulates a disk drive (similar to
43 .Pa /usr/share/examples/scsi_target .
47 driver supplies control devices,
51 If a device is already in use,
57 After opening the device, the file descriptor must be bound to a
58 specific bus/target/LUN and enabled to process CCBs using the
63 to send CCBs to the SIM and
67 to see if responses are ready.
68 Pointers to completed CCBs are returned via
70 Any data transfers requested by the user CCBs are done via zero-copy IO.
74 calls are defined in the header file
75 .In cam/scsi/scsi_targetio.h .
76 .Bl -tag -width ".Dv TARGIOCDISABLE"
78 .Pq Vt "struct ioc_enable_lun"
79 Enable target mode on the LUN specified by the following structure:
80 .Bd -literal -offset indent
81 struct ioc_enable_lun {
83 target_id_t target_id;
90 The selected path (bus), target, and LUN must not already be in use or
97 are non-zero, reception of vendor-specific commands
100 Disable target mode and abort all pending CCBs.
101 The CCBs may optionally be read as they complete.
103 can then be called to activate a different LUN.
104 Multiple disable calls have no effect.
107 system call automatically disables target mode if enabled.
112 debugging if the argument is non-zero, otherwise disables
116 .Bl -tag -width ".Pa /sys/cam/scsi/scsi_target.c" -compact
117 .It In cam/scsi/scsi_targetio.h
118 describes the usermode interface.
119 .It Pa /sys/cam/scsi/scsi_target.c
120 is the driver source file.
122 are the control devices.
125 .Pa /usr/share/examples/scsi_target ,
130 .%T "FreeBSD Target Information"
131 .%O http://www.root.org/~nate/freebsd/
138 drivers fully support target mode.
142 driver does not support tagged queuing in target mode.
147 driver first appeared in
150 .An Justin T. Gibbs .
155 .An Nate Lawson Aq nate@root.org .