[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v4 1/3] qdev: Add a granule_mode property
From: |
Eric Auger |
Subject: |
Re: [PATCH v4 1/3] qdev: Add a granule_mode property |
Date: |
Fri, 23 Feb 2024 09:30:37 +0100 |
User-agent: |
Mozilla Thunderbird |
Hi Philippe,
On 2/23/24 08:52, Philippe Mathieu-Daudé wrote:
> Hi Eric,
>
> On 23/2/24 08:27, Eric Auger wrote:
>> Introduce a new enum type property allowing to set an
>> IOMMU granule. Values are 4K, 8K, 16K, 64K and host.
>> This latter indicates the vIOMMU granule will match
>> the host page size.
>>
>> A subsequent patch will add such a property to the
>> virtio-iommu device.
>>
>> Signed-off-by: Eric Auger <eric.auger@redhat.com>
>>
>> ---
>>
>> v3 -> v4:
>> - Add 8K
>> ---
>> include/hw/qdev-properties-system.h | 3 +++
>> include/hw/virtio/virtio-iommu.h | 11 +++++++++++
>> hw/core/qdev-properties-system.c | 15 +++++++++++++++
>> hw/virtio/virtio-iommu.c | 11 +++++++++++
>> 4 files changed, 40 insertions(+)
>
>
>> diff --git a/include/hw/virtio/virtio-iommu.h
>> b/include/hw/virtio/virtio-iommu.h
>> index 5fbe4677c2..e22327548f 100644
>> --- a/include/hw/virtio/virtio-iommu.h
>> +++ b/include/hw/virtio/virtio-iommu.h
>> @@ -31,6 +31,17 @@ OBJECT_DECLARE_SIMPLE_TYPE(VirtIOIOMMU, VIRTIO_IOMMU)
>> #define TYPE_VIRTIO_IOMMU_MEMORY_REGION "virtio-iommu-memory-region"
>> +typedef enum GranuleMode {
>> + GRANULE_MODE_4K,
>> + GRANULE_MODE_8K,
>> + GRANULE_MODE_16K,
>> + GRANULE_MODE_64K,
>> + GRANULE_MODE_HOST,
>> + GRANULE_MODE__MAX,
>> +} GranuleMode;
>> +
>> +extern const QEnumLookup GranuleMode_lookup;
>
> Aren't this, ...
>
>> diff --git a/hw/virtio/virtio-iommu.c b/hw/virtio/virtio-iommu.c
>> index 2ec5ef3cd1..a9bdc03d12 100644
>> --- a/hw/virtio/virtio-iommu.c
>> +++ b/hw/virtio/virtio-iommu.c
>> @@ -44,6 +44,17 @@
>> #define VIOMMU_DEFAULT_QUEUE_SIZE 256
>> #define VIOMMU_PROBE_SIZE 512
>> +const QEnumLookup GranuleMode_lookup = {
>> + .array = (const char *const[]) {
>> + [GRANULE_MODE_4K] = "4K",
>> + [GRANULE_MODE_8K] = "8K",
>> + [GRANULE_MODE_16K] = "16K",
>> + [GRANULE_MODE_64K] = "64K",
>> + [GRANULE_MODE_HOST] = "host",
>> + },
>> + .size = GRANULE_MODE__MAX
>> +};
> ... and this supposed to be QAPI generated?
If I remove both, it does not compile. How do you make it generated?
Thanks
Eric