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_VIP_MASK 0x00100000
|
||||||
#define X86_EFLAGS_ID_MASK 0x00200000
|
#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 */
|
/* CPUID features enumeration list */
|
||||||
typedef enum _CPUID_FEATURES
|
typedef enum _CPUID_FEATURES
|
||||||
{
|
{
|
||||||
@ -185,6 +193,16 @@ typedef enum _CPUID_REQUESTS
|
|||||||
CPUID_GET_SERIAL
|
CPUID_GET_SERIAL
|
||||||
} CPUID_REQUESTS, *PCPUID_REQUESTS;
|
} 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 */
|
/* CPUID registers */
|
||||||
typedef struct _CPUID_REGISTERS
|
typedef struct _CPUID_REGISTERS
|
||||||
{
|
{
|
||||||
@ -196,4 +214,16 @@ typedef struct _CPUID_REGISTERS
|
|||||||
UINT32 Edx;
|
UINT32 Edx;
|
||||||
} CPUID_REGISTERS, *PCPUID_REGISTERS;
|
} 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 */
|
#endif /* __XTDK_AMD64_ARTYPES_H */
|
||||||
|
@ -13,6 +13,7 @@
|
|||||||
#include <xtstruct.h>
|
#include <xtstruct.h>
|
||||||
#include <xttypes.h>
|
#include <xttypes.h>
|
||||||
#include ARCH_HEADER(xtstruct.h)
|
#include ARCH_HEADER(xtstruct.h)
|
||||||
|
#include ARCH_HEADER(artypes.h)
|
||||||
|
|
||||||
|
|
||||||
/* Selector masks */
|
/* Selector masks */
|
||||||
@ -449,6 +450,7 @@ typedef struct _KPROCESSOR_CONTROL_BLOCK
|
|||||||
PKTHREAD NextThread;
|
PKTHREAD NextThread;
|
||||||
ULONG64 RspBase;
|
ULONG64 RspBase;
|
||||||
ULONG_PTR SetMember;
|
ULONG_PTR SetMember;
|
||||||
|
CPU_IDENTIFICATION CpuId;
|
||||||
KPROCESSOR_STATE ProcessorState;
|
KPROCESSOR_STATE ProcessorState;
|
||||||
PVOID DpcStack;
|
PVOID DpcStack;
|
||||||
ULONG_PTR MultiThreadProcessorSet;
|
ULONG_PTR MultiThreadProcessorSet;
|
||||||
|
@ -13,12 +13,15 @@
|
|||||||
|
|
||||||
|
|
||||||
/* Architecture-specific enumeration lists forward references */
|
/* 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_FEATURES CPUID_FEATURES, *PCPUID_FEATURES;
|
||||||
typedef enum _CPUID_REQUESTS CPUID_REQUESTS, *PCPUID_REQUESTS;
|
typedef enum _CPUID_REQUESTS CPUID_REQUESTS, *PCPUID_REQUESTS;
|
||||||
|
|
||||||
/* Architecture-specific structures forward references */
|
/* Architecture-specific structures forward references */
|
||||||
typedef struct _CONTEXT CONTEXT, *PCONTEXT;
|
typedef struct _CONTEXT CONTEXT, *PCONTEXT;
|
||||||
|
typedef struct _CPU_IDENTIFICATION CPU_IDENTIFICATION, *PCPU_IDENTIFICATION;
|
||||||
typedef struct _CPUID_REGISTERS CPUID_REGISTERS, *PCPUID_REGISTERS;
|
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 _FLOATING_SAVE_AREA FLOATING_SAVE_AREA, *PFLOATING_SAVE_AREA;
|
||||||
typedef struct _HARDWARE_PTE HARDWARE_PTE, *PHARDWARE_PTE;
|
typedef struct _HARDWARE_PTE HARDWARE_PTE, *PHARDWARE_PTE;
|
||||||
typedef struct _KDESCRIPTOR KDESCRIPTOR, *PKDESCRIPTOR;
|
typedef struct _KDESCRIPTOR KDESCRIPTOR, *PKDESCRIPTOR;
|
||||||
|
@ -61,6 +61,14 @@
|
|||||||
#define SEGMENT_FS 0x64
|
#define SEGMENT_FS 0x64
|
||||||
#define SEGMENT_GS 0x65
|
#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 */
|
/* CPUID features enumeration list */
|
||||||
typedef enum _CPUID_FEATURES
|
typedef enum _CPUID_FEATURES
|
||||||
{
|
{
|
||||||
@ -136,6 +144,16 @@ typedef enum _CPUID_REQUESTS
|
|||||||
CPUID_GET_SERIAL
|
CPUID_GET_SERIAL
|
||||||
} CPUID_REQUESTS, *PCPUID_REQUESTS;
|
} 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 */
|
/* CPUID registers */
|
||||||
typedef struct _CPUID_REGISTERS
|
typedef struct _CPUID_REGISTERS
|
||||||
{
|
{
|
||||||
@ -147,4 +165,16 @@ typedef struct _CPUID_REGISTERS
|
|||||||
UINT32 Edx;
|
UINT32 Edx;
|
||||||
} CPUID_REGISTERS, *PCPUID_REGISTERS;
|
} 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 */
|
#endif /* __XTDK_I686_ARTYPES_H */
|
||||||
|
@ -13,6 +13,7 @@
|
|||||||
#include <xtstruct.h>
|
#include <xtstruct.h>
|
||||||
#include <xttypes.h>
|
#include <xttypes.h>
|
||||||
#include ARCH_HEADER(xtstruct.h)
|
#include ARCH_HEADER(xtstruct.h)
|
||||||
|
#include ARCH_HEADER(artypes.h)
|
||||||
|
|
||||||
|
|
||||||
/* Selector masks */
|
/* Selector masks */
|
||||||
@ -352,6 +353,7 @@ typedef struct _KPROCESSOR_CONTROL_BLOCK
|
|||||||
PKTHREAD NextThread;
|
PKTHREAD NextThread;
|
||||||
UCHAR Number;
|
UCHAR Number;
|
||||||
ULONG_PTR SetMember;
|
ULONG_PTR SetMember;
|
||||||
|
CPU_IDENTIFICATION CpuId;
|
||||||
KPROCESSOR_STATE ProcessorState;
|
KPROCESSOR_STATE ProcessorState;
|
||||||
ULONG_PTR MultiThreadProcessorSet;
|
ULONG_PTR MultiThreadProcessorSet;
|
||||||
PVOID DpcStack;
|
PVOID DpcStack;
|
||||||
|
@ -13,12 +13,15 @@
|
|||||||
|
|
||||||
|
|
||||||
/* Architecture-specific enumeration lists forward references */
|
/* 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_FEATURES CPUID_FEATURES, *PCPUID_FEATURES;
|
||||||
typedef enum _CPUID_REQUESTS CPUID_REQUESTS, *PCPUID_REQUESTS;
|
typedef enum _CPUID_REQUESTS CPUID_REQUESTS, *PCPUID_REQUESTS;
|
||||||
|
|
||||||
/* Architecture-specific structures forward references */
|
/* Architecture-specific structures forward references */
|
||||||
typedef struct _CONTEXT CONTEXT, *PCONTEXT;
|
typedef struct _CONTEXT CONTEXT, *PCONTEXT;
|
||||||
|
typedef struct _CPU_IDENTIFICATION CPU_IDENTIFICATION, *PCPU_IDENTIFICATION;
|
||||||
typedef struct _CPUID_REGISTERS CPUID_REGISTERS, *PCPUID_REGISTERS;
|
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 _FLOATING_SAVE_AREA FLOATING_SAVE_AREA, *PFLOATING_SAVE_AREA;
|
||||||
typedef struct _HARDWARE_PTE HARDWARE_PTE, *PHARDWARE_PTE;
|
typedef struct _HARDWARE_PTE HARDWARE_PTE, *PHARDWARE_PTE;
|
||||||
typedef struct _HARDWARE_PTE_PAE HARDWARE_PTE_PAE, *PHARDWARE_PTE_PAE;
|
typedef struct _HARDWARE_PTE_PAE HARDWARE_PTE_PAE, *PHARDWARE_PTE_PAE;
|
||||||
|
Loading…
Reference in New Issue
Block a user