sbp.c (115788) | sbp.c (116351) |
---|---|
1/* 2 * Copyright (c) 2003 Hidetosh Shimokawa 3 * Copyright (c) 1998-2002 Katsushi Kobayashi and Hidetosh Shimokawa 4 * All rights reserved. 5 * 6 * Redistribution and use in source and binary forms, with or without 7 * modification, are permitted provided that the following conditions 8 * are met: --- 17 unchanged lines hidden (view full) --- 26 * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 27 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 28 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 29 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 30 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 31 * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 32 * POSSIBILITY OF SUCH DAMAGE. 33 * | 1/* 2 * Copyright (c) 2003 Hidetosh Shimokawa 3 * Copyright (c) 1998-2002 Katsushi Kobayashi and Hidetosh Shimokawa 4 * All rights reserved. 5 * 6 * Redistribution and use in source and binary forms, with or without 7 * modification, are permitted provided that the following conditions 8 * are met: --- 17 unchanged lines hidden (view full) --- 26 * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 27 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 28 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 29 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 30 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 31 * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 32 * POSSIBILITY OF SUCH DAMAGE. 33 * |
34 * $FreeBSD: head/sys/dev/firewire/sbp.c 115788 2003-06-03 23:01:43Z simokawa $ | 34 * $FreeBSD: head/sys/dev/firewire/sbp.c 116351 2003-06-14 22:17:41Z njl $ |
35 * 36 */ 37 38#include <sys/param.h> 39#include <sys/systm.h> 40#include <sys/module.h> 41#include <sys/bus.h> 42#include <sys/mbuf.h> --- 2243 unchanged lines hidden (view full) --- 2286 printf("sbp: bus_dmamap_load error %d\n", error); 2287 } else 2288 sbp_execute_ocb(ocb, NULL, 0, 0); 2289 break; 2290 } 2291 case XPT_CALC_GEOMETRY: 2292 { 2293 struct ccb_calc_geometry *ccg; | 35 * 36 */ 37 38#include <sys/param.h> 39#include <sys/systm.h> 40#include <sys/module.h> 41#include <sys/bus.h> 42#include <sys/mbuf.h> --- 2243 unchanged lines hidden (view full) --- 2286 printf("sbp: bus_dmamap_load error %d\n", error); 2287 } else 2288 sbp_execute_ocb(ocb, NULL, 0, 0); 2289 break; 2290 } 2291 case XPT_CALC_GEOMETRY: 2292 { 2293 struct ccb_calc_geometry *ccg; |
2294 u_int32_t size_mb; 2295 u_int32_t secs_per_cylinder; 2296 int extended = 1; 2297 ccg = &ccb->ccg; | |
2298 | 2294 |
2295 ccg = &ccb->ccg; |
|
2299 if (ccg->block_size == 0) { 2300 printf("sbp_action1: block_size is 0.\n"); 2301 ccb->ccb_h.status = CAM_REQ_INVALID; 2302 xpt_done(ccb); 2303 break; 2304 } 2305SBP_DEBUG(1) 2306 printf("%s:%d:%d:%d:XPT_CALC_GEOMETRY: " --- 6 unchanged lines hidden (view full) --- 2313 cam_sim_path(sbp->sim), 2314 ccb->ccb_h.target_id, ccb->ccb_h.target_lun, 2315#if __FreeBSD_version >= 500000 2316 (uintmax_t) 2317#endif 2318 ccg->volume_size); 2319END_DEBUG 2320 | 2296 if (ccg->block_size == 0) { 2297 printf("sbp_action1: block_size is 0.\n"); 2298 ccb->ccb_h.status = CAM_REQ_INVALID; 2299 xpt_done(ccb); 2300 break; 2301 } 2302SBP_DEBUG(1) 2303 printf("%s:%d:%d:%d:XPT_CALC_GEOMETRY: " --- 6 unchanged lines hidden (view full) --- 2310 cam_sim_path(sbp->sim), 2311 ccb->ccb_h.target_id, ccb->ccb_h.target_lun, 2312#if __FreeBSD_version >= 500000 2313 (uintmax_t) 2314#endif 2315 ccg->volume_size); 2316END_DEBUG 2317 |
2321 size_mb = ccg->volume_size 2322 / ((1024L * 1024L) / ccg->block_size); 2323 2324 if (size_mb >= 1024 && extended) { 2325 ccg->heads = 255; 2326 ccg->secs_per_track = 63; 2327 } else { 2328 ccg->heads = 64; 2329 ccg->secs_per_track = 32; 2330 } 2331 secs_per_cylinder = ccg->heads * ccg->secs_per_track; 2332 ccg->cylinders = ccg->volume_size / secs_per_cylinder; 2333 ccb->ccb_h.status = CAM_REQ_CMP; | 2318 cam_calc_geometry(ccg, /*extended*/1); |
2334 xpt_done(ccb); 2335 break; 2336 } 2337 case XPT_RESET_BUS: /* Reset the specified SCSI bus */ 2338 { 2339 2340SBP_DEBUG(1) 2341 printf("%s:%d:XPT_RESET_BUS: \n", --- 336 unchanged lines hidden --- | 2319 xpt_done(ccb); 2320 break; 2321 } 2322 case XPT_RESET_BUS: /* Reset the specified SCSI bus */ 2323 { 2324 2325SBP_DEBUG(1) 2326 printf("%s:%d:XPT_RESET_BUS: \n", --- 336 unchanged lines hidden --- |