linux-headers/arch/e2k/include/asm/paravirt/cpu.h

100 lines
2.4 KiB
C

#ifndef __ASM_E2K_PARAVIRT_CPU_H
#define __ASM_E2K_PARAVIRT_CPU_H
#ifdef __KERNEL__
#include <linux/types.h>
#include <asm/paravirt/pv_ops.h>
#include <asm/pv_info.h>
#ifdef CONFIG_KVM_GUEST
#include <asm/kvm/guest/cpu.h>
#define PV_VIRQ_VCPU_NO_TO_VCPU_ID(virq_vcpu_id) \
({ \
if (!paravirt_enabled()) { \
NATIVE_VIRQ_VCPU_NO_TO_VCPU_ID(virq_vcpu_id); \
} else { \
KVM_VIRQ_VCPU_NO_TO_VCPU_ID(virq_vcpu_id); \
} \
})
#define PV_VCPU_ID_TO_VIRQ_VCPU_NO(vcpu_id) \
({ \
if (!paravirt_enabled()) { \
NATIVE_VCPU_ID_TO_VIRQ_VCPU_NO(vcpu_id); \
} else { \
KVM_VCPU_ID_TO_VIRQ_VCPU_NO(vcpu_id); \
} \
})
#define PV_IS_ID_VIRQ_VCPU_NO(cpu_id) \
({ \
bool pv_is; \
if (!paravirt_enabled()) { \
pv_is = NATIVE_IS_ID_VIRQ_VCPU_NO(cpu_id); \
} else { \
pv_is = KVM_IS_ID_VIRQ_VCPU_NO(cpu_id); \
} \
pv_is; \
})
#define PV_IS_ID_VCPU_ID(cpu_id) \
({ \
bool pv_is; \
if (!paravirt_enabled()) { \
pv_is = NATIVE_IS_ID_VCPU_ID(cpu_id); \
} else { \
pv_is = KVM_IS_ID_VCPU_ID(cpu_id); \
} \
pv_is; \
})
#define PV_CONVERT_VIRQ_VCPU_NO_TO_VCPU_ID(virq_vcpu_id) \
({ \
if (!paravirt_enabled()) { \
NATIVE_CONVERT_VIRQ_VCPU_NO_TO_VCPU_ID(virq_vcpu_id); \
} else { \
KVM_CONVERT_VIRQ_VCPU_NO_TO_VCPU_ID(virq_vcpu_id); \
} \
})
#define PV_CONVERT_VCPU_ID_TO_VIRQ_VCPU_NO(vcpu_id) \
({ \
if (!paravirt_enabled()) { \
NATIVE_CONVERT_VCPU_ID_TO_VIRQ_VCPU_NO(vcpu_id); \
} else { \
KVM_CONVERT_VCPU_ID_TO_VIRQ_VCPU_NO(vcpu_id); \
} \
})
#else /* ! CONFIG_KVM_GUEST */
#error "Unknown virtualization type"
#endif /* CONFIG_KVM_GUEST */
static inline unsigned long
pv_get_cpu_running_cycles(void)
{
return pv_time_ops.get_cpu_running_cycles();
}
#ifdef CONFIG_PARAVIRT_GUEST
/* it is paravirtualized guest and host kernel */
#define VIRQ_VCPU_NO_TO_VCPU_ID(virq_vcpu_id) \
PV_VIRQ_VCPU_NO_TO_VCPU_ID(virq_vcpu_id)
#define VCPU_ID_TO_VIRQ_VCPU_NO(vcpu_id) \
PV_VCPU_ID_TO_VIRQ_VCPU_NO(vcpu_id)
#define IS_ID_VIRQ_VCPU_NO(cpu_id) \
PV_IS_ID_VIRQ_VCPU_NO(cpu_id)
#define IS_ID_VCPU_ID(cpu_id) \
PV_IS_ID_VCPU_ID(cpu_id)
#define CONVERT_VIRQ_VCPU_NO_TO_VCPU_ID(virq_vcpu_id) \
PV_CONVERT_VIRQ_VCPU_NO_TO_VCPU_ID(virq_vcpu_id)
#define CONVERT_VCPU_ID_TO_VIRQ_VCPU_NO(vcpu_id) \
PV_CONVERT_VCPU_ID_TO_VIRQ_VCPU_NO(vcpu_id)
static inline unsigned long
get_cpu_running_cycles(void)
{
return pv_get_cpu_running_cycles();
}
#endif /* CONFIG_PARAVIRT_GUEST */
#endif /* __KERNEL__ */
#endif /* __ASM_E2K_PARAVIRT_CPU_H */