[libvirt] [PATCHv8 5/7] bhyve: Probe grub-bhyve for --cons-dev capability
Michal Privoznik
mprivozn at redhat.com
Tue Nov 11 14:52:34 UTC 2014
On 08.11.2014 17:48, Conrad Meyer wrote:
> ---
> src/bhyve/bhyve_capabilities.c | 37 +++++++++++++++++++++++++++++++++++++
> src/bhyve/bhyve_capabilities.h | 3 +++
> 2 files changed, 40 insertions(+)
>
> diff --git a/src/bhyve/bhyve_capabilities.c b/src/bhyve/bhyve_capabilities.c
> index 132ce91..6e9a943 100644
> --- a/src/bhyve/bhyve_capabilities.c
> +++ b/src/bhyve/bhyve_capabilities.c
> @@ -23,6 +23,7 @@
> #include <sys/utsname.h>
>
> #include "viralloc.h"
> +#include "virfile.h"
> #include "virlog.h"
> #include "virstring.h"
> #include "cpu/cpu.h"
> @@ -104,3 +105,39 @@ virBhyveCapsBuild(void)
> virObjectUnref(caps);
> return NULL;
> }
> +
> +int
> +virBhyveProbeGrubCaps(unsigned *caps)
> +{
> + char *binary, *help;
> + virCommandPtr cmd;
> + int ret, exit;
> +
> + ret = 0;
> + *caps = 0;
> + cmd = NULL;
> + help = NULL;
> +
> + binary = virFindFileInPath("grub-bhyve");
> + if (binary == NULL)
> + goto out;
> + if (!virFileIsExecutable(binary))
> + goto out;
> +
> + cmd = virCommandNew(binary);
> + virCommandAddArg(cmd, "--help");
> + virCommandSetOutputBuffer(cmd, &help);
> + if (virCommandRun(cmd, &exit) < 0) {
> + ret = -1;
> + goto out;
> + }
> +
> + if (strstr(help, "--cons-dev") != NULL)
> + *caps |= BHYVE_GRUB_CAP_CONSDEV;
> +
> + out:
> + VIR_FREE(help);
> + virCommandFree(cmd);
> + VIR_FREE(binary);
> + return ret;
> +}
> diff --git a/src/bhyve/bhyve_capabilities.h b/src/bhyve/bhyve_capabilities.h
> index c52e0d0..f4ebd90 100644
> --- a/src/bhyve/bhyve_capabilities.h
> +++ b/src/bhyve/bhyve_capabilities.h
> @@ -26,4 +26,7 @@
>
> virCapsPtr virBhyveCapsBuild(void);
>
> +# define BHYVE_GRUB_CAP_CONSDEV 0x00000001
This should be rather an enum.
> +int virBhyveProbeGrubCaps(unsigned *caps);
> +
> #endif
>
Michal
More information about the libvir-list
mailing list