Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 16583bc0 authored by Isaku Yamahata's avatar Isaku Yamahata Committed by Tony Luck
Browse files

ia64/pv_ops/xen: paravirtualize entry.S for ia64/xen.



paravirtualize entry.S for ia64/xen by multi compile.

Signed-off-by: default avatarIsaku Yamahata <yamahata@valinux.co.jp>
Signed-off-by: default avatarTony Luck <tony.luck@intel.com>
parent 5142ec46
Loading
Loading
Loading
Loading
+8 −0
Original line number Original line Diff line number Diff line
@@ -25,6 +25,14 @@
#define ia64_ivt				xen_ivt
#define ia64_ivt				xen_ivt
#define DO_SAVE_MIN				XEN_DO_SAVE_MIN
#define DO_SAVE_MIN				XEN_DO_SAVE_MIN


#define __paravirt_switch_to			xen_switch_to
#define __paravirt_leave_syscall		xen_leave_syscall
#define __paravirt_work_processed_syscall	xen_work_processed_syscall
#define __paravirt_leave_kernel			xen_leave_kernel
#define __paravirt_pending_syscall_end		xen_work_pending_syscall_end
#define __paravirt_work_processed_syscall_target \
						xen_work_processed_syscall

#define MOV_FROM_IFA(reg)	\
#define MOV_FROM_IFA(reg)	\
	movl reg = XSI_IFA;	\
	movl reg = XSI_IFA;	\
	;;			\
	;;			\
+1 −1
Original line number Original line Diff line number Diff line
@@ -8,7 +8,7 @@ obj-y := hypercall.o xenivt.o xensetup.o xen_pv_ops.o \
AFLAGS_xenivt.o += -D__IA64_ASM_PARAVIRTUALIZED_XEN
AFLAGS_xenivt.o += -D__IA64_ASM_PARAVIRTUALIZED_XEN


# xen multi compile
# xen multi compile
ASM_PARAVIRT_MULTI_COMPILE_SRCS = ivt.S
ASM_PARAVIRT_MULTI_COMPILE_SRCS = ivt.S entry.S
ASM_PARAVIRT_OBJS = $(addprefix xen-,$(ASM_PARAVIRT_MULTI_COMPILE_SRCS:.S=.o))
ASM_PARAVIRT_OBJS = $(addprefix xen-,$(ASM_PARAVIRT_MULTI_COMPILE_SRCS:.S=.o))
obj-y += $(ASM_PARAVIRT_OBJS)
obj-y += $(ASM_PARAVIRT_OBJS)
define paravirtualized_xen
define paravirtualized_xen
+18 −0
Original line number Original line Diff line number Diff line
@@ -275,6 +275,22 @@ static const struct pv_cpu_ops xen_cpu_ops __initdata = {
			= xen_intrin_local_irq_restore,
			= xen_intrin_local_irq_restore,
};
};


/******************************************************************************
 * replacement of hand written assembly codes.
 */

extern char xen_switch_to;
extern char xen_leave_syscall;
extern char xen_work_processed_syscall;
extern char xen_leave_kernel;

const struct pv_cpu_asm_switch xen_cpu_asm_switch = {
	.switch_to		= (unsigned long)&xen_switch_to,
	.leave_syscall		= (unsigned long)&xen_leave_syscall,
	.work_processed_syscall	= (unsigned long)&xen_work_processed_syscall,
	.leave_kernel		= (unsigned long)&xen_leave_kernel,
};

/***************************************************************************
/***************************************************************************
 * pv_ops initialization
 * pv_ops initialization
 */
 */
@@ -286,4 +302,6 @@ xen_setup_pv_ops(void)
	pv_info = xen_info;
	pv_info = xen_info;
	pv_init_ops = xen_init_ops;
	pv_init_ops = xen_init_ops;
	pv_cpu_ops = xen_cpu_ops;
	pv_cpu_ops = xen_cpu_ops;

	paravirt_cpu_asm_init(&xen_cpu_asm_switch);
}
}