Deleted Added
full compact
umass.c (255472) umass.c (257381)
1#include <sys/cdefs.h>
1#include <sys/cdefs.h>
2__FBSDID("$FreeBSD: head/sys/dev/usb/storage/umass.c 255472 2013-09-11 10:18:36Z hselasky $");
2__FBSDID("$FreeBSD: head/sys/dev/usb/storage/umass.c 257381 2013-10-30 14:04:47Z nwhitehorn $");
3
4/*-
5 * Copyright (c) 1999 MAEKAWA Masahide <bishop@rr.iij4u.or.jp>,
6 * Nick Hibma <n_hibma@FreeBSD.org>
7 * All rights reserved.
8 *
9 * Redistribution and use in source and binary forms, with or without
10 * modification, are permitted provided that the following conditions

--- 11 unchanged lines hidden (view full) ---

22 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
23 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
24 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
25 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
26 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
27 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
28 * SUCH DAMAGE.
29 *
3
4/*-
5 * Copyright (c) 1999 MAEKAWA Masahide <bishop@rr.iij4u.or.jp>,
6 * Nick Hibma <n_hibma@FreeBSD.org>
7 * All rights reserved.
8 *
9 * Redistribution and use in source and binary forms, with or without
10 * modification, are permitted provided that the following conditions

--- 11 unchanged lines hidden (view full) ---

22 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
23 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
24 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
25 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
26 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
27 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
28 * SUCH DAMAGE.
29 *
30 * $FreeBSD: head/sys/dev/usb/storage/umass.c 255472 2013-09-11 10:18:36Z hselasky $
30 * $FreeBSD: head/sys/dev/usb/storage/umass.c 257381 2013-10-30 14:04:47Z nwhitehorn $
31 * $NetBSD: umass.c,v 1.28 2000/04/02 23:46:53 augustss Exp $
32 */
33
34/* Also already merged from NetBSD:
35 * $NetBSD: umass.c,v 1.67 2001/11/25 19:05:22 augustss Exp $
36 * $NetBSD: umass.c,v 1.90 2002/11/04 19:17:33 pooka Exp $
37 * $NetBSD: umass.c,v 1.108 2003/11/07 17:03:25 wiz Exp $
38 * $NetBSD: umass.c,v 1.109 2003/12/04 13:57:31 keihan Exp $

--- 2075 unchanged lines hidden (view full) ---

2114}
2115
2116static void
2117umass_cam_attach(struct umass_softc *sc)
2118{
2119#ifndef USB_DEBUG
2120 if (bootverbose)
2121#endif
31 * $NetBSD: umass.c,v 1.28 2000/04/02 23:46:53 augustss Exp $
32 */
33
34/* Also already merged from NetBSD:
35 * $NetBSD: umass.c,v 1.67 2001/11/25 19:05:22 augustss Exp $
36 * $NetBSD: umass.c,v 1.90 2002/11/04 19:17:33 pooka Exp $
37 * $NetBSD: umass.c,v 1.108 2003/11/07 17:03:25 wiz Exp $
38 * $NetBSD: umass.c,v 1.109 2003/12/04 13:57:31 keihan Exp $

--- 2075 unchanged lines hidden (view full) ---

2114}
2115
2116static void
2117umass_cam_attach(struct umass_softc *sc)
2118{
2119#ifndef USB_DEBUG
2120 if (bootverbose)
2121#endif
2122 printf("%s:%d:%d:%d: Attached to scbus%d\n",
2122 printf("%s:%d:%d: Attached to scbus%d\n",
2123 sc->sc_name, cam_sim_path(sc->sc_sim),
2123 sc->sc_name, cam_sim_path(sc->sc_sim),
2124 sc->sc_unit, CAM_LUN_WILDCARD,
2125 cam_sim_path(sc->sc_sim));
2124 sc->sc_unit, cam_sim_path(sc->sc_sim));
2126}
2127
2128/* umass_cam_detach
2129 * detach from the CAM layer
2130 */
2131
2132static void
2133umass_cam_detach_sim(struct umass_softc *sc)

