Login | Register For Free | Help
Search for: (Advanced)

Mailing List Archive: Xen: Devel

[PATCH v2 5/5] xen: replace XEN_GUEST_HANDLE with XEN_GUEST_HANDLE_PARAM when appropriate

 

 

Xen devel RSS feed   Index | Next | Previous | View Threaded


stefano.stabellini at eu

Aug 10, 2012, 5:10 AM

Post #1 of 12 (156 views)
Permalink
[PATCH v2 5/5] xen: replace XEN_GUEST_HANDLE with XEN_GUEST_HANDLE_PARAM when appropriate

Note: these changes don't make any difference on x86 and ia64.


Replace XEN_GUEST_HANDLE with XEN_GUEST_HANDLE_PARAM when it is used as
an hypercall argument.

Signed-off-by: Stefano Stabellini <stefano.stabellini [at] eu>
---
xen/arch/arm/domain.c | 2 +-
xen/arch/arm/domctl.c | 2 +-
xen/arch/arm/hvm.c | 2 +-
xen/arch/arm/mm.c | 2 +-
xen/arch/arm/physdev.c | 2 +-
xen/arch/arm/sysctl.c | 2 +-
xen/arch/x86/cpu/mcheck/mce.c | 2 +-
xen/arch/x86/domain.c | 2 +-
xen/arch/x86/domctl.c | 2 +-
xen/arch/x86/efi/runtime.c | 2 +-
xen/arch/x86/hvm/hvm.c | 26 +++++++++---------
xen/arch/x86/microcode.c | 2 +-
xen/arch/x86/mm.c | 14 +++++-----
xen/arch/x86/mm/hap/hap.c | 2 +-
xen/arch/x86/mm/mem_event.c | 2 +-
xen/arch/x86/mm/paging.c | 2 +-
xen/arch/x86/mm/shadow/common.c | 2 +-
xen/arch/x86/physdev.c | 2 +-
xen/arch/x86/platform_hypercall.c | 2 +-
xen/arch/x86/sysctl.c | 2 +-
xen/arch/x86/traps.c | 2 +-
xen/arch/x86/x86_32/mm.c | 2 +-
xen/arch/x86/x86_32/traps.c | 2 +-
xen/arch/x86/x86_64/compat/mm.c | 8 +++---
xen/arch/x86/x86_64/domain.c | 2 +-
xen/arch/x86/x86_64/mm.c | 2 +-
xen/arch/x86/x86_64/traps.c | 2 +-
xen/common/compat/domain.c | 2 +-
xen/common/compat/grant_table.c | 2 +-
xen/common/compat/memory.c | 2 +-
xen/common/domain.c | 2 +-
xen/common/domctl.c | 2 +-
xen/common/event_channel.c | 2 +-
xen/common/grant_table.c | 36 ++++++++++++------------
xen/common/kernel.c | 4 +-
xen/common/kexec.c | 16 +++++-----
xen/common/memory.c | 4 +-
xen/common/multicall.c | 2 +-
xen/common/schedule.c | 2 +-
xen/common/sysctl.c | 2 +-
xen/common/xenoprof.c | 8 +++---
xen/drivers/acpi/pmstat.c | 2 +-
xen/drivers/char/console.c | 6 ++--
xen/drivers/passthrough/iommu.c | 2 +-
xen/include/asm-arm/guest_access.h | 2 +-
xen/include/asm-arm/hypercall.h | 2 +-
xen/include/asm-arm/mm.h | 2 +-
xen/include/asm-x86/hap.h | 2 +-
xen/include/asm-x86/hypercall.h | 24 ++++++++--------
xen/include/asm-x86/mem_event.h | 2 +-
xen/include/asm-x86/mm.h | 8 +++---
xen/include/asm-x86/paging.h | 2 +-
xen/include/asm-x86/processor.h | 2 +-
xen/include/asm-x86/shadow.h | 2 +-
xen/include/asm-x86/xenoprof.h | 6 ++--
xen/include/xen/acpi.h | 4 +-
xen/include/xen/hypercall.h | 52 ++++++++++++++++++------------------
xen/include/xen/iommu.h | 2 +-
xen/include/xen/tmem_xen.h | 2 +-
xen/include/xsm/xsm.h | 4 +-
xen/xsm/dummy.c | 2 +-
xen/xsm/flask/flask_op.c | 4 +-
xen/xsm/flask/hooks.c | 2 +-
xen/xsm/xsm_core.c | 2 +-
64 files changed, 160 insertions(+), 160 deletions(-)

diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
index ee58d68..07b50e2 100644
--- a/xen/arch/arm/domain.c
+++ b/xen/arch/arm/domain.c
@@ -515,7 +515,7 @@ void arch_dump_domain_info(struct domain *d)
{
}

-long arch_do_vcpu_op(int cmd, struct vcpu *v, XEN_GUEST_HANDLE(void) arg)
+long arch_do_vcpu_op(int cmd, struct vcpu *v, XEN_GUEST_HANDLE_PARAM(void) arg)
{
return -ENOSYS;
}
diff --git a/xen/arch/arm/domctl.c b/xen/arch/arm/domctl.c
index 1a5f79f..cf16791 100644
--- a/xen/arch/arm/domctl.c
+++ b/xen/arch/arm/domctl.c
@@ -11,7 +11,7 @@
#include <public/domctl.h>

long arch_do_domctl(struct xen_domctl *domctl,
- XEN_GUEST_HANDLE(xen_domctl_t) u_domctl)
+ XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_domctl)
{
return -ENOSYS;
}
diff --git a/xen/arch/arm/hvm.c b/xen/arch/arm/hvm.c
index c11378d..40f519e 100644
--- a/xen/arch/arm/hvm.c
+++ b/xen/arch/arm/hvm.c
@@ -11,7 +11,7 @@

#include <asm/hypercall.h>

-long do_hvm_op(unsigned long op, XEN_GUEST_HANDLE(void) arg)
+long do_hvm_op(unsigned long op, XEN_GUEST_HANDLE_PARAM(void) arg)

