IA64 xencomm introduced opaque struct xencomm_handle for xencommized value.
But common code didn't. This patch itroduce it to common xencomm code.
NOTE: I tested this patch with cross compile for powerpc.

Hollis, Do you like this patch?
I created this patch because Tristan already introduced
struct xencomm_handle in ia64 xencomm code.
However I'm not sure you like it or not and I don't insist on it.
If you don't, I will remove struct xencomm_handle from ia64 code.


# HG changeset patch
# User [EMAIL PROTECTED]
# Date 1186473244 -32400
# Node ID 6a2f4915295018a054678d67b8b482dca9e9fcf6
# Parent  5aebf2a66a51b953bfc2c5e502d214ce2f35a0a7
xencomm: introduce opaque type struct xencomm_handle* for xencommized value
PATCHNAME: introduce_xencomm_handle

Signed-off-by: Isaku Yamahata <[EMAIL PROTECTED]>

diff -r 5aebf2a66a51 -r 6a2f49152950 arch/powerpc/platforms/xen/hcall.c
--- a/arch/powerpc/platforms/xen/hcall.c        Thu Aug 02 23:09:51 2007 +0900
+++ b/arch/powerpc/platforms/xen/hcall.c        Tue Aug 07 16:54:04 2007 +0900
@@ -56,7 +56,7 @@
 
 int HYPERVISOR_console_io(int cmd, int count, char *str)
 {
-       void *desc;
+       struct xencomm_handle *desc;
        int rc;
 
        desc = xencomm_map_no_alloc(str, count);
@@ -76,7 +76,8 @@ int HYPERVISOR_event_channel_op(int cmd,
 {
        int rc;
 
-       void *desc = xencomm_map_no_alloc(op, sizeof(evtchn_op_t));
+       struct xencomm_handle *desc =
+               xencomm_map_no_alloc(op, sizeof(evtchn_op_t));
        if (desc == NULL)
                return -EINVAL;
 
@@ -92,7 +93,7 @@ EXPORT_SYMBOL(HYPERVISOR_event_channel_o
 
 int HYPERVISOR_xen_version(int cmd, void *arg)
 {
-       void *desc;
+       struct xencomm_handle *desc;
        const unsigned long hcall = __HYPERVISOR_xen_version;
        int argsize;
        int rc;
@@ -144,7 +145,8 @@ EXPORT_SYMBOL(HYPERVISOR_xen_version);
 
 int HYPERVISOR_physdev_op(int cmd, void *op)
 {
-       void *desc = xencomm_map_no_alloc(op, sizeof(physdev_op_t));
+       struct xencomm_handle *desc =
+               xencomm_map_no_alloc(op, sizeof(physdev_op_t));
        int rc;
 
        if (desc == NULL)
@@ -163,8 +165,8 @@ int HYPERVISOR_sched_op(int cmd, void *a
 {
        int argsize = 0;
        int rc = -EINVAL;
-       void *desc;
-       evtchn_port_t *ports = NULL;
+       struct xencomm_handle *desc;
+       struct xencomm_handle *ports = NULL;
 
        switch (cmd) {
        case SCHEDOP_yield:
@@ -187,7 +189,7 @@ int HYPERVISOR_sched_op(int cmd, void *a
                if (ports == NULL)
                        return -ENOMEM;
 
-               set_xen_guest_handle(sched_poll.ports, ports);
+               set_xen_guest_handle(sched_poll.ports, (evtchn_port_t *)ports);
                memcpy(arg, &sched_poll, sizeof(sched_poll));
 
                }
@@ -222,7 +224,7 @@ int HYPERVISOR_suspend(unsigned long sre
        struct sched_shutdown sched_shutdown = {
                .reason = SHUTDOWN_suspend,
        };
-       void *desc;
+       struct xencomm_handle *desc;
 
        desc = xencomm_map_no_alloc(&sched_shutdown, sizeof(struct 
sched_shutdown));
 
@@ -234,7 +236,7 @@ int HYPERVISOR_kexec_op(unsigned long op
 int HYPERVISOR_kexec_op(unsigned long op, void *args)
 {
        unsigned long argsize;
-       void *desc;
+       struct xencomm_handle *desc;
 
        switch (op) {
                case KEXEC_CMD_kexec_get_range:
@@ -316,8 +318,8 @@ static int xenppc_privcmd_domctl(privcmd
 {
        xen_domctl_t kern_op;
        xen_domctl_t __user *user_op = (xen_domctl_t __user *)hypercall->arg[0];
-       void *op_desc;
-       void *desc = NULL;
+       struct xencomm_handle *op_desc;
+       struct xencomm_handle *desc = NULL;
        int ret = 0;
 
        if (copy_from_user(&kern_op, user_op, sizeof(xen_domctl_t)))
@@ -349,7 +351,7 @@ static int xenppc_privcmd_domctl(privcmd
                        ret = -ENOMEM;
 
                set_xen_guest_handle(kern_op.u.getmemlist.buffer,
-                                    desc);
+                                    (void *)desc);
                break;
        case XEN_DOMCTL_getpageframeinfo:
                break;
@@ -362,7 +364,7 @@ static int xenppc_privcmd_domctl(privcmd
                        ret = -ENOMEM;
 
                set_xen_guest_handle(kern_op.u.getpageframeinfo2.array,
-                                    desc);
+                                    (void *)desc);
                break;
        case XEN_DOMCTL_shadow_op:
 
@@ -376,7 +378,7 @@ static int xenppc_privcmd_domctl(privcmd
                                ret = -ENOMEM;
 
                        set_xen_guest_handle(kern_op.u.shadow_op.dirty_bitmap,
-                                        desc);
+                                        (void *)desc);
                }
                break;
        case XEN_DOMCTL_max_mem:
@@ -391,7 +393,7 @@ static int xenppc_privcmd_domctl(privcmd
                        ret = -ENOMEM;
 
                set_xen_guest_handle(kern_op.u.vcpucontext.ctxt,
-                                    desc);
+                                    (void *)desc);
                break;
        case XEN_DOMCTL_getvcpuinfo:
                break;
@@ -405,7 +407,7 @@ static int xenppc_privcmd_domctl(privcmd
                        ret = -ENOMEM;
 
                set_xen_guest_handle(kern_op.u.vcpuaffinity.cpumap.bitmap,
-                                    desc);
+                                    (void *)desc);
                break;
        case XEN_DOMCTL_max_vcpus:
        case XEN_DOMCTL_scheduler_op:
@@ -442,8 +444,8 @@ static int xenppc_privcmd_sysctl(privcmd
 {
        xen_sysctl_t kern_op;
        xen_sysctl_t __user *user_op = (xen_sysctl_t __user *)hypercall->arg[0];
-       struct xencomm_desc *op_desc;
-       void *desc = NULL;
+       struct xencomm_handle *op_desc;
+       struct xencomm_handle *desc = NULL;
        int ret = 0;
 
        if (copy_from_user(&kern_op, user_op, sizeof(xen_sysctl_t)))
@@ -470,7 +472,7 @@ static int xenppc_privcmd_sysctl(privcmd
                        ret = -ENOMEM;
 
                set_xen_guest_handle(kern_op.u.readconsole.buffer,
-                                    desc);
+                                    (void *)desc);
                break;
        case XEN_SYSCTL_tbuf_op:
        case XEN_SYSCTL_physinfo:
@@ -491,7 +493,7 @@ static int xenppc_privcmd_sysctl(privcmd
                        ret = -ENOMEM;
 
                set_xen_guest_handle(kern_op.u.getdomaininfolist.buffer,
-                                    desc);
+                                    (void *)desc);
                break;
        default:
                printk(KERN_ERR "%s: unknown sysctl cmd %d\n", __func__, 
kern_op.cmd);
@@ -517,8 +519,8 @@ static int xenppc_privcmd_platform_op(pr
        xen_platform_op_t kern_op;
        xen_platform_op_t __user *user_op =
                        (xen_platform_op_t __user *)hypercall->arg[0];
-       void *op_desc;
-       void *desc = NULL;
+       struct xencomm_handle *op_desc;
+       struct xencomm_handle *desc = NULL;
        int ret = 0;
 
        if (copy_from_user(&kern_op, user_op, sizeof(xen_platform_op_t)))
@@ -566,7 +568,7 @@ int HYPERVISOR_memory_op(unsigned int cm
 int HYPERVISOR_memory_op(unsigned int cmd, void *arg)
 {
        int ret;
-       void *op_desc;
+       struct xencomm_handle *op_desc;
        xen_memory_reservation_t *mop;
 
 
@@ -581,7 +583,7 @@ int HYPERVISOR_memory_op(unsigned int cm
        case XENMEM_increase_reservation:
        case XENMEM_decrease_reservation:
        case XENMEM_populate_physmap: {
-               void *desc = NULL;
+               struct xencomm_handle *desc = NULL;
 
                if (xen_guest_handle(mop->extent_start)) {
                        desc = xencomm_map(
@@ -595,7 +597,7 @@ int HYPERVISOR_memory_op(unsigned int cm
                        }
 
                        set_xen_guest_handle(mop->extent_start,
-                                            desc);
+                                            (void *)desc);
                }
 
                ret = plpar_hcall_norets(XEN_MARK(__HYPERVISOR_memory_op),
@@ -650,7 +652,7 @@ static int xenppc_privcmd_version(privcm
 
 static int xenppc_privcmd_event_channel_op(privcmd_hypercall_t *hypercall)
 {
-       struct xencomm_desc *desc;
+       struct xencomm_handle *desc;
        unsigned int argsize;
        int ret;
 
@@ -856,7 +858,7 @@ int HYPERVISOR_vcpu_op(int cmd, int vcpu
 {
        int argsize;
        const unsigned long hcall = __HYPERVISOR_vcpu_op;
-       void *desc;
+       struct xencomm_handle *desc;
        int rc;
 
        switch (cmd) {
diff -r 5aebf2a66a51 -r 6a2f49152950 drivers/xen/core/xencomm.c
--- a/drivers/xen/core/xencomm.c        Thu Aug 02 23:09:51 2007 +0900
+++ b/drivers/xen/core/xencomm.c        Tue Aug 07 16:54:04 2007 +0900
@@ -83,7 +83,7 @@ static struct xencomm_desc *xencomm_allo
        return desc;
 }
 
-void xencomm_free(void *desc)
+void xencomm_free(struct xencomm_handle *desc)
 {
        if (desc && !((ulong)desc & XENCOMM_INLINE_FLAG))
                free_page((unsigned long)__va(desc));
@@ -114,7 +114,7 @@ static int xencomm_create(void *buffer, 
        rc = xencomm_init(desc, buffer, bytes);
        if (rc) {
                printk("%s failure: %d\n", "xencomm_init", rc);
-               xencomm_free((void *)__pa(desc));
+               xencomm_free((struct xencomm_handle *)__pa(desc));
                return rc;
        }
 
@@ -131,7 +131,7 @@ static int is_phys_contiguous(unsigned l
        return (addr < VMALLOC_START) || (addr >= VMALLOC_END);
 }
 
-static void *xencomm_create_inline(void *ptr)
+static struct xencomm_handle *xencomm_create_inline(void *ptr)
 {
        unsigned long paddr;
 
@@ -139,7 +139,7 @@ static void *xencomm_create_inline(void 
 
        paddr = (unsigned long)xencomm_pa(ptr);
        BUG_ON(paddr & XENCOMM_INLINE_FLAG);
-       return (void *)(paddr | XENCOMM_INLINE_FLAG);
+       return (struct xencomm_handle *)(paddr | XENCOMM_INLINE_FLAG);
 }
 
 /* "mini" routine, for stack-based communications: */
@@ -161,7 +161,7 @@ static int xencomm_create_mini(void *buf
        return rc;
 }
 
-void *xencomm_map(void *ptr, unsigned long bytes)
+struct xencomm_handle *xencomm_map(void *ptr, unsigned long bytes)
 {
        int rc;
        struct xencomm_desc *desc;
@@ -177,7 +177,7 @@ void *xencomm_map(void *ptr, unsigned lo
        return xencomm_pa(desc);
 }
 
-void *__xencomm_map_no_alloc(void *ptr, unsigned long bytes, 
+struct xencomm_handle *__xencomm_map_no_alloc(void *ptr, unsigned long bytes, 
                        struct xencomm_mini *xc_desc)
 {
        int rc;
diff -r 5aebf2a66a51 -r 6a2f49152950 include/xen/xencomm.h
--- a/include/xen/xencomm.h     Thu Aug 02 23:09:51 2007 +0900
+++ b/include/xen/xencomm.h     Tue Aug 07 16:54:04 2007 +0900
@@ -30,10 +30,14 @@ struct xencomm_mini {
        uint64_t address[XENCOMM_MINI_ADDRS];
 };
 
-extern void xencomm_free(void *desc);
-extern void *xencomm_map(void *ptr, unsigned long bytes);
-extern void *__xencomm_map_no_alloc(void *ptr, unsigned long bytes, 
-                               struct xencomm_mini *xc_area);
+/* To avoid additionnal virt to phys conversion, an opaque structure is
+   presented.  */
+struct xencomm_handle;
+
+extern void xencomm_free(struct xencomm_handle *desc);
+extern struct xencomm_handle *xencomm_map(void *ptr, unsigned long bytes);
+extern struct xencomm_handle *__xencomm_map_no_alloc(void *ptr,
+                       unsigned long bytes,  struct xencomm_mini *xc_area);
 
 #ifdef __ia64__
 /*


-- 
yamahata
# HG changeset patch
# User [EMAIL PROTECTED]
# Date 1186473244 -32400
# Node ID 6a2f4915295018a054678d67b8b482dca9e9fcf6
# Parent  5aebf2a66a51b953bfc2c5e502d214ce2f35a0a7
xencomm: introduce opaque type struct xencomm_handle* for xencommized value
PATCHNAME: introduce_xencomm_handle

Signed-off-by: Isaku Yamahata <[EMAIL PROTECTED]>

diff -r 5aebf2a66a51 -r 6a2f49152950 arch/powerpc/platforms/xen/hcall.c
--- a/arch/powerpc/platforms/xen/hcall.c	Thu Aug 02 23:09:51 2007 +0900
+++ b/arch/powerpc/platforms/xen/hcall.c	Tue Aug 07 16:54:04 2007 +0900
@@ -56,7 +56,7 @@
 
 int HYPERVISOR_console_io(int cmd, int count, char *str)
 {
-	void *desc;
+	struct xencomm_handle *desc;
 	int rc;
 
 	desc = xencomm_map_no_alloc(str, count);
@@ -76,7 +76,8 @@ int HYPERVISOR_event_channel_op(int cmd,
 {
 	int rc;
 
-	void *desc = xencomm_map_no_alloc(op, sizeof(evtchn_op_t));
+	struct xencomm_handle *desc =
+		xencomm_map_no_alloc(op, sizeof(evtchn_op_t));
 	if (desc == NULL)
 		return -EINVAL;
 
@@ -92,7 +93,7 @@ EXPORT_SYMBOL(HYPERVISOR_event_channel_o
 
 int HYPERVISOR_xen_version(int cmd, void *arg)
 {
-	void *desc;
+	struct xencomm_handle *desc;
 	const unsigned long hcall = __HYPERVISOR_xen_version;
 	int argsize;
 	int rc;
@@ -144,7 +145,8 @@ EXPORT_SYMBOL(HYPERVISOR_xen_version);
 
 int HYPERVISOR_physdev_op(int cmd, void *op)
 {
-	void *desc = xencomm_map_no_alloc(op, sizeof(physdev_op_t));
+	struct xencomm_handle *desc =
+		xencomm_map_no_alloc(op, sizeof(physdev_op_t));
 	int rc;
 
 	if (desc == NULL)
@@ -163,8 +165,8 @@ int HYPERVISOR_sched_op(int cmd, void *a
 {
 	int argsize = 0;
 	int rc = -EINVAL;
-	void *desc;
-	evtchn_port_t *ports = NULL;
+	struct xencomm_handle *desc;
+	struct xencomm_handle *ports = NULL;
 
 	switch (cmd) {
 	case SCHEDOP_yield:
@@ -187,7 +189,7 @@ int HYPERVISOR_sched_op(int cmd, void *a
 		if (ports == NULL)
 			return -ENOMEM;
 
-		set_xen_guest_handle(sched_poll.ports, ports);
+		set_xen_guest_handle(sched_poll.ports, (evtchn_port_t *)ports);
 		memcpy(arg, &sched_poll, sizeof(sched_poll));
 
 		}
@@ -222,7 +224,7 @@ int HYPERVISOR_suspend(unsigned long sre
 	struct sched_shutdown sched_shutdown = {
 		.reason = SHUTDOWN_suspend,
 	};
-	void *desc;
+	struct xencomm_handle *desc;
 
 	desc = xencomm_map_no_alloc(&sched_shutdown, sizeof(struct sched_shutdown));
 
@@ -234,7 +236,7 @@ int HYPERVISOR_kexec_op(unsigned long op
 int HYPERVISOR_kexec_op(unsigned long op, void *args)
 {
 	unsigned long argsize;
-	void *desc;
+	struct xencomm_handle *desc;
 
 	switch (op) {
 		case KEXEC_CMD_kexec_get_range:
@@ -316,8 +318,8 @@ static int xenppc_privcmd_domctl(privcmd
 {
 	xen_domctl_t kern_op;
 	xen_domctl_t __user *user_op = (xen_domctl_t __user *)hypercall->arg[0];
-	void *op_desc;
-	void *desc = NULL;
+	struct xencomm_handle *op_desc;
+	struct xencomm_handle *desc = NULL;
 	int ret = 0;
 
 	if (copy_from_user(&kern_op, user_op, sizeof(xen_domctl_t)))
@@ -349,7 +351,7 @@ static int xenppc_privcmd_domctl(privcmd
 			ret = -ENOMEM;
 
 		set_xen_guest_handle(kern_op.u.getmemlist.buffer,
-				     desc);
+				     (void *)desc);
 		break;
 	case XEN_DOMCTL_getpageframeinfo:
 		break;
@@ -362,7 +364,7 @@ static int xenppc_privcmd_domctl(privcmd
 			ret = -ENOMEM;
 
 		set_xen_guest_handle(kern_op.u.getpageframeinfo2.array,
-				     desc);
+				     (void *)desc);
 		break;
 	case XEN_DOMCTL_shadow_op:
 
@@ -376,7 +378,7 @@ static int xenppc_privcmd_domctl(privcmd
 				ret = -ENOMEM;
 
 			set_xen_guest_handle(kern_op.u.shadow_op.dirty_bitmap,
-				    	 desc);
+				    	 (void *)desc);
 		}
 		break;
 	case XEN_DOMCTL_max_mem:
@@ -391,7 +393,7 @@ static int xenppc_privcmd_domctl(privcmd
 			ret = -ENOMEM;
 
 		set_xen_guest_handle(kern_op.u.vcpucontext.ctxt,
-				     desc);
+				     (void *)desc);
 		break;
 	case XEN_DOMCTL_getvcpuinfo:
 		break;
@@ -405,7 +407,7 @@ static int xenppc_privcmd_domctl(privcmd
 			ret = -ENOMEM;
 
 		set_xen_guest_handle(kern_op.u.vcpuaffinity.cpumap.bitmap,
-				     desc);
+				     (void *)desc);
 		break;
 	case XEN_DOMCTL_max_vcpus:
 	case XEN_DOMCTL_scheduler_op:
@@ -442,8 +444,8 @@ static int xenppc_privcmd_sysctl(privcmd
 {
 	xen_sysctl_t kern_op;
 	xen_sysctl_t __user *user_op = (xen_sysctl_t __user *)hypercall->arg[0];
-	struct xencomm_desc *op_desc;
-	void *desc = NULL;
+	struct xencomm_handle *op_desc;
+	struct xencomm_handle *desc = NULL;
 	int ret = 0;
 
 	if (copy_from_user(&kern_op, user_op, sizeof(xen_sysctl_t)))
@@ -470,7 +472,7 @@ static int xenppc_privcmd_sysctl(privcmd
 			ret = -ENOMEM;
 
 		set_xen_guest_handle(kern_op.u.readconsole.buffer,
-				     desc);
+				     (void *)desc);
 		break;
 	case XEN_SYSCTL_tbuf_op:
 	case XEN_SYSCTL_physinfo:
@@ -491,7 +493,7 @@ static int xenppc_privcmd_sysctl(privcmd
 			ret = -ENOMEM;
 
 		set_xen_guest_handle(kern_op.u.getdomaininfolist.buffer,
-				     desc);
+				     (void *)desc);
 		break;
 	default:
 		printk(KERN_ERR "%s: unknown sysctl cmd %d\n", __func__, kern_op.cmd);
@@ -517,8 +519,8 @@ static int xenppc_privcmd_platform_op(pr
 	xen_platform_op_t kern_op;
 	xen_platform_op_t __user *user_op =
 			(xen_platform_op_t __user *)hypercall->arg[0];
-	void *op_desc;
-	void *desc = NULL;
+	struct xencomm_handle *op_desc;
+	struct xencomm_handle *desc = NULL;
 	int ret = 0;
 
 	if (copy_from_user(&kern_op, user_op, sizeof(xen_platform_op_t)))
@@ -566,7 +568,7 @@ int HYPERVISOR_memory_op(unsigned int cm
 int HYPERVISOR_memory_op(unsigned int cmd, void *arg)
 {
 	int ret;
-	void *op_desc;
+	struct xencomm_handle *op_desc;
 	xen_memory_reservation_t *mop;
 
 
@@ -581,7 +583,7 @@ int HYPERVISOR_memory_op(unsigned int cm
 	case XENMEM_increase_reservation:
 	case XENMEM_decrease_reservation:
 	case XENMEM_populate_physmap: {
-		void *desc = NULL;
+		struct xencomm_handle *desc = NULL;
 
 		if (xen_guest_handle(mop->extent_start)) {
 			desc = xencomm_map(
@@ -595,7 +597,7 @@ int HYPERVISOR_memory_op(unsigned int cm
 			}
 
 			set_xen_guest_handle(mop->extent_start,
-					     desc);
+					     (void *)desc);
 		}
 
 		ret = plpar_hcall_norets(XEN_MARK(__HYPERVISOR_memory_op),
@@ -650,7 +652,7 @@ static int xenppc_privcmd_version(privcm
 
 static int xenppc_privcmd_event_channel_op(privcmd_hypercall_t *hypercall)
 {
-	struct xencomm_desc *desc;
+	struct xencomm_handle *desc;
 	unsigned int argsize;
 	int ret;
 
@@ -856,7 +858,7 @@ int HYPERVISOR_vcpu_op(int cmd, int vcpu
 {
 	int argsize;
 	const unsigned long hcall = __HYPERVISOR_vcpu_op;
-	void *desc;
+	struct xencomm_handle *desc;
 	int rc;
 
 	switch (cmd) {
diff -r 5aebf2a66a51 -r 6a2f49152950 drivers/xen/core/xencomm.c
--- a/drivers/xen/core/xencomm.c	Thu Aug 02 23:09:51 2007 +0900
+++ b/drivers/xen/core/xencomm.c	Tue Aug 07 16:54:04 2007 +0900
@@ -83,7 +83,7 @@ static struct xencomm_desc *xencomm_allo
 	return desc;
 }
 
-void xencomm_free(void *desc)
+void xencomm_free(struct xencomm_handle *desc)
 {
 	if (desc && !((ulong)desc & XENCOMM_INLINE_FLAG))
 		free_page((unsigned long)__va(desc));
@@ -114,7 +114,7 @@ static int xencomm_create(void *buffer, 
 	rc = xencomm_init(desc, buffer, bytes);
 	if (rc) {
 		printk("%s failure: %d\n", "xencomm_init", rc);
-		xencomm_free((void *)__pa(desc));
+		xencomm_free((struct xencomm_handle *)__pa(desc));
 		return rc;
 	}
 
@@ -131,7 +131,7 @@ static int is_phys_contiguous(unsigned l
 	return (addr < VMALLOC_START) || (addr >= VMALLOC_END);
 }
 
-static void *xencomm_create_inline(void *ptr)
+static struct xencomm_handle *xencomm_create_inline(void *ptr)
 {
 	unsigned long paddr;
 
@@ -139,7 +139,7 @@ static void *xencomm_create_inline(void 
 
 	paddr = (unsigned long)xencomm_pa(ptr);
 	BUG_ON(paddr & XENCOMM_INLINE_FLAG);
-	return (void *)(paddr | XENCOMM_INLINE_FLAG);
+	return (struct xencomm_handle *)(paddr | XENCOMM_INLINE_FLAG);
 }
 
 /* "mini" routine, for stack-based communications: */
@@ -161,7 +161,7 @@ static int xencomm_create_mini(void *buf
 	return rc;
 }
 
-void *xencomm_map(void *ptr, unsigned long bytes)
+struct xencomm_handle *xencomm_map(void *ptr, unsigned long bytes)
 {
 	int rc;
 	struct xencomm_desc *desc;
@@ -177,7 +177,7 @@ void *xencomm_map(void *ptr, unsigned lo
 	return xencomm_pa(desc);
 }
 
-void *__xencomm_map_no_alloc(void *ptr, unsigned long bytes, 
+struct xencomm_handle *__xencomm_map_no_alloc(void *ptr, unsigned long bytes, 
 			struct xencomm_mini *xc_desc)
 {
 	int rc;
diff -r 5aebf2a66a51 -r 6a2f49152950 include/xen/xencomm.h
--- a/include/xen/xencomm.h	Thu Aug 02 23:09:51 2007 +0900
+++ b/include/xen/xencomm.h	Tue Aug 07 16:54:04 2007 +0900
@@ -30,10 +30,14 @@ struct xencomm_mini {
 	uint64_t address[XENCOMM_MINI_ADDRS];
 };
 
-extern void xencomm_free(void *desc);
-extern void *xencomm_map(void *ptr, unsigned long bytes);
-extern void *__xencomm_map_no_alloc(void *ptr, unsigned long bytes, 
-				struct xencomm_mini *xc_area);
+/* To avoid additionnal virt to phys conversion, an opaque structure is
+   presented.  */
+struct xencomm_handle;
+
+extern void xencomm_free(struct xencomm_handle *desc);
+extern struct xencomm_handle *xencomm_map(void *ptr, unsigned long bytes);
+extern struct xencomm_handle *__xencomm_map_no_alloc(void *ptr,
+			unsigned long bytes,  struct xencomm_mini *xc_area);
 
 #ifdef __ia64__
 /*
_______________________________________________
Xen-ppc-devel mailing list
Xen-ppc-devel@lists.xensource.com
http://lists.xensource.com/xen-ppc-devel

Reply via email to