--- 34 unchanged lines hidden (view full) ---

2168 uint8_t dir;
2169
2170 if (ccb->csio.ccb_h.flags & CAM_CDB_POINTER) {
2171 cmd = (uint8_t *)(ccb->csio.cdb_io.cdb_ptr);
2172 } else {
2173 cmd = (uint8_t *)(ccb->csio.cdb_io.cdb_bytes);
2174 }
2175
2125}
2126
2127/* umass_cam_detach
2128 * detach from the CAM layer
2129 */
2130
2131static void
2132umass_cam_detach_sim(struct umass_softc *sc)

--- 34 unchanged lines hidden (view full) ---

2167 uint8_t dir;
2168
2169 if (ccb->csio.ccb_h.flags & CAM_CDB_POINTER) {
2170 cmd = (uint8_t *)(ccb->csio.cdb_io.cdb_ptr);
2171 } else {
2172 cmd = (uint8_t *)(ccb->csio.cdb_io.cdb_bytes);
2173 }
2174
2176 DPRINTF(sc, UDMASS_SCSI, "%d:%d:%d:XPT_SCSI_IO: "
2175 DPRINTF(sc, UDMASS_SCSI, "%d:%d:%jx:XPT_SCSI_IO: "
2177 "cmd: 0x%02x, flags: 0x%02x, "
2178 "%db cmd/%db data/%db sense\n",
2179 cam_sim_path(sc->sc_sim), ccb->ccb_h.target_id,
2176 "cmd: 0x%02x, flags: 0x%02x, "
2177 "%db cmd/%db data/%db sense\n",
2178 cam_sim_path(sc->sc_sim), ccb->ccb_h.target_id,
2180 ccb->ccb_h.target_lun, cmd[0],
2179 (uintmax_t)ccb->ccb_h.target_lun, cmd[0],
2181 ccb->ccb_h.flags & CAM_DIR_MASK, ccb->csio.cdb_len,
2182 ccb->csio.dxfer_len, ccb->csio.sense_len);
2183
2184 if (sc->sc_transfer.ccb) {
2180 ccb->ccb_h.flags & CAM_DIR_MASK, ccb->csio.cdb_len,
2181 ccb->csio.dxfer_len, ccb->csio.sense_len);
2182
2183 if (sc->sc_transfer.ccb) {
2185 DPRINTF(sc, UDMASS_SCSI, "%d:%d:%d:XPT_SCSI_IO: "
2184 DPRINTF(sc, UDMASS_SCSI, "%d:%d:%jx:XPT_SCSI_IO: "
2186 "I/O in progress, deferring\n",
2187 cam_sim_path(sc->sc_sim), ccb->ccb_h.target_id,
2185 "I/O in progress, deferring\n",
2186 cam_sim_path(sc->sc_sim), ccb->ccb_h.target_id,
2188 ccb->ccb_h.target_lun);
2187 (uintmax_t)ccb->ccb_h.target_lun);
2189 ccb->ccb_h.status = CAM_SCSI_BUSY;
2190 xpt_done(ccb);
2191 goto done;
2192 }
2193 switch (ccb->ccb_h.flags & CAM_DIR_MASK) {
2194 case CAM_DIR_IN:
2195 dir = DIR_IN;
2196 break;

--- 101 unchanged lines hidden (view full) ---

2298 &umass_cam_cb, ccb);
2299 }
2300 break;
2301 }
2302 case XPT_PATH_INQ:
2303 {
2304 struct ccb_pathinq *cpi = &ccb->cpi;
2305
2188 ccb->ccb_h.status = CAM_SCSI_BUSY;
2189 xpt_done(ccb);
2190 goto done;
2191 }
2192 switch (ccb->ccb_h.flags & CAM_DIR_MASK) {
2193 case CAM_DIR_IN:
2194 dir = DIR_IN;
2195 break;

--- 101 unchanged lines hidden (view full) ---

2297 &umass_cam_cb, ccb);
2298 }
2299 break;
2300 }
2301 case XPT_PATH_INQ:
2302 {
2303 struct ccb_pathinq *cpi = &ccb->cpi;
2304
2306 DPRINTF(sc, UDMASS_SCSI, "%d:%d:%d:XPT_PATH_INQ:.\n",
2305 DPRINTF(sc, UDMASS_SCSI, "%d:%d:%jx:XPT_PATH_INQ:.\n",
2307 sc ? cam_sim_path(sc->sc_sim) : -1, ccb->ccb_h.target_id,
2306 sc ? cam_sim_path(sc->sc_sim) : -1, ccb->ccb_h.target_id,
2308 ccb->ccb_h.target_lun);
2307 (uintmax_t)ccb->ccb_h.target_lun);
2309
2310 /* host specific information */
2311 cpi->version_num = 1;
2312 cpi->hba_inquiry = 0;
2313 cpi->target_sprt = 0;
2314 cpi->hba_misc = PIM_NO_6_BYTE;
2315 cpi->hba_eng_cnt = 0;
2316 cpi->max_target = UMASS_SCSIID_MAX; /* one target */

--- 36 unchanged lines hidden (view full) ---

2353 }
2354
2355 cpi->ccb_h.status = CAM_REQ_CMP;
2356 xpt_done(ccb);
2357 break;
2358 }
2359 case XPT_RESET_DEV:
2360 {
2308
2309 /* host specific information */
2310 cpi->version_num = 1;
2311 cpi->hba_inquiry = 0;
2312 cpi->target_sprt = 0;
2313 cpi->hba_misc = PIM_NO_6_BYTE;
2314 cpi->hba_eng_cnt = 0;
2315 cpi->max_target = UMASS_SCSIID_MAX; /* one target */

--- 36 unchanged lines hidden (view full) ---

2352 }
2353
2354 cpi->ccb_h.status = CAM_REQ_CMP;
2355 xpt_done(ccb);
2356 break;
2357 }
2358 case XPT_RESET_DEV:
2359 {
2361 DPRINTF(sc, UDMASS_SCSI, "%d:%d:%d:XPT_RESET_DEV:.\n",
2360 DPRINTF(sc, UDMASS_SCSI, "%d:%d:%jx:XPT_RESET_DEV:.\n",
2362 cam_sim_path(sc->sc_sim), ccb->ccb_h.target_id,
2361 cam_sim_path(sc->sc_sim), ccb->ccb_h.target_id,
2363 ccb->ccb_h.target_lun);
2362 (uintmax_t)ccb->ccb_h.target_lun);
2364
2365 umass_reset(sc);
2366
2367 ccb->ccb_h.status = CAM_REQ_CMP;
2368 xpt_done(ccb);
2369 break;
2370 }
2371 case XPT_GET_TRAN_SETTINGS:
2372 {
2373 struct ccb_trans_settings *cts = &ccb->cts;
2374
2363
2364 umass_reset(sc);
2365
2366 ccb->ccb_h.status = CAM_REQ_CMP;
2367 xpt_done(ccb);
2368 break;
2369 }
2370 case XPT_GET_TRAN_SETTINGS:
2371 {
2372 struct ccb_trans_settings *cts = &ccb->cts;
2373
2375 DPRINTF(sc, UDMASS_SCSI, "%d:%d:%d:XPT_GET_TRAN_SETTINGS:.\n",
2374 DPRINTF(sc, UDMASS_SCSI, "%d:%d:%jx:XPT_GET_TRAN_SETTINGS:.\n",
2376 cam_sim_path(sc->sc_sim), ccb->ccb_h.target_id,
2375 cam_sim_path(sc->sc_sim), ccb->ccb_h.target_id,
2377 ccb->ccb_h.target_lun);
2376 (uintmax_t)ccb->ccb_h.target_lun);
2378
2379 cts->protocol = PROTO_SCSI;
2380 cts->protocol_version = SCSI_REV_2;
2381 cts->transport = XPORT_USB;
2382 cts->transport_version = 0;
2383 cts->xport_specific.valid = 0;
2384
2385 ccb->ccb_h.status = CAM_REQ_CMP;
2386 xpt_done(ccb);
2387 break;
2388 }
2389 case XPT_SET_TRAN_SETTINGS:
2390 {
2377
2378 cts->protocol = PROTO_SCSI;
2379 cts->protocol_version = SCSI_REV_2;
2380 cts->transport = XPORT_USB;
2381 cts->transport_version = 0;
2382 cts->xport_specific.valid = 0;
2383
2384 ccb->ccb_h.status = CAM_REQ_CMP;
2385 xpt_done(ccb);
2386 break;
2387 }
2388 case XPT_SET_TRAN_SETTINGS:
2389 {
2391 DPRINTF(sc, UDMASS_SCSI, "%d:%d:%d:XPT_SET_TRAN_SETTINGS:.\n",
2390 DPRINTF(sc, UDMASS_SCSI, "%d:%d:%jx:XPT_SET_TRAN_SETTINGS:.\n",
2392 cam_sim_path(sc->sc_sim), ccb->ccb_h.target_id,
2391 cam_sim_path(sc->sc_sim), ccb->ccb_h.target_id,
2393 ccb->ccb_h.target_lun);
2392 (uintmax_t)ccb->ccb_h.target_lun);
2394
2395 ccb->ccb_h.status = CAM_FUNC_NOTAVAIL;
2396 xpt_done(ccb);
2397 break;
2398 }
2399 case XPT_CALC_GEOMETRY:
2400 {
2401 cam_calc_geometry(&ccb->ccg, /* extended */ 1);
2402 xpt_done(ccb);
2403 break;
2404 }
2405 case XPT_NOOP:
2406 {
2393
2394 ccb->ccb_h.status = CAM_FUNC_NOTAVAIL;
2395 xpt_done(ccb);
2396 break;
2397 }
2398 case XPT_CALC_GEOMETRY:
2399 {
2400 cam_calc_geometry(&ccb->ccg, /* extended */ 1);
2401 xpt_done(ccb);
2402 break;
2403 }
2404 case XPT_NOOP:
2405 {
2407 DPRINTF(sc, UDMASS_SCSI, "%d:%d:%d:XPT_NOOP:.\n",
2406 DPRINTF(sc, UDMASS_SCSI, "%d:%d:%jx:XPT_NOOP:.\n",
2408 sc ? cam_sim_path(sc->sc_sim) : -1, ccb->ccb_h.target_id,
2407 sc ? cam_sim_path(sc->sc_sim) : -1, ccb->ccb_h.target_id,
2409 ccb->ccb_h.target_lun);
2408 (uintmax_t)ccb->ccb_h.target_lun);
2410
2411 ccb->ccb_h.status = CAM_REQ_CMP;
2412 xpt_done(ccb);
2413 break;
2414 }
2415 default:
2409
2410 ccb->ccb_h.status = CAM_REQ_CMP;
2411 xpt_done(ccb);
2412 break;
2413 }
2414 default:
2416 DPRINTF(sc, UDMASS_SCSI, "%d:%d:%d:func_code 0x%04x: "
2415 DPRINTF(sc, UDMASS_SCSI, "%d:%d:%jx:func_code 0x%04x: "
2417 "Not implemented\n",
2418 sc ? cam_sim_path(sc->sc_sim) : -1, ccb->ccb_h.target_id,
2416 "Not implemented\n",
2417 sc ? cam_sim_path(sc->sc_sim) : -1, ccb->ccb_h.target_id,
2419 ccb->ccb_h.target_lun, ccb->ccb_h.func_code);
2418 (uintmax_t)ccb->ccb_h.target_lun, ccb->ccb_h.func_code);
2420
2421 ccb->ccb_h.status = CAM_FUNC_NOTAVAIL;
2422 xpt_done(ccb);
2423 break;
2424 }
2425
2426done:
2427 return;

--- 594 unchanged lines hidden ---
2419
2420 ccb->ccb_h.status = CAM_FUNC_NOTAVAIL;
2421 xpt_done(ccb);
2422 break;
2423 }
2424
2425done:
2426 return;

--- 594 unchanged lines hidden ---