From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1MfXNN-0005zv-Em for qemu-devel@nongnu.org; Mon, 24 Aug 2009 07:06:13 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1MfXNI-0005sX-Ay for qemu-devel@nongnu.org; Mon, 24 Aug 2009 07:06:12 -0400 Received: from [199.232.76.173] (port=49176 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1MfXNI-0005sU-5C for qemu-devel@nongnu.org; Mon, 24 Aug 2009 07:06:08 -0400 Received: from mx1.redhat.com ([209.132.183.28]:55324) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1MfXNH-0006tB-J0 for qemu-devel@nongnu.org; Mon, 24 Aug 2009 07:06:07 -0400 Received: from int-mx03.intmail.prod.int.phx2.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.16]) by mx1.redhat.com (8.13.8/8.13.8) with ESMTP id n7OB65g6023810 for ; Mon, 24 Aug 2009 07:06:05 -0400 From: Juan Quintela Date: Mon, 24 Aug 2009 13:03:21 +0200 Message-Id: Subject: [Qemu-devel] [PATCH 00/22] Indirection Cleanup List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org This patch series clean up "half" converted qemu drivers that had changed from: struct FOOState to typedef PCIFOOState { PCIDevice dev; FOOState foo; } PCIFOOState; It just moves PCIDevice to be the 1st field of FOOState. Once there, other cleanups were done: a - pci_dev pointer from FOOState to PCIFOOState is removed, jsut use s->dev The field is leave only in the drivers that also emulate isa. b- Once there, transformo PCIFOOState *s = (PCIFOOState *)pci_dev to PCIFOOState *s = DO_UPCAST(PCIFOOState, dev, pci_dev) where pci_dev is a PCI_DEVICE. c- again, once there, remove all the casts from void * (they are not needed since '89) PCIFOOState *s = (PCIFOOState *)opaque; to PCIFOOState *s = opaque; d- Start of vga.c cleanup. It is not trivial, as just now VGAState == VGACommonState, functions need to be changed to use the right value. ToDo: - pcnet: It needs a different approach, because it can be both a PCIDevice or a SysBus device. - vga: It have to separate the common part for the not common part, problems now is that VGAState is used for both the common state and the standard vga. To make things more interesting, different bits are "inherited" from vga in different devices: - cirrus_vga - vmware_vga - blizzard (vga that is not pci) - vga common state has a pci_dev pointer, that is only needed by std vga, as cirrus_vga stores it (with this patches) otherplace, blizzard is not pci .... you get the idea - I guess some other driver is missing, but my fast grep didn't found it. Later, Juan. Juan Quintela (22): eepro100: convert casts to DO_UPCAST() eepro100: cast a void * makes no sense eepro100: Remove unused indirection of PCIDevice es1370: Remove unused indirection of PCIES1370State and ES1370State ne2000: remove casts from void * ne2000: pci_dev has this very value with the right type ne2000: Remove unneeded double indirection of PCINE2000State ne2000: change pci_dev to is_pci pci: remove casts from void * rtl8139: Remove unneeded double indirection of PCIRTL8139State rtl8139: remove pointless cast from void * lsi53c895a: remove pointless cast from void * lsi53c895a: use DO_UPCAST to cast from PCIDevice lsi53c895a: rename PCIDevice field from pci_dev to dev (consistence) lsi53c895a: LSIState is a PCIDevice is a DeviceHost usb-ohci: Remove unneeded double indirection of OHCIPCIState cirrus_vga: Remove unneeded double indirection of PCICirrusVGAState cirrus_vga: remove pointless cast from void * cirrus_vga: change use of pci_dev for is_pci Introduce vga_common_reset() to be able to typcheck vga_reset() vga: Rename vga_state -> vga Everything outside of vga.c should use VGACommonState hw/cirrus_vga.c | 59 ++++++++++++++++++++++--------------------------- hw/eepro100.c | 65 ++++++++++++++++++++++-------------------------------- hw/es1370.c | 31 ++++++++----------------- hw/lsi53c895a.c | 65 ++++++++++++++++++++++++++++--------------------------- hw/ne2000.c | 41 ++++++++++++++-------------------- hw/pci.c | 8 +++--- hw/rtl8139.c | 42 ++++++++++++---------------------- hw/usb-ohci.c | 34 +++++++++++----------------- hw/vga.c | 26 +++++++++++++-------- hw/vga_int.h | 12 ++++------ hw/vmware_vga.c | 4 +- 11 files changed, 170 insertions(+), 217 deletions(-)