Bastian Blank
2006-Sep-17 16:10 UTC
[Pkg-xen-changes] r318 - trunk/xen-unstable/debian/patches
Author: waldi Date: Sun Sep 17 16:10:34 2006 New Revision: 318 Added: trunk/xen-unstable/debian/patches/abi-revert-1.dpatch (contents, props changed) Modified: trunk/xen-unstable/debian/patches/00list Log: Revert domctl and sysctl abi to 1. * debian/patches/00list: Add abi-revert-1. * debian/patches/abi-revert-1.dpatch: Add. Modified: trunk/xen-unstable/debian/patches/00list =============================================================================--- trunk/xen-unstable/debian/patches/00list (original) +++ trunk/xen-unstable/debian/patches/00list Sun Sep 17 16:10:34 2006 @@ -6,3 +6,4 @@ libs qemu-arch blktap-disable +abi-revert-1 Added: trunk/xen-unstable/debian/patches/abi-revert-1.dpatch =============================================================================--- (empty file) +++ trunk/xen-unstable/debian/patches/abi-revert-1.dpatch Sun Sep 17 16:10:34 2006 @@ -0,0 +1,225 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## abi-revert-1.dpatch by Bastian Blank <waldi@debian.org> +## +## All lines beginning with `## DP:'' are a description of the patch. +## DP: No description. + +@DPATCH@ +diff -r 383bc7c7b19e -r a39ad4c78850 xen/include/public/arch-ia64.h +--- a/xen/include/public/arch-ia64.h Tue Sep 05 18:36:23 2006 -0700 ++++ b/xen/include/public/arch-ia64.h Wed Aug 30 13:51:12 2006 +0100 +@@ -18,12 +18,15 @@ + + #define DEFINE_XEN_GUEST_HANDLE(name) __DEFINE_XEN_GUEST_HANDLE(name, name) + #define XEN_GUEST_HANDLE(name) __guest_handle_ ## name ++#define XEN_GUEST_HANDLE_64(name) __guest_handle_ ## name + #define set_xen_guest_handle(hnd, val) do { (hnd).p = val; } while (0) + #ifdef __XEN_TOOLS__ + #define get_xen_guest_handle(val, hnd) do { val = (hnd).p; } while (0) + #endif + + #ifndef __ASSEMBLY__ ++typedef uint64_t uint64_aligned_t; ++ + /* Guest handles for primitive C types. */ + __DEFINE_XEN_GUEST_HANDLE(uchar, unsigned char); + __DEFINE_XEN_GUEST_HANDLE(uint, unsigned int); +diff -r 383bc7c7b19e -r a39ad4c78850 xen/include/public/arch-powerpc.h +--- a/xen/include/public/arch-powerpc.h Tue Sep 05 18:36:23 2006 -0700 ++++ b/xen/include/public/arch-powerpc.h Wed Aug 30 13:51:12 2006 +0100 +@@ -29,6 +29,7 @@ + + #define DEFINE_XEN_GUEST_HANDLE(name) __DEFINE_XEN_GUEST_HANDLE(name, name) + #define XEN_GUEST_HANDLE(name) __guest_handle_ ## name ++#define XEN_GUEST_HANDLE_64(name) __guest_handle_ ## name + #define set_xen_guest_handle(hnd, val) \ + do { \ + if (sizeof ((hnd).__pad)) \ +@@ -41,6 +42,8 @@ + #endif + + #ifndef __ASSEMBLY__ ++typedef uint64_t uint64_aligned_t; ++ + /* Guest handles for primitive C types. */ + __DEFINE_XEN_GUEST_HANDLE(uchar, unsigned char); + __DEFINE_XEN_GUEST_HANDLE(uint, unsigned int); +diff -r 383bc7c7b19e -r a39ad4c78850 xen/include/public/arch-x86_32.h +--- a/xen/include/public/arch-x86_32.h Tue Sep 05 18:36:23 2006 -0700 ++++ b/xen/include/public/arch-x86_32.h Wed Aug 30 13:51:12 2006 +0100 +@@ -28,7 +28,14 @@ + #endif + + /* Structural guest handles introduced in 0x00030201. */ +-#if __XEN_INTERFACE_VERSION__ >= 0x00030201 ++#if (defined(__XEN__) || defined(__XEN_TOOLS__)) && !defined(__ASSEMBLY__) ++typedef uint64_t __attribute__((aligned(8))) uint64_aligned_t; ++#define __DEFINE_XEN_GUEST_HANDLE(name, type) \ ++ typedef struct { type *p; } \ ++ __guest_handle_ ## name; \ ++ typedef struct { union { type *p; uint64_aligned_t q; }; } \ ++ __guest_handle_64_ ## name ++#elif __XEN_INTERFACE_VERSION__ >= 0x00030201 + #define __DEFINE_XEN_GUEST_HANDLE(name, type) \ + typedef struct { type *p; } __guest_handle_ ## name + #else +@@ -38,9 +45,15 @@ + + #define DEFINE_XEN_GUEST_HANDLE(name) __DEFINE_XEN_GUEST_HANDLE(name, name) + #define XEN_GUEST_HANDLE(name) __guest_handle_ ## name +-#define set_xen_guest_handle(hnd, val) do { (hnd).p = val; } while (0) ++#define XEN_GUEST_HANDLE_64(name) __guest_handle_64_ ## name + #ifdef __XEN_TOOLS__ + #define get_xen_guest_handle(val, hnd) do { val = (hnd).p; } while (0) ++#define set_xen_guest_handle(hnd, val) \ ++ do { if ( sizeof(hnd) == 8 ) *(uint64_t *)&(hnd) = 0; \ ++ (hnd).p = val; \ ++ } while ( 0 ) ++#else ++#define set_xen_guest_handle(hnd, val) do { (hnd).p = val; } while (0) + #endif + + #ifndef __ASSEMBLY__ +diff -r 383bc7c7b19e -r a39ad4c78850 xen/include/public/arch-x86_64.h +--- a/xen/include/public/arch-x86_64.h Tue Sep 05 18:36:23 2006 -0700 ++++ b/xen/include/public/arch-x86_64.h Wed Aug 30 13:51:12 2006 +0100 +@@ -39,12 +39,15 @@ + + #define DEFINE_XEN_GUEST_HANDLE(name) __DEFINE_XEN_GUEST_HANDLE(name, name) + #define XEN_GUEST_HANDLE(name) __guest_handle_ ## name ++#define XEN_GUEST_HANDLE_64(name) __guest_handle_ ## name + #define set_xen_guest_handle(hnd, val) do { (hnd).p = val; } while (0) + #ifdef __XEN_TOOLS__ + #define get_xen_guest_handle(val, hnd) do { val = (hnd).p; } while (0) + #endif + + #ifndef __ASSEMBLY__ ++typedef uint64_t uint64_aligned_t; ++ + /* Guest handles for primitive C types. */ + __DEFINE_XEN_GUEST_HANDLE(uchar, unsigned char); + __DEFINE_XEN_GUEST_HANDLE(uint, unsigned int); +diff -r 383bc7c7b19e -r a39ad4c78850 xen/include/public/domctl.h +--- a/xen/include/public/domctl.h Tue Sep 05 18:36:23 2006 -0700 ++++ b/xen/include/public/domctl.h Wed Aug 30 13:51:12 2006 +0100 +@@ -16,10 +16,12 @@ + + #include "xen.h" + +-#define XEN_DOMCTL_INTERFACE_VERSION 0x00000003 ++#define XEN_DOMCTL_INTERFACE_VERSION 0x00000001 ++ ++#define uint64_t uint64_aligned_t + + struct xenctl_cpumap { +- XEN_GUEST_HANDLE(uint8_t) bitmap; ++ XEN_GUEST_HANDLE_64(uint8_t) bitmap; + uint32_t nr_cpus; + }; + +@@ -70,11 +72,8 @@ DEFINE_XEN_GUEST_HANDLE(xen_domctl_getdo + #define XEN_DOMCTL_getmemlist 6 + struct xen_domctl_getmemlist { + /* IN variables. */ +- /* Max entries to write to output buffer. */ + uint64_t max_pfns; +- /* Start index in guest''s page list. */ +- uint64_t start_pfn; +- XEN_GUEST_HANDLE(xen_pfn_t) buffer; ++ XEN_GUEST_HANDLE_64(ulong) buffer; + /* OUT variables. */ + uint64_t num_pfns; + }; +@@ -111,7 +110,7 @@ struct xen_domctl_getpageframeinfo2 { + /* IN variables. */ + uint64_t num; + /* IN/OUT variables. */ +- XEN_GUEST_HANDLE(ulong) array; ++ XEN_GUEST_HANDLE_64(ulong) array; + }; + typedef struct xen_domctl_getpageframeinfo2 xen_domctl_getpageframeinfo2_t; + DEFINE_XEN_GUEST_HANDLE(xen_domctl_getpageframeinfo2_t); +@@ -185,7 +184,7 @@ struct xen_domctl_shadow_op { + uint32_t mb; /* Shadow memory allocation in MB */ + + /* OP_PEEK / OP_CLEAN */ +- XEN_GUEST_HANDLE(ulong) dirty_bitmap; ++ XEN_GUEST_HANDLE_64(ulong) dirty_bitmap; + uint64_t pages; /* Size of buffer. Updated with actual size. */ + struct xen_domctl_shadow_op_stats stats; + }; +@@ -205,8 +204,8 @@ DEFINE_XEN_GUEST_HANDLE(xen_domctl_max_m + #define XEN_DOMCTL_setvcpucontext 12 + #define XEN_DOMCTL_getvcpucontext 13 + struct xen_domctl_vcpucontext { +- uint32_t vcpu; /* IN */ +- XEN_GUEST_HANDLE(vcpu_guest_context_t) ctxt; /* IN/OUT */ ++ uint32_t vcpu; /* IN */ ++ XEN_GUEST_HANDLE_64(vcpu_guest_context_t) ctxt; /* IN/OUT */ + }; + typedef struct xen_domctl_vcpucontext xen_domctl_vcpucontext_t; + DEFINE_XEN_GUEST_HANDLE(xen_domctl_vcpucontext_t); +@@ -379,6 +378,8 @@ typedef struct xen_domctl xen_domctl_t; + typedef struct xen_domctl xen_domctl_t; + DEFINE_XEN_GUEST_HANDLE(xen_domctl_t); + ++#undef uint64_t ++ + #endif /* __XEN_PUBLIC_DOMCTL_H__ */ + + /* +diff -r 383bc7c7b19e -r a39ad4c78850 xen/include/public/sysctl.h +--- a/xen/include/public/sysctl.h Tue Sep 05 18:36:23 2006 -0700 ++++ b/xen/include/public/sysctl.h Wed Aug 30 13:51:12 2006 +0100 +@@ -16,7 +16,9 @@ + #include "xen.h" + #include "domctl.h" + +-#define XEN_SYSCTL_INTERFACE_VERSION 0x00000002 ++#define XEN_SYSCTL_INTERFACE_VERSION 0x00000001 ++ ++#define uint64_t uint64_aligned_t + + /* + * Read console content from Xen buffer ring. +@@ -24,8 +26,8 @@ + #define XEN_SYSCTL_readconsole 1 + struct xen_sysctl_readconsole { + /* IN variables. */ +- uint32_t clear; /* Non-zero -> clear after reading. */ +- XEN_GUEST_HANDLE(char) buffer; /* Buffer start */ ++ uint32_t clear; /* Non-zero -> clear after reading. */ ++ XEN_GUEST_HANDLE_64(char) buffer; /* Buffer start */ + /* IN/OUT variables. */ + uint32_t count; /* In: Buffer size; Out: Used buffer size */ + }; +@@ -103,9 +105,9 @@ struct xen_sysctl_perfc_op { + uint32_t nr_counters; /* number of counters description */ + uint32_t nr_vals; /* number of values */ + /* counter information (or NULL) */ +- XEN_GUEST_HANDLE(xen_sysctl_perfc_desc_t) desc; ++ XEN_GUEST_HANDLE_64(xen_sysctl_perfc_desc_t) desc; + /* counter values (or NULL) */ +- XEN_GUEST_HANDLE(xen_sysctl_perfc_val_t) val; ++ XEN_GUEST_HANDLE_64(xen_sysctl_perfc_val_t) val; + }; + typedef struct xen_sysctl_perfc_op xen_sysctl_perfc_op_t; + DEFINE_XEN_GUEST_HANDLE(xen_sysctl_perfc_op_t); +@@ -115,7 +117,7 @@ struct xen_sysctl_getdomaininfolist { + /* IN variables. */ + domid_t first_domain; + uint32_t max_domains; +- XEN_GUEST_HANDLE(xen_domctl_getdomaininfo_t) buffer; ++ XEN_GUEST_HANDLE_64(xen_domctl_getdomaininfo_t) buffer; + /* OUT variables. */ + uint32_t num_domains; + }; +@@ -138,6 +140,8 @@ typedef struct xen_sysctl xen_sysctl_t; + typedef struct xen_sysctl xen_sysctl_t; + DEFINE_XEN_GUEST_HANDLE(xen_sysctl_t); + ++#undef uint64_t ++ + #endif /* __XEN_PUBLIC_SYSCTL_H__ */ + + /*