diff mbox series

[QEMU,v4,01/10] hw/i386/xen/: move xen-mapcache.c to hw/xen/

Message ID 20230125085407.7144-2-vikram.garhwal@amd.com (mailing list archive)
State New, archived
Headers show
Series Introduce xenpvh machine for arm architecture | expand

Commit Message

Vikram Garhwal Jan. 25, 2023, 8:53 a.m. UTC
xen-mapcache.c contains common functions which can be used for enabling Xen on
aarch64 with IOREQ handling. Moving it out from hw/i386/xen to hw/xen to make it
accessible for both aarch64 and x86.

Signed-off-by: Vikram Garhwal <vikram.garhwal@amd.com>
Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com>
---
 hw/i386/meson.build              | 1 +
 hw/i386/xen/meson.build          | 1 -
 hw/i386/xen/trace-events         | 5 -----
 hw/xen/meson.build               | 4 ++++
 hw/xen/trace-events              | 5 +++++
 hw/{i386 => }/xen/xen-mapcache.c | 0
 6 files changed, 10 insertions(+), 6 deletions(-)
 rename hw/{i386 => }/xen/xen-mapcache.c (100%)

Comments

Philippe Mathieu-Daudé Jan. 25, 2023, 10:59 p.m. UTC | #1
On 25/1/23 09:53, Vikram Garhwal wrote:
> xen-mapcache.c contains common functions which can be used for enabling Xen on
> aarch64 with IOREQ handling. Moving it out from hw/i386/xen to hw/xen to make it
> accessible for both aarch64 and x86.
> 
> Signed-off-by: Vikram Garhwal <vikram.garhwal@amd.com>
> Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com>
> ---
>   hw/i386/meson.build              | 1 +
>   hw/i386/xen/meson.build          | 1 -
>   hw/i386/xen/trace-events         | 5 -----
>   hw/xen/meson.build               | 4 ++++
>   hw/xen/trace-events              | 5 +++++
>   hw/{i386 => }/xen/xen-mapcache.c | 0
>   6 files changed, 10 insertions(+), 6 deletions(-)
>   rename hw/{i386 => }/xen/xen-mapcache.c (100%)
> 
> diff --git a/hw/i386/meson.build b/hw/i386/meson.build
> index 213e2e82b3..cfdbfdcbcb 100644
> --- a/hw/i386/meson.build
> +++ b/hw/i386/meson.build
> @@ -33,5 +33,6 @@ subdir('kvm')
>   subdir('xen')
>   
>   i386_ss.add_all(xenpv_ss)
> +i386_ss.add_all(xen_ss)
>   
>   hw_arch += {'i386': i386_ss}
> diff --git a/hw/i386/xen/meson.build b/hw/i386/xen/meson.build
> index be84130300..2fcc46e6ca 100644
> --- a/hw/i386/xen/meson.build
> +++ b/hw/i386/xen/meson.build
> @@ -1,6 +1,5 @@
>   i386_ss.add(when: 'CONFIG_XEN', if_true: files(
>     'xen-hvm.c',
> -  'xen-mapcache.c',
>     'xen_apic.c',
>     'xen_platform.c',
>     'xen_pvdevice.c',
> diff --git a/hw/i386/xen/trace-events b/hw/i386/xen/trace-events
> index 5d6be61090..a0c89d91c4 100644
> --- a/hw/i386/xen/trace-events
> +++ b/hw/i386/xen/trace-events
> @@ -21,8 +21,3 @@ xen_map_resource_ioreq(uint32_t id, void *addr) "id: %u addr: %p"
>   cpu_ioreq_config_read(void *req, uint32_t sbdf, uint32_t reg, uint32_t size, uint32_t data) "I/O=%p sbdf=0x%x reg=%u size=%u data=0x%x"
>   cpu_ioreq_config_write(void *req, uint32_t sbdf, uint32_t reg, uint32_t size, uint32_t data) "I/O=%p sbdf=0x%x reg=%u size=%u data=0x%x"
>   
> -# xen-mapcache.c
> -xen_map_cache(uint64_t phys_addr) "want 0x%"PRIx64
> -xen_remap_bucket(uint64_t index) "index 0x%"PRIx64
> -xen_map_cache_return(void* ptr) "%p"
> -
> diff --git a/hw/xen/meson.build b/hw/xen/meson.build
> index ae0ace3046..19d0637c46 100644
> --- a/hw/xen/meson.build
> +++ b/hw/xen/meson.build
> @@ -22,3 +22,7 @@ else
>   endif
>   
>   specific_ss.add_all(when: ['CONFIG_XEN', xen], if_true: xen_specific_ss)
> +
> +xen_ss = ss.source_set()
> +
> +xen_ss.add(when: 'CONFIG_XEN', if_true: files('xen-mapcache.c'))

Can't we add it to softmmu_ss directly?

> diff --git a/hw/xen/trace-events b/hw/xen/trace-events
> index 3da3fd8348..2c8f238f42 100644
> --- a/hw/xen/trace-events
> +++ b/hw/xen/trace-events
> @@ -41,3 +41,8 @@ xs_node_vprintf(char *path, char *value) "%s %s"
>   xs_node_vscanf(char *path, char *value) "%s %s"
>   xs_node_watch(char *path) "%s"
>   xs_node_unwatch(char *path) "%s"
> +
> +# xen-mapcache.c
> +xen_map_cache(uint64_t phys_addr) "want 0x%"PRIx64
> +xen_remap_bucket(uint64_t index) "index 0x%"PRIx64
> +xen_map_cache_return(void* ptr) "%p"
> diff --git a/hw/i386/xen/xen-mapcache.c b/hw/xen/xen-mapcache.c
> similarity index 100%
> rename from hw/i386/xen/xen-mapcache.c
> rename to hw/xen/xen-mapcache.c
Vikram Garhwal Jan. 26, 2023, 2:39 a.m. UTC | #2
Hi Philippe,

On 1/25/23 2:59 PM, Philippe Mathieu-Daudé wrote:
> On 25/1/23 09:53, Vikram Garhwal wrote:
>> xen-mapcache.c contains common functions which can be used for 
>> enabling Xen on
>> aarch64 with IOREQ handling. Moving it out from hw/i386/xen to hw/xen 
>> to make it
>> accessible for both aarch64 and x86.
>>
>> Signed-off-by: Vikram Garhwal <vikram.garhwal@amd.com>
>> Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com>
>> ---
>>   hw/i386/meson.build              | 1 +
>>   hw/i386/xen/meson.build          | 1 -
>>   hw/i386/xen/trace-events         | 5 -----
>>   hw/xen/meson.build               | 4 ++++
>>   hw/xen/trace-events              | 5 +++++
>>   hw/{i386 => }/xen/xen-mapcache.c | 0
>>   6 files changed, 10 insertions(+), 6 deletions(-)
>>   rename hw/{i386 => }/xen/xen-mapcache.c (100%)
>>
>> diff --git a/hw/i386/meson.build b/hw/i386/meson.build
>> index 213e2e82b3..cfdbfdcbcb 100644
>> --- a/hw/i386/meson.build
>> +++ b/hw/i386/meson.build
>> @@ -33,5 +33,6 @@ subdir('kvm')
>>   subdir('xen')
>>     i386_ss.add_all(xenpv_ss)
>> +i386_ss.add_all(xen_ss)
>>     hw_arch += {'i386': i386_ss}
>> diff --git a/hw/i386/xen/meson.build b/hw/i386/xen/meson.build
>> index be84130300..2fcc46e6ca 100644
>> --- a/hw/i386/xen/meson.build
>> +++ b/hw/i386/xen/meson.build
>> @@ -1,6 +1,5 @@
>>   i386_ss.add(when: 'CONFIG_XEN', if_true: files(
>>     'xen-hvm.c',
>> -  'xen-mapcache.c',
>>     'xen_apic.c',
>>     'xen_platform.c',
>>     'xen_pvdevice.c',
>> diff --git a/hw/i386/xen/trace-events b/hw/i386/xen/trace-events
>> index 5d6be61090..a0c89d91c4 100644
>> --- a/hw/i386/xen/trace-events
>> +++ b/hw/i386/xen/trace-events
>> @@ -21,8 +21,3 @@ xen_map_resource_ioreq(uint32_t id, void *addr) 
>> "id: %u addr: %p"
>>   cpu_ioreq_config_read(void *req, uint32_t sbdf, uint32_t reg, 
>> uint32_t size, uint32_t data) "I/O=%p sbdf=0x%x reg=%u size=%u 
>> data=0x%x"
>>   cpu_ioreq_config_write(void *req, uint32_t sbdf, uint32_t reg, 
>> uint32_t size, uint32_t data) "I/O=%p sbdf=0x%x reg=%u size=%u 
>> data=0x%x"
>>   -# xen-mapcache.c
>> -xen_map_cache(uint64_t phys_addr) "want 0x%"PRIx64
>> -xen_remap_bucket(uint64_t index) "index 0x%"PRIx64
>> -xen_map_cache_return(void* ptr) "%p"
>> -
>> diff --git a/hw/xen/meson.build b/hw/xen/meson.build
>> index ae0ace3046..19d0637c46 100644
>> --- a/hw/xen/meson.build
>> +++ b/hw/xen/meson.build
>> @@ -22,3 +22,7 @@ else
>>   endif
>>     specific_ss.add_all(when: ['CONFIG_XEN', xen], if_true: 
>> xen_specific_ss)
>> +
>> +xen_ss = ss.source_set()
>> +
>> +xen_ss.add(when: 'CONFIG_XEN', if_true: files('xen-mapcache.c'))
>
> Can't we add it to softmmu_ss directly?
>
I tried adding this in softmmu_ss as per your comment in v2. But it 
fails with following error:
//mnt/qemu_ioreq_upstream/include/sysemu/xen-mapcache.h:16:8: error: 
attempt to use poisoned "CONFIG_XEN"//
// #ifdef CONFIG_XEN//
//        ^//
//../hw/xen/xen-mapcache.c:106:6: error: redefinition of 
'xen_map_cache_init'//
/

/ void xen_map_cache_init(phys_offset_to_gaddr_t f, void *opaque)/

I couldn't fix it in easy way.

>> diff --git a/hw/xen/trace-events b/hw/xen/trace-events
>> index 3da3fd8348..2c8f238f42 100644
>> --- a/hw/xen/trace-events
>> +++ b/hw/xen/trace-events
>> @@ -41,3 +41,8 @@ xs_node_vprintf(char *path, char *value) "%s %s"
>>   xs_node_vscanf(char *path, char *value) "%s %s"
>>   xs_node_watch(char *path) "%s"
>>   xs_node_unwatch(char *path) "%s"
>> +
>> +# xen-mapcache.c
>> +xen_map_cache(uint64_t phys_addr) "want 0x%"PRIx64
>> +xen_remap_bucket(uint64_t index) "index 0x%"PRIx64
>> +xen_map_cache_return(void* ptr) "%p"
>> diff --git a/hw/i386/xen/xen-mapcache.c b/hw/xen/xen-mapcache.c
>> similarity index 100%
>> rename from hw/i386/xen/xen-mapcache.c
>> rename to hw/xen/xen-mapcache.c
>
diff mbox series

Patch

diff --git a/hw/i386/meson.build b/hw/i386/meson.build
index 213e2e82b3..cfdbfdcbcb 100644
--- a/hw/i386/meson.build
+++ b/hw/i386/meson.build
@@ -33,5 +33,6 @@  subdir('kvm')
 subdir('xen')
 
 i386_ss.add_all(xenpv_ss)
+i386_ss.add_all(xen_ss)
 
 hw_arch += {'i386': i386_ss}
diff --git a/hw/i386/xen/meson.build b/hw/i386/xen/meson.build
index be84130300..2fcc46e6ca 100644
--- a/hw/i386/xen/meson.build
+++ b/hw/i386/xen/meson.build
@@ -1,6 +1,5 @@ 
 i386_ss.add(when: 'CONFIG_XEN', if_true: files(
   'xen-hvm.c',
-  'xen-mapcache.c',
   'xen_apic.c',
   'xen_platform.c',
   'xen_pvdevice.c',
diff --git a/hw/i386/xen/trace-events b/hw/i386/xen/trace-events
index 5d6be61090..a0c89d91c4 100644
--- a/hw/i386/xen/trace-events
+++ b/hw/i386/xen/trace-events
@@ -21,8 +21,3 @@  xen_map_resource_ioreq(uint32_t id, void *addr) "id: %u addr: %p"
 cpu_ioreq_config_read(void *req, uint32_t sbdf, uint32_t reg, uint32_t size, uint32_t data) "I/O=%p sbdf=0x%x reg=%u size=%u data=0x%x"
 cpu_ioreq_config_write(void *req, uint32_t sbdf, uint32_t reg, uint32_t size, uint32_t data) "I/O=%p sbdf=0x%x reg=%u size=%u data=0x%x"
 
-# xen-mapcache.c
-xen_map_cache(uint64_t phys_addr) "want 0x%"PRIx64
-xen_remap_bucket(uint64_t index) "index 0x%"PRIx64
-xen_map_cache_return(void* ptr) "%p"
-
diff --git a/hw/xen/meson.build b/hw/xen/meson.build
index ae0ace3046..19d0637c46 100644
--- a/hw/xen/meson.build
+++ b/hw/xen/meson.build
@@ -22,3 +22,7 @@  else
 endif
 
 specific_ss.add_all(when: ['CONFIG_XEN', xen], if_true: xen_specific_ss)
+
+xen_ss = ss.source_set()
+
+xen_ss.add(when: 'CONFIG_XEN', if_true: files('xen-mapcache.c'))
diff --git a/hw/xen/trace-events b/hw/xen/trace-events
index 3da3fd8348..2c8f238f42 100644
--- a/hw/xen/trace-events
+++ b/hw/xen/trace-events
@@ -41,3 +41,8 @@  xs_node_vprintf(char *path, char *value) "%s %s"
 xs_node_vscanf(char *path, char *value) "%s %s"
 xs_node_watch(char *path) "%s"
 xs_node_unwatch(char *path) "%s"
+
+# xen-mapcache.c
+xen_map_cache(uint64_t phys_addr) "want 0x%"PRIx64
+xen_remap_bucket(uint64_t index) "index 0x%"PRIx64
+xen_map_cache_return(void* ptr) "%p"
diff --git a/hw/i386/xen/xen-mapcache.c b/hw/xen/xen-mapcache.c
similarity index 100%
rename from hw/i386/xen/xen-mapcache.c
rename to hw/xen/xen-mapcache.c