1b986676eb
These definitions are required outside of the hw/ide/ code, too, so lets's move them from internal.h to a new header called ide-dma.h. Signed-off-by: Thomas Huth <thuth@redhat.com> Acked-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org> Message-ID: <20240220085505.30255-4-thuth@redhat.com> [PMD: Use IDEDMAOps typedef in struct IDEDMA] Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
38 lines
918 B
C
38 lines
918 B
C
#ifndef HW_IDE_DMA_H
|
|
#define HW_IDE_DMA_H
|
|
|
|
#include "block/aio.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
|