On 20.02.2012, at 04:01, David Gibson wrote: > Currently dma_bdrv_io() takes a 'to_dev' boolean parameter to > determine the direction of DMA it is emulating. We already have a > DMADirection enum designed specifically to encode DMA directions. > This patch uses it for dma_bdrv_io() as well. > > Signed-off-by: David Gibson <da...@gibson.dropbear.id.au> > --- > dma-helpers.c | 20 ++++++++++++-------- > dma.h | 2 +- > hw/ide/core.c | 3 ++- > hw/ide/macio.c | 3 ++- > 4 files changed, 17 insertions(+), 11 deletions(-) > > diff --git a/dma-helpers.c b/dma-helpers.c > index f08cdb5..d4af367 100644 > --- a/dma-helpers.c > +++ b/dma-helpers.c > @@ -42,7 +42,7 @@ typedef struct { > BlockDriverAIOCB *acb; > QEMUSGList *sg; > uint64_t sector_num; > - bool to_dev; > + DMADirection dir; > bool in_cancel; > int sg_cur_index; > dma_addr_t sg_cur_byte; > @@ -76,7 +76,8 @@ static void dma_bdrv_unmap(DMAAIOCB *dbs) > > for (i = 0; i < dbs->iov.niov; ++i) { > cpu_physical_memory_unmap(dbs->iov.iov[i].iov_base, > - dbs->iov.iov[i].iov_len, !dbs->to_dev, > + dbs->iov.iov[i].iov_len, > + dbs->dir != DMA_DIRECTION_TO_DEVICE, > dbs->iov.iov[i].iov_len); > } > qemu_iovec_reset(&dbs->iov); > @@ -123,7 +124,8 @@ static void dma_bdrv_cb(void *opaque, int ret) > while (dbs->sg_cur_index < dbs->sg->nsg) { > cur_addr = dbs->sg->sg[dbs->sg_cur_index].base + dbs->sg_cur_byte; > cur_len = dbs->sg->sg[dbs->sg_cur_index].len - dbs->sg_cur_byte; > - mem = cpu_physical_memory_map(cur_addr, &cur_len, !dbs->to_dev); > + mem = cpu_physical_memory_map(cur_addr, &cur_len, > + dbs->dir != DMA_DIRECTION_TO_DEVICE); > if (!mem) > break; > qemu_iovec_add(&dbs->iov, mem, cur_len); > @@ -170,11 +172,11 @@ static AIOPool dma_aio_pool = { > BlockDriverAIOCB *dma_bdrv_io( > BlockDriverState *bs, QEMUSGList *sg, uint64_t sector_num, > DMAIOFunc *io_func, BlockDriverCompletionFunc *cb, > - void *opaque, bool to_dev) > + void *opaque, DMADirection dir) > { > DMAAIOCB *dbs = qemu_aio_get(&dma_aio_pool, bs, cb, opaque); > > - trace_dma_bdrv_io(dbs, bs, sector_num, to_dev); > + trace_dma_bdrv_io(dbs, bs, sector_num, dir);
Was the trace wrong before or is it now? I don't see its definition changed anywhere. Alex