{
long rc = 0;
diff --git a/xen/arch/arm/mm.c b/xen/arch/arm/mm.c
index 2400e1c..3e8b6cc 100644
--- a/xen/arch/arm/mm.c
+++ b/xen/arch/arm/mm.c
@@ -541,7 +541,7 @@ static int xenmem_add_to_physmap(struct domain *d,
return xenmem_add_to_physmap_once(d, xatp);
}

-long arch_memory_op(int op, XEN_GUEST_HANDLE(void) arg)
+long arch_memory_op(int op, XEN_GUEST_HANDLE_PARAM(void) arg)
{
int rc;

diff --git a/xen/arch/arm/physdev.c b/xen/arch/arm/physdev.c
index bcf4337..0801e8c 100644
--- a/xen/arch/arm/physdev.c
+++ b/xen/arch/arm/physdev.c
@@ -11,7 +11,7 @@
#include <asm/hypercall.h>


-int do_physdev_op(int cmd, XEN_GUEST_HANDLE(void) arg)
+int do_physdev_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
{
printk("%s %d cmd=%d: not implemented yet\n", __func__, __LINE__, cmd);
return -ENOSYS;
diff --git a/xen/arch/arm/sysctl.c b/xen/arch/arm/sysctl.c
index e8e1c0d..a286abe 100644
--- a/xen/arch/arm/sysctl.c
+++ b/xen/arch/arm/sysctl.c
@@ -13,7 +13,7 @@
#include <public/sysctl.h>

long arch_do_sysctl(struct xen_sysctl *sysctl,
- XEN_GUEST_HANDLE(xen_sysctl_t) u_sysctl)
+ XEN_GUEST_HANDLE_PARAM(xen_sysctl_t) u_sysctl)
{
return -ENOSYS;
}
diff --git a/xen/arch/x86/cpu/mcheck/mce.c b/xen/arch/x86/cpu/mcheck/mce.c
index a89df6d..0f122b3 100644
--- a/xen/arch/x86/cpu/mcheck/mce.c
+++ b/xen/arch/x86/cpu/mcheck/mce.c
@@ -1357,7 +1357,7 @@ CHECK_mcinfo_recovery;
#endif

/* Machine Check Architecture Hypercall */
-long do_mca(XEN_GUEST_HANDLE(xen_mc_t) u_xen_mc)
+long do_mca(XEN_GUEST_HANDLE_PARAM(xen_mc_t) u_xen_mc)
{
long ret = 0;
struct xen_mc curop, *op = &curop;
diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
index 5bba4b9..13ff776 100644
--- a/xen/arch/x86/domain.c
+++ b/xen/arch/x86/domain.c
@@ -1138,7 +1138,7 @@ map_vcpu_info(struct vcpu *v, unsigned long gfn, unsigned offset)

long
arch_do_vcpu_op(
- int cmd, struct vcpu *v, XEN_GUEST_HANDLE(void) arg)
+ int cmd, struct vcpu *v, XEN_GUEST_HANDLE_PARAM(void) arg)
{
long rc = 0;

diff --git a/xen/arch/x86/domctl.c b/xen/arch/x86/domctl.c
index 135ea6e..663bfe4 100644
--- a/xen/arch/x86/domctl.c
+++ b/xen/arch/x86/domctl.c
@@ -48,7 +48,7 @@ static int gdbsx_guest_mem_io(

long arch_do_domctl(
struct xen_domctl *domctl,
- XEN_GUEST_HANDLE(xen_domctl_t) u_domctl)
+ XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_domctl)
{
long ret = 0;

diff --git a/xen/arch/x86/efi/runtime.c b/xen/arch/x86/efi/runtime.c
index 1dbe2db..b2ff495 100644
--- a/xen/arch/x86/efi/runtime.c
+++ b/xen/arch/x86/efi/runtime.c
@@ -184,7 +184,7 @@ int efi_get_info(uint32_t idx, union xenpf_efi_info *info)
return 0;
}

-static long gwstrlen(XEN_GUEST_HANDLE(CHAR16) str)
+static long gwstrlen(XEN_GUEST_HANDLE_PARAM(CHAR16) str)
{
unsigned long len;

diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
index 7f8a025c..e2bf831 100644
--- a/xen/arch/x86/hvm/hvm.c
+++ b/xen/arch/x86/hvm/hvm.c
@@ -3047,14 +3047,14 @@ static int grant_table_op_is_allowed(unsigned int cmd)
}

static long hvm_grant_table_op(
- unsigned int cmd, XEN_GUEST_HANDLE(void) uop, unsigned int count)
+ unsigned int cmd, XEN_GUEST_HANDLE_PARAM(void) uop, unsigned int count)
{
if ( !grant_table_op_is_allowed(cmd) )
return -ENOSYS; /* all other commands need auditing */
return do_grant_table_op(cmd, uop, count);
}

-static long hvm_memory_op(int cmd, XEN_GUEST_HANDLE(void) arg)
+static long hvm_memory_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
{
long rc;

@@ -3072,7 +3072,7 @@ static long hvm_memory_op(int cmd, XEN_GUEST_HANDLE(void) arg)
return do_memory_op(cmd, arg);
}

-static long hvm_physdev_op(int cmd, XEN_GUEST_HANDLE(void) arg)
+static long hvm_physdev_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
{
switch ( cmd )
{
@@ -3088,7 +3088,7 @@ static long hvm_physdev_op(int cmd, XEN_GUEST_HANDLE(void) arg)
}

static long hvm_vcpu_op(
- int cmd, int vcpuid, XEN_GUEST_HANDLE(void) arg)
+ int cmd, int vcpuid, XEN_GUEST_HANDLE_PARAM(void) arg)
{
long rc;

@@ -3137,7 +3137,7 @@ static hvm_hypercall_t *hvm_hypercall32_table[NR_hypercalls] = {
#else /* defined(__x86_64__) */

static long hvm_grant_table_op_compat32(unsigned int cmd,
- XEN_GUEST_HANDLE(void) uop,
+ XEN_GUEST_HANDLE_PARAM(void) uop,
unsigned int count)
{
if ( !grant_table_op_is_allowed(cmd) )
@@ -3145,7 +3145,7 @@ static long hvm_grant_table_op_compat32(unsigned int cmd,
return compat_grant_table_op(cmd, uop, count);
}

-static long hvm_memory_op_compat32(int cmd, XEN_GUEST_HANDLE(void) arg)
+static long hvm_memory_op_compat32(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
{
int rc;

@@ -3164,7 +3164,7 @@ static long hvm_memory_op_compat32(int cmd, XEN_GUEST_HANDLE(void) arg)
}

static long hvm_vcpu_op_compat32(
- int cmd, int vcpuid, XEN_GUEST_HANDLE(void) arg)
+ int cmd, int vcpuid, XEN_GUEST_HANDLE_PARAM(void) arg)
{
long rc;

@@ -3188,7 +3188,7 @@ static long hvm_vcpu_op_compat32(
}

static long hvm_physdev_op_compat32(
- int cmd, XEN_GUEST_HANDLE(void) arg)
+ int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
{
switch ( cmd )
{
@@ -3360,7 +3360,7 @@ void hvm_hypercall_page_initialise(struct domain *d,
}

static int hvmop_set_pci_intx_level(
- XEN_GUEST_HANDLE(xen_hvm_set_pci_intx_level_t) uop)
+ XEN_GUEST_HANDLE_PARAM(xen_hvm_set_pci_intx_level_t) uop)
{
struct xen_hvm_set_pci_intx_level op;
struct domain *d;
@@ -3525,7 +3525,7 @@ static void hvm_s3_resume(struct domain *d)
}

static int hvmop_set_isa_irq_level(
- XEN_GUEST_HANDLE(xen_hvm_set_isa_irq_level_t) uop)
+ XEN_GUEST_HANDLE_PARAM(xen_hvm_set_isa_irq_level_t) uop)
{
struct xen_hvm_set_isa_irq_level op;
struct domain *d;
@@ -3569,7 +3569,7 @@ static int hvmop_set_isa_irq_level(
}

static int hvmop_set_pci_link_route(
- XEN_GUEST_HANDLE(xen_hvm_set_pci_link_route_t) uop)
+ XEN_GUEST_HANDLE_PARAM(xen_hvm_set_pci_link_route_t) uop)
{
struct xen_hvm_set_pci_link_route op;
struct domain *d;
@@ -3602,7 +3602,7 @@ static int hvmop_set_pci_link_route(
}

static int hvmop_inject_msi(
- XEN_GUEST_HANDLE(xen_hvm_inject_msi_t) uop)
+ XEN_GUEST_HANDLE_PARAM(xen_hvm_inject_msi_t) uop)
{
struct xen_hvm_inject_msi op;
struct domain *d;
@@ -3686,7 +3686,7 @@ static int hvm_replace_event_channel(struct vcpu *v, domid_t remote_domid,
return 0;
}

-long do_hvm_op(unsigned long op, XEN_GUEST_HANDLE(void) arg)
+long do_hvm_op(unsigned long op, XEN_GUEST_HANDLE_PARAM(void) arg)

{
struct domain *curr_d = current->domain;
diff --git a/xen/arch/x86/microcode.c b/xen/arch/x86/microcode.c
index bdda3f5..1477481 100644
--- a/xen/arch/x86/microcode.c
+++ b/xen/arch/x86/microcode.c
@@ -192,7 +192,7 @@ static long do_microcode_update(void *_info)
return error;
}

-int microcode_update(XEN_GUEST_HANDLE(const_void) buf, unsigned long len)
+int microcode_update(XEN_GUEST_HANDLE_PARAM(const_void) buf, unsigned long len)
{
int ret;
struct microcode_info *info;
diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c
index f5c704e..4d72700 100644
--- a/xen/arch/x86/mm.c
+++ b/xen/arch/x86/mm.c
@@ -2914,7 +2914,7 @@ static void put_pg_owner(struct domain *pg_owner)
}

static inline int vcpumask_to_pcpumask(
- struct domain *d, XEN_GUEST_HANDLE(const_void) bmap, cpumask_t *pmask)
+ struct domain *d, XEN_GUEST_HANDLE_PARAM(const_void) bmap, cpumask_t *pmask)
{
unsigned int vcpu_id, vcpu_bias, offs;
unsigned long vmask;
@@ -2974,9 +2974,9 @@ static inline void fixunmap_domain_page(const void *ptr)
#endif

int do_mmuext_op(
- XEN_GUEST_HANDLE(mmuext_op_t) uops,
+ XEN_GUEST_HANDLE_PARAM(mmuext_op_t) uops,
unsigned int count,
- XEN_GUEST_HANDLE(uint) pdone,
+ XEN_GUEST_HANDLE_PARAM(uint) pdone,
unsigned int foreigndom)
{
struct mmuext_op op;
@@ -3438,9 +3438,9 @@ int do_mmuext_op(
}

int do_mmu_update(
- XEN_GUEST_HANDLE(mmu_update_t) ureqs,
+ XEN_GUEST_HANDLE_PARAM(mmu_update_t) ureqs,
unsigned int count,
- XEN_GUEST_HANDLE(uint) pdone,
+ XEN_GUEST_HANDLE_PARAM(uint) pdone,
unsigned int foreigndom)
{
struct mmu_update req;
@@ -4387,7 +4387,7 @@ long set_gdt(struct vcpu *v,
}


-long do_set_gdt(XEN_GUEST_HANDLE(ulong) frame_list, unsigned int entries)
+long do_set_gdt(XEN_GUEST_HANDLE_PARAM(ulong) frame_list, unsigned int entries)
{
int nr_pages = (entries + 511) / 512;
unsigned long frames[16];
@@ -4661,7 +4661,7 @@ static int xenmem_add_to_physmap(struct domain *d,
return xenmem_add_to_physmap_once(d, xatp);
}

-long arch_memory_op(int op, XEN_GUEST_HANDLE(void) arg)
+long arch_memory_op(int op, XEN_GUEST_HANDLE_PARAM(void) arg)
{
int rc;

diff --git a/xen/arch/x86/mm/hap/hap.c b/xen/arch/x86/mm/hap/hap.c
index 13b4be2..67e48a3 100644
--- a/xen/arch/x86/mm/hap/hap.c
+++ b/xen/arch/x86/mm/hap/hap.c
@@ -690,7 +690,7 @@ void hap_teardown(struct domain *d)
}

int hap_domctl(struct domain *d, xen_domctl_shadow_op_t *sc,
- XEN_GUEST_HANDLE(void) u_domctl)
+ XEN_GUEST_HANDLE_PARAM(void) u_domctl)
{
int rc, preempted = 0;

diff --git a/xen/arch/x86/mm/mem_event.c b/xen/arch/x86/mm/mem_event.c
index d728889..d3dac14 100644
--- a/xen/arch/x86/mm/mem_event.c
+++ b/xen/arch/x86/mm/mem_event.c
@@ -512,7 +512,7 @@ void mem_event_cleanup(struct domain *d)
}

int mem_event_domctl(struct domain *d, xen_domctl_mem_event_op_t *mec,
- XEN_GUEST_HANDLE(void) u_domctl)
+ XEN_GUEST_HANDLE_PARAM(void) u_domctl)
{
int rc;

diff --git a/xen/arch/x86/mm/paging.c b/xen/arch/x86/mm/paging.c
index ca879f9..ea44e39 100644
--- a/xen/arch/x86/mm/paging.c
+++ b/xen/arch/x86/mm/paging.c
@@ -654,7 +654,7 @@ void paging_vcpu_init(struct vcpu *v)


int paging_domctl(struct domain *d, xen_domctl_shadow_op_t *sc,
- XEN_GUEST_HANDLE(void) u_domctl)
+ XEN_GUEST_HANDLE_PARAM(void) u_domctl)
{
int rc;

diff --git a/xen/arch/x86/mm/shadow/common.c b/xen/arch/x86/mm/shadow/common.c
index dc245be..bd47f03 100644
--- a/xen/arch/x86/mm/shadow/common.c
+++ b/xen/arch/x86/mm/shadow/common.c
@@ -3786,7 +3786,7 @@ out:

int shadow_domctl(struct domain *d,
xen_domctl_shadow_op_t *sc,
- XEN_GUEST_HANDLE(void) u_domctl)
+ XEN_GUEST_HANDLE_PARAM(void) u_domctl)
{
int rc, preempted = 0;

diff --git a/xen/arch/x86/physdev.c b/xen/arch/x86/physdev.c
index b0458fd..b6474ef 100644
--- a/xen/arch/x86/physdev.c
+++ b/xen/arch/x86/physdev.c
@@ -255,7 +255,7 @@ int physdev_unmap_pirq(domid_t domid, int pirq)
}
#endif /* COMPAT */

-ret_t do_physdev_op(int cmd, XEN_GUEST_HANDLE(void) arg)
+ret_t do_physdev_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
{
int irq;
ret_t ret;
diff --git a/xen/arch/x86/platform_hypercall.c b/xen/arch/x86/platform_hypercall.c
index 88880b0..a32e0a2 100644
--- a/xen/arch/x86/platform_hypercall.c
+++ b/xen/arch/x86/platform_hypercall.c
@@ -60,7 +60,7 @@ long cpu_down_helper(void *data);
long core_parking_helper(void *data);
uint32_t get_cur_idle_nums(void);

-ret_t do_platform_op(XEN_GUEST_HANDLE(xen_platform_op_t) u_xenpf_op)
+ret_t do_platform_op(XEN_GUEST_HANDLE_PARAM(xen_platform_op_t) u_xenpf_op)
{
ret_t ret = 0;
struct xen_platform_op curop, *op = &curop;
diff --git a/xen/arch/x86/sysctl.c b/xen/arch/x86/sysctl.c
index 379f071..b84dd34 100644
--- a/xen/arch/x86/sysctl.c
+++ b/xen/arch/x86/sysctl.c
@@ -58,7 +58,7 @@ long cpu_down_helper(void *data)
}

long arch_do_sysctl(
- struct xen_sysctl *sysctl, XEN_GUEST_HANDLE(xen_sysctl_t) u_sysctl)
+ struct xen_sysctl *sysctl, XEN_GUEST_HANDLE_PARAM(xen_sysctl_t) u_sysctl)
{
long ret = 0;

diff --git a/xen/arch/x86/traps.c b/xen/arch/x86/traps.c
index 767be86..281d9e7 100644
--- a/xen/arch/x86/traps.c
+++ b/xen/arch/x86/traps.c
@@ -3700,7 +3700,7 @@ int send_guest_trap(struct domain *d, uint16_t vcpuid, unsigned int trap_nr)
}


-long do_set_trap_table(XEN_GUEST_HANDLE(const_trap_info_t) traps)
+long do_set_trap_table(XEN_GUEST_HANDLE_PARAM(const_trap_info_t) traps)
{
struct trap_info cur;
struct vcpu *curr = current;
diff --git a/xen/arch/x86/x86_32/mm.c b/xen/arch/x86/x86_32/mm.c
index 37efa3c..f6448fb 100644
--- a/xen/arch/x86/x86_32/mm.c
+++ b/xen/arch/x86/x86_32/mm.c
@@ -203,7 +203,7 @@ void __init subarch_init_memory(void)
}
}

-long subarch_memory_op(int op, XEN_GUEST_HANDLE(void) arg)
+long subarch_memory_op(int op, XEN_GUEST_HANDLE_PARAM(void) arg)
{
struct xen_machphys_mfn_list xmml;
unsigned long mfn, last_mfn;
diff --git a/xen/arch/x86/x86_32/traps.c b/xen/arch/x86/x86_32/traps.c
index 8f68808..0c7c860 100644
--- a/xen/arch/x86/x86_32/traps.c
+++ b/xen/arch/x86/x86_32/traps.c
@@ -492,7 +492,7 @@ static long unregister_guest_callback(struct callback_unregister *unreg)
}


-long do_callback_op(int cmd, XEN_GUEST_HANDLE(const_void) arg)
+long do_callback_op(int cmd, XEN_GUEST_HANDLE_PARAM(const_void) arg)
{
long ret;

diff --git a/xen/arch/x86/x86_64/compat/mm.c b/xen/arch/x86/x86_64/compat/mm.c
index 5bcd2fd..d24a324 100644
--- a/xen/arch/x86/x86_64/compat/mm.c
+++ b/xen/arch/x86/x86_64/compat/mm.c
@@ -5,7 +5,7 @@
#include <asm/mem_event.h>
#include <asm/mem_sharing.h>

-int compat_set_gdt(XEN_GUEST_HANDLE(uint) frame_list, unsigned int entries)
+int compat_set_gdt(XEN_GUEST_HANDLE_PARAM(uint) frame_list, unsigned int entries)
{
unsigned int i, nr_pages = (entries + 511) / 512;
unsigned long frames[16];
@@ -44,7 +44,7 @@ int compat_update_descriptor(u32 pa_lo, u32 pa_hi, u32 desc_lo, u32 desc_hi)
desc_lo | ((u64)desc_hi << 32));
}

-int compat_arch_memory_op(int op, XEN_GUEST_HANDLE(void) arg)
+int compat_arch_memory_op(int op, XEN_GUEST_HANDLE_PARAM(void) arg)
{
struct compat_machphys_mfn_list xmml;
l2_pgentry_t l2e;
@@ -266,9 +266,9 @@ int compat_update_va_mapping_otherdomain(unsigned long va, u32 lo, u32 hi,

DEFINE_XEN_GUEST_HANDLE(mmuext_op_compat_t);

-int compat_mmuext_op(XEN_GUEST_HANDLE(mmuext_op_compat_t) cmp_uops,
+int compat_mmuext_op(XEN_GUEST_HANDLE_PARAM(mmuext_op_compat_t) cmp_uops,
unsigned int count,
- XEN_GUEST_HANDLE(uint) pdone,
+ XEN_GUEST_HANDLE_PARAM(uint) pdone,
unsigned int foreigndom)
{
unsigned int i, preempt_mask;
diff --git a/xen/arch/x86/x86_64/domain.c b/xen/arch/x86/x86_64/domain.c
index e746c89..144ca2d 100644
--- a/xen/arch/x86/x86_64/domain.c
+++ b/xen/arch/x86/x86_64/domain.c
@@ -23,7 +23,7 @@ CHECK_vcpu_get_physid;

int
arch_compat_vcpu_op(
- int cmd, struct vcpu *v, XEN_GUEST_HANDLE(void) arg)
+ int cmd, struct vcpu *v, XEN_GUEST_HANDLE_PARAM(void) arg)
{
int rc = -ENOSYS;

diff --git a/xen/arch/x86/x86_64/mm.c b/xen/arch/x86/x86_64/mm.c
index 635a499..17c46a1 100644
--- a/xen/arch/x86/x86_64/mm.c
+++ b/xen/arch/x86/x86_64/mm.c
@@ -1043,7 +1043,7 @@ void __init subarch_init_memory(void)
}
}

-long subarch_memory_op(int op, XEN_GUEST_HANDLE(void) arg)
+long subarch_memory_op(int op, XEN_GUEST_HANDLE_PARAM(void) arg)
{
struct xen_machphys_mfn_list xmml;
l3_pgentry_t l3e;
diff --git a/xen/arch/x86/x86_64/traps.c b/xen/arch/x86/x86_64/traps.c
index 806cf2e..6ead813 100644
--- a/xen/arch/x86/x86_64/traps.c
+++ b/xen/arch/x86/x86_64/traps.c
@@ -518,7 +518,7 @@ static long unregister_guest_callback(struct callback_unregister *unreg)
}


-long do_callback_op(int cmd, XEN_GUEST_HANDLE(const_void) arg)
+long do_callback_op(int cmd, XEN_GUEST_HANDLE_PARAM(const_void) arg)
{
long ret;

diff --git a/xen/common/compat/domain.c b/xen/common/compat/domain.c
index 40a0287..e4c8ceb 100644
--- a/xen/common/compat/domain.c
+++ b/xen/common/compat/domain.c
@@ -15,7 +15,7 @@
CHECK_vcpu_set_periodic_timer;
#undef xen_vcpu_set_periodic_timer

-int compat_vcpu_op(int cmd, int vcpuid, XEN_GUEST_HANDLE(void) arg)
+int compat_vcpu_op(int cmd, int vcpuid, XEN_GUEST_HANDLE_PARAM(void) arg)
{
struct domain *d = current->domain;
struct vcpu *v;
diff --git a/xen/common/compat/grant_table.c b/xen/common/compat/grant_table.c
index edd20c6..74a4733 100644
--- a/xen/common/compat/grant_table.c
+++ b/xen/common/compat/grant_table.c
@@ -52,7 +52,7 @@ CHECK_gnttab_swap_grant_ref;
#undef xen_gnttab_swap_grant_ref

int compat_grant_table_op(unsigned int cmd,
- XEN_GUEST_HANDLE(void) cmp_uop,
+ XEN_GUEST_HANDLE_PARAM(void) cmp_uop,
unsigned int count)
{
int rc = 0;
diff --git a/xen/common/compat/memory.c b/xen/common/compat/memory.c
index e7257cc..8e311ff 100644
--- a/xen/common/compat/memory.c
+++ b/xen/common/compat/memory.c
@@ -13,7 +13,7 @@ CHECK_TYPE(domid);
#undef compat_domid_t
#undef xen_domid_t

-int compat_memory_op(unsigned int cmd, XEN_GUEST_HANDLE(void) compat)
+int compat_memory_op(unsigned int cmd, XEN_GUEST_HANDLE_PARAM(void) compat)
{
int rc, split, op = cmd & MEMOP_CMD_MASK;
unsigned int start_extent = cmd >> MEMOP_EXTENT_SHIFT;
diff --git a/xen/common/domain.c b/xen/common/domain.c
index 4c5d241..d7cd135 100644
--- a/xen/common/domain.c
+++ b/xen/common/domain.c
@@ -804,7 +804,7 @@ void vcpu_reset(struct vcpu *v)
}


-long do_vcpu_op(int cmd, int vcpuid, XEN_GUEST_HANDLE(void) arg)
+long do_vcpu_op(int cmd, int vcpuid, XEN_GUEST_HANDLE_PARAM(void) arg)
{
struct domain *d = current->domain;
struct vcpu *v;
diff --git a/xen/common/domctl.c b/xen/common/domctl.c
index 7ca6b08..527c5ad 100644
--- a/xen/common/domctl.c
+++ b/xen/common/domctl.c
@@ -238,7 +238,7 @@ void domctl_lock_release(void)
spin_unlock(&current->domain->hypercall_deadlock_mutex);
}

-long do_domctl(XEN_GUEST_HANDLE(xen_domctl_t) u_domctl)
+long do_domctl(XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_domctl)
{
long ret = 0;
struct xen_domctl curop, *op = &curop;
diff --git a/xen/common/event_channel.c b/xen/common/event_channel.c
index 53777f8..a80a0d1 100644
--- a/xen/common/event_channel.c
+++ b/xen/common/event_channel.c
@@ -970,7 +970,7 @@ out:
}


-long do_event_channel_op(int cmd, XEN_GUEST_HANDLE(void) arg)
+long do_event_channel_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
{
long rc;

diff --git a/xen/common/grant_table.c b/xen/common/grant_table.c
index 9961e83..d780dc6 100644
--- a/xen/common/grant_table.c
+++ b/xen/common/grant_table.c
@@ -771,7 +771,7 @@ __gnttab_map_grant_ref(

static long
gnttab_map_grant_ref(
- XEN_GUEST_HANDLE(gnttab_map_grant_ref_t) uop, unsigned int count)
+ XEN_GUEST_HANDLE_PARAM(gnttab_map_grant_ref_t) uop, unsigned int count)
{
int i;
struct gnttab_map_grant_ref op;
@@ -1040,7 +1040,7 @@ __gnttab_unmap_grant_ref(

static long
gnttab_unmap_grant_ref(
- XEN_GUEST_HANDLE(gnttab_unmap_grant_ref_t) uop, unsigned int count)
+ XEN_GUEST_HANDLE_PARAM(gnttab_unmap_grant_ref_t) uop, unsigned int count)
{
int i, c, partial_done, done = 0;
struct gnttab_unmap_grant_ref op;
@@ -1102,7 +1102,7 @@ __gnttab_unmap_and_replace(

static long
gnttab_unmap_and_replace(
- XEN_GUEST_HANDLE(gnttab_unmap_and_replace_t) uop, unsigned int count)
+ XEN_GUEST_HANDLE_PARAM(gnttab_unmap_and_replace_t) uop, unsigned int count)
{
int i, c, partial_done, done = 0;
struct gnttab_unmap_and_replace op;
@@ -1254,7 +1254,7 @@ active_alloc_failed:

static long
gnttab_setup_table(
- XEN_GUEST_HANDLE(gnttab_setup_table_t) uop, unsigned int count)
+ XEN_GUEST_HANDLE_PARAM(gnttab_setup_table_t) uop, unsigned int count)
{
struct gnttab_setup_table op;
struct domain *d;
@@ -1348,7 +1348,7 @@ gnttab_setup_table(

static long
gnttab_query_size(
- XEN_GUEST_HANDLE(gnttab_query_size_t) uop, unsigned int count)
+ XEN_GUEST_HANDLE_PARAM(gnttab_query_size_t) uop, unsigned int count)
{
struct gnttab_query_size op;
struct domain *d;
@@ -1485,7 +1485,7 @@ gnttab_prepare_for_transfer(

static long
gnttab_transfer(
- XEN_GUEST_HANDLE(gnttab_transfer_t) uop, unsigned int count)
+ XEN_GUEST_HANDLE_PARAM(gnttab_transfer_t) uop, unsigned int count)
{
struct domain *d = current->domain;
struct domain *e;
@@ -2082,7 +2082,7 @@ __gnttab_copy(

static long
gnttab_copy(
- XEN_GUEST_HANDLE(gnttab_copy_t) uop, unsigned int count)
+ XEN_GUEST_HANDLE_PARAM(gnttab_copy_t) uop, unsigned int count)
{
int i;
struct gnttab_copy op;
@@ -2101,7 +2101,7 @@ gnttab_copy(
}

static long
-gnttab_set_version(XEN_GUEST_HANDLE(gnttab_set_version_t uop))
+gnttab_set_version(XEN_GUEST_HANDLE_PARAM(gnttab_set_version_t uop))
{
gnttab_set_version_t op;
struct domain *d = current->domain;
@@ -2220,7 +2220,7 @@ out:
}

static long
-gnttab_get_status_frames(XEN_GUEST_HANDLE(gnttab_get_status_frames_t) uop,
+gnttab_get_status_frames(XEN_GUEST_HANDLE_PARAM(gnttab_get_status_frames_t) uop,
int count)
{
gnttab_get_status_frames_t op;
@@ -2289,7 +2289,7 @@ out1:
}

static long
-gnttab_get_version(XEN_GUEST_HANDLE(gnttab_get_version_t uop))
+gnttab_get_version(XEN_GUEST_HANDLE_PARAM(gnttab_get_version_t uop))
{
gnttab_get_version_t op;
struct domain *d;
@@ -2368,7 +2368,7 @@ out:
}

static long
-gnttab_swap_grant_ref(XEN_GUEST_HANDLE(gnttab_swap_grant_ref_t uop),
+gnttab_swap_grant_ref(XEN_GUEST_HANDLE_PARAM(gnttab_swap_grant_ref_t uop),
unsigned int count)
{
int i;
@@ -2389,7 +2389,7 @@ gnttab_swap_grant_ref(XEN_GUEST_HANDLE(gnttab_swap_grant_ref_t uop),

long
do_grant_table_op(
- unsigned int cmd, XEN_GUEST_HANDLE(void) uop, unsigned int count)
+ unsigned int cmd, XEN_GUEST_HANDLE_PARAM(void) uop, unsigned int count)
{
long rc;

@@ -2401,7 +2401,7 @@ do_grant_table_op(
{
case GNTTABOP_map_grant_ref:
{
- XEN_GUEST_HANDLE(gnttab_map_grant_ref_t) map =
+ XEN_GUEST_HANDLE_PARAM(gnttab_map_grant_ref_t) map =
guest_handle_cast(uop, gnttab_map_grant_ref_t);
if ( unlikely(!guest_handle_okay(map, count)) )
goto out;
@@ -2415,7 +2415,7 @@ do_grant_table_op(
}
case GNTTABOP_unmap_grant_ref:
{
- XEN_GUEST_HANDLE(gnttab_unmap_grant_ref_t) unmap =
+ XEN_GUEST_HANDLE_PARAM(gnttab_unmap_grant_ref_t) unmap =
guest_handle_cast(uop, gnttab_unmap_grant_ref_t);
if ( unlikely(!guest_handle_okay(unmap, count)) )
goto out;
@@ -2429,7 +2429,7 @@ do_grant_table_op(
}
case GNTTABOP_unmap_and_replace:
{
- XEN_GUEST_HANDLE(gnttab_unmap_and_replace_t) unmap =
+ XEN_GUEST_HANDLE_PARAM(gnttab_unmap_and_replace_t) unmap =
guest_handle_cast(uop, gnttab_unmap_and_replace_t);
if ( unlikely(!guest_handle_okay(unmap, count)) )
goto out;
@@ -2453,7 +2453,7 @@ do_grant_table_op(
}
case GNTTABOP_transfer:
{
- XEN_GUEST_HANDLE(gnttab_transfer_t) transfer =
+ XEN_GUEST_HANDLE_PARAM(gnttab_transfer_t) transfer =
guest_handle_cast(uop, gnttab_transfer_t);
if ( unlikely(!guest_handle_okay(transfer, count)) )
goto out;
@@ -2467,7 +2467,7 @@ do_grant_table_op(
}
case GNTTABOP_copy:
{
- XEN_GUEST_HANDLE(gnttab_copy_t) copy =
+ XEN_GUEST_HANDLE_PARAM(gnttab_copy_t) copy =
guest_handle_cast(uop, gnttab_copy_t);
if ( unlikely(!guest_handle_okay(copy, count)) )
goto out;
@@ -2504,7 +2504,7 @@ do_grant_table_op(
}
case GNTTABOP_swap_grant_ref:
{
- XEN_GUEST_HANDLE(gnttab_swap_grant_ref_t) swap =
+ XEN_GUEST_HANDLE_PARAM(gnttab_swap_grant_ref_t) swap =
guest_handle_cast(uop, gnttab_swap_grant_ref_t);
if ( unlikely(!guest_handle_okay(swap, count)) )
goto out;
diff --git a/xen/common/kernel.c b/xen/common/kernel.c
index c915bbc..55caff6 100644
--- a/xen/common/kernel.c
+++ b/xen/common/kernel.c
@@ -204,7 +204,7 @@ void __init do_initcalls(void)
* Simple hypercalls.
*/

-DO(xen_version)(int cmd, XEN_GUEST_HANDLE(void) arg)
+DO(xen_version)(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
{
switch ( cmd )
{
@@ -332,7 +332,7 @@ DO(xen_version)(int cmd, XEN_GUEST_HANDLE(void) arg)
return -ENOSYS;
}

-DO(nmi_op)(unsigned int cmd, XEN_GUEST_HANDLE(void) arg)
+DO(nmi_op)(unsigned int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
{
struct xennmi_callback cb;
long rc = 0;
diff --git a/xen/common/kexec.c b/xen/common/kexec.c
index 09a5624..03389eb 100644
--- a/xen/common/kexec.c
+++ b/xen/common/kexec.c
@@ -613,7 +613,7 @@ static int kexec_get_range_internal(xen_kexec_range_t *range)
return ret;
}

-static int kexec_get_range(XEN_GUEST_HANDLE(void) uarg)
+static int kexec_get_range(XEN_GUEST_HANDLE_PARAM(void) uarg)
{
xen_kexec_range_t range;
int ret = -EINVAL;
@@ -629,7 +629,7 @@ static int kexec_get_range(XEN_GUEST_HANDLE(void) uarg)
return ret;
}

-static int kexec_get_range_compat(XEN_GUEST_HANDLE(void) uarg)
+static int kexec_get_range_compat(XEN_GUEST_HANDLE_PARAM(void) uarg)
{
#ifdef CONFIG_COMPAT
xen_kexec_range_t range;
@@ -777,7 +777,7 @@ static int kexec_load_unload_internal(unsigned long op, xen_kexec_load_t *load)
return ret;
}

-static int kexec_load_unload(unsigned long op, XEN_GUEST_HANDLE(void) uarg)
+static int kexec_load_unload(unsigned long op, XEN_GUEST_HANDLE_PARAM(void) uarg)
{
xen_kexec_load_t load;

@@ -788,7 +788,7 @@ static int kexec_load_unload(unsigned long op, XEN_GUEST_HANDLE(void) uarg)
}

static int kexec_load_unload_compat(unsigned long op,
- XEN_GUEST_HANDLE(void) uarg)
+ XEN_GUEST_HANDLE_PARAM(void) uarg)
{
#ifdef CONFIG_COMPAT
compat_kexec_load_t compat_load;
@@ -813,7 +813,7 @@ static int kexec_load_unload_compat(unsigned long op,
#endif /* CONFIG_COMPAT */
}

-static int kexec_exec(XEN_GUEST_HANDLE(void) uarg)
+static int kexec_exec(XEN_GUEST_HANDLE_PARAM(void) uarg)
{
xen_kexec_exec_t exec;
xen_kexec_image_t *image;
@@ -845,7 +845,7 @@ static int kexec_exec(XEN_GUEST_HANDLE(void) uarg)
return -EINVAL; /* never reached */
}

-int do_kexec_op_internal(unsigned long op, XEN_GUEST_HANDLE(void) uarg,
+int do_kexec_op_internal(unsigned long op, XEN_GUEST_HANDLE_PARAM(void) uarg,
int compat)
{
unsigned long flags;
@@ -886,13 +886,13 @@ int do_kexec_op_internal(unsigned long op, XEN_GUEST_HANDLE(void) uarg,
return ret;
}

-long do_kexec_op(unsigned long op, XEN_GUEST_HANDLE(void) uarg)
+long do_kexec_op(unsigned long op, XEN_GUEST_HANDLE_PARAM(void) uarg)
{
return do_kexec_op_internal(op, uarg, 0);
}

#ifdef CONFIG_COMPAT
-int compat_kexec_op(unsigned long op, XEN_GUEST_HANDLE(void) uarg)
+int compat_kexec_op(unsigned long op, XEN_GUEST_HANDLE_PARAM(void) uarg)
{
return do_kexec_op_internal(op, uarg, 1);
}
diff --git a/xen/common/memory.c b/xen/common/memory.c
index 7e58cc4..a683954 100644
--- a/xen/common/memory.c
+++ b/xen/common/memory.c
@@ -277,7 +277,7 @@ static void decrease_reservation(struct memop_args *a)
a->nr_done = i;
}

-static long memory_exchange(XEN_GUEST_HANDLE(xen_memory_exchange_t) arg)
+static long memory_exchange(XEN_GUEST_HANDLE_PARAM(xen_memory_exchange_t) arg)
{
struct xen_memory_exchange exch;
PAGE_LIST_HEAD(in_chunk_list);
@@ -530,7 +530,7 @@ static long memory_exchange(XEN_GUEST_HANDLE(xen_memory_exchange_t) arg)
return rc;
}

-long do_memory_op(unsigned long cmd, XEN_GUEST_HANDLE(void) arg)
+long do_memory_op(unsigned long cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
{
struct domain *d;
int rc, op;
diff --git a/xen/common/multicall.c b/xen/common/multicall.c
index 6c1a9d7..5de5f8d 100644
--- a/xen/common/multicall.c
+++ b/xen/common/multicall.c
@@ -21,7 +21,7 @@ typedef long ret_t;

ret_t
do_multicall(
- XEN_GUEST_HANDLE(multicall_entry_t) call_list, unsigned int nr_calls)
+ XEN_GUEST_HANDLE_PARAM(multicall_entry_t) call_list, unsigned int nr_calls)
{
struct mc_state *mcs = &current->mc_state;
unsigned int i;
diff --git a/xen/common/schedule.c b/xen/common/schedule.c
index 0854f55..c26eac4 100644
--- a/xen/common/schedule.c
+++ b/xen/common/schedule.c
@@ -836,7 +836,7 @@ typedef long ret_t;

#endif /* !COMPAT */

-ret_t do_sched_op(int cmd, XEN_GUEST_HANDLE(void) arg)
+ret_t do_sched_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
{
ret_t ret = 0;

diff --git a/xen/common/sysctl.c b/xen/common/sysctl.c
index ea68278..47142f4 100644
--- a/xen/common/sysctl.c
+++ b/xen/common/sysctl.c
@@ -27,7 +27,7 @@
#include <xsm/xsm.h>
#include <xen/pmstat.h>

-long do_sysctl(XEN_GUEST_HANDLE(xen_sysctl_t) u_sysctl)
+long do_sysctl(XEN_GUEST_HANDLE_PARAM(xen_sysctl_t) u_sysctl)
{
long ret = 0;
struct xen_sysctl curop, *op = &curop;
diff --git a/xen/common/xenoprof.c b/xen/common/xenoprof.c
index e571fea..c001b38 100644
--- a/xen/common/xenoprof.c
+++ b/xen/common/xenoprof.c
@@ -404,7 +404,7 @@ static int add_active_list(domid_t domid)
return 0;
}

-static int add_passive_list(XEN_GUEST_HANDLE(void) arg)
+static int add_passive_list(XEN_GUEST_HANDLE_PARAM(void) arg)
{
struct xenoprof_passive passive;
struct domain *d;
@@ -585,7 +585,7 @@ void xenoprof_log_event(struct vcpu *vcpu, const struct cpu_user_regs *regs,



-static int xenoprof_op_init(XEN_GUEST_HANDLE(void) arg)
+static int xenoprof_op_init(XEN_GUEST_HANDLE_PARAM(void) arg)
{
struct domain *d = current->domain;
struct xenoprof_init xenoprof_init;
@@ -609,7 +609,7 @@ static int xenoprof_op_init(XEN_GUEST_HANDLE(void) arg)

#endif /* !COMPAT */

-static int xenoprof_op_get_buffer(XEN_GUEST_HANDLE(void) arg)
+static int xenoprof_op_get_buffer(XEN_GUEST_HANDLE_PARAM(void) arg)
{
struct xenoprof_get_buffer xenoprof_get_buffer;
struct domain *d = current->domain;
@@ -660,7 +660,7 @@ static int xenoprof_op_get_buffer(XEN_GUEST_HANDLE(void) arg)
|| (op == XENOPROF_disable_virq) \
|| (op == XENOPROF_get_buffer))

-int do_xenoprof_op(int op, XEN_GUEST_HANDLE(void) arg)
+int do_xenoprof_op(int op, XEN_GUEST_HANDLE_PARAM(void) arg)
{
int ret = 0;

diff --git a/xen/drivers/acpi/pmstat.c b/xen/drivers/acpi/pmstat.c
index 698711e..f8d62f2 100644
--- a/xen/drivers/acpi/pmstat.c
+++ b/xen/drivers/acpi/pmstat.c
@@ -515,7 +515,7 @@ int do_pm_op(struct xen_sysctl_pm_op *op)
return ret;
}

-int acpi_set_pdc_bits(u32 acpi_id, XEN_GUEST_HANDLE(uint32) pdc)
+int acpi_set_pdc_bits(u32 acpi_id, XEN_GUEST_HANDLE_PARAM(uint32) pdc)
{
u32 bits[3];
int ret;
diff --git a/xen/drivers/char/console.c b/xen/drivers/char/console.c
index e10bed5..b0f2334 100644
--- a/xen/drivers/char/console.c
+++ b/xen/drivers/char/console.c
@@ -182,7 +182,7 @@ static void putchar_console_ring(int c)

long read_console_ring(struct xen_sysctl_readconsole *op)
{
- XEN_GUEST_HANDLE(char) str;
+ XEN_GUEST_HANDLE_PARAM(char) str;
uint32_t idx, len, max, sofar, c;

str = guest_handle_cast(op->buffer, char),
@@ -320,7 +320,7 @@ static void notify_dom0_con_ring(unsigned long unused)
static DECLARE_SOFTIRQ_TASKLET(notify_dom0_con_ring_tasklet,
notify_dom0_con_ring, 0);

-static long guest_console_write(XEN_GUEST_HANDLE(char) buffer, int count)
+static long guest_console_write(XEN_GUEST_HANDLE_PARAM(char) buffer, int count)
{
char kbuf[128], *kptr;
int kcount;
@@ -358,7 +358,7 @@ static long guest_console_write(XEN_GUEST_HANDLE(char) buffer, int count)
return 0;
}

-long do_console_io(int cmd, int count, XEN_GUEST_HANDLE(char) buffer)
+long do_console_io(int cmd, int count, XEN_GUEST_HANDLE_PARAM(char) buffer)
{
long rc;
unsigned int idx, len;
diff --git a/xen/drivers/passthrough/iommu.c b/xen/drivers/passthrough/iommu.c
index 64f5fd1..396461f 100644
--- a/xen/drivers/passthrough/iommu.c
+++ b/xen/drivers/passthrough/iommu.c
@@ -518,7 +518,7 @@ void iommu_crash_shutdown(void)

int iommu_do_domctl(
struct xen_domctl *domctl,
- XEN_GUEST_HANDLE(xen_domctl_t) u_domctl)
+ XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_domctl)
{
struct domain *d;
u16 seg;
diff --git a/xen/include/asm-arm/guest_access.h b/xen/include/asm-arm/guest_access.h
index 7a955cb..bf5005b 100644
--- a/xen/include/asm-arm/guest_access.h
+++ b/xen/include/asm-arm/guest_access.h
@@ -30,7 +30,7 @@ unsigned long raw_clear_guest(void *to, unsigned len);
/* Cast a guest handle to the specified type of handle. */
#define guest_handle_cast(hnd, type) ({ \
type *_x = (hnd).p; \
- (XEN_GUEST_HANDLE(type)) { {_x } }; \
+ (XEN_GUEST_HANDLE_PARAM(type)) { _x }; \
})

#define guest_handle_from_ptr(ptr, type) \
diff --git a/xen/include/asm-arm/hypercall.h b/xen/include/asm-arm/hypercall.h
index 454f02e..090e620 100644
--- a/xen/include/asm-arm/hypercall.h
+++ b/xen/include/asm-arm/hypercall.h
@@ -2,7 +2,7 @@
#define __ASM_ARM_HYPERCALL_H__

#include <public/domctl.h> /* for arch_do_domctl */
-int do_physdev_op(int cmd, XEN_GUEST_HANDLE(void) arg);
+int do_physdev_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg);

#endif /* __ASM_ARM_HYPERCALL_H__ */
/*
diff --git a/xen/include/asm-arm/mm.h b/xen/include/asm-arm/mm.h
index b37bd35..8bf45ba 100644
--- a/xen/include/asm-arm/mm.h
+++ b/xen/include/asm-arm/mm.h
@@ -267,7 +267,7 @@ static inline int relinquish_shared_pages(struct domain *d)


/* Arch-specific portion of memory_op hypercall. */
-long arch_memory_op(int op, XEN_GUEST_HANDLE(void) arg);
+long arch_memory_op(int op, XEN_GUEST_HANDLE_PARAM(void) arg);

int steal_page(
struct domain *d, struct page_info *page, unsigned int memflags);
diff --git a/xen/include/asm-x86/hap.h b/xen/include/asm-x86/hap.h
index a2532a4..916a35b 100644
--- a/xen/include/asm-x86/hap.h
+++ b/xen/include/asm-x86/hap.h
@@ -51,7 +51,7 @@ hap_unmap_domain_page(void *p)
/************************************************/
void hap_domain_init(struct domain *d);
int hap_domctl(struct domain *d, xen_domctl_shadow_op_t *sc,
- XEN_GUEST_HANDLE(void) u_domctl);
+ XEN_GUEST_HANDLE_PARAM(void) u_domctl);
int hap_enable(struct domain *d, u32 mode);
void hap_final_teardown(struct domain *d);
void hap_teardown(struct domain *d);
diff --git a/xen/include/asm-x86/hypercall.h b/xen/include/asm-x86/hypercall.h
index 9e136c3..55b5ca2 100644
--- a/xen/include/asm-x86/hypercall.h
+++ b/xen/include/asm-x86/hypercall.h
@@ -18,22 +18,22 @@

extern long
do_event_channel_op_compat(
- XEN_GUEST_HANDLE(evtchn_op_t) uop);
+ XEN_GUEST_HANDLE_PARAM(evtchn_op_t) uop);

extern long
do_set_trap_table(
- XEN_GUEST_HANDLE(const_trap_info_t) traps);
+ XEN_GUEST_HANDLE_PARAM(const_trap_info_t) traps);

extern int
do_mmu_update(
- XEN_GUEST_HANDLE(mmu_update_t) ureqs,
+ XEN_GUEST_HANDLE_PARAM(mmu_update_t) ureqs,
unsigned int count,
- XEN_GUEST_HANDLE(uint) pdone,
+ XEN_GUEST_HANDLE_PARAM(uint) pdone,
unsigned int foreigndom);

extern long
do_set_gdt(
- XEN_GUEST_HANDLE(ulong) frame_list,
+ XEN_GUEST_HANDLE_PARAM(ulong) frame_list,
unsigned int entries);

extern long
@@ -60,7 +60,7 @@ do_update_descriptor(
u64 desc);

extern long
-do_mca(XEN_GUEST_HANDLE(xen_mc_t) u_xen_mc);
+do_mca(XEN_GUEST_HANDLE_PARAM(xen_mc_t) u_xen_mc);

extern int
do_update_va_mapping(
@@ -70,7 +70,7 @@ do_update_va_mapping(

extern long
do_physdev_op(
- int cmd, XEN_GUEST_HANDLE(void) arg);
+ int cmd, XEN_GUEST_HANDLE_PARAM(void) arg);

extern int
do_update_va_mapping_otherdomain(
@@ -81,9 +81,9 @@ do_update_va_mapping_otherdomain(

extern int
do_mmuext_op(
- XEN_GUEST_HANDLE(mmuext_op_t) uops,
+ XEN_GUEST_HANDLE_PARAM(mmuext_op_t) uops,
unsigned int count,
- XEN_GUEST_HANDLE(uint) pdone,
+ XEN_GUEST_HANDLE_PARAM(uint) pdone,
unsigned int foreigndom);

extern unsigned long
@@ -92,7 +92,7 @@ do_iret(

extern int
do_kexec(
- unsigned long op, unsigned arg1, XEN_GUEST_HANDLE(void) uarg);
+ unsigned long op, unsigned arg1, XEN_GUEST_HANDLE_PARAM(void) uarg);

#ifdef __x86_64__

@@ -110,11 +110,11 @@ do_set_segment_base(
extern int
compat_physdev_op(
int cmd,
- XEN_GUEST_HANDLE(void) arg);
+ XEN_GUEST_HANDLE_PARAM(void) arg);

extern int
arch_compat_vcpu_op(
- int cmd, struct vcpu *v, XEN_GUEST_HANDLE(void) arg);
+ int cmd, struct vcpu *v, XEN_GUEST_HANDLE_PARAM(void) arg);

#else

diff --git a/xen/include/asm-x86/mem_event.h b/xen/include/asm-x86/mem_event.h
index 23d71c1..e17f36b 100644
--- a/xen/include/asm-x86/mem_event.h
+++ b/xen/include/asm-x86/mem_event.h
@@ -65,7 +65,7 @@ int mem_event_get_response(struct domain *d, struct mem_event_domain *med,
struct domain *get_mem_event_op_target(uint32_t domain, int *rc);
int do_mem_event_op(int op, uint32_t domain, void *arg);
int mem_event_domctl(struct domain *d, xen_domctl_mem_event_op_t *mec,
- XEN_GUEST_HANDLE(void) u_domctl);
+ XEN_GUEST_HANDLE_PARAM(void) u_domctl);

#endif /* __MEM_EVENT_H__ */

diff --git a/xen/include/asm-x86/mm.h b/xen/include/asm-x86/mm.h
index 4cba276..6373b3b 100644
--- a/xen/include/asm-x86/mm.h
+++ b/xen/include/asm-x86/mm.h
@@ -604,10 +604,10 @@ void *do_page_walk(struct vcpu *v, unsigned long addr);
int __sync_local_execstate(void);

/* Arch-specific portion of memory_op hypercall. */
-long arch_memory_op(int op, XEN_GUEST_HANDLE(void) arg);
-long subarch_memory_op(int op, XEN_GUEST_HANDLE(void) arg);
-int compat_arch_memory_op(int op, XEN_GUEST_HANDLE(void));
-int compat_subarch_memory_op(int op, XEN_GUEST_HANDLE(void));
+long arch_memory_op(int op, XEN_GUEST_HANDLE_PARAM(void) arg);
+long subarch_memory_op(int op, XEN_GUEST_HANDLE_PARAM(void) arg);
+int compat_arch_memory_op(int op, XEN_GUEST_HANDLE_PARAM(void));
+int compat_subarch_memory_op(int op, XEN_GUEST_HANDLE_PARAM(void));

int steal_page(
struct domain *d, struct page_info *page, unsigned int memflags);
diff --git a/xen/include/asm-x86/paging.h b/xen/include/asm-x86/paging.h
index c432a97..1cd0e3f 100644
--- a/xen/include/asm-x86/paging.h
+++ b/xen/include/asm-x86/paging.h
@@ -215,7 +215,7 @@ int paging_domain_init(struct domain *d, unsigned int domcr_flags);
* and disable ephemeral shadow modes (test mode and log-dirty mode) and
* manipulate the log-dirty bitmap. */
int paging_domctl(struct domain *d, xen_domctl_shadow_op_t *sc,
- XEN_GUEST_HANDLE(void) u_domctl);
+ XEN_GUEST_HANDLE_PARAM(void) u_domctl);

/* Call when destroying a domain */
void paging_teardown(struct domain *d);
diff --git a/xen/include/asm-x86/processor.h b/xen/include/asm-x86/processor.h
index 7164a50..efdbddd 100644
--- a/xen/include/asm-x86/processor.h
+++ b/xen/include/asm-x86/processor.h
@@ -598,7 +598,7 @@ int rdmsr_hypervisor_regs(uint32_t idx, uint64_t *val);
int wrmsr_hypervisor_regs(uint32_t idx, uint64_t val);

void microcode_set_module(unsigned int);
-int microcode_update(XEN_GUEST_HANDLE(const_void), unsigned long len);
+int microcode_update(XEN_GUEST_HANDLE_PARAM(const_void), unsigned long len);
int microcode_resume_cpu(int cpu);

unsigned long *get_x86_gpr(struct cpu_user_regs *regs, unsigned int modrm_reg);
diff --git a/xen/include/asm-x86/shadow.h b/xen/include/asm-x86/shadow.h
index 88a8cd2..2eb6efc 100644
--- a/xen/include/asm-x86/shadow.h
+++ b/xen/include/asm-x86/shadow.h
@@ -73,7 +73,7 @@ int shadow_track_dirty_vram(struct domain *d,
* manipulate the log-dirty bitmap. */
int shadow_domctl(struct domain *d,
xen_domctl_shadow_op_t *sc,
- XEN_GUEST_HANDLE(void) u_domctl);
+ XEN_GUEST_HANDLE_PARAM(void) u_domctl);

/* Call when destroying a domain */
void shadow_teardown(struct domain *d);
diff --git a/xen/include/asm-x86/xenoprof.h b/xen/include/asm-x86/xenoprof.h
index c03f8c8..3f5ea15 100644
--- a/xen/include/asm-x86/xenoprof.h
+++ b/xen/include/asm-x86/xenoprof.h
@@ -40,9 +40,9 @@ int xenoprof_arch_init(int *num_events, char *cpu_type);
#define xenoprof_arch_disable_virq() nmi_disable_virq()
#define xenoprof_arch_release_counters() nmi_release_counters()

-int xenoprof_arch_counter(XEN_GUEST_HANDLE(void) arg);
-int compat_oprof_arch_counter(XEN_GUEST_HANDLE(void) arg);
-int xenoprof_arch_ibs_counter(XEN_GUEST_HANDLE(void) arg);
+int xenoprof_arch_counter(XEN_GUEST_HANDLE_PARAM(void) arg);
+int compat_oprof_arch_counter(XEN_GUEST_HANDLE_PARAM(void) arg);
+int xenoprof_arch_ibs_counter(XEN_GUEST_HANDLE_PARAM(void) arg);

struct vcpu;
struct cpu_user_regs;
diff --git a/xen/include/xen/acpi.h b/xen/include/xen/acpi.h
index d7e2f94..8f3cdca 100644
--- a/xen/include/xen/acpi.h
+++ b/xen/include/xen/acpi.h
@@ -145,8 +145,8 @@ static inline unsigned int acpi_get_cstate_limit(void) { return 0; }
static inline void acpi_set_cstate_limit(unsigned int new_limit) { return; }
#endif

-#ifdef XEN_GUEST_HANDLE
-int acpi_set_pdc_bits(u32 acpi_id, XEN_GUEST_HANDLE(uint32));
+#ifdef XEN_GUEST_HANDLE_PARAM
+int acpi_set_pdc_bits(u32 acpi_id, XEN_GUEST_HANDLE_PARAM(uint32));
#endif
int arch_acpi_set_pdc_bits(u32 acpi_id, u32 *, u32 mask);

diff --git a/xen/include/xen/hypercall.h b/xen/include/xen/hypercall.h
index 73b1598..e335037 100644
--- a/xen/include/xen/hypercall.h
+++ b/xen/include/xen/hypercall.h
@@ -29,29 +29,29 @@ do_sched_op_compat(
extern long
do_sched_op(
int cmd,
- XEN_GUEST_HANDLE(void) arg);
+ XEN_GUEST_HANDLE_PARAM(void) arg);

extern long
do_domctl(
- XEN_GUEST_HANDLE(xen_domctl_t) u_domctl);
+ XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_domctl);

extern long
arch_do_domctl(
struct xen_domctl *domctl,
- XEN_GUEST_HANDLE(xen_domctl_t) u_domctl);
+ XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_domctl);

extern long
do_sysctl(
- XEN_GUEST_HANDLE(xen_sysctl_t) u_sysctl);
+ XEN_GUEST_HANDLE_PARAM(xen_sysctl_t) u_sysctl);

extern long
arch_do_sysctl(
struct xen_sysctl *sysctl,
- XEN_GUEST_HANDLE(xen_sysctl_t) u_sysctl);
+ XEN_GUEST_HANDLE_PARAM(xen_sysctl_t) u_sysctl);

extern long
do_platform_op(
- XEN_GUEST_HANDLE(xen_platform_op_t) u_xenpf_op);
+ XEN_GUEST_HANDLE_PARAM(xen_platform_op_t) u_xenpf_op);

/*
* To allow safe resume of do_memory_op() after preemption, we need to know
@@ -64,11 +64,11 @@ do_platform_op(
extern long
do_memory_op(
unsigned long cmd,
- XEN_GUEST_HANDLE(void) arg);
+ XEN_GUEST_HANDLE_PARAM(void) arg);

extern long
do_multicall(
- XEN_GUEST_HANDLE(multicall_entry_t) call_list,
+ XEN_GUEST_HANDLE_PARAM(multicall_entry_t) call_list,
unsigned int nr_calls);

extern long
@@ -77,23 +77,23 @@ do_set_timer_op(

extern long
do_event_channel_op(
- int cmd, XEN_GUEST_HANDLE(void) arg);
+ int cmd, XEN_GUEST_HANDLE_PARAM(void) arg);

extern long
do_xen_version(
int cmd,
- XEN_GUEST_HANDLE(void) arg);
+ XEN_GUEST_HANDLE_PARAM(void) arg);

extern long
do_console_io(
int cmd,
int count,
- XEN_GUEST_HANDLE(char) buffer);
+ XEN_GUEST_HANDLE_PARAM(char) buffer);

extern long
do_grant_table_op(
unsigned int cmd,
- XEN_GUEST_HANDLE(void) uop,
+ XEN_GUEST_HANDLE_PARAM(void) uop,
unsigned int count);

extern long
@@ -105,72 +105,72 @@ extern long
do_vcpu_op(
int cmd,
int vcpuid,
- XEN_GUEST_HANDLE(void) arg);
+ XEN_GUEST_HANDLE_PARAM(void) arg);

struct vcpu;
extern long
arch_do_vcpu_op(int cmd,
struct vcpu *v,
- XEN_GUEST_HANDLE(void) arg);
+ XEN_GUEST_HANDLE_PARAM(void) arg);

extern long
do_nmi_op(
unsigned int cmd,
- XEN_GUEST_HANDLE(void) arg);
+ XEN_GUEST_HANDLE_PARAM(void) arg);

extern long
do_hvm_op(
unsigned long op,
- XEN_GUEST_HANDLE(void) arg);
+ XEN_GUEST_HANDLE_PARAM(void) arg);

extern long
do_kexec_op(
unsigned long op,
int arg1,
- XEN_GUEST_HANDLE(void) arg);
+ XEN_GUEST_HANDLE_PARAM(void) arg);

extern long
do_xsm_op(
- XEN_GUEST_HANDLE(xsm_op_t) u_xsm_op);
+ XEN_GUEST_HANDLE_PARAM(xsm_op_t) u_xsm_op);

extern long
do_tmem_op(
- XEN_GUEST_HANDLE(tmem_op_t) uops);
+ XEN_GUEST_HANDLE_PARAM(tmem_op_t) uops);

extern int
-do_xenoprof_op(int op, XEN_GUEST_HANDLE(void) arg);
+do_xenoprof_op(int op, XEN_GUEST_HANDLE_PARAM(void) arg);

#ifdef CONFIG_COMPAT

extern int
compat_memory_op(
unsigned int cmd,
- XEN_GUEST_HANDLE(void) arg);
+ XEN_GUEST_HANDLE_PARAM(void) arg);

extern int
compat_grant_table_op(
unsigned int cmd,
- XEN_GUEST_HANDLE(void) uop,
+ XEN_GUEST_HANDLE_PARAM(void) uop,
unsigned int count);

extern int
compat_vcpu_op(
int cmd,
int vcpuid,
- XEN_GUEST_HANDLE(void) arg);
+ XEN_GUEST_HANDLE_PARAM(void) arg);

extern int
-compat_xenoprof_op(int op, XEN_GUEST_HANDLE(void) arg);
+compat_xenoprof_op(int op, XEN_GUEST_HANDLE_PARAM(void) arg);

extern int
compat_xen_version(
int cmd,
- XEN_GUEST_HANDLE(void) arg);
+ XEN_GUEST_HANDLE_PARAM(void) arg);

extern int
compat_sched_op(
int cmd,
- XEN_GUEST_HANDLE(void) arg);
+ XEN_GUEST_HANDLE_PARAM(void) arg);

extern int
compat_set_timer_op(
diff --git a/xen/include/xen/iommu.h b/xen/include/xen/iommu.h
index 6f7fbf7..bd19e23 100644
--- a/xen/include/xen/iommu.h
+++ b/xen/include/xen/iommu.h
@@ -155,7 +155,7 @@ void iommu_crash_shutdown(void);
void iommu_set_dom0_mapping(struct domain *d);
void iommu_share_p2m_table(struct domain *d);

-int iommu_do_domctl(struct xen_domctl *, XEN_GUEST_HANDLE(xen_domctl_t));
+int iommu_do_domctl(struct xen_domctl *, XEN_GUEST_HANDLE_PARAM(xen_domctl_t));

void iommu_iotlb_flush(struct domain *d, unsigned long gfn, unsigned int page_count);
void iommu_iotlb_flush_all(struct domain *d);
diff --git a/xen/include/xen/tmem_xen.h b/xen/include/xen/tmem_xen.h
index 4a35760..2e7199a 100644
--- a/xen/include/xen/tmem_xen.h
+++ b/xen/include/xen/tmem_xen.h
@@ -448,7 +448,7 @@ static inline void tmh_tze_copy_from_pfp(void *tva, pfp_t *pfp, pagesize_t len)
typedef XEN_GUEST_HANDLE(void) cli_mfn_t;
typedef XEN_GUEST_HANDLE(char) cli_va_t;
*/
-typedef XEN_GUEST_HANDLE(tmem_op_t) tmem_cli_op_t;
+typedef XEN_GUEST_HANDLE_PARAM(tmem_op_t) tmem_cli_op_t;

static inline int tmh_get_tmemop_from_client(tmem_op_t *op, tmem_cli_op_t uops)
{
diff --git a/xen/include/xsm/xsm.h b/xen/include/xsm/xsm.h
index bef79df..3e4a47f 100644
--- a/xen/include/xsm/xsm.h
+++ b/xen/include/xsm/xsm.h
@@ -139,7 +139,7 @@ struct xsm_operations {
int (*cpupool_op)(void);
int (*sched_op)(void);

- long (*__do_xsm_op) (XEN_GUEST_HANDLE(xsm_op_t) op);
+ long (*__do_xsm_op) (XEN_GUEST_HANDLE_PARAM(xsm_op_t) op);

#ifdef CONFIG_X86
int (*shadow_control) (struct domain *d, uint32_t op);
@@ -585,7 +585,7 @@ static inline int xsm_sched_op(void)
return xsm_call(sched_op());
}

-static inline long __do_xsm_op (XEN_GUEST_HANDLE(xsm_op_t) op)
+static inline long __do_xsm_op (XEN_GUEST_HANDLE_PARAM(xsm_op_t) op)
{
#ifdef XSM_ENABLE
return xsm_ops->__do_xsm_op(op);
diff --git a/xen/xsm/dummy.c b/xen/xsm/dummy.c
index 7027ee7..5ef6529 100644
--- a/xen/xsm/dummy.c
+++ b/xen/xsm/dummy.c
@@ -365,7 +365,7 @@ static int dummy_sched_op (void)
return 0;
}

-static long dummy___do_xsm_op(XEN_GUEST_HANDLE(xsm_op_t) op)
+static long dummy___do_xsm_op(XEN_GUEST_HANDLE_PARAM(xsm_op_t) op)
{
return -ENOSYS;
}
diff --git a/xen/xsm/flask/flask_op.c b/xen/xsm/flask/flask_op.c
index bd4db37..23e7d34 100644
--- a/xen/xsm/flask/flask_op.c
+++ b/xen/xsm/flask/flask_op.c
@@ -71,7 +71,7 @@ static int domain_has_security(struct domain *d, u32 perms)
perms, NULL);
}

-static int flask_copyin_string(XEN_GUEST_HANDLE(char) u_buf, char **buf, uint32_t size)
+static int flask_copyin_string(XEN_GUEST_HANDLE_PARAM(char) u_buf, char **buf, uint32_t size)
{
char *tmp = xmalloc_bytes(size + 1);
if ( !tmp )
@@ -573,7 +573,7 @@ static int flask_get_peer_sid(struct xen_flask_peersid *arg)
return rv;
}

-long do_flask_op(XEN_GUEST_HANDLE(xsm_op_t) u_flask_op)
+long do_flask_op(XEN_GUEST_HANDLE_PARAM(xsm_op_t) u_flask_op)
{
xen_flask_op_t op;
int rv;
diff --git a/xen/xsm/flask/hooks.c b/xen/xsm/flask/hooks.c
index 23b84f3..0fc299c 100644
--- a/xen/xsm/flask/hooks.c
+++ b/xen/xsm/flask/hooks.c
@@ -1553,7 +1553,7 @@ static int flask_vcpuextstate (struct domain *d, uint32_t cmd)
}
#endif

-long do_flask_op(XEN_GUEST_HANDLE(xsm_op_t) u_flask_op);
+long do_flask_op(XEN_GUEST_HANDLE_PARAM(xsm_op_t) u_flask_op);

static struct xsm_operations flask_ops = {
.security_domaininfo = flask_security_domaininfo,
diff --git a/xen/xsm/xsm_core.c b/xen/xsm/xsm_core.c
index 96c8669..46287cb 100644
--- a/xen/xsm/xsm_core.c
+++ b/xen/xsm/xsm_core.c
@@ -111,7 +111,7 @@ int unregister_xsm(struct xsm_operations *ops)

#endif

-long do_xsm_op (XEN_GUEST_HANDLE(xsm_op_t) op)
+long do_xsm_op (XEN_GUEST_HANDLE_PARAM(xsm_op_t) op)
{
return __do_xsm_op(op);
}
--
1.7.2.5


_______________________________________________
Xen-devel mailing list
Xen-devel [at] lists
http://lists.xen.org/xen-devel


JBeulich at suse

Aug 10, 2012, 6:23 AM

Post #2 of 12 (126 views)
Permalink
Re: [PATCH v2 5/5] xen: replace XEN_GUEST_HANDLE with XEN_GUEST_HANDLE_PARAM when appropriate [In reply to]

>>> On 10.08.12 at 14:10, Stefano Stabellini <stefano.stabellini [at] eu> wrote:
> Note: these changes don't make any difference on x86 and ia64.

I can see your point in doing this in the x86 files nevertheless for
cosmetic/consistency reasons, but I'm really uncertain about this
uglification when it's not really necessary (plus it would shrink the
patch quite a bit).

> Replace XEN_GUEST_HANDLE with XEN_GUEST_HANDLE_PARAM when it is used as
> an hypercall argument.

I didn't look in too close detail, as this isn't intended for the main
branch yet, but I still wasn't able to spot any conversion method
in at least one direction (so that internally these can be passed
around irrespective of their origin).

Jan


_______________________________________________
Xen-devel mailing list
Xen-devel [at] lists
http://lists.xen.org/xen-devel


stefano.stabellini at eu

Aug 13, 2012, 4:24 AM

Post #3 of 12 (122 views)
Permalink
Re: [PATCH v2 5/5] xen: replace XEN_GUEST_HANDLE with XEN_GUEST_HANDLE_PARAM when appropriate [In reply to]

On Fri, 10 Aug 2012, Jan Beulich wrote:
> >>> On 10.08.12 at 14:10, Stefano Stabellini <stefano.stabellini [at] eu> wrote:
> > Note: these changes don't make any difference on x86 and ia64.
>
> I can see your point in doing this in the x86 files nevertheless for
> cosmetic/consistency reasons, but I'm really uncertain about this
> uglification when it's not really necessary (plus it would shrink the
> patch quite a bit).

I don't have a strong opinion on this.
However it is going to be difficult to enforce XEN_GUEST_HANDLE_PARAM on
parameters anyway (because we don't have a simple way to make it fail at
compile time), if we make the change only in xen/commons, it is going to be
even harder.


> > Replace XEN_GUEST_HANDLE with XEN_GUEST_HANDLE_PARAM when it is used as
> > an hypercall argument.
>
> I didn't look in too close detail, as this isn't intended for the main
> branch yet, but I still wasn't able to spot any conversion method
> in at least one direction (so that internally these can be passed
> around irrespective of their origin).

I thought that guest_handle_cast was supposed to be used to cast
XEN_GUEST_HANDLE_PARAMs into proper structs.
Also copy_from_guest can be used to get the struct from memory.

On the other hand if you mean casting a XEN_GUEST_HANDLE_PARAM into a
XEN_GUEST_HANDLE to pass it to other internal functions, I don't think
there is any point in that because the other internal functions should
also have XEN_GUEST_HANDLE_PARAMs as parameters.

_______________________________________________
Xen-devel mailing list
Xen-devel [at] lists
http://lists.xen.org/xen-devel


keir at xen

Aug 13, 2012, 4:41 AM

Post #4 of 12 (121 views)
Permalink
Re: [PATCH v2 5/5] xen: replace XEN_GUEST_HANDLE with XEN_GUEST_HANDLE_PARAM when appropriate [In reply to]

On 13/08/2012 12:24, "Stefano Stabellini" <Stefano.Stabellini [at] eu>
wrote:

>> I can see your point in doing this in the x86 files nevertheless for
>> cosmetic/consistency reasons, but I'm really uncertain about this
>> uglification when it's not really necessary (plus it would shrink the
>> patch quite a bit).
>
> I don't have a strong opinion on this.
> However it is going to be difficult to enforce XEN_GUEST_HANDLE_PARAM on
> parameters anyway (because we don't have a simple way to make it fail at
> compile time), if we make the change only in xen/commons, it is going to be
> even harder.

It has to be done everywhere, if at all. Else it's an ugly hack job.



_______________________________________________
Xen-devel mailing list
Xen-devel [at] lists
http://lists.xen.org/xen-devel


JBeulich at suse

Aug 13, 2012, 5:04 AM

Post #5 of 12 (121 views)
Permalink
Re: [PATCH v2 5/5] xen: replace XEN_GUEST_HANDLE with XEN_GUEST_HANDLE_PARAM when appropriate [In reply to]

>>> On 13.08.12 at 13:24, Stefano Stabellini <stefano.stabellini [at] eu> wrote:
> On the other hand if you mean casting a XEN_GUEST_HANDLE_PARAM into a
> XEN_GUEST_HANDLE to pass it to other internal functions, I don't think
> there is any point in that because the other internal functions should
> also have XEN_GUEST_HANDLE_PARAMs as parameters.

So you obviously need a cast from "normal" to _PARAM (so that
you can pass embedded fields to functions).

Jan


_______________________________________________
Xen-devel mailing list
Xen-devel [at] lists
http://lists.xen.org/xen-devel


stefano.stabellini at eu

Aug 14, 2012, 3:38 AM

Post #6 of 12 (121 views)
Permalink
Re: [PATCH v2 5/5] xen: replace XEN_GUEST_HANDLE with XEN_GUEST_HANDLE_PARAM when appropriate [In reply to]

On Mon, 13 Aug 2012, Jan Beulich wrote:
> >>> On 13.08.12 at 13:24, Stefano Stabellini <stefano.stabellini [at] eu> wrote:
> > On the other hand if you mean casting a XEN_GUEST_HANDLE_PARAM into a
> > XEN_GUEST_HANDLE to pass it to other internal functions, I don't think
> > there is any point in that because the other internal functions should
> > also have XEN_GUEST_HANDLE_PARAMs as parameters.
>
> So you obviously need a cast from "normal" to _PARAM (so that
> you can pass embedded fields to functions).

In practice embedded fields are in guest memory, so the first thing Xen
does is calling copy_from_guest and work with the struct pointer
directly from that point on.

However I do see how a function like that might make the distinction
between XEN_GUEST_HANDLE and XEN_GUEST_HANDLE_PARAMs clearer, so I'll
add one.

The implementation is going to identical to guest_handle_cast though.

_______________________________________________
Xen-devel mailing list
Xen-devel [at] lists
http://lists.xen.org/xen-devel


stefano.stabellini at eu

Aug 14, 2012, 3:40 AM

Post #7 of 12 (118 views)
Permalink
Re: [PATCH v2 5/5] xen: replace XEN_GUEST_HANDLE with XEN_GUEST_HANDLE_PARAM when appropriate [In reply to]

On Tue, 14 Aug 2012, Stefano Stabellini wrote:
> On Mon, 13 Aug 2012, Jan Beulich wrote:
> > >>> On 13.08.12 at 13:24, Stefano Stabellini <stefano.stabellini [at] eu> wrote:
> > > On the other hand if you mean casting a XEN_GUEST_HANDLE_PARAM into a
> > > XEN_GUEST_HANDLE to pass it to other internal functions, I don't think
> > > there is any point in that because the other internal functions should
> > > also have XEN_GUEST_HANDLE_PARAMs as parameters.
> >
> > So you obviously need a cast from "normal" to _PARAM (so that
> > you can pass embedded fields to functions).
>
> In practice embedded fields are in guest memory, so the first thing Xen
> does is calling copy_from_guest and work with the struct pointer
> directly from that point on.
>
> However I do see how a function like that might make the distinction
> between XEN_GUEST_HANDLE and XEN_GUEST_HANDLE_PARAMs clearer, so I'll
> add one.
>
> The implementation is going to identical to guest_handle_cast though.
>

Actually it is probably better to add a good comment on top of
guest_handle_cast explaining that can be used with both XEN_GUEST_HANDLE
or XEN_GUEST_HANDLE_PARAM as paramters.

_______________________________________________
Xen-devel mailing list
Xen-devel [at] lists
http://lists.xen.org/xen-devel


JBeulich at suse

Aug 14, 2012, 4:55 AM

Post #8 of 12 (119 views)
Permalink
Re: [PATCH v2 5/5] xen: replace XEN_GUEST_HANDLE with XEN_GUEST_HANDLE_PARAM when appropriate [In reply to]

>>> On 14.08.12 at 12:38, Stefano Stabellini <stefano.stabellini [at] eu>
wrote:
> On Mon, 13 Aug 2012, Jan Beulich wrote:
>> >>> On 13.08.12 at 13:24, Stefano Stabellini <stefano.stabellini [at] eu>
> wrote:
>> > On the other hand if you mean casting a XEN_GUEST_HANDLE_PARAM into a
>> > XEN_GUEST_HANDLE to pass it to other internal functions, I don't think
>> > there is any point in that because the other internal functions should
>> > also have XEN_GUEST_HANDLE_PARAMs as parameters.
>>
>> So you obviously need a cast from "normal" to _PARAM (so that
>> you can pass embedded fields to functions).
>
> In practice embedded fields are in guest memory, so the first thing Xen
> does is calling copy_from_guest and work with the struct pointer
> directly from that point on.

Perhaps we have a different understanding of embedded fields:
I'm thinking of structure field having XEN_GUEST_HANDLE() type.
An example would be struct mmuext_op's vcpumask field, which
is being passed to vcpumask_to_pcpumask(). This must remain to
be possible (and not just in x86-specific code, where it's mere luck
that both are really identical).

Jan



_______________________________________________
Xen-devel mailing list
Xen-devel [at] lists
http://lists.xen.org/xen-devel


stefano.stabellini at eu

Aug 14, 2012, 5:56 AM

Post #9 of 12 (116 views)
Permalink
Re: [PATCH v2 5/5] xen: replace XEN_GUEST_HANDLE with XEN_GUEST_HANDLE_PARAM when appropriate [In reply to]

On Tue, 14 Aug 2012, Jan Beulich wrote:
> >>> On 14.08.12 at 12:38, Stefano Stabellini <stefano.stabellini [at] eu>
> wrote:
> > On Mon, 13 Aug 2012, Jan Beulich wrote:
> >> >>> On 13.08.12 at 13:24, Stefano Stabellini <stefano.stabellini [at] eu>
> > wrote:
> >> > On the other hand if you mean casting a XEN_GUEST_HANDLE_PARAM into a
> >> > XEN_GUEST_HANDLE to pass it to other internal functions, I don't think
> >> > there is any point in that because the other internal functions should
> >> > also have XEN_GUEST_HANDLE_PARAMs as parameters.
> >>
> >> So you obviously need a cast from "normal" to _PARAM (so that
> >> you can pass embedded fields to functions).
> >
> > In practice embedded fields are in guest memory, so the first thing Xen
> > does is calling copy_from_guest and work with the struct pointer
> > directly from that point on.
>
> Perhaps we have a different understanding of embedded fields:
> I'm thinking of structure field having XEN_GUEST_HANDLE() type.
> An example would be struct mmuext_op's vcpumask field, which
> is being passed to vcpumask_to_pcpumask(). This must remain to
> be possible (and not just in x86-specific code, where it's mere luck
> that both are really identical).

Thanks for the concrete example; glancing through the common code I
didn't find any examples like this.
As I wrote in the follow up email, guest_handle_cast is just what we
need:

diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c
index 4d72700..70ffa58 100644
--- a/xen/arch/x86/mm.c
+++ b/xen/arch/x86/mm.c
@@ -3198,7 +3198,9 @@ int do_mmuext_op(
{
cpumask_t pmask;

- if ( unlikely(vcpumask_to_pcpumask(d, op.arg2.vcpumask, &pmask)) )
+ if ( unlikely(vcpumask_to_pcpumask(d,
+ guest_handle_cast(op.arg2.vcpumask, const_void),
+ &pmask)) )
{
okay = 0;
break;

Unfortuantely that means that I have missed some substitutions from my
original "replace XEN_GUEST_HANDLE with XEN_GUEST_HANDLE_PARAM when
appropriate" patch.
I'll try to catch them in the next version.

_______________________________________________
Xen-devel mailing list
Xen-devel [at] lists
http://lists.xen.org/xen-devel


JBeulich at suse

Aug 14, 2012, 6:39 AM

Post #10 of 12 (118 views)
Permalink
Re: [PATCH v2 5/5] xen: replace XEN_GUEST_HANDLE with XEN_GUEST_HANDLE_PARAM when appropriate [In reply to]

>>> On 14.08.12 at 14:56, Stefano Stabellini <stefano.stabellini [at] eu> wrote:
> On Tue, 14 Aug 2012, Jan Beulich wrote:
>> Perhaps we have a different understanding of embedded fields:
>> I'm thinking of structure field having XEN_GUEST_HANDLE() type.
>> An example would be struct mmuext_op's vcpumask field, which
>> is being passed to vcpumask_to_pcpumask(). This must remain to
>> be possible (and not just in x86-specific code, where it's mere luck
>> that both are really identical).
>
> Thanks for the concrete example; glancing through the common code I
> didn't find any examples like this.
> As I wrote in the follow up email, guest_handle_cast is just what we
> need:
>
> diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c
> index 4d72700..70ffa58 100644
> --- a/xen/arch/x86/mm.c
> +++ b/xen/arch/x86/mm.c
> @@ -3198,7 +3198,9 @@ int do_mmuext_op(
> {
> cpumask_t pmask;
>
> - if ( unlikely(vcpumask_to_pcpumask(d, op.arg2.vcpumask, &pmask)) )
> + if ( unlikely(vcpumask_to_pcpumask(d,
> + guest_handle_cast(op.arg2.vcpumask, const_void),

No, the conversion should explicitly _not_ require specification
of the type, i.e. this should not be a true cast. Type safety
(checked by the compiler) can only be achieved if no intermediate
cast is involved.

Jan

> + &pmask)) )
> {
> okay = 0;
> break;



_______________________________________________
Xen-devel mailing list
Xen-devel [at] lists
http://lists.xen.org/xen-devel


stefano.stabellini at eu

Aug 14, 2012, 8:42 AM

Post #11 of 12 (115 views)
Permalink
Re: [PATCH v2 5/5] xen: replace XEN_GUEST_HANDLE with XEN_GUEST_HANDLE_PARAM when appropriate [In reply to]

On Tue, 14 Aug 2012, Jan Beulich wrote:
> >>> On 14.08.12 at 14:56, Stefano Stabellini <stefano.stabellini [at] eu> wrote:
> > On Tue, 14 Aug 2012, Jan Beulich wrote:
> >> Perhaps we have a different understanding of embedded fields:
> >> I'm thinking of structure field having XEN_GUEST_HANDLE() type.
> >> An example would be struct mmuext_op's vcpumask field, which
> >> is being passed to vcpumask_to_pcpumask(). This must remain to
> >> be possible (and not just in x86-specific code, where it's mere luck
> >> that both are really identical).
> >
> > Thanks for the concrete example; glancing through the common code I
> > didn't find any examples like this.
> > As I wrote in the follow up email, guest_handle_cast is just what we
> > need:
> >
> > diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c
> > index 4d72700..70ffa58 100644
> > --- a/xen/arch/x86/mm.c
> > +++ b/xen/arch/x86/mm.c
> > @@ -3198,7 +3198,9 @@ int do_mmuext_op(
> > {
> > cpumask_t pmask;
> >
> > - if ( unlikely(vcpumask_to_pcpumask(d, op.arg2.vcpumask, &pmask)) )
> > + if ( unlikely(vcpumask_to_pcpumask(d,
> > + guest_handle_cast(op.arg2.vcpumask, const_void),
>
> No, the conversion should explicitly _not_ require specification
> of the type, i.e. this should not be a true cast. Type safety
> (checked by the compiler) can only be achieved if no intermediate
> cast is involved.

guest_handle_cast is implemented as:

#define guest_handle_cast(hnd, type) ({ \
type *_x = (hnd).p; \
(XEN_GUEST_HANDLE_PARAM(type)) { _x }; \
})

as you can see there is actually no explicit cast involved.
If you specify the wrong type the compiler would fail at:

type *_x = (hnd).p;

I think that having to specify the type as parameter is acceptable if it
makes up for simpler code over all.

The alternative would be something like the following:

diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c
index 4d72700..e6685c7 100644
--- a/xen/arch/x86/mm.c
+++ b/xen/arch/x86/mm.c
@@ -3197,8 +3197,11 @@ int do_mmuext_op(
case MMUEXT_INVLPG_MULTI:
{
cpumask_t pmask;
+ XEN_GUEST_HANDLE_PARAM(const_void) param;

- if ( unlikely(vcpumask_to_pcpumask(d, op.arg2.vcpumask, &pmask)) )
+ set_xen_guest_handle(param, op.arg2.vcpumask.p);
+
+ if ( unlikely(vcpumask_to_pcpumask(d, param, &pmask)) )
{
okay = 0;
break;

but I think it makes the code worse.

_______________________________________________
Xen-devel mailing list
Xen-devel [at] lists
http://lists.xen.org/xen-devel


JBeulich at suse

Aug 14, 2012, 9:14 AM

Post #12 of 12 (121 views)
Permalink
Re: [PATCH v2 5/5] xen: replace XEN_GUEST_HANDLE with XEN_GUEST_HANDLE_PARAM when appropriate [In reply to]

>>> On 14.08.12 at 17:42, Stefano Stabellini <stefano.stabellini [at] eu>
wrote:
> On Tue, 14 Aug 2012, Jan Beulich wrote:
>> >>> On 14.08.12 at 14:56, Stefano Stabellini <stefano.stabellini [at] eu>
> wrote:
>> > On Tue, 14 Aug 2012, Jan Beulich wrote:
>> >> Perhaps we have a different understanding of embedded fields:
>> >> I'm thinking of structure field having XEN_GUEST_HANDLE() type.
>> >> An example would be struct mmuext_op's vcpumask field, which
>> >> is being passed to vcpumask_to_pcpumask(). This must remain to
>> >> be possible (and not just in x86-specific code, where it's mere luck
>> >> that both are really identical).
>> >
>> > Thanks for the concrete example; glancing through the common code I
>> > didn't find any examples like this.
>> > As I wrote in the follow up email, guest_handle_cast is just what we
>> > need:
>> >
>> > diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c
>> > index 4d72700..70ffa58 100644
>> > --- a/xen/arch/x86/mm.c
>> > +++ b/xen/arch/x86/mm.c
>> > @@ -3198,7 +3198,9 @@ int do_mmuext_op(
>> > {
>> > cpumask_t pmask;
>> >
>> > - if ( unlikely(vcpumask_to_pcpumask(d, op.arg2.vcpumask, &pmask))
> )
>> > + if ( unlikely(vcpumask_to_pcpumask(d,
>> > + guest_handle_cast(op.arg2.vcpumask,
> const_void),
>>
>> No, the conversion should explicitly _not_ require specification
>> of the type, i.e. this should not be a true cast. Type safety
>> (checked by the compiler) can only be achieved if no intermediate
>> cast is involved.
>
> guest_handle_cast is implemented as:
>
> #define guest_handle_cast(hnd, type) ({ \
> type *_x = (hnd).p; \
> (XEN_GUEST_HANDLE_PARAM(type)) { _x }; \
> })
>
> as you can see there is actually no explicit cast involved.
> If you specify the wrong type the compiler would fail at:
>
> type *_x = (hnd).p;

Except if, as in your example, "type" is (a qualified version of)
"void"...

> I think that having to specify the type as parameter is acceptable if it
> makes up for simpler code over all.
>
> The alternative would be something like the following:
>
> diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c
> index 4d72700..e6685c7 100644
> --- a/xen/arch/x86/mm.c
> +++ b/xen/arch/x86/mm.c
> @@ -3197,8 +3197,11 @@ int do_mmuext_op(
> case MMUEXT_INVLPG_MULTI:
> {
> cpumask_t pmask;
> + XEN_GUEST_HANDLE_PARAM(const_void) param;
>
> - if ( unlikely(vcpumask_to_pcpumask(d, op.arg2.vcpumask, &pmask)) )
> + set_xen_guest_handle(param, op.arg2.vcpumask.p);
> +
> + if ( unlikely(vcpumask_to_pcpumask(d, param, &pmask)) )

No, I would expect this to be possible without an intermediate
variable (i.e. similar to the guest_handle_cast() approach, just
without specifying the type). And in no case should there be
an open coded access to the "p" member.

> {
> okay = 0;
> break;
>
> but I think it makes the code worse.

Agreed, this variant definitely looked worse.

Jan


_______________________________________________
Xen-devel mailing list
Xen-devel [at] lists
http://lists.xen.org/xen-devel

Xen devel RSS feed   Index | Next | Previous | View Threaded
 
 


Interested in having your list archived? Contact Gossamer Threads
 
  Web Applications & Managed Hosting Powered by Gossamer Threads Inc.