mirror of
https://gitlab.com/80486DX2-66/gists
synced 2025-03-10 07:09: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."
|
||||
#endif
|
||||
|
||||
#include <stdint.h>
|
||||
#include <stdio.h>
|
||||
|
||||
#ifdef _WIN32
|
||||
# include <intrin.h> // __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) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user