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