Statistics
| Branch: | Revision:

root / target-ppc / kvm_ppc.h @ 3991c35e

History | View | Annotate | Download (1.3 kB)

1 d76d1650 aurel32
/*
2 d76d1650 aurel32
 * Copyright 2008 IBM Corporation.
3 d76d1650 aurel32
 * Authors: Hollis Blanchard <hollisb@us.ibm.com>
4 d76d1650 aurel32
 *
5 d76d1650 aurel32
 * This work is licensed under the GNU GPL license version 2 or later.
6 d76d1650 aurel32
 *
7 d76d1650 aurel32
 */
8 d76d1650 aurel32
9 d76d1650 aurel32
#ifndef __KVM_PPC_H__
10 d76d1650 aurel32
#define __KVM_PPC_H__
11 d76d1650 aurel32
12 d76d1650 aurel32
void kvmppc_init(void);
13 d76d1650 aurel32
void kvmppc_fdt_update(void *fdt);
14 69577857 David Gibson
#ifndef CONFIG_KVM
15 69577857 David Gibson
static inline int kvmppc_read_host_property(const char *node_path, const char *prop,
16 69577857 David Gibson
                                            void *val, size_t len)
17 69577857 David Gibson
{
18 69577857 David Gibson
    assert(0);
19 69577857 David Gibson
    return -ENOSYS;
20 69577857 David Gibson
}
21 69577857 David Gibson
#else
22 ea23bc20 aurel32
int kvmppc_read_host_property(const char *node_path, const char *prop,
23 ea23bc20 aurel32
                                     void *val, size_t len);
24 69577857 David Gibson
#endif
25 d76d1650 aurel32
26 dc333cd6 Alexander Graf
uint32_t kvmppc_get_tbfreq(void);
27 45024f09 Alexander Graf
int kvmppc_get_hypercall(CPUState *env, uint8_t *buf, int buf_len);
28 fc87e185 Alexander Graf
int kvmppc_set_interrupt(CPUState *env, int irq, int level);
29 fc87e185 Alexander Graf
30 b45d63b6 Ben Herrenschmidt
#ifndef CONFIG_KVM
31 b45d63b6 Ben Herrenschmidt
#define kvmppc_eieio() do { } while (0)
32 b45d63b6 Ben Herrenschmidt
#else
33 b45d63b6 Ben Herrenschmidt
#define kvmppc_eieio() \
34 b45d63b6 Ben Herrenschmidt
    do {                                          \
35 b45d63b6 Ben Herrenschmidt
        if (kvm_enabled()) {                          \
36 b45d63b6 Ben Herrenschmidt
            asm volatile("eieio" : : : "memory"); \
37 b45d63b6 Ben Herrenschmidt
        } \
38 b45d63b6 Ben Herrenschmidt
    } while (0)
39 b45d63b6 Ben Herrenschmidt
#endif
40 b45d63b6 Ben Herrenschmidt
41 fc87e185 Alexander Graf
#ifndef KVM_INTERRUPT_SET
42 fc87e185 Alexander Graf
#define KVM_INTERRUPT_SET -1
43 fc87e185 Alexander Graf
#endif
44 fc87e185 Alexander Graf
45 fc87e185 Alexander Graf
#ifndef KVM_INTERRUPT_UNSET
46 fc87e185 Alexander Graf
#define KVM_INTERRUPT_UNSET -2
47 fc87e185 Alexander Graf
#endif
48 fc87e185 Alexander Graf
49 fc87e185 Alexander Graf
#ifndef KVM_INTERRUPT_SET_LEVEL
50 fc87e185 Alexander Graf
#define KVM_INTERRUPT_SET_LEVEL -3
51 fc87e185 Alexander Graf
#endif
52 dc333cd6 Alexander Graf
53 d76d1650 aurel32
#endif /* __KVM_PPC_H__ */