summaryrefslogtreecommitdiffstats
path: root/sys/ia64
diff options
context:
space:
mode:
authormux <mux@FreeBSD.org>2003-04-10 23:03:33 +0000
committermux <mux@FreeBSD.org>2003-04-10 23:03:33 +0000
commitea793948f7e836abfe00c166d6989e6d17d31e99 (patch)
treef3cc4c1968f8b58e700a90496c66574eb191c832 /sys/ia64
parentb7902728e71f8575fb3e2fd5fa4e3c9696330c10 (diff)
downloadFreeBSD-src-ea793948f7e836abfe00c166d6989e6d17d31e99.zip
FreeBSD-src-ea793948f7e836abfe00c166d6989e6d17d31e99.tar.gz
Change the operation parameter of bus_dmamap_sync() from an
enum to an int and redefine the BUS_DMASYNC_* constants as flags. This allows us to specify several operations in one call to bus_dmamap_sync() as in NetBSD.
Diffstat (limited to 'sys/ia64')
-rw-r--r--sys/ia64/ia64/busdma_machdep.c14
1 files changed, 4 insertions, 10 deletions
diff --git a/sys/ia64/ia64/busdma_machdep.c b/sys/ia64/ia64/busdma_machdep.c
index d9c24dd..93ec7ba 100644
--- a/sys/ia64/ia64/busdma_machdep.c
+++ b/sys/ia64/ia64/busdma_machdep.c
@@ -765,7 +765,7 @@ _bus_dmamap_unload(bus_dma_tag_t dmat, bus_dmamap_t map)
}
void
-_bus_dmamap_sync(bus_dma_tag_t dmat, bus_dmamap_t map, bus_dmasync_op_t op)
+_bus_dmamap_sync(bus_dma_tag_t dmat, bus_dmamap_t map, int op)
{
struct bounce_page *bpage;
@@ -776,28 +776,22 @@ _bus_dmamap_sync(bus_dma_tag_t dmat, bus_dmamap_t map, bus_dmasync_op_t op)
* want to add support for invalidating
* the caches on broken hardware
*/
- switch (op) {
- case BUS_DMASYNC_PREWRITE:
+ if (op & BUS_DMASYNC_PREWRITE) {
while (bpage != NULL) {
bcopy((void *)bpage->datavaddr,
(void *)bpage->vaddr,
bpage->datacount);
bpage = STAILQ_NEXT(bpage, links);
}
- break;
+ }
- case BUS_DMASYNC_POSTREAD:
+ if (op & BUS_DMASYNC_POSTREAD) {
while (bpage != NULL) {
bcopy((void *)bpage->vaddr,
(void *)bpage->datavaddr,
bpage->datacount);
bpage = STAILQ_NEXT(bpage, links);
}
- break;
- case BUS_DMASYNC_PREREAD:
- case BUS_DMASYNC_POSTWRITE:
- /* No-ops */
- break;
}
}
}
OpenPOWER on IntegriCloud