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 "exec/cpu-common.h" 13 14 typedef hwaddr (*phys_offset_to_gaddr_t)(hwaddr phys_offset, 15 ram_addr_t size); 16 #ifdef CONFIG_XEN 17 18 void xen_map_cache_init(phys_offset_to_gaddr_t f, 19 void *opaque); 20 uint8_t *xen_map_cache(hwaddr phys_addr, hwaddr size, 21 uint8_t lock, bool dma); 22 ram_addr_t xen_ram_addr_from_mapcache(void *ptr); 23 void xen_invalidate_map_cache_entry(uint8_t *buffer); 24 void xen_invalidate_map_cache(void); 25 uint8_t *xen_replace_cache_entry(hwaddr old_phys_addr, 26 hwaddr new_phys_addr, 27 hwaddr size); 28 #else 29 30 static inline void xen_map_cache_init(phys_offset_to_gaddr_t f, 31 void *opaque) 32 { 33 } 34 35 static inline uint8_t *xen_map_cache(hwaddr phys_addr, 36 hwaddr size, 37 uint8_t lock, 38 bool dma) 39 { 40 abort(); 41 } 42 43 static inline ram_addr_t xen_ram_addr_from_mapcache(void *ptr) 44 { 45 abort(); 46 } 47 48 static inline void xen_invalidate_map_cache_entry(uint8_t *buffer) 49 { 50 } 51 52 static inline void xen_invalidate_map_cache(void) 53 { 54 } 55 56 static inline uint8_t *xen_replace_cache_entry(hwaddr old_phys_addr, 57 hwaddr new_phys_addr, 58 hwaddr size) 59 { 60 abort(); 61 } 62 63 #endif 64 65 #endif /* XEN_MAPCACHE_H */ 66