Virtio-blk qdev conversion
[qemu/ar7.git] / dma.h
blob7d2ab45b02b01d4d83182bd1ddb8feb0aef4e7f0
1 /*
2 * DMA helper functions
4 * Copyright (c) 2009 Red Hat
6 * This work is licensed under the terms of the GNU General Public License
7 * (GNU GPL), version 2 or later.
8 */
10 #ifndef DMA_H
11 #define DMA_H
13 #include <stdio.h>
14 #include "cpu.h"
15 #include "block.h"
17 typedef struct {
18 target_phys_addr_t base;
19 target_phys_addr_t len;
20 } ScatterGatherEntry;
22 typedef struct {
23 ScatterGatherEntry *sg;
24 int nsg;
25 int nalloc;
26 target_phys_addr_t size;
27 } QEMUSGList;
29 void qemu_sglist_init(QEMUSGList *qsg, int alloc_hint);
30 void qemu_sglist_add(QEMUSGList *qsg, target_phys_addr_t base,
31 target_phys_addr_t len);
32 void qemu_sglist_destroy(QEMUSGList *qsg);
34 BlockDriverAIOCB *dma_bdrv_read(BlockDriverState *bs,
35 QEMUSGList *sg, uint64_t sector,
36 BlockDriverCompletionFunc *cb, void *opaque);
37 BlockDriverAIOCB *dma_bdrv_write(BlockDriverState *bs,
38 QEMUSGList *sg, uint64_t sector,
39 BlockDriverCompletionFunc *cb, void *opaque);
40 void dma_helper_init(void);
42 #endif