mirror of https://gitlab.com/qemu-project/qemu
hw/ide: Move IDE bus related definitions to a new header ide-bus.h
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>
This commit is contained in:
parent
5fc5934a4b
commit
f74c6177bb
|
@ -0,0 +1,42 @@
|
||||||
|
#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
|
|
@ -8,16 +8,10 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "hw/ide.h"
|
#include "hw/ide.h"
|
||||||
#include "exec/ioport.h"
|
#include "hw/ide/ide-bus.h"
|
||||||
#include "hw/ide/ide-dma.h"
|
|
||||||
#include "hw/ide/ide-dev.h"
|
|
||||||
|
|
||||||
/* debug IDE devices */
|
/* debug IDE devices */
|
||||||
#define USE_DMA_CDROM
|
#define USE_DMA_CDROM
|
||||||
#include "qom/object.h"
|
|
||||||
|
|
||||||
#define TYPE_IDE_BUS "IDE"
|
|
||||||
OBJECT_DECLARE_SIMPLE_TYPE(IDEBus, IDE_BUS)
|
|
||||||
|
|
||||||
/* Device/Head ("select") Register */
|
/* Device/Head ("select") Register */
|
||||||
#define ATA_DEV_SELECT 0x10
|
#define ATA_DEV_SELECT 0x10
|
||||||
|
@ -338,29 +332,6 @@ typedef struct IDEBufferedRequest {
|
||||||
bool orphaned;
|
bool orphaned;
|
||||||
} IDEBufferedRequest;
|
} IDEBufferedRequest;
|
||||||
|
|
||||||
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;
|
|
||||||
};
|
|
||||||
|
|
||||||
/* These are used for the error_status field of IDEBus */
|
/* These are used for the error_status field of IDEBus */
|
||||||
#define IDE_RETRY_MASK 0xf8
|
#define IDE_RETRY_MASK 0xf8
|
||||||
#define IDE_RETRY_DMA 0x08
|
#define IDE_RETRY_DMA 0x08
|
||||||
|
@ -477,15 +448,6 @@ void ide_cancel_dma_sync(IDEState *s);
|
||||||
void ide_atapi_cmd(IDEState *s);
|
void ide_atapi_cmd(IDEState *s);
|
||||||
void ide_atapi_cmd_reply_end(IDEState *s);
|
void ide_atapi_cmd_reply_end(IDEState *s);
|
||||||
|
|
||||||
/* hw/ide/qdev.c */
|
|
||||||
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);
|
|
||||||
|
|
||||||
int ide_handle_rw_error(IDEState *s, int error, int op);
|
int ide_handle_rw_error(IDEState *s, int error, int op);
|
||||||
|
|
||||||
#endif /* HW_IDE_INTERNAL_H */
|
#endif /* HW_IDE_INTERNAL_H */
|
||||||
|
|
Loading…
Reference in New Issue