Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Macros | Functions
paravirt_patch_64.c File Reference
#include <asm/paravirt.h>
#include <asm/asm-offsets.h>
#include <linux/stringify.h>

Go to the source code of this file.

Macros

#define PATCH_SITE(ops, x)
 

Functions

 DEF_NATIVE (pv_irq_ops, irq_disable,"cli")
 
 DEF_NATIVE (pv_irq_ops, irq_enable,"sti")
 
 DEF_NATIVE (pv_irq_ops, restore_fl,"pushq %rdi; popfq")
 
 DEF_NATIVE (pv_irq_ops, save_fl,"pushfq; popq %rax")
 
 DEF_NATIVE (pv_cpu_ops, iret,"iretq")
 
 DEF_NATIVE (pv_mmu_ops, read_cr2,"movq %cr2, %rax")
 
 DEF_NATIVE (pv_mmu_ops, read_cr3,"movq %cr3, %rax")
 
 DEF_NATIVE (pv_mmu_ops, write_cr3,"movq %rdi, %cr3")
 
 DEF_NATIVE (pv_mmu_ops, flush_tlb_single,"invlpg (%rdi)")
 
 DEF_NATIVE (pv_cpu_ops, clts,"clts")
 
 DEF_NATIVE (pv_cpu_ops, wbinvd,"wbinvd")
 
 DEF_NATIVE (pv_cpu_ops, irq_enable_sysexit,"swapgs; sti; sysexit")
 
 DEF_NATIVE (pv_cpu_ops, usergs_sysret64,"swapgs; sysretq")
 
 DEF_NATIVE (pv_cpu_ops, usergs_sysret32,"swapgs; sysretl")
 
 DEF_NATIVE (pv_cpu_ops, swapgs,"swapgs")
 
 DEF_NATIVE (, mov32,"mov %edi, %eax")
 
 DEF_NATIVE (, mov64,"mov %rdi, %rax")
 
unsigned paravirt_patch_ident_32 (void *insnbuf, unsigned len)
 
unsigned paravirt_patch_ident_64 (void *insnbuf, unsigned len)
 
unsigned native_patch (u8 type, u16 clobbers, void *ibuf, unsigned long addr, unsigned len)
 

Macro Definition Documentation

#define PATCH_SITE (   ops,
  x 
)
Value:
case PARAVIRT_PATCH(ops.x): \
start = start_##ops##_##x; \
end = end_##ops##_##x; \
goto patch_site

Function Documentation

DEF_NATIVE ( pv_irq_ops  ,
irq_disable  ,
"cli"   
)
DEF_NATIVE ( pv_irq_ops  ,
irq_enable  ,
"sti"   
)
DEF_NATIVE ( pv_irq_ops  ,
restore_fl  ,
"pushq %rdi; popfq"   
)
DEF_NATIVE ( pv_irq_ops  ,
save_fl  ,
"pushfq; popq %rax  
)
DEF_NATIVE ( pv_cpu_ops  ,
iret  ,
"iretq"   
)
DEF_NATIVE ( pv_mmu_ops  ,
read_cr2  ,
"movq %  cr2,
%rax  
)
DEF_NATIVE ( pv_mmu_ops  ,
read_cr3  ,
"movq %  cr3,
%rax  
)
DEF_NATIVE ( pv_mmu_ops  ,
write_cr3  ,
"movq %  rdi,
%cr3  
)
DEF_NATIVE ( pv_mmu_ops  ,
flush_tlb_single  ,
"invlpg (%rdi)"   
)
DEF_NATIVE ( pv_cpu_ops  ,
clts  ,
"clts"   
)
DEF_NATIVE ( pv_cpu_ops  ,
wbinvd  ,
"wbinvd"   
)
DEF_NATIVE ( pv_cpu_ops  ,
irq_enable_sysexit  ,
"swapgs; sti; sysexit"   
)
DEF_NATIVE ( pv_cpu_ops  ,
usergs_sysret64  ,
"swapgs; sysretq"   
)
DEF_NATIVE ( pv_cpu_ops  ,
usergs_sysret32  ,
"swapgs; sysretl"   
)
DEF_NATIVE ( pv_cpu_ops  ,
swapgs  ,
"swapgs"   
)
DEF_NATIVE ( mov32  ,
"mov %  edi,
%eax"   
)
DEF_NATIVE ( mov64  ,
"mov %  rdi,
%rax  
)
unsigned native_patch ( u8  type,
u16  clobbers,
void ibuf,
unsigned long  addr,
unsigned  len 
)

Definition at line 37 of file paravirt_patch_64.c.

unsigned paravirt_patch_ident_32 ( void insnbuf,
unsigned  len 
)

Definition at line 25 of file paravirt_patch_64.c.

unsigned paravirt_patch_ident_64 ( void insnbuf,
unsigned  len 
)

Definition at line 31 of file paravirt_patch_64.c.