|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [v6][PATCH 5/7] hvmloader: introduce hypercall for xc_reserved_device_memory_map
> From: Chen, Tiejun
> Sent: Tuesday, September 09, 2014 10:50 PM
>
> We will introduce that hypercall xc_reserved_device_memory_map
> to hvmloader.
>
> Signed-off-by: Tiejun Chen <tiejun.chen@xxxxxxxxx>
>
> diff --git a/tools/firmware/hvmloader/util.c b/tools/firmware/hvmloader/util.c
> index 80d822f..90dbb6e 100644
> --- a/tools/firmware/hvmloader/util.c
> +++ b/tools/firmware/hvmloader/util.c
> @@ -828,6 +828,28 @@ int hpet_exists(unsigned long hpet_base)
> return ((hpet_id >> 16) == 0x8086);
> }
>
> +int get_reserved_device_memory_map(struct
> xen_mem_reserved_device_memory entries[],
> + uint32_t max_entries)
usually claim as a pointer instead of array as the parameter.
> +{
> + static int map_done = 0;
don't see much value of the static variable here. Better for the caller
to judge whether multiple calls are required.
> + struct xen_mem_reserved_device_memory_map memmap = {
> + .nr_entries = max_entries
> + };
> +
> + if ( map_done )
> + return 0;
> +
> + set_xen_guest_handle(memmap.buffer, entries);
> +
> + if ( hypercall_memory_op(XENMEM_reserved_device_memory_map,
> + &memmap) != 0 )
> + BUG();
> +
> + map_done = 1;
> +
> + return 0;
> +}
> +
> /*
> * Local variables:
> * mode: C
> diff --git a/tools/firmware/hvmloader/util.h
> b/tools/firmware/hvmloader/util.h
> index a70e4aa..cca0d5b 100644
> --- a/tools/firmware/hvmloader/util.h
> +++ b/tools/firmware/hvmloader/util.h
> @@ -241,6 +241,9 @@ int build_e820_table(struct e820entry *e820,
> unsigned int bios_image_base);
> void dump_e820_table(struct e820entry *e820, unsigned int nr);
>
> +#include <xen/memory.h>
> +int get_reserved_device_memory_map(struct
> xen_mem_reserved_device_memory entries[],
> + uint32_t max_entries);
> #ifndef NDEBUG
> void perform_tests(void);
> #else
> --
> 1.9.1
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |