cpuid: new module

This module parses data provided by the cpuid instruction.
It still needs more work, however, it works for most important
stuff.

Signed-off-by: Ahmed Samy <f.fallen45@gmail.com>
cpuid: add proper documentation

Forgot to add this to the main commit, sorry.

Signed-off-by: Ahmed Samy <f.fallen45@gmail.com>
cpuid: add 2 new functions + some more tests

The new functions are:
- get_cpu_type
- get_cpu_type_string

Also add more tests on how one would parse the low-level stuff.

Signed-off-by: Ahmed Samy <f.fallen45@gmail.com>
cpuid: prefix every function with cpuid_

Also merge extended features and non-extended in 1 function.

Suggested-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Ahmed Samy <f.fallen45@gmail.com>
cpuid: only compile source file if x86 cpu

Suggested-by: David Gibson <david@gibson.dropbear.id.au>
Signed-off-by: Ahmed Samy <f.fallen45@gmail.com>
cpuid: Minor improvements

Remove the assembly file that checks if the CPUID instruction is
supported and have it in inline assembly as suggested by Rusty.

Signed-off-by: Ahmed Samy <f.fallen45@gmail.com>
cpuid: small fix

Signed-off-by: Ahmed Samy <f.fallen45@gmail.com>
cpuid: use uint32_t instead of int/unsigned

Signed-off-by: Ahmed Samy <f.fallen45@gmail.com>
cpuid: parse CPU L1 cache and TLB identifications

Signed-off-by: Ahmed Samy <f.fallen45@gmail.com>
Merge branch 'cpuid' of https://github.com/decltype/ccan
cpuid: ccanlint fixes.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>