Deleted Added
full compact
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 */