aboutsummaryrefslogtreecommitdiffstats
path: root/tools/libxc/xc_physdev.c
diff options
context:
space:
mode:
Diffstat (limited to 'tools/libxc/xc_physdev.c')
-rw-r--r--tools/libxc/xc_physdev.c40
1 files changed, 40 insertions, 0 deletions
diff --git a/tools/libxc/xc_physdev.c b/tools/libxc/xc_physdev.c
index 43ea7ff53f..1c5e8cb5da 100644
--- a/tools/libxc/xc_physdev.c
+++ b/tools/libxc/xc_physdev.c
@@ -19,3 +19,43 @@ int xc_physdev_pci_access_modify(int xc_handle,
errno = ENOSYS;
return -1;
}
+
+int xc_physdev_map_pirq(int xc_handle,
+ int domid,
+ int type,
+ int index,
+ int *pirq)
+{
+ int rc;
+ struct physdev_map_pirq map;
+
+ if ( !pirq )
+ return -EINVAL;
+
+ map.domid = domid;
+ map.type = type;
+ map.index = index;
+ map.pirq = *pirq;
+
+ rc = do_physdev_op(xc_handle, PHYSDEVOP_map_pirq, &map);
+
+ if ( !rc )
+ *pirq = map.pirq;
+
+ return rc;
+}
+
+int xc_physdev_unmap_pirq(int xc_handle,
+ int domid,
+ int pirq)
+{
+ int rc;
+ struct physdev_unmap_pirq unmap;
+
+ unmap.domid = domid;
+ unmap.pirq = pirq;
+
+ rc = do_physdev_op(xc_handle, PHYSDEVOP_unmap_pirq, &unmap);
+
+ return rc;
+}