mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-03 15:53:54 -06:00
xen/mapcache: introduce xen_replace_cache_entry()
This new call is trying to update a requested map cache entry according to the changes in the physmap. The call is searching for the entry, unmaps it and maps again at the same place using a new guest address. If the mapping is dummy this call will make it real. This function makes use of a new xenforeignmemory_map2() call with an extended interface that was recently introduced in libxenforeignmemory [1]. [1] https://www.mail-archive.com/xen-devel@lists.xen.org/msg113007.html Signed-off-by: Igor Druzhinin <igor.druzhinin@citrix.com> Reviewed-by: Paul Durrant <paul.durrant@citrix.com> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org> Signed-off-by: Stefano Stabellini <sstabellini@kernel.org>
This commit is contained in:
parent
759235653d
commit
5ba3d75645
4 changed files with 119 additions and 9 deletions
|
@ -21,7 +21,9 @@ uint8_t *xen_map_cache(hwaddr phys_addr, hwaddr size,
|
|||
ram_addr_t xen_ram_addr_from_mapcache(void *ptr);
|
||||
void xen_invalidate_map_cache_entry(uint8_t *buffer);
|
||||
void xen_invalidate_map_cache(void);
|
||||
|
||||
uint8_t *xen_replace_cache_entry(hwaddr old_phys_addr,
|
||||
hwaddr new_phys_addr,
|
||||
hwaddr size);
|
||||
#else
|
||||
|
||||
static inline void xen_map_cache_init(phys_offset_to_gaddr_t f,
|
||||
|
@ -50,6 +52,13 @@ static inline void xen_invalidate_map_cache(void)
|
|||
{
|
||||
}
|
||||
|
||||
static inline uint8_t *xen_replace_cache_entry(hwaddr old_phys_addr,
|
||||
hwaddr new_phys_addr,
|
||||
hwaddr size)
|
||||
{
|
||||
abort();
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
#endif /* XEN_MAPCACHE_H */
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue