On Wed, Jan 26, 2011 at 22:49, Anthony Liguori <anth...@codemonkey.ws> wrote: > On 01/25/2011 08:29 AM, anthony.per...@citrix.com wrote: >> >> From: Alexander Graf<ag...@suse.de> >> >> This patch adds a generic layer for xc calls, allowing us to choose >> between the >> xenner and xen implementations at runtime. >> >> Signed-off-by: Alexander Graf<ag...@suse.de> >> Signed-off-by: Anthony PERARD<anthony.per...@citrix.com> >> --- >> hw/xen_interfaces.c | 100 >> +++++++++++++++++++++++++++++++++++++++++++++++++ >> hw/xen_interfaces.h | 104 >> +++++++++++++++++++++++++++++++++++++++++++++++++++ >> hw/xen_redirect.h | 56 +++++++++++++++++++++++++++ >> 3 files changed, 260 insertions(+), 0 deletions(-) >> create mode 100644 hw/xen_interfaces.c >> create mode 100644 hw/xen_interfaces.h >> create mode 100644 hw/xen_redirect.h >> >> diff --git a/hw/xen_interfaces.c b/hw/xen_interfaces.c >> new file mode 100644 >> index 0000000..09f40e0 >> --- /dev/null >> +++ b/hw/xen_interfaces.c >> @@ -0,0 +1,100 @@ >> > > Needs a copyright.
Will put one. >> diff --git a/hw/xen_interfaces.h b/hw/xen_interfaces.h >> new file mode 100644 >> index 0000000..1086850 >> --- /dev/null >> +++ b/hw/xen_interfaces.h >> @@ -0,0 +1,104 @@ >> +#ifndef QEMU_HW_XEN_INTERFACES_H >> +#define QEMU_HW_XEN_INTERFACES_H 1 >> + >> +#include<xenctrl.h> >> +#include<xs.h> >> + >> +/* ------------------------------------------------------------- */ >> +/* xen event channel interface */ >> + >> +struct XenEvtOps { >> + int (*open)(void); >> + int (*domid)(int xce_handle, int domid); >> + int (*close)(int xce_handle); >> + int (*fd)(int xce_handle); >> + int (*notify)(int xce_handle, evtchn_port_t port); >> + evtchn_port_or_error_t (*bind_unbound_port)(int xce_handle, int >> domid); >> + evtchn_port_or_error_t (*bind_interdomain)(int xce_handle, int domid, >> + evtchn_port_t >> remote_port); >> + evtchn_port_or_error_t (*bind_virq)(int xce_handle, unsigned int >> virq); >> + int (*unbind)(int xce_handle, evtchn_port_t port); >> + evtchn_port_or_error_t (*pending)(int xce_handle); >> + int (*unmask)(int xce_handle, evtchn_port_t port); >> +}; >> +extern struct XenEvtOps xc_evtchn; >> > > typedef away the struct please. Ok, I will do that. >> diff --git a/hw/xen_redirect.h b/hw/xen_redirect.h >> new file mode 100644 >> index 0000000..6ddecf3 >> --- /dev/null >> +++ b/hw/xen_redirect.h >> @@ -0,0 +1,56 @@ >> +#ifndef QEMU_HW_XEN_REDIRECT_H >> +#define QEMU_HW_XEN_REDIRECT_H 1 >> + >> +#include "xen_interfaces.h" [...] >> + >> +/* xenstore interface */ >> +#define xs_daemon_open xs.daemon_open >> +#define xs_domain_open xs.domain_open >> +#define xs_daemon_open_readonly xs.daemon_open_readonly >> +#define xs_daemon_close xs.daemon_close > > static inline please. Because the define have the same name as the Xen function, I will have to rename all these functions, or I can just replace all calls in xen*.c files. > Regards, Thanks, -- Anthony PERARD