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
25 .\" $FreeBSD: src/share/man/man4/targ.4,v 1.3.2.1 2003/02/18 22:07:11 njl Exp $
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, open(2) will fail and
55 After opening the device, the file descriptor must be bound to a
56 specific bus/target/LUN and enabled to process CCBs using the
61 to send CCBs to the SIM and
65 to see if responses are ready.
66 Pointers to completed CCBs are returned via
68 Any data transfers requested by the user CCBs are done via zero-copy IO.
72 calls are defined in the header file
73 .Aq Pa cam/scsi/scsi_targetio.h .
74 .Bl -tag -width ".Dv TARGIOCDISABLE"
76 .Pq Vt "struct ioc_enable_lun"
77 Enable target mode on the LUN specified by the following structure:
78 .Bd -literal -offset indent
79 struct ioc_enable_lun {
81 target_id_t target_id;
88 The selected path (bus), target, and LUN must not already be in use or
95 are non-zero, reception of vendor-specific commands
98 Disable target mode and abort all pending CCBs.
99 The CCBs may optionally be read as they complete.
101 can then be called to activate a different LUN.
102 Multiple disable calls have no effect.
105 system call automatically disables target mode if enabled.
110 debugging if the argument is non-zero, otherwise disables
114 .Bl -tag -width ".Pa /sys/cam/scsi/scsi_target.c" -compact
115 .It Aq Pa cam/scsi/scsi_targetio.h
116 describes the usermode interface.
117 .It Pa /sys/cam/scsi/scsi_target.c
118 is the driver source file.
120 are the control devices.
123 .Pa /usr/share/examples/scsi_target ,
128 .%T "FreeBSD Target Information"
129 .%O http://www.root.org/~nate/freebsd/
136 drivers fully support target mode.
140 driver does not support tagged queuing in target mode.
145 driver first appeared in
148 .An Justin T. Gibbs .
153 .An Nate Lawson Aq nate@root.org .