From 11d2cf6be4224e6d58bacc9881c39685079dba15 Mon Sep 17 00:00:00 2001 From: Intel A80486DX2-66 Date: Sun, 9 Mar 2025 17:22:50 +0300 Subject: [PATCH] cpuid_vendor_id.mod.c: use fixed width types --- c-programming/sys/cpuid_vendor_id.mod.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/c-programming/sys/cpuid_vendor_id.mod.c b/c-programming/sys/cpuid_vendor_id.mod.c index 89232a2..d601977 100644 --- a/c-programming/sys/cpuid_vendor_id.mod.c +++ b/c-programming/sys/cpuid_vendor_id.mod.c @@ -18,13 +18,14 @@ # error "This code isn't supposed to work on non-x86 CPUs." #endif +#include #include #ifdef _WIN32 # include // __cpuid() #endif -typedef unsigned int cpuid_t[4]; +typedef uint32_t cpuid_t[4]; enum CPU_registers { EAX = 0, @@ -40,9 +41,9 @@ enum CPU_registers { // -number-and-cpu-id-using-c-c-in-linux // // https://stackoverflow.com/questions/1666093/cpuid-implementations-in-c -static inline void native_cpuid(unsigned int function_id, cpuid_t r) { +static inline void native_cpuid(uint32_t function_id, cpuid_t r) { #ifdef _WIN32 - __cpuid((int *) r, (int) function_id); + __cpuid((int32_t*) r, (int32_t) function_id); #else r[EAX] = function_id; r[ECX] = 0; @@ -71,9 +72,9 @@ static inline void cpuid_vendor_id(char vendor[VENDOR_ID_LEN]) { // https://learn.microsoft.com/en-us/cpp/intrinsics/cpuid-cpuidex // ?view=msvc-170#example - ((unsigned*) vendor)[0] = v[EBX]; - ((unsigned*) vendor)[1] = v[EDX]; - ((unsigned*) vendor)[2] = v[ECX]; + ((uint32_t*) vendor)[0] = v[EBX]; + ((uint32_t*) vendor)[1] = v[EDX]; + ((uint32_t*) vendor)[2] = v[ECX]; } int main(void) {