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