Commit 0cfb6301 authored by Ahmed Samy's avatar Ahmed Samy

cpuid: use a sprintf-like function to get cputype as a string

Signed-off-by: default avatarAhmed Samy <f.fallen45@gmail.com>
parent d03f0db1
...@@ -220,9 +220,14 @@ cputype_t cpuid_get_cpu_type(void) ...@@ -220,9 +220,14 @@ cputype_t cpuid_get_cpu_type(void)
return cputype; 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) uint32_t cpuid_highest_ext_func_supported(void)
......
...@@ -26,7 +26,7 @@ ...@@ -26,7 +26,7 @@
#include <stdint.h> #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(). * This is used as a parameter in cpuid().
* *
...@@ -124,14 +124,17 @@ typedef enum cputype { ...@@ -124,14 +124,17 @@ typedef enum cputype {
* *
* See also: cpuid_get_cpu_type_string() * 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); 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 * cpuid_is_supported - test if the CPUID instruction is supported
...@@ -275,4 +278,3 @@ bool cpuid_has_feature(int feature, bool extended); ...@@ -275,4 +278,3 @@ bool cpuid_has_feature(int feature, bool extended);
#endif #endif
#endif #endif
...@@ -10,7 +10,9 @@ int main(void) ...@@ -10,7 +10,9 @@ int main(void)
return 1; 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]; char buf[48];
cpuid(CPU_PROC_BRAND_STRING, (uint32_t *)buf); cpuid(CPU_PROC_BRAND_STRING, (uint32_t *)buf);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment