diff options
author | Kenneth R Westerback <krw@cvs.openbsd.org> | 2003-04-06 20:24:32 +0000 |
---|---|---|
committer | Kenneth R Westerback <krw@cvs.openbsd.org> | 2003-04-06 20:24:32 +0000 |
commit | a8ad299c58fc5cfd5489ab74b56d818372e2f036 (patch) | |
tree | 76911bcf901a74efe1de0cee5cb0ec8fda5969b6 /sys/dev/ic/osiopvar.h | |
parent | ed278f3625c5aced390722dee61459c643f6a76f (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.h | 10 |
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 |