diff options
author | smh22@labyrinth.cl.cam.ac.uk <smh22@labyrinth.cl.cam.ac.uk> | 2003-11-05 11:48:22 +0000 |
---|---|---|
committer | smh22@labyrinth.cl.cam.ac.uk <smh22@labyrinth.cl.cam.ac.uk> | 2003-11-05 11:48:22 +0000 |
commit | 1f84a5b71495d69429091ee4c3d7167f1c23d600 (patch) | |
tree | 6f01519e73d1c29a1dd282bb97eb5313e5ce0328 /tools/internal/dom0_defs.h | |
parent | 589d8fae088b3a9092e2206abc6ad46e8a0d20dd (diff) | |
download | xen-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.h | 36 |
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__ */ |