[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH RFC server 06/11] vfio-user: handle PCI config space accesses
From: |
John Levon |
Subject: |
Re: [PATCH RFC server 06/11] vfio-user: handle PCI config space accesses |
Date: |
Mon, 26 Jul 2021 15:10:31 +0000 |
On Mon, Jul 19, 2021 at 04:00:08PM -0400, Jagannathan Raman wrote:
> Define and register handlers for PCI config space accesses
>
> Signed-off-by: Elena Ufimtseva <elena.ufimtseva@oracle.com>
> Signed-off-by: John G Johnson <john.g.johnson@oracle.com>
> Signed-off-by: Jagannathan Raman <jag.raman@oracle.com>
> ---
> hw/remote/vfio-user-obj.c | 41 +++++++++++++++++++++++++++++++++++++++++
> hw/remote/trace-events | 2 ++
> 2 files changed, 43 insertions(+)
>
> diff --git a/hw/remote/vfio-user-obj.c b/hw/remote/vfio-user-obj.c
> index 6a2d0f5..60d9fa8 100644
> --- a/hw/remote/vfio-user-obj.c
> +++ b/hw/remote/vfio-user-obj.c
> @@ -36,6 +36,7 @@
> #include "sysemu/runstate.h"
> #include "qemu/notify.h"
> #include "qemu/thread.h"
> +#include "qemu/main-loop.h"
> #include "qapi/error.h"
> #include "sysemu/sysemu.h"
> #include "hw/qdev-core.h"
> @@ -131,6 +132,35 @@ static void *vfu_object_ctx_run(void *opaque)
> return NULL;
> }
>
> +static ssize_t vfu_object_cfg_access(vfu_ctx_t *vfu_ctx, char * const buf,
> + size_t count, loff_t offset,
> + const bool is_write)
> +{
> + VfuObject *o = vfu_get_private(vfu_ctx);
> + uint32_t val = 0;
> + int i;
> +
> + qemu_mutex_lock_iothread();
> +
> + for (i = 0; i < count; i++) {
> + if (is_write) {
> + val = *((uint8_t *)(buf + i));
> + trace_vfu_cfg_write((offset + i), val);
> + pci_default_write_config(PCI_DEVICE(o->pci_dev),
> + (offset + i), val, 1);
> + } else {
> + val = pci_default_read_config(PCI_DEVICE(o->pci_dev),
> + (offset + i), 1);
> + *((uint8_t *)(buf + i)) = (uint8_t)val;
> + trace_vfu_cfg_read((offset + i), val);
> + }
> + }
Is it always OK to split up the access into single bytes like this?
regards
john
- [PATCH RFC server 01/11] vfio-user: build library, (continued)
[PATCH RFC server 03/11] vfio-user: instantiate vfio-user context, Jagannathan Raman, 2021/07/19
[PATCH RFC server 02/11] vfio-user: define vfio-user object, Jagannathan Raman, 2021/07/19
[PATCH RFC server 04/11] vfio-user: find and init PCI device, Jagannathan Raman, 2021/07/19
[PATCH RFC server 06/11] vfio-user: handle PCI config space accesses, Jagannathan Raman, 2021/07/19
- Re: [PATCH RFC server 06/11] vfio-user: handle PCI config space accesses,
John Levon <=
[PATCH RFC server 05/11] vfio-user: run vfio-user context, Jagannathan Raman, 2021/07/19