mirror of
https://github.com/anrieff/libcpuid
synced 2025-06-07 00:51:40 +00:00
Fix truncation of constant values for model_bits
56b0809cfa (commitcomment-155745765)
This commit is contained in:
parent
9dc52f810d
commit
2e01aa0303
1 changed files with 77 additions and 87 deletions
|
@ -124,98 +124,88 @@ struct internal_type_info_array_t {
|
||||||
|
|
||||||
#define LBIT(x) (((uint64_t) 1) << x)
|
#define LBIT(x) (((uint64_t) 1) << x)
|
||||||
|
|
||||||
enum _common_bits_t {
|
// common detection bits for CPUs:
|
||||||
_M_ = LBIT( 0 ),
|
#define _M_ LBIT( 0 )
|
||||||
MOBILE_ = LBIT( 1 ),
|
#define MOBILE_ LBIT( 1 )
|
||||||
_MP_ = LBIT( 2 ),
|
#define _MP_ LBIT( 2 )
|
||||||
_3 = LBIT( 3 ),
|
#define _3 LBIT( 3 )
|
||||||
_5 = LBIT( 4 ),
|
#define _5 LBIT( 4 )
|
||||||
_7 = LBIT( 5 ),
|
#define _7 LBIT( 5 )
|
||||||
_9 = LBIT( 6 ),
|
#define _9 LBIT( 6 )
|
||||||
_H = LBIT( 7 ), // powerful mobile processors for laptop
|
#define _H LBIT( 7 ) // powerful mobile processors for laptop
|
||||||
_S = LBIT( 8 ),
|
#define _S LBIT( 8 )
|
||||||
_U = LBIT( 9 ), // ultra-low power
|
#define _U LBIT( 9 ) // ultra-low power
|
||||||
_X = LBIT( 10 ), // CPU with great amount of power
|
#define _X LBIT( 10 ) // CPU with great amount of power
|
||||||
_F = LBIT( 11 ), // CPU that doesn’t have integrated graphics
|
#define _F LBIT( 11 ) // CPU that doesn’t have integrated graphics
|
||||||
_G = LBIT( 12 ), // CPU with additional built-in integrated graphics
|
#define _G LBIT( 12 ) // CPU with additional built-in integrated graphics
|
||||||
_E = LBIT( 13 ), // Embedded (Intel)
|
#define _E LBIT( 13 ) // Embedded (Intel)
|
||||||
};
|
#define LAST_COMMON_BIT 13
|
||||||
#define LAST_COMMON_BIT 13
|
|
||||||
|
|
||||||
// additional detection bits for Intel CPUs:
|
// additional detection bits for Intel CPUs:
|
||||||
enum _intel_bits_t {
|
#define PENTIUM_ LBIT( (LAST_COMMON_BIT + 1) )
|
||||||
PENTIUM_ = LBIT( (LAST_COMMON_BIT + 1) ),
|
#define CELERON_ LBIT( (LAST_COMMON_BIT + 2) )
|
||||||
CELERON_ = LBIT( (LAST_COMMON_BIT + 2) ),
|
#define CORE_ LBIT( (LAST_COMMON_BIT + 3) )
|
||||||
CORE_ = LBIT( (LAST_COMMON_BIT + 3) ),
|
#define _I_ LBIT( (LAST_COMMON_BIT + 4) )
|
||||||
_I_ = LBIT( (LAST_COMMON_BIT + 4) ),
|
#define XEON_ LBIT( (LAST_COMMON_BIT + 5) )
|
||||||
XEON_ = LBIT( (LAST_COMMON_BIT + 5) ),
|
#define ATOM_ LBIT( (LAST_COMMON_BIT + 6) )
|
||||||
ATOM_ = LBIT( (LAST_COMMON_BIT + 6) ),
|
#define _K LBIT( (LAST_COMMON_BIT + 7) ) // an unlocked desktop processor that allows for overclocking
|
||||||
_K = LBIT( (LAST_COMMON_BIT + 7) ), // an unlocked desktop processor that allows for overclocking
|
#define _P LBIT( (LAST_COMMON_BIT + 8) )
|
||||||
_P = LBIT( (LAST_COMMON_BIT + 8) ),
|
#define _N LBIT( (LAST_COMMON_BIT + 9) )
|
||||||
_N = LBIT( (LAST_COMMON_BIT + 9) ),
|
#define _W_ LBIT( (LAST_COMMON_BIT + 10) )
|
||||||
_W_ = LBIT( (LAST_COMMON_BIT + 10) ),
|
#define _D_ LBIT( (LAST_COMMON_BIT + 11) )
|
||||||
_D_ = LBIT( (LAST_COMMON_BIT + 11) ),
|
#define _BRONZE_ LBIT( (LAST_COMMON_BIT + 12) )
|
||||||
_BRONZE_ = LBIT( (LAST_COMMON_BIT + 12) ),
|
#define _SILVER_ LBIT( (LAST_COMMON_BIT + 13) )
|
||||||
_SILVER_ = LBIT( (LAST_COMMON_BIT + 13) ),
|
#define _GOLD_ LBIT( (LAST_COMMON_BIT + 14) )
|
||||||
_GOLD_ = LBIT( (LAST_COMMON_BIT + 14) ),
|
#define _PLATINIUM_ LBIT( (LAST_COMMON_BIT + 15) )
|
||||||
_PLATINIUM_ = LBIT( (LAST_COMMON_BIT + 15) ),
|
#define _MAX_ LBIT( (LAST_COMMON_BIT + 16) )
|
||||||
_MAX_ = LBIT( (LAST_COMMON_BIT + 16) ),
|
#define _J_ LBIT( (LAST_COMMON_BIT + 17) )
|
||||||
_J_ = LBIT( (LAST_COMMON_BIT + 17) ),
|
#define _N_ LBIT( (LAST_COMMON_BIT + 18) )
|
||||||
_N_ = LBIT( (LAST_COMMON_BIT + 18) ),
|
#define _ULTRA_ LBIT( (LAST_COMMON_BIT + 19) )
|
||||||
_ULTRA_ = LBIT( (LAST_COMMON_BIT + 19) ),
|
#define _V LBIT( (LAST_COMMON_BIT + 20) ) // Lunar Lake
|
||||||
_V = LBIT( (LAST_COMMON_BIT + 20) ), // Lunar Lake
|
#define _L LBIT( (LAST_COMMON_BIT + 21) ) // LGA package (UL = Power efficient, in LGA package / HL = Highest performance, in LGA package)
|
||||||
_L = LBIT( (LAST_COMMON_BIT + 21) ), // LGA package (UL = Power efficient, in LGA package / HL = Highest performance, in LGA package)
|
#define _T LBIT( (LAST_COMMON_BIT + 22) ) // Power-optimized lifestyle
|
||||||
_T = LBIT( (LAST_COMMON_BIT + 22) ), // Power-optimized lifestyle
|
#define _U_ LBIT( (LAST_COMMON_BIT + 23) )
|
||||||
_U_ = LBIT( (LAST_COMMON_BIT + 23) ),
|
|
||||||
};
|
|
||||||
typedef enum _intel_bits_t intel_bits_t;
|
|
||||||
|
|
||||||
enum _amd_bits_t {
|
// additional detection bits for AMD CPUs:
|
||||||
ATHLON_ = LBIT( (LAST_COMMON_BIT + 1) ),
|
#define ATHLON_ LBIT( (LAST_COMMON_BIT + 1) )
|
||||||
_XP_ = LBIT( (LAST_COMMON_BIT + 2) ),
|
#define _XP_ LBIT( (LAST_COMMON_BIT + 2) )
|
||||||
DURON_ = LBIT( (LAST_COMMON_BIT + 3) ),
|
#define DURON_ LBIT( (LAST_COMMON_BIT + 3) )
|
||||||
SEMPRON_ = LBIT( (LAST_COMMON_BIT + 4) ),
|
#define SEMPRON_ LBIT( (LAST_COMMON_BIT + 4) )
|
||||||
OPTERON_ = LBIT( (LAST_COMMON_BIT + 5) ),
|
#define OPTERON_ LBIT( (LAST_COMMON_BIT + 5) )
|
||||||
TURION_ = LBIT( (LAST_COMMON_BIT + 6) ),
|
#define TURION_ LBIT( (LAST_COMMON_BIT + 6) )
|
||||||
RYZEN_ = LBIT( (LAST_COMMON_BIT + 7) ),
|
#define RYZEN_ LBIT( (LAST_COMMON_BIT + 7) )
|
||||||
RYZEN_TR_ = LBIT( (LAST_COMMON_BIT + 8) ),
|
#define RYZEN_TR_ LBIT( (LAST_COMMON_BIT + 8) )
|
||||||
EPYC_ = LBIT( (LAST_COMMON_BIT + 9) ),
|
#define EPYC_ LBIT( (LAST_COMMON_BIT + 9) )
|
||||||
_LV_ = LBIT( (LAST_COMMON_BIT + 10) ),
|
#define _LV_ LBIT( (LAST_COMMON_BIT + 10) )
|
||||||
_64_ = LBIT( (LAST_COMMON_BIT + 11) ),
|
#define _64_ LBIT( (LAST_COMMON_BIT + 11) )
|
||||||
_X2 = LBIT( (LAST_COMMON_BIT + 12) ),
|
#define _X2 LBIT( (LAST_COMMON_BIT + 12) )
|
||||||
_X3 = LBIT( (LAST_COMMON_BIT + 13) ),
|
#define _X3 LBIT( (LAST_COMMON_BIT + 13) )
|
||||||
_X4 = LBIT( (LAST_COMMON_BIT + 14) ),
|
#define _X4 LBIT( (LAST_COMMON_BIT + 14) )
|
||||||
_X6 = LBIT( (LAST_COMMON_BIT + 15) ),
|
#define _X6 LBIT( (LAST_COMMON_BIT + 15) )
|
||||||
_FX = LBIT( (LAST_COMMON_BIT + 16) ),
|
#define _FX LBIT( (LAST_COMMON_BIT + 16) )
|
||||||
_APU_ = LBIT( (LAST_COMMON_BIT + 17) ),
|
#define _APU_ LBIT( (LAST_COMMON_BIT + 17) )
|
||||||
C86_ = LBIT( (LAST_COMMON_BIT + 18) ),
|
#define C86_ LBIT( (LAST_COMMON_BIT + 18) )
|
||||||
_Z = LBIT( (LAST_COMMON_BIT + 19) ),
|
#define _Z LBIT( (LAST_COMMON_BIT + 19) )
|
||||||
_AI_ = LBIT( (LAST_COMMON_BIT + 20) ),
|
#define _AI_ LBIT( (LAST_COMMON_BIT + 20) )
|
||||||
};
|
|
||||||
typedef enum _amd_bits_t amd_bits_t;
|
|
||||||
|
|
||||||
enum _via_bits_t {
|
// additional detection bits for Via CPUs:
|
||||||
SAMUEL_ = LBIT( (LAST_COMMON_BIT + 1) ),
|
#define SAMUEL_ LBIT( (LAST_COMMON_BIT + 1) )
|
||||||
EZRA_ = LBIT( (LAST_COMMON_BIT + 2) ),
|
#define EZRA_ LBIT( (LAST_COMMON_BIT + 2) )
|
||||||
NEHEMIAH_ = LBIT( (LAST_COMMON_BIT + 3) ),
|
#define NEHEMIAH_ LBIT( (LAST_COMMON_BIT + 3) )
|
||||||
ESTHER_ = LBIT( (LAST_COMMON_BIT + 4) ),
|
#define ESTHER_ LBIT( (LAST_COMMON_BIT + 4) )
|
||||||
EDEN_ = LBIT( (LAST_COMMON_BIT + 5) ),
|
#define EDEN_ LBIT( (LAST_COMMON_BIT + 5) )
|
||||||
CNA_ = LBIT( (LAST_COMMON_BIT + 6) ),
|
#define CNA_ LBIT( (LAST_COMMON_BIT + 6) )
|
||||||
NANO_ = LBIT( (LAST_COMMON_BIT + 7) ),
|
#define NANO_ LBIT( (LAST_COMMON_BIT + 7) )
|
||||||
QUADCORE_ = LBIT( (LAST_COMMON_BIT + 8) ),
|
#define QUADCORE_ LBIT( (LAST_COMMON_BIT + 8) )
|
||||||
};
|
|
||||||
typedef enum _via_bits_t via_bits_t;
|
|
||||||
|
|
||||||
enum _zhaoxin_bits_t {
|
// additional detection bits for Zhaoxin CPUs:
|
||||||
KAISHENG_ = LBIT( (LAST_COMMON_BIT + 1) ),
|
#define KAISHENG_ LBIT( (LAST_COMMON_BIT + 1) )
|
||||||
KAIXIAN_ = LBIT( (LAST_COMMON_BIT + 2) ),
|
#define KAIXIAN_ LBIT( (LAST_COMMON_BIT + 2) )
|
||||||
_KH_ = LBIT( (LAST_COMMON_BIT + 3) ),
|
#define _KH_ LBIT( (LAST_COMMON_BIT + 3) )
|
||||||
_KX_ = LBIT( (LAST_COMMON_BIT + 4) ),
|
#define _KX_ LBIT( (LAST_COMMON_BIT + 4) )
|
||||||
_ZX_ = LBIT( (LAST_COMMON_BIT + 5) ),
|
#define _ZX_ LBIT( (LAST_COMMON_BIT + 5) )
|
||||||
_C = LBIT( (LAST_COMMON_BIT + 6) ),
|
#define _C LBIT( (LAST_COMMON_BIT + 6) )
|
||||||
_D = LBIT( (LAST_COMMON_BIT + 7) ),
|
#define _D LBIT( (LAST_COMMON_BIT + 7) )
|
||||||
};
|
|
||||||
typedef enum _zhaoxin_bits_t zhaoxin_bits_t;
|
|
||||||
|
|
||||||
|
|
||||||
int cpu_ident_internal(struct cpu_raw_data_t* raw, struct cpu_id_t* data,
|
int cpu_ident_internal(struct cpu_raw_data_t* raw, struct cpu_id_t* data,
|
||||||
|
|
Loading…
Add table
Reference in a new issue