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.