From: Isaku Yamahata Date: Wed, 10 Dec 2008 06:39:44 +0000 (+0900) Subject: IA64: use symbolic constant for hypercall. X-Git-Tag: archive/raspbian/4.8.0-1+rpi1~1^2~14036 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=592bded3ed57a73ac31889b9f623566e984e425b;p=xen.git IA64: use symbolic constant for hypercall. define symbolic names for hypercall number and use them. Signed-off-by: Isaku Yamahata --- diff --git a/xen/arch/ia64/xen/dom_fw_asm.S b/xen/arch/ia64/xen/dom_fw_asm.S index 9a89c168b5..560f94e621 100644 --- a/xen/arch/ia64/xen/dom_fw_asm.S +++ b/xen/arch/ia64/xen/dom_fw_asm.S @@ -1,3 +1,5 @@ +#include + // moved from xenasm.S to be shared by xen and libxc /* * Assembly support routines for Xen/ia64 @@ -26,14 +28,14 @@ xen_ia64_pal_call_stub: { .mii - addl r2=0x1000,r0 // Hypercall number (Value is patched). + addl r2=FW_HYPERCALL_PAL_CALL_ASM,r0 // Hypercall number (Value is patched). mov r9=256 ;; cmp.gtu p7,p8=r9,r28 /* r32 <= 255? */ } { .mbb - break 0x1000 // Hypercall vector (Value is patched). + break __IA64_XEN_HYPERCALL_DEFAULT // Hypercall vector (Value is patched). (p7) br.cond.sptk.few rp (p8) br.ret.sptk.few rp } diff --git a/xen/arch/ia64/xen/domain.c b/xen/arch/ia64/xen/domain.c index d59c1badca..cba28c52aa 100644 --- a/xen/arch/ia64/xen/domain.c +++ b/xen/arch/ia64/xen/domain.c @@ -561,7 +561,7 @@ int arch_domain_create(struct domain *d, unsigned int domcr_flags) // the following will eventually need to be negotiated dynamically d->arch.shared_info_va = DEFAULT_SHAREDINFO_ADDR; - d->arch.breakimm = 0x1000; + d->arch.breakimm = __IA64_XEN_HYPERCALL_DEFAULT; for (i = 0; i < NR_CPUS; i++) { d->arch.last_vcpu[i].vcpu_id = INVALID_VCPU_ID; } diff --git a/xen/include/asm-ia64/dom_fw.h b/xen/include/asm-ia64/dom_fw.h index eacf18af7b..7333c039cc 100644 --- a/xen/include/asm-ia64/dom_fw.h +++ b/xen/include/asm-ia64/dom_fw.h @@ -5,6 +5,9 @@ * Dan Magenheimer (dan.magenheimer@hp.com) */ +#define __IA64_XEN_HYPERCALL_DEFAULT 0x1000 +#define __IA64_XEN_HYPERCALL_DEFAULT_STR "0x1000" + /* Portion of guest physical memory space reserved for PAL/SAL/EFI/ACPI data and code. */ #define FW_BASE_PADDR 0x0000UL @@ -65,6 +68,7 @@ #define FW_HYPERCALL_PAL_CALL_INDEX 0x80UL #define FW_HYPERCALL_PAL_CALL_PADDR FW_HYPERCALL_PADDR(FW_HYPERCALL_PAL_CALL_INDEX) #define FW_HYPERCALL_PAL_CALL 0x1000UL +#define FW_HYPERCALL_PAL_CALL_ASM 0x1000 /* * SAL consists of a table of descriptors, one of which (type=0) @@ -164,6 +168,7 @@ #define FW_HYPERCALL_FPSWA_ENTRY_PADDR FW_HYPERCALL_PADDR(FW_HYPERCALL_FPSWA_ENTRY_INDEX) #define FW_HYPERCALL_FPSWA_PATCH_PADDR FW_HYPERCALL_PADDR(FW_HYPERCALL_FPSWA_PATCH_INDEX) #define FW_HYPERCALL_FPSWA 0x500UL +#define FW_HYPERCALL_FPSWA_STR "0x500" /* Set the shared_info base virtual address. */ #define FW_HYPERCALL_SET_SHARED_INFO_VA 0x600UL @@ -186,7 +191,7 @@ /* Additionnal OEM SAL. */ #define SAL_XEN_SAL_RETURN 0x02000000 -#ifdef __XEN__ +#if defined(__XEN__) && !defined(__ASSEMBLY__) #include extern struct ia64_pal_retval xen_pal_emulator(u64, u64, u64, u64); extern struct sal_ret_values sal_emulator (long index, unsigned long in1, unsigned long in2, unsigned long in3, unsigned long in4, unsigned long in5, unsigned long in6, unsigned long in7);