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] [xen-unstable] [IA64] memmap: add IA64_DOM0VP_fpswa_revi

To: xen-changelog@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-changelog] [xen-unstable] [IA64] memmap: add IA64_DOM0VP_fpswa_revision hypercall
From: Xen patchbot-unstable <patchbot-unstable@xxxxxxxxxxxxxxxxxxx>
Date: Sat, 16 Jun 2007 05:30:50 -0700
Delivery-date: Sat, 16 Jun 2007 05:29:17 -0700
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 Alex Williamson <alex.williamson@xxxxxx>
# Date 1179763773 21600
# Node ID caafa45d24b3cbf05ab97ab33235e5b91ac44323
# Parent  bf6f94206fec9a247eed02dc3a031fc9129883bb
[IA64] memmap: add IA64_DOM0VP_fpswa_revision hypercall

For ia64 domain builder memmap support

Signed-off-by: Isaku Yamahata <yamahata@xxxxxxxxxxxxx>
---
 linux-2.6-xen-sparse/arch/ia64/xen/xcom_hcall.c   |    7 ++++
 linux-2.6-xen-sparse/arch/ia64/xen/xcom_mini.c    |   16 ++++++++++
 linux-2.6-xen-sparse/arch/ia64/xen/xcom_privcmd.c |   34 ++++++++++++++++++++++
 linux-2.6-xen-sparse/include/asm-ia64/hypercall.h |    9 +++++
 xen/arch/ia64/xen/dom0_ops.c                      |   16 ++++++++++
 xen/include/public/arch-ia64.h                    |    3 +
 6 files changed, 85 insertions(+)

diff -r bf6f94206fec -r caafa45d24b3 
linux-2.6-xen-sparse/arch/ia64/xen/xcom_hcall.c
--- a/linux-2.6-xen-sparse/arch/ia64/xen/xcom_hcall.c   Sun May 20 21:28:48 
2007 -0600
+++ b/linux-2.6-xen-sparse/arch/ia64/xen/xcom_hcall.c   Mon May 21 10:09:33 
2007 -0600
@@ -395,3 +395,10 @@ xencomm_hypercall_vcpu_op(int cmd, int c
        return xencomm_arch_hypercall_vcpu_op(cmd, cpu,
                                              xencomm_create_inline(arg));
 }
+
+int
+xencomm_hypercall_fpswa_revision(unsigned int *revision)
+{
+       return xencomm_arch_hypercall_fpswa_revision(
+               xencomm_create_inline(revision));
+}
diff -r bf6f94206fec -r caafa45d24b3 
linux-2.6-xen-sparse/arch/ia64/xen/xcom_mini.c
--- a/linux-2.6-xen-sparse/arch/ia64/xen/xcom_mini.c    Sun May 20 21:28:48 
2007 -0600
+++ b/linux-2.6-xen-sparse/arch/ia64/xen/xcom_mini.c    Mon May 21 10:09:33 
2007 -0600
@@ -467,3 +467,19 @@ xencomm_mini_hypercall_sched_op(int cmd,
        return xencomm_arch_hypercall_sched_op(cmd, desc);
 }
 EXPORT_SYMBOL_GPL(xencomm_mini_hypercall_sched_op);
+
+int
+xencomm_mini_hypercall_fpswa_revision(unsigned int *revision)
+{
+       int nbr_area = 2;
+       struct xencomm_mini xc_area[2];
+       struct xencomm_handle *desc;
+       int rc;
+
+       rc = xencomm_create_mini(xc_area, &nbr_area,
+                                revision, sizeof(*revision), &desc);
+       if (rc)
+               return rc;
+       return xencomm_arch_hypercall_fpswa_revision(desc);
+}
+EXPORT_SYMBOL_GPL(xencomm_mini_hypercall_fpswa_revision);
diff -r bf6f94206fec -r caafa45d24b3 
linux-2.6-xen-sparse/arch/ia64/xen/xcom_privcmd.c
--- a/linux-2.6-xen-sparse/arch/ia64/xen/xcom_privcmd.c Sun May 20 21:28:48 
2007 -0600
+++ b/linux-2.6-xen-sparse/arch/ia64/xen/xcom_privcmd.c Mon May 21 10:09:33 
2007 -0600
@@ -643,6 +643,38 @@ xencomm_privcmd_sched_op(privcmd_hyperca
        return ret;
 }
 
+static int
+xencomm_privcmd_ia64_dom0vp_op(privcmd_hypercall_t *hypercall)
+{
+       int cmd = hypercall->arg[0];
+       int ret;
+       
+       switch (cmd) {
+       case IA64_DOM0VP_fpswa_revision: {
+               unsigned int revision;
+               unsigned int __user *revision_user =
+                       (unsigned int* __user)hypercall->arg[1];
+               struct xencomm_handle *desc;
+               ret = xencomm_create(&revision, sizeof(revision),
+                                    &desc, GFP_KERNEL);
+               if (ret)
+                       break;
+               ret = xencomm_arch_hypercall_fpswa_revision(desc);
+               xencomm_free(desc);
+               if (ret)
+                       break;
+               if (copy_to_user(revision_user, &revision, sizeof(revision)))
+                       ret = -EFAULT;
+               break;
+       }
+       default:
+               printk("%s: unknown IA64 DOM0VP op %d\n", __func__, cmd);
+               ret = -EINVAL;
+               break;
+       }
+       return ret;
+}
+
 int
 privcmd_hypercall(privcmd_hypercall_t *hypercall)
 {
@@ -665,6 +697,8 @@ privcmd_hypercall(privcmd_hypercall_t *h
                return xencomm_privcmd_hvm_op(hypercall);
        case __HYPERVISOR_sched_op:
                return xencomm_privcmd_sched_op(hypercall);
+       case __HYPERVISOR_ia64_dom0vp_op:
+               return xencomm_privcmd_ia64_dom0vp_op(hypercall);
        default:
                printk("%s: unknown hcall (%ld)\n", __func__, hypercall->op);
                return -ENOSYS;
diff -r bf6f94206fec -r caafa45d24b3 
linux-2.6-xen-sparse/include/asm-ia64/hypercall.h
--- a/linux-2.6-xen-sparse/include/asm-ia64/hypercall.h Sun May 20 21:28:48 
2007 -0600
+++ b/linux-2.6-xen-sparse/include/asm-ia64/hypercall.h Mon May 21 10:09:33 
2007 -0600
@@ -380,6 +380,13 @@ xencomm_arch_hypercall_perfmon_op(unsign
 {
        return _hypercall4(int, ia64_dom0vp_op,
                           IA64_DOM0VP_perfmon, cmd, arg, count);
+}
+
+static inline int
+xencomm_arch_hypercall_fpswa_revision(struct xencomm_handle *arg)
+{
+       return _hypercall2(int, ia64_dom0vp_op,
+                          IA64_DOM0VP_fpswa_revision, arg);
 }
 
 // for balloon driver
@@ -397,6 +404,7 @@ xencomm_arch_hypercall_perfmon_op(unsign
 #define HYPERVISOR_memory_op xencomm_mini_hypercall_memory_op
 #define HYPERVISOR_xenoprof_op xencomm_mini_hypercall_xenoprof_op
 #define HYPERVISOR_perfmon_op xencomm_mini_hypercall_perfmon_op
+#define HYPERVISOR_fpswa_revision xencomm_mini_hypercall_fpswa_revision
 #else
 #define HYPERVISOR_sched_op xencomm_hypercall_sched_op
 #define HYPERVISOR_event_channel_op xencomm_hypercall_event_channel_op
@@ -408,6 +416,7 @@ xencomm_arch_hypercall_perfmon_op(unsign
 #define HYPERVISOR_memory_op xencomm_hypercall_memory_op
 #define HYPERVISOR_xenoprof_op xencomm_hypercall_xenoprof_op
 #define HYPERVISOR_perfmon_op xencomm_hypercall_perfmon_op
+#define HYPERVISOR_fpswa_revision xencomm_hypercall_fpswa_revision
 #endif
 
 #define HYPERVISOR_suspend xencomm_hypercall_suspend
diff -r bf6f94206fec -r caafa45d24b3 xen/arch/ia64/xen/dom0_ops.c
--- a/xen/arch/ia64/xen/dom0_ops.c      Sun May 20 21:28:48 2007 -0600
+++ b/xen/arch/ia64/xen/dom0_ops.c      Mon May 21 10:09:33 2007 -0600
@@ -352,6 +352,16 @@ dom0vp_ioremap(struct domain *d, unsigne
                                    ASSIGN_writable | ASSIGN_nocache);
 }
 
+static unsigned long
+dom0vp_fpswa_revision(XEN_GUEST_HANDLE(uint) revision)
+{
+    if (fpswa_interface == NULL)
+        return -ENOSYS;
+    if (copy_to_guest(revision, &fpswa_interface->revision, 1))
+        return -EFAULT;
+    return 0;
+}
+
 unsigned long
 do_dom0vp_op(unsigned long cmd,
              unsigned long arg0, unsigned long arg1, unsigned long arg2,
@@ -400,6 +410,12 @@ do_dom0vp_op(unsigned long cmd,
         XEN_GUEST_HANDLE(void) hnd;
         set_xen_guest_handle(hnd, (void*)arg1);
         ret = do_perfmon_op(arg0, hnd, arg2);
+        break;
+    }
+    case IA64_DOM0VP_fpswa_revision: {
+        XEN_GUEST_HANDLE(uint) hnd;
+        set_xen_guest_handle(hnd, (uint*)arg0);
+        ret = dom0vp_fpswa_revision(hnd);
         break;
     }
     default:
diff -r bf6f94206fec -r caafa45d24b3 xen/include/public/arch-ia64.h
--- a/xen/include/public/arch-ia64.h    Sun May 20 21:28:48 2007 -0600
+++ b/xen/include/public/arch-ia64.h    Mon May 21 10:09:33 2007 -0600
@@ -504,6 +504,9 @@ DEFINE_XEN_GUEST_HANDLE(vcpu_guest_conte
 /* gmfn version of IA64_DOM0VP_add_physmap */
 #define IA64_DOM0VP_add_physmap_with_gmfn       9
 
+/* get fpswa revision */
+#define IA64_DOM0VP_fpswa_revision      10
+
 // flags for page assignement to pseudo physical address space
 #define _ASSIGN_readonly                0
 #define ASSIGN_readonly                 (1UL << _ASSIGN_readonly)

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

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-changelog] [xen-unstable] [IA64] memmap: add IA64_DOM0VP_fpswa_revision hypercall, Xen patchbot-unstable <=