ia64/xen-unstable

view xen/arch/x86/compat.c @ 13297:ee395551208d

Enable compatibility mode operation for HYPERVISOR_physdev_op and
HYPERVISOR_event_channel_op.

Signed-off-by: Jan Beulich <jbeulich@novell.com>
author Emmanuel Ackaouy <ack@xensource.com>
date Fri Jan 05 17:34:32 2007 +0000 (2007-01-05)
parents 42a8e3101c6c
children
line source
1 /******************************************************************************
2 * compat.c
3 *
4 * Implementations of legacy hypercalls. These call through to the new
5 * hypercall after doing necessary argument munging.
6 */
8 #include <xen/config.h>
9 #include <xen/guest_access.h>
10 #include <xen/hypercall.h>
12 #ifndef COMPAT
13 typedef long ret_t;
14 #endif
16 /* Legacy hypercall (as of 0x00030202). */
17 ret_t do_physdev_op_compat(XEN_GUEST_HANDLE(physdev_op_t) uop)
18 {
19 struct physdev_op op;
21 if ( unlikely(copy_from_guest(&op, uop, 1) != 0) )
22 return -EFAULT;
24 return do_physdev_op(op.cmd, guest_handle_from_ptr(&uop.p->u, void));
25 }
27 #ifndef COMPAT
29 /* Legacy hypercall (as of 0x00030202). */
30 long do_event_channel_op_compat(XEN_GUEST_HANDLE(evtchn_op_t) uop)
31 {
32 struct evtchn_op op;
34 if ( unlikely(copy_from_guest(&op, uop, 1) != 0) )
35 return -EFAULT;
37 return do_event_channel_op(op.cmd, guest_handle_from_ptr(&uop.p->u, void));
38 }
40 #endif