On Tue, Oct 01, 2013 at 03:46:15PM +0200, Igor Mammedov wrote: > On Mon, 30 Sep 2013 19:09:38 +0300 > "Michael S. Tsirkin" <m...@redhat.com> wrote: > > > On Mon, Sep 30, 2013 at 05:55:50PM +0200, Andreas Färber wrote: > > > Am 30.09.2013 17:50, schrieb Michael S. Tsirkin: > > > > On Tue, Oct 01, 2013 at 12:10:52AM +0900, Peter Maydell wrote: > > > >> On 30 September 2013 23:40, Michael S. Tsirkin <m...@redhat.com> wrote: > > > >>> diff --git a/include/qapi/error.h b/include/qapi/error.h > > > >>> index 7d4c696..b85e996 100644 > > > >>> --- a/include/qapi/error.h > > > >>> +++ b/include/qapi/error.h > > > >>> @@ -13,14 +13,15 @@ > > > >>> #define ERROR_H > > > >>> > > > >>> #include "qemu/compiler.h" > > > >>> +#include "qemu/typedefs.h" > > > >>> #include "qapi-types.h" > > > >>> #include <stdbool.h> > > > >>> > > > >>> /** > > > >>> - * A class representing internal errors within QEMU. An error has a > > > >>> ErrorClass > > > >>> + * Error: > > > >>> + * An object representing internal errors within QEMU. An error has > > > >>> a ErrorClass > > > >>> * code and a human message. > > > >>> */ > > > >>> -typedef struct Error Error; > seeing how mach discussion moving typedef from its proper place caused > I'd like to rise question about dropping 1-2/26 again and include > qapi/error.h directly in include/qom/object.h than extending typedef.h > hack further. > > here is another similar case discussion > http://lists.gnu.org/archive/html/qemu-devel/2012-08/msg03647.html > > in favor of sane headers as opposed to current patch which moves typedef > from header where it belongs.
typedefs don't belong anywhere, same as forward declarations. HACKING says: 2.3. Typedefs Typedefs are used to eliminate the redundant 'struct' keyword. so it's just the C syntax that forces us to do this. > > So if series is to be re-spinned it'd be better to keep clean header and > include it directly where it's necessary. I really don't know how to interpret that thread. The abuse of typedefs in QEMU is really the source of the problem. typedefs can not be forward declared so the work-around was to have a single header with a ton of typedefs. An alternative is an unholy mess of header dependencies, and longer compile times: forward declarations are there for a reason. So if we want to remove qemu/typedefs.h we'll need to stop using typedefs everywhere, and just use 'struct foo *'. If you are in favor of this solution, send a patch to HACKING and we'll see how do people respond. > > > >> > > > >> Does the process-doc-comments tool really cope with documentation > > > >> comments > > > >> that are completely separate from the typedef like this? > > > >> > > > >> thanks > > > >> -- PMM > > > > > > > > Do we care? > > > > Downstreams don't seem to package it, most people probably use > > > > editor tags anyway ... > > > > If yes we can put this all in #if 0. > > > > > > Can we turn the typedef into just struct Error here? The doc comment can > > > be applied to either. > > > > > > Andreas > > > > It won't index Error typedef then though. > > > > How does one run this process-doc-comments tool by the way? > > > -- > > > SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany > > > GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg > >