[Qemu-devel] [RFC PATCH 13/56] pci: Make PCI addresses and sizes unsigned in QAPI/QMP

Markus Armbruster posted 56 patches 8 years, 6 months ago
[Qemu-devel] [RFC PATCH 13/56] pci: Make PCI addresses and sizes unsigned in QAPI/QMP
Posted by Markus Armbruster 8 years, 6 months ago
Sizes and addresses should use QAPI type 'size' (uint64_t).
PciMemoryRegion members @address and @size are 'int' (int64_t).
qmp_query_pci_regions() implicitly converts from pcibus_t,
i.e. uint64_t.

Change these PciMemoryRegion members to 'size'.

query-pci now reports sizes and addresses above 2^63-1 correctly
instead of their (negative) two's complement.

HMP's "info pci" already reported them correctly, because it
implicitly converted back to uint64_t.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
---
 qapi-schema.json | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/qapi-schema.json b/qapi-schema.json
index 6aa6be9..c8cceb9 100644
--- a/qapi-schema.json
+++ b/qapi-schema.json
@@ -2062,7 +2062,7 @@
 # Since: 0.14.0
 ##
 { 'struct': 'PciMemoryRegion',
-  'data': {'bar': 'int', 'type': 'str', 'address': 'int', 'size': 'int',
+  'data': {'bar': 'int', 'type': 'str', 'address': 'size', 'size': 'size',
            '*prefetch': 'bool', '*mem_type_64': 'bool' } }
 
 ##
-- 
2.7.5


Re: [Qemu-devel] [RFC PATCH 13/56] pci: Make PCI addresses and sizes unsigned in QAPI/QMP
Posted by Marcel Apfelbaum 8 years, 5 months ago
Hi Markus,

On 07/08/2017 17:45, Markus Armbruster wrote:
> Sizes and addresses should use QAPI type 'size' (uint64_t).
> PciMemoryRegion members @address and @size are 'int' (int64_t).
> qmp_query_pci_regions() implicitly converts from pcibus_t,
> i.e. uint64_t.
> 
> Change these PciMemoryRegion members to 'size'.
> 
> query-pci now reports sizes and addresses above 2^63-1 correctly
> instead of their (negative) two's complement.
> 
> HMP's "info pci" already reported them correctly, because it
> implicitly converted back to uint64_t.
> 
> Signed-off-by: Markus Armbruster <armbru@redhat.com>
> ---
>   qapi-schema.json | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/qapi-schema.json b/qapi-schema.json
> index 6aa6be9..c8cceb9 100644
> --- a/qapi-schema.json
> +++ b/qapi-schema.json
> @@ -2062,7 +2062,7 @@
>   # Since: 0.14.0
>   ##
>   { 'struct': 'PciMemoryRegion',
> -  'data': {'bar': 'int', 'type': 'str', 'address': 'int', 'size': 'int',
> +  'data': {'bar': 'int', 'type': 'str', 'address': 'size', 'size': 'size',
>              '*prefetch': 'bool', '*mem_type_64': 'bool' } }
>   
>   ##
> 

Reviewed-by: Marcel Apfelbaum <marcel@redhat.com>

Thanks,
Marcel