1432d268cSJun Nakajima /* 2432d268cSJun Nakajima * Copyright (C) 2011 Citrix Ltd. 3432d268cSJun Nakajima * 4432d268cSJun Nakajima * This work is licensed under the terms of the GNU GPL, version 2. See 5432d268cSJun Nakajima * the COPYING file in the top-level directory. 6432d268cSJun Nakajima * 7432d268cSJun Nakajima */ 8432d268cSJun Nakajima 9432d268cSJun Nakajima #ifndef XEN_MAPCACHE_H 10432d268cSJun Nakajima #define XEN_MAPCACHE_H 11432d268cSJun Nakajima 12ec150c7eSMarkus Armbruster #include "exec/cpu-common.h" 13*32cad1ffSPhilippe Mathieu-Daudé #include "system/xen.h" 14ec150c7eSMarkus Armbruster 1504a8f72eSIgor Druzhinin typedef hwaddr (*phys_offset_to_gaddr_t)(hwaddr phys_offset, 1604a8f72eSIgor Druzhinin ram_addr_t size); 17cd1ba7deSAnthony PERARD void xen_map_cache_init(phys_offset_to_gaddr_t f, 18cd1ba7deSAnthony PERARD void *opaque); 195a5585f4SEdgar E. Iglesias uint8_t *xen_map_cache(MemoryRegion *mr, hwaddr phys_addr, hwaddr size, 2049a72029SEdgar E. Iglesias ram_addr_t ram_addr_offset, 215a5585f4SEdgar E. Iglesias uint8_t lock, bool dma, 225a5585f4SEdgar E. Iglesias bool is_write); 23e41d7c69SJan Kiszka ram_addr_t xen_ram_addr_from_mapcache(void *ptr); 24e41d7c69SJan Kiszka void xen_invalidate_map_cache_entry(uint8_t *buffer); 25e41d7c69SJan Kiszka void xen_invalidate_map_cache(void); 265ba3d756SIgor Druzhinin uint8_t *xen_replace_cache_entry(hwaddr old_phys_addr, 275ba3d756SIgor Druzhinin hwaddr new_phys_addr, 285ba3d756SIgor Druzhinin hwaddr size); 29fd2a9d2fSAvi Kivity 30175de524SMarkus Armbruster #endif /* XEN_MAPCACHE_H */ 31