# HG changeset patch # User gingold@virtu10 # Node ID cc7a78171c811b9caa5587a0141d8c8477d10ce8 # Parent dc2d01757b26c9a9648e231bc7c8e5cccf949ad2 Use xencomm on ia64 diff -r dc2d01757b26 -r cc7a78171c81 linux-2.6-xen-sparse/drivers/xen/privcmd/privcmd.c --- a/linux-2.6-xen-sparse/drivers/xen/privcmd/privcmd.c Wed Aug 23 11:30:02 2006 +0200 +++ b/linux-2.6-xen-sparse/drivers/xen/privcmd/privcmd.c Wed Aug 23 12:23:05 2006 +0200 @@ -34,6 +34,10 @@ static struct proc_dir_entry *privcmd_intf; static struct proc_dir_entry *capabilities_intf; + +#ifdef CONFIG_XEN_XENCOMM +extern int xencomm_privcmd_hypercall(privcmd_hypercall_t *hypercall); +#endif #define NR_HYPERCALLS 64 static DECLARE_BITMAP(hypercall_permission_map, NR_HYPERCALLS); @@ -92,18 +96,7 @@ static int privcmd_ioctl(struct inode *i : "r8", "r10", "memory" ); } #elif defined (__ia64__) - __asm__ __volatile__ ( - ";; mov r14=%2; mov r15=%3; " - "mov r16=%4; mov r17=%5; mov r18=%6;" - "mov r2=%1; break 0x1000;; mov %0=r8 ;;" - : "=r" (ret) - : "r" (hypercall.op), - "r" (hypercall.arg[0]), - "r" (hypercall.arg[1]), - "r" (hypercall.arg[2]), - "r" (hypercall.arg[3]), - "r" (hypercall.arg[4]) - : "r14","r15","r16","r17","r18","r2","r8","memory"); + ret = xencomm_privcmd_hypercall (&hypercall); #endif } break;