Let's consolidate the public IDE bus related functions in a separate header. 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-6-thuth@redhat.com> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
		
			
				
	
	
		
			43 lines
		
	
	
		
			1002 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			43 lines
		
	
	
		
			1002 B
		
	
	
	
		
			C
		
	
	
	
	
	
#ifndef HW_IDE_BUS_H
 | 
						|
#define HW_IDE_BUS_H
 | 
						|
 | 
						|
#include "exec/ioport.h"
 | 
						|
#include "hw/ide/ide-dev.h"
 | 
						|
#include "hw/ide/ide-dma.h"
 | 
						|
 | 
						|
struct IDEBus {
 | 
						|
    BusState qbus;
 | 
						|
    IDEDevice *master;
 | 
						|
    IDEDevice *slave;
 | 
						|
    IDEState ifs[2];
 | 
						|
    QEMUBH *bh;
 | 
						|
 | 
						|
    int bus_id;
 | 
						|
    int max_units;
 | 
						|
    IDEDMA *dma;
 | 
						|
    uint8_t unit;
 | 
						|
    uint8_t cmd;
 | 
						|
    qemu_irq irq; /* bus output */
 | 
						|
 | 
						|
    int error_status;
 | 
						|
    uint8_t retry_unit;
 | 
						|
    int64_t retry_sector_num;
 | 
						|
    uint32_t retry_nsector;
 | 
						|
    PortioList portio_list;
 | 
						|
    PortioList portio2_list;
 | 
						|
    VMChangeStateEntry *vmstate;
 | 
						|
};
 | 
						|
 | 
						|
#define TYPE_IDE_BUS "IDE"
 | 
						|
OBJECT_DECLARE_SIMPLE_TYPE(IDEBus, IDE_BUS)
 | 
						|
 | 
						|
void ide_bus_init(IDEBus *idebus, size_t idebus_size, DeviceState *dev,
 | 
						|
                  int bus_id, int max_units);
 | 
						|
IDEDevice *ide_bus_create_drive(IDEBus *bus, int unit, DriveInfo *drive);
 | 
						|
 | 
						|
int ide_get_geometry(BusState *bus, int unit,
 | 
						|
                     int16_t *cyls, int8_t *heads, int8_t *secs);
 | 
						|
int ide_get_bios_chs_trans(BusState *bus, int unit);
 | 
						|
 | 
						|
#endif
 |