[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] [PATCH 2 of 4] xen: introduce PHYSDEVOP_get_nr_pirqs



Introduce a new physdevop called PHYSDEVOP_get_nr_pirqs that allows PV
and PV on HVM guests to get the number of pirqs available.

Signed-off-by: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx>

diff -r f2dc396b92aa xen/arch/x86/hvm/hvm.c
--- a/xen/arch/x86/hvm/hvm.c    Wed Aug 18 14:14:23 2010 +0100
+++ b/xen/arch/x86/hvm/hvm.c    Fri Aug 20 14:49:52 2010 +0100
@@ -2290,6 +2290,7 @@ static long hvm_physdev_op(int cmd, XEN_
         case PHYSDEVOP_unmap_pirq:
         case PHYSDEVOP_eoi:
         case PHYSDEVOP_irq_status_query:
+        case PHYSDEVOP_get_nr_pirqs:
             return do_physdev_op(cmd, arg);
         default:
             return -ENOSYS;
@@ -2393,6 +2394,8 @@ static long hvm_physdev_op_compat32(
         case PHYSDEVOP_eoi:
         case PHYSDEVOP_irq_status_query:
             return compat_physdev_op(cmd, arg);
+        case PHYSDEVOP_get_nr_pirqs:
+            return do_physdev_op(cmd, arg);
         break;
     default:
             return -ENOSYS;
diff -r f2dc396b92aa xen/arch/x86/physdev.c
--- a/xen/arch/x86/physdev.c    Wed Aug 18 14:14:23 2010 +0100
+++ b/xen/arch/x86/physdev.c    Fri Aug 20 14:49:52 2010 +0100
@@ -572,6 +572,12 @@ ret_t do_physdev_op(int cmd, XEN_GUEST_H
                               setup_gsi.polarity);
         break; 
     }
+    case PHYSDEVOP_get_nr_pirqs: {
+        struct physdev_nr_pirqs out;
+        out.nr_pirqs = v->domain->nr_pirqs;
+        ret = copy_to_guest(arg, &out, 1) ? -EFAULT : 0;
+        break;
+    }
     default:
         ret = -ENOSYS;
         break;
diff -r f2dc396b92aa xen/include/public/physdev.h
--- a/xen/include/public/physdev.h      Wed Aug 18 14:14:23 2010 +0100
+++ b/xen/include/public/physdev.h      Fri Aug 20 14:49:52 2010 +0100
@@ -240,6 +240,15 @@ struct physdev_setup_gsi {
 typedef struct physdev_setup_gsi physdev_setup_gsi_t;
 DEFINE_XEN_GUEST_HANDLE(physdev_setup_gsi_t);
 
+#define PHYSDEVOP_get_nr_pirqs    22
+struct physdev_nr_pirqs {
+    /* OUT */
+    uint32_t nr_pirqs;
+};
+
+typedef struct physdev_nr_pirqs physdev_nr_pirqs_t;
+DEFINE_XEN_GUEST_HANDLE(physdev_nr_pirqs_t);
+
 /*
  * Notify that some PIRQ-bound event channels have been unmasked.
  * ** This command is obsolete since interface version 0x00030202 and is **

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


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.