mirror of
https://github.com/xen-project/xen.git
synced 2026-10-28 02:01:24 +01:00
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:
1 parent
10befefe28
commit
d5a95e2863
3 files changed
+16
-6
No files matched your search
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||