[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v16 08/11] qapi/s390x/cpu topology: set-cpu-topology monitor
From: |
Markus Armbruster |
Subject: |
Re: [PATCH v16 08/11] qapi/s390x/cpu topology: set-cpu-topology monitor command |
Date: |
Mon, 27 Feb 2023 13:25:07 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/28.2 (gnu/linux) |
Nina Schoetterl-Glausch <nsg@linux.ibm.com> writes:
> On Mon, 2023-02-27 at 08:59 +0100, Thomas Huth wrote:
[...]
>> I'm not sure whether double inclusion works with the QAPI parser (since this
>> might code to be generated twice) ... have you tried?
>
> I haven't, the documentation says:
>
>> Include directives
>> ------------------
>>
>> Syntax::
>>
>> INCLUDE = { 'include': STRING }
>>
>> The QAPI schema definitions can be modularized using the 'include'
>> directive::
>>
>> { 'include': 'path/to/file.json' }
>>
>> The directive is evaluated recursively, and include paths are relative
>> to the file using the directive. Multiple includes of the same file
>> are idempotent.
>
> Which is why I thought it should work, but I guess this is a statement about
> including the same file twice in another file and not about including the same
> file from two files.
No, this is intended to say multiple inclusion is fine, regardless where
the include directives are.
An include directive has two effects:
1. If the included file has not been included already, pull in its
contents.
2. Insert #include in generated C. Example: qdev.json includes
qom.json. The generated qapi-*-qdev.h include qapi-types-qom.h.
Including any required modules, as recommended by qapi-code-gen.rst,
results in properly self-contained generated headers.
> But then, as far as I can tell, the build system only builds qapi-schema.json,
> which includes all other files, so it could apply.
Yes, qapi-schema.json is the main module, which includes all the others.
In fact, it includes all the others *directly*. Why?
We generate documentation in source order. Included material gets
inserted right at the first inclusion; subsequent inclusions have no
effect.
If we put all first inclusions right into qapi-schema.json, the order of
things in documentation is visible right there, and won't change just
because we change inclusions deeper down.
Questions?
Re: [PATCH v16 08/11] qapi/s390x/cpu topology: set-cpu-topology monitor command, Pierre Morel, 2023/02/27
[PATCH v16 06/11] s390x/cpu topology: interception of PTF instruction, Pierre Morel, 2023/02/22