diff options
author | mux <mux@FreeBSD.org> | 2003-04-10 23:03:33 +0000 |
---|---|---|
committer | mux <mux@FreeBSD.org> | 2003-04-10 23:03:33 +0000 |
commit | ea793948f7e836abfe00c166d6989e6d17d31e99 (patch) | |
tree | f3cc4c1968f8b58e700a90496c66574eb191c832 /sys/ia64 | |
parent | b7902728e71f8575fb3e2fd5fa4e3c9696330c10 (diff) | |
download | FreeBSD-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.c | 14 |
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; } } } |