aboutsummaryrefslogtreecommitdiffstats
path: root/tools/internal/dom0_defs.h
diff options
context:
space:
mode:
authorsmh22@labyrinth.cl.cam.ac.uk <smh22@labyrinth.cl.cam.ac.uk>2003-11-05 11:48:22 +0000
committersmh22@labyrinth.cl.cam.ac.uk <smh22@labyrinth.cl.cam.ac.uk>2003-11-05 11:48:22 +0000
commit1f84a5b71495d69429091ee4c3d7167f1c23d600 (patch)
tree6f01519e73d1c29a1dd282bb97eb5313e5ce0328 /tools/internal/dom0_defs.h
parent589d8fae088b3a9092e2206abc6ad46e8a0d20dd (diff)
downloadxen-1f84a5b71495d69429091ee4c3d7167f1c23d600.tar.gz
xen-1f84a5b71495d69429091ee4c3d7167f1c23d600.tar.bz2
xen-1f84a5b71495d69429091ee4c3d7167f1c23d600.zip
bitkeeper revision 1.558.1.1 (3fa8e386Q1b8azxmK348LEgk5Ph0JQ)
simpler unified vbd / physdisk stuff
Diffstat (limited to 'tools/internal/dom0_defs.h')
-rw-r--r--tools/internal/dom0_defs.h36
1 files changed, 24 insertions, 12 deletions
diff --git a/tools/internal/dom0_defs.h b/tools/internal/dom0_defs.h
index 13162534d2..40181db15a 100644
--- a/tools/internal/dom0_defs.h
+++ b/tools/internal/dom0_defs.h
@@ -58,18 +58,6 @@ static inline int do_privcmd(unsigned int cmd, unsigned long data)
return ret;
}
-static inline int xldev_to_physdev(int xldev)
-{
- return do_privcmd(IOCTL_PRIVCMD_LINDEV_TO_XENDEV,
- (unsigned long)xldev);
-}
-
-static inline int physdev_to_xldev(int physdev)
-{
- return do_privcmd(IOCTL_PRIVCMD_XENDEV_TO_LINDEV,
- (unsigned long)physdev);
-}
-
static inline int do_xen_blkmsg(privcmd_blkmsg_t *blkmsg)
{
return do_privcmd(IOCTL_PRIVCMD_BLKMSG, (unsigned long)blkmsg);
@@ -133,4 +121,28 @@ static inline int do_network_op(network_op_t *op)
out1: return ret;
}
+
+static inline int do_block_io_op(block_io_op_t *op)
+{
+ int ret = -1;
+ privcmd_hypercall_t hypercall;
+
+ hypercall.op = __HYPERVISOR_block_io_op;
+ hypercall.arg[0] = (unsigned long)op;
+
+ if ( mlock(op, sizeof(*op)) != 0 )
+ {
+ PERROR("Could not lock memory for Xen hypercall");
+ goto out1;
+ }
+
+ if ( do_xen_hypercall(&hypercall) < 0 )
+ goto out2;
+
+ ret = 0;
+
+ out2: (void)munlock(op, sizeof(*op));
+ out1: return ret;
+}
+
#endif /* __DOM0_DEFS_H__ */