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
 |