On 12/30/2015 03:11 PM, Roman Kagan wrote: > Make it possible to query the geometry and the CMOS type of a floppy > drive outside of the respective source files. > > It will be useful, in particular, when dynamically building ACPI tables, > and will allow to properly populate the corresponding ACPI objects and > thus enable BIOS-less systems to access the floppy drives. > > Signed-off-by: Roman Kagan <rka...@virtuozzo.com> > Cc: "Michael S. Tsirkin" <m...@redhat.com> > Cc: Eduardo Habkost <ehabk...@redhat.com> > Cc: Igor Mammedov <imamm...@redhat.com> > Cc: John Snow <js...@redhat.com> > Cc: Kevin Wolf <kw...@redhat.com> > Cc: Paolo Bonzini <pbonz...@redhat.com> > Cc: Richard Henderson <r...@twiddle.net> > Cc: qemu-bl...@nongnu.org > Cc: qemu-sta...@nongnu.org > --- > no changes since v4 > > changes since v3: > - split out into a separate patch to faciliate review > > hw/block/fdc.c | 11 +++++++++++ > hw/i386/pc.c | 2 +- > include/hw/block/fdc.h | 2 ++ > include/hw/i386/pc.h | 1 + > 4 files changed, 15 insertions(+), 1 deletion(-) > > diff --git a/hw/block/fdc.c b/hw/block/fdc.c > index 4292ece..c858c5f 100644 > --- a/hw/block/fdc.c > +++ b/hw/block/fdc.c > @@ -2408,6 +2408,17 @@ FDriveType isa_fdc_get_drive_type(ISADevice *fdc, int > i) > return isa->state.drives[i].drive; > } > > +void isa_fdc_get_drive_geometry(ISADevice *fdc, int i, uint8_t *cylinders, > + uint8_t *heads, uint8_t *sectors) > +{ > + FDCtrlISABus *isa = ISA_FDC(fdc); > + FDrive *drv = &isa->state.drives[i]; > + > + *cylinders = drv->max_track; > + *heads = (drv->flags & FDISK_DBL_SIDES) ? 2 : 1; > + *sectors = drv->last_sect; > +} > + > static const VMStateDescription vmstate_isa_fdc ={ > .name = "fdc", > .version_id = 2, > diff --git a/hw/i386/pc.c b/hw/i386/pc.c > index c36b8cf..99fab83 100644 > --- a/hw/i386/pc.c > +++ b/hw/i386/pc.c > @@ -199,7 +199,7 @@ static void pic_irq_request(void *opaque, int irq, int > level) > > #define REG_EQUIPMENT_BYTE 0x14 > > -static int cmos_get_fd_drive_type(FDriveType fd0) > +int cmos_get_fd_drive_type(FDriveType fd0) > { > int val; > > diff --git a/include/hw/block/fdc.h b/include/hw/block/fdc.h > index d48b2f8..adaf3dc 100644 > --- a/include/hw/block/fdc.h > +++ b/include/hw/block/fdc.h > @@ -22,5 +22,7 @@ void sun4m_fdctrl_init(qemu_irq irq, hwaddr io_base, > DriveInfo **fds, qemu_irq *fdc_tc); > > FDriveType isa_fdc_get_drive_type(ISADevice *fdc, int i); > +void isa_fdc_get_drive_geometry(ISADevice *fdc, int i, uint8_t *cylinders, > + uint8_t *heads, uint8_t *sectors); > > #endif > diff --git a/include/hw/i386/pc.h b/include/hw/i386/pc.h > index 8122229..d044a9a 100644 > --- a/include/hw/i386/pc.h > +++ b/include/hw/i386/pc.h > @@ -268,6 +268,7 @@ typedef void (*cpu_set_smm_t)(int smm, void *arg); > void ioapic_init_gsi(GSIState *gsi_state, const char *parent_name); > > ISADevice *pc_find_fdc0(void); > +int cmos_get_fd_drive_type(FDriveType fd0); > > /* acpi_piix.c */ > >
Patches 1,4: Reviewed-by: John Snow <js...@redhat.com> Aside: Why did they have you split out the test changes to be separate from the code? Doesn't that introduce commits where the tests now fail? --js