return cputype;
}
-const char *cpuid_get_cpu_type_string(const cputype_t cputype)
+bool cpuid_sprintf_cputype(const cputype_t cputype, char *buf)
{
- return cpuids[(int)cputype];
+ if (cputype == CT_NONE)
+ return false;
+
+ memcpy(buf, cpuids[(int)cputype], 12);
+ buf[12] = '\0';
+ return true;
}
uint32_t cpuid_highest_ext_func_supported(void)
#include <stdint.h>
/**
- * enum cpuid - stuff to get information on from the CPU.
+ * enum cpuid - stuff to get information about from the CPU.
*
* This is used as a parameter in cpuid().
*
*
* See also: cpuid_get_cpu_type_string()
*/
+#define is_intel_cpu() cpuid_get_cpu_type() == CT_INTEL
+#define is_amd_cpu() cpuid_get_cpu_type() == CT_AMDK5 || cpuid_get_cpu_type() == CT_AMD
cputype_t cpuid_get_cpu_type(void);
/**
- * cpuid_get_cpu_type_string - Get CPU Type string
+ * cpuid_sprintf_cputype - Get CPU Type string
+ * @cputype: a char of atleast 12 bytes in it.
*
- * Returns the CPU type string based off cputype_t.
+ * Returns true on success, false on failure
*/
-const char *cpuid_get_cpu_type_string(const cputype_t cputype);
+bool cpuid_sprintf_cputype(const cputype_t cputype, char *buf);
/**
* cpuid_is_supported - test if the CPUID instruction is supported
#endif
#endif
-
return 1;
}
- printf ("Vendor ID: %s\n", cpuid_get_cpu_type_string (cpuid_get_cpu_type ()));
+ char cputype[12];
+ if (cpuid_sprintf_cputype(cpuid_get_cpu_type(), cputype))
+ printf ("Vendor ID: %s\n", cputype);
char buf[48];
cpuid(CPU_PROC_BRAND_STRING, (uint32_t *)buf);