WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-changelog

[Xen-changelog] [linux-2.6.18-xen] linux/x86: clean up hypercall headers

To: xen-changelog@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-changelog] [linux-2.6.18-xen] linux/x86: clean up hypercall headers
From: "Xen patchbot-linux-2.6.18-xen" <patchbot-linux-2.6.18-xen@xxxxxxxxxxxxxxxxxxx>
Date: Fri, 18 Jan 2008 16:30:15 -0800
Delivery-date: Fri, 18 Jan 2008 16:31:46 -0800
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-changelog-request@lists.xensource.com?subject=help>
List-id: BK change log <xen-changelog.lists.xensource.com>
List-post: <mailto:xen-changelog@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=unsubscribe>
Reply-to: xen-devel@xxxxxxxxxxxxxxxxxxx
Sender: xen-changelog-bounces@xxxxxxxxxxxxxxxxxxx
# HG changeset patch
# User Keir Fraser <keir.fraser@xxxxxxxxxx>
# Date 1200674124 0
# Node ID 1468ebbc3c5d7d50828251058ca229a4dce55345
# Parent  bc3e5b96d4f428b8ac03f4290bb1e38b3e4a99ea
linux/x86: clean up hypercall headers

- don't define HYPERVISOR_hvm_op() for pv guests (requiring to not
  include
  include/xen/hvm.h in non-pv-driver builds)
- remove the custome __STR/STR macros
- remove stringification where not necessary
- reduce instruction size for pv-driver case on x86-64

Signed-off-by: Jan Beulich <jbeulich@xxxxxxxxxx>
---
 drivers/xen/xenbus/xenbus_probe.c           |    2 ++
 drivers/xen/xenbus/xenbus_probe_backend.c   |    1 -
 include/asm-i386/mach-xen/asm/hypercall.h   |   11 +++++------
 include/asm-x86_64/mach-xen/asm/hypercall.h |   11 +++++------
 4 files changed, 12 insertions(+), 13 deletions(-)

diff -r bc3e5b96d4f4 -r 1468ebbc3c5d drivers/xen/xenbus/xenbus_probe.c
--- a/drivers/xen/xenbus/xenbus_probe.c Fri Jan 18 16:19:08 2008 +0000
+++ b/drivers/xen/xenbus/xenbus_probe.c Fri Jan 18 16:35:24 2008 +0000
@@ -54,7 +54,9 @@
 #include <xen/xen_proc.h>
 #include <xen/evtchn.h>
 #include <xen/features.h>
+#ifdef MODULE
 #include <xen/hvm.h>
+#endif
 
 #include "xenbus_comms.h"
 #include "xenbus_probe.h"
diff -r bc3e5b96d4f4 -r 1468ebbc3c5d drivers/xen/xenbus/xenbus_probe_backend.c
--- a/drivers/xen/xenbus/xenbus_probe_backend.c Fri Jan 18 16:19:08 2008 +0000
+++ b/drivers/xen/xenbus/xenbus_probe_backend.c Fri Jan 18 16:35:24 2008 +0000
@@ -52,7 +52,6 @@
 #include <xen/xen_proc.h>
 #include <xen/evtchn.h>
 #include <xen/features.h>
-#include <xen/hvm.h>
 
 #include "xenbus_comms.h"
 #include "xenbus_probe.h"
diff -r bc3e5b96d4f4 -r 1468ebbc3c5d include/asm-i386/mach-xen/asm/hypercall.h
--- a/include/asm-i386/mach-xen/asm/hypercall.h Fri Jan 18 16:19:08 2008 +0000
+++ b/include/asm-i386/mach-xen/asm/hypercall.h Fri Jan 18 16:35:24 2008 +0000
@@ -40,16 +40,13 @@
 # error "please don't include this file directly"
 #endif
 
-#define __STR(x) #x
-#define STR(x) __STR(x)
-
 #ifdef CONFIG_XEN
 #define HYPERCALL_STR(name)                                    \
-       "call hypercall_page + ("STR(__HYPERVISOR_##name)" * 32)"
+       "call hypercall_page + ("__stringify(__HYPERVISOR_##name)" * 32)"
 #else
 #define HYPERCALL_STR(name)                                    \
-       "mov "__stringify(hypercall_stubs)",%%eax; "            \
-       "add $("STR(__HYPERVISOR_##name)" * 32),%%eax; "        \
+       "mov hypercall_stubs,%%eax; "                           \
+       "add $("__stringify(__HYPERVISOR_##name)" * 32),%%eax; "\
        "call *%%eax"
 #endif
 
@@ -375,12 +372,14 @@ HYPERVISOR_nmi_op(
        return _hypercall2(int, nmi_op, op, arg);
 }
 
+#ifndef CONFIG_XEN
 static inline unsigned long
 HYPERVISOR_hvm_op(
     int op, void *arg)
 {
     return _hypercall2(unsigned long, hvm_op, op, arg);
 }
+#endif
 
 static inline int
 HYPERVISOR_callback_op(
diff -r bc3e5b96d4f4 -r 1468ebbc3c5d include/asm-x86_64/mach-xen/asm/hypercall.h
--- a/include/asm-x86_64/mach-xen/asm/hypercall.h       Fri Jan 18 16:19:08 
2008 +0000
+++ b/include/asm-x86_64/mach-xen/asm/hypercall.h       Fri Jan 18 16:35:24 
2008 +0000
@@ -44,16 +44,13 @@
 # error "please don't include this file directly"
 #endif
 
-#define __STR(x) #x
-#define STR(x) __STR(x)
-
 #ifdef CONFIG_XEN
 #define HYPERCALL_STR(name)                                    \
-       "call hypercall_page + ("STR(__HYPERVISOR_##name)" * 32)"
+       "call hypercall_page + ("__stringify(__HYPERVISOR_##name)" * 32)"
 #else
 #define HYPERCALL_STR(name)                                    \
-       "mov "__stringify(hypercall_stubs)",%%rax; "            \
-       "add $("STR(__HYPERVISOR_##name)" * 32),%%rax; "        \
+       "mov $("__stringify(__HYPERVISOR_##name)" * 32),%%eax; "\
+       "add hypercall_stubs(%%rip),%%rax; "                    \
        "call *%%rax"
 #endif
 
@@ -376,12 +373,14 @@ HYPERVISOR_nmi_op(
        return _hypercall2(int, nmi_op, op, arg);
 }
 
+#ifndef CONFIG_XEN
 static inline unsigned long
 HYPERVISOR_hvm_op(
     int op, void *arg)
 {
     return _hypercall2(unsigned long, hvm_op, op, arg);
 }
+#endif
 
 static inline int
 HYPERVISOR_callback_op(

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-changelog] [linux-2.6.18-xen] linux/x86: clean up hypercall headers, Xen patchbot-linux-2.6.18-xen <=