isp_freebsd.h (43788) | isp_freebsd.h (44819) |
---|---|
1/* $Id: isp_freebsd.h,v 1.10 1999/01/30 07:29:00 mjacob Exp $ */ 2/* release_02_05_99 */ | 1/* $Id: isp_freebsd.h,v 1.11 1999/02/09 01:05:42 mjacob Exp $ */ 2/* release_03_16_99 */ |
3/* 4 * Qlogic ISP SCSI Host Adapter FreeBSD Wrapper Definitions (non CAM version) 5 *--------------------------------------- 6 * Copyright (c) 1997, 1998 by Matthew Jacob 7 * NASA/Ames Research Center 8 * All rights reserved. 9 *--------------------------------------- 10 * --- 29 unchanged lines hidden (view full) --- 40 41#include <sys/param.h> 42 43#ifndef __FreeBSD_version 44#define __FreeBSD_version 226000 45#endif 46 47#if __FreeBSD_version >= 300004 | 3/* 4 * Qlogic ISP SCSI Host Adapter FreeBSD Wrapper Definitions (non CAM version) 5 *--------------------------------------- 6 * Copyright (c) 1997, 1998 by Matthew Jacob 7 * NASA/Ames Research Center 8 * All rights reserved. 9 *--------------------------------------- 10 * --- 29 unchanged lines hidden (view full) --- 40 41#include <sys/param.h> 42 43#ifndef __FreeBSD_version 44#define __FreeBSD_version 226000 45#endif 46 47#if __FreeBSD_version >= 300004 |
48#define MAXISPREQUEST 256 |
|
48#include <dev/isp/isp_freebsd_cam.h> 49#else | 49#include <dev/isp/isp_freebsd_cam.h> 50#else |
51#define MAXISPREQUEST 64 |
|
50 51#include <sys/systm.h> 52#include <sys/malloc.h> 53#include <sys/buf.h> 54#include <sys/proc.h> 55 56#include <scsi/scsiconf.h> 57#include <machine/clock.h> 58#include <vm/vm.h> 59#include <vm/vm_param.h> 60#include <vm/pmap.h> 61#include <sys/kernel.h> 62 | 52 53#include <sys/systm.h> 54#include <sys/malloc.h> 55#include <sys/buf.h> 56#include <sys/proc.h> 57 58#include <scsi/scsiconf.h> 59#include <machine/clock.h> 60#include <vm/vm.h> 61#include <vm/vm_param.h> 62#include <vm/pmap.h> 63#include <sys/kernel.h> 64 |
65 66#include <dev/isp/ispreg.h> 67#include <dev/isp/ispvar.h> 68#include <dev/isp/ispmbox.h> 69 |
|
63#define ISP_SCSI_XFER_T struct scsi_xfer 64struct isposinfo { 65 char name[8]; 66 int unit; 67 struct scsi_link _link; 68#if __FreeBSD_version >= 300001 69 struct callout_handle watchid; 70#endif 71}; 72 | 70#define ISP_SCSI_XFER_T struct scsi_xfer 71struct isposinfo { 72 char name[8]; 73 int unit; 74 struct scsi_link _link; 75#if __FreeBSD_version >= 300001 76 struct callout_handle watchid; 77#endif 78}; 79 |
73#define MAXISPREQUEST 64 74 75#include <dev/isp/ispreg.h> 76#include <dev/isp/ispvar.h> 77#include <dev/isp/ispmbox.h> 78 79#define PRINTF printf 80#define IDPRINTF(lev, x) if (isp->isp_dblev >= lev) printf x | 80#define PVS "Qlogic ISP Driver, FreeBSD Non-Cam" |
81#define DFLT_DBLEVEL 1 | 81#define DFLT_DBLEVEL 1 |
82 83#define MEMZERO BZERO 84#define MEMCPY(dst, src, amt) bcopy((src), (dst), (amt)) 85 | |
86#define ISP_LOCKVAL_DECL int isp_spl_save 87#define ISP_ILOCKVAL_DECL ISP_LOCKVAL_DECL 88#define ISP_UNLOCK(isp) (void) splx(isp_spl_save) 89#define ISP_LOCK(isp) isp_spl_save = splbio() 90#define ISP_ILOCK(isp) ISP_LOCK(isp) 91#define ISP_IUNLOCK(isp) ISP_UNLOCK(isp) 92#define IMASK bio_imask 93 --- 45 unchanged lines hidden (view full) --- 139 140 141#define CMD_COMPLETE COMPLETE 142#define CMD_EAGAIN TRY_AGAIN_LATER 143#define CMD_QUEUED SUCCESSFULLY_QUEUED 144 145#define isp_name isp_osinfo.name 146 | 82#define ISP_LOCKVAL_DECL int isp_spl_save 83#define ISP_ILOCKVAL_DECL ISP_LOCKVAL_DECL 84#define ISP_UNLOCK(isp) (void) splx(isp_spl_save) 85#define ISP_LOCK(isp) isp_spl_save = splbio() 86#define ISP_ILOCK(isp) ISP_LOCK(isp) 87#define ISP_IUNLOCK(isp) ISP_UNLOCK(isp) 88#define IMASK bio_imask 89 --- 45 unchanged lines hidden (view full) --- 135 136 137#define CMD_COMPLETE COMPLETE 138#define CMD_EAGAIN TRY_AGAIN_LATER 139#define CMD_QUEUED SUCCESSFULLY_QUEUED 140 141#define isp_name isp_osinfo.name 142 |
147#define SYS_DELAY(x) DELAY(x) | |
148 149#define WATCH_INTERVAL 30 150#if __FreeBSD_version >= 300001 151#define START_WATCHDOG(f, s) \ 152 (s)->isp_osinfo.watchid = timeout(f, s, WATCH_INTERVAL * hz), \ 153 s->isp_dogactive = 1 154#define STOP_WATCHDOG(f, s) untimeout(f, s, (s)->isp_osinfo.watchid),\ 155 (s)->isp_dogactive = 0 156#else 157#define START_WATCHDOG(f, s) \ 158 timeout(f, s, WATCH_INTERVAL * hz), s->isp_dogactive = 1 159#define STOP_WATCHDOG(f, s) untimeout(f, s), (s)->isp_dogactive = 0 160#endif 161 162#define RESTART_WATCHDOG(f, s) START_WATCHDOG(f, s) | 143 144#define WATCH_INTERVAL 30 145#if __FreeBSD_version >= 300001 146#define START_WATCHDOG(f, s) \ 147 (s)->isp_osinfo.watchid = timeout(f, s, WATCH_INTERVAL * hz), \ 148 s->isp_dogactive = 1 149#define STOP_WATCHDOG(f, s) untimeout(f, s, (s)->isp_osinfo.watchid),\ 150 (s)->isp_dogactive = 0 151#else 152#define START_WATCHDOG(f, s) \ 153 timeout(f, s, WATCH_INTERVAL * hz), s->isp_dogactive = 1 154#define STOP_WATCHDOG(f, s) untimeout(f, s), (s)->isp_dogactive = 0 155#endif 156 157#define RESTART_WATCHDOG(f, s) START_WATCHDOG(f, s) |
163extern void isp_attach __P((struct ispsoftc *)); 164extern void isp_uninit __P((struct ispsoftc *)); | |
165 | 158 |
166#define PVS "Qlogic ISP Driver, FreeBSD Non-Cam" | |
167 168#endif /* __FreeBSD_version >= 300004 */ | 159 160#endif /* __FreeBSD_version >= 300004 */ |
161 162extern void isp_attach(struct ispsoftc *); 163extern void isp_uninit(struct ispsoftc *); 164 165#define MEMZERO bzero 166#define MEMCPY(dst, src, amt) bcopy((src), (dst), (amt)) 167#ifdef __alpha__ 168#define MemoryBarrier alpha_mb 169#else 170#define MemoryBarrier() 171#endif 172 173 174#define IDPRINTF(lev, x) if (isp->isp_dblev >= lev) printf x 175#define PRINTF printf 176 177#define SYS_DELAY(x) DELAY(x) 178 179#define FC_FW_READY_DELAY (5 * 1000000) 180 181static __inline void isp_prtstst(ispstatusreq_t *sp); 182static __inline const char *isp2100_fw_statename(int state); 183static __inline const char *isp2100_pdb_statename(int pdb_state); 184 185static __inline void isp_prtstst(ispstatusreq_t *sp) 186{ 187 char buf[128]; 188 sprintf(buf, "states->"); 189 if (sp->req_state_flags & RQSF_GOT_BUS) 190 sprintf(buf, "%s%s", buf, "GOT_BUS "); 191 if (sp->req_state_flags & RQSF_GOT_TARGET) 192 sprintf(buf, "%s%s", buf, "GOT_TGT "); 193 if (sp->req_state_flags & RQSF_SENT_CDB) 194 sprintf(buf, "%s%s", buf, "SENT_CDB "); 195 if (sp->req_state_flags & RQSF_XFRD_DATA) 196 sprintf(buf, "%s%s", buf, "XFRD_DATA "); 197 if (sp->req_state_flags & RQSF_GOT_STATUS) 198 sprintf(buf, "%s%s", buf, "GOT_STS "); 199 if (sp->req_state_flags & RQSF_GOT_SENSE) 200 sprintf(buf, "%s%s", buf, "GOT_SNS "); 201 if (sp->req_state_flags & RQSF_XFER_COMPLETE) 202 sprintf(buf, "%s%s", buf, "XFR_CMPLT "); 203 sprintf(buf, "%s%s", buf, "\n"); 204 sprintf(buf, "%s%s", buf, "status->"); 205 if (sp->req_status_flags & RQSTF_DISCONNECT) 206 sprintf(buf, "%s%s", buf, "Disconnect "); 207 if (sp->req_status_flags & RQSTF_SYNCHRONOUS) 208 sprintf(buf, "%s%s", buf, "Sync_xfr "); 209 if (sp->req_status_flags & RQSTF_PARITY_ERROR) 210 sprintf(buf, "%s%s", buf, "Parity "); 211 if (sp->req_status_flags & RQSTF_BUS_RESET) 212 sprintf(buf, "%s%s", buf, "Bus_Reset "); 213 if (sp->req_status_flags & RQSTF_DEVICE_RESET) 214 sprintf(buf, "%s%s", buf, "Device_Reset "); 215 if (sp->req_status_flags & RQSTF_ABORTED) 216 sprintf(buf, "%s%s", buf, "Aborted "); 217 if (sp->req_status_flags & RQSTF_TIMEOUT) 218 sprintf(buf, "%s%s", buf, "Timeout "); 219 if (sp->req_status_flags & RQSTF_NEGOTIATION) 220 sprintf(buf, "%s%s", buf, "Negotiation "); 221 sprintf(buf, "%s%s", buf, "\n"); 222} 223 224static __inline const char *isp2100_fw_statename(int state) 225{ 226 static char buf[16]; 227 switch(state) { 228 case FW_CONFIG_WAIT: return "Config Wait"; 229 case FW_WAIT_AL_PA: return "Waiting for AL_PA"; 230 case FW_WAIT_LOGIN: return "Wait Login"; 231 case FW_READY: return "Ready"; 232 case FW_LOSS_OF_SYNC: return "Loss Of Sync"; 233 case FW_ERROR: return "Error"; 234 case FW_REINIT: return "Re-Init"; 235 case FW_NON_PART: return "Nonparticipating"; 236 default: 237 sprintf(buf, "?0x%x?", state); 238 return buf; 239 } 240} 241 242static __inline const char *isp2100_pdb_statename(int pdb_state) 243{ 244 static char buf[16]; 245 switch(pdb_state) { 246 case PDB_STATE_DISCOVERY: return "Port Discovery"; 247 case PDB_STATE_WDISC_ACK: return "Waiting Port Discovery ACK"; 248 case PDB_STATE_PLOGI: return "Port Login"; 249 case PDB_STATE_PLOGI_ACK: return "Wait Port Login ACK"; 250 case PDB_STATE_PRLI: return "Process Login"; 251 case PDB_STATE_PRLI_ACK: return "Wait Process Login ACK"; 252 case PDB_STATE_LOGGED_IN: return "Logged In"; 253 case PDB_STATE_PORT_UNAVAIL: return "Port Unavailable"; 254 case PDB_STATE_PRLO: return "Process Logout"; 255 case PDB_STATE_PRLO_ACK: return "Wait Process Logout ACK"; 256 case PDB_STATE_PLOGO: return "Port Logout"; 257 case PDB_STATE_PLOG_ACK: return "Wait Port Logout ACK"; 258 default: 259 sprintf(buf, "?0x%x?", pdb_state); 260 return buf; 261 } 262} 263 264/* 265 * Disable these for now 266 */ 267 268#define ISP_NO_FASTPOST_SCSI 1 269#define ISP_NO_FASTPOST_FC 1 270#define ISP_DISABLE_1080_SUPPORT 1 271 |
|
169#endif /* _ISP_FREEBSD_H */ | 272#endif /* _ISP_FREEBSD_H */ |