15 messages in com.xensource.lists.xen-devel[Xen-devel] [rfc] [patch] more 'long'...
FromSent OnAttachments
Keir Fraser28 Jun 2006 14:01 
Hollis Blanchard28 Jun 2006 14:02 
Chris Wright28 Jun 2006 14:09 
Hollis Blanchard28 Jun 2006 14:10 
Hollis Blanchard28 Jun 2006 14:18 
Hollis Blanchard28 Jun 2006 14:21 
Chris Wright28 Jun 2006 14:36 
Hollis Blanchard28 Jun 2006 14:58 
Ross Maxfield28 Jun 2006 15:41 
Chris Wright28 Jun 2006 16:04 
Steve Ofsthun29 Jun 2006 07:37 
Chris Wright29 Jun 2006 10:01 
Steve Ofsthun29 Jun 2006 10:55 
Hollis Blanchard29 Jun 2006 11:14 
Steve Ofsthun29 Jun 2006 14:03 
Subject:[Xen-devel] [rfc] [patch] more 'long' in the hypervisor interface
From:Hollis Blanchard (holl@us.ibm.com)
Date:06/28/2006 02:02:57 PM
List:com.xensource.lists.xen-devel

Hi Keir, we've come across some more users of 'long' in the hypervisor interface: xen/include/public/memory.h. Unlike the dom0_ops, we can't just change these to be 64 bits because 32-bit kernels use these structures for the balloon driver.

I would like to create a new type, say "legacy_ulong_t", to cover these cases and future instances we'll undoubtedly come across. What do you think?

Signed-off-by: Hollis Blanchard <holl@us.ibm.com>

diff -r 10db0f8c710d xen/include/public/arch-x86_64.h --- a/xen/include/public/arch-x86_64.h Wed Jun 28 15:37:45 2006 -0400 +++ b/xen/include/public/arch-x86_64.h Wed Jun 28 16:02:21 2006 -0500 @@ -104,6 +104,8 @@ DEFINE_XEN_GUEST_HANDLE(xen_pfn_t); #define MAX_VIRT_CPUS 32

#ifndef __ASSEMBLY__ + +typedef unsigned long legacy_ulong_t;

/* * int HYPERVISOR_set_segment_base(unsigned int which, unsigned long base) diff -r 10db0f8c710d xen/include/public/memory.h --- a/xen/include/public/memory.h Wed Jun 28 15:37:45 2006 -0400 +++ b/xen/include/public/memory.h Wed Jun 28 16:02:21 2006 -0500 @@ -32,7 +32,7 @@ struct xen_memory_reservation { XEN_GUEST_HANDLE(xen_pfn_t) extent_start;

/* Number of extents, and size/alignment of each (2^extent_order pages). */ - unsigned long nr_extents; + legacy_ulong_t nr_extents; unsigned int extent_order;

/* @@ -90,7 +90,7 @@ struct xen_memory_exchange { * command will be non-zero. * 5. THIS FIELD MUST BE INITIALISED TO ZERO BY THE CALLER! */ - unsigned long nr_exchanged; + legacy_ulong_t nr_exchanged; }; typedef struct xen_memory_exchange xen_memory_exchange_t; DEFINE_XEN_GUEST_HANDLE(xen_memory_exchange_t); @@ -148,8 +148,8 @@ DEFINE_XEN_GUEST_HANDLE(xen_machphys_mfn */ #define XENMEM_machphys_mapping 12 struct xen_machphys_mapping { - unsigned long v_start, v_end; /* Start and end virtual addresses. */ - unsigned long max_mfn; /* Maximum MFN that can be looked up. */ + legacy_ulong_t v_start, v_end; /* Start and end virtual addresses. */ + legacy_ulong_t max_mfn; /* Maximum MFN that can be looked up. */ }; typedef struct xen_machphys_mapping xen_machphys_mapping_t; DEFINE_XEN_GUEST_HANDLE(xen_machphys_mapping_t); @@ -170,7 +170,7 @@ struct xen_add_to_physmap { unsigned int space;

/* Index into source mapping space. */ - unsigned long idx; + legacy_ulong_t idx;

/* GPFN where the source mapping page should appear. */ xen_pfn_t gpfn; @@ -188,7 +188,7 @@ struct xen_translate_gpfn_list { domid_t domid;

/* Length of list. */ - unsigned long nr_gpfns; + legacy_ulong_t nr_gpfns;

/* List of GPFNs to translate. */ XEN_GUEST_HANDLE(xen_pfn_t) gpfn_list;