[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH 4/7] x86/viridian: get rid of the magic numbers in CPUID leaves 1 and 2



>>> On 17.03.17 at 10:57, <paul.durrant@xxxxxxxxxx> wrote:
> --- a/xen/arch/x86/hvm/viridian.c
> +++ b/xen/arch/x86/hvm/viridian.c
> @@ -119,14 +119,16 @@ void cpuid_viridian_leaves(const struct vcpu *v, 
> uint32_t leaf,
>      switch ( leaf )
>      {
>      case 0:
> +        /* See section 2.4.1 of the specification */
>          res->a = 0x40000006; /* Maximum leaf */
> -        res->b = 0x7263694d; /* Magic numbers  */
> -        res->c = 0x666F736F;
> -        res->d = 0x76482074;
> +        res->b = *(uint32_t *)"Micr";
> +        res->c = *(uint32_t *)"osof";
> +        res->d = *(uint32_t *)"t Hv";
>          break;
>  
>      case 1:
> -        res->a = 0x31237648; /* Version number */
> +        /* See section 2.4.2 of the specification */
> +        res->a = *(uint32_t *)"Hv#1";
>          break;

You're the maintainer of the code, so I can't really reject this, but
(ugly) casts don't seem any better to me, the more that they cast
away constness. Would

        memcpy(&res->a, "Hv#1", 4);

etc be acceptable to you?

Jan


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
https://lists.xen.org/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.