KVM
Macros | Functions
svm_ops.h File Reference
#include <linux/compiler_types.h>
#include "x86.h"
Include dependency graph for svm_ops.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define svm_asm(insn, clobber...)
 
#define svm_asm1(insn, op1, clobber...)
 
#define svm_asm2(insn, op1, op2, clobber...)
 

Functions

static void clgi (void)
 
static void stgi (void)
 
static void invlpga (unsigned long addr, u32 asid)
 
static __always_inline void vmsave (unsigned long pa)
 

Macro Definition Documentation

◆ svm_asm

#define svm_asm (   insn,
  clobber... 
)
Value:
do { \
asm goto("1: " __stringify(insn) "\n\t" \
_ASM_EXTABLE(1b, %l[fault]) \
::: clobber : fault); \
return; \
fault: \
kvm_spurious_fault(); \
} while (0)

Definition at line 9 of file svm_ops.h.

◆ svm_asm1

#define svm_asm1 (   insn,
  op1,
  clobber... 
)
Value:
do { \
asm goto("1: " __stringify(insn) " %0\n\t" \
_ASM_EXTABLE(1b, %l[fault]) \
:: op1 : clobber : fault); \
return; \
fault: \
kvm_spurious_fault(); \
} while (0)

Definition at line 19 of file svm_ops.h.

◆ svm_asm2

#define svm_asm2 (   insn,
  op1,
  op2,
  clobber... 
)
Value:
do { \
asm goto("1: " __stringify(insn) " %1, %0\n\t" \
_ASM_EXTABLE(1b, %l[fault]) \
:: op1, op2 : clobber : fault); \
return; \
fault: \
kvm_spurious_fault(); \
} while (0)

Definition at line 29 of file svm_ops.h.

Function Documentation

◆ clgi()

static void clgi ( void  )
inlinestatic

Definition at line 39 of file svm_ops.h.

40 {
41  svm_asm(clgi);
42 }
static void clgi(void)
Definition: svm_ops.h:39
#define svm_asm(insn, clobber...)
Definition: svm_ops.h:9
Here is the caller graph for this function:

◆ invlpga()

static void invlpga ( unsigned long  addr,
u32  asid 
)
inlinestatic

Definition at line 49 of file svm_ops.h.

50 {
51  svm_asm2(invlpga, "c"(asid), "a"(addr));
52 }
#define svm_asm2(insn, op1, op2, clobber...)
Definition: svm_ops.h:29
static void invlpga(unsigned long addr, u32 asid)
Definition: svm_ops.h:49
Here is the caller graph for this function:

◆ stgi()

static void stgi ( void  )
inlinestatic

Definition at line 44 of file svm_ops.h.

45 {
46  svm_asm(stgi);
47 }
static void stgi(void)
Definition: svm_ops.h:44
Here is the caller graph for this function:

◆ vmsave()

static __always_inline void vmsave ( unsigned long  pa)
static

Definition at line 59 of file svm_ops.h.

60 {
61  svm_asm1(vmsave, "a" (pa), "memory");
62 }
static __always_inline void vmsave(unsigned long pa)
Definition: svm_ops.h:59
#define svm_asm1(insn, op1, clobber...)
Definition: svm_ops.h:19
Here is the caller graph for this function: