libxc: osdep: report missing backends in common code

Backends were inconsistent about reporting and it's a pain to edit them all
when adding a new class of osdep.

Signed-off-by: Ian Campbell <Ian.campbell@citrix.com>
Acked-by: Ian Jackson <ian.jackson.citrix.com>
Committed-by: Ian Jackson <ian.jackson.citrix.com>
---
Requires Daniel De Graaf's "libxc: add xc_gntshr_* functions"
This commit is contained in:
Ian Campbell committed 2011-10-13 10:32:09 +01:00
1 parent 10befefe28
commit d5a95e2863
3 files changed
+16 -6

No files matched your search

-3
View File
@@ -386,9 +386,6 @@ static struct xc_osdep_ops *netbsd_osdep_init(xc_interface *xch, enum xc_osdep_t
return &netbsd_privcmd_ops;
case XC_OSDEP_EVTCHN:
return &netbsd_evtchn_ops;
case XC_OSDEP_GNTTAB:
ERROR("GNTTAB interface not supported on this platform");
return NULL;
default:
return NULL;
}
+16
View File
@@ -111,6 +111,18 @@ static void xc_osdep_put(xc_osdep_info_t *info)
#endif
}
static const char *xc_osdep_type_name(enum xc_osdep_type type)
{
switch ( type )
{
case XC_OSDEP_PRIVCMD: return "privcmd";
case XC_OSDEP_EVTCHN: return "evtchn";
case XC_OSDEP_GNTTAB: return "gnttab";
case XC_OSDEP_GNTSHR: return "gntshr";
}
return "unknown";
}
static struct xc_interface_core *xc_interface_open_common(xentoollog_logger *logger,
xentoollog_logger *dombuild_logger,
unsigned open_flags,
@@ -161,7 +173,11 @@ static struct xc_interface_core *xc_interface_open_common(xentoollog_logger *log
xch->ops = xch->osdep.init(xch, type);
if ( xch->ops == NULL )
{
ERROR("OSDEP: interface %d (%s) not supported on this platform",
type, xc_osdep_type_name(type));
goto err_put_iface;
}
xch->ops_handle = xch->ops->open(xch);
if (xch->ops_handle == XC_OSDEP_OPEN_ERROR)
-3
View File
@@ -322,9 +322,6 @@ static struct xc_osdep_ops *solaris_osdep_init(xc_interface *xch, enum xc_osdep_
return &solaris_privcmd_ops;
case XC_OSDEP_EVTCHN:
return &solaris_evtchn_ops;
case XC_OSDEP_GNTTAB:
ERROR("GNTTAB interface not supported on this platform");
return NULL;
default:
return NULL;
}
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.