From: Ahmed Samy Date: Mon, 23 Sep 2013 22:40:41 +0000 (+0000) Subject: cpuid: only compile source file if x86 cpu X-Git-Url: http://git.ozlabs.org/?p=ccan;a=commitdiff_plain;h=73bd4a199cbd32ad8a3bb8fe8c9e4b81506a2435 cpuid: only compile source file if x86 cpu Suggested-by: David Gibson Signed-off-by: Ahmed Samy --- diff --git a/ccan/cpuid/cpuid.c b/ccan/cpuid/cpuid.c index 6ab0e50f..6a45116d 100644 --- a/ccan/cpuid/cpuid.c +++ b/ccan/cpuid/cpuid.c @@ -22,6 +22,10 @@ * This file has been written with some help from wikipedia: * http://en.wikipedia.org/wiki/CPUID */ + +/* Only compile this file if we're on a x86 machine. */ +#if defined(__i386__) || defined(__i386) || defined(__x86_64) \ + || defined(_M_AMD64) || defined(__M_X64) #include #include @@ -248,3 +252,7 @@ void cpuid(cpuid_t info, void *buf) } } +#else +#warning "Cannot compile this file on a non-x86 machine" +#endif + diff --git a/ccan/cpuid/issupprted.S b/ccan/cpuid/issupprted.S index 8fe85963..80ed0fd0 100644 --- a/ccan/cpuid/issupprted.S +++ b/ccan/cpuid/issupprted.S @@ -2,6 +2,10 @@ Test if the CPUID instruction is available. returns 1 if so, 0 otherwise. */ +/* Only compile this file if we're on a x86 machine. */ +#if defined(__i386__) || defined(__i386) || defined(__x86_64) \ + || defined(_M_AMD64) || defined(__M_X64) + .section .text .global cpuid_is_supported .type cpuid_is_supported, @function @@ -26,4 +30,5 @@ cpuid_is_supported: ret .size cpuid_is_supported, .-cpuid_is_supported +#endif diff --git a/ccan/cpuid/test/run.c b/ccan/cpuid/test/run.c index 1f523e4a..21e9aa60 100644 --- a/ccan/cpuid/test/run.c +++ b/ccan/cpuid/test/run.c @@ -10,16 +10,13 @@ int main() return 1; } - char buf[128]; - cpuid(CPU_VENDORID, buf); - printf ("Vendor ID: %s\n", buf); + printf ("Vendor ID: %s\n", cpuid_get_cpu_type_string (cpuid_get_cpu_type ())); + char buf[48]; cpuid(CPU_PROC_BRAND_STRING, buf); printf ("Processor Brand: %s\n", buf); - int addr; - cpuid(CPU_HIGHEST_EXTENDED_FUNCTION_SUPPORTED, &addr); - printf ("Highest extended function supported: %#010x\n", addr); + printf ("Highest extended function supported: %#010x\n", cpuid_highest_ext_func_supported()); union { struct { @@ -48,7 +45,7 @@ int main() } l2c; cpuid(CPU_EXTENDED_L2_CACHE_FEATURES, &l2c.w); - printf ("L2 Cache Size: %u KB\tLine Size: %u bytes\tAssociativity: %02xh\n", + printf ("L2 Cache Size: %ld KB\tLine Size: %ld bytes\tAssociativity: %02xh\n", l2c.cache_size, l2c.line_size, l2c.assoc); int invalid;