From: "Philippe Mathieu-Daudé" <philmd@redhat.com>
To: "Gerd Hoffmann" <kraxel@redhat.com>,
"Daniel P. Berrangé" <berrange@redhat.com>
Cc: dinechin@redhat.com, Paolo Bonzini <pbonzini@redhat.com>,
qemu-devel@nongnu.org, Eduardo Habkost <ehabkost@redhat.com>
Subject: Re: [PATCH v4 3/7] ccid: build smartcard as module
Date: Tue, 30 Jun 2020 11:44:40 +0200 [thread overview]
Message-ID: <50b9426c-f34d-c3e7-8572-82c4c7d155a1@redhat.com> (raw)
In-Reply-To: <20200623171248.pnq6otnwyvl3apky@sirius.home.kraxel.org>
On 6/23/20 7:12 PM, Gerd Hoffmann wrote:
> Hi,
>
>>> + { .type = "ccid-card-passthru", .mod = "usb-smartcard" },
>>> + { .type = "ccid-card-emulated", .mod = "usb-smartcard" },
>>
>> We want to use type definitions here (such TYPE_CCID_PASSTHRU),
>> as we don't guaranty them stable.
>
> Hmm? I'm pretty sure '-device ccid-card-passthru' *is* stable ABI.
Asking on IRC, there is no explicit contract.
But as you remarked, doing so would break the CLI, so we should
some day clarify that objects implementing TYPE_USER_CREATABLE
can not have their typename changed. For the rest, there is no
restriction.
>> Since there is a relation between QOM type and the module,
>> can we store/use the module name in the TypeInfo declaration?
>>
>> static const TypeInfo passthru_card_info = {
>> .name = TYPE_CCID_PASSTHRU,
>> .parent = TYPE_CCID_CARD,
>> .instance_size = sizeof(PassthruState),
>> .class_init = passthru_class_initfn,
>> .module_name = "usb-smartcard", <=====
>> };
>
> That doesn't buy us much, the TypeInfo ends up in the module not qemu.
> So qemu can't access it without loading the module.
>
> We do *not* want load all modules on startup though. Which means we
> need a such list in qemu. The struct above is just that. There
> certainly is room for improvement, building that list automatically
> somehow for example.
OK.
> Given that most devices don't depend on external shared libraries I
> expect the list of device modules will stay relatively short. So I've
> decided to start with something simple and see how it goes (see also
> patch 1/7).
>
>> Actually this modularization is not specific to QDEV
>> and can be used to all QOM right? I.e:
>>
>> static const TypeInfo qcrypto_tls_creds_x509_info = {
>> .parent = TYPE_QCRYPTO_TLS_CREDS,
>> .name = TYPE_QCRYPTO_TLS_CREDS_X509,
>> .module_name = "gnu-tls",
>> ...
>> }
>
> Not as-is. You'll need module load hooks in more places then and some
> code tweaks to move it from qdev level (loading hw-* module only) to qom
> level.
>
> But, yes, moving the infrastructure to some qom-module.c file might be
> useful when modularizing non-device objects. Do you have any candidates
> in mind?
So far I was only thinking of gnutls.
next prev parent reply other threads:[~2020-06-30 9:45 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-06-22 13:55 [PATCH v4 0/7] build some devices as modules Gerd Hoffmann
2020-06-22 13:55 ` [PATCH v4 1/7] qdev: add support for device module loading Gerd Hoffmann
2020-06-26 18:46 ` Richard Henderson
2020-06-22 13:55 ` [PATCH v4 2/7] build: fix device module builds Gerd Hoffmann
2020-06-22 13:55 ` [PATCH v4 3/7] ccid: build smartcard as module Gerd Hoffmann
2020-06-23 15:28 ` Philippe Mathieu-Daudé
2020-06-23 17:12 ` Gerd Hoffmann
2020-06-30 9:44 ` Philippe Mathieu-Daudé [this message]
2020-06-30 16:07 ` Gerd Hoffmann
2020-06-30 16:24 ` Daniel P. Berrangé
2020-06-22 13:55 ` [PATCH v4 4/7] usb: build usb-redir " Gerd Hoffmann
2020-06-22 13:55 ` [PATCH v4 5/7] vga: build qxl " Gerd Hoffmann
2020-06-22 13:56 ` [PATCH v4 6/7] vga: build virtio-gpu only once Gerd Hoffmann
2020-06-22 13:56 ` [PATCH v4 7/7] vga: build virtio-gpu as module Gerd Hoffmann
2020-06-23 15:04 ` [PATCH v4 0/7] build some devices as modules Stefan Hajnoczi
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=50b9426c-f34d-c3e7-8572-82c4c7d155a1@redhat.com \
--to=philmd@redhat.com \
--cc=berrange@redhat.com \
--cc=dinechin@redhat.com \
--cc=ehabkost@redhat.com \
--cc=kraxel@redhat.com \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).