|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [v5][PATCH 08/10] tools:firmware:hvmloader: introduce hypercall for xc_reserved_device_memory_map
We will introduce that hypercall xc_reserved_device_memory_map
to hvmloader.
Signed-off-by: Tiejun Chen <tiejun.chen@xxxxxxxxx>
---
tools/firmware/hvmloader/util.c | 22 ++++++++++++++++++++++
tools/firmware/hvmloader/util.h | 11 +++++++++++
2 files changed, 33 insertions(+)
diff --git a/tools/firmware/hvmloader/util.c b/tools/firmware/hvmloader/util.c
index 80d822f..2d2fb7a 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 reserved_device_memory *entries,
+ uint32_t max_entries)
+{
+ static int map_done = 0;
+ 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..644b557 100644
--- a/tools/firmware/hvmloader/util.h
+++ b/tools/firmware/hvmloader/util.h
@@ -241,6 +241,17 @@ int build_e820_table(struct e820entry *e820,
unsigned int bios_image_base);
void dump_e820_table(struct e820entry *e820, unsigned int nr);
+
+struct reserved_device_memory {
+ /* Start PFN of the current mapping of the page. */
+ unsigned int start_pfn;
+ /* Number of the current mapping pages. */
+ unsigned int nr_pages;
+};
+typedef struct reserved_device_memory reserved_device_memory_t;
+
+int get_reserved_device_memory_map(struct 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 |