Skip to content

Commit

Permalink
ia64/pv_ops/bp/xen: implemented binary patchable pv_cpu_ops.
Browse files Browse the repository at this point in the history
implemented xen binary patch for pv_cpu_ops.

Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
Signed-off-by: Tony Luck <tony.luck@intel.com>
  • Loading branch information
Isaku Yamahata authored and Tony Luck committed Mar 26, 2009
1 parent dae17da commit 0a7d324
Show file tree
Hide file tree
Showing 3 changed files with 671 additions and 0 deletions.
4 changes: 4 additions & 0 deletions arch/ia64/include/asm/xen/privop.h
Original file line number Diff line number Diff line change
Expand Up @@ -82,8 +82,10 @@ extern unsigned long xen_thash(unsigned long addr);
extern unsigned long xen_get_cpuid(int index);
extern unsigned long xen_get_pmd(int index);

#ifndef ASM_SUPPORTED
extern unsigned long xen_get_eflag(void); /* see xen_ia64_getreg */
extern void xen_set_eflag(unsigned long); /* see xen_ia64_setreg */
#endif

/************************************************/
/* Instructions paravirtualized for performance */
Expand All @@ -108,6 +110,7 @@ extern void xen_set_eflag(unsigned long); /* see xen_ia64_setreg */
#define xen_get_virtual_pend() \
(*(((uint8_t *)XEN_MAPPEDREGS->interrupt_mask_addr) - 1))

#ifndef ASM_SUPPORTED
/* Although all privileged operations can be left to trap and will
* be properly handled by Xen, some are frequent enough that we use
* hyperprivops for performance. */
Expand All @@ -125,6 +128,7 @@ extern void xen_set_rr0_to_rr4(unsigned long val0, unsigned long val1,
unsigned long val4);
extern void xen_set_kr(unsigned long index, unsigned long val);
extern void xen_ptcga(unsigned long addr, unsigned long size);
#endif /* !ASM_SUPPORTED */

#endif /* !__ASSEMBLY__ */

Expand Down
2 changes: 2 additions & 0 deletions arch/ia64/xen/hypercall.S
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
#include <asm/intrinsics.h>
#include <asm/xen/privop.h>

#ifdef __INTEL_COMPILER
/*
* Hypercalls without parameter.
*/
Expand Down Expand Up @@ -72,6 +73,7 @@ GLOBAL_ENTRY(xen_set_rr0_to_rr4)
br.ret.sptk.many rp
;;
END(xen_set_rr0_to_rr4)
#endif

GLOBAL_ENTRY(xen_send_ipi)
mov r14=r32
Expand Down
Loading

0 comments on commit 0a7d324

Please sign in to comment.