cregit-Linux how code gets into the kernel

Release 4.10 arch/x86/include/asm/kvm_para.h

#ifndef _ASM_X86_KVM_PARA_H

#define _ASM_X86_KVM_PARA_H

#include <asm/processor.h>
#include <asm/alternative.h>
#include <uapi/asm/kvm_para.h>

extern void kvmclock_init(void);
extern int kvm_register_clock(char *txt);

#ifdef CONFIG_KVM_GUEST
bool kvm_check_and_clear_guest_paused(void);
#else

static inline bool kvm_check_and_clear_guest_paused(void) { return false; }

Contributors

PersonTokensPropCommitsCommitProp
eric b munsoneric b munson12100.00%1100.00%
Total12100.00%1100.00%

#endif /* CONFIG_KVM_GUEST */ #define KVM_HYPERCALL \ ALTERNATIVE(".byte 0x0f,0x01,0xc1", ".byte 0x0f,0x01,0xd9", X86_FEATURE_VMMCALL) /* For KVM hypercalls, a three-byte sequence of either the vmcall or the vmmcall * instruction. The hypervisor may replace it with something else but only the * instructions are guaranteed to be supported. * * Up to four arguments may be passed in rbx, rcx, rdx, and rsi respectively. * The hypercall number should be placed in rax and the return value will be * placed in rax. No other registers will be clobbered unless explicitly * noted by the particular hypercall. */
static inline long kvm_hypercall0(unsigned int nr) { long ret; asm volatile(KVM_HYPERCALL : "=a"(ret) : "a"(nr) : "memory"); return ret; }

Contributors

PersonTokensPropCommitsCommitProp
christian borntraegerchristian borntraeger1995.00%150.00%
anthony liguorianthony liguori15.00%150.00%
Total20100.00%2100.00%


static inline long kvm_hypercall1(unsigned int nr, unsigned long p1) { long ret; asm volatile(KVM_HYPERCALL : "=a"(ret) : "a"(nr), "b"(p1) : "memory"); return ret; }

Contributors

PersonTokensPropCommitsCommitProp
christian borntraegerchristian borntraeger2395.83%150.00%
anthony liguorianthony liguori14.17%150.00%
Total24100.00%2100.00%


static inline long kvm_hypercall2(unsigned int nr, unsigned long p1, unsigned long p2) { long ret; asm volatile(KVM_HYPERCALL : "=a"(ret) : "a"(nr), "b"(p1), "c"(p2) : "memory"); return ret; }

Contributors

PersonTokensPropCommitsCommitProp
christian borntraegerchristian borntraeger2796.43%150.00%
anthony liguorianthony liguori13.57%150.00%
Total28100.00%2100.00%


static inline long kvm_hypercall3(unsigned int nr, unsigned long p1, unsigned long p2, unsigned long p3) { long ret; asm volatile(KVM_HYPERCALL : "=a"(ret) : "a"(nr), "b"(p1), "c"(p2), "d"(p3) : "memory"); return ret; }

Contributors

PersonTokensPropCommitsCommitProp
christian borntraegerchristian borntraeger3196.88%150.00%
anthony liguorianthony liguori13.12%150.00%
Total32100.00%2100.00%


static inline long kvm_hypercall4(unsigned int nr, unsigned long p1, unsigned long p2, unsigned long p3, unsigned long p4) { long ret; asm volatile(KVM_HYPERCALL : "=a"(ret) : "a"(nr), "b"(p1), "c"(p2), "d"(p3), "S"(p4) : "memory"); return ret; }

Contributors

PersonTokensPropCommitsCommitProp
christian borntraegerchristian borntraeger3597.22%150.00%
anthony liguorianthony liguori12.78%150.00%
Total36100.00%2100.00%

#ifdef CONFIG_KVM_GUEST bool kvm_para_available(void); unsigned int kvm_arch_para_features(void); void __init kvm_guest_init(void); void kvm_async_pf_task_wait(u32 token); void kvm_async_pf_task_wake(u32 token); u32 kvm_read_and_reset_pf_reason(void); extern void kvm_disable_steal_time(void); #ifdef CONFIG_PARAVIRT_SPINLOCKS void __init kvm_spinlock_init(void); #else /* !CONFIG_PARAVIRT_SPINLOCKS */
static inline void kvm_spinlock_init(void) { }

Contributors

PersonTokensPropCommitsCommitProp
srivatsa vaddagirisrivatsa vaddagiri8100.00%1100.00%
Total8100.00%1100.00%

#endif /* CONFIG_PARAVIRT_SPINLOCKS */ #else /* CONFIG_KVM_GUEST */ #define kvm_guest_init() do {} while (0) #define kvm_async_pf_task_wait(T) do {} while(0) #define kvm_async_pf_task_wake(T) do {} while(0)
static inline bool kvm_para_available(void) { return false; }

Contributors

PersonTokensPropCommitsCommitProp
paolo bonzinipaolo bonzini1191.67%150.00%
joe perchesjoe perches18.33%150.00%
Total12100.00%2100.00%


static inline unsigned int kvm_arch_para_features(void) { return 0; }

Contributors

PersonTokensPropCommitsCommitProp
paolo bonzinipaolo bonzini13100.00%1100.00%
Total13100.00%1100.00%


static inline u32 kvm_read_and_reset_pf_reason(void) { return 0; }

Contributors

PersonTokensPropCommitsCommitProp
gleb natapovgleb natapov1191.67%150.00%
jan kiszkajan kiszka18.33%150.00%
Total12100.00%2100.00%


static inline void kvm_disable_steal_time(void) { return; }

Contributors

PersonTokensPropCommitsCommitProp
glauber costaglauber costa10100.00%1100.00%
Total10100.00%1100.00%

#endif #endif /* _ASM_X86_KVM_PARA_H */

Overall Contributors

PersonTokensPropCommitsCommitProp
christian borntraegerchristian borntraeger14340.74%15.26%
gleb natapovgleb natapov5415.38%210.53%
paolo bonzinipaolo bonzini4512.82%315.79%
srivatsa vaddagirisrivatsa vaddagiri267.41%15.26%
eric b munsoneric b munson246.84%15.26%
alexander grafalexander graf185.13%15.26%
glauber costaglauber costa174.84%15.26%
glauber de oliveira costaglauber de oliveira costa71.99%15.26%
anthony liguorianthony liguori51.42%15.26%
h. peter anvinh. peter anvin30.85%15.26%
david howellsdavid howells20.57%15.26%
marcelo tosattimarcelo tosatti20.57%15.26%
avi kivityavi kivity20.57%15.26%
joe perchesjoe perches10.28%15.26%
jesse larrewjesse larrew10.28%15.26%
jan kiszkajan kiszka10.28%15.26%
Total351100.00%19100.00%
Information contained on this website is for historical information purposes only and does not indicate or represent copyright ownership.