s390x: fix smp support for kvm
[qemu/ar7.git] / target-ppc / kvm_ppc.h
blob45a1373b28130aa1f15ee256d862b82a0c2aa985
1 /*
2 * Copyright 2008 IBM Corporation.
3 * Authors: Hollis Blanchard <hollisb@us.ibm.com>
5 * This work is licensed under the GNU GPL license version 2 or later.
7 */
9 #ifndef __KVM_PPC_H__
10 #define __KVM_PPC_H__
12 void kvmppc_init(void);
13 void kvmppc_fdt_update(void *fdt);
14 #ifndef CONFIG_KVM
15 static inline int kvmppc_read_host_property(const char *node_path, const char *prop,
16 void *val, size_t len)
18 assert(0);
19 return -ENOSYS;
21 #else
22 int kvmppc_read_host_property(const char *node_path, const char *prop,
23 void *val, size_t len);
24 #endif
26 uint32_t kvmppc_get_tbfreq(void);
27 int kvmppc_get_hypercall(CPUState *env, uint8_t *buf, int buf_len);
28 int kvmppc_set_interrupt(CPUState *env, int irq, int level);
30 #ifndef CONFIG_KVM
31 #define kvmppc_eieio() do { } while (0)
32 #else
33 #define kvmppc_eieio() \
34 do { \
35 if (kvm_enabled()) { \
36 asm volatile("eieio" : : : "memory"); \
37 } \
38 } while (0)
39 #endif
41 #ifndef KVM_INTERRUPT_SET
42 #define KVM_INTERRUPT_SET -1
43 #endif
45 #ifndef KVM_INTERRUPT_UNSET
46 #define KVM_INTERRUPT_UNSET -2
47 #endif
49 #ifndef KVM_INTERRUPT_SET_LEVEL
50 #define KVM_INTERRUPT_SET_LEVEL -3
51 #endif
53 #endif /* __KVM_PPC_H__ */