xref: /qemu/include/system/xen-mapcache.h (revision 32cad1ffb81dcecf6f4a8af56d6e5892682839b1)
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