Am 04.12.2012 17:40, schrieb Eduardo Habkost: > On Tue, Dec 04, 2012 at 04:59:38PM +0100, Andreas Färber wrote: >> Am 04.12.2012 14:19, schrieb Eduardo Habkost: >>> Changes on v9: >>> - Instead of moving qemu_[un]register_reset() to reset.c and including >>> it on *-user, create stubs for them on libqemustub.a >> >> We compile cpu.c twice. Can't we do the same for qdev.c or whatever uses >> those functions? I feel they have no business being used in *-user. >> CC'ing Riku and Peter. > > I don't understand what exactly you are suggesting. You suggest adding > #ifdefs to qdev.c to compile out the qemu_[un]register_reset() calls?
Yes, that was my thought. It would've spared us the include troubles in stubs/ for now. ;) Andreas > I had a version of this series that did exactly that[1], but IIRC > somebody suggested using stub functions instead. And I agree with > whoever suggested it, I believe stub functions are cleaner when the the > stub version still have the semantics expected by the caller[2]. > > [1] http://article.gmane.org/gmane.comp.emulators.xen.devel/137686 > [2] e.g. a no-op qemu_register_reset() still does the job it's supposed > to do (making sure a function to be called when qemu_devices_reset() > is called), if we know qemu_devices_reset() is never called. > > >> >> Andreas >> >>> - This is based on afaerber's qom-cpu branch, that has some header cleanup >>> changes. You can get the complete series in a git tree at: >>> https://github.com/ehabkost/qemu-hacks/tree/cpu_qdev.v9 >>> git://github.com/ehabkost/qemu-hacks.git cpu_qdev.v9 >>> >>> v8: >>> - Use a simpler copyright header on qdev-properties-system.c >>> - Use the new libqemustub.a mechanism instead of the (now exting) >>> QEMU_WEAK_ALIAS mechanism >>> - Move the reset-handler registration code to a new hw/reset.c file >>> >>> v7: >>> - Use the new QEMU_WEAK_ALIAS mechanism instead of the (now extinct) >>> GCC_WEAK attribute (patches 20 and 21) >>> >>> v6: >>> - Simple rebase against latest qemu.git master >>> - Patch 13: some new typedefs were added and others were removed >>> - Patch 19: trivial rebase >>> v5: >>> - Tons of header cleanups just to eliminate qlist.h <-> cpu-common.h >>> circular >>> dependency (patches 1-17) >>> - Add copyright/license information to qdev-properties.c (patch 17) >>> - Add copyright/license information to qdev-properties-system.c (patch 22) >>> - use error_report()+abort() instead of hw_error() on qdev.c (patch 18) >>> - Move qemu_[un]register_reset() and qemu_devices_reset() to qdev-core.c >>> (patch 19) >>> - Make vmstate_[un]register() weak stubs, instead of a new function (patch >>> 20) >>> - Make sysbus_get_default() weak stub, instead of new qbus reset >>> (un)register >>> functions (patch 21) >>> - Eliminate qdev-system.c (all code is kept on qdev.c, now) (patch 22) >>> v4: >>> - Add GCC_WEAK_DECL to functions that have GCC_WEAK versions >>> - Updated the qdev_init_gpio_in() code on qdev-system.c to current version >>> - Patch description updates (moved changelog below "---" and/or move info >>> about changes made by different authors between SoB lines) >>> v3 (submitted by Igor): >>> - rebased on top of 8b4a3df (today's master) >>> - slight code reshuffling in (see commit's changelog) >>> "qdev: separate core from the code used only by qemu-system-*" >>> "move qemu_irq typedef out of cpu-common.h" >>> - commit messages cleanup >>> v2: >>> Removes the CONFIG_USER_ONLY ifdefs, and use weak symbols to move >>> the vmstate and qemu_register_reset() handling to qdev-system.c -- SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg