[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 00/12] qemu-common.h/osdep.h refactoring
From: |
Daniel P. Berrange |
Subject: |
Re: [Qemu-devel] [PATCH 00/12] qemu-common.h/osdep.h refactoring |
Date: |
Fri, 31 Jul 2015 13:54:09 +0100 |
User-agent: |
Mutt/1.5.23 (2014-03-12) |
On Wed, Jul 22, 2015 at 05:43:59PM +0100, Peter Maydell wrote:
> This series makes a start at cleaning up some of our headers
> to avoid the common problem of header files including qemu-common.h
> (which then in turn can lead to awkward circular includes).
>
> One common cause of this is that we don't have any header
> which will include the basic things most header files require,
> except for qemu-common.h. This series fixes that by making
> 'osdep.h' that "common basic stuff" header. The idea is that:
> * osdep.h can be included from anywhere, since it doesn't
> include any other QEMU headers itself except a few very
> restricted special purpose ones (config-host.h, compiler.h, etc)
> * osdep.h provides:
> + things everybody needs, like NULL, int32_t, container_of,
> the CONFIG_* defines, etc
> + things that will cause subtle problems if they're not
> present everywhere (eg directly using system headers and
> not getting the portability fixups will result in something
> that builds on most but not all hosts)
>
> So most places can just include osdep.h, not the full qemu-common.h.
>
> (I initially thought about defining a new header for this
> purpose, "qemu/basics.h" or some such, but in fact osdep.h
> was already very close to what I wanted so it didn't really
> seem like it was very useful to switch everything over.)
>
> The series has some minor cleanups, some shuffling around of
> things between qemu-common.h, osdep.h and compiler.h, and
> a couple of patches at the end that use osdep.h to allow
> dropping a qemu-common.h include from various header files,
> as a demonstration.
>
> The real question here I guess is whether people like the
> direction I'm trying to go with this. If so, we can further
> reduce the number of qemu-common.h includes without too much
> difficulty with further patches.
I broadly like the direction of this change. I think it is
probably worth being strict about requiring #include of
osdep.h as the first header in every .c file. And validating
such a rule programmatically at make check time or equiv.
Regards,
Daniel
--
|: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org -o- http://virt-manager.org :|
|: http://autobuild.org -o- http://search.cpan.org/~danberr/ :|
|: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :|
- [Qemu-devel] [PATCH 07/12] osdep.h: Add header comment, (continued)
- [Qemu-devel] [PATCH 07/12] osdep.h: Add header comment, Peter Maydell, 2015/07/22
- [Qemu-devel] [PATCH 08/12] qemu-common.h: Move muldiv64() to host-utils.h, Peter Maydell, 2015/07/22
- [Qemu-devel] [PATCH 02/12] osdep.h: Remove qemu_printf, Peter Maydell, 2015/07/22
- [Qemu-devel] [PATCH 05/12] qemu-common.h: Move Win32 fixups into os-win32.h, Peter Maydell, 2015/07/22
- Re: [Qemu-devel] [PATCH 00/12] qemu-common.h/osdep.h refactoring, Paolo Bonzini, 2015/07/22
- Re: [Qemu-devel] [PATCH 00/12] qemu-common.h/osdep.h refactoring, Markus Armbruster, 2015/07/23
- Re: [Qemu-devel] [PATCH 00/12] qemu-common.h/osdep.h refactoring,
Daniel P. Berrange <=