Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit bd3f79b7 authored by Stefano Stabellini's avatar Stefano Stabellini Committed by Konrad Rzeszutek Wilk
Browse files

xen: Introduce xen_pfn_t for pfn and mfn types



All the original Xen headers have xen_pfn_t as mfn and pfn type, however
when they have been imported in Linux, xen_pfn_t has been replaced with
unsigned long. That might work for x86 and ia64 but it does not for arm.
Bring back xen_pfn_t and let each architecture define xen_pfn_t as they
see fit.

Signed-off-by: default avatarStefano Stabellini <stefano.stabellini@eu.citrix.com>
Acked-by: default avatarKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Signed-off-by: default avatarKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
parent a8636c0b
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -67,6 +67,10 @@
#define set_xen_guest_handle(hnd, val)	do { (hnd).p = val; } while (0)

#ifndef __ASSEMBLY__
/* Explicitly size integers that represent pfns in the public interface
 * with Xen so that we could have one ABI that works for 32 and 64 bit
 * guests. */
typedef unsigned long xen_pfn_t;
/* Guest handles for primitive C types. */
__DEFINE_GUEST_HANDLE(uchar, unsigned char);
__DEFINE_GUEST_HANDLE(uint, unsigned int);
@@ -79,7 +83,6 @@ DEFINE_GUEST_HANDLE(void);
DEFINE_GUEST_HANDLE(uint64_t);
DEFINE_GUEST_HANDLE(uint32_t);

typedef unsigned long xen_pfn_t;
DEFINE_GUEST_HANDLE(xen_pfn_t);
#define PRI_xen_pfn	"lx"
#endif
+5 −0
Original line number Diff line number Diff line
@@ -47,6 +47,10 @@
#endif

#ifndef __ASSEMBLY__
/* Explicitly size integers that represent pfns in the public interface
 * with Xen so that on ARM we can have one ABI that works for 32 and 64
 * bit guests. */
typedef unsigned long xen_pfn_t;
/* Guest handles for primitive C types. */
__DEFINE_GUEST_HANDLE(uchar, unsigned char);
__DEFINE_GUEST_HANDLE(uint,  unsigned int);
@@ -57,6 +61,7 @@ DEFINE_GUEST_HANDLE(long);
DEFINE_GUEST_HANDLE(void);
DEFINE_GUEST_HANDLE(uint64_t);
DEFINE_GUEST_HANDLE(uint32_t);
DEFINE_GUEST_HANDLE(xen_pfn_t);
#endif

#ifndef HYPERVISOR_VIRT_START
+2 −2
Original line number Diff line number Diff line
@@ -338,7 +338,7 @@ DEFINE_GUEST_HANDLE_STRUCT(gnttab_dump_table);
#define GNTTABOP_transfer                4
struct gnttab_transfer {
    /* IN parameters. */
    unsigned long mfn;
    xen_pfn_t mfn;
    domid_t       domid;
    grant_ref_t   ref;
    /* OUT parameters. */
@@ -375,7 +375,7 @@ struct gnttab_copy {
	struct {
		union {
			grant_ref_t ref;
			unsigned long   gmfn;
			xen_pfn_t   gmfn;
		} u;
		domid_t  domid;
		uint16_t offset;
+3 −3
Original line number Diff line number Diff line
@@ -31,7 +31,7 @@ struct xen_memory_reservation {
     *   OUT: GMFN bases of extents that were allocated
     *   (NB. This command also updates the mach_to_phys translation table)
     */
    GUEST_HANDLE(ulong) extent_start;
    GUEST_HANDLE(xen_pfn_t) extent_start;

    /* Number of extents, and size/alignment of each (2^extent_order pages). */
    unsigned long  nr_extents;
@@ -130,7 +130,7 @@ struct xen_machphys_mfn_list {
     * any large discontiguities in the machine address space, 2MB gaps in
     * the machphys table will be represented by an MFN base of zero.
     */
    GUEST_HANDLE(ulong) extent_start;
    GUEST_HANDLE(xen_pfn_t) extent_start;

    /*
     * Number of extents written to the above array. This will be smaller
@@ -175,7 +175,7 @@ struct xen_add_to_physmap {
    unsigned long idx;

    /* GPFN where the source mapping page should appear. */
    unsigned long gpfn;
    xen_pfn_t gpfn;
};
DEFINE_GUEST_HANDLE_STRUCT(xen_add_to_physmap);

+2 −2
Original line number Diff line number Diff line
@@ -54,7 +54,7 @@ DEFINE_GUEST_HANDLE_STRUCT(xenpf_settime_t);
#define XENPF_add_memtype         31
struct xenpf_add_memtype {
	/* IN variables. */
	unsigned long mfn;
	xen_pfn_t mfn;
	uint64_t nr_mfns;
	uint32_t type;
	/* OUT variables. */
@@ -84,7 +84,7 @@ struct xenpf_read_memtype {
	/* IN variables. */
	uint32_t reg;
	/* OUT variables. */
	unsigned long mfn;
	xen_pfn_t mfn;
	uint64_t nr_mfns;
	uint32_t type;
};
Loading