/* * Copyright 2008 IBM Corporation. * Authors: Hollis Blanchard * * This work is licensed under the GNU GPL license version 2 or later. * */ #ifndef __KVM_PPC_H__ #define __KVM_PPC_H__ void kvmppc_init(void); #ifdef CONFIG_KVM uint32_t kvmppc_get_tbfreq(void); uint64_t kvmppc_get_clockfreq(void); int kvmppc_get_hypercall(CPUState *env, uint8_t *buf, int buf_len); int kvmppc_set_interrupt(CPUState *env, int irq, int level); void kvmppc_set_papr(CPUState *env); #else static inline uint32_t kvmppc_get_tbfreq(void) { return 0; } static inline uint64_t kvmppc_get_clockfreq(void) { return 0; } static inline int kvmppc_get_hypercall(CPUState *env, uint8_t *buf, int buf_len) { return -1; } static inline int kvmppc_set_interrupt(CPUState *env, int irq, int level) { return -1; } static inline void kvmppc_set_papr(CPUState *env) { } #endif #ifndef CONFIG_KVM #define kvmppc_eieio() do { } while (0) #else #define kvmppc_eieio() \ do { \ if (kvm_enabled()) { \ asm volatile("eieio" : : : "memory"); \ } \ } while (0) #endif #ifndef KVM_INTERRUPT_SET #define KVM_INTERRUPT_SET -1 #endif #ifndef KVM_INTERRUPT_UNSET #define KVM_INTERRUPT_UNSET -2 #endif #ifndef KVM_INTERRUPT_SET_LEVEL #define KVM_INTERRUPT_SET_LEVEL -3 #endif #endif /* __KVM_PPC_H__ */