conf: Introduce virDomainGraphics-related helpers

A few simple helpers that allow us to determine whether a graphics can
and will need to make use of a DRM render node.

Signed-off-by: Erik Skultety <eskultet@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
This commit is contained in:
Erik Skultety 2018-11-26 11:07:42 +01:00
parent 394809694a
commit 255e073263
3 changed files with 55 additions and 0 deletions

View File

@ -30933,3 +30933,46 @@ virDomainGraphicsDefHasOpenGL(const virDomainDef *def)
return false; return false;
} }
bool
virDomainGraphicsSupportsRenderNode(const virDomainGraphicsDef *graphics)
{
return graphics->type == VIR_DOMAIN_GRAPHICS_TYPE_SPICE;
}
const char *
virDomainGraphicsGetRenderNode(const virDomainGraphicsDef *graphics)
{
const char *ret = NULL;
switch (graphics->type) {
case VIR_DOMAIN_GRAPHICS_TYPE_SPICE:
if (graphics->data.spice.gl == VIR_TRISTATE_BOOL_YES)
ret = graphics->data.spice.rendernode;
break;
case VIR_DOMAIN_GRAPHICS_TYPE_EGL_HEADLESS:
case VIR_DOMAIN_GRAPHICS_TYPE_SDL:
case VIR_DOMAIN_GRAPHICS_TYPE_VNC:
case VIR_DOMAIN_GRAPHICS_TYPE_RDP:
case VIR_DOMAIN_GRAPHICS_TYPE_DESKTOP:
case VIR_DOMAIN_GRAPHICS_TYPE_LAST:
break;
}
return ret;
}
bool
virDomainGraphicsNeedsAutoRenderNode(const virDomainGraphicsDef *graphics)
{
if (!virDomainGraphicsSupportsRenderNode(graphics))
return false;
if (virDomainGraphicsGetRenderNode(graphics))
return false;
return true;
}

View File

@ -3668,4 +3668,13 @@ virDomainDefHasManagedPR(const virDomainDef *def);
bool bool
virDomainGraphicsDefHasOpenGL(const virDomainDef *def); virDomainGraphicsDefHasOpenGL(const virDomainDef *def);
bool
virDomainGraphicsSupportsRenderNode(const virDomainGraphicsDef *graphics);
const char *
virDomainGraphicsGetRenderNode(const virDomainGraphicsDef *graphics);
bool
virDomainGraphicsNeedsAutoRenderNode(const virDomainGraphicsDef *graphics);
#endif /* __DOMAIN_CONF_H */ #endif /* __DOMAIN_CONF_H */

View File

@ -372,8 +372,10 @@ virDomainGraphicsAuthConnectedTypeToString;
virDomainGraphicsDefFree; virDomainGraphicsDefFree;
virDomainGraphicsDefHasOpenGL; virDomainGraphicsDefHasOpenGL;
virDomainGraphicsGetListen; virDomainGraphicsGetListen;
virDomainGraphicsGetRenderNode;
virDomainGraphicsListenAppendAddress; virDomainGraphicsListenAppendAddress;
virDomainGraphicsListenAppendSocket; virDomainGraphicsListenAppendSocket;
virDomainGraphicsNeedsAutoRenderNode;
virDomainGraphicsSpiceChannelModeTypeFromString; virDomainGraphicsSpiceChannelModeTypeFromString;
virDomainGraphicsSpiceChannelModeTypeToString; virDomainGraphicsSpiceChannelModeTypeToString;
virDomainGraphicsSpiceChannelNameTypeFromString; virDomainGraphicsSpiceChannelNameTypeFromString;
@ -388,6 +390,7 @@ virDomainGraphicsSpiceStreamingModeTypeFromString;
virDomainGraphicsSpiceStreamingModeTypeToString; virDomainGraphicsSpiceStreamingModeTypeToString;
virDomainGraphicsSpiceZlibCompressionTypeFromString; virDomainGraphicsSpiceZlibCompressionTypeFromString;
virDomainGraphicsSpiceZlibCompressionTypeToString; virDomainGraphicsSpiceZlibCompressionTypeToString;
virDomainGraphicsSupportsRenderNode;
virDomainGraphicsTypeFromString; virDomainGraphicsTypeFromString;
virDomainGraphicsTypeToString; virDomainGraphicsTypeToString;
virDomainGraphicsVNCSharePolicyTypeFromString; virDomainGraphicsVNCSharePolicyTypeFromString;