summaryrefslogtreecommitdiff
path: root/sys/dev/ic/osiopvar.h
diff options
context:
space:
mode:
authorKenneth R Westerback <krw@cvs.openbsd.org>2003-04-06 20:24:32 +0000
committerKenneth R Westerback <krw@cvs.openbsd.org>2003-04-06 20:24:32 +0000
commita8ad299c58fc5cfd5489ab74b56d818372e2f036 (patch)
tree76911bcf901a74efe1de0cee5cb0ec8fda5969b6 /sys/dev/ic/osiopvar.h
parented278f3625c5aced390722dee61459c643f6a76f (diff)
Fix a lot of issues in osiop.
In particular fix dma memory handling and as a result request sense processing. Much input/advice/testing from Mickey. ok mickey@
Diffstat (limited to 'sys/dev/ic/osiopvar.h')
-rw-r--r--sys/dev/ic/osiopvar.h10
1 files changed, 6 insertions, 4 deletions
diff --git a/sys/dev/ic/osiopvar.h b/sys/dev/ic/osiopvar.h
index 9516b003776..fba4abd4c1e 100644
--- a/sys/dev/ic/osiopvar.h
+++ b/sys/dev/ic/osiopvar.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: osiopvar.h,v 1.1 2003/01/08 02:11:38 krw Exp $ */
+/* $OpenBSD: osiopvar.h,v 1.2 2003/04/06 20:24:31 krw Exp $ */
/* $NetBSD: osiopvar.h,v 1.3 2002/05/14 02:58:35 matt Exp $ */
/*
@@ -115,6 +115,8 @@ struct osiop_ds {
u_int8_t msgout[8];
u_int8_t msgbuf[8];
u_int8_t stat[8];
+
+ struct scsi_generic scsi_cmd; /* DMA'able copy of xs->cmd */
} __attribute__((__packed__));
/* status can hold the SCSI_* status values, and 2 additionnal values: */
@@ -130,6 +132,7 @@ struct osiop_ds {
#define OSIOP_DSEXTMSGOFF OSIOP_DSOFF(msgbuf[2])
#define OSIOP_DSSYNMSGOFF OSIOP_DSOFF(msgbuf[3])
#define OSIOP_DSSTATOFF OSIOP_DSOFF(stat[0])
+#define OSIOP_DSCMDOFF OSIOP_DSOFF(scsi_cmd)
/*
* ACB. Holds additional information for each SCSI command Comments:
@@ -143,14 +146,13 @@ struct osiop_acb {
struct scsi_xfer *xs; /* SCSI xfer ctrl block from upper layer */
struct osiop_softc *sc; /* points back to our adapter */
- bus_dmamap_t cmddma; /* DMA map for SCSI command */
bus_dmamap_t datadma; /* DMA map for data transfer */
struct osiop_ds *ds; /* data structure for this acb */
bus_size_t dsoffset; /* offset of data structure for this acb */
- bus_size_t cmdlen; /* command length */
- bus_size_t datalen; /* transfer data length */
+ int xsflags; /* copy of xs->flags */
+ int datalen;
#ifdef OSIOP_DEBUG
void *data; /* transfer data buffer ptr */
#endif