arcmsr.c (227843) | arcmsr.c (227912) |
---|---|
1/* 2***************************************************************************************** 3** O.S : FreeBSD 4** FILE NAME : arcmsr.c 5** BY : Erich Chen, Ching Huang 6** Description: SCSI RAID Device Driver for 7** ARECA (ARC11XX/ARC12XX/ARC13XX/ARC16XX/ARC188x) SATA/SAS RAID HOST Adapter 8** ARCMSR RAID Host adapter --- 59 unchanged lines hidden (view full) --- 68** 1.20.00.21 02/08/2011 Ching Huang Implement I/O request timeout 69** 02/14/2011 Ching Huang Modified pktRequestCount 70** 1.20.00.21 03/03/2011 Ching Huang if a command timeout, then wait its ccb back before free it 71** 1.20.00.22 07/04/2011 Ching Huang Fixed multiple MTX panic 72****************************************************************************************** 73*/ 74 75#include <sys/cdefs.h> | 1/* 2***************************************************************************************** 3** O.S : FreeBSD 4** FILE NAME : arcmsr.c 5** BY : Erich Chen, Ching Huang 6** Description: SCSI RAID Device Driver for 7** ARECA (ARC11XX/ARC12XX/ARC13XX/ARC16XX/ARC188x) SATA/SAS RAID HOST Adapter 8** ARCMSR RAID Host adapter --- 59 unchanged lines hidden (view full) --- 68** 1.20.00.21 02/08/2011 Ching Huang Implement I/O request timeout 69** 02/14/2011 Ching Huang Modified pktRequestCount 70** 1.20.00.21 03/03/2011 Ching Huang if a command timeout, then wait its ccb back before free it 71** 1.20.00.22 07/04/2011 Ching Huang Fixed multiple MTX panic 72****************************************************************************************** 73*/ 74 75#include <sys/cdefs.h> |
76__FBSDID("$FreeBSD: head/sys/dev/arcmsr/arcmsr.c 227843 2011-11-22 21:28:20Z marius $"); | 76__FBSDID("$FreeBSD: head/sys/dev/arcmsr/arcmsr.c 227912 2011-11-23 21:43:51Z marius $"); |
77 78#if 0 79#define ARCMSR_DEBUG1 1 80#endif 81#include <sys/param.h> 82#include <sys/systm.h> 83#include <sys/malloc.h> 84#include <sys/kernel.h> --- 2624 unchanged lines hidden (view full) --- 2709 xpt_done(pccb); 2710 break; 2711 } 2712 case XPT_SET_TRAN_SETTINGS: { 2713 pccb->ccb_h.status |= CAM_FUNC_NOTAVAIL; 2714 xpt_done(pccb); 2715 break; 2716 } | 77 78#if 0 79#define ARCMSR_DEBUG1 1 80#endif 81#include <sys/param.h> 82#include <sys/systm.h> 83#include <sys/malloc.h> 84#include <sys/kernel.h> --- 2624 unchanged lines hidden (view full) --- 2709 xpt_done(pccb); 2710 break; 2711 } 2712 case XPT_SET_TRAN_SETTINGS: { 2713 pccb->ccb_h.status |= CAM_FUNC_NOTAVAIL; 2714 xpt_done(pccb); 2715 break; 2716 } |
2717 case XPT_CALC_GEOMETRY: { 2718 struct ccb_calc_geometry *ccg; 2719 u_int32_t size_mb; 2720 u_int32_t secs_per_cylinder; 2721 | 2717 case XPT_CALC_GEOMETRY: |
2722 if(pccb->ccb_h.target_id == 16) { 2723 pccb->ccb_h.status |= CAM_FUNC_NOTAVAIL; 2724 xpt_done(pccb); 2725 break; 2726 } | 2718 if(pccb->ccb_h.target_id == 16) { 2719 pccb->ccb_h.status |= CAM_FUNC_NOTAVAIL; 2720 xpt_done(pccb); 2721 break; 2722 } |
2723#if __FreeBSD_version >= 500000 2724 cam_calc_geometry(&pccb->ccg, 1); 2725#else 2726 { 2727 struct ccb_calc_geometry *ccg; 2728 u_int32_t size_mb; 2729 u_int32_t secs_per_cylinder; 2730 |
|
2727 ccg= &pccb->ccg; 2728 if (ccg->block_size == 0) { 2729 pccb->ccb_h.status = CAM_REQ_INVALID; 2730 xpt_done(pccb); 2731 break; 2732 } 2733 if(((1024L * 1024L)/ccg->block_size) < 0) { 2734 pccb->ccb_h.status = CAM_REQ_INVALID; --- 6 unchanged lines hidden (view full) --- 2741 ccg->secs_per_track=63; 2742 } else { 2743 ccg->heads=64; 2744 ccg->secs_per_track=32; 2745 } 2746 secs_per_cylinder=ccg->heads * ccg->secs_per_track; 2747 ccg->cylinders=ccg->volume_size / secs_per_cylinder; 2748 pccb->ccb_h.status |= CAM_REQ_CMP; | 2731 ccg= &pccb->ccg; 2732 if (ccg->block_size == 0) { 2733 pccb->ccb_h.status = CAM_REQ_INVALID; 2734 xpt_done(pccb); 2735 break; 2736 } 2737 if(((1024L * 1024L)/ccg->block_size) < 0) { 2738 pccb->ccb_h.status = CAM_REQ_INVALID; --- 6 unchanged lines hidden (view full) --- 2745 ccg->secs_per_track=63; 2746 } else { 2747 ccg->heads=64; 2748 ccg->secs_per_track=32; 2749 } 2750 secs_per_cylinder=ccg->heads * ccg->secs_per_track; 2751 ccg->cylinders=ccg->volume_size / secs_per_cylinder; 2752 pccb->ccb_h.status |= CAM_REQ_CMP; |
2753 } 2754#endif |
|
2749 xpt_done(pccb); 2750 break; | 2755 xpt_done(pccb); 2756 break; |
2751 } | |
2752 default: 2753 pccb->ccb_h.status |= CAM_REQ_INVALID; 2754 xpt_done(pccb); 2755 break; 2756 } 2757 return; 2758} 2759/* --- 1184 unchanged lines hidden --- | 2757 default: 2758 pccb->ccb_h.status |= CAM_REQ_INVALID; 2759 xpt_done(pccb); 2760 break; 2761 } 2762 return; 2763} 2764/* --- 1184 unchanged lines hidden --- |