Processor identification structures
All checks were successful
ci/woodpecker/push/build Pipeline was successful
All checks were successful
ci/woodpecker/push/build Pipeline was successful
This commit is contained in:
parent
e645cf664c
commit
e94cb2d3a7
@ -110,6 +110,14 @@
|
||||
#define X86_EFLAGS_VIP_MASK 0x00100000
|
||||
#define X86_EFLAGS_ID_MASK 0x00200000
|
||||
|
||||
/* CPU vendor enumeration list */
|
||||
typedef enum _CPU_VENDOR
|
||||
{
|
||||
CPU_VENDOR_AMD = 0x68747541,
|
||||
CPU_VENDOR_INTEL = 0x756e6547,
|
||||
CPU_VENDOR_UNKNOWN = 0xFFFFFFFF
|
||||
} CPU_VENDOR, *PCPU_VENDOR;
|
||||
|
||||
/* CPUID features enumeration list */
|
||||
typedef enum _CPUID_FEATURES
|
||||
{
|
||||
@ -185,6 +193,16 @@ typedef enum _CPUID_REQUESTS
|
||||
CPUID_GET_SERIAL
|
||||
} CPUID_REQUESTS, *PCPUID_REQUESTS;
|
||||
|
||||
/* Processor identification information */
|
||||
typedef struct _CPU_IDENTIFICATION
|
||||
{
|
||||
USHORT Family;
|
||||
USHORT Model;
|
||||
USHORT Stepping;
|
||||
CPU_VENDOR Vendor;
|
||||
UCHAR VendorName[13];
|
||||
} CPU_IDENTIFICATION, *PCPU_IDENTIFICATION;
|
||||
|
||||
/* CPUID registers */
|
||||
typedef struct _CPUID_REGISTERS
|
||||
{
|
||||
@ -196,4 +214,16 @@ typedef struct _CPUID_REGISTERS
|
||||
UINT32 Edx;
|
||||
} CPUID_REGISTERS, *PCPUID_REGISTERS;
|
||||
|
||||
/* CPU signature read from CPUID structure definition */
|
||||
typedef struct _CPUID_SIGNATURE
|
||||
{
|
||||
ULONG Stepping:4;
|
||||
ULONG Model:4;
|
||||
ULONG Family:4;
|
||||
ULONG Unused1:4;
|
||||
ULONG ExtendedModel:4;
|
||||
ULONG ExtendedFamily:8;
|
||||
ULONG Unused2:4;
|
||||
} CPU_SIGNATURE, *PCPU_SIGNATURE;
|
||||
|
||||
#endif /* __XTDK_AMD64_ARTYPES_H */
|
||||
|
@ -13,6 +13,7 @@
|
||||
#include <xtstruct.h>
|
||||
#include <xttypes.h>
|
||||
#include ARCH_HEADER(xtstruct.h)
|
||||
#include ARCH_HEADER(artypes.h)
|
||||
|
||||
|
||||
/* Selector masks */
|
||||
@ -449,6 +450,7 @@ typedef struct _KPROCESSOR_CONTROL_BLOCK
|
||||
PKTHREAD NextThread;
|
||||
ULONG64 RspBase;
|
||||
ULONG_PTR SetMember;
|
||||
CPU_IDENTIFICATION CpuId;
|
||||
KPROCESSOR_STATE ProcessorState;
|
||||
PVOID DpcStack;
|
||||
ULONG_PTR MultiThreadProcessorSet;
|
||||
|
@ -13,12 +13,15 @@
|
||||
|
||||
|
||||
/* Architecture-specific enumeration lists forward references */
|
||||
typedef enum _CPU_VENDOR CPU_VENDOR, *PCPU_VENDOR;
|
||||
typedef enum _CPUID_FEATURES CPUID_FEATURES, *PCPUID_FEATURES;
|
||||
typedef enum _CPUID_REQUESTS CPUID_REQUESTS, *PCPUID_REQUESTS;
|
||||
|
||||
/* Architecture-specific structures forward references */
|
||||
typedef struct _CONTEXT CONTEXT, *PCONTEXT;
|
||||
typedef struct _CPU_IDENTIFICATION CPU_IDENTIFICATION, *PCPU_IDENTIFICATION;
|
||||
typedef struct _CPUID_REGISTERS CPUID_REGISTERS, *PCPUID_REGISTERS;
|
||||
typedef struct _CPUID_SIGNATURE CPUID_SIGNATURE, *PCPUID_SIGNATURE;
|
||||
typedef struct _FLOATING_SAVE_AREA FLOATING_SAVE_AREA, *PFLOATING_SAVE_AREA;
|
||||
typedef struct _HARDWARE_PTE HARDWARE_PTE, *PHARDWARE_PTE;
|
||||
typedef struct _KDESCRIPTOR KDESCRIPTOR, *PKDESCRIPTOR;
|
||||
|
@ -61,6 +61,14 @@
|
||||
#define SEGMENT_FS 0x64
|
||||
#define SEGMENT_GS 0x65
|
||||
|
||||
/* CPU vendor enumeration list */
|
||||
typedef enum _CPU_VENDOR
|
||||
{
|
||||
CPU_VENDOR_AMD = 0x68747541,
|
||||
CPU_VENDOR_INTEL = 0x756e6547,
|
||||
CPU_VENDOR_UNKNOWN = 0xFFFFFFFF
|
||||
} CPU_VENDOR, *PCPU_VENDOR;
|
||||
|
||||
/* CPUID features enumeration list */
|
||||
typedef enum _CPUID_FEATURES
|
||||
{
|
||||
@ -136,6 +144,16 @@ typedef enum _CPUID_REQUESTS
|
||||
CPUID_GET_SERIAL
|
||||
} CPUID_REQUESTS, *PCPUID_REQUESTS;
|
||||
|
||||
/* Processor identification information */
|
||||
typedef struct _CPU_IDENTIFICATION
|
||||
{
|
||||
USHORT Family;
|
||||
USHORT Model;
|
||||
USHORT Stepping;
|
||||
CPU_VENDOR Vendor;
|
||||
UCHAR VendorName[13];
|
||||
} CPU_IDENTIFICATION, *PCPU_IDENTIFICATION;
|
||||
|
||||
/* CPUID registers */
|
||||
typedef struct _CPUID_REGISTERS
|
||||
{
|
||||
@ -147,4 +165,16 @@ typedef struct _CPUID_REGISTERS
|
||||
UINT32 Edx;
|
||||
} CPUID_REGISTERS, *PCPUID_REGISTERS;
|
||||
|
||||
/* CPU signature read from CPUID structure definition */
|
||||
typedef struct _CPUID_SIGNATURE
|
||||
{
|
||||
ULONG Stepping:4;
|
||||
ULONG Model:4;
|
||||
ULONG Family:4;
|
||||
ULONG Unused1:4;
|
||||
ULONG ExtendedModel:4;
|
||||
ULONG ExtendedFamily:8;
|
||||
ULONG Unused2:4;
|
||||
} CPU_SIGNATURE, *PCPU_SIGNATURE;
|
||||
|
||||
#endif /* __XTDK_I686_ARTYPES_H */
|
||||
|
@ -13,6 +13,7 @@
|
||||
#include <xtstruct.h>
|
||||
#include <xttypes.h>
|
||||
#include ARCH_HEADER(xtstruct.h)
|
||||
#include ARCH_HEADER(artypes.h)
|
||||
|
||||
|
||||
/* Selector masks */
|
||||
@ -352,6 +353,7 @@ typedef struct _KPROCESSOR_CONTROL_BLOCK
|
||||
PKTHREAD NextThread;
|
||||
UCHAR Number;
|
||||
ULONG_PTR SetMember;
|
||||
CPU_IDENTIFICATION CpuId;
|
||||
KPROCESSOR_STATE ProcessorState;
|
||||
ULONG_PTR MultiThreadProcessorSet;
|
||||
PVOID DpcStack;
|
||||
|
@ -13,12 +13,15 @@
|
||||
|
||||
|
||||
/* Architecture-specific enumeration lists forward references */
|
||||
typedef enum _CPU_VENDOR CPU_VENDOR, *PCPU_VENDOR;
|
||||
typedef enum _CPUID_FEATURES CPUID_FEATURES, *PCPUID_FEATURES;
|
||||
typedef enum _CPUID_REQUESTS CPUID_REQUESTS, *PCPUID_REQUESTS;
|
||||
|
||||
/* Architecture-specific structures forward references */
|
||||
typedef struct _CONTEXT CONTEXT, *PCONTEXT;
|
||||
typedef struct _CPU_IDENTIFICATION CPU_IDENTIFICATION, *PCPU_IDENTIFICATION;
|
||||
typedef struct _CPUID_REGISTERS CPUID_REGISTERS, *PCPUID_REGISTERS;
|
||||
typedef struct _CPUID_SIGNATURE CPUID_SIGNATURE, *PCPUID_SIGNATURE;
|
||||
typedef struct _FLOATING_SAVE_AREA FLOATING_SAVE_AREA, *PFLOATING_SAVE_AREA;
|
||||
typedef struct _HARDWARE_PTE HARDWARE_PTE, *PHARDWARE_PTE;
|
||||
typedef struct _HARDWARE_PTE_PAE HARDWARE_PTE_PAE, *PHARDWARE_PTE_PAE;
|
||||
|
Loading…
Reference in New Issue
Block a user