[libvirt PATCH 02/32] util: add a virArchFromHost() impl for Windows

Pavel Hrdina phrdina at redhat.com
Thu Jan 23 14:23:19 UTC 2020


On Thu, Jan 23, 2020 at 11:42:55AM +0000, Daniel P. Berrangé wrote:
> Instead of relying on GNULIb's uname() impl, directly use the
> Windows API for determining CPU architecture.
> 
> Signed-off-by: Daniel P. Berrangé <berrange at redhat.com>
> ---
>  src/util/virarch.c | 52 +++++++++++++++++++++++++++++++++++++++++++++-
>  1 file changed, 51 insertions(+), 1 deletion(-)
> 
> diff --git a/src/util/virarch.c b/src/util/virarch.c
> index b132e178c3..553d21c97c 100644
> --- a/src/util/virarch.c
> +++ b/src/util/virarch.c
> @@ -154,6 +159,50 @@ virArch virArchFromString(const char *archstr)
>   * uname 'machine' field, since this will canonicalize
>   * architecture names like 'amd64' into 'x86_64'.
>   */
> +#ifdef WIN32
> +
> +/*
> + * Missing in ming64 headers 6.0.0, but defined as '12' in:
> + *
> + * https://docs.microsoft.com/en-us/windows/win32/api/sysinfoapi/ns-sysinfoapi-system_info
> + */
> +# ifndef PROCESSOR_ARCHITECTURE_ARM64
> +#  define PROCESSOR_ARCHITECTURE_ARM64 12
> +# endif
> +
> +virArch virArchFromHost(void)
> +{
> +    SYSTEM_INFO info;
> +
> +    GetSystemInfo(&info);
> +
> +    switch (info.wProcessorArchitecture) {
> +    case PROCESSOR_ARCHITECTURE_AMD64:
> +        return VIR_ARCH_X86_64;
> +    case PROCESSOR_ARCHITECTURE_IA64:
> +        return VIR_ARCH_ITANIUM;
> +    case PROCESSOR_ARCHITECTURE_INTEL:
> +    case PROCESSOR_ARCHITECTURE_IA32_ON_WIN64:
> +        return VIR_ARCH_I686;
> +    case PROCESSOR_ARCHITECTURE_MIPS:
> +        return VIR_ARCH_MIPS;
> +    case PROCESSOR_ARCHITECTURE_ALPHA:
> +        return VIR_ARCH_ALPHA;
> +    case PROCESSOR_ARCHITECTURE_PPC:
> +        return VIR_ARCH_PPC;
> +    case PROCESSOR_ARCHITECTURE_SHX:
> +        return VIR_ARCH_SH4;
> +    case PROCESSOR_ARCHITECTURE_ARM:
> +        return VIR_ARCH_ARMV7L;
> +    case PROCESSOR_ARCHITECTURE_ARM64:
> +        return VIR_ARCH_AARCH64;
> +    default:
> +        VIR_WARN("Unknown host arch %d, report to libvir-list at redhat.com",

Just a tiny nit, I would wrap %d with single quotes to make it obvious
it's dynamic part of the error message.

Reviewed-by: Pavel Hrdina <phrdina at redhat.com>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20200123/7a9390f7/attachment-0001.sig>


More information about the libvir-list mailing list