[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH 00/18] qapi/qom: QAPIfy object-add
From: |
Markus Armbruster |
Subject: |
Re: [PATCH 00/18] qapi/qom: QAPIfy object-add |
Date: |
Tue, 01 Dec 2020 09:36:38 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/27.1 (gnu/linux) |
Paolo Bonzini <pbonzini@redhat.com> writes:
> On 30/11/20 16:30, Daniel P. Berrangé wrote:
>> { 'struct': 'QCryptoSecretCommon',
>> 'base': 'Object',
>> 'state': { 'rawdata': '*uint8_t',
>> 'rawlen': 'size_t' },
>> 'data': { '*format': 'QCryptoSecretFormat',
>> '*keyid': 'str',
>> '*iv': 'str' } }
>> { 'struct': 'QCryptoSecret',
>> 'base': 'QCryptoSecretCommon',
>> 'data': { '*data': 'str',
>> '*file': 'str' } }
>
> No, please don't do this. I want to keep writing C code, not a weird
> JSON syntax for C.
>
> I'd much rather have a FooOptions field in my struct so that I can
> just do visit_FooOptions in the UserCreatable.complete() method,
> that's feasible.
It should be, because it's what we've done elsewhere, isn't it?
Yes, we can extend QAPI to let us embed opaques outside the QAPI
schema's scope ("state"), along with means to create, destroy, and
clone. This is new.
But we can also invert: put the QAPI-generated C type ("config") in a
handwritten C type that marries it to "state".
Code to create and destroy is handwritten, and uses QAPI-generated code
for the "config" part.
A generic interface to handwritten creation is possible: Take the
QAPI-generated "config" type as argument, extract enough information to
call the appropriate constructor, return its value.
Generic destruction is also possible: all it needs is a map from
instance to destructor function.
None of this is new in QEMU.
- Re: [PATCH 00/18] qapi/qom: QAPIfy object-add,
Markus Armbruster <=
- Re: [PATCH 00/18] qapi/qom: QAPIfy object-add, Kevin Wolf, 2020/12/01
- Re: [PATCH 00/18] qapi/qom: QAPIfy object-add, Paolo Bonzini, 2020/12/01
- Re: [PATCH 00/18] qapi/qom: QAPIfy object-add, Eduardo Habkost, 2020/12/01
- Re: [PATCH 00/18] qapi/qom: QAPIfy object-add, Kevin Wolf, 2020/12/01
- Re: [PATCH 00/18] qapi/qom: QAPIfy object-add, Paolo Bonzini, 2020/12/01
- Re: [PATCH 00/18] qapi/qom: QAPIfy object-add, Eduardo Habkost, 2020/12/01
- Re: [PATCH 00/18] qapi/qom: QAPIfy object-add, Paolo Bonzini, 2020/12/02
- Re: [PATCH 00/18] qapi/qom: QAPIfy object-add, Kevin Wolf, 2020/12/02
- Re: [PATCH 00/18] qapi/qom: QAPIfy object-add, Paolo Bonzini, 2020/12/02
- Re: [PATCH 00/18] qapi/qom: QAPIfy object-add, Eduardo Habkost, 2020/12/02