1432d268cSJun Nakajima /* 2432d268cSJun Nakajima * Copyright (C) 2011 Citrix Ltd. 3432d268cSJun Nakajima * 4432d268cSJun Nakajima * This work is licensed under the terms of the GNU GPL, version 2. See 5432d268cSJun Nakajima * the COPYING file in the top-level directory. 6432d268cSJun Nakajima * 7432d268cSJun Nakajima */ 8432d268cSJun Nakajima 9432d268cSJun Nakajima #ifndef XEN_MAPCACHE_H 10432d268cSJun Nakajima #define XEN_MAPCACHE_H 11432d268cSJun Nakajima 12ec150c7eSMarkus Armbruster #include "exec/cpu-common.h" 13*32cad1ffSPhilippe Mathieu-Daudé #include "system/xen.h" 14ec150c7eSMarkus Armbruster 1504a8f72eSIgor Druzhinin typedef hwaddr (*phys_offset_to_gaddr_t)(hwaddr phys_offset, 1604a8f72eSIgor Druzhinin ram_addr_t size); 173e5e5d47SPhilippe Mathieu-Daudé #ifdef CONFIG_XEN_IS_POSSIBLE 18fd2a9d2fSAvi Kivity 19cd1ba7deSAnthony PERARD void xen_map_cache_init(phys_offset_to_gaddr_t f, 20cd1ba7deSAnthony PERARD void *opaque); 215a5585f4SEdgar E. Iglesias uint8_t *xen_map_cache(MemoryRegion *mr, hwaddr phys_addr, hwaddr size, 2249a72029SEdgar E. Iglesias ram_addr_t ram_addr_offset, 235a5585f4SEdgar E. Iglesias uint8_t lock, bool dma, 245a5585f4SEdgar E. Iglesias bool is_write); 25e41d7c69SJan Kiszka ram_addr_t xen_ram_addr_from_mapcache(void *ptr); 26e41d7c69SJan Kiszka void xen_invalidate_map_cache_entry(uint8_t *buffer); 27e41d7c69SJan Kiszka void xen_invalidate_map_cache(void); 285ba3d756SIgor Druzhinin uint8_t *xen_replace_cache_entry(hwaddr old_phys_addr, 295ba3d756SIgor Druzhinin hwaddr new_phys_addr, 305ba3d756SIgor Druzhinin hwaddr size); 31fd2a9d2fSAvi Kivity #else 32fd2a9d2fSAvi Kivity 33cd1ba7deSAnthony PERARD static inline void xen_map_cache_init(phys_offset_to_gaddr_t f, 34cd1ba7deSAnthony PERARD void *opaque) 35fd2a9d2fSAvi Kivity { 36fd2a9d2fSAvi Kivity } 37fd2a9d2fSAvi Kivity 385a5585f4SEdgar E. Iglesias static inline uint8_t *xen_map_cache(MemoryRegion *mr, 395a5585f4SEdgar E. Iglesias hwaddr phys_addr, 40a8170e5eSAvi Kivity hwaddr size, 4149a72029SEdgar E. Iglesias ram_addr_t ram_addr_offset, 421ff7c598SStefano Stabellini uint8_t lock, 435a5585f4SEdgar E. Iglesias bool dma, 445a5585f4SEdgar E. Iglesias bool is_write) 45fd2a9d2fSAvi Kivity { 46fd2a9d2fSAvi Kivity abort(); 47fd2a9d2fSAvi Kivity } 48fd2a9d2fSAvi Kivity 49fd2a9d2fSAvi Kivity static inline ram_addr_t xen_ram_addr_from_mapcache(void *ptr) 50fd2a9d2fSAvi Kivity { 51fd2a9d2fSAvi Kivity abort(); 52fd2a9d2fSAvi Kivity } 53fd2a9d2fSAvi Kivity 54fd2a9d2fSAvi Kivity static inline void xen_invalidate_map_cache_entry(uint8_t *buffer) 55fd2a9d2fSAvi Kivity { 56fd2a9d2fSAvi Kivity } 57fd2a9d2fSAvi Kivity 58fd2a9d2fSAvi Kivity static inline void xen_invalidate_map_cache(void) 59fd2a9d2fSAvi Kivity { 60fd2a9d2fSAvi Kivity } 61fd2a9d2fSAvi Kivity 625ba3d756SIgor Druzhinin static inline uint8_t *xen_replace_cache_entry(hwaddr old_phys_addr, 635ba3d756SIgor Druzhinin hwaddr new_phys_addr, 645ba3d756SIgor Druzhinin hwaddr size) 655ba3d756SIgor Druzhinin { 665ba3d756SIgor Druzhinin abort(); 675ba3d756SIgor Druzhinin } 685ba3d756SIgor Druzhinin 69fd2a9d2fSAvi Kivity #endif 70fd2a9d2fSAvi Kivity 71175de524SMarkus Armbruster #endif /* XEN_MAPCACHE_H */ 72