From: "Cédric Le Goater" <clg@redhat.com>
To: John Levon <john.levon@nutanix.com>, qemu-devel@nongnu.org
Cc: "Alex Williamson" <alex.williamson@redhat.com>,
"Paolo Bonzini" <pbonzini@redhat.com>,
"Marc-André Lureau" <marcandre.lureau@redhat.com>,
"Peter Xu" <peterx@redhat.com>,
"David Hildenbrand" <david@redhat.com>,
"Stefano Garzarella" <sgarzare@redhat.com>,
"Daniel P. Berrangé" <berrange@redhat.com>,
"Philippe Mathieu-Daudé" <philmd@linaro.org>,
"Michael S. Tsirkin" <mst@redhat.com>,
"Thanos Makatos" <thanos.makatos@nutanix.com>
Subject: Re: [PATCH v2 01/29] vfio: add more VFIOIOMMUClass docs
Date: Tue, 20 May 2025 18:14:22 +0200 [thread overview]
Message-ID: <e10b78aa-b8cc-4a69-b831-1a7f8caaa52c@redhat.com> (raw)
In-Reply-To: <20250520150419.2172078-2-john.levon@nutanix.com>
On 5/20/25 17:03, John Levon wrote:
> Add some additional doc comments for these class methods.
>
> Signed-off-by: John Levon <john.levon@nutanix.com>
> ---
> include/hw/vfio/vfio-container-base.h | 64 ++++++++++++++++++++++++++-
> 1 file changed, 63 insertions(+), 1 deletion(-)
>
> diff --git a/include/hw/vfio/vfio-container-base.h b/include/hw/vfio/vfio-container-base.h
> index 3d392b0fd8..41c49b2aa5 100644
> --- a/include/hw/vfio/vfio-container-base.h
> +++ b/include/hw/vfio/vfio-container-base.h
> @@ -115,13 +115,52 @@ OBJECT_DECLARE_TYPE(VFIOContainerBase, VFIOIOMMUClass, VFIO_IOMMU)
> struct VFIOIOMMUClass {
> ObjectClass parent_class;
>
> - /* basic feature */
> + /**
> + * @setup
> + *
> + * Perform basic setup of the container.
We could add a few details, something like :
"IOMMU capabilities, page sizes and IOVA ranges initialization."
> Returns true on success, or false
> + * with @errp filled in on failure.
I would prefer the return statement to be at the end. See query_dirty_bitmap.
> + *
> + * @bcontainer: #VFIOContainerBase
> + * @errp: error filled in on failure
> + */
> bool (*setup)(VFIOContainerBase *bcontainer, Error **errp);
> +
> + /**
> + * @listener_begin
> + *
> + * Called at the beginning of an address space update transaction.
> + * See #MemoryListener.
> + *
> + * @bcontainer: #VFIOContainerBase
> + */
> void (*listener_begin)(VFIOContainerBase *bcontainer);
> +
> + /**
> + * @listener_commit
> + *
> + * Called at the end of an address space update transaction,
> + * See #MemoryListener.
> + *
> + * @bcontainer: #VFIOContainerBase
> + */
> void (*listener_commit)(VFIOContainerBase *bcontainer);
> +
> + /**
> + * @dma_map
> + *
> + * Map an address range into the container.
> + *
> + * @bcontainer: #VFIOContainerBase to use
> + * @iova: start address to map
> + * @size: size of the range to map
> + * @vaddr: process virtual address of mapping
> + * @readonly: true if mapping should be readonly
Returns zero to indicate success and negative for error.
In fact it returns -errno. Should be mentioned too.
> + */
> int (*dma_map)(const VFIOContainerBase *bcontainer,
> hwaddr iova, ram_addr_t size,
> void *vaddr, bool readonly);
> +
> /**
> * @dma_unmap
> *
> @@ -136,8 +175,31 @@ struct VFIOIOMMUClass {
> int (*dma_unmap)(const VFIOContainerBase *bcontainer,
> hwaddr iova, ram_addr_t size,
> IOMMUTLBEntry *iotlb, bool unmap_all);
> +
> +
> + /**
> + * @attach_device
> + *
> + * Associate the given device with a container and do some related
> + * initialization of the device context. Returns true on success, or false
> + * with @errp filled in.
> + *
> + * @name: name of the device
> + * @vbasedev: the device
> + * @as: address space to use
> + * @errp: error filled in on failure
Return: true on success, else false setting @errp with error.
> + */
> bool (*attach_device)(const char *name, VFIODevice *vbasedev,> AddressSpace *as, Error **errp);
> +
> + /*
> + * @detach_device
> + *
> + * Detach the given device from its container and clean up any necessary
> + * state.
> + *
> + * @vbasedev: the device to disassociate
> + */
> void (*detach_device)(VFIODevice *vbasedev);
>
> /* migration feature */
Please resend independently of the series.
Thanks,
C.
next prev parent reply other threads:[~2025-05-20 16:16 UTC|newest]
Thread overview: 50+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-05-20 15:03 [PATCH v2 00/29] vfio-user client John Levon
2025-05-20 15:03 ` [PATCH v2 01/29] vfio: add more VFIOIOMMUClass docs John Levon
2025-05-20 16:14 ` Cédric Le Goater [this message]
2025-05-20 15:03 ` [PATCH v2 02/29] vfio: move more cleanup into vfio_pci_put_device() John Levon
2025-05-20 15:03 ` [PATCH v2 03/29] vfio: move config space read into vfio_pci_config_setup() John Levon
2025-05-20 15:03 ` [PATCH v2 04/29] vfio: refactor out IRQ signalling setup John Levon
2025-05-20 15:03 ` [PATCH v2 05/29] vfio: export PCI helpers needed for vfio-user John Levon
2025-05-21 7:39 ` Cédric Le Goater
2025-05-21 8:40 ` John Levon
2025-05-21 9:07 ` Cédric Le Goater
2025-05-20 15:03 ` [PATCH v2 06/29] vfio: enable per-IRQ MSI-X masking John Levon
2025-05-21 7:29 ` Cédric Le Goater
2025-05-28 17:16 ` Steven Sistare
2025-05-28 17:36 ` John Levon
2025-05-20 15:03 ` [PATCH v2 07/29] vfio: add per-region fd support John Levon
2025-05-21 8:11 ` Cédric Le Goater
2025-05-21 8:25 ` John Levon
2025-05-26 12:08 ` Cédric Le Goater
2025-05-27 8:52 ` John Levon
2025-05-20 15:03 ` [PATCH v2 08/29] vfio: mark posted writes in region write callbacks John Levon
2025-05-21 8:12 ` Cédric Le Goater
2025-05-20 15:03 ` [PATCH v2 09/29] vfio: return mr from vfio_get_xlat_addr John Levon
2025-05-20 15:03 ` [PATCH v2 10/29] vfio/container: pass MemoryRegion to DMA operations John Levon
2025-05-21 7:43 ` Cédric Le Goater
2025-05-21 8:29 ` John Levon
2025-05-21 13:00 ` Steven Sistare
2025-05-21 13:13 ` John Levon
2025-05-20 15:04 ` [PATCH v2 11/29] vfio-user: introduce vfio-user protocol specification John Levon
2025-05-20 15:04 ` [PATCH v2 12/29] vfio-user: add vfio-user class and container John Levon
2025-05-20 15:04 ` [PATCH v2 13/29] vfio-user: connect vfio proxy to remote server John Levon
2025-05-20 15:04 ` [PATCH v2 14/29] vfio-user: implement message receive infrastructure John Levon
2025-05-20 15:04 ` [PATCH v2 15/29] vfio-user: implement message send infrastructure John Levon
2025-05-20 15:04 ` [PATCH v2 16/29] vfio-user: implement VFIO_USER_DEVICE_GET_INFO John Levon
2025-05-20 15:04 ` [PATCH v2 17/29] vfio-user: implement VFIO_USER_DEVICE_GET_REGION_INFO John Levon
2025-05-20 15:04 ` [PATCH v2 18/29] vfio-user: implement VFIO_USER_REGION_READ/WRITE John Levon
2025-05-20 15:04 ` [PATCH v2 19/29] vfio-user: set up PCI in vfio_user_pci_realize() John Levon
2025-05-20 15:04 ` [PATCH v2 20/29] vfio-user: implement VFIO_USER_DEVICE_GET/SET_IRQ* John Levon
2025-05-20 15:04 ` [PATCH v2 21/29] vfio-user: forward MSI-X PBA BAR accesses to server John Levon
2025-05-20 15:04 ` [PATCH v2 22/29] vfio-user: set up container access to the proxy John Levon
2025-05-20 15:04 ` [PATCH v2 23/29] vfio-user: implement VFIO_USER_DEVICE_RESET John Levon
2025-05-20 15:04 ` [PATCH v2 24/29] vfio-user: implement VFIO_USER_DMA_MAP/UNMAP John Levon
2025-05-20 15:04 ` [PATCH v2 25/29] vfio-user: implement VFIO_USER_DMA_READ/WRITE John Levon
2025-05-20 15:04 ` [PATCH v2 26/29] vfio-user: add 'x-msg-timeout' option John Levon
2025-05-20 15:04 ` [PATCH v2 27/29] vfio-user: support posted writes John Levon
2025-05-20 15:04 ` [PATCH v2 28/29] vfio-user: add coalesced " John Levon
2025-05-20 15:04 ` [PATCH v2 29/29] docs: add vfio-user documentation John Levon
2025-05-27 9:39 ` [PATCH v2 00/29] vfio-user client Cédric Le Goater
2025-05-27 10:04 ` John Levon
2025-05-27 12:09 ` Cédric Le Goater
2025-06-05 21:16 ` Cédric Le Goater
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=e10b78aa-b8cc-4a69-b831-1a7f8caaa52c@redhat.com \
--to=clg@redhat.com \
--cc=alex.williamson@redhat.com \
--cc=berrange@redhat.com \
--cc=david@redhat.com \
--cc=john.levon@nutanix.com \
--cc=marcandre.lureau@redhat.com \
--cc=mst@redhat.com \
--cc=pbonzini@redhat.com \
--cc=peterx@redhat.com \
--cc=philmd@linaro.org \
--cc=qemu-devel@nongnu.org \
--cc=sgarzare@redhat.com \
--cc=thanos.makatos@nutanix.com \
/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).