QEMU main repository: Please see https://www.qemu.org/docs/master/devel/submitting-a-patch.html for how to submit changes to QEMU. Pull Requests are ignored. Please only use release tarballs from the QEMU website. http://www.qemu.org
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
37 lines
919 B
37 lines
919 B
#ifndef HW_IDE_DMA_H
|
|
#define HW_IDE_DMA_H
|
|
|
|
#include "qemu/aiocb.h"
|
|
#include "qemu/iov.h"
|
|
|
|
typedef struct IDEState IDEState;
|
|
typedef struct IDEDMAOps IDEDMAOps;
|
|
typedef struct IDEDMA IDEDMA;
|
|
|
|
typedef void DMAStartFunc(const IDEDMA *, IDEState *, BlockCompletionFunc *);
|
|
typedef void DMAVoidFunc(const IDEDMA *);
|
|
typedef int DMAIntFunc(const IDEDMA *, bool);
|
|
typedef int32_t DMAInt32Func(const IDEDMA *, int32_t len);
|
|
typedef void DMAu32Func(const IDEDMA *, uint32_t);
|
|
typedef void DMAStopFunc(const IDEDMA *, bool);
|
|
|
|
struct IDEDMAOps {
|
|
DMAStartFunc *start_dma;
|
|
DMAVoidFunc *pio_transfer;
|
|
DMAInt32Func *prepare_buf;
|
|
DMAu32Func *commit_buf;
|
|
DMAIntFunc *rw_buf;
|
|
DMAVoidFunc *restart;
|
|
DMAVoidFunc *restart_dma;
|
|
DMAStopFunc *set_inactive;
|
|
DMAVoidFunc *cmd_done;
|
|
DMAVoidFunc *reset;
|
|
};
|
|
|
|
struct IDEDMA {
|
|
const IDEDMAOps *ops;
|
|
QEMUIOVector qiov;
|
|
BlockAIOCB *aiocb;
|
|
};
|
|
|
|
#endif
|
|
|