[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v3 21/22] qidl: qidl.h, definitions for qidl ann
From: |
Paolo Bonzini |
Subject: |
Re: [Qemu-devel] [PATCH v3 21/22] qidl: qidl.h, definitions for qidl annotations |
Date: |
Fri, 05 Oct 2012 17:53:09 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:15.0) Gecko/20120911 Thunderbird/15.0.1 |
Il 05/10/2012 17:41, Michael Roth ha scritto:
> On Fri, Oct 05, 2012 at 05:07:46PM +0200, Paolo Bonzini wrote:
>> Il 04/10/2012 19:33, Michael Roth ha scritto:
>>> Signed-off-by: Michael Roth <address@hidden>
>>> ---
>>> qidl.h | 113
>>> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>>> 1 file changed, 113 insertions(+)
>>> create mode 100644 qidl.h
>>>
>>> diff --git a/qidl.h b/qidl.h
>>> new file mode 100644
>>> index 0000000..eae0202
>>> --- /dev/null
>>> +++ b/qidl.h
>>> @@ -0,0 +1,113 @@
>>> +/*
>>> + * QEMU IDL Macros/stubs
>>> + *
>>> + * See docs/qidl.txt for usage information.
>>> + *
>>> + * Copyright IBM, Corp. 2012
>>> + *
>>> + * Authors:
>>> + * Michael Roth <address@hidden>
>>> + *
>>> + * This work is licensed under the terms of the GNU GPLv2 or later.
>>> + * See the COPYING file in the top-level directory.
>>> + *
>>> + */
>>> +
>>> +#ifndef QIDL_H
>>> +#define QIDL_H
>>> +
>>> +#include <glib.h>
>>> +#include "qapi/qapi-visit-core.h"
>>> +#include "qemu/object.h"
>>> +#include "hw/qdev-properties.h"
>>> +
>>> +#ifdef QIDL_GEN
>>> +
>>> +/* we pass the code through the preprocessor with QIDL_GEN defined to parse
>>> + * structures as they'd appear after preprocessing, and use the following
>>> + * definitions mostly to re-insert the initial macros/annotations so they
>>> + * stick around for the parser to process
>>> + */
>>> +#define QIDL(...) QIDL(__VA_ARGS__)
>>> +#define QIDL_START(name, ...) QIDL_START(name, ##__VA_ARGS__)
>>> +
>>> +#define QIDL_VISIT_TYPE(name, v, s, f, e)
>>> +#define QIDL_SCHEMA_ADD_LINK(name, obj, path, errp)
>>> +#define QIDL_PROPERTIES(name)
>>
>> Ok, a few questions...
>>
>> Why do you need these to expand to nothing in the QIDL_GEN case?
>>
>
> They don't need to, I was just trying to be explicit about what
> directives were relevant to the parser and which ones were relevant to
> the actually compiled code. It was more a development "aid" than
> anything else though, so I think we can drop the special handling and
> clean these up a bit.
Yes, thanks!
>>> +#define QIDL_DECLARE(name, ...) \
>>
>> Can QIDL_DECLARE replace QIDL_ENABLED as the magic detection string for
>> qidl compilation?
>>
>
> In some cases the declarations will come via #include'd headers, so the
> only way to do that reliable is to run it through the preprocessor
> first, which is how things were done in v1. But running everything
> through cpp adds substantial overhead, and just because a QIDL-fied
> struct is included in a C file, it doesn't mean that the C file intends
> to use any qidl-generated code.
Ok, I guess I need to see some example. We can clean it up later if we
find a more clever way to do things.
Paolo
- Re: [Qemu-devel] [PATCH v3 07/22] qapi: qapi_visit.py, support for visiting non-pointer/embedded structs, (continued)
- [Qemu-devel] [PATCH v3 11/22] qapi: qapi.py, make json parser more robust, Michael Roth, 2012/10/04
- [Qemu-devel] [PATCH v3 15/22] module additions for schema registration, Michael Roth, 2012/10/04
- [Qemu-devel] [PATCH v3 18/22] qidl: add lexer library (based on QC parser), Michael Roth, 2012/10/04
- [Qemu-devel] [PATCH v3 17/22] qidl: add documentation, Michael Roth, 2012/10/04
- [Qemu-devel] [PATCH v3 21/22] qidl: qidl.h, definitions for qidl annotations, Michael Roth, 2012/10/04
- Re: [Qemu-devel] [PATCH v3 21/22] qidl: qidl.h, definitions for qidl annotations, Paolo Bonzini, 2012/10/05
- Re: [Qemu-devel] [PATCH v3 21/22] qidl: qidl.h, definitions for qidl annotations, Paolo Bonzini, 2012/10/05
- Re: [Qemu-devel] [PATCH v3 21/22] qidl: qidl.h, definitions for qidl annotations, Michael Roth, 2012/10/05
- Re: [Qemu-devel] [PATCH v3 21/22] qidl: qidl.h, definitions for qidl annotations,
Paolo Bonzini <=
- Re: [Qemu-devel] [PATCH v3 21/22] qidl: qidl.h, definitions for qidl annotations, Michael Roth, 2012/10/05
- Re: [Qemu-devel] [PATCH v3 21/22] qidl: qidl.h, definitions for qidl annotations, Paolo Bonzini, 2012/10/15
- Re: [Qemu-devel] [PATCH v3 21/22] qidl: qidl.h, definitions for qidl annotations, Michael Roth, 2012/10/15
[Qemu-devel] [PATCH v3 22/22] qidl: unit tests and build infrastructure, Michael Roth, 2012/10/04
[Qemu-devel] [PATCH v3 16/22] qdev: move Property-related declarations to qdev-properties.h, Michael Roth, 2012/10/04