summaryrefslogtreecommitdiff
path: root/xen-mapcache.h
blob: 339444c94e2e77e63f4acb575b24808434cf3928 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
/*
 * Copyright (C) 2011       Citrix Ltd.
 *
 * This work is licensed under the terms of the GNU GPL, version 2.  See
 * the COPYING file in the top-level directory.
 *
 */

#ifndef XEN_MAPCACHE_H
#define XEN_MAPCACHE_H

#include <sys/mman.h>
#include "trace.h"

void     qemu_map_cache_init(void);
uint8_t  *qemu_map_cache(target_phys_addr_t phys_addr, target_phys_addr_t size, uint8_t lock);
void     qemu_map_cache_unlock(void *phys_addr);
ram_addr_t qemu_ram_addr_from_mapcache(void *ptr);
void     qemu_invalidate_entry(uint8_t *buffer);
void     qemu_invalidate_map_cache(void);

uint8_t *xen_map_block(target_phys_addr_t phys_addr, target_phys_addr_t size);

static inline void xen_unmap_block(void *addr, ram_addr_t size)
{
    trace_xen_unmap_block(addr, size);

    if (munmap(addr, size) != 0) {
        hw_error("xen_unmap_block: %s", strerror(errno));
    }
}


#define mapcache_lock()   ((void)0)
#define mapcache_unlock() ((void)0)

#endif /* !XEN_MAPCACHE_H */