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

Re: [Xen-devel] [PATCH v2 08/25] x86/cpuid: Introduce named feature bitfields



>>> On 09.01.17 at 12:03, <andrew.cooper3@xxxxxxxxxx> wrote:
> --- a/xen/include/asm-x86/cpuid.h
> +++ b/xen/include/asm-x86/cpuid.h
> @@ -92,6 +92,10 @@ struct cpuid_policy
>       * Everything else should be considered inaccurate, and not necesserily 
> 0.
>       */
>  
> +#define DECL_BITFIELD(word) _DECL_BITFIELD(FEATURESET_ ## word)
> +#define _DECL_BITFIELD(x)   __DECL_BITFIELD(x)
> +#define __DECL_BITFIELD(x)  NAMED_BITFIELD_ ## x

If this was a C file, I'd be fine with this naming choice, but in a header
I think it would be better to reduce the chance of name space issues
and use CPUID_BITFIELD_ ## x instead here (and - obviously - in the
script).

> @@ -291,6 +292,28 @@ def crunch_numbers(state):
>      for k, v in state.deep_deps.iteritems():
>          state.deep_deps[k] = featureset_to_uint32s(v, nr_entries)
>  
> +    # Calculate the bitfield name declarations
> +    for word in xrange(nr_entries):
> +
> +        names = []
> +        for bit in xrange(32):
> +
> +            name = state.names.get(word * 32 + bit, "")
> +
> +            # Prepend an underscore if the name starts with a digit.
> +            if name and name[0] in "0123456789":
> +                name = "_" + name
> +
> +            # Don't generate names for the duplicate features, or ones
> +            # fast-forwarded from other state
> +            if (name.startswith("E1D_") or
> +                name in ("APIC", "OSXSAVE", "OSPKE")):
> +                name = ""
> +
> +            names.append(name.lower())
> +
> +        state.bitfields.append("bool " + ":1, ".join(names) + ":1")

It's probably my rudimentary Python knowledge that makes me
confused by the two :1 here. I trust the result is what it needs
to be. So with the naming aspect addressed
Reviewed-by: Jan Beulich <jbeulich@xxxxxxxx>

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®.