ia64/pv_ops/xen: preliminary to paravirtualizing fsys.S for xen.
This is a preliminary patch to paravirtualizing fsys.S. compile fsys.S twice one for native and one for xen, and switch them at run tine. Later fsys.S will be paravirtualized. Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp> Signed-off-by: Tony Luck <tony.luck@intel.com>
This commit is contained in:
parent
dd97d5cb54
commit
533bd15623
|
@ -33,6 +33,9 @@
|
|||
#define __paravirt_work_processed_syscall_target \
|
||||
xen_work_processed_syscall
|
||||
|
||||
#define paravirt_fsyscall_table xen_fsyscall_table
|
||||
#define paravirt_fsys_bubble_down xen_fsys_bubble_down
|
||||
|
||||
#define MOV_FROM_IFA(reg) \
|
||||
movl reg = XSI_IFA; \
|
||||
;; \
|
||||
|
|
|
@ -10,7 +10,7 @@ obj-$(CONFIG_IA64_GENERIC) += machvec.o
|
|||
AFLAGS_xenivt.o += -D__IA64_ASM_PARAVIRTUALIZED_XEN
|
||||
|
||||
# xen multi compile
|
||||
ASM_PARAVIRT_MULTI_COMPILE_SRCS = ivt.S entry.S
|
||||
ASM_PARAVIRT_MULTI_COMPILE_SRCS = ivt.S entry.S fsys.S
|
||||
ASM_PARAVIRT_OBJS = $(addprefix xen-,$(ASM_PARAVIRT_MULTI_COMPILE_SRCS:.S=.o))
|
||||
obj-y += $(ASM_PARAVIRT_OBJS)
|
||||
define paravirtualized_xen
|
||||
|
|
|
@ -24,6 +24,7 @@
|
|||
#include <linux/irq.h>
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/pm.h>
|
||||
#include <linux/unistd.h>
|
||||
|
||||
#include <asm/xen/hypervisor.h>
|
||||
#include <asm/xen/xencomm.h>
|
||||
|
@ -165,6 +166,18 @@ static const struct pv_init_ops xen_init_ops __initconst = {
|
|||
.post_smp_prepare_boot_cpu = xen_post_smp_prepare_boot_cpu,
|
||||
};
|
||||
|
||||
/***************************************************************************
|
||||
* pv_fsys_data
|
||||
* addresses for fsys
|
||||
*/
|
||||
|
||||
extern unsigned long xen_fsyscall_table[NR_syscalls];
|
||||
extern char xen_fsys_bubble_down[];
|
||||
struct pv_fsys_data xen_fsys_data __initdata = {
|
||||
.fsyscall_table = (unsigned long *)xen_fsyscall_table,
|
||||
.fsys_bubble_down = (void *)xen_fsys_bubble_down,
|
||||
};
|
||||
|
||||
/***************************************************************************
|
||||
* pv_cpu_ops
|
||||
* intrinsics hooks.
|
||||
|
@ -355,6 +368,7 @@ xen_setup_pv_ops(void)
|
|||
xen_info_init();
|
||||
pv_info = xen_info;
|
||||
pv_init_ops = xen_init_ops;
|
||||
pv_fsys_data = xen_fsys_data;
|
||||
pv_cpu_ops = xen_cpu_ops;
|
||||
pv_iosapic_ops = xen_iosapic_ops;
|
||||
pv_irq_ops = xen_irq_ops;
|
||||
|
|
Loading…
Reference in New Issue