| 1 | /* |
| 2 | * Copyright (C) 2011 Citrix Ltd. |
| 3 | * |
| 4 | * This work is licensed under the terms of the GNU GPL, version 2. See |
| 5 | * the COPYING file in the top-level directory. |
| 6 | * |
| 7 | */ |
| 8 | |
| 9 | #ifndef XEN_MAPCACHE_H |
| 10 | #define XEN_MAPCACHE_H |
| 11 | |
| 12 | #include "system/xen.h" |
| 13 | |
| 14 | typedef hwaddr (*phys_offset_to_gaddr_t)(hwaddr phys_offset, |
| 15 | ram_addr_t size); |
| 16 | bool xen_map_cache_enabled(void); |
| 17 | void xen_map_cache_init(phys_offset_to_gaddr_t f, |
| 18 | void *opaque); |
| 19 | uint8_t *xen_map_cache(const MemoryRegion *mr, hwaddr phys_addr, hwaddr size, |
| 20 | ram_addr_t ram_addr_offset, |
| 21 | uint8_t lock, bool dma, |
| 22 | bool is_write); |
| 23 | ram_addr_t xen_ram_addr_from_mapcache(void *ptr); |
| 24 | void xen_invalidate_map_cache_entry(uint8_t *buffer); |
| 25 | void xen_invalidate_map_cache(void); |
| 26 | uint8_t *xen_replace_cache_entry(hwaddr old_phys_addr, |
| 27 | hwaddr new_phys_addr, |
| 28 | hwaddr size); |
| 29 | |
| 30 | #endif /* XEN_MAPCACHE_H */ |