Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Functions | Variables
paravirt.c File Reference
#include <linux/errno.h>
#include <linux/module.h>
#include <linux/efi.h>
#include <linux/bcd.h>
#include <linux/highmem.h>
#include <asm/bug.h>
#include <asm/paravirt.h>
#include <asm/debugreg.h>
#include <asm/desc.h>
#include <asm/setup.h>
#include <asm/pgtable.h>
#include <asm/time.h>
#include <asm/pgalloc.h>
#include <asm/irq.h>
#include <asm/delay.h>
#include <asm/fixmap.h>
#include <asm/apic.h>
#include <asm/tlbflush.h>
#include <asm/timer.h>
#include <asm/special_insns.h>

Go to the source code of this file.

Data Structures

struct  branch
 

Macros

#define DEF_NATIVE(ops, name, code)
 
#define PTE_IDENT   __PV_IS_CALLEE_SAVE(_paravirt_ident_64)
 

Functions

void _paravirt_nop (void)
 
u32 _paravirt_ident_32 (u32 x)
 
u64 _paravirt_ident_64 (u64 x)
 
void __init default_banner (void)
 
unsigned paravirt_patch_nop (void)
 
unsigned paravirt_patch_ignore (unsigned len)
 
struct branch __attribute__ ((packed))
 
unsigned paravirt_patch_call (void *insnbuf, const void *target, u16 tgt_clobbers, unsigned long addr, u16 site_clobbers, unsigned len)
 
unsigned paravirt_patch_jmp (void *insnbuf, const void *target, unsigned long addr, unsigned len)
 
unsigned paravirt_patch_default (u8 type, u16 clobbers, void *insnbuf, unsigned long addr, unsigned len)
 
unsigned paravirt_patch_insns (void *insnbuf, unsigned len, const char *start, const char *end)
 
void native_iret (void)
 
void native_irq_enable_sysexit (void)
 
void native_usergs_sysret32 (void)
 
void native_usergs_sysret64 (void)
 
int paravirt_disable_iospace (void)
 
void paravirt_enter_lazy_mmu (void)
 
void paravirt_leave_lazy_mmu (void)
 
void paravirt_start_context_switch (struct task_struct *prev)
 
void paravirt_end_context_switch (struct task_struct *next)
 
enum paravirt_lazy_mode paravirt_get_lazy_mode (void)
 
void arch_flush_lazy_mmu_mode (void)
 
 EXPORT_SYMBOL_GPL (pv_time_ops)
 
 EXPORT_SYMBOL (pv_cpu_ops)
 
 EXPORT_SYMBOL (pv_mmu_ops)
 
 EXPORT_SYMBOL_GPL (pv_apic_ops)
 
 EXPORT_SYMBOL_GPL (pv_info)
 
 EXPORT_SYMBOL (pv_irq_ops)
 

Variables

unsigned char opcode
 
u32 delta
 
struct static_key paravirt_steal_enabled
 
struct static_key paravirt_steal_rq_enabled
 
struct pv_info pv_info
 
struct pv_init_ops pv_init_ops
 
struct pv_time_ops pv_time_ops
 
struct pv_irq_ops pv_irq_ops
 
struct pv_cpu_ops pv_cpu_ops
 
struct pv_apic_ops pv_apic_ops
 
struct pv_mmu_ops pv_mmu_ops
 

Macro Definition Documentation

#define DEF_NATIVE (   ops,
  name,
  code 
)
Value:
extern const char start_##ops##_##name[], end_##ops##_##name[]; \
asm("start_" #ops "_" #name ": " code "; end_" #ops "_" #name ":")

Definition at line 66 of file paravirt.c.

#define PTE_IDENT   __PV_IS_CALLEE_SAVE(_paravirt_ident_64)

Definition at line 409 of file paravirt.c.

Function Documentation

struct branch __attribute__ ( (packed)  )
read

Definition at line 171 of file esd_usb2.c.

u32 _paravirt_ident_32 ( u32  x)

Definition at line 49 of file paravirt.c.

u64 _paravirt_ident_64 ( u64  x)

Definition at line 54 of file paravirt.c.

void _paravirt_nop ( void  )

Definition at line 44 of file paravirt.c.

void arch_flush_lazy_mmu_mode ( void  )

Definition at line 295 of file paravirt.c.

void __init default_banner ( void  )

Definition at line 59 of file paravirt.c.

EXPORT_SYMBOL ( pv_cpu_ops  )
EXPORT_SYMBOL ( pv_mmu_ops  )
EXPORT_SYMBOL ( pv_irq_ops  )
EXPORT_SYMBOL_GPL ( pv_time_ops  )
EXPORT_SYMBOL_GPL ( pv_apic_ops  )
EXPORT_SYMBOL_GPL ( pv_info  )
void native_iret ( void  )
void native_irq_enable_sysexit ( void  )
void native_usergs_sysret32 ( void  )
void native_usergs_sysret64 ( void  )
int paravirt_disable_iospace ( void  )

Definition at line 235 of file paravirt.c.

void paravirt_end_context_switch ( struct task_struct next)

Definition at line 277 of file paravirt.c.

void paravirt_enter_lazy_mmu ( void  )

Definition at line 256 of file paravirt.c.

enum paravirt_lazy_mode paravirt_get_lazy_mode ( void  )

Definition at line 287 of file paravirt.c.

void paravirt_leave_lazy_mmu ( void  )

Definition at line 261 of file paravirt.c.

unsigned paravirt_patch_call ( void insnbuf,
const void target,
u16  tgt_clobbers,
unsigned long  addr,
u16  site_clobbers,
unsigned  len 
)

Definition at line 88 of file paravirt.c.

unsigned paravirt_patch_default ( u8  type,
u16  clobbers,
void insnbuf,
unsigned long  addr,
unsigned  len 
)

Definition at line 141 of file paravirt.c.

unsigned paravirt_patch_ignore ( unsigned  len)

Definition at line 78 of file paravirt.c.

unsigned paravirt_patch_insns ( void insnbuf,
unsigned  len,
const char start,
const char end 
)

Definition at line 175 of file paravirt.c.

unsigned paravirt_patch_jmp ( void insnbuf,
const void target,
unsigned long  addr,
unsigned  len 
)

Definition at line 108 of file paravirt.c.

unsigned paravirt_patch_nop ( void  )

Definition at line 73 of file paravirt.c.

void paravirt_start_context_switch ( struct task_struct prev)

Definition at line 266 of file paravirt.c.

Variable Documentation

u32 delta

Definition at line 88 of file paravirt.c.

unsigned char opcode

Definition at line 87 of file paravirt.c.

struct static_key paravirt_steal_enabled

Definition at line 207 of file paravirt.c.

struct static_key paravirt_steal_rq_enabled

Definition at line 208 of file paravirt.c.

Initial value:
= {
}

Definition at line 398 of file paravirt.c.

Definition at line 339 of file paravirt.c.

Initial value:
= {
.name = "bare hardware",
.paravirt_enabled = 0,
.kernel_rpl = 0,
.shared_kernel_pmd = 1,
}

Definition at line 307 of file paravirt.c.

Initial value:
= {
.patch = native_patch,
}

Definition at line 318 of file paravirt.c.

Initial value:
= {
.save_fl = __PV_IS_CALLEE_SAVE(native_save_fl),
.restore_fl = __PV_IS_CALLEE_SAVE(native_restore_fl),
.irq_disable = __PV_IS_CALLEE_SAVE(native_irq_disable),
.irq_enable = __PV_IS_CALLEE_SAVE(native_irq_enable),
.safe_halt = native_safe_halt,
.halt = native_halt,
}

Definition at line 327 of file paravirt.c.

Definition at line 412 of file paravirt.c.

Initial value:
= {
.sched_clock = native_sched_clock,
.steal_clock = native_steal_clock,
}

Definition at line 322 of file paravirt.c.