From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:58057) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aOACD-0004iw-0J for qemu-devel@nongnu.org; Tue, 26 Jan 2016 15:26:38 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aOAC9-0004nY-Q3 for qemu-devel@nongnu.org; Tue, 26 Jan 2016 15:26:36 -0500 Received: from mx1.redhat.com ([209.132.183.28]:45817) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aOAC9-0004nU-JE for qemu-devel@nongnu.org; Tue, 26 Jan 2016 15:26:33 -0500 References: <1452439498-21098-1-git-send-email-hpoussin@reactos.org> From: John Snow Message-ID: <56A7D677.5090807@redhat.com> Date: Tue, 26 Jan 2016 15:26:31 -0500 MIME-Version: 1.0 In-Reply-To: <1452439498-21098-1-git-send-email-hpoussin@reactos.org> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Subject: Re: [Qemu-devel] [PATCH v2 00/19] ISA DMA controllers cleanup (i8257, i82374) List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: =?UTF-8?Q?Herv=c3=a9_Poussineau?= , qemu-devel@nongnu.org Cc: Paolo Bonzini , "Michael S. Tsirkin" On 01/10/2016 10:24 AM, Herv=C3=A9 Poussineau wrote: > Hi, >=20 > This patchset is a cleanup of the i8257/i82374 ISA DMA controllers. > Global DMA_* functions will be obsoleted and then deleted, and ISA devi= ces will not > be tied anymore to i8257 DMA device implementation. >=20 > This paves the way to fix support for floppy DMA operations on sparc/sp= arc64/MIPS Magnum > platforms (which don't use a i8257 DMA controller), and to support mult= iple ISA buses on > the same machine. >=20 > Patch 1 cleans up the i82374 DMA controller, by removing device inherit= ance. > Patches 2 to 9 change i8257 to current standards (structures and functi= ons renaming, QOM) > Patches 10 to 18 create and use a IsaDma interface, to separate devices= from i8257 > device implementation. > Patch 19 removes now unused DMA_* functions. >=20 > Herv=C3=A9 >=20 > Changes since v1: > - added patches 4 and 9 > - simplify patch 12, so that it compiles alone (John Snow) > - fix warning with clang (John Snow) >=20 > Herv=C3=A9 Poussineau (19): > i82374: device only existed as ISA device, so simplify device > i8257: pass ISA bus to DMA_init() function > i8257: rename struct dma_cont to I8257State > i8257: rename struct dma_regs to I8257Regs > i8257: rename functions to start with i8257_ prefix > i8257: make the DMA running method per controller > i8257: add missing const > i8257: QOM'ify > i8257: move state definition to new independent header > isa: add an ISA DMA interface, and store it within the ISA bus Build failure happens here: /home/bos/jhuston/src/qemu/rules.mak:57: recipe for target 'hw/9pfs/9p.o' failed make: *** [hw/9pfs/9p.o] Error 1 In file included from /home/bos/jhuston/src/qemu/include/hw/i386/pc.h:8:0= , from /home/bos/jhuston/src/qemu/vl.c:67: /home/bos/jhuston/src/qemu/include/hw/isa/isa.h:48:1: error: useless storage class specifier in empty declaration [-Werror] }; ^ cc1: all warnings being treated as errors /home/bos/jhuston/src/qemu/rules.mak:57: recipe for target 'vl.o' failed make: *** [vl.o] Error 1 > i8257: implement the IsaDma interface Fixes itself here. > magnum: disable floppy DMA for now > sparc: disable floppy DMA > sparc64: disable floppy DMA Another build error arises here. CC sparc64-softmmu/hw/sparc64/sun4u.o /home/bos/jhuston/src/qemu/hw/sparc64/sun4u.c: In function =E2=80=98sun4u= v_init=E2=80=99: /home/bos/jhuston/src/qemu/hw/sparc64/sun4u.c:862:9: error: implicit declaration of function =E2=80=98qdev_prop_set_drive_nofail=E2=80=99 [-Werror=3Dimplicit-function-declaration] qdev_prop_set_drive_nofail(dev, "driveA", blk_by_legacy_dinfo(fd[0])); ^ /home/bos/jhuston/src/qemu/hw/sparc64/sun4u.c:862:9: error: nested extern declaration of =E2=80=98qdev_prop_set_drive_nofail=E2=80=99 [-Werr= or=3Dnested-externs] cc1: all warnings being treated as errors /home/bos/jhuston/src/qemu/rules.mak:57: recipe for target 'hw/sparc64/sun4u.o' failed make[1]: *** [hw/sparc64/sun4u.o] Error 1 Makefile:186: recipe for target 'subdir-sparc64-softmmu' failed make: *** [subdir-sparc64-softmmu] Error 2 make: *** Waiting for unfinished jobs.... > fdc: use IsaDma interface instead of global DMA_* functions > cs4231a: use IsaDma interface instead of global DMA_* functions > gus: use IsaDma interface instead of global DMA_* functions > sb16: use IsaDma interface instead of global DMA_* functions > dma: remove now useless DMA_* functions >=20 > hw/audio/cs4231a.c | 23 ++- > hw/audio/gus.c | 20 ++- > hw/audio/sb16.c | 23 ++- > hw/block/fdc.c | 65 +++++--- > hw/dma/i82374.c | 58 +++---- > hw/dma/i8257.c | 395 ++++++++++++++++++++++++++--------------= -------- > hw/i386/pc.c | 2 +- > hw/isa/isa-bus.c | 21 +++ > hw/mips/mips_fulong2e.c | 2 +- > hw/mips/mips_jazz.c | 5 +- > hw/mips/mips_malta.c | 2 +- > hw/sparc/sun4m.c | 24 +-- > hw/sparc64/sun4u.c | 37 ++--- > include/hw/isa/i8257.h | 42 +++++ > include/hw/isa/isa.h | 51 +++++-- > include/qemu/typedefs.h | 1 + > 16 files changed, 454 insertions(+), 317 deletions(-) > create mode 100644 include/hw/isa/i8257.h >=20