mirror of
https://gitlab.com/80486DX2-66/gists
synced 2025-03-10 16:19:10 +05:30
cpuid_vendor_id.mod.c: use fixed width types
This commit is contained in:
parent
b45d4a865e
commit
11d2cf6be4
@ -18,13 +18,14 @@
|
|||||||
# error "This code isn't supposed to work on non-x86 CPUs."
|
# error "This code isn't supposed to work on non-x86 CPUs."
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#include <stdint.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
# include <intrin.h> // __cpuid()
|
# include <intrin.h> // __cpuid()
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
typedef unsigned int cpuid_t[4];
|
typedef uint32_t cpuid_t[4];
|
||||||
|
|
||||||
enum CPU_registers {
|
enum CPU_registers {
|
||||||
EAX = 0,
|
EAX = 0,
|
||||||
@ -40,9 +41,9 @@ enum CPU_registers {
|
|||||||
// -number-and-cpu-id-using-c-c-in-linux
|
// -number-and-cpu-id-using-c-c-in-linux
|
||||||
//
|
//
|
||||||
// https://stackoverflow.com/questions/1666093/cpuid-implementations-in-c
|
// 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
|
#ifdef _WIN32
|
||||||
__cpuid((int *) r, (int) function_id);
|
__cpuid((int32_t*) r, (int32_t) function_id);
|
||||||
#else
|
#else
|
||||||
r[EAX] = function_id;
|
r[EAX] = function_id;
|
||||||
r[ECX] = 0;
|
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
|
// https://learn.microsoft.com/en-us/cpp/intrinsics/cpuid-cpuidex
|
||||||
// ?view=msvc-170#example
|
// ?view=msvc-170#example
|
||||||
((unsigned*) vendor)[0] = v[EBX];
|
((uint32_t*) vendor)[0] = v[EBX];
|
||||||
((unsigned*) vendor)[1] = v[EDX];
|
((uint32_t*) vendor)[1] = v[EDX];
|
||||||
((unsigned*) vendor)[2] = v[ECX];
|
((uint32_t*) vendor)[2] = v[ECX];
|
||||||
}
|
}
|
||||||
|
|
||||||
int main(void) {
|
int main(void) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user