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 <stdlib.h> 13 14 typedef hwaddr (*phys_offset_to_gaddr_t)(hwaddr start_addr, 15 ram_addr_t size, 16 void *opaque); 17 #ifdef CONFIG_XEN 18 19 void xen_map_cache_init(phys_offset_to_gaddr_t f, 20 void *opaque); 21 uint8_t *xen_map_cache(hwaddr phys_addr, hwaddr size, 22 uint8_t lock); 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 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 { 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 #endif 55 56 #endif /* !XEN_MAPCACHE_H */ 57