mirror of
https://github.com/anrieff/libcpuid
synced 2024-11-20 23:01:51 +00:00
Remove all trailling spaces
It is annoying with some text editors
This commit is contained in:
parent
d317e1504f
commit
0b05f45e03
41 changed files with 3115 additions and 3115 deletions
|
@ -2,7 +2,7 @@ libcpuid
|
||||||
========
|
========
|
||||||
|
|
||||||
libcpuid provides CPU identification for the x86 (and x86_64).
|
libcpuid provides CPU identification for the x86 (and x86_64).
|
||||||
For details about the programming API, you might want to
|
For details about the programming API, you might want to
|
||||||
take a look at the project's website on sourceforge
|
take a look at the project's website on sourceforge
|
||||||
(http://libcpuid.sourceforge.net/). There you'd find a short
|
(http://libcpuid.sourceforge.net/). There you'd find a short
|
||||||
[tutorial](http://libcpuid.sf.net/documentation.html), as well
|
[tutorial](http://libcpuid.sf.net/documentation.html), as well
|
||||||
|
@ -52,7 +52,7 @@ a good idea to run `make test`. If some test fails, and you're confident
|
||||||
that the test is wrong and needs fixing, run `make fix-tests`.
|
that the test is wrong and needs fixing, run `make fix-tests`.
|
||||||
|
|
||||||
You can also add a new test (which is basically a file containing
|
You can also add a new test (which is basically a file containing
|
||||||
the raw CPUID data and the expected decoded items) by using
|
the raw CPUID data and the expected decoded items) by using
|
||||||
`tests/create_test.py`. The workflow there is as follows:
|
`tests/create_test.py`. The workflow there is as follows:
|
||||||
|
|
||||||
1. Run "cpuid_tool" with no arguments. It will tell you that it
|
1. Run "cpuid_tool" with no arguments. It will tell you that it
|
||||||
|
|
|
@ -1,127 +1,127 @@
|
||||||
#include <ntddk.h>
|
#include <ntddk.h>
|
||||||
|
|
||||||
#define FILE_DEVICE_UNKNOWN 0x00000022
|
#define FILE_DEVICE_UNKNOWN 0x00000022
|
||||||
#define IOCTL_UNKNOWN_BASE FILE_DEVICE_UNKNOWN
|
#define IOCTL_UNKNOWN_BASE FILE_DEVICE_UNKNOWN
|
||||||
#define IOCTL_PROCVIEW_RDMSR CTL_CODE(IOCTL_UNKNOWN_BASE, 0x0803, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
|
#define IOCTL_PROCVIEW_RDMSR CTL_CODE(IOCTL_UNKNOWN_BASE, 0x0803, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
|
||||||
|
|
||||||
#define FLAG_HANDLE_OPENED 1
|
#define FLAG_HANDLE_OPENED 1
|
||||||
|
|
||||||
void UnloadDriver(PDRIVER_OBJECT DriverObject);
|
void UnloadDriver(PDRIVER_OBJECT DriverObject);
|
||||||
NTSTATUS DispatchCreateClose(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp);
|
NTSTATUS DispatchCreateClose(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp);
|
||||||
NTSTATUS DispatchIoctl(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp);
|
NTSTATUS DispatchIoctl(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp);
|
||||||
|
|
||||||
NTSTATUS DriverEntry(IN PDRIVER_OBJECT DriverObject, IN PUNICODE_STRING RegistryPath);
|
NTSTATUS DriverEntry(IN PDRIVER_OBJECT DriverObject, IN PUNICODE_STRING RegistryPath);
|
||||||
|
|
||||||
typedef struct _DEVICE_EXTENSION{
|
typedef struct _DEVICE_EXTENSION{
|
||||||
PDEVICE_OBJECT DeviceObject;
|
PDEVICE_OBJECT DeviceObject;
|
||||||
} DEVICE_EXTENSION, *PDEVICE_EXTENSION;
|
} DEVICE_EXTENSION, *PDEVICE_EXTENSION;
|
||||||
|
|
||||||
PDEVICE_OBJECT g_pDeviceObject;
|
PDEVICE_OBJECT g_pDeviceObject;
|
||||||
|
|
||||||
#pragma alloc_text(PAGE0DEF, DriverEntry)
|
#pragma alloc_text(PAGE0DEF, DriverEntry)
|
||||||
|
|
||||||
//
|
//
|
||||||
NTSTATUS DriverEntry(IN PDRIVER_OBJECT DriverObject, IN PUNICODE_STRING RegistryPath){
|
NTSTATUS DriverEntry(IN PDRIVER_OBJECT DriverObject, IN PUNICODE_STRING RegistryPath){
|
||||||
NTSTATUS ntStatus;
|
NTSTATUS ntStatus;
|
||||||
UNICODE_STRING uszDriverString;
|
UNICODE_STRING uszDriverString;
|
||||||
UNICODE_STRING uszDeviceString;
|
UNICODE_STRING uszDeviceString;
|
||||||
|
|
||||||
PDEVICE_OBJECT pDeviceObject;
|
PDEVICE_OBJECT pDeviceObject;
|
||||||
PDEVICE_EXTENSION extension;
|
PDEVICE_EXTENSION extension;
|
||||||
|
|
||||||
// Point uszDriverString at the driver name
|
// Point uszDriverString at the driver name
|
||||||
RtlInitUnicodeString(&uszDriverString, L"\\Device\\TmpRdr");
|
RtlInitUnicodeString(&uszDriverString, L"\\Device\\TmpRdr");
|
||||||
|
|
||||||
// Create and initialize device object
|
// Create and initialize device object
|
||||||
ntStatus = IoCreateDevice(DriverObject, sizeof(DEVICE_EXTENSION), &uszDriverString, FILE_DEVICE_UNKNOWN, 0, FALSE, &pDeviceObject);
|
ntStatus = IoCreateDevice(DriverObject, sizeof(DEVICE_EXTENSION), &uszDriverString, FILE_DEVICE_UNKNOWN, 0, FALSE, &pDeviceObject);
|
||||||
if(ntStatus != STATUS_SUCCESS)
|
if(ntStatus != STATUS_SUCCESS)
|
||||||
return ntStatus;
|
return ntStatus;
|
||||||
|
|
||||||
// Assign extension variable
|
// Assign extension variable
|
||||||
extension = pDeviceObject->DeviceExtension;
|
extension = pDeviceObject->DeviceExtension;
|
||||||
|
|
||||||
// Point uszDeviceString at the device name
|
// Point uszDeviceString at the device name
|
||||||
RtlInitUnicodeString(&uszDeviceString, L"\\DosDevices\\TmpRdr");
|
RtlInitUnicodeString(&uszDeviceString, L"\\DosDevices\\TmpRdr");
|
||||||
|
|
||||||
// Create symbolic link to the user-visible name
|
// Create symbolic link to the user-visible name
|
||||||
ntStatus = IoCreateSymbolicLink(&uszDeviceString, &uszDriverString);
|
ntStatus = IoCreateSymbolicLink(&uszDeviceString, &uszDriverString);
|
||||||
|
|
||||||
if(ntStatus != STATUS_SUCCESS){
|
if(ntStatus != STATUS_SUCCESS){
|
||||||
// Delete device object if not successful
|
// Delete device object if not successful
|
||||||
IoDeleteDevice(pDeviceObject);
|
IoDeleteDevice(pDeviceObject);
|
||||||
return ntStatus;
|
return ntStatus;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Assign global pointer to the device object for use by the callback functions
|
// Assign global pointer to the device object for use by the callback functions
|
||||||
g_pDeviceObject = pDeviceObject;
|
g_pDeviceObject = pDeviceObject;
|
||||||
|
|
||||||
// Load structure to point to IRP handlers
|
// Load structure to point to IRP handlers
|
||||||
DriverObject->DriverUnload = UnloadDriver;
|
DriverObject->DriverUnload = UnloadDriver;
|
||||||
DriverObject->MajorFunction[IRP_MJ_CREATE] = DispatchCreateClose;
|
DriverObject->MajorFunction[IRP_MJ_CREATE] = DispatchCreateClose;
|
||||||
DriverObject->MajorFunction[IRP_MJ_CLOSE] = DispatchCreateClose;
|
DriverObject->MajorFunction[IRP_MJ_CLOSE] = DispatchCreateClose;
|
||||||
DriverObject->MajorFunction[IRP_MJ_DEVICE_CONTROL] = DispatchIoctl;
|
DriverObject->MajorFunction[IRP_MJ_DEVICE_CONTROL] = DispatchIoctl;
|
||||||
|
|
||||||
// Return success
|
// Return success
|
||||||
return ntStatus;
|
return ntStatus;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
NTSTATUS DispatchCreateClose(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp){
|
NTSTATUS DispatchCreateClose(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp){
|
||||||
PDEVICE_EXTENSION extension = DeviceObject->DeviceExtension;
|
PDEVICE_EXTENSION extension = DeviceObject->DeviceExtension;
|
||||||
|
|
||||||
Irp->IoStatus.Status = STATUS_SUCCESS;
|
Irp->IoStatus.Status = STATUS_SUCCESS;
|
||||||
Irp->IoStatus.Information = 0;
|
Irp->IoStatus.Information = 0;
|
||||||
|
|
||||||
IoCompleteRequest(Irp, IO_NO_INCREMENT);
|
IoCompleteRequest(Irp, IO_NO_INCREMENT);
|
||||||
return STATUS_SUCCESS;
|
return STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
NTSTATUS DispatchIoctl(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp){
|
NTSTATUS DispatchIoctl(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp){
|
||||||
NTSTATUS ntStatus = STATUS_UNSUCCESSFUL;
|
NTSTATUS ntStatus = STATUS_UNSUCCESSFUL;
|
||||||
PIO_STACK_LOCATION irpStack = IoGetCurrentIrpStackLocation(Irp);
|
PIO_STACK_LOCATION irpStack = IoGetCurrentIrpStackLocation(Irp);
|
||||||
PDEVICE_EXTENSION extension = DeviceObject->DeviceExtension;
|
PDEVICE_EXTENSION extension = DeviceObject->DeviceExtension;
|
||||||
__int64 *p__int64;
|
__int64 *p__int64;
|
||||||
int iMSRregister;
|
int iMSRregister;
|
||||||
|
|
||||||
switch(irpStack->Parameters.DeviceIoControl.IoControlCode){
|
switch(irpStack->Parameters.DeviceIoControl.IoControlCode){
|
||||||
case IOCTL_PROCVIEW_RDMSR:
|
case IOCTL_PROCVIEW_RDMSR:
|
||||||
if(irpStack->Parameters.DeviceIoControl.OutputBufferLength >= sizeof(__int64)){
|
if(irpStack->Parameters.DeviceIoControl.OutputBufferLength >= sizeof(__int64)){
|
||||||
if(irpStack->Parameters.DeviceIoControl.InputBufferLength == sizeof(int))
|
if(irpStack->Parameters.DeviceIoControl.InputBufferLength == sizeof(int))
|
||||||
iMSRregister = *((int *)Irp->AssociatedIrp.SystemBuffer);
|
iMSRregister = *((int *)Irp->AssociatedIrp.SystemBuffer);
|
||||||
else
|
else
|
||||||
iMSRregister = 0x19c;
|
iMSRregister = 0x19c;
|
||||||
|
|
||||||
p__int64 = Irp->AssociatedIrp.SystemBuffer;
|
p__int64 = Irp->AssociatedIrp.SystemBuffer;
|
||||||
*p__int64 = __readmsr(iMSRregister);
|
*p__int64 = __readmsr(iMSRregister);
|
||||||
|
|
||||||
ntStatus = STATUS_SUCCESS;
|
ntStatus = STATUS_SUCCESS;
|
||||||
Irp->IoStatus.Information = sizeof(__int64);
|
Irp->IoStatus.Information = sizeof(__int64);
|
||||||
IoCompleteRequest(Irp, IO_NO_INCREMENT);
|
IoCompleteRequest(Irp, IO_NO_INCREMENT);
|
||||||
return ntStatus;
|
return ntStatus;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
Irp->IoStatus.Status = ntStatus;
|
Irp->IoStatus.Status = ntStatus;
|
||||||
|
|
||||||
if(ntStatus == STATUS_SUCCESS)
|
if(ntStatus == STATUS_SUCCESS)
|
||||||
Irp->IoStatus.Information = irpStack->Parameters.DeviceIoControl.OutputBufferLength;
|
Irp->IoStatus.Information = irpStack->Parameters.DeviceIoControl.OutputBufferLength;
|
||||||
else
|
else
|
||||||
Irp->IoStatus.Information = 0;
|
Irp->IoStatus.Information = 0;
|
||||||
|
|
||||||
IoCompleteRequest(Irp, IO_NO_INCREMENT);
|
IoCompleteRequest(Irp, IO_NO_INCREMENT);
|
||||||
return ntStatus;
|
return ntStatus;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
void UnloadDriver(IN PDRIVER_OBJECT DriverObject){
|
void UnloadDriver(IN PDRIVER_OBJECT DriverObject){
|
||||||
UNICODE_STRING uszDeviceString;
|
UNICODE_STRING uszDeviceString;
|
||||||
|
|
||||||
IoDeleteDevice(DriverObject->DeviceObject);
|
IoDeleteDevice(DriverObject->DeviceObject);
|
||||||
|
|
||||||
RtlInitUnicodeString(&uszDeviceString, L"\\DosDevices\\TmpRdr");
|
RtlInitUnicodeString(&uszDeviceString, L"\\DosDevices\\TmpRdr");
|
||||||
IoDeleteSymbolicLink(&uszDeviceString);
|
IoDeleteSymbolicLink(&uszDeviceString);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,272 +1,272 @@
|
||||||
<?xml version="1.0" encoding="windows-1251"?>
|
<?xml version="1.0" encoding="windows-1251"?>
|
||||||
<VisualStudioProject
|
<VisualStudioProject
|
||||||
ProjectType="Visual C++"
|
ProjectType="Visual C++"
|
||||||
Version="8,00"
|
Version="8,00"
|
||||||
Name="TmpRdr"
|
Name="TmpRdr"
|
||||||
ProjectGUID="{C036F0C0-6A2C-4F27-9B37-E1337920BAB6}"
|
ProjectGUID="{C036F0C0-6A2C-4F27-9B37-E1337920BAB6}"
|
||||||
RootNamespace="ProcObsrv"
|
RootNamespace="ProcObsrv"
|
||||||
>
|
>
|
||||||
<Platforms>
|
<Platforms>
|
||||||
<Platform
|
<Platform
|
||||||
Name="Win32"
|
Name="Win32"
|
||||||
/>
|
/>
|
||||||
</Platforms>
|
</Platforms>
|
||||||
<ToolFiles>
|
<ToolFiles>
|
||||||
</ToolFiles>
|
</ToolFiles>
|
||||||
<Configurations>
|
<Configurations>
|
||||||
<Configuration
|
<Configuration
|
||||||
Name="Release|Win32"
|
Name="Release|Win32"
|
||||||
OutputDirectory=".\Release"
|
OutputDirectory=".\Release"
|
||||||
IntermediateDirectory=".\Release"
|
IntermediateDirectory=".\Release"
|
||||||
ConfigurationType="2"
|
ConfigurationType="2"
|
||||||
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
|
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
|
||||||
UseOfMFC="0"
|
UseOfMFC="0"
|
||||||
ATLMinimizesCRunTimeLibraryUsage="false"
|
ATLMinimizesCRunTimeLibraryUsage="false"
|
||||||
>
|
>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreBuildEventTool"
|
Name="VCPreBuildEventTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCXMLDataGeneratorTool"
|
Name="VCXMLDataGeneratorTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCWebServiceProxyGeneratorTool"
|
Name="VCWebServiceProxyGeneratorTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCMIDLTool"
|
Name="VCMIDLTool"
|
||||||
PreprocessorDefinitions="_DEBUG"
|
PreprocessorDefinitions="_DEBUG"
|
||||||
MkTypLibCompatible="true"
|
MkTypLibCompatible="true"
|
||||||
SuppressStartupBanner="true"
|
SuppressStartupBanner="true"
|
||||||
TargetEnvironment="1"
|
TargetEnvironment="1"
|
||||||
TypeLibraryName=".\Release/ProcObsrv.tlb"
|
TypeLibraryName=".\Release/ProcObsrv.tlb"
|
||||||
HeaderFileName=""
|
HeaderFileName=""
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
Optimization="3"
|
Optimization="3"
|
||||||
EnableIntrinsicFunctions="true"
|
EnableIntrinsicFunctions="true"
|
||||||
FavorSizeOrSpeed="2"
|
FavorSizeOrSpeed="2"
|
||||||
OmitFramePointers="true"
|
OmitFramePointers="true"
|
||||||
WholeProgramOptimization="true"
|
WholeProgramOptimization="true"
|
||||||
AdditionalIncludeDirectories="C:\WINDDK\2600\inc\ddk\wxp;C:\WINDDK\2600\inc\wxp"
|
AdditionalIncludeDirectories="C:\WINDDK\2600\inc\ddk\wxp;C:\WINDDK\2600\inc\wxp"
|
||||||
PreprocessorDefinitions="_X86_;i386;STD_CALL;CONDITION_HANDLING;WIN32_LEAN_AND_MEAN;NT_UP;RDRDBG;SRVDBG;DBG;_IDWBUILD;UNICODE"
|
PreprocessorDefinitions="_X86_;i386;STD_CALL;CONDITION_HANDLING;WIN32_LEAN_AND_MEAN;NT_UP;RDRDBG;SRVDBG;DBG;_IDWBUILD;UNICODE"
|
||||||
StringPooling="true"
|
StringPooling="true"
|
||||||
ExceptionHandling="0"
|
ExceptionHandling="0"
|
||||||
BasicRuntimeChecks="0"
|
BasicRuntimeChecks="0"
|
||||||
RuntimeLibrary="0"
|
RuntimeLibrary="0"
|
||||||
BufferSecurityCheck="false"
|
BufferSecurityCheck="false"
|
||||||
EnableFunctionLevelLinking="true"
|
EnableFunctionLevelLinking="true"
|
||||||
PrecompiledHeaderFile=".\Release/$(ProjectName).pch"
|
PrecompiledHeaderFile=".\Release/$(ProjectName).pch"
|
||||||
AssemblerListingLocation=".\Release/"
|
AssemblerListingLocation=".\Release/"
|
||||||
ObjectFile=".\Release/"
|
ObjectFile=".\Release/"
|
||||||
ProgramDataBaseFileName=".\Release/"
|
ProgramDataBaseFileName=".\Release/"
|
||||||
BrowseInformation="0"
|
BrowseInformation="0"
|
||||||
WarningLevel="3"
|
WarningLevel="3"
|
||||||
SuppressStartupBanner="true"
|
SuppressStartupBanner="true"
|
||||||
DebugInformationFormat="0"
|
DebugInformationFormat="0"
|
||||||
CallingConvention="2"
|
CallingConvention="2"
|
||||||
CompileAs="1"
|
CompileAs="1"
|
||||||
UndefinePreprocessorDefinitions="NT_INST"
|
UndefinePreprocessorDefinitions="NT_INST"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCManagedResourceCompilerTool"
|
Name="VCManagedResourceCompilerTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCResourceCompilerTool"
|
Name="VCResourceCompilerTool"
|
||||||
Culture="1033"
|
Culture="1033"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreLinkEventTool"
|
Name="VCPreLinkEventTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCLinkerTool"
|
Name="VCLinkerTool"
|
||||||
AdditionalOptions="/SUBSYSTEM:native /LIBPATH:"C:\WINDDK\2600\lib\wxp\i386" /DRIVER"
|
AdditionalOptions="/SUBSYSTEM:native /LIBPATH:"C:\WINDDK\2600\lib\wxp\i386" /DRIVER"
|
||||||
AdditionalDependencies="ntoskrnl.lib hal.lib"
|
AdditionalDependencies="ntoskrnl.lib hal.lib"
|
||||||
OutputFile="..\$(ProjectName).sys"
|
OutputFile="..\$(ProjectName).sys"
|
||||||
LinkIncremental="1"
|
LinkIncremental="1"
|
||||||
SuppressStartupBanner="true"
|
SuppressStartupBanner="true"
|
||||||
GenerateManifest="false"
|
GenerateManifest="false"
|
||||||
IgnoreAllDefaultLibraries="true"
|
IgnoreAllDefaultLibraries="true"
|
||||||
GenerateDebugInformation="false"
|
GenerateDebugInformation="false"
|
||||||
ProgramDatabaseFile=".\Debug/$(ProjectName).pdb"
|
ProgramDatabaseFile=".\Debug/$(ProjectName).pdb"
|
||||||
SubSystem="3"
|
SubSystem="3"
|
||||||
LinkTimeCodeGeneration="1"
|
LinkTimeCodeGeneration="1"
|
||||||
EntryPointSymbol="DriverEntry@8"
|
EntryPointSymbol="DriverEntry@8"
|
||||||
BaseAddress="0x10000"
|
BaseAddress="0x10000"
|
||||||
ImportLibrary=".\Release/$(ProjectName).lib"
|
ImportLibrary=".\Release/$(ProjectName).lib"
|
||||||
TargetMachine="1"
|
TargetMachine="1"
|
||||||
AllowIsolation="true"
|
AllowIsolation="true"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCALinkTool"
|
Name="VCALinkTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCManifestTool"
|
Name="VCManifestTool"
|
||||||
EmbedManifest="false"
|
EmbedManifest="false"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCXDCMakeTool"
|
Name="VCXDCMakeTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCBscMakeTool"
|
Name="VCBscMakeTool"
|
||||||
SuppressStartupBanner="true"
|
SuppressStartupBanner="true"
|
||||||
OutputFile=".\Release/ProcObsrv.bsc"
|
OutputFile=".\Release/ProcObsrv.bsc"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCFxCopTool"
|
Name="VCFxCopTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCAppVerifierTool"
|
Name="VCAppVerifierTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCWebDeploymentTool"
|
Name="VCWebDeploymentTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPostBuildEventTool"
|
Name="VCPostBuildEventTool"
|
||||||
/>
|
/>
|
||||||
</Configuration>
|
</Configuration>
|
||||||
<Configuration
|
<Configuration
|
||||||
Name="Debug|Win32"
|
Name="Debug|Win32"
|
||||||
OutputDirectory=".\Debug"
|
OutputDirectory=".\Debug"
|
||||||
IntermediateDirectory=".\Debug"
|
IntermediateDirectory=".\Debug"
|
||||||
ConfigurationType="2"
|
ConfigurationType="2"
|
||||||
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
|
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
|
||||||
UseOfMFC="0"
|
UseOfMFC="0"
|
||||||
ATLMinimizesCRunTimeLibraryUsage="false"
|
ATLMinimizesCRunTimeLibraryUsage="false"
|
||||||
>
|
>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreBuildEventTool"
|
Name="VCPreBuildEventTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCXMLDataGeneratorTool"
|
Name="VCXMLDataGeneratorTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCWebServiceProxyGeneratorTool"
|
Name="VCWebServiceProxyGeneratorTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCMIDLTool"
|
Name="VCMIDLTool"
|
||||||
PreprocessorDefinitions="_DEBUG"
|
PreprocessorDefinitions="_DEBUG"
|
||||||
MkTypLibCompatible="true"
|
MkTypLibCompatible="true"
|
||||||
SuppressStartupBanner="true"
|
SuppressStartupBanner="true"
|
||||||
TargetEnvironment="1"
|
TargetEnvironment="1"
|
||||||
TypeLibraryName=".\Debug/ProcObsrv.tlb"
|
TypeLibraryName=".\Debug/ProcObsrv.tlb"
|
||||||
HeaderFileName=""
|
HeaderFileName=""
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
Optimization="4"
|
Optimization="4"
|
||||||
EnableIntrinsicFunctions="true"
|
EnableIntrinsicFunctions="true"
|
||||||
FavorSizeOrSpeed="0"
|
FavorSizeOrSpeed="0"
|
||||||
OmitFramePointers="false"
|
OmitFramePointers="false"
|
||||||
WholeProgramOptimization="false"
|
WholeProgramOptimization="false"
|
||||||
AdditionalIncludeDirectories="C:\WINDDK\2600\inc\ddk\wxp;C:\WINDDK\2600\inc\wxp"
|
AdditionalIncludeDirectories="C:\WINDDK\2600\inc\ddk\wxp;C:\WINDDK\2600\inc\wxp"
|
||||||
PreprocessorDefinitions="_DEBUG;_X86_;i386;STD_CALL;CONDITION_HANDLING;WIN32_LEAN_AND_MEAN;NT_UP;RDRDBG;SRVDBG;DBG;_IDWBUILD"
|
PreprocessorDefinitions="_DEBUG;_X86_;i386;STD_CALL;CONDITION_HANDLING;WIN32_LEAN_AND_MEAN;NT_UP;RDRDBG;SRVDBG;DBG;_IDWBUILD"
|
||||||
StringPooling="true"
|
StringPooling="true"
|
||||||
RuntimeLibrary="0"
|
RuntimeLibrary="0"
|
||||||
EnableFunctionLevelLinking="true"
|
EnableFunctionLevelLinking="true"
|
||||||
PrecompiledHeaderFile=".\Debug/$(ProjectName).pch"
|
PrecompiledHeaderFile=".\Debug/$(ProjectName).pch"
|
||||||
AssemblerListingLocation=".\Debug/"
|
AssemblerListingLocation=".\Debug/"
|
||||||
ObjectFile=".\Debug/"
|
ObjectFile=".\Debug/"
|
||||||
ProgramDataBaseFileName=".\Debug/"
|
ProgramDataBaseFileName=".\Debug/"
|
||||||
BrowseInformation="1"
|
BrowseInformation="1"
|
||||||
WarningLevel="3"
|
WarningLevel="3"
|
||||||
SuppressStartupBanner="true"
|
SuppressStartupBanner="true"
|
||||||
DebugInformationFormat="1"
|
DebugInformationFormat="1"
|
||||||
CallingConvention="2"
|
CallingConvention="2"
|
||||||
UndefinePreprocessorDefinitions="NT_INST"
|
UndefinePreprocessorDefinitions="NT_INST"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCManagedResourceCompilerTool"
|
Name="VCManagedResourceCompilerTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCResourceCompilerTool"
|
Name="VCResourceCompilerTool"
|
||||||
PreprocessorDefinitions="_DEBUG"
|
PreprocessorDefinitions="_DEBUG"
|
||||||
Culture="1033"
|
Culture="1033"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreLinkEventTool"
|
Name="VCPreLinkEventTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCLinkerTool"
|
Name="VCLinkerTool"
|
||||||
AdditionalOptions="/SUBSYSTEM:native /LIBPATH:"C:\WINDDK\2600\lib\wxp\i386" /DRIVER"
|
AdditionalOptions="/SUBSYSTEM:native /LIBPATH:"C:\WINDDK\2600\lib\wxp\i386" /DRIVER"
|
||||||
AdditionalDependencies="ntoskrnl.lib hal.lib"
|
AdditionalDependencies="ntoskrnl.lib hal.lib"
|
||||||
OutputFile="..\$(ProjectName).sys"
|
OutputFile="..\$(ProjectName).sys"
|
||||||
LinkIncremental="1"
|
LinkIncremental="1"
|
||||||
SuppressStartupBanner="true"
|
SuppressStartupBanner="true"
|
||||||
GenerateManifest="false"
|
GenerateManifest="false"
|
||||||
IgnoreAllDefaultLibraries="true"
|
IgnoreAllDefaultLibraries="true"
|
||||||
GenerateDebugInformation="true"
|
GenerateDebugInformation="true"
|
||||||
ProgramDatabaseFile=".\Debug/$(ProjectName).pdb"
|
ProgramDatabaseFile=".\Debug/$(ProjectName).pdb"
|
||||||
EntryPointSymbol="DriverEntry@8"
|
EntryPointSymbol="DriverEntry@8"
|
||||||
BaseAddress="0x10000"
|
BaseAddress="0x10000"
|
||||||
ImportLibrary=".\Debug/$(ProjectName).lib"
|
ImportLibrary=".\Debug/$(ProjectName).lib"
|
||||||
TargetMachine="1"
|
TargetMachine="1"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCALinkTool"
|
Name="VCALinkTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCManifestTool"
|
Name="VCManifestTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCXDCMakeTool"
|
Name="VCXDCMakeTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCBscMakeTool"
|
Name="VCBscMakeTool"
|
||||||
SuppressStartupBanner="true"
|
SuppressStartupBanner="true"
|
||||||
OutputFile=".\Debug/$(ProjectName).bsc"
|
OutputFile=".\Debug/$(ProjectName).bsc"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCFxCopTool"
|
Name="VCFxCopTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCAppVerifierTool"
|
Name="VCAppVerifierTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCWebDeploymentTool"
|
Name="VCWebDeploymentTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPostBuildEventTool"
|
Name="VCPostBuildEventTool"
|
||||||
/>
|
/>
|
||||||
</Configuration>
|
</Configuration>
|
||||||
</Configurations>
|
</Configurations>
|
||||||
<References>
|
<References>
|
||||||
</References>
|
</References>
|
||||||
<Files>
|
<Files>
|
||||||
<Filter
|
<Filter
|
||||||
Name="Source Files"
|
Name="Source Files"
|
||||||
Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
|
Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
|
||||||
>
|
>
|
||||||
<File
|
<File
|
||||||
RelativePath=".\TmpRdr.c"
|
RelativePath=".\TmpRdr.c"
|
||||||
>
|
>
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath=".\tmprdr.rc"
|
RelativePath=".\tmprdr.rc"
|
||||||
>
|
>
|
||||||
</File>
|
</File>
|
||||||
</Filter>
|
</Filter>
|
||||||
<Filter
|
<Filter
|
||||||
Name="Header Files"
|
Name="Header Files"
|
||||||
Filter="h;hpp;hxx;hm;inl"
|
Filter="h;hpp;hxx;hm;inl"
|
||||||
>
|
>
|
||||||
<File
|
<File
|
||||||
RelativePath=".\resource.h"
|
RelativePath=".\resource.h"
|
||||||
>
|
>
|
||||||
</File>
|
</File>
|
||||||
</Filter>
|
</Filter>
|
||||||
<Filter
|
<Filter
|
||||||
Name="Resource Files"
|
Name="Resource Files"
|
||||||
Filter="ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
|
Filter="ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
|
||||||
>
|
>
|
||||||
</Filter>
|
</Filter>
|
||||||
</Files>
|
</Files>
|
||||||
<Globals>
|
<Globals>
|
||||||
</Globals>
|
</Globals>
|
||||||
</VisualStudioProject>
|
</VisualStudioProject>
|
||||||
|
|
|
@ -1,14 +1,14 @@
|
||||||
//{{NO_DEPENDENCIES}}
|
//{{NO_DEPENDENCIES}}
|
||||||
// Microsoft Visual C++ generated include file.
|
// Microsoft Visual C++ generated include file.
|
||||||
// Used by tmprdr.rc
|
// Used by tmprdr.rc
|
||||||
|
|
||||||
// Next default values for new objects
|
// Next default values for new objects
|
||||||
//
|
//
|
||||||
#ifdef APSTUDIO_INVOKED
|
#ifdef APSTUDIO_INVOKED
|
||||||
#ifndef APSTUDIO_READONLY_SYMBOLS
|
#ifndef APSTUDIO_READONLY_SYMBOLS
|
||||||
#define _APS_NEXT_RESOURCE_VALUE 101
|
#define _APS_NEXT_RESOURCE_VALUE 101
|
||||||
#define _APS_NEXT_COMMAND_VALUE 40001
|
#define _APS_NEXT_COMMAND_VALUE 40001
|
||||||
#define _APS_NEXT_CONTROL_VALUE 1001
|
#define _APS_NEXT_CONTROL_VALUE 1001
|
||||||
#define _APS_NEXT_SYMED_VALUE 101
|
#define _APS_NEXT_SYMED_VALUE 101
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -1,115 +1,115 @@
|
||||||
// Microsoft Visual C++ generated resource script.
|
// Microsoft Visual C++ generated resource script.
|
||||||
//
|
//
|
||||||
#include "resource.h"
|
#include "resource.h"
|
||||||
|
|
||||||
#define APSTUDIO_READONLY_SYMBOLS
|
#define APSTUDIO_READONLY_SYMBOLS
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
//
|
//
|
||||||
// Generated from the TEXTINCLUDE 2 resource.
|
// Generated from the TEXTINCLUDE 2 resource.
|
||||||
//
|
//
|
||||||
#include "windows.h"
|
#include "windows.h"
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
#undef APSTUDIO_READONLY_SYMBOLS
|
#undef APSTUDIO_READONLY_SYMBOLS
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
// Bulgarian resources
|
// Bulgarian resources
|
||||||
|
|
||||||
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_BGR)
|
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_BGR)
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
LANGUAGE LANG_BULGARIAN, SUBLANG_DEFAULT
|
LANGUAGE LANG_BULGARIAN, SUBLANG_DEFAULT
|
||||||
#pragma code_page(1251)
|
#pragma code_page(1251)
|
||||||
#endif //_WIN32
|
#endif //_WIN32
|
||||||
|
|
||||||
#ifdef APSTUDIO_INVOKED
|
#ifdef APSTUDIO_INVOKED
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
//
|
//
|
||||||
// TEXTINCLUDE
|
// TEXTINCLUDE
|
||||||
//
|
//
|
||||||
|
|
||||||
1 TEXTINCLUDE
|
1 TEXTINCLUDE
|
||||||
BEGIN
|
BEGIN
|
||||||
"resource.h\0"
|
"resource.h\0"
|
||||||
END
|
END
|
||||||
|
|
||||||
2 TEXTINCLUDE
|
2 TEXTINCLUDE
|
||||||
BEGIN
|
BEGIN
|
||||||
"#include ""windows.h""\r\n"
|
"#include ""windows.h""\r\n"
|
||||||
"\0"
|
"\0"
|
||||||
END
|
END
|
||||||
|
|
||||||
3 TEXTINCLUDE
|
3 TEXTINCLUDE
|
||||||
BEGIN
|
BEGIN
|
||||||
"\r\n"
|
"\r\n"
|
||||||
"\0"
|
"\0"
|
||||||
END
|
END
|
||||||
|
|
||||||
#endif // APSTUDIO_INVOKED
|
#endif // APSTUDIO_INVOKED
|
||||||
|
|
||||||
#endif // Bulgarian resources
|
#endif // Bulgarian resources
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
// English (U.S.) resources
|
// English (U.S.) resources
|
||||||
|
|
||||||
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
|
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
|
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
|
||||||
#pragma code_page(1252)
|
#pragma code_page(1252)
|
||||||
#endif //_WIN32
|
#endif //_WIN32
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
//
|
//
|
||||||
// Version
|
// Version
|
||||||
//
|
//
|
||||||
|
|
||||||
VS_VERSION_INFO VERSIONINFO
|
VS_VERSION_INFO VERSIONINFO
|
||||||
FILEVERSION 1,0,0,1
|
FILEVERSION 1,0,0,1
|
||||||
PRODUCTVERSION 1,0,0,1
|
PRODUCTVERSION 1,0,0,1
|
||||||
FILEFLAGSMASK 0x17L
|
FILEFLAGSMASK 0x17L
|
||||||
#ifdef _DEBUG
|
#ifdef _DEBUG
|
||||||
FILEFLAGS 0x1L
|
FILEFLAGS 0x1L
|
||||||
#else
|
#else
|
||||||
FILEFLAGS 0x0L
|
FILEFLAGS 0x0L
|
||||||
#endif
|
#endif
|
||||||
FILEOS 0x40004L
|
FILEOS 0x40004L
|
||||||
FILETYPE 0x3L
|
FILETYPE 0x3L
|
||||||
FILESUBTYPE 0x0L
|
FILESUBTYPE 0x0L
|
||||||
BEGIN
|
BEGIN
|
||||||
BLOCK "StringFileInfo"
|
BLOCK "StringFileInfo"
|
||||||
BEGIN
|
BEGIN
|
||||||
BLOCK "040904b0"
|
BLOCK "040904b0"
|
||||||
BEGIN
|
BEGIN
|
||||||
VALUE "Comments", "MSR reader 32-bit kernel driver"
|
VALUE "Comments", "MSR reader 32-bit kernel driver"
|
||||||
VALUE "CompanyName", "Iron Steeds Inc."
|
VALUE "CompanyName", "Iron Steeds Inc."
|
||||||
VALUE "FileDescription", "TmpRdr 32-bit Kernel Module"
|
VALUE "FileDescription", "TmpRdr 32-bit Kernel Module"
|
||||||
VALUE "FileVersion", "1, 0, 0, 1"
|
VALUE "FileVersion", "1, 0, 0, 1"
|
||||||
VALUE "InternalName", "TmpRdr"
|
VALUE "InternalName", "TmpRdr"
|
||||||
VALUE "LegalCopyright", "Nick Gabarev '2009"
|
VALUE "LegalCopyright", "Nick Gabarev '2009"
|
||||||
VALUE "OriginalFilename", "TmpRdr.sys"
|
VALUE "OriginalFilename", "TmpRdr.sys"
|
||||||
VALUE "ProductName", "Core 2 Temperature Reader"
|
VALUE "ProductName", "Core 2 Temperature Reader"
|
||||||
VALUE "ProductVersion", "1, 0, 0, 1"
|
VALUE "ProductVersion", "1, 0, 0, 1"
|
||||||
END
|
END
|
||||||
END
|
END
|
||||||
BLOCK "VarFileInfo"
|
BLOCK "VarFileInfo"
|
||||||
BEGIN
|
BEGIN
|
||||||
VALUE "Translation", 0x409, 1200
|
VALUE "Translation", 0x409, 1200
|
||||||
END
|
END
|
||||||
END
|
END
|
||||||
|
|
||||||
#endif // English (U.S.) resources
|
#endif // English (U.S.) resources
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#ifndef APSTUDIO_INVOKED
|
#ifndef APSTUDIO_INVOKED
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
//
|
//
|
||||||
// Generated from the TEXTINCLUDE 3 resource.
|
// Generated from the TEXTINCLUDE 3 resource.
|
||||||
//
|
//
|
||||||
|
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
#endif // not APSTUDIO_INVOKED
|
#endif // not APSTUDIO_INVOKED
|
||||||
|
|
||||||
|
|
Binary file not shown.
Binary file not shown.
|
@ -1,12 +1,12 @@
|
||||||
# Makefile for cpuid_tool, MSVC, for AMD64
|
# Makefile for cpuid_tool, MSVC, for AMD64
|
||||||
|
|
||||||
OPTFLAGS =
|
OPTFLAGS =
|
||||||
LINKFLAGS = /MT
|
LINKFLAGS = /MT
|
||||||
|
|
||||||
all: cpuid_tool.exe
|
all: cpuid_tool.exe
|
||||||
|
|
||||||
cpuid_tool.exe: cpuid_tool.c ..\libcpuid\libcpuid.lib
|
cpuid_tool.exe: cpuid_tool.c ..\libcpuid\libcpuid.lib
|
||||||
cl /TC $(OPTFLAGS) $(LINKFLAGS) /I ..\libcpuid cpuid_tool.c /link ..\libcpuid\libcpuid.lib advapi32.lib
|
cl /TC $(OPTFLAGS) $(LINKFLAGS) /I ..\libcpuid cpuid_tool.c /link ..\libcpuid\libcpuid.lib advapi32.lib
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
del cpuid_tool.obj cpuid_tool.exe
|
del cpuid_tool.obj cpuid_tool.exe
|
||||||
|
|
|
@ -174,7 +174,7 @@ static void usage(void)
|
||||||
printf(" --version - print library version\n");
|
printf(" --version - print library version\n");
|
||||||
printf("\n");
|
printf("\n");
|
||||||
printf("Query switches (generate 1 line of output per switch; in order of appearance):");
|
printf("Query switches (generate 1 line of output per switch; in order of appearance):");
|
||||||
|
|
||||||
line_fill = 80;
|
line_fill = 80;
|
||||||
for (i = 0; i < sz_match; i++) {
|
for (i = 0; i < sz_match; i++) {
|
||||||
l = (int) strlen(matchtable[i].synopsis);
|
l = (int) strlen(matchtable[i].synopsis);
|
||||||
|
@ -305,7 +305,7 @@ static int parse_cmdline(int argc, char** argv)
|
||||||
recog = 1;
|
recog = 1;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!recog) {
|
if (!recog) {
|
||||||
fprintf(stderr, "Unrecognized option: `%s'\n\n", arg);
|
fprintf(stderr, "Unrecognized option: `%s'\n\n", arg);
|
||||||
fprintf(stderr, "Use -h to get a list of supported options\n");
|
fprintf(stderr, "Use -h to get a list of supported options\n");
|
||||||
|
@ -323,7 +323,7 @@ static void close_out(void)
|
||||||
static int check_need_raw_data(void)
|
static int check_need_raw_data(void)
|
||||||
{
|
{
|
||||||
int i, j;
|
int i, j;
|
||||||
|
|
||||||
if (need_output || need_report || need_identify) return 1;
|
if (need_output || need_report || need_identify) return 1;
|
||||||
for (i = 0; i < num_requests; i++) {
|
for (i = 0; i < num_requests; i++) {
|
||||||
for (j = 0; j < sz_match; j++)
|
for (j = 0; j < sz_match; j++)
|
||||||
|
@ -476,7 +476,7 @@ static void print_info(output_data_switch query, struct cpu_raw_data_t* raw,
|
||||||
}
|
}
|
||||||
case NEED_SSE_UNIT_SIZE:
|
case NEED_SSE_UNIT_SIZE:
|
||||||
{
|
{
|
||||||
fprintf(fout, "%d (%s)\n", data->sse_size,
|
fprintf(fout, "%d (%s)\n", data->sse_size,
|
||||||
data->detection_hints[CPU_HINT_SSE_SIZE_AUTH] ? "authoritative" : "non-authoritative");
|
data->detection_hints[CPU_HINT_SSE_SIZE_AUTH] ? "authoritative" : "non-authoritative");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -546,7 +546,7 @@ int main(int argc, char** argv)
|
||||||
/* In quiet mode, disable libcpuid warning messages: */
|
/* In quiet mode, disable libcpuid warning messages: */
|
||||||
if (need_quiet)
|
if (need_quiet)
|
||||||
cpuid_set_warn_function(NULL);
|
cpuid_set_warn_function(NULL);
|
||||||
|
|
||||||
cpuid_set_verbosiness_level(verbose_level);
|
cpuid_set_verbosiness_level(verbose_level);
|
||||||
|
|
||||||
/* Redirect output, if necessary: */
|
/* Redirect output, if necessary: */
|
||||||
|
@ -561,11 +561,11 @@ int main(int argc, char** argv)
|
||||||
} else {
|
} else {
|
||||||
fout = stdout;
|
fout = stdout;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* If requested, print library version: */
|
/* If requested, print library version: */
|
||||||
if (need_version)
|
if (need_version)
|
||||||
fprintf(fout, "%s\n", cpuid_lib_version());
|
fprintf(fout, "%s\n", cpuid_lib_version());
|
||||||
|
|
||||||
if (need_input) {
|
if (need_input) {
|
||||||
/* We have a request to input raw CPUID data from file: */
|
/* We have a request to input raw CPUID data from file: */
|
||||||
if (!strcmp(raw_data_file, "-"))
|
if (!strcmp(raw_data_file, "-"))
|
||||||
|
@ -599,7 +599,7 @@ int main(int argc, char** argv)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Need to dump raw CPUID data to file: */
|
/* Need to dump raw CPUID data to file: */
|
||||||
if (need_output) {
|
if (need_output) {
|
||||||
if (verbose_level >= 1)
|
if (verbose_level >= 1)
|
||||||
|
@ -635,7 +635,7 @@ int main(int argc, char** argv)
|
||||||
*/
|
*/
|
||||||
if (cpu_identify(&raw, &data) < 0)
|
if (cpu_identify(&raw, &data) < 0)
|
||||||
fprintf(fout, "Error identifying the CPU: %s\n", cpuid_error());
|
fprintf(fout, "Error identifying the CPU: %s\n", cpuid_error());
|
||||||
|
|
||||||
/* OK, now write what we have in `data'...: */
|
/* OK, now write what we have in `data'...: */
|
||||||
fprintf(fout, "CPU Info:\n------------------\n");
|
fprintf(fout, "CPU Info:\n------------------\n");
|
||||||
fprintf(fout, " vendor_str : `%s'\n", data.vendor_str);
|
fprintf(fout, " vendor_str : `%s'\n", data.vendor_str);
|
||||||
|
@ -673,7 +673,7 @@ int main(int argc, char** argv)
|
||||||
if (data.flags[i])
|
if (data.flags[i])
|
||||||
fprintf(fout, " %s", cpu_feature_str(i));
|
fprintf(fout, " %s", cpu_feature_str(i));
|
||||||
fprintf(fout, "\n");
|
fprintf(fout, "\n");
|
||||||
|
|
||||||
/* Is CPU clock info requested? */
|
/* Is CPU clock info requested? */
|
||||||
if (need_clockreport) {
|
if (need_clockreport) {
|
||||||
if (need_timed_clockreport) {
|
if (need_timed_clockreport) {
|
||||||
|
@ -719,6 +719,6 @@ int main(int argc, char** argv)
|
||||||
if (need_sgx) {
|
if (need_sgx) {
|
||||||
print_sgx_data(&raw, &data);
|
print_sgx_data(&raw, &data);
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,100 +1,100 @@
|
||||||
# Microsoft Developer Studio Project File - Name="cpuid_tool" - Package Owner=<4>
|
# Microsoft Developer Studio Project File - Name="cpuid_tool" - Package Owner=<4>
|
||||||
# Microsoft Developer Studio Generated Build File, Format Version 6.00
|
# Microsoft Developer Studio Generated Build File, Format Version 6.00
|
||||||
# ** DO NOT EDIT **
|
# ** DO NOT EDIT **
|
||||||
|
|
||||||
# TARGTYPE "Win32 (x86) Console Application" 0x0103
|
# TARGTYPE "Win32 (x86) Console Application" 0x0103
|
||||||
|
|
||||||
CFG=cpuid_tool - Win32 Debug
|
CFG=cpuid_tool - Win32 Debug
|
||||||
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
|
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
|
||||||
!MESSAGE use the Export Makefile command and run
|
!MESSAGE use the Export Makefile command and run
|
||||||
!MESSAGE
|
!MESSAGE
|
||||||
!MESSAGE NMAKE /f "cpuid_tool.mak".
|
!MESSAGE NMAKE /f "cpuid_tool.mak".
|
||||||
!MESSAGE
|
!MESSAGE
|
||||||
!MESSAGE You can specify a configuration when running NMAKE
|
!MESSAGE You can specify a configuration when running NMAKE
|
||||||
!MESSAGE by defining the macro CFG on the command line. For example:
|
!MESSAGE by defining the macro CFG on the command line. For example:
|
||||||
!MESSAGE
|
!MESSAGE
|
||||||
!MESSAGE NMAKE /f "cpuid_tool.mak" CFG="cpuid_tool - Win32 Debug"
|
!MESSAGE NMAKE /f "cpuid_tool.mak" CFG="cpuid_tool - Win32 Debug"
|
||||||
!MESSAGE
|
!MESSAGE
|
||||||
!MESSAGE Possible choices for configuration are:
|
!MESSAGE Possible choices for configuration are:
|
||||||
!MESSAGE
|
!MESSAGE
|
||||||
!MESSAGE "cpuid_tool - Win32 Release" (based on "Win32 (x86) Console Application")
|
!MESSAGE "cpuid_tool - Win32 Release" (based on "Win32 (x86) Console Application")
|
||||||
!MESSAGE "cpuid_tool - Win32 Debug" (based on "Win32 (x86) Console Application")
|
!MESSAGE "cpuid_tool - Win32 Debug" (based on "Win32 (x86) Console Application")
|
||||||
!MESSAGE
|
!MESSAGE
|
||||||
|
|
||||||
# Begin Project
|
# Begin Project
|
||||||
# PROP AllowPerConfigDependencies 0
|
# PROP AllowPerConfigDependencies 0
|
||||||
# PROP Scc_ProjName ""
|
# PROP Scc_ProjName ""
|
||||||
# PROP Scc_LocalPath ""
|
# PROP Scc_LocalPath ""
|
||||||
CPP=cl.exe
|
CPP=cl.exe
|
||||||
RSC=rc.exe
|
RSC=rc.exe
|
||||||
|
|
||||||
!IF "$(CFG)" == "cpuid_tool - Win32 Release"
|
!IF "$(CFG)" == "cpuid_tool - Win32 Release"
|
||||||
|
|
||||||
# PROP BASE Use_MFC 0
|
# PROP BASE Use_MFC 0
|
||||||
# PROP BASE Use_Debug_Libraries 0
|
# PROP BASE Use_Debug_Libraries 0
|
||||||
# PROP BASE Output_Dir "Release"
|
# PROP BASE Output_Dir "Release"
|
||||||
# PROP BASE Intermediate_Dir "Release"
|
# PROP BASE Intermediate_Dir "Release"
|
||||||
# PROP BASE Target_Dir ""
|
# PROP BASE Target_Dir ""
|
||||||
# PROP Use_MFC 0
|
# PROP Use_MFC 0
|
||||||
# PROP Use_Debug_Libraries 0
|
# PROP Use_Debug_Libraries 0
|
||||||
# PROP Output_Dir "Release"
|
# PROP Output_Dir "Release"
|
||||||
# PROP Intermediate_Dir "Release"
|
# PROP Intermediate_Dir "Release"
|
||||||
# PROP Target_Dir ""
|
# PROP Target_Dir ""
|
||||||
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
|
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
|
||||||
# ADD CPP /nologo /MD /W3 /GX /O2 /I "../libcpuid" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
|
# ADD CPP /nologo /MD /W3 /GX /O2 /I "../libcpuid" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
|
||||||
# ADD BASE RSC /l 0x409 /d "NDEBUG"
|
# ADD BASE RSC /l 0x409 /d "NDEBUG"
|
||||||
# ADD RSC /l 0x409 /d "NDEBUG"
|
# ADD RSC /l 0x409 /d "NDEBUG"
|
||||||
BSC32=bscmake.exe
|
BSC32=bscmake.exe
|
||||||
# ADD BASE BSC32 /nologo
|
# ADD BASE BSC32 /nologo
|
||||||
# ADD BSC32 /nologo
|
# ADD BSC32 /nologo
|
||||||
LINK32=link.exe
|
LINK32=link.exe
|
||||||
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
|
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
|
||||||
# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
|
# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
|
||||||
|
|
||||||
!ELSEIF "$(CFG)" == "cpuid_tool - Win32 Debug"
|
!ELSEIF "$(CFG)" == "cpuid_tool - Win32 Debug"
|
||||||
|
|
||||||
# PROP BASE Use_MFC 0
|
# PROP BASE Use_MFC 0
|
||||||
# PROP BASE Use_Debug_Libraries 1
|
# PROP BASE Use_Debug_Libraries 1
|
||||||
# PROP BASE Output_Dir "Debug"
|
# PROP BASE Output_Dir "Debug"
|
||||||
# PROP BASE Intermediate_Dir "Debug"
|
# PROP BASE Intermediate_Dir "Debug"
|
||||||
# PROP BASE Target_Dir ""
|
# PROP BASE Target_Dir ""
|
||||||
# PROP Use_MFC 0
|
# PROP Use_MFC 0
|
||||||
# PROP Use_Debug_Libraries 1
|
# PROP Use_Debug_Libraries 1
|
||||||
# PROP Output_Dir "Debug"
|
# PROP Output_Dir "Debug"
|
||||||
# PROP Intermediate_Dir "Debug"
|
# PROP Intermediate_Dir "Debug"
|
||||||
# PROP Target_Dir ""
|
# PROP Target_Dir ""
|
||||||
# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
|
# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
|
||||||
# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "../libcpuid" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
|
# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "../libcpuid" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
|
||||||
# ADD BASE RSC /l 0x409 /d "_DEBUG"
|
# ADD BASE RSC /l 0x409 /d "_DEBUG"
|
||||||
# ADD RSC /l 0x409 /d "_DEBUG"
|
# ADD RSC /l 0x409 /d "_DEBUG"
|
||||||
BSC32=bscmake.exe
|
BSC32=bscmake.exe
|
||||||
# ADD BASE BSC32 /nologo
|
# ADD BASE BSC32 /nologo
|
||||||
# ADD BSC32 /nologo
|
# ADD BSC32 /nologo
|
||||||
LINK32=link.exe
|
LINK32=link.exe
|
||||||
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
|
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
|
||||||
# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
|
# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
|
||||||
|
|
||||||
!ENDIF
|
!ENDIF
|
||||||
|
|
||||||
# Begin Target
|
# Begin Target
|
||||||
|
|
||||||
# Name "cpuid_tool - Win32 Release"
|
# Name "cpuid_tool - Win32 Release"
|
||||||
# Name "cpuid_tool - Win32 Debug"
|
# Name "cpuid_tool - Win32 Debug"
|
||||||
# Begin Group "Source Files"
|
# Begin Group "Source Files"
|
||||||
|
|
||||||
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
|
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
|
||||||
# Begin Source File
|
# Begin Source File
|
||||||
|
|
||||||
SOURCE=.\cpuid_tool.c
|
SOURCE=.\cpuid_tool.c
|
||||||
# End Source File
|
# End Source File
|
||||||
# End Group
|
# End Group
|
||||||
# Begin Group "Header Files"
|
# Begin Group "Header Files"
|
||||||
|
|
||||||
# PROP Default_Filter "h;hpp;hxx;hm;inl"
|
# PROP Default_Filter "h;hpp;hxx;hm;inl"
|
||||||
# End Group
|
# End Group
|
||||||
# Begin Group "Resource Files"
|
# Begin Group "Resource Files"
|
||||||
|
|
||||||
# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
|
# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
|
||||||
# End Group
|
# End Group
|
||||||
# End Target
|
# End Target
|
||||||
# End Project
|
# End Project
|
||||||
|
|
|
@ -1,249 +1,249 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
<ItemGroup Label="ProjectConfigurations">
|
<ItemGroup Label="ProjectConfigurations">
|
||||||
<ProjectConfiguration Include="Debug|Win32">
|
<ProjectConfiguration Include="Debug|Win32">
|
||||||
<Configuration>Debug</Configuration>
|
<Configuration>Debug</Configuration>
|
||||||
<Platform>Win32</Platform>
|
<Platform>Win32</Platform>
|
||||||
</ProjectConfiguration>
|
</ProjectConfiguration>
|
||||||
<ProjectConfiguration Include="Debug|x64">
|
<ProjectConfiguration Include="Debug|x64">
|
||||||
<Configuration>Debug</Configuration>
|
<Configuration>Debug</Configuration>
|
||||||
<Platform>x64</Platform>
|
<Platform>x64</Platform>
|
||||||
</ProjectConfiguration>
|
</ProjectConfiguration>
|
||||||
<ProjectConfiguration Include="ReleaseDLL|Win32">
|
<ProjectConfiguration Include="ReleaseDLL|Win32">
|
||||||
<Configuration>ReleaseDLL</Configuration>
|
<Configuration>ReleaseDLL</Configuration>
|
||||||
<Platform>Win32</Platform>
|
<Platform>Win32</Platform>
|
||||||
</ProjectConfiguration>
|
</ProjectConfiguration>
|
||||||
<ProjectConfiguration Include="ReleaseDLL|x64">
|
<ProjectConfiguration Include="ReleaseDLL|x64">
|
||||||
<Configuration>ReleaseDLL</Configuration>
|
<Configuration>ReleaseDLL</Configuration>
|
||||||
<Platform>x64</Platform>
|
<Platform>x64</Platform>
|
||||||
</ProjectConfiguration>
|
</ProjectConfiguration>
|
||||||
<ProjectConfiguration Include="Release|Win32">
|
<ProjectConfiguration Include="Release|Win32">
|
||||||
<Configuration>Release</Configuration>
|
<Configuration>Release</Configuration>
|
||||||
<Platform>Win32</Platform>
|
<Platform>Win32</Platform>
|
||||||
</ProjectConfiguration>
|
</ProjectConfiguration>
|
||||||
<ProjectConfiguration Include="Release|x64">
|
<ProjectConfiguration Include="Release|x64">
|
||||||
<Configuration>Release</Configuration>
|
<Configuration>Release</Configuration>
|
||||||
<Platform>x64</Platform>
|
<Platform>x64</Platform>
|
||||||
</ProjectConfiguration>
|
</ProjectConfiguration>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<PropertyGroup Label="Globals">
|
<PropertyGroup Label="Globals">
|
||||||
<ProjectName>cpuid_tool</ProjectName>
|
<ProjectName>cpuid_tool</ProjectName>
|
||||||
<ProjectGuid>{854A36FB-EA23-4165-9110-A55EB97C6377}</ProjectGuid>
|
<ProjectGuid>{854A36FB-EA23-4165-9110-A55EB97C6377}</ProjectGuid>
|
||||||
<RootNamespace>cpuid_tool</RootNamespace>
|
<RootNamespace>cpuid_tool</RootNamespace>
|
||||||
<Keyword>Win32Proj</Keyword>
|
<Keyword>Win32Proj</Keyword>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||||
<ConfigurationType>Application</ConfigurationType>
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
<CharacterSet>NotSet</CharacterSet>
|
<CharacterSet>NotSet</CharacterSet>
|
||||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseDLL|Win32'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseDLL|Win32'" Label="Configuration">
|
||||||
<ConfigurationType>Application</ConfigurationType>
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
<CharacterSet>NotSet</CharacterSet>
|
<CharacterSet>NotSet</CharacterSet>
|
||||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
||||||
<ConfigurationType>Application</ConfigurationType>
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
<CharacterSet>NotSet</CharacterSet>
|
<CharacterSet>NotSet</CharacterSet>
|
||||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseDLL|x64'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseDLL|x64'" Label="Configuration">
|
||||||
<ConfigurationType>Application</ConfigurationType>
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
<CharacterSet>NotSet</CharacterSet>
|
<CharacterSet>NotSet</CharacterSet>
|
||||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||||
<ConfigurationType>Application</ConfigurationType>
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
<CharacterSet>NotSet</CharacterSet>
|
<CharacterSet>NotSet</CharacterSet>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
||||||
<ConfigurationType>Application</ConfigurationType>
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
<CharacterSet>NotSet</CharacterSet>
|
<CharacterSet>NotSet</CharacterSet>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||||
<ImportGroup Label="ExtensionSettings">
|
<ImportGroup Label="ExtensionSettings">
|
||||||
</ImportGroup>
|
</ImportGroup>
|
||||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
|
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||||
</ImportGroup>
|
</ImportGroup>
|
||||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseDLL|Win32'" Label="PropertySheets">
|
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseDLL|Win32'" Label="PropertySheets">
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||||
</ImportGroup>
|
</ImportGroup>
|
||||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
|
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||||
</ImportGroup>
|
</ImportGroup>
|
||||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseDLL|x64'" Label="PropertySheets">
|
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseDLL|x64'" Label="PropertySheets">
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||||
</ImportGroup>
|
</ImportGroup>
|
||||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
|
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||||
</ImportGroup>
|
</ImportGroup>
|
||||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
|
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||||
</ImportGroup>
|
</ImportGroup>
|
||||||
<PropertyGroup Label="UserMacros" />
|
<PropertyGroup Label="UserMacros" />
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
|
<_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
|
||||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectDir)x$(PlatformArchitecture)\$(Configuration)\</OutDir>
|
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectDir)x$(PlatformArchitecture)\$(Configuration)\</OutDir>
|
||||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(ProjectDir)x$(PlatformArchitecture)\$(Configuration)\</OutDir>
|
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(ProjectDir)x$(PlatformArchitecture)\$(Configuration)\</OutDir>
|
||||||
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">x$(PlatformArchitecture)\$(Configuration)\</IntDir>
|
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">x$(PlatformArchitecture)\$(Configuration)\</IntDir>
|
||||||
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">x$(PlatformArchitecture)\$(Configuration)\</IntDir>
|
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">x$(PlatformArchitecture)\$(Configuration)\</IntDir>
|
||||||
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
|
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
|
||||||
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</LinkIncremental>
|
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</LinkIncremental>
|
||||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectDir)x$(PlatformArchitecture)\$(Configuration)\</OutDir>
|
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectDir)x$(PlatformArchitecture)\$(Configuration)\</OutDir>
|
||||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='ReleaseDLL|Win32'">$(ProjectDir)x$(PlatformArchitecture)\$(Configuration)\</OutDir>
|
<OutDir Condition="'$(Configuration)|$(Platform)'=='ReleaseDLL|Win32'">$(ProjectDir)x$(PlatformArchitecture)\$(Configuration)\</OutDir>
|
||||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(ProjectDir)x$(PlatformArchitecture)\$(Configuration)\</OutDir>
|
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(ProjectDir)x$(PlatformArchitecture)\$(Configuration)\</OutDir>
|
||||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='ReleaseDLL|x64'">$(ProjectDir)x$(PlatformArchitecture)\$(Configuration)\</OutDir>
|
<OutDir Condition="'$(Configuration)|$(Platform)'=='ReleaseDLL|x64'">$(ProjectDir)x$(PlatformArchitecture)\$(Configuration)\</OutDir>
|
||||||
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">x$(PlatformArchitecture)\$(Configuration)\</IntDir>
|
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">x$(PlatformArchitecture)\$(Configuration)\</IntDir>
|
||||||
<IntDir Condition="'$(Configuration)|$(Platform)'=='ReleaseDLL|Win32'">x$(PlatformArchitecture)\$(Configuration)\</IntDir>
|
<IntDir Condition="'$(Configuration)|$(Platform)'=='ReleaseDLL|Win32'">x$(PlatformArchitecture)\$(Configuration)\</IntDir>
|
||||||
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">x$(PlatformArchitecture)\$(Configuration)\</IntDir>
|
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">x$(PlatformArchitecture)\$(Configuration)\</IntDir>
|
||||||
<IntDir Condition="'$(Configuration)|$(Platform)'=='ReleaseDLL|x64'">x$(PlatformArchitecture)\$(Configuration)\</IntDir>
|
<IntDir Condition="'$(Configuration)|$(Platform)'=='ReleaseDLL|x64'">x$(PlatformArchitecture)\$(Configuration)\</IntDir>
|
||||||
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
|
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
|
||||||
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='ReleaseDLL|Win32'">false</LinkIncremental>
|
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='ReleaseDLL|Win32'">false</LinkIncremental>
|
||||||
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>
|
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>
|
||||||
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='ReleaseDLL|x64'">false</LinkIncremental>
|
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='ReleaseDLL|x64'">false</LinkIncremental>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
<Optimization>Disabled</Optimization>
|
<Optimization>Disabled</Optimization>
|
||||||
<AdditionalIncludeDirectories>../libcpuid;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>../libcpuid;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<MinimalRebuild>true</MinimalRebuild>
|
<MinimalRebuild>true</MinimalRebuild>
|
||||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||||
<PrecompiledHeader>
|
<PrecompiledHeader>
|
||||||
</PrecompiledHeader>
|
</PrecompiledHeader>
|
||||||
<WarningLevel>Level3</WarningLevel>
|
<WarningLevel>Level3</WarningLevel>
|
||||||
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
|
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
|
||||||
<CompileAs>CompileAsC</CompileAs>
|
<CompileAs>CompileAsC</CompileAs>
|
||||||
<DisableSpecificWarnings>4996;%(DisableSpecificWarnings)</DisableSpecificWarnings>
|
<DisableSpecificWarnings>4996;%(DisableSpecificWarnings)</DisableSpecificWarnings>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
<AdditionalDependencies>libcpuid.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
<AdditionalDependencies>libcpuid.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||||
<AdditionalLibraryDirectories>../libcpuid/x$(PlatformArchitecture)/$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
<AdditionalLibraryDirectories>../libcpuid/x$(PlatformArchitecture)/$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
<SubSystem>Console</SubSystem>
|
<SubSystem>Console</SubSystem>
|
||||||
<TargetMachine>MachineX86</TargetMachine>
|
<TargetMachine>MachineX86</TargetMachine>
|
||||||
</Link>
|
</Link>
|
||||||
</ItemDefinitionGroup>
|
</ItemDefinitionGroup>
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
<Optimization>Disabled</Optimization>
|
<Optimization>Disabled</Optimization>
|
||||||
<AdditionalIncludeDirectories>../libcpuid;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>../libcpuid;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||||
<PrecompiledHeader>
|
<PrecompiledHeader>
|
||||||
</PrecompiledHeader>
|
</PrecompiledHeader>
|
||||||
<WarningLevel>Level3</WarningLevel>
|
<WarningLevel>Level3</WarningLevel>
|
||||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||||
<CompileAs>CompileAsC</CompileAs>
|
<CompileAs>CompileAsC</CompileAs>
|
||||||
<DisableSpecificWarnings>4996;%(DisableSpecificWarnings)</DisableSpecificWarnings>
|
<DisableSpecificWarnings>4996;%(DisableSpecificWarnings)</DisableSpecificWarnings>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
<AdditionalDependencies>libcpuid.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
<AdditionalDependencies>libcpuid.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||||
<AdditionalLibraryDirectories>../libcpuid/x$(PlatformArchitecture)/$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
<AdditionalLibraryDirectories>../libcpuid/x$(PlatformArchitecture)/$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
<SubSystem>Console</SubSystem>
|
<SubSystem>Console</SubSystem>
|
||||||
</Link>
|
</Link>
|
||||||
</ItemDefinitionGroup>
|
</ItemDefinitionGroup>
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
<AdditionalIncludeDirectories>../libcpuid;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>../libcpuid;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||||
<PrecompiledHeader>
|
<PrecompiledHeader>
|
||||||
</PrecompiledHeader>
|
</PrecompiledHeader>
|
||||||
<WarningLevel>Level3</WarningLevel>
|
<WarningLevel>Level3</WarningLevel>
|
||||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||||
<CompileAs>CompileAsC</CompileAs>
|
<CompileAs>CompileAsC</CompileAs>
|
||||||
<DisableSpecificWarnings>4996;%(DisableSpecificWarnings)</DisableSpecificWarnings>
|
<DisableSpecificWarnings>4996;%(DisableSpecificWarnings)</DisableSpecificWarnings>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
<AdditionalDependencies>libcpuid.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
<AdditionalDependencies>libcpuid.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||||
<AdditionalLibraryDirectories>../libcpuid/x$(PlatformArchitecture)/$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
<AdditionalLibraryDirectories>../libcpuid/x$(PlatformArchitecture)/$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
<SubSystem>Console</SubSystem>
|
<SubSystem>Console</SubSystem>
|
||||||
<OptimizeReferences>true</OptimizeReferences>
|
<OptimizeReferences>true</OptimizeReferences>
|
||||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||||
<TargetMachine>MachineX86</TargetMachine>
|
<TargetMachine>MachineX86</TargetMachine>
|
||||||
</Link>
|
</Link>
|
||||||
</ItemDefinitionGroup>
|
</ItemDefinitionGroup>
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseDLL|Win32'">
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseDLL|Win32'">
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
<AdditionalIncludeDirectories>../libcpuid;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>../libcpuid;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||||
<PrecompiledHeader>
|
<PrecompiledHeader>
|
||||||
</PrecompiledHeader>
|
</PrecompiledHeader>
|
||||||
<WarningLevel>Level3</WarningLevel>
|
<WarningLevel>Level3</WarningLevel>
|
||||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||||
<CompileAs>CompileAsC</CompileAs>
|
<CompileAs>CompileAsC</CompileAs>
|
||||||
<DisableSpecificWarnings>4996;%(DisableSpecificWarnings)</DisableSpecificWarnings>
|
<DisableSpecificWarnings>4996;%(DisableSpecificWarnings)</DisableSpecificWarnings>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
<AdditionalDependencies>libcpuid.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
<AdditionalDependencies>libcpuid.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||||
<AdditionalLibraryDirectories>../libcpuid/x$(PlatformArchitecture)/$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
<AdditionalLibraryDirectories>../libcpuid/x$(PlatformArchitecture)/$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
<SubSystem>Console</SubSystem>
|
<SubSystem>Console</SubSystem>
|
||||||
<OptimizeReferences>true</OptimizeReferences>
|
<OptimizeReferences>true</OptimizeReferences>
|
||||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||||
<TargetMachine>MachineX86</TargetMachine>
|
<TargetMachine>MachineX86</TargetMachine>
|
||||||
</Link>
|
</Link>
|
||||||
</ItemDefinitionGroup>
|
</ItemDefinitionGroup>
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
<AdditionalIncludeDirectories>../libcpuid;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>../libcpuid;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||||
<PrecompiledHeader>
|
<PrecompiledHeader>
|
||||||
</PrecompiledHeader>
|
</PrecompiledHeader>
|
||||||
<WarningLevel>Level3</WarningLevel>
|
<WarningLevel>Level3</WarningLevel>
|
||||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||||
<CompileAs>CompileAsC</CompileAs>
|
<CompileAs>CompileAsC</CompileAs>
|
||||||
<DisableSpecificWarnings>4996;%(DisableSpecificWarnings)</DisableSpecificWarnings>
|
<DisableSpecificWarnings>4996;%(DisableSpecificWarnings)</DisableSpecificWarnings>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
<AdditionalDependencies>libcpuid.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
<AdditionalDependencies>libcpuid.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||||
<AdditionalLibraryDirectories>../libcpuid/x$(PlatformArchitecture)/$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
<AdditionalLibraryDirectories>../libcpuid/x$(PlatformArchitecture)/$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
<SubSystem>Console</SubSystem>
|
<SubSystem>Console</SubSystem>
|
||||||
<OptimizeReferences>true</OptimizeReferences>
|
<OptimizeReferences>true</OptimizeReferences>
|
||||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||||
</Link>
|
</Link>
|
||||||
</ItemDefinitionGroup>
|
</ItemDefinitionGroup>
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseDLL|x64'">
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseDLL|x64'">
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
<AdditionalIncludeDirectories>../libcpuid;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>../libcpuid;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||||
<PrecompiledHeader>
|
<PrecompiledHeader>
|
||||||
</PrecompiledHeader>
|
</PrecompiledHeader>
|
||||||
<WarningLevel>Level3</WarningLevel>
|
<WarningLevel>Level3</WarningLevel>
|
||||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||||
<CompileAs>CompileAsC</CompileAs>
|
<CompileAs>CompileAsC</CompileAs>
|
||||||
<DisableSpecificWarnings>4996;%(DisableSpecificWarnings)</DisableSpecificWarnings>
|
<DisableSpecificWarnings>4996;%(DisableSpecificWarnings)</DisableSpecificWarnings>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
<AdditionalDependencies>libcpuid.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
<AdditionalDependencies>libcpuid.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||||
<AdditionalLibraryDirectories>../libcpuid/x$(PlatformArchitecture)/$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
<AdditionalLibraryDirectories>../libcpuid/x$(PlatformArchitecture)/$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
<SubSystem>Console</SubSystem>
|
<SubSystem>Console</SubSystem>
|
||||||
<OptimizeReferences>true</OptimizeReferences>
|
<OptimizeReferences>true</OptimizeReferences>
|
||||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||||
</Link>
|
</Link>
|
||||||
</ItemDefinitionGroup>
|
</ItemDefinitionGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClCompile Include="cpuid_tool.c" />
|
<ClCompile Include="cpuid_tool.c" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ProjectReference Include="..\libcpuid\libcpuid_vc10.vcxproj">
|
<ProjectReference Include="..\libcpuid\libcpuid_vc10.vcxproj">
|
||||||
<Project>{92bdba37-96e3-4d85-b762-185e4407bb49}</Project>
|
<Project>{92bdba37-96e3-4d85-b762-185e4407bb49}</Project>
|
||||||
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
|
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
|
||||||
</ProjectReference>
|
</ProjectReference>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||||
<ImportGroup Label="ExtensionTargets">
|
<ImportGroup Label="ExtensionTargets">
|
||||||
</ImportGroup>
|
</ImportGroup>
|
||||||
</Project>
|
</Project>
|
|
@ -1,22 +1,22 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Filter Include="Source Files">
|
<Filter Include="Source Files">
|
||||||
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
|
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
|
||||||
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
|
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
|
||||||
</Filter>
|
</Filter>
|
||||||
<Filter Include="Header Files">
|
<Filter Include="Header Files">
|
||||||
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
|
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
|
||||||
<Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
|
<Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
|
||||||
</Filter>
|
</Filter>
|
||||||
<Filter Include="Resource Files">
|
<Filter Include="Resource Files">
|
||||||
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
|
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
|
||||||
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
|
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
|
||||||
</Filter>
|
</Filter>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClCompile Include="cpuid_tool.c">
|
<ClCompile Include="cpuid_tool.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
</Project>
|
</Project>
|
|
@ -1,190 +1,190 @@
|
||||||
<?xml version="1.0" encoding="Windows-1252"?>
|
<?xml version="1.0" encoding="Windows-1252"?>
|
||||||
<VisualStudioProject
|
<VisualStudioProject
|
||||||
ProjectType="Visual C++"
|
ProjectType="Visual C++"
|
||||||
Version="7.10"
|
Version="7.10"
|
||||||
Name="cpuid_tool"
|
Name="cpuid_tool"
|
||||||
ProjectGUID="{DD903FEE-4A59-4307-8DE2-0F777DC21FFE}"
|
ProjectGUID="{DD903FEE-4A59-4307-8DE2-0F777DC21FFE}"
|
||||||
Keyword="Win32Proj">
|
Keyword="Win32Proj">
|
||||||
<Platforms>
|
<Platforms>
|
||||||
<Platform
|
<Platform
|
||||||
Name="Win32"/>
|
Name="Win32"/>
|
||||||
</Platforms>
|
</Platforms>
|
||||||
<Configurations>
|
<Configurations>
|
||||||
<Configuration
|
<Configuration
|
||||||
Name="Debug|Win32"
|
Name="Debug|Win32"
|
||||||
OutputDirectory="Debug"
|
OutputDirectory="Debug"
|
||||||
IntermediateDirectory="Debug"
|
IntermediateDirectory="Debug"
|
||||||
ConfigurationType="1"
|
ConfigurationType="1"
|
||||||
CharacterSet="2">
|
CharacterSet="2">
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
Optimization="0"
|
Optimization="0"
|
||||||
AdditionalIncludeDirectories="../libcpuid"
|
AdditionalIncludeDirectories="../libcpuid"
|
||||||
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
|
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
|
||||||
MinimalRebuild="TRUE"
|
MinimalRebuild="TRUE"
|
||||||
BasicRuntimeChecks="3"
|
BasicRuntimeChecks="3"
|
||||||
RuntimeLibrary="3"
|
RuntimeLibrary="3"
|
||||||
UsePrecompiledHeader="0"
|
UsePrecompiledHeader="0"
|
||||||
WarningLevel="3"
|
WarningLevel="3"
|
||||||
Detect64BitPortabilityProblems="TRUE"
|
Detect64BitPortabilityProblems="TRUE"
|
||||||
DebugInformationFormat="4"
|
DebugInformationFormat="4"
|
||||||
CompileAs="1"/>
|
CompileAs="1"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"/>
|
Name="VCCustomBuildTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCLinkerTool"
|
Name="VCLinkerTool"
|
||||||
AdditionalDependencies="libcpuid.lib"
|
AdditionalDependencies="libcpuid.lib"
|
||||||
OutputFile="$(OutDir)/cpuid_tool.exe"
|
OutputFile="$(OutDir)/cpuid_tool.exe"
|
||||||
LinkIncremental="2"
|
LinkIncremental="2"
|
||||||
AdditionalLibraryDirectories="../libcpuid/debug"
|
AdditionalLibraryDirectories="../libcpuid/debug"
|
||||||
GenerateDebugInformation="TRUE"
|
GenerateDebugInformation="TRUE"
|
||||||
ProgramDatabaseFile="$(OutDir)/cpuid_tool.pdb"
|
ProgramDatabaseFile="$(OutDir)/cpuid_tool.pdb"
|
||||||
SubSystem="1"
|
SubSystem="1"
|
||||||
TargetMachine="1"/>
|
TargetMachine="1"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCMIDLTool"/>
|
Name="VCMIDLTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPostBuildEventTool"/>
|
Name="VCPostBuildEventTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreBuildEventTool"/>
|
Name="VCPreBuildEventTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreLinkEventTool"/>
|
Name="VCPreLinkEventTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCResourceCompilerTool"/>
|
Name="VCResourceCompilerTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCWebServiceProxyGeneratorTool"/>
|
Name="VCWebServiceProxyGeneratorTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCXMLDataGeneratorTool"/>
|
Name="VCXMLDataGeneratorTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCWebDeploymentTool"/>
|
Name="VCWebDeploymentTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCManagedWrapperGeneratorTool"/>
|
Name="VCManagedWrapperGeneratorTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
|
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
|
||||||
</Configuration>
|
</Configuration>
|
||||||
<Configuration
|
<Configuration
|
||||||
Name="Release|Win32"
|
Name="Release|Win32"
|
||||||
OutputDirectory="Release"
|
OutputDirectory="Release"
|
||||||
IntermediateDirectory="Release"
|
IntermediateDirectory="Release"
|
||||||
ConfigurationType="1"
|
ConfigurationType="1"
|
||||||
CharacterSet="2">
|
CharacterSet="2">
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
AdditionalIncludeDirectories="../libcpuid"
|
AdditionalIncludeDirectories="../libcpuid"
|
||||||
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
|
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
|
||||||
RuntimeLibrary="2"
|
RuntimeLibrary="2"
|
||||||
UsePrecompiledHeader="0"
|
UsePrecompiledHeader="0"
|
||||||
WarningLevel="3"
|
WarningLevel="3"
|
||||||
Detect64BitPortabilityProblems="TRUE"
|
Detect64BitPortabilityProblems="TRUE"
|
||||||
DebugInformationFormat="3"
|
DebugInformationFormat="3"
|
||||||
CompileAs="1"/>
|
CompileAs="1"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"/>
|
Name="VCCustomBuildTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCLinkerTool"
|
Name="VCLinkerTool"
|
||||||
AdditionalDependencies="libcpuid.lib"
|
AdditionalDependencies="libcpuid.lib"
|
||||||
OutputFile="$(OutDir)/cpuid_tool.exe"
|
OutputFile="$(OutDir)/cpuid_tool.exe"
|
||||||
LinkIncremental="1"
|
LinkIncremental="1"
|
||||||
AdditionalLibraryDirectories="../libcpuid/release"
|
AdditionalLibraryDirectories="../libcpuid/release"
|
||||||
GenerateDebugInformation="TRUE"
|
GenerateDebugInformation="TRUE"
|
||||||
SubSystem="1"
|
SubSystem="1"
|
||||||
OptimizeReferences="2"
|
OptimizeReferences="2"
|
||||||
EnableCOMDATFolding="2"
|
EnableCOMDATFolding="2"
|
||||||
TargetMachine="1"/>
|
TargetMachine="1"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCMIDLTool"/>
|
Name="VCMIDLTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPostBuildEventTool"/>
|
Name="VCPostBuildEventTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreBuildEventTool"/>
|
Name="VCPreBuildEventTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreLinkEventTool"/>
|
Name="VCPreLinkEventTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCResourceCompilerTool"/>
|
Name="VCResourceCompilerTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCWebServiceProxyGeneratorTool"/>
|
Name="VCWebServiceProxyGeneratorTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCXMLDataGeneratorTool"/>
|
Name="VCXMLDataGeneratorTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCWebDeploymentTool"/>
|
Name="VCWebDeploymentTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCManagedWrapperGeneratorTool"/>
|
Name="VCManagedWrapperGeneratorTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
|
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
|
||||||
</Configuration>
|
</Configuration>
|
||||||
<Configuration
|
<Configuration
|
||||||
Name="Release DLL|Win32"
|
Name="Release DLL|Win32"
|
||||||
OutputDirectory="$(ConfigurationName)"
|
OutputDirectory="$(ConfigurationName)"
|
||||||
IntermediateDirectory="$(ConfigurationName)"
|
IntermediateDirectory="$(ConfigurationName)"
|
||||||
ConfigurationType="1"
|
ConfigurationType="1"
|
||||||
CharacterSet="2">
|
CharacterSet="2">
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
AdditionalIncludeDirectories="../libcpuid"
|
AdditionalIncludeDirectories="../libcpuid"
|
||||||
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
|
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
|
||||||
RuntimeLibrary="2"
|
RuntimeLibrary="2"
|
||||||
UsePrecompiledHeader="0"
|
UsePrecompiledHeader="0"
|
||||||
WarningLevel="3"
|
WarningLevel="3"
|
||||||
Detect64BitPortabilityProblems="TRUE"
|
Detect64BitPortabilityProblems="TRUE"
|
||||||
DebugInformationFormat="3"
|
DebugInformationFormat="3"
|
||||||
CompileAs="1"/>
|
CompileAs="1"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"/>
|
Name="VCCustomBuildTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCLinkerTool"
|
Name="VCLinkerTool"
|
||||||
AdditionalDependencies="libcpuid.lib"
|
AdditionalDependencies="libcpuid.lib"
|
||||||
OutputFile="$(OutDir)/cpuid_tool.exe"
|
OutputFile="$(OutDir)/cpuid_tool.exe"
|
||||||
LinkIncremental="1"
|
LinkIncremental="1"
|
||||||
AdditionalLibraryDirectories="../libcpuid/release dll"
|
AdditionalLibraryDirectories="../libcpuid/release dll"
|
||||||
GenerateDebugInformation="TRUE"
|
GenerateDebugInformation="TRUE"
|
||||||
SubSystem="1"
|
SubSystem="1"
|
||||||
OptimizeReferences="2"
|
OptimizeReferences="2"
|
||||||
EnableCOMDATFolding="2"
|
EnableCOMDATFolding="2"
|
||||||
TargetMachine="1"/>
|
TargetMachine="1"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCMIDLTool"/>
|
Name="VCMIDLTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPostBuildEventTool"/>
|
Name="VCPostBuildEventTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreBuildEventTool"/>
|
Name="VCPreBuildEventTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreLinkEventTool"/>
|
Name="VCPreLinkEventTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCResourceCompilerTool"/>
|
Name="VCResourceCompilerTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCWebServiceProxyGeneratorTool"/>
|
Name="VCWebServiceProxyGeneratorTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCXMLDataGeneratorTool"/>
|
Name="VCXMLDataGeneratorTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCWebDeploymentTool"/>
|
Name="VCWebDeploymentTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCManagedWrapperGeneratorTool"/>
|
Name="VCManagedWrapperGeneratorTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
|
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
|
||||||
</Configuration>
|
</Configuration>
|
||||||
</Configurations>
|
</Configurations>
|
||||||
<References>
|
<References>
|
||||||
</References>
|
</References>
|
||||||
<Files>
|
<Files>
|
||||||
<Filter
|
<Filter
|
||||||
Name="Source Files"
|
Name="Source Files"
|
||||||
Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
|
Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
|
||||||
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}">
|
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}">
|
||||||
<File
|
<File
|
||||||
RelativePath=".\cpuid_tool.c">
|
RelativePath=".\cpuid_tool.c">
|
||||||
</File>
|
</File>
|
||||||
</Filter>
|
</Filter>
|
||||||
<Filter
|
<Filter
|
||||||
Name="Header Files"
|
Name="Header Files"
|
||||||
Filter="h;hpp;hxx;hm;inl;inc;xsd"
|
Filter="h;hpp;hxx;hm;inl;inc;xsd"
|
||||||
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}">
|
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}">
|
||||||
</Filter>
|
</Filter>
|
||||||
<Filter
|
<Filter
|
||||||
Name="Resource Files"
|
Name="Resource Files"
|
||||||
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx"
|
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx"
|
||||||
UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}">
|
UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}">
|
||||||
</Filter>
|
</Filter>
|
||||||
</Files>
|
</Files>
|
||||||
<Globals>
|
<Globals>
|
||||||
</Globals>
|
</Globals>
|
||||||
</VisualStudioProject>
|
</VisualStudioProject>
|
||||||
|
|
2
debian/changelog
vendored
2
debian/changelog
vendored
|
@ -38,7 +38,7 @@ libcpuid (0.3.0) unstable; urgency=low
|
||||||
* Support up to 8 subleaf entries for CPUID leaf 04 and detection
|
* Support up to 8 subleaf entries for CPUID leaf 04 and detection
|
||||||
of L4 cache.
|
of L4 cache.
|
||||||
* MSR functions supported on FreeBSD.
|
* MSR functions supported on FreeBSD.
|
||||||
* INFO_VOLTAGE request supported by cpu_msrinfo().
|
* INFO_VOLTAGE request supported by cpu_msrinfo().
|
||||||
|
|
||||||
-- eloaders <eloaders@linux.pl> Mon, 22 Aug 2016 17:45:21 +0200
|
-- eloaders <eloaders@linux.pl> Mon, 22 Aug 2016 17:45:21 +0200
|
||||||
|
|
||||||
|
|
88
libcpuid.dsw
88
libcpuid.dsw
|
@ -1,44 +1,44 @@
|
||||||
Microsoft Developer Studio Workspace File, Format Version 6.00
|
Microsoft Developer Studio Workspace File, Format Version 6.00
|
||||||
# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
|
# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
|
|
||||||
Project: "cpuid_tool"=.\cpuid_tool\cpuid_tool.dsp - Package Owner=<4>
|
Project: "cpuid_tool"=.\cpuid_tool\cpuid_tool.dsp - Package Owner=<4>
|
||||||
|
|
||||||
Package=<5>
|
Package=<5>
|
||||||
{{{
|
{{{
|
||||||
}}}
|
}}}
|
||||||
|
|
||||||
Package=<4>
|
Package=<4>
|
||||||
{{{
|
{{{
|
||||||
Begin Project Dependency
|
Begin Project Dependency
|
||||||
Project_Dep_Name libcpuid
|
Project_Dep_Name libcpuid
|
||||||
End Project Dependency
|
End Project Dependency
|
||||||
}}}
|
}}}
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
|
|
||||||
Project: "libcpuid"=.\libcpuid\libcpuid.dsp - Package Owner=<4>
|
Project: "libcpuid"=.\libcpuid\libcpuid.dsp - Package Owner=<4>
|
||||||
|
|
||||||
Package=<5>
|
Package=<5>
|
||||||
{{{
|
{{{
|
||||||
}}}
|
}}}
|
||||||
|
|
||||||
Package=<4>
|
Package=<4>
|
||||||
{{{
|
{{{
|
||||||
}}}
|
}}}
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
|
|
||||||
Global:
|
Global:
|
||||||
|
|
||||||
Package=<5>
|
Package=<5>
|
||||||
{{{
|
{{{
|
||||||
}}}
|
}}}
|
||||||
|
|
||||||
Package=<3>
|
Package=<3>
|
||||||
{{{
|
{{{
|
||||||
}}}
|
}}}
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
|
|
||||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -1,36 +1,36 @@
|
||||||
## Makefile for libcpuid, MSVC compiler, X64
|
## Makefile for libcpuid, MSVC compiler, X64
|
||||||
|
|
||||||
all: libcpuid.lib
|
all: libcpuid.lib
|
||||||
|
|
||||||
ASM = ml64 /nologo
|
ASM = ml64 /nologo
|
||||||
CC = cl.exe /nologo /TC
|
CC = cl.exe /nologo /TC
|
||||||
OPTFLAGS = /MT
|
OPTFLAGS = /MT
|
||||||
DEFINES = /D "VERSION=\"0.4.1\""
|
DEFINES = /D "VERSION=\"0.4.1\""
|
||||||
OBJECTS = masm-x64.obj asm-bits.obj cpuid_main.obj libcpuid_util.obj recog_amd.obj recog_intel.obj rdtsc.obj
|
OBJECTS = masm-x64.obj asm-bits.obj cpuid_main.obj libcpuid_util.obj recog_amd.obj recog_intel.obj rdtsc.obj
|
||||||
|
|
||||||
libcpuid.lib: $(OBJECTS)
|
libcpuid.lib: $(OBJECTS)
|
||||||
lib /nologo /MACHINE:AMD64 /out:libcpuid.lib $(OBJECTS) bufferoverflowU.lib
|
lib /nologo /MACHINE:AMD64 /out:libcpuid.lib $(OBJECTS) bufferoverflowU.lib
|
||||||
|
|
||||||
masm-x64.obj: masm-x64.asm
|
masm-x64.obj: masm-x64.asm
|
||||||
$(ASM) /c masm-x64.asm
|
$(ASM) /c masm-x64.asm
|
||||||
|
|
||||||
asm-bits.obj: asm-bits.c
|
asm-bits.obj: asm-bits.c
|
||||||
$(CC) $(OPTFLAGS) $(DEFINES) /c asm-bits.c
|
$(CC) $(OPTFLAGS) $(DEFINES) /c asm-bits.c
|
||||||
|
|
||||||
cpuid_main.obj: cpuid_main.c
|
cpuid_main.obj: cpuid_main.c
|
||||||
$(CC) $(OPTFLAGS) $(DEFINES) /c cpuid_main.c
|
$(CC) $(OPTFLAGS) $(DEFINES) /c cpuid_main.c
|
||||||
|
|
||||||
libcpuid_util.obj: libcpuid_util.c
|
libcpuid_util.obj: libcpuid_util.c
|
||||||
$(CC) $(OPTFLAGS) $(DEFINES) /c libcpuid_util.c
|
$(CC) $(OPTFLAGS) $(DEFINES) /c libcpuid_util.c
|
||||||
|
|
||||||
recog_amd.obj: recog_amd.c
|
recog_amd.obj: recog_amd.c
|
||||||
$(CC) $(OPTFLAGS) $(DEFINES) /c recog_amd.c
|
$(CC) $(OPTFLAGS) $(DEFINES) /c recog_amd.c
|
||||||
|
|
||||||
recog_intel.obj: recog_intel.c
|
recog_intel.obj: recog_intel.c
|
||||||
$(CC) $(OPTFLAGS) $(DEFINES) /c recog_intel.c
|
$(CC) $(OPTFLAGS) $(DEFINES) /c recog_intel.c
|
||||||
|
|
||||||
rdtsc.obj: rdtsc.c
|
rdtsc.obj: rdtsc.c
|
||||||
$(CC) $(OPTFLAGS) $(DEFINES) /c rdtsc.c
|
$(CC) $(OPTFLAGS) $(DEFINES) /c rdtsc.c
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
del *.obj libcpuid.lib
|
del *.obj libcpuid.lib
|
||||||
|
|
|
@ -1,40 +1,40 @@
|
||||||
# Makefile for Win32
|
# Makefile for Win32
|
||||||
#
|
#
|
||||||
# This is required on machines with multiple versions of the Microsoft compiler
|
# This is required on machines with multiple versions of the Microsoft compiler
|
||||||
#
|
#
|
||||||
# E.g. if you have Visual Studio 2008 and compile libcpuid with it, the static lib
|
# E.g. if you have Visual Studio 2008 and compile libcpuid with it, the static lib
|
||||||
# will not link in an executable, created through makefiles and MSVC 2003 (7.1).
|
# will not link in an executable, created through makefiles and MSVC 2003 (7.1).
|
||||||
#
|
#
|
||||||
# The solution is to use this custom makefile and compile libcpuid for MSVC 2003
|
# The solution is to use this custom makefile and compile libcpuid for MSVC 2003
|
||||||
#
|
#
|
||||||
|
|
||||||
all: libcpuid.lib
|
all: libcpuid.lib
|
||||||
|
|
||||||
CC = cl.exe /nologo /TC
|
CC = cl.exe /nologo /TC
|
||||||
OPTFLAGS = /MT
|
OPTFLAGS = /MT
|
||||||
DEFINES = /D "VERSION=\"0.4.1\""
|
DEFINES = /D "VERSION=\"0.4.1\""
|
||||||
OBJECTS = asm-bits.obj cpuid_main.obj libcpuid_util.obj recog_amd.obj recog_intel.obj rdtsc.obj
|
OBJECTS = asm-bits.obj cpuid_main.obj libcpuid_util.obj recog_amd.obj recog_intel.obj rdtsc.obj
|
||||||
|
|
||||||
libcpuid.lib: $(OBJECTS)
|
libcpuid.lib: $(OBJECTS)
|
||||||
lib /nologo /out:libcpuid.lib $(OBJECTS)
|
lib /nologo /out:libcpuid.lib $(OBJECTS)
|
||||||
|
|
||||||
asm-bits.obj: asm-bits.c
|
asm-bits.obj: asm-bits.c
|
||||||
$(CC) $(OPTFLAGS) $(DEFINES) /c asm-bits.c
|
$(CC) $(OPTFLAGS) $(DEFINES) /c asm-bits.c
|
||||||
|
|
||||||
cpuid_main.obj: cpuid_main.c
|
cpuid_main.obj: cpuid_main.c
|
||||||
$(CC) $(OPTFLAGS) $(DEFINES) /c cpuid_main.c
|
$(CC) $(OPTFLAGS) $(DEFINES) /c cpuid_main.c
|
||||||
|
|
||||||
libcpuid_util.obj: libcpuid_util.c
|
libcpuid_util.obj: libcpuid_util.c
|
||||||
$(CC) $(OPTFLAGS) $(DEFINES) /c libcpuid_util.c
|
$(CC) $(OPTFLAGS) $(DEFINES) /c libcpuid_util.c
|
||||||
|
|
||||||
recog_amd.obj: recog_amd.c
|
recog_amd.obj: recog_amd.c
|
||||||
$(CC) $(OPTFLAGS) $(DEFINES) /c recog_amd.c
|
$(CC) $(OPTFLAGS) $(DEFINES) /c recog_amd.c
|
||||||
|
|
||||||
recog_intel.obj: recog_intel.c
|
recog_intel.obj: recog_intel.c
|
||||||
$(CC) $(OPTFLAGS) $(DEFINES) /c recog_intel.c
|
$(CC) $(OPTFLAGS) $(DEFINES) /c recog_intel.c
|
||||||
|
|
||||||
rdtsc.obj: rdtsc.c
|
rdtsc.obj: rdtsc.c
|
||||||
$(CC) $(OPTFLAGS) $(DEFINES) /c rdtsc.c
|
$(CC) $(OPTFLAGS) $(DEFINES) /c rdtsc.c
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
del *.obj libcpuid.lib
|
del *.obj libcpuid.lib
|
||||||
|
|
|
@ -36,4 +36,4 @@
|
||||||
CODE(FUSION_EA),
|
CODE(FUSION_EA),
|
||||||
CODE(FUSION_Z),
|
CODE(FUSION_Z),
|
||||||
CODE(FUSION_A),
|
CODE(FUSION_A),
|
||||||
|
|
||||||
|
|
|
@ -76,7 +76,7 @@ int cpuid_exists_by_eflags(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef INLINE_ASM_SUPPORTED
|
#ifdef INLINE_ASM_SUPPORTED
|
||||||
/*
|
/*
|
||||||
* with MSVC/AMD64, the exec_cpuid() and cpu_rdtsc() functions
|
* with MSVC/AMD64, the exec_cpuid() and cpu_rdtsc() functions
|
||||||
* are implemented in separate .asm files. Otherwise, use inline assembly
|
* are implemented in separate .asm files. Otherwise, use inline assembly
|
||||||
*/
|
*/
|
||||||
|
@ -90,14 +90,14 @@ void exec_cpuid(uint32_t *regs)
|
||||||
" push %%rbx\n"
|
" push %%rbx\n"
|
||||||
" push %%rcx\n"
|
" push %%rcx\n"
|
||||||
" push %%rdx\n"
|
" push %%rdx\n"
|
||||||
|
|
||||||
" mov (%%rdi), %%eax\n"
|
" mov (%%rdi), %%eax\n"
|
||||||
" mov 4(%%rdi), %%ebx\n"
|
" mov 4(%%rdi), %%ebx\n"
|
||||||
" mov 8(%%rdi), %%ecx\n"
|
" mov 8(%%rdi), %%ecx\n"
|
||||||
" mov 12(%%rdi), %%edx\n"
|
" mov 12(%%rdi), %%edx\n"
|
||||||
|
|
||||||
" cpuid\n"
|
" cpuid\n"
|
||||||
|
|
||||||
" movl %%eax, (%%rdi)\n"
|
" movl %%eax, (%%rdi)\n"
|
||||||
" movl %%ebx, 4(%%rdi)\n"
|
" movl %%ebx, 4(%%rdi)\n"
|
||||||
" movl %%ecx, 8(%%rdi)\n"
|
" movl %%ecx, 8(%%rdi)\n"
|
||||||
|
@ -116,14 +116,14 @@ void exec_cpuid(uint32_t *regs)
|
||||||
" push %%ebx\n"
|
" push %%ebx\n"
|
||||||
" push %%ecx\n"
|
" push %%ecx\n"
|
||||||
" push %%edx\n"
|
" push %%edx\n"
|
||||||
|
|
||||||
" mov (%%edi), %%eax\n"
|
" mov (%%edi), %%eax\n"
|
||||||
" mov 4(%%edi), %%ebx\n"
|
" mov 4(%%edi), %%ebx\n"
|
||||||
" mov 8(%%edi), %%ecx\n"
|
" mov 8(%%edi), %%ecx\n"
|
||||||
" mov 12(%%edi), %%edx\n"
|
" mov 12(%%edi), %%edx\n"
|
||||||
|
|
||||||
" cpuid\n"
|
" cpuid\n"
|
||||||
|
|
||||||
" mov %%eax, (%%edi)\n"
|
" mov %%eax, (%%edi)\n"
|
||||||
" mov %%ebx, 4(%%edi)\n"
|
" mov %%ebx, 4(%%edi)\n"
|
||||||
" mov %%ecx, 8(%%edi)\n"
|
" mov %%ecx, 8(%%edi)\n"
|
||||||
|
@ -144,19 +144,19 @@ void exec_cpuid(uint32_t *regs)
|
||||||
push edx
|
push edx
|
||||||
push edi
|
push edi
|
||||||
mov edi, regs
|
mov edi, regs
|
||||||
|
|
||||||
mov eax, [edi]
|
mov eax, [edi]
|
||||||
mov ebx, [edi+4]
|
mov ebx, [edi+4]
|
||||||
mov ecx, [edi+8]
|
mov ecx, [edi+8]
|
||||||
mov edx, [edi+12]
|
mov edx, [edi+12]
|
||||||
|
|
||||||
cpuid
|
cpuid
|
||||||
|
|
||||||
mov [edi], eax
|
mov [edi], eax
|
||||||
mov [edi+4], ebx
|
mov [edi+4], ebx
|
||||||
mov [edi+8], ecx
|
mov [edi+8], ecx
|
||||||
mov [edi+12], edx
|
mov [edi+12], edx
|
||||||
|
|
||||||
pop edi
|
pop edi
|
||||||
pop edx
|
pop edx
|
||||||
pop ecx
|
pop ecx
|
||||||
|
@ -510,7 +510,7 @@ void busy_sse_loop(int cycles)
|
||||||
" addps %%xmm6, %%xmm5\n"
|
" addps %%xmm6, %%xmm5\n"
|
||||||
" addps %%xmm7, %%xmm6\n"
|
" addps %%xmm7, %%xmm6\n"
|
||||||
" addps %%xmm0, %%xmm7\n"
|
" addps %%xmm0, %%xmm7\n"
|
||||||
|
|
||||||
" dec %%eax\n"
|
" dec %%eax\n"
|
||||||
/* "jnz .bsLoop\n" */
|
/* "jnz .bsLoop\n" */
|
||||||
" jnz 1b\n"
|
" jnz 1b\n"
|
||||||
|
|
|
@ -128,7 +128,7 @@ static int get_total_cpus(void)
|
||||||
#if defined linux || defined __linux__ || defined __sun
|
#if defined linux || defined __linux__ || defined __sun
|
||||||
#include <sys/sysinfo.h>
|
#include <sys/sysinfo.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
|
|
||||||
static int get_total_cpus(void)
|
static int get_total_cpus(void)
|
||||||
{
|
{
|
||||||
return sysconf(_SC_NPROCESSORS_ONLN);
|
return sysconf(_SC_NPROCESSORS_ONLN);
|
||||||
|
@ -314,7 +314,7 @@ static int cpuid_basic_identify(struct cpu_raw_data_t* raw, struct cpu_id_t* dat
|
||||||
data->ext_model = data->model + (xmodel << 4);
|
data->ext_model = data->model + (xmodel << 4);
|
||||||
}
|
}
|
||||||
ext = raw->ext_cpuid[0][0] - 0x8000000;
|
ext = raw->ext_cpuid[0][0] - 0x8000000;
|
||||||
|
|
||||||
/* obtain the brand string, if present: */
|
/* obtain the brand string, if present: */
|
||||||
if (ext >= 4) {
|
if (ext >= 4) {
|
||||||
for (i = 0; i < 3; i++)
|
for (i = 0; i < 3; i++)
|
||||||
|
@ -417,13 +417,13 @@ int cpuid_serialize_raw_data(struct cpu_raw_data_t* data, const char* filename)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
FILE *f;
|
FILE *f;
|
||||||
|
|
||||||
if (!strcmp(filename, ""))
|
if (!strcmp(filename, ""))
|
||||||
f = stdout;
|
f = stdout;
|
||||||
else
|
else
|
||||||
f = fopen(filename, "wt");
|
f = fopen(filename, "wt");
|
||||||
if (!f) return set_error(ERR_OPEN);
|
if (!f) return set_error(ERR_OPEN);
|
||||||
|
|
||||||
fprintf(f, "version=%s\n", VERSION);
|
fprintf(f, "version=%s\n", VERSION);
|
||||||
for (i = 0; i < MAX_CPUID_LEVEL; i++)
|
for (i = 0; i < MAX_CPUID_LEVEL; i++)
|
||||||
fprintf(f, "basic_cpuid[%d]=%08x %08x %08x %08x\n", i,
|
fprintf(f, "basic_cpuid[%d]=%08x %08x %08x %08x\n", i,
|
||||||
|
@ -449,7 +449,7 @@ int cpuid_serialize_raw_data(struct cpu_raw_data_t* data, const char* filename)
|
||||||
fprintf(f, "intel_fn14h[%d]=%08x %08x %08x %08x\n", i,
|
fprintf(f, "intel_fn14h[%d]=%08x %08x %08x %08x\n", i,
|
||||||
data->intel_fn14h[i][0], data->intel_fn14h[i][1],
|
data->intel_fn14h[i][0], data->intel_fn14h[i][1],
|
||||||
data->intel_fn14h[i][2], data->intel_fn14h[i][3]);
|
data->intel_fn14h[i][2], data->intel_fn14h[i][3]);
|
||||||
|
|
||||||
if (strcmp(filename, ""))
|
if (strcmp(filename, ""))
|
||||||
fclose(f);
|
fclose(f);
|
||||||
return set_error(ERR_OK);
|
return set_error(ERR_OK);
|
||||||
|
@ -465,9 +465,9 @@ int cpuid_deserialize_raw_data(struct cpu_raw_data_t* data, const char* filename
|
||||||
int cur_line = 0;
|
int cur_line = 0;
|
||||||
int recognized;
|
int recognized;
|
||||||
FILE *f;
|
FILE *f;
|
||||||
|
|
||||||
raw_data_t_constructor(data);
|
raw_data_t_constructor(data);
|
||||||
|
|
||||||
if (!strcmp(filename, ""))
|
if (!strcmp(filename, ""))
|
||||||
f = stdin;
|
f = stdin;
|
||||||
else
|
else
|
||||||
|
@ -508,7 +508,7 @@ int cpuid_deserialize_raw_data(struct cpu_raw_data_t* data, const char* filename
|
||||||
warnf("Warning: %s:%d not understood!\n", filename, cur_line);
|
warnf("Warning: %s:%d not understood!\n", filename, cur_line);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (strcmp(filename, ""))
|
if (strcmp(filename, ""))
|
||||||
fclose(f);
|
fclose(f);
|
||||||
return set_error(ERR_OK);
|
return set_error(ERR_OK);
|
||||||
|
|
|
@ -1,84 +1,84 @@
|
||||||
// A simple utility to read and embed the MSR drivers for X86
|
// A simple utility to read and embed the MSR drivers for X86
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
#include <string>
|
#include <string>
|
||||||
using namespace std;
|
using namespace std;
|
||||||
|
|
||||||
const char* drivers_root = "..\\contrib\\MSR Driver\\";
|
const char* drivers_root = "..\\contrib\\MSR Driver\\";
|
||||||
const char* sourcefile = "msrdriver.c";
|
const char* sourcefile = "msrdriver.c";
|
||||||
|
|
||||||
char* images[2];
|
char* images[2];
|
||||||
int sizes[2];
|
int sizes[2];
|
||||||
const char* filenames[] = { "TmpRdr.sys", "TmpRdr64.sys" };
|
const char* filenames[] = { "TmpRdr.sys", "TmpRdr64.sys" };
|
||||||
vector<string> source;
|
vector<string> source;
|
||||||
|
|
||||||
bool read_image(const char* filename, char*& image, int& isize)
|
bool read_image(const char* filename, char*& image, int& isize)
|
||||||
{
|
{
|
||||||
char fn[512];
|
char fn[512];
|
||||||
sprintf(fn, "%s%s", drivers_root, filename);
|
sprintf(fn, "%s%s", drivers_root, filename);
|
||||||
FILE* f = fopen(fn, "rb");
|
FILE* f = fopen(fn, "rb");
|
||||||
if (!f) return false;
|
if (!f) return false;
|
||||||
fseek(f, 0, SEEK_END);
|
fseek(f, 0, SEEK_END);
|
||||||
long size = ftell(f);
|
long size = ftell(f);
|
||||||
isize = (int) size;
|
isize = (int) size;
|
||||||
rewind(f);
|
rewind(f);
|
||||||
image = new char[size];
|
image = new char[size];
|
||||||
fread(image, 1, size, f);
|
fread(image, 1, size, f);
|
||||||
fclose(f);
|
fclose(f);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool read_source(const char* filename)
|
bool read_source(const char* filename)
|
||||||
{
|
{
|
||||||
source.clear();
|
source.clear();
|
||||||
FILE* f = fopen(filename, "rt");
|
FILE* f = fopen(filename, "rt");
|
||||||
if (!f) return false;
|
if (!f) return false;
|
||||||
char line[200];
|
char line[200];
|
||||||
while (fgets(line, sizeof(line), f)) {
|
while (fgets(line, sizeof(line), f)) {
|
||||||
int i = (int) strlen(line);
|
int i = (int) strlen(line);
|
||||||
if (i && line[i - 1] == '\n') line[--i] = 0;
|
if (i && line[i - 1] == '\n') line[--i] = 0;
|
||||||
source.push_back(string(line));
|
source.push_back(string(line));
|
||||||
}
|
}
|
||||||
fclose(f);
|
fclose(f);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void print_image(FILE* f, const char* arch, const char* image, int size)
|
void print_image(FILE* f, const char* arch, const char* image, int size)
|
||||||
{
|
{
|
||||||
fprintf(f, "int cc_%sdriver_code_size = %d;\n", arch, size);
|
fprintf(f, "int cc_%sdriver_code_size = %d;\n", arch, size);
|
||||||
fprintf(f, "uint8_t cc_%sdriver_code[%d] = {", arch, size);
|
fprintf(f, "uint8_t cc_%sdriver_code[%d] = {", arch, size);
|
||||||
for (int i = 0; i < size; i++) {
|
for (int i = 0; i < size; i++) {
|
||||||
if (i % 18 == 0) fprintf(f, "\n\t");
|
if (i % 18 == 0) fprintf(f, "\n\t");
|
||||||
fprintf(f, "0x%02x,", (unsigned) (unsigned char) image[i]);
|
fprintf(f, "0x%02x,", (unsigned) (unsigned char) image[i]);
|
||||||
}
|
}
|
||||||
fprintf(f, "\n};\n");
|
fprintf(f, "\n};\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
int main(void)
|
int main(void)
|
||||||
{
|
{
|
||||||
for (int i = 0; i < 2; i++)
|
for (int i = 0; i < 2; i++)
|
||||||
if (!read_image(filenames[i], images[i], sizes[i])) {
|
if (!read_image(filenames[i], images[i], sizes[i])) {
|
||||||
printf("Cannot read image `%s' from `%s'!\n", filenames[i], drivers_root);
|
printf("Cannot read image `%s' from `%s'!\n", filenames[i], drivers_root);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
if (!read_source(sourcefile)) {
|
if (!read_source(sourcefile)) {
|
||||||
printf("Cannot read source `%s'\n", sourcefile);
|
printf("Cannot read source `%s'\n", sourcefile);
|
||||||
return -2;
|
return -2;
|
||||||
}
|
}
|
||||||
FILE* f = fopen(sourcefile, "wt");
|
FILE* f = fopen(sourcefile, "wt");
|
||||||
bool on = true;
|
bool on = true;
|
||||||
for (unsigned i = 0; i < source.size(); i++) {
|
for (unsigned i = 0; i < source.size(); i++) {
|
||||||
if (source[i] == "//} end")
|
if (source[i] == "//} end")
|
||||||
on = true;
|
on = true;
|
||||||
if (on) fprintf(f, "%s\n", source[i].c_str());
|
if (on) fprintf(f, "%s\n", source[i].c_str());
|
||||||
if (source[i] == "//begin {") {
|
if (source[i] == "//begin {") {
|
||||||
on = false;
|
on = false;
|
||||||
print_image(f, "x86", images[0], sizes[0]);
|
print_image(f, "x86", images[0], sizes[0]);
|
||||||
print_image(f, "x64", images[1], sizes[1]);
|
print_image(f, "x64", images[1], sizes[1]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,35 +1,35 @@
|
||||||
LIBRARY LIBCPUID
|
LIBRARY LIBCPUID
|
||||||
|
|
||||||
EXPORTS
|
EXPORTS
|
||||||
cpuid_present @1
|
cpuid_present @1
|
||||||
cpu_exec_cpuid @2
|
cpu_exec_cpuid @2
|
||||||
cpu_exec_cpuid_ext @3
|
cpu_exec_cpuid_ext @3
|
||||||
cpuid_get_raw_data @4
|
cpuid_get_raw_data @4
|
||||||
cpuid_serialize_raw_data @5
|
cpuid_serialize_raw_data @5
|
||||||
cpuid_deserialize_raw_data @6
|
cpuid_deserialize_raw_data @6
|
||||||
cpu_identify @7
|
cpu_identify @7
|
||||||
cpu_feature_str @8
|
cpu_feature_str @8
|
||||||
cpuid_error @9
|
cpuid_error @9
|
||||||
cpu_rdtsc @10
|
cpu_rdtsc @10
|
||||||
cpu_tsc_mark @11
|
cpu_tsc_mark @11
|
||||||
cpu_tsc_unmark @12
|
cpu_tsc_unmark @12
|
||||||
cpu_clock_by_mark @13
|
cpu_clock_by_mark @13
|
||||||
cpu_clock_by_os @14
|
cpu_clock_by_os @14
|
||||||
cpu_clock_measure @15
|
cpu_clock_measure @15
|
||||||
cpu_clock @16
|
cpu_clock @16
|
||||||
cpuid_lib_version @17
|
cpuid_lib_version @17
|
||||||
cpuid_set_warn_function @18
|
cpuid_set_warn_function @18
|
||||||
cpuid_set_verbosiness_level @19
|
cpuid_set_verbosiness_level @19
|
||||||
cpuid_get_cpu_list @20
|
cpuid_get_cpu_list @20
|
||||||
cpuid_free_cpu_list @21
|
cpuid_free_cpu_list @21
|
||||||
cpu_msr_driver_open @22
|
cpu_msr_driver_open @22
|
||||||
cpu_rdmsr @23
|
cpu_rdmsr @23
|
||||||
cpu_msrinfo @24
|
cpu_msrinfo @24
|
||||||
cpu_msr_driver_close @25
|
cpu_msr_driver_close @25
|
||||||
cpu_clock_by_ic @26
|
cpu_clock_by_ic @26
|
||||||
cpuid_get_total_cpus @27
|
cpuid_get_total_cpus @27
|
||||||
cpu_msr_driver_open_core @28
|
cpu_msr_driver_open_core @28
|
||||||
cpuid_get_vendor @29
|
cpuid_get_vendor @29
|
||||||
cpu_rdmsr_range @30
|
cpu_rdmsr_range @30
|
||||||
cpuid_get_epc @31
|
cpuid_get_epc @31
|
||||||
msr_serialize_raw_data @32
|
msr_serialize_raw_data @32
|
||||||
|
|
|
@ -29,20 +29,20 @@
|
||||||
* of no external use and isn't a complete list of intel products.
|
* of no external use and isn't a complete list of intel products.
|
||||||
*/
|
*/
|
||||||
CODE2(PENTIUM, 2000),
|
CODE2(PENTIUM, 2000),
|
||||||
|
|
||||||
CODE(IRWIN),
|
CODE(IRWIN),
|
||||||
CODE(POTOMAC),
|
CODE(POTOMAC),
|
||||||
CODE(GAINESTOWN),
|
CODE(GAINESTOWN),
|
||||||
CODE(WESTMERE),
|
CODE(WESTMERE),
|
||||||
|
|
||||||
CODE(PENTIUM_M),
|
CODE(PENTIUM_M),
|
||||||
CODE(NOT_CELERON),
|
CODE(NOT_CELERON),
|
||||||
|
|
||||||
CODE(CORE_SOLO),
|
CODE(CORE_SOLO),
|
||||||
CODE(MOBILE_CORE_SOLO),
|
CODE(MOBILE_CORE_SOLO),
|
||||||
CODE(CORE_DUO),
|
CODE(CORE_DUO),
|
||||||
CODE(MOBILE_CORE_DUO),
|
CODE(MOBILE_CORE_DUO),
|
||||||
|
|
||||||
CODE(WOLFDALE),
|
CODE(WOLFDALE),
|
||||||
CODE(MEROM),
|
CODE(MEROM),
|
||||||
CODE(PENRYN),
|
CODE(PENRYN),
|
||||||
|
@ -51,7 +51,7 @@
|
||||||
CODE(QUAD_CORE_HT),
|
CODE(QUAD_CORE_HT),
|
||||||
CODE(MORE_THAN_QUADCORE),
|
CODE(MORE_THAN_QUADCORE),
|
||||||
CODE(PENTIUM_D),
|
CODE(PENTIUM_D),
|
||||||
|
|
||||||
CODE(SILVERTHORNE),
|
CODE(SILVERTHORNE),
|
||||||
CODE(DIAMONDVILLE),
|
CODE(DIAMONDVILLE),
|
||||||
CODE(PINEVIEW),
|
CODE(PINEVIEW),
|
||||||
|
|
|
@ -1,156 +1,156 @@
|
||||||
# Microsoft Developer Studio Project File - Name="libcpuid" - Package Owner=<4>
|
# Microsoft Developer Studio Project File - Name="libcpuid" - Package Owner=<4>
|
||||||
# Microsoft Developer Studio Generated Build File, Format Version 6.00
|
# Microsoft Developer Studio Generated Build File, Format Version 6.00
|
||||||
# ** DO NOT EDIT **
|
# ** DO NOT EDIT **
|
||||||
|
|
||||||
# TARGTYPE "Win32 (x86) Static Library" 0x0104
|
# TARGTYPE "Win32 (x86) Static Library" 0x0104
|
||||||
|
|
||||||
CFG=libcpuid - Win32 Debug
|
CFG=libcpuid - Win32 Debug
|
||||||
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
|
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
|
||||||
!MESSAGE use the Export Makefile command and run
|
!MESSAGE use the Export Makefile command and run
|
||||||
!MESSAGE
|
!MESSAGE
|
||||||
!MESSAGE NMAKE /f "libcpuid.mak".
|
!MESSAGE NMAKE /f "libcpuid.mak".
|
||||||
!MESSAGE
|
!MESSAGE
|
||||||
!MESSAGE You can specify a configuration when running NMAKE
|
!MESSAGE You can specify a configuration when running NMAKE
|
||||||
!MESSAGE by defining the macro CFG on the command line. For example:
|
!MESSAGE by defining the macro CFG on the command line. For example:
|
||||||
!MESSAGE
|
!MESSAGE
|
||||||
!MESSAGE NMAKE /f "libcpuid.mak" CFG="libcpuid - Win32 Debug"
|
!MESSAGE NMAKE /f "libcpuid.mak" CFG="libcpuid - Win32 Debug"
|
||||||
!MESSAGE
|
!MESSAGE
|
||||||
!MESSAGE Possible choices for configuration are:
|
!MESSAGE Possible choices for configuration are:
|
||||||
!MESSAGE
|
!MESSAGE
|
||||||
!MESSAGE "libcpuid - Win32 Release" (based on "Win32 (x86) Static Library")
|
!MESSAGE "libcpuid - Win32 Release" (based on "Win32 (x86) Static Library")
|
||||||
!MESSAGE "libcpuid - Win32 Debug" (based on "Win32 (x86) Static Library")
|
!MESSAGE "libcpuid - Win32 Debug" (based on "Win32 (x86) Static Library")
|
||||||
!MESSAGE
|
!MESSAGE
|
||||||
|
|
||||||
# Begin Project
|
# Begin Project
|
||||||
# PROP AllowPerConfigDependencies 0
|
# PROP AllowPerConfigDependencies 0
|
||||||
# PROP Scc_ProjName ""
|
# PROP Scc_ProjName ""
|
||||||
# PROP Scc_LocalPath ""
|
# PROP Scc_LocalPath ""
|
||||||
CPP=cl.exe
|
CPP=cl.exe
|
||||||
RSC=rc.exe
|
RSC=rc.exe
|
||||||
|
|
||||||
!IF "$(CFG)" == "libcpuid - Win32 Release"
|
!IF "$(CFG)" == "libcpuid - Win32 Release"
|
||||||
|
|
||||||
# PROP BASE Use_MFC 0
|
# PROP BASE Use_MFC 0
|
||||||
# PROP BASE Use_Debug_Libraries 0
|
# PROP BASE Use_Debug_Libraries 0
|
||||||
# PROP BASE Output_Dir "Release"
|
# PROP BASE Output_Dir "Release"
|
||||||
# PROP BASE Intermediate_Dir "Release"
|
# PROP BASE Intermediate_Dir "Release"
|
||||||
# PROP BASE Target_Dir ""
|
# PROP BASE Target_Dir ""
|
||||||
# PROP Use_MFC 0
|
# PROP Use_MFC 0
|
||||||
# PROP Use_Debug_Libraries 0
|
# PROP Use_Debug_Libraries 0
|
||||||
# PROP Output_Dir "Release"
|
# PROP Output_Dir "Release"
|
||||||
# PROP Intermediate_Dir "Release"
|
# PROP Intermediate_Dir "Release"
|
||||||
# PROP Target_Dir ""
|
# PROP Target_Dir ""
|
||||||
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c
|
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c
|
||||||
# ADD CPP /nologo /MD /W3 /GX /O2 /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /D VERSION=\"0.4.1\" /YX /FD /c
|
# ADD CPP /nologo /MD /W3 /GX /O2 /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /D VERSION=\"0.4.1\" /YX /FD /c
|
||||||
# ADD BASE RSC /l 0x409 /d "NDEBUG"
|
# ADD BASE RSC /l 0x409 /d "NDEBUG"
|
||||||
# ADD RSC /l 0x409 /d "NDEBUG"
|
# ADD RSC /l 0x409 /d "NDEBUG"
|
||||||
BSC32=bscmake.exe
|
BSC32=bscmake.exe
|
||||||
# ADD BASE BSC32 /nologo
|
# ADD BASE BSC32 /nologo
|
||||||
# ADD BSC32 /nologo
|
# ADD BSC32 /nologo
|
||||||
LIB32=link.exe -lib
|
LIB32=link.exe -lib
|
||||||
# ADD BASE LIB32 /nologo
|
# ADD BASE LIB32 /nologo
|
||||||
# ADD LIB32 /nologo
|
# ADD LIB32 /nologo
|
||||||
|
|
||||||
!ELSEIF "$(CFG)" == "libcpuid - Win32 Debug"
|
!ELSEIF "$(CFG)" == "libcpuid - Win32 Debug"
|
||||||
|
|
||||||
# PROP BASE Use_MFC 0
|
# PROP BASE Use_MFC 0
|
||||||
# PROP BASE Use_Debug_Libraries 1
|
# PROP BASE Use_Debug_Libraries 1
|
||||||
# PROP BASE Output_Dir "Debug"
|
# PROP BASE Output_Dir "Debug"
|
||||||
# PROP BASE Intermediate_Dir "Debug"
|
# PROP BASE Intermediate_Dir "Debug"
|
||||||
# PROP BASE Target_Dir ""
|
# PROP BASE Target_Dir ""
|
||||||
# PROP Use_MFC 0
|
# PROP Use_MFC 0
|
||||||
# PROP Use_Debug_Libraries 1
|
# PROP Use_Debug_Libraries 1
|
||||||
# PROP Output_Dir "Debug"
|
# PROP Output_Dir "Debug"
|
||||||
# PROP Intermediate_Dir "Debug"
|
# PROP Intermediate_Dir "Debug"
|
||||||
# PROP Target_Dir ""
|
# PROP Target_Dir ""
|
||||||
# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c
|
# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c
|
||||||
# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /D VERSION=\"0.4.1\" /YX /FD /GZ /c
|
# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /D VERSION=\"0.4.1\" /YX /FD /GZ /c
|
||||||
# ADD BASE RSC /l 0x409 /d "_DEBUG"
|
# ADD BASE RSC /l 0x409 /d "_DEBUG"
|
||||||
# ADD RSC /l 0x409 /d "_DEBUG"
|
# ADD RSC /l 0x409 /d "_DEBUG"
|
||||||
BSC32=bscmake.exe
|
BSC32=bscmake.exe
|
||||||
# ADD BASE BSC32 /nologo
|
# ADD BASE BSC32 /nologo
|
||||||
# ADD BSC32 /nologo
|
# ADD BSC32 /nologo
|
||||||
LIB32=link.exe -lib
|
LIB32=link.exe -lib
|
||||||
# ADD BASE LIB32 /nologo
|
# ADD BASE LIB32 /nologo
|
||||||
# ADD LIB32 /nologo
|
# ADD LIB32 /nologo
|
||||||
|
|
||||||
!ENDIF
|
!ENDIF
|
||||||
|
|
||||||
# Begin Target
|
# Begin Target
|
||||||
|
|
||||||
# Name "libcpuid - Win32 Release"
|
# Name "libcpuid - Win32 Release"
|
||||||
# Name "libcpuid - Win32 Debug"
|
# Name "libcpuid - Win32 Debug"
|
||||||
# Begin Group "Source Files"
|
# Begin Group "Source Files"
|
||||||
|
|
||||||
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
|
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
|
||||||
# Begin Source File
|
# Begin Source File
|
||||||
|
|
||||||
SOURCE=".\asm-bits.c"
|
SOURCE=".\asm-bits.c"
|
||||||
# End Source File
|
# End Source File
|
||||||
# Begin Source File
|
# Begin Source File
|
||||||
|
|
||||||
SOURCE=.\cpuid_main.c
|
SOURCE=.\cpuid_main.c
|
||||||
# End Source File
|
# End Source File
|
||||||
# Begin Source File
|
# Begin Source File
|
||||||
|
|
||||||
SOURCE=.\libcpuid_util.c
|
SOURCE=.\libcpuid_util.c
|
||||||
# End Source File
|
# End Source File
|
||||||
# Begin Source File
|
# Begin Source File
|
||||||
|
|
||||||
SOURCE=.\msrdriver.c
|
SOURCE=.\msrdriver.c
|
||||||
# End Source File
|
# End Source File
|
||||||
# Begin Source File
|
# Begin Source File
|
||||||
|
|
||||||
SOURCE=.\rdmsr.c
|
SOURCE=.\rdmsr.c
|
||||||
# End Source File
|
# End Source File
|
||||||
# Begin Source File
|
# Begin Source File
|
||||||
|
|
||||||
SOURCE=.\rdtsc.c
|
SOURCE=.\rdtsc.c
|
||||||
# End Source File
|
# End Source File
|
||||||
# Begin Source File
|
# Begin Source File
|
||||||
|
|
||||||
SOURCE=.\recog_amd.c
|
SOURCE=.\recog_amd.c
|
||||||
# End Source File
|
# End Source File
|
||||||
# Begin Source File
|
# Begin Source File
|
||||||
|
|
||||||
SOURCE=.\recog_intel.c
|
SOURCE=.\recog_intel.c
|
||||||
# End Source File
|
# End Source File
|
||||||
# End Group
|
# End Group
|
||||||
# Begin Group "Header Files"
|
# Begin Group "Header Files"
|
||||||
|
|
||||||
# PROP Default_Filter "h;hpp;hxx;hm;inl"
|
# PROP Default_Filter "h;hpp;hxx;hm;inl"
|
||||||
# Begin Source File
|
# Begin Source File
|
||||||
|
|
||||||
SOURCE=".\asm-bits.h"
|
SOURCE=".\asm-bits.h"
|
||||||
# End Source File
|
# End Source File
|
||||||
# Begin Source File
|
# Begin Source File
|
||||||
|
|
||||||
SOURCE=.\libcpuid.h
|
SOURCE=.\libcpuid.h
|
||||||
# End Source File
|
# End Source File
|
||||||
# Begin Source File
|
# Begin Source File
|
||||||
|
|
||||||
SOURCE=.\libcpuid_constants.h
|
SOURCE=.\libcpuid_constants.h
|
||||||
# End Source File
|
# End Source File
|
||||||
# Begin Source File
|
# Begin Source File
|
||||||
|
|
||||||
SOURCE=.\libcpuid_types.h
|
SOURCE=.\libcpuid_types.h
|
||||||
# End Source File
|
# End Source File
|
||||||
# Begin Source File
|
# Begin Source File
|
||||||
|
|
||||||
SOURCE=.\libcpuid_util.h
|
SOURCE=.\libcpuid_util.h
|
||||||
# End Source File
|
# End Source File
|
||||||
# Begin Source File
|
# Begin Source File
|
||||||
|
|
||||||
SOURCE=.\rdtsc.h
|
SOURCE=.\rdtsc.h
|
||||||
# End Source File
|
# End Source File
|
||||||
# Begin Source File
|
# Begin Source File
|
||||||
|
|
||||||
SOURCE=.\recog_amd.h
|
SOURCE=.\recog_amd.h
|
||||||
# End Source File
|
# End Source File
|
||||||
# Begin Source File
|
# Begin Source File
|
||||||
|
|
||||||
SOURCE=.\recog_intel.h
|
SOURCE=.\recog_intel.h
|
||||||
# End Source File
|
# End Source File
|
||||||
# End Group
|
# End Group
|
||||||
# End Target
|
# End Target
|
||||||
# End Project
|
# End Project
|
||||||
|
|
|
@ -61,7 +61,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/** @mainpage A simple libcpuid introduction
|
/** @mainpage A simple libcpuid introduction
|
||||||
*
|
*
|
||||||
* LibCPUID provides CPU identification and access to the CPUID and RDTSC
|
* LibCPUID provides CPU identification and access to the CPUID and RDTSC
|
||||||
* instructions on the x86.
|
* instructions on the x86.
|
||||||
* <p>
|
* <p>
|
||||||
|
@ -74,7 +74,7 @@
|
||||||
* \ref cpu_tsc_mark + \ref cpu_tsc_unmark + \ref cpu_clock_by_mark,
|
* \ref cpu_tsc_mark + \ref cpu_tsc_unmark + \ref cpu_clock_by_mark,
|
||||||
* \ref cpu_clock_measure or \ref cpu_clock_by_ic.
|
* \ref cpu_clock_measure or \ref cpu_clock_by_ic.
|
||||||
* Read carefully for pros/cons of each method. <br>
|
* Read carefully for pros/cons of each method. <br>
|
||||||
*
|
*
|
||||||
* To read MSRs, use \ref cpu_msr_driver_open to get a handle, and then
|
* To read MSRs, use \ref cpu_msr_driver_open to get a handle, and then
|
||||||
* \ref cpu_rdmsr for querying abilities. Some MSR decoding is available on recent
|
* \ref cpu_rdmsr for querying abilities. Some MSR decoding is available on recent
|
||||||
* CPUs, and can be queried through \ref cpu_msrinfo; the various types of queries
|
* CPUs, and can be queried through \ref cpu_msrinfo; the various types of queries
|
||||||
|
@ -111,7 +111,7 @@ typedef enum {
|
||||||
VENDOR_SIS, /*!< x86 CPU by SiS */
|
VENDOR_SIS, /*!< x86 CPU by SiS */
|
||||||
VENDOR_NSC, /*!< x86 CPU by National Semiconductor */
|
VENDOR_NSC, /*!< x86 CPU by National Semiconductor */
|
||||||
VENDOR_HYGON, /*!< Hygon CPU */
|
VENDOR_HYGON, /*!< Hygon CPU */
|
||||||
|
|
||||||
NUM_CPU_VENDORS, /*!< Valid CPU vendor ids: 0..NUM_CPU_VENDORS - 1 */
|
NUM_CPU_VENDORS, /*!< Valid CPU vendor ids: 0..NUM_CPU_VENDORS - 1 */
|
||||||
VENDOR_UNKNOWN = -1,
|
VENDOR_UNKNOWN = -1,
|
||||||
} cpu_vendor_t;
|
} cpu_vendor_t;
|
||||||
|
@ -130,17 +130,17 @@ struct cpu_raw_data_t {
|
||||||
|
|
||||||
/** contains results of CPUID for eax = 0x80000000, 0x80000001, ...*/
|
/** contains results of CPUID for eax = 0x80000000, 0x80000001, ...*/
|
||||||
uint32_t ext_cpuid[MAX_EXT_CPUID_LEVEL][4];
|
uint32_t ext_cpuid[MAX_EXT_CPUID_LEVEL][4];
|
||||||
|
|
||||||
/** when the CPU is intel and it supports deterministic cache
|
/** when the CPU is intel and it supports deterministic cache
|
||||||
information: this contains the results of CPUID for eax = 4
|
information: this contains the results of CPUID for eax = 4
|
||||||
and ecx = 0, 1, ... */
|
and ecx = 0, 1, ... */
|
||||||
uint32_t intel_fn4[MAX_INTELFN4_LEVEL][4];
|
uint32_t intel_fn4[MAX_INTELFN4_LEVEL][4];
|
||||||
|
|
||||||
/** when the CPU is intel and it supports leaf 0Bh (Extended Topology
|
/** when the CPU is intel and it supports leaf 0Bh (Extended Topology
|
||||||
enumeration leaf), this stores the result of CPUID with
|
enumeration leaf), this stores the result of CPUID with
|
||||||
eax = 11 and ecx = 0, 1, 2... */
|
eax = 11 and ecx = 0, 1, 2... */
|
||||||
uint32_t intel_fn11[MAX_INTELFN11_LEVEL][4];
|
uint32_t intel_fn11[MAX_INTELFN11_LEVEL][4];
|
||||||
|
|
||||||
/** when the CPU is intel and supports leaf 12h (SGX enumeration leaf),
|
/** when the CPU is intel and supports leaf 12h (SGX enumeration leaf),
|
||||||
* this stores the result of CPUID with eax = 0x12 and
|
* this stores the result of CPUID with eax = 0x12 and
|
||||||
* ecx = 0, 1, 2... */
|
* ecx = 0, 1, 2... */
|
||||||
|
@ -160,7 +160,7 @@ struct cpu_raw_data_t {
|
||||||
* ...
|
* ...
|
||||||
* struct cpu_raw_data_t raw;
|
* struct cpu_raw_data_t raw;
|
||||||
* struct cpu_id_t id;
|
* struct cpu_id_t id;
|
||||||
*
|
*
|
||||||
* if (cpuid_get_raw_data(&raw) == 0 && cpu_identify(&raw, &id) == 0 && id.sgx.present) {
|
* if (cpuid_get_raw_data(&raw) == 0 && cpu_identify(&raw, &id) == 0 && id.sgx.present) {
|
||||||
* printf("SGX is present.\n");
|
* printf("SGX is present.\n");
|
||||||
* printf("SGX1 instructions: %s.\n", id.sgx.flags[INTEL_SGX1] ? "present" : "absent");
|
* printf("SGX1 instructions: %s.\n", id.sgx.flags[INTEL_SGX1] ? "present" : "absent");
|
||||||
|
@ -175,42 +175,42 @@ struct cpu_raw_data_t {
|
||||||
* printf("SGX is not present.\n");
|
* printf("SGX is not present.\n");
|
||||||
* }
|
* }
|
||||||
* @endcode
|
* @endcode
|
||||||
*/
|
*/
|
||||||
struct cpu_sgx_t {
|
struct cpu_sgx_t {
|
||||||
/** Whether SGX is present (boolean) */
|
/** Whether SGX is present (boolean) */
|
||||||
uint32_t present;
|
uint32_t present;
|
||||||
|
|
||||||
/** Max enclave size in 32-bit mode. This is a power-of-two value:
|
/** Max enclave size in 32-bit mode. This is a power-of-two value:
|
||||||
* if it is "31", then the max enclave size is 2^31 bytes (2 GiB).
|
* if it is "31", then the max enclave size is 2^31 bytes (2 GiB).
|
||||||
*/
|
*/
|
||||||
uint8_t max_enclave_32bit;
|
uint8_t max_enclave_32bit;
|
||||||
|
|
||||||
/** Max enclave size in 64-bit mode. This is a power-of-two value:
|
/** Max enclave size in 64-bit mode. This is a power-of-two value:
|
||||||
* if it is "36", then the max enclave size is 2^36 bytes (64 GiB).
|
* if it is "36", then the max enclave size is 2^36 bytes (64 GiB).
|
||||||
*/
|
*/
|
||||||
uint8_t max_enclave_64bit;
|
uint8_t max_enclave_64bit;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* contains SGX feature flags. See the \ref cpu_sgx_feature_t
|
* contains SGX feature flags. See the \ref cpu_sgx_feature_t
|
||||||
* "INTEL_SGX*" macros below.
|
* "INTEL_SGX*" macros below.
|
||||||
*/
|
*/
|
||||||
uint8_t flags[SGX_FLAGS_MAX];
|
uint8_t flags[SGX_FLAGS_MAX];
|
||||||
|
|
||||||
/** number of Enclave Page Cache (EPC) sections. Info for each
|
/** number of Enclave Page Cache (EPC) sections. Info for each
|
||||||
* section is available through the \ref cpuid_get_epc() function
|
* section is available through the \ref cpuid_get_epc() function
|
||||||
*/
|
*/
|
||||||
int num_epc_sections;
|
int num_epc_sections;
|
||||||
|
|
||||||
/** bit vector of the supported extended features that can be written
|
/** bit vector of the supported extended features that can be written
|
||||||
* to the MISC region of the SSA (Save State Area)
|
* to the MISC region of the SSA (Save State Area)
|
||||||
*/
|
*/
|
||||||
uint32_t misc_select;
|
uint32_t misc_select;
|
||||||
|
|
||||||
/** a bit vector of the attributes that can be set to SECS.ATTRIBUTES
|
/** a bit vector of the attributes that can be set to SECS.ATTRIBUTES
|
||||||
* via ECREATE. Corresponds to bits 0-63 (incl.) of SECS.ATTRIBUTES.
|
* via ECREATE. Corresponds to bits 0-63 (incl.) of SECS.ATTRIBUTES.
|
||||||
*/
|
*/
|
||||||
uint64_t secs_attributes;
|
uint64_t secs_attributes;
|
||||||
|
|
||||||
/** a bit vector of the bits that can be set in the XSAVE feature
|
/** a bit vector of the bits that can be set in the XSAVE feature
|
||||||
* request mask; Corresponds to bits 64-127 of SECS.ATTRIBUTES.
|
* request mask; Corresponds to bits 64-127 of SECS.ATTRIBUTES.
|
||||||
*/
|
*/
|
||||||
|
@ -223,45 +223,45 @@ struct cpu_sgx_t {
|
||||||
struct cpu_id_t {
|
struct cpu_id_t {
|
||||||
/** contains the CPU vendor string, e.g. "GenuineIntel" */
|
/** contains the CPU vendor string, e.g. "GenuineIntel" */
|
||||||
char vendor_str[VENDOR_STR_MAX];
|
char vendor_str[VENDOR_STR_MAX];
|
||||||
|
|
||||||
/** contains the brand string, e.g. "Intel(R) Xeon(TM) CPU 2.40GHz" */
|
/** contains the brand string, e.g. "Intel(R) Xeon(TM) CPU 2.40GHz" */
|
||||||
char brand_str[BRAND_STR_MAX];
|
char brand_str[BRAND_STR_MAX];
|
||||||
|
|
||||||
/** contains the recognized CPU vendor */
|
/** contains the recognized CPU vendor */
|
||||||
cpu_vendor_t vendor;
|
cpu_vendor_t vendor;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* contain CPU flags. Used to test for features. See
|
* contain CPU flags. Used to test for features. See
|
||||||
* the \ref cpu_feature_t "CPU_FEATURE_*" macros below.
|
* the \ref cpu_feature_t "CPU_FEATURE_*" macros below.
|
||||||
* @see Features
|
* @see Features
|
||||||
*/
|
*/
|
||||||
uint8_t flags[CPU_FLAGS_MAX];
|
uint8_t flags[CPU_FLAGS_MAX];
|
||||||
|
|
||||||
/** CPU family */
|
/** CPU family */
|
||||||
int32_t family;
|
int32_t family;
|
||||||
|
|
||||||
/** CPU model */
|
/** CPU model */
|
||||||
int32_t model;
|
int32_t model;
|
||||||
|
|
||||||
/** CPU stepping */
|
/** CPU stepping */
|
||||||
int32_t stepping;
|
int32_t stepping;
|
||||||
|
|
||||||
/** CPU extended family */
|
/** CPU extended family */
|
||||||
int32_t ext_family;
|
int32_t ext_family;
|
||||||
|
|
||||||
/** CPU extended model */
|
/** CPU extended model */
|
||||||
int32_t ext_model;
|
int32_t ext_model;
|
||||||
|
|
||||||
/** Number of CPU cores on the current processor */
|
/** Number of CPU cores on the current processor */
|
||||||
int32_t num_cores;
|
int32_t num_cores;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Number of logical processors on the current processor.
|
* Number of logical processors on the current processor.
|
||||||
* Could be more than the number of physical cores,
|
* Could be more than the number of physical cores,
|
||||||
* e.g. when the processor has HyperThreading.
|
* e.g. when the processor has HyperThreading.
|
||||||
*/
|
*/
|
||||||
int32_t num_logical_cpus;
|
int32_t num_logical_cpus;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The total number of logical processors.
|
* The total number of logical processors.
|
||||||
* The same value is available through \ref cpuid_get_total_cpus.
|
* The same value is available through \ref cpuid_get_total_cpus.
|
||||||
|
@ -277,13 +277,13 @@ struct cpu_id_t {
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
int32_t total_logical_cpus;
|
int32_t total_logical_cpus;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* L1 data cache size in KB. Could be zero, if the CPU lacks cache.
|
* L1 data cache size in KB. Could be zero, if the CPU lacks cache.
|
||||||
* If the size cannot be determined, it will be -1.
|
* If the size cannot be determined, it will be -1.
|
||||||
*/
|
*/
|
||||||
int32_t l1_data_cache;
|
int32_t l1_data_cache;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* L1 instruction cache size in KB. Could be zero, if the CPU lacks
|
* L1 instruction cache size in KB. Could be zero, if the CPU lacks
|
||||||
* cache. If the size cannot be determined, it will be -1.
|
* cache. If the size cannot be determined, it will be -1.
|
||||||
|
@ -291,40 +291,40 @@ struct cpu_id_t {
|
||||||
* a trace cache, the size will be expressed in K uOps.
|
* a trace cache, the size will be expressed in K uOps.
|
||||||
*/
|
*/
|
||||||
int32_t l1_instruction_cache;
|
int32_t l1_instruction_cache;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* L2 cache size in KB. Could be zero, if the CPU lacks L2 cache.
|
* L2 cache size in KB. Could be zero, if the CPU lacks L2 cache.
|
||||||
* If the size of the cache could not be determined, it will be -1
|
* If the size of the cache could not be determined, it will be -1
|
||||||
*/
|
*/
|
||||||
int32_t l2_cache;
|
int32_t l2_cache;
|
||||||
|
|
||||||
/** L3 cache size in KB. Zero on most systems */
|
/** L3 cache size in KB. Zero on most systems */
|
||||||
int32_t l3_cache;
|
int32_t l3_cache;
|
||||||
|
|
||||||
/** L4 cache size in KB. Zero on most systems */
|
/** L4 cache size in KB. Zero on most systems */
|
||||||
int32_t l4_cache;
|
int32_t l4_cache;
|
||||||
|
|
||||||
/** Cache associativity for the L1 data cache. -1 if undetermined */
|
/** Cache associativity for the L1 data cache. -1 if undetermined */
|
||||||
int32_t l1_assoc;
|
int32_t l1_assoc;
|
||||||
|
|
||||||
/** Cache associativity for the L2 cache. -1 if undetermined */
|
/** Cache associativity for the L2 cache. -1 if undetermined */
|
||||||
int32_t l2_assoc;
|
int32_t l2_assoc;
|
||||||
|
|
||||||
/** Cache associativity for the L3 cache. -1 if undetermined */
|
/** Cache associativity for the L3 cache. -1 if undetermined */
|
||||||
int32_t l3_assoc;
|
int32_t l3_assoc;
|
||||||
|
|
||||||
/** Cache associativity for the L4 cache. -1 if undetermined */
|
/** Cache associativity for the L4 cache. -1 if undetermined */
|
||||||
int32_t l4_assoc;
|
int32_t l4_assoc;
|
||||||
|
|
||||||
/** Cache-line size for L1 data cache. -1 if undetermined */
|
/** Cache-line size for L1 data cache. -1 if undetermined */
|
||||||
int32_t l1_cacheline;
|
int32_t l1_cacheline;
|
||||||
|
|
||||||
/** Cache-line size for L2 cache. -1 if undetermined */
|
/** Cache-line size for L2 cache. -1 if undetermined */
|
||||||
int32_t l2_cacheline;
|
int32_t l2_cacheline;
|
||||||
|
|
||||||
/** Cache-line size for L3 cache. -1 if undetermined */
|
/** Cache-line size for L3 cache. -1 if undetermined */
|
||||||
int32_t l3_cacheline;
|
int32_t l3_cacheline;
|
||||||
|
|
||||||
/** Cache-line size for L4 cache. -1 if undetermined */
|
/** Cache-line size for L4 cache. -1 if undetermined */
|
||||||
int32_t l4_cacheline;
|
int32_t l4_cacheline;
|
||||||
|
|
||||||
|
@ -343,17 +343,17 @@ struct cpu_id_t {
|
||||||
* @endcode
|
* @endcode
|
||||||
*/
|
*/
|
||||||
char cpu_codename[64];
|
char cpu_codename[64];
|
||||||
|
|
||||||
/** SSE execution unit size (64 or 128; -1 if N/A) */
|
/** SSE execution unit size (64 or 128; -1 if N/A) */
|
||||||
int32_t sse_size;
|
int32_t sse_size;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* contain miscellaneous detection information. Used to test about specifics of
|
* contain miscellaneous detection information. Used to test about specifics of
|
||||||
* certain detected features. See \ref cpu_hint_t "CPU_HINT_*" macros below.
|
* certain detected features. See \ref cpu_hint_t "CPU_HINT_*" macros below.
|
||||||
* @see Hints
|
* @see Hints
|
||||||
*/
|
*/
|
||||||
uint8_t detection_hints[CPU_HINTS_MAX];
|
uint8_t detection_hints[CPU_HINTS_MAX];
|
||||||
|
|
||||||
/** contains information about SGX features if the processor, if present */
|
/** contains information about SGX features if the processor, if present */
|
||||||
struct cpu_sgx_t sgx;
|
struct cpu_sgx_t sgx;
|
||||||
};
|
};
|
||||||
|
@ -526,11 +526,11 @@ typedef enum {
|
||||||
* }
|
* }
|
||||||
* @endcode
|
* @endcode
|
||||||
*/
|
*/
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
INTEL_SGX1, /*!< SGX1 instructions support */
|
INTEL_SGX1, /*!< SGX1 instructions support */
|
||||||
INTEL_SGX2, /*!< SGX2 instructions support */
|
INTEL_SGX2, /*!< SGX2 instructions support */
|
||||||
|
|
||||||
/* termination: */
|
/* termination: */
|
||||||
NUM_SGX_FEATURES,
|
NUM_SGX_FEATURES,
|
||||||
} cpu_sgx_feature_t;
|
} cpu_sgx_feature_t;
|
||||||
|
@ -859,7 +859,7 @@ int cpu_clock_measure(int millis, int quad_check);
|
||||||
*
|
*
|
||||||
* Recommended values - millis = 50, runs = 4. For more robustness,
|
* Recommended values - millis = 50, runs = 4. For more robustness,
|
||||||
* increase the number of runs.
|
* increase the number of runs.
|
||||||
*
|
*
|
||||||
* NOTE: on Bulldozer and later CPUs, the busy-wait cycle runs at 1.4 IPC, thus
|
* NOTE: on Bulldozer and later CPUs, the busy-wait cycle runs at 1.4 IPC, thus
|
||||||
* the results are skewed. This is corrected internally by dividing the resulting
|
* the results are skewed. This is corrected internally by dividing the resulting
|
||||||
* value by 1.4.
|
* value by 1.4.
|
||||||
|
@ -894,7 +894,7 @@ int cpu_clock(void);
|
||||||
* Describes an EPC (Enclave Page Cache) layout (physical address and size).
|
* Describes an EPC (Enclave Page Cache) layout (physical address and size).
|
||||||
* A CPU may have one or more EPC areas, and information about each is
|
* A CPU may have one or more EPC areas, and information about each is
|
||||||
* fetched via \ref cpuid_get_epc.
|
* fetched via \ref cpuid_get_epc.
|
||||||
*/
|
*/
|
||||||
struct cpu_epc_t {
|
struct cpu_epc_t {
|
||||||
uint64_t start_addr;
|
uint64_t start_addr;
|
||||||
uint64_t length;
|
uint64_t length;
|
||||||
|
|
|
@ -105,7 +105,7 @@ typedef enum _amd_bits_t amd_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,
|
||||||
struct internal_id_info_t* internal);
|
struct internal_id_info_t* internal);
|
||||||
|
|
||||||
#endif /* __LIBCPUID_INTERNAL_H__ */
|
#endif /* __LIBCPUID_INTERNAL_H__ */
|
||||||
|
|
|
@ -77,12 +77,12 @@ void debugf(int verboselevel, const char* format, ...)
|
||||||
static int popcount64(uint64_t mask)
|
static int popcount64(uint64_t mask)
|
||||||
{
|
{
|
||||||
int num_set_bits = 0;
|
int num_set_bits = 0;
|
||||||
|
|
||||||
while (mask) {
|
while (mask) {
|
||||||
mask &= mask - 1;
|
mask &= mask - 1;
|
||||||
num_set_bits++;
|
num_set_bits++;
|
||||||
}
|
}
|
||||||
|
|
||||||
return num_set_bits;
|
return num_set_bits;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -100,7 +100,7 @@ static int score(const struct match_entry_t* entry, const struct cpu_id_t* data,
|
||||||
if (entry->l3cache == data->l3_cache ) res += 1;
|
if (entry->l3cache == data->l3_cache ) res += 1;
|
||||||
if (entry->brand_code == brand_code ) res += 2;
|
if (entry->brand_code == brand_code ) res += 2;
|
||||||
if (entry->model_code == model_code ) res += 2;
|
if (entry->model_code == model_code ) res += 2;
|
||||||
|
|
||||||
res += popcount64(entry->model_bits & bits) * 2;
|
res += popcount64(entry->model_bits & bits) * 2;
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
@ -112,11 +112,11 @@ int match_cpu_codename(const struct match_entry_t* matchtable, int count,
|
||||||
int bestscore = -1;
|
int bestscore = -1;
|
||||||
int bestindex = 0;
|
int bestindex = 0;
|
||||||
int i, t;
|
int i, t;
|
||||||
|
|
||||||
debugf(3, "Matching cpu f:%d, m:%d, s:%d, xf:%d, xm:%d, ncore:%d, l2:%d, bcode:%d, bits:%llu, code:%d\n",
|
debugf(3, "Matching cpu f:%d, m:%d, s:%d, xf:%d, xm:%d, ncore:%d, l2:%d, bcode:%d, bits:%llu, code:%d\n",
|
||||||
data->family, data->model, data->stepping, data->ext_family,
|
data->family, data->model, data->stepping, data->ext_family,
|
||||||
data->ext_model, data->num_cores, data->l2_cache, brand_code, (unsigned long long) bits, model_code);
|
data->ext_model, data->num_cores, data->l2_cache, brand_code, (unsigned long long) bits, model_code);
|
||||||
|
|
||||||
for (i = 0; i < count; i++) {
|
for (i = 0; i < count; i++) {
|
||||||
t = score(&matchtable[i], data, brand_code, bits, model_code);
|
t = score(&matchtable[i], data, brand_code, bits, model_code);
|
||||||
debugf(3, "Entry %d, `%s', score %d\n", i, matchtable[i].name, t);
|
debugf(3, "Entry %d, `%s', score %d\n", i, matchtable[i].name, t);
|
||||||
|
|
|
@ -32,7 +32,7 @@ struct feature_map_t {
|
||||||
unsigned bit;
|
unsigned bit;
|
||||||
cpu_feature_t feature;
|
cpu_feature_t feature;
|
||||||
};
|
};
|
||||||
|
|
||||||
void match_features(const struct feature_map_t* matchtable, int count,
|
void match_features(const struct feature_map_t* matchtable, int count,
|
||||||
uint32_t reg, struct cpu_id_t* data);
|
uint32_t reg, struct cpu_id_t* data);
|
||||||
|
|
||||||
|
|
|
@ -1,216 +1,216 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
<ItemGroup Label="ProjectConfigurations">
|
<ItemGroup Label="ProjectConfigurations">
|
||||||
<ProjectConfiguration Include="Debug|Win32">
|
<ProjectConfiguration Include="Debug|Win32">
|
||||||
<Configuration>Debug</Configuration>
|
<Configuration>Debug</Configuration>
|
||||||
<Platform>Win32</Platform>
|
<Platform>Win32</Platform>
|
||||||
</ProjectConfiguration>
|
</ProjectConfiguration>
|
||||||
<ProjectConfiguration Include="Debug|x64">
|
<ProjectConfiguration Include="Debug|x64">
|
||||||
<Configuration>Debug</Configuration>
|
<Configuration>Debug</Configuration>
|
||||||
<Platform>x64</Platform>
|
<Platform>x64</Platform>
|
||||||
</ProjectConfiguration>
|
</ProjectConfiguration>
|
||||||
<ProjectConfiguration Include="ReleaseDLL|Win32">
|
<ProjectConfiguration Include="ReleaseDLL|Win32">
|
||||||
<Configuration>ReleaseDLL</Configuration>
|
<Configuration>ReleaseDLL</Configuration>
|
||||||
<Platform>Win32</Platform>
|
<Platform>Win32</Platform>
|
||||||
</ProjectConfiguration>
|
</ProjectConfiguration>
|
||||||
<ProjectConfiguration Include="ReleaseDLL|x64">
|
<ProjectConfiguration Include="ReleaseDLL|x64">
|
||||||
<Configuration>ReleaseDLL</Configuration>
|
<Configuration>ReleaseDLL</Configuration>
|
||||||
<Platform>x64</Platform>
|
<Platform>x64</Platform>
|
||||||
</ProjectConfiguration>
|
</ProjectConfiguration>
|
||||||
<ProjectConfiguration Include="Release|Win32">
|
<ProjectConfiguration Include="Release|Win32">
|
||||||
<Configuration>Release</Configuration>
|
<Configuration>Release</Configuration>
|
||||||
<Platform>Win32</Platform>
|
<Platform>Win32</Platform>
|
||||||
</ProjectConfiguration>
|
</ProjectConfiguration>
|
||||||
<ProjectConfiguration Include="Release|x64">
|
<ProjectConfiguration Include="Release|x64">
|
||||||
<Configuration>Release</Configuration>
|
<Configuration>Release</Configuration>
|
||||||
<Platform>x64</Platform>
|
<Platform>x64</Platform>
|
||||||
</ProjectConfiguration>
|
</ProjectConfiguration>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<PropertyGroup Label="Globals">
|
<PropertyGroup Label="Globals">
|
||||||
<ProjectName>libcpuid</ProjectName>
|
<ProjectName>libcpuid</ProjectName>
|
||||||
<ProjectGuid>{92BDBA37-96E3-4D85-B762-185E4407BB49}</ProjectGuid>
|
<ProjectGuid>{92BDBA37-96E3-4D85-B762-185E4407BB49}</ProjectGuid>
|
||||||
<RootNamespace>libcpuid</RootNamespace>
|
<RootNamespace>libcpuid</RootNamespace>
|
||||||
<Keyword>Win32Proj</Keyword>
|
<Keyword>Win32Proj</Keyword>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||||
<CharacterSet>NotSet</CharacterSet>
|
<CharacterSet>NotSet</CharacterSet>
|
||||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseDLL|Win32'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseDLL|Win32'" Label="Configuration">
|
||||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||||
<CharacterSet>NotSet</CharacterSet>
|
<CharacterSet>NotSet</CharacterSet>
|
||||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
||||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||||
<CharacterSet>NotSet</CharacterSet>
|
<CharacterSet>NotSet</CharacterSet>
|
||||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseDLL|x64'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseDLL|x64'" Label="Configuration">
|
||||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||||
<CharacterSet>NotSet</CharacterSet>
|
<CharacterSet>NotSet</CharacterSet>
|
||||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||||
<CharacterSet>NotSet</CharacterSet>
|
<CharacterSet>NotSet</CharacterSet>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
||||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||||
<CharacterSet>NotSet</CharacterSet>
|
<CharacterSet>NotSet</CharacterSet>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||||
<ImportGroup Label="ExtensionSettings">
|
<ImportGroup Label="ExtensionSettings">
|
||||||
<Import Project="$(VCTargetsPath)\BuildCustomizations\masm.props" />
|
<Import Project="$(VCTargetsPath)\BuildCustomizations\masm.props" />
|
||||||
</ImportGroup>
|
</ImportGroup>
|
||||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
|
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||||
</ImportGroup>
|
</ImportGroup>
|
||||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseDLL|Win32'" Label="PropertySheets">
|
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseDLL|Win32'" Label="PropertySheets">
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||||
</ImportGroup>
|
</ImportGroup>
|
||||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
|
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||||
</ImportGroup>
|
</ImportGroup>
|
||||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseDLL|x64'" Label="PropertySheets">
|
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseDLL|x64'" Label="PropertySheets">
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||||
</ImportGroup>
|
</ImportGroup>
|
||||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
|
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||||
</ImportGroup>
|
</ImportGroup>
|
||||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
|
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||||
</ImportGroup>
|
</ImportGroup>
|
||||||
<PropertyGroup Label="UserMacros" />
|
<PropertyGroup Label="UserMacros" />
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
|
<_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
|
||||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectDir)x$(PlatformArchitecture)\$(Configuration)\</OutDir>
|
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectDir)x$(PlatformArchitecture)\$(Configuration)\</OutDir>
|
||||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(ProjectDir)x$(PlatformArchitecture)\$(Configuration)\</OutDir>
|
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(ProjectDir)x$(PlatformArchitecture)\$(Configuration)\</OutDir>
|
||||||
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">x$(PlatformArchitecture)\$(Configuration)\</IntDir>
|
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">x$(PlatformArchitecture)\$(Configuration)\</IntDir>
|
||||||
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">x$(PlatformArchitecture)\$(Configuration)\</IntDir>
|
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">x$(PlatformArchitecture)\$(Configuration)\</IntDir>
|
||||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectDir)x$(PlatformArchitecture)\$(Configuration)\</OutDir>
|
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectDir)x$(PlatformArchitecture)\$(Configuration)\</OutDir>
|
||||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='ReleaseDLL|Win32'">$(ProjectDir)x$(PlatformArchitecture)\$(Configuration)\</OutDir>
|
<OutDir Condition="'$(Configuration)|$(Platform)'=='ReleaseDLL|Win32'">$(ProjectDir)x$(PlatformArchitecture)\$(Configuration)\</OutDir>
|
||||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(ProjectDir)x$(PlatformArchitecture)\$(Configuration)\</OutDir>
|
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(ProjectDir)x$(PlatformArchitecture)\$(Configuration)\</OutDir>
|
||||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='ReleaseDLL|x64'">$(ProjectDir)x$(PlatformArchitecture)\$(Configuration)\</OutDir>
|
<OutDir Condition="'$(Configuration)|$(Platform)'=='ReleaseDLL|x64'">$(ProjectDir)x$(PlatformArchitecture)\$(Configuration)\</OutDir>
|
||||||
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">x$(PlatformArchitecture)\$(Configuration)\</IntDir>
|
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">x$(PlatformArchitecture)\$(Configuration)\</IntDir>
|
||||||
<IntDir Condition="'$(Configuration)|$(Platform)'=='ReleaseDLL|Win32'">x$(PlatformArchitecture)\$(Configuration)\</IntDir>
|
<IntDir Condition="'$(Configuration)|$(Platform)'=='ReleaseDLL|Win32'">x$(PlatformArchitecture)\$(Configuration)\</IntDir>
|
||||||
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">x$(PlatformArchitecture)\$(Configuration)\</IntDir>
|
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">x$(PlatformArchitecture)\$(Configuration)\</IntDir>
|
||||||
<IntDir Condition="'$(Configuration)|$(Platform)'=='ReleaseDLL|x64'">x$(PlatformArchitecture)\$(Configuration)\</IntDir>
|
<IntDir Condition="'$(Configuration)|$(Platform)'=='ReleaseDLL|x64'">x$(PlatformArchitecture)\$(Configuration)\</IntDir>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
<Optimization>Disabled</Optimization>
|
<Optimization>Disabled</Optimization>
|
||||||
<PreprocessorDefinitions>WIN32;_DEBUG;_LIB;VERSION="0.4.1";%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>WIN32;_DEBUG;_LIB;VERSION="0.4.1";%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<MinimalRebuild>true</MinimalRebuild>
|
<MinimalRebuild>true</MinimalRebuild>
|
||||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||||
<PrecompiledHeader>
|
<PrecompiledHeader>
|
||||||
</PrecompiledHeader>
|
</PrecompiledHeader>
|
||||||
<WarningLevel>Level3</WarningLevel>
|
<WarningLevel>Level3</WarningLevel>
|
||||||
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
|
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
|
||||||
<CompileAs>CompileAsC</CompileAs>
|
<CompileAs>CompileAsC</CompileAs>
|
||||||
<DisableSpecificWarnings>4996;%(DisableSpecificWarnings)</DisableSpecificWarnings>
|
<DisableSpecificWarnings>4996;%(DisableSpecificWarnings)</DisableSpecificWarnings>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
</ItemDefinitionGroup>
|
</ItemDefinitionGroup>
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
<Optimization>Disabled</Optimization>
|
<Optimization>Disabled</Optimization>
|
||||||
<PreprocessorDefinitions>WIN32;_DEBUG;_LIB;VERSION="0.4.1";%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>WIN32;_DEBUG;_LIB;VERSION="0.4.1";%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||||
<PrecompiledHeader>
|
<PrecompiledHeader>
|
||||||
</PrecompiledHeader>
|
</PrecompiledHeader>
|
||||||
<WarningLevel>Level3</WarningLevel>
|
<WarningLevel>Level3</WarningLevel>
|
||||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||||
<CompileAs>CompileAsC</CompileAs>
|
<CompileAs>CompileAsC</CompileAs>
|
||||||
<DisableSpecificWarnings>4996;%(DisableSpecificWarnings)</DisableSpecificWarnings>
|
<DisableSpecificWarnings>4996;%(DisableSpecificWarnings)</DisableSpecificWarnings>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
</ItemDefinitionGroup>
|
</ItemDefinitionGroup>
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
<PreprocessorDefinitions>WIN32;NDEBUG;_LIB;VERSION="0.4.1";%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>WIN32;NDEBUG;_LIB;VERSION="0.4.1";%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||||
<PrecompiledHeader>
|
<PrecompiledHeader>
|
||||||
</PrecompiledHeader>
|
</PrecompiledHeader>
|
||||||
<WarningLevel>Level3</WarningLevel>
|
<WarningLevel>Level3</WarningLevel>
|
||||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||||
<CompileAs>CompileAsC</CompileAs>
|
<CompileAs>CompileAsC</CompileAs>
|
||||||
<DisableSpecificWarnings>4996;%(DisableSpecificWarnings)</DisableSpecificWarnings>
|
<DisableSpecificWarnings>4996;%(DisableSpecificWarnings)</DisableSpecificWarnings>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
</ItemDefinitionGroup>
|
</ItemDefinitionGroup>
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseDLL|Win32'">
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseDLL|Win32'">
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
<PreprocessorDefinitions>WIN32;NDEBUG;_LIB;VERSION="0.4.1";%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>WIN32;NDEBUG;_LIB;VERSION="0.4.1";%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||||
<PrecompiledHeader>
|
<PrecompiledHeader>
|
||||||
</PrecompiledHeader>
|
</PrecompiledHeader>
|
||||||
<WarningLevel>Level3</WarningLevel>
|
<WarningLevel>Level3</WarningLevel>
|
||||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||||
<CompileAs>CompileAsC</CompileAs>
|
<CompileAs>CompileAsC</CompileAs>
|
||||||
<DisableSpecificWarnings>4996;%(DisableSpecificWarnings)</DisableSpecificWarnings>
|
<DisableSpecificWarnings>4996;%(DisableSpecificWarnings)</DisableSpecificWarnings>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
<ModuleDefinitionFile>exports.def</ModuleDefinitionFile>
|
<ModuleDefinitionFile>exports.def</ModuleDefinitionFile>
|
||||||
</Link>
|
</Link>
|
||||||
</ItemDefinitionGroup>
|
</ItemDefinitionGroup>
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
<PreprocessorDefinitions>WIN32;NDEBUG;_LIB;VERSION="0.4.1";%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>WIN32;NDEBUG;_LIB;VERSION="0.4.1";%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||||
<PrecompiledHeader>
|
<PrecompiledHeader>
|
||||||
</PrecompiledHeader>
|
</PrecompiledHeader>
|
||||||
<WarningLevel>Level3</WarningLevel>
|
<WarningLevel>Level3</WarningLevel>
|
||||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||||
<CompileAs>CompileAsC</CompileAs>
|
<CompileAs>CompileAsC</CompileAs>
|
||||||
<DisableSpecificWarnings>4996;%(DisableSpecificWarnings)</DisableSpecificWarnings>
|
<DisableSpecificWarnings>4996;%(DisableSpecificWarnings)</DisableSpecificWarnings>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
</ItemDefinitionGroup>
|
</ItemDefinitionGroup>
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseDLL|x64'">
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseDLL|x64'">
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
<PreprocessorDefinitions>WIN32;NDEBUG;_LIB;VERSION="0.4.1";%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>WIN32;NDEBUG;_LIB;VERSION="0.4.1";%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||||
<PrecompiledHeader>
|
<PrecompiledHeader>
|
||||||
</PrecompiledHeader>
|
</PrecompiledHeader>
|
||||||
<WarningLevel>Level3</WarningLevel>
|
<WarningLevel>Level3</WarningLevel>
|
||||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||||
<CompileAs>CompileAsC</CompileAs>
|
<CompileAs>CompileAsC</CompileAs>
|
||||||
<DisableSpecificWarnings>4996;%(DisableSpecificWarnings)</DisableSpecificWarnings>
|
<DisableSpecificWarnings>4996;%(DisableSpecificWarnings)</DisableSpecificWarnings>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
<ModuleDefinitionFile>exports.def</ModuleDefinitionFile>
|
<ModuleDefinitionFile>exports.def</ModuleDefinitionFile>
|
||||||
</Link>
|
</Link>
|
||||||
</ItemDefinitionGroup>
|
</ItemDefinitionGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClCompile Include="asm-bits.c" />
|
<ClCompile Include="asm-bits.c" />
|
||||||
<ClCompile Include="cpuid_main.c" />
|
<ClCompile Include="cpuid_main.c" />
|
||||||
<ClCompile Include="libcpuid_util.c" />
|
<ClCompile Include="libcpuid_util.c" />
|
||||||
<ClCompile Include="msrdriver.c" />
|
<ClCompile Include="msrdriver.c" />
|
||||||
<ClCompile Include="rdmsr.c" />
|
<ClCompile Include="rdmsr.c" />
|
||||||
<ClCompile Include="rdtsc.c" />
|
<ClCompile Include="rdtsc.c" />
|
||||||
<ClCompile Include="recog_amd.c" />
|
<ClCompile Include="recog_amd.c" />
|
||||||
<ClCompile Include="recog_intel.c" />
|
<ClCompile Include="recog_intel.c" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClInclude Include="asm-bits.h" />
|
<ClInclude Include="asm-bits.h" />
|
||||||
<ClInclude Include="libcpuid.h" />
|
<ClInclude Include="libcpuid.h" />
|
||||||
<ClInclude Include="libcpuid_constants.h" />
|
<ClInclude Include="libcpuid_constants.h" />
|
||||||
<ClInclude Include="libcpuid_types.h" />
|
<ClInclude Include="libcpuid_types.h" />
|
||||||
<ClInclude Include="libcpuid_util.h" />
|
<ClInclude Include="libcpuid_util.h" />
|
||||||
<ClInclude Include="recog_amd.h" />
|
<ClInclude Include="recog_amd.h" />
|
||||||
<ClInclude Include="recog_intel.h" />
|
<ClInclude Include="recog_intel.h" />
|
||||||
<ClInclude Include="rdtsc.h" />
|
<ClInclude Include="rdtsc.h" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<MASM Include="masm-x64.asm">
|
<MASM Include="masm-x64.asm">
|
||||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ReleaseDLL|Win32'">true</ExcludedFromBuild>
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ReleaseDLL|Win32'">true</ExcludedFromBuild>
|
||||||
</MASM>
|
</MASM>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||||
<ImportGroup Label="ExtensionTargets">
|
<ImportGroup Label="ExtensionTargets">
|
||||||
<Import Project="$(VCTargetsPath)\BuildCustomizations\masm.targets" />
|
<Import Project="$(VCTargetsPath)\BuildCustomizations\masm.targets" />
|
||||||
</ImportGroup>
|
</ImportGroup>
|
||||||
</Project>
|
</Project>
|
|
@ -1,74 +1,74 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Filter Include="Source Files">
|
<Filter Include="Source Files">
|
||||||
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
|
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
|
||||||
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
|
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
|
||||||
</Filter>
|
</Filter>
|
||||||
<Filter Include="Header Files">
|
<Filter Include="Header Files">
|
||||||
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
|
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
|
||||||
<Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
|
<Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
|
||||||
</Filter>
|
</Filter>
|
||||||
<Filter Include="Resource Files">
|
<Filter Include="Resource Files">
|
||||||
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
|
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
|
||||||
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
|
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
|
||||||
</Filter>
|
</Filter>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClCompile Include="asm-bits.c">
|
<ClCompile Include="asm-bits.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="cpuid_main.c">
|
<ClCompile Include="cpuid_main.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="libcpuid_util.c">
|
<ClCompile Include="libcpuid_util.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="rdtsc.c">
|
<ClCompile Include="rdtsc.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="recog_amd.c">
|
<ClCompile Include="recog_amd.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="recog_intel.c">
|
<ClCompile Include="recog_intel.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="msrdriver.c">
|
<ClCompile Include="msrdriver.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="rdmsr.c">
|
<ClCompile Include="rdmsr.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClInclude Include="asm-bits.h">
|
<ClInclude Include="asm-bits.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="libcpuid.h">
|
<ClInclude Include="libcpuid.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="libcpuid_constants.h">
|
<ClInclude Include="libcpuid_constants.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="libcpuid_types.h">
|
<ClInclude Include="libcpuid_types.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="libcpuid_util.h">
|
<ClInclude Include="libcpuid_util.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="recog_amd.h">
|
<ClInclude Include="recog_amd.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="recog_intel.h">
|
<ClInclude Include="recog_intel.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="rdtsc.h">
|
<ClInclude Include="rdtsc.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<MASM Include="masm-x64.asm">
|
<MASM Include="masm-x64.asm">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</MASM>
|
</MASM>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
</Project>
|
</Project>
|
|
@ -1,226 +1,226 @@
|
||||||
<?xml version="1.0" encoding="Windows-1252"?>
|
<?xml version="1.0" encoding="Windows-1252"?>
|
||||||
<VisualStudioProject
|
<VisualStudioProject
|
||||||
ProjectType="Visual C++"
|
ProjectType="Visual C++"
|
||||||
Version="7.10"
|
Version="7.10"
|
||||||
Name="libcpuid"
|
Name="libcpuid"
|
||||||
ProjectGUID="{A517C21D-1467-41B4-966A-7C7FC5E99D62}"
|
ProjectGUID="{A517C21D-1467-41B4-966A-7C7FC5E99D62}"
|
||||||
Keyword="Win32Proj">
|
Keyword="Win32Proj">
|
||||||
<Platforms>
|
<Platforms>
|
||||||
<Platform
|
<Platform
|
||||||
Name="Win32"/>
|
Name="Win32"/>
|
||||||
</Platforms>
|
</Platforms>
|
||||||
<Configurations>
|
<Configurations>
|
||||||
<Configuration
|
<Configuration
|
||||||
Name="Debug|Win32"
|
Name="Debug|Win32"
|
||||||
OutputDirectory="Debug"
|
OutputDirectory="Debug"
|
||||||
IntermediateDirectory="Debug"
|
IntermediateDirectory="Debug"
|
||||||
ConfigurationType="4"
|
ConfigurationType="4"
|
||||||
CharacterSet="2">
|
CharacterSet="2">
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
Optimization="0"
|
Optimization="0"
|
||||||
PreprocessorDefinitions="VERSION=\"0.4.1\""
|
PreprocessorDefinitions="VERSION=\"0.4.1\""
|
||||||
MinimalRebuild="TRUE"
|
MinimalRebuild="TRUE"
|
||||||
BasicRuntimeChecks="3"
|
BasicRuntimeChecks="3"
|
||||||
RuntimeLibrary="3"
|
RuntimeLibrary="3"
|
||||||
UsePrecompiledHeader="0"
|
UsePrecompiledHeader="0"
|
||||||
WarningLevel="3"
|
WarningLevel="3"
|
||||||
Detect64BitPortabilityProblems="TRUE"
|
Detect64BitPortabilityProblems="TRUE"
|
||||||
DebugInformationFormat="4"
|
DebugInformationFormat="4"
|
||||||
CompileAs="1"/>
|
CompileAs="1"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"/>
|
Name="VCCustomBuildTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCLibrarianTool"
|
Name="VCLibrarianTool"
|
||||||
OutputFile="$(OutDir)/libcpuid.lib"/>
|
OutputFile="$(OutDir)/libcpuid.lib"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCMIDLTool"/>
|
Name="VCMIDLTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPostBuildEventTool"/>
|
Name="VCPostBuildEventTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreBuildEventTool"/>
|
Name="VCPreBuildEventTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreLinkEventTool"/>
|
Name="VCPreLinkEventTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCResourceCompilerTool"/>
|
Name="VCResourceCompilerTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCWebServiceProxyGeneratorTool"/>
|
Name="VCWebServiceProxyGeneratorTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCXMLDataGeneratorTool"/>
|
Name="VCXMLDataGeneratorTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCManagedWrapperGeneratorTool"/>
|
Name="VCManagedWrapperGeneratorTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
|
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
|
||||||
</Configuration>
|
</Configuration>
|
||||||
<Configuration
|
<Configuration
|
||||||
Name="Release|Win32"
|
Name="Release|Win32"
|
||||||
OutputDirectory="Release"
|
OutputDirectory="Release"
|
||||||
IntermediateDirectory="Release"
|
IntermediateDirectory="Release"
|
||||||
ConfigurationType="4"
|
ConfigurationType="4"
|
||||||
CharacterSet="2">
|
CharacterSet="2">
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
PreprocessorDefinitions="VERSION=\"0.4.1\""
|
PreprocessorDefinitions="VERSION=\"0.4.1\""
|
||||||
RuntimeLibrary="2"
|
RuntimeLibrary="2"
|
||||||
UsePrecompiledHeader="0"
|
UsePrecompiledHeader="0"
|
||||||
WarningLevel="3"
|
WarningLevel="3"
|
||||||
Detect64BitPortabilityProblems="TRUE"
|
Detect64BitPortabilityProblems="TRUE"
|
||||||
DebugInformationFormat="3"
|
DebugInformationFormat="3"
|
||||||
CompileAs="1"/>
|
CompileAs="1"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"/>
|
Name="VCCustomBuildTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCLibrarianTool"
|
Name="VCLibrarianTool"
|
||||||
OutputFile="$(OutDir)/libcpuid.lib"/>
|
OutputFile="$(OutDir)/libcpuid.lib"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCMIDLTool"/>
|
Name="VCMIDLTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPostBuildEventTool"/>
|
Name="VCPostBuildEventTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreBuildEventTool"/>
|
Name="VCPreBuildEventTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreLinkEventTool"/>
|
Name="VCPreLinkEventTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCResourceCompilerTool"/>
|
Name="VCResourceCompilerTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCWebServiceProxyGeneratorTool"/>
|
Name="VCWebServiceProxyGeneratorTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCXMLDataGeneratorTool"/>
|
Name="VCXMLDataGeneratorTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCManagedWrapperGeneratorTool"/>
|
Name="VCManagedWrapperGeneratorTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
|
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
|
||||||
</Configuration>
|
</Configuration>
|
||||||
<Configuration
|
<Configuration
|
||||||
Name="Release DLL|Win32"
|
Name="Release DLL|Win32"
|
||||||
OutputDirectory="$(ConfigurationName)"
|
OutputDirectory="$(ConfigurationName)"
|
||||||
IntermediateDirectory="$(ConfigurationName)"
|
IntermediateDirectory="$(ConfigurationName)"
|
||||||
ConfigurationType="2"
|
ConfigurationType="2"
|
||||||
CharacterSet="2">
|
CharacterSet="2">
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
PreprocessorDefinitions="VERSION=\"0.4.1\""
|
PreprocessorDefinitions="VERSION=\"0.4.1\""
|
||||||
RuntimeLibrary="2"
|
RuntimeLibrary="2"
|
||||||
UsePrecompiledHeader="0"
|
UsePrecompiledHeader="0"
|
||||||
WarningLevel="3"
|
WarningLevel="3"
|
||||||
Detect64BitPortabilityProblems="TRUE"
|
Detect64BitPortabilityProblems="TRUE"
|
||||||
DebugInformationFormat="3"
|
DebugInformationFormat="3"
|
||||||
CompileAs="1"/>
|
CompileAs="1"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"/>
|
Name="VCCustomBuildTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCLinkerTool"
|
Name="VCLinkerTool"
|
||||||
ModuleDefinitionFile="exports.def"
|
ModuleDefinitionFile="exports.def"
|
||||||
GenerateDebugInformation="FALSE"
|
GenerateDebugInformation="FALSE"
|
||||||
SubSystem="2"
|
SubSystem="2"
|
||||||
OptimizeReferences="2"
|
OptimizeReferences="2"
|
||||||
EnableCOMDATFolding="2"
|
EnableCOMDATFolding="2"
|
||||||
ImportLibrary="$(OutDir)/$(TargetName).lib"
|
ImportLibrary="$(OutDir)/$(TargetName).lib"
|
||||||
TargetMachine="1"/>
|
TargetMachine="1"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCMIDLTool"/>
|
Name="VCMIDLTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPostBuildEventTool"/>
|
Name="VCPostBuildEventTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreBuildEventTool"/>
|
Name="VCPreBuildEventTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreLinkEventTool"/>
|
Name="VCPreLinkEventTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCResourceCompilerTool"/>
|
Name="VCResourceCompilerTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCWebServiceProxyGeneratorTool"/>
|
Name="VCWebServiceProxyGeneratorTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCXMLDataGeneratorTool"/>
|
Name="VCXMLDataGeneratorTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCWebDeploymentTool"/>
|
Name="VCWebDeploymentTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCManagedWrapperGeneratorTool"/>
|
Name="VCManagedWrapperGeneratorTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
|
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
|
||||||
</Configuration>
|
</Configuration>
|
||||||
</Configurations>
|
</Configurations>
|
||||||
<References>
|
<References>
|
||||||
</References>
|
</References>
|
||||||
<Files>
|
<Files>
|
||||||
<Filter
|
<Filter
|
||||||
Name="Source Files"
|
Name="Source Files"
|
||||||
Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
|
Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
|
||||||
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}">
|
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}">
|
||||||
<File
|
<File
|
||||||
RelativePath=".\asm-bits.c">
|
RelativePath=".\asm-bits.c">
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath=".\cpuid_main.c">
|
RelativePath=".\cpuid_main.c">
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath=".\exports.def">
|
RelativePath=".\exports.def">
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath=".\libcpuid_util.c">
|
RelativePath=".\libcpuid_util.c">
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath=".\msrdriver.c">
|
RelativePath=".\msrdriver.c">
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath=".\rdmsr.c">
|
RelativePath=".\rdmsr.c">
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath=".\rdtsc.c">
|
RelativePath=".\rdtsc.c">
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath=".\recog_amd.c">
|
RelativePath=".\recog_amd.c">
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath=".\recog_intel.c">
|
RelativePath=".\recog_intel.c">
|
||||||
</File>
|
</File>
|
||||||
</Filter>
|
</Filter>
|
||||||
<Filter
|
<Filter
|
||||||
Name="Header Files"
|
Name="Header Files"
|
||||||
Filter="h;hpp;hxx;hm;inl;inc;xsd"
|
Filter="h;hpp;hxx;hm;inl;inc;xsd"
|
||||||
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}">
|
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}">
|
||||||
<File
|
<File
|
||||||
RelativePath=".\amd_code_t.h">
|
RelativePath=".\amd_code_t.h">
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath=".\asm-bits.h">
|
RelativePath=".\asm-bits.h">
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath=".\intel_code_t.h">
|
RelativePath=".\intel_code_t.h">
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath=".\libcpuid.h">
|
RelativePath=".\libcpuid.h">
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath=".\libcpuid_constants.h">
|
RelativePath=".\libcpuid_constants.h">
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath=".\libcpuid_internal.h">
|
RelativePath=".\libcpuid_internal.h">
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath=".\libcpuid_types.h">
|
RelativePath=".\libcpuid_types.h">
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath=".\libcpuid_util.h">
|
RelativePath=".\libcpuid_util.h">
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath=".\rdtsc.h">
|
RelativePath=".\rdtsc.h">
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath=".\recog_amd.h">
|
RelativePath=".\recog_amd.h">
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath=".\recog_intel.h">
|
RelativePath=".\recog_intel.h">
|
||||||
</File>
|
</File>
|
||||||
</Filter>
|
</Filter>
|
||||||
<Filter
|
<Filter
|
||||||
Name="Resource Files"
|
Name="Resource Files"
|
||||||
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx"
|
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx"
|
||||||
UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}">
|
UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}">
|
||||||
</Filter>
|
</Filter>
|
||||||
<File
|
<File
|
||||||
RelativePath=".\ReadMe.txt">
|
RelativePath=".\ReadMe.txt">
|
||||||
</File>
|
</File>
|
||||||
</Files>
|
</Files>
|
||||||
<Globals>
|
<Globals>
|
||||||
</Globals>
|
</Globals>
|
||||||
</VisualStudioProject>
|
</VisualStudioProject>
|
||||||
|
|
|
@ -1,359 +1,359 @@
|
||||||
|
|
||||||
.code
|
.code
|
||||||
; procedure exec_cpuid
|
; procedure exec_cpuid
|
||||||
; Signature: void exec_cpiud(uint32_t *regs)
|
; Signature: void exec_cpiud(uint32_t *regs)
|
||||||
exec_cpuid Proc
|
exec_cpuid Proc
|
||||||
push rbx
|
push rbx
|
||||||
push rcx
|
push rcx
|
||||||
push rdx
|
push rdx
|
||||||
push rdi
|
push rdi
|
||||||
|
|
||||||
mov rdi, rcx
|
mov rdi, rcx
|
||||||
|
|
||||||
mov eax, [rdi]
|
mov eax, [rdi]
|
||||||
mov ebx, [rdi+4]
|
mov ebx, [rdi+4]
|
||||||
mov ecx, [rdi+8]
|
mov ecx, [rdi+8]
|
||||||
mov edx, [rdi+12]
|
mov edx, [rdi+12]
|
||||||
|
|
||||||
cpuid
|
cpuid
|
||||||
|
|
||||||
mov [rdi], eax
|
mov [rdi], eax
|
||||||
mov [rdi+4], ebx
|
mov [rdi+4], ebx
|
||||||
mov [rdi+8], ecx
|
mov [rdi+8], ecx
|
||||||
mov [rdi+12], edx
|
mov [rdi+12], edx
|
||||||
pop rdi
|
pop rdi
|
||||||
pop rdx
|
pop rdx
|
||||||
pop rcx
|
pop rcx
|
||||||
pop rbx
|
pop rbx
|
||||||
ret
|
ret
|
||||||
exec_cpuid endp
|
exec_cpuid endp
|
||||||
|
|
||||||
; procedure cpu_rdtsc
|
; procedure cpu_rdtsc
|
||||||
; Signature: void cpu_rdtsc(uint64_t *result)
|
; Signature: void cpu_rdtsc(uint64_t *result)
|
||||||
cpu_rdtsc Proc
|
cpu_rdtsc Proc
|
||||||
push rdx
|
push rdx
|
||||||
rdtsc
|
rdtsc
|
||||||
mov [rcx], eax
|
mov [rcx], eax
|
||||||
mov [rcx+4], edx
|
mov [rcx+4], edx
|
||||||
pop rdx
|
pop rdx
|
||||||
ret
|
ret
|
||||||
cpu_rdtsc endp
|
cpu_rdtsc endp
|
||||||
|
|
||||||
; procedure busy_sse_loop
|
; procedure busy_sse_loop
|
||||||
; Signature: void busy_sse_loop(int cycles)
|
; Signature: void busy_sse_loop(int cycles)
|
||||||
busy_sse_loop Proc
|
busy_sse_loop Proc
|
||||||
; save xmm6 & xmm7 into the shadow area, as Visual C++ 2008
|
; save xmm6 & xmm7 into the shadow area, as Visual C++ 2008
|
||||||
; expects that we don't touch them:
|
; expects that we don't touch them:
|
||||||
movups [rsp + 8], xmm6
|
movups [rsp + 8], xmm6
|
||||||
movups [rsp + 24], xmm7
|
movups [rsp + 24], xmm7
|
||||||
|
|
||||||
xorps xmm0, xmm0
|
xorps xmm0, xmm0
|
||||||
xorps xmm1, xmm1
|
xorps xmm1, xmm1
|
||||||
xorps xmm2, xmm2
|
xorps xmm2, xmm2
|
||||||
xorps xmm3, xmm3
|
xorps xmm3, xmm3
|
||||||
xorps xmm4, xmm4
|
xorps xmm4, xmm4
|
||||||
xorps xmm5, xmm5
|
xorps xmm5, xmm5
|
||||||
xorps xmm6, xmm6
|
xorps xmm6, xmm6
|
||||||
xorps xmm7, xmm7
|
xorps xmm7, xmm7
|
||||||
; --
|
; --
|
||||||
align 16
|
align 16
|
||||||
bsLoop:
|
bsLoop:
|
||||||
; 0:
|
; 0:
|
||||||
addps xmm0, xmm1
|
addps xmm0, xmm1
|
||||||
addps xmm1, xmm2
|
addps xmm1, xmm2
|
||||||
addps xmm2, xmm3
|
addps xmm2, xmm3
|
||||||
addps xmm3, xmm4
|
addps xmm3, xmm4
|
||||||
addps xmm4, xmm5
|
addps xmm4, xmm5
|
||||||
addps xmm5, xmm6
|
addps xmm5, xmm6
|
||||||
addps xmm6, xmm7
|
addps xmm6, xmm7
|
||||||
addps xmm7, xmm0
|
addps xmm7, xmm0
|
||||||
; 1:
|
; 1:
|
||||||
addps xmm0, xmm1
|
addps xmm0, xmm1
|
||||||
addps xmm1, xmm2
|
addps xmm1, xmm2
|
||||||
addps xmm2, xmm3
|
addps xmm2, xmm3
|
||||||
addps xmm3, xmm4
|
addps xmm3, xmm4
|
||||||
addps xmm4, xmm5
|
addps xmm4, xmm5
|
||||||
addps xmm5, xmm6
|
addps xmm5, xmm6
|
||||||
addps xmm6, xmm7
|
addps xmm6, xmm7
|
||||||
addps xmm7, xmm0
|
addps xmm7, xmm0
|
||||||
; 2:
|
; 2:
|
||||||
addps xmm0, xmm1
|
addps xmm0, xmm1
|
||||||
addps xmm1, xmm2
|
addps xmm1, xmm2
|
||||||
addps xmm2, xmm3
|
addps xmm2, xmm3
|
||||||
addps xmm3, xmm4
|
addps xmm3, xmm4
|
||||||
addps xmm4, xmm5
|
addps xmm4, xmm5
|
||||||
addps xmm5, xmm6
|
addps xmm5, xmm6
|
||||||
addps xmm6, xmm7
|
addps xmm6, xmm7
|
||||||
addps xmm7, xmm0
|
addps xmm7, xmm0
|
||||||
; 3:
|
; 3:
|
||||||
addps xmm0, xmm1
|
addps xmm0, xmm1
|
||||||
addps xmm1, xmm2
|
addps xmm1, xmm2
|
||||||
addps xmm2, xmm3
|
addps xmm2, xmm3
|
||||||
addps xmm3, xmm4
|
addps xmm3, xmm4
|
||||||
addps xmm4, xmm5
|
addps xmm4, xmm5
|
||||||
addps xmm5, xmm6
|
addps xmm5, xmm6
|
||||||
addps xmm6, xmm7
|
addps xmm6, xmm7
|
||||||
addps xmm7, xmm0
|
addps xmm7, xmm0
|
||||||
; 4:
|
; 4:
|
||||||
addps xmm0, xmm1
|
addps xmm0, xmm1
|
||||||
addps xmm1, xmm2
|
addps xmm1, xmm2
|
||||||
addps xmm2, xmm3
|
addps xmm2, xmm3
|
||||||
addps xmm3, xmm4
|
addps xmm3, xmm4
|
||||||
addps xmm4, xmm5
|
addps xmm4, xmm5
|
||||||
addps xmm5, xmm6
|
addps xmm5, xmm6
|
||||||
addps xmm6, xmm7
|
addps xmm6, xmm7
|
||||||
addps xmm7, xmm0
|
addps xmm7, xmm0
|
||||||
; 5:
|
; 5:
|
||||||
addps xmm0, xmm1
|
addps xmm0, xmm1
|
||||||
addps xmm1, xmm2
|
addps xmm1, xmm2
|
||||||
addps xmm2, xmm3
|
addps xmm2, xmm3
|
||||||
addps xmm3, xmm4
|
addps xmm3, xmm4
|
||||||
addps xmm4, xmm5
|
addps xmm4, xmm5
|
||||||
addps xmm5, xmm6
|
addps xmm5, xmm6
|
||||||
addps xmm6, xmm7
|
addps xmm6, xmm7
|
||||||
addps xmm7, xmm0
|
addps xmm7, xmm0
|
||||||
; 6:
|
; 6:
|
||||||
addps xmm0, xmm1
|
addps xmm0, xmm1
|
||||||
addps xmm1, xmm2
|
addps xmm1, xmm2
|
||||||
addps xmm2, xmm3
|
addps xmm2, xmm3
|
||||||
addps xmm3, xmm4
|
addps xmm3, xmm4
|
||||||
addps xmm4, xmm5
|
addps xmm4, xmm5
|
||||||
addps xmm5, xmm6
|
addps xmm5, xmm6
|
||||||
addps xmm6, xmm7
|
addps xmm6, xmm7
|
||||||
addps xmm7, xmm0
|
addps xmm7, xmm0
|
||||||
; 7:
|
; 7:
|
||||||
addps xmm0, xmm1
|
addps xmm0, xmm1
|
||||||
addps xmm1, xmm2
|
addps xmm1, xmm2
|
||||||
addps xmm2, xmm3
|
addps xmm2, xmm3
|
||||||
addps xmm3, xmm4
|
addps xmm3, xmm4
|
||||||
addps xmm4, xmm5
|
addps xmm4, xmm5
|
||||||
addps xmm5, xmm6
|
addps xmm5, xmm6
|
||||||
addps xmm6, xmm7
|
addps xmm6, xmm7
|
||||||
addps xmm7, xmm0
|
addps xmm7, xmm0
|
||||||
; 8:
|
; 8:
|
||||||
addps xmm0, xmm1
|
addps xmm0, xmm1
|
||||||
addps xmm1, xmm2
|
addps xmm1, xmm2
|
||||||
addps xmm2, xmm3
|
addps xmm2, xmm3
|
||||||
addps xmm3, xmm4
|
addps xmm3, xmm4
|
||||||
addps xmm4, xmm5
|
addps xmm4, xmm5
|
||||||
addps xmm5, xmm6
|
addps xmm5, xmm6
|
||||||
addps xmm6, xmm7
|
addps xmm6, xmm7
|
||||||
addps xmm7, xmm0
|
addps xmm7, xmm0
|
||||||
; 9:
|
; 9:
|
||||||
addps xmm0, xmm1
|
addps xmm0, xmm1
|
||||||
addps xmm1, xmm2
|
addps xmm1, xmm2
|
||||||
addps xmm2, xmm3
|
addps xmm2, xmm3
|
||||||
addps xmm3, xmm4
|
addps xmm3, xmm4
|
||||||
addps xmm4, xmm5
|
addps xmm4, xmm5
|
||||||
addps xmm5, xmm6
|
addps xmm5, xmm6
|
||||||
addps xmm6, xmm7
|
addps xmm6, xmm7
|
||||||
addps xmm7, xmm0
|
addps xmm7, xmm0
|
||||||
; 10:
|
; 10:
|
||||||
addps xmm0, xmm1
|
addps xmm0, xmm1
|
||||||
addps xmm1, xmm2
|
addps xmm1, xmm2
|
||||||
addps xmm2, xmm3
|
addps xmm2, xmm3
|
||||||
addps xmm3, xmm4
|
addps xmm3, xmm4
|
||||||
addps xmm4, xmm5
|
addps xmm4, xmm5
|
||||||
addps xmm5, xmm6
|
addps xmm5, xmm6
|
||||||
addps xmm6, xmm7
|
addps xmm6, xmm7
|
||||||
addps xmm7, xmm0
|
addps xmm7, xmm0
|
||||||
; 11:
|
; 11:
|
||||||
addps xmm0, xmm1
|
addps xmm0, xmm1
|
||||||
addps xmm1, xmm2
|
addps xmm1, xmm2
|
||||||
addps xmm2, xmm3
|
addps xmm2, xmm3
|
||||||
addps xmm3, xmm4
|
addps xmm3, xmm4
|
||||||
addps xmm4, xmm5
|
addps xmm4, xmm5
|
||||||
addps xmm5, xmm6
|
addps xmm5, xmm6
|
||||||
addps xmm6, xmm7
|
addps xmm6, xmm7
|
||||||
addps xmm7, xmm0
|
addps xmm7, xmm0
|
||||||
; 12:
|
; 12:
|
||||||
addps xmm0, xmm1
|
addps xmm0, xmm1
|
||||||
addps xmm1, xmm2
|
addps xmm1, xmm2
|
||||||
addps xmm2, xmm3
|
addps xmm2, xmm3
|
||||||
addps xmm3, xmm4
|
addps xmm3, xmm4
|
||||||
addps xmm4, xmm5
|
addps xmm4, xmm5
|
||||||
addps xmm5, xmm6
|
addps xmm5, xmm6
|
||||||
addps xmm6, xmm7
|
addps xmm6, xmm7
|
||||||
addps xmm7, xmm0
|
addps xmm7, xmm0
|
||||||
; 13:
|
; 13:
|
||||||
addps xmm0, xmm1
|
addps xmm0, xmm1
|
||||||
addps xmm1, xmm2
|
addps xmm1, xmm2
|
||||||
addps xmm2, xmm3
|
addps xmm2, xmm3
|
||||||
addps xmm3, xmm4
|
addps xmm3, xmm4
|
||||||
addps xmm4, xmm5
|
addps xmm4, xmm5
|
||||||
addps xmm5, xmm6
|
addps xmm5, xmm6
|
||||||
addps xmm6, xmm7
|
addps xmm6, xmm7
|
||||||
addps xmm7, xmm0
|
addps xmm7, xmm0
|
||||||
; 14:
|
; 14:
|
||||||
addps xmm0, xmm1
|
addps xmm0, xmm1
|
||||||
addps xmm1, xmm2
|
addps xmm1, xmm2
|
||||||
addps xmm2, xmm3
|
addps xmm2, xmm3
|
||||||
addps xmm3, xmm4
|
addps xmm3, xmm4
|
||||||
addps xmm4, xmm5
|
addps xmm4, xmm5
|
||||||
addps xmm5, xmm6
|
addps xmm5, xmm6
|
||||||
addps xmm6, xmm7
|
addps xmm6, xmm7
|
||||||
addps xmm7, xmm0
|
addps xmm7, xmm0
|
||||||
; 15:
|
; 15:
|
||||||
addps xmm0, xmm1
|
addps xmm0, xmm1
|
||||||
addps xmm1, xmm2
|
addps xmm1, xmm2
|
||||||
addps xmm2, xmm3
|
addps xmm2, xmm3
|
||||||
addps xmm3, xmm4
|
addps xmm3, xmm4
|
||||||
addps xmm4, xmm5
|
addps xmm4, xmm5
|
||||||
addps xmm5, xmm6
|
addps xmm5, xmm6
|
||||||
addps xmm6, xmm7
|
addps xmm6, xmm7
|
||||||
addps xmm7, xmm0
|
addps xmm7, xmm0
|
||||||
; 16:
|
; 16:
|
||||||
addps xmm0, xmm1
|
addps xmm0, xmm1
|
||||||
addps xmm1, xmm2
|
addps xmm1, xmm2
|
||||||
addps xmm2, xmm3
|
addps xmm2, xmm3
|
||||||
addps xmm3, xmm4
|
addps xmm3, xmm4
|
||||||
addps xmm4, xmm5
|
addps xmm4, xmm5
|
||||||
addps xmm5, xmm6
|
addps xmm5, xmm6
|
||||||
addps xmm6, xmm7
|
addps xmm6, xmm7
|
||||||
addps xmm7, xmm0
|
addps xmm7, xmm0
|
||||||
; 17:
|
; 17:
|
||||||
addps xmm0, xmm1
|
addps xmm0, xmm1
|
||||||
addps xmm1, xmm2
|
addps xmm1, xmm2
|
||||||
addps xmm2, xmm3
|
addps xmm2, xmm3
|
||||||
addps xmm3, xmm4
|
addps xmm3, xmm4
|
||||||
addps xmm4, xmm5
|
addps xmm4, xmm5
|
||||||
addps xmm5, xmm6
|
addps xmm5, xmm6
|
||||||
addps xmm6, xmm7
|
addps xmm6, xmm7
|
||||||
addps xmm7, xmm0
|
addps xmm7, xmm0
|
||||||
; 18:
|
; 18:
|
||||||
addps xmm0, xmm1
|
addps xmm0, xmm1
|
||||||
addps xmm1, xmm2
|
addps xmm1, xmm2
|
||||||
addps xmm2, xmm3
|
addps xmm2, xmm3
|
||||||
addps xmm3, xmm4
|
addps xmm3, xmm4
|
||||||
addps xmm4, xmm5
|
addps xmm4, xmm5
|
||||||
addps xmm5, xmm6
|
addps xmm5, xmm6
|
||||||
addps xmm6, xmm7
|
addps xmm6, xmm7
|
||||||
addps xmm7, xmm0
|
addps xmm7, xmm0
|
||||||
; 19:
|
; 19:
|
||||||
addps xmm0, xmm1
|
addps xmm0, xmm1
|
||||||
addps xmm1, xmm2
|
addps xmm1, xmm2
|
||||||
addps xmm2, xmm3
|
addps xmm2, xmm3
|
||||||
addps xmm3, xmm4
|
addps xmm3, xmm4
|
||||||
addps xmm4, xmm5
|
addps xmm4, xmm5
|
||||||
addps xmm5, xmm6
|
addps xmm5, xmm6
|
||||||
addps xmm6, xmm7
|
addps xmm6, xmm7
|
||||||
addps xmm7, xmm0
|
addps xmm7, xmm0
|
||||||
; 20:
|
; 20:
|
||||||
addps xmm0, xmm1
|
addps xmm0, xmm1
|
||||||
addps xmm1, xmm2
|
addps xmm1, xmm2
|
||||||
addps xmm2, xmm3
|
addps xmm2, xmm3
|
||||||
addps xmm3, xmm4
|
addps xmm3, xmm4
|
||||||
addps xmm4, xmm5
|
addps xmm4, xmm5
|
||||||
addps xmm5, xmm6
|
addps xmm5, xmm6
|
||||||
addps xmm6, xmm7
|
addps xmm6, xmm7
|
||||||
addps xmm7, xmm0
|
addps xmm7, xmm0
|
||||||
; 21:
|
; 21:
|
||||||
addps xmm0, xmm1
|
addps xmm0, xmm1
|
||||||
addps xmm1, xmm2
|
addps xmm1, xmm2
|
||||||
addps xmm2, xmm3
|
addps xmm2, xmm3
|
||||||
addps xmm3, xmm4
|
addps xmm3, xmm4
|
||||||
addps xmm4, xmm5
|
addps xmm4, xmm5
|
||||||
addps xmm5, xmm6
|
addps xmm5, xmm6
|
||||||
addps xmm6, xmm7
|
addps xmm6, xmm7
|
||||||
addps xmm7, xmm0
|
addps xmm7, xmm0
|
||||||
; 22:
|
; 22:
|
||||||
addps xmm0, xmm1
|
addps xmm0, xmm1
|
||||||
addps xmm1, xmm2
|
addps xmm1, xmm2
|
||||||
addps xmm2, xmm3
|
addps xmm2, xmm3
|
||||||
addps xmm3, xmm4
|
addps xmm3, xmm4
|
||||||
addps xmm4, xmm5
|
addps xmm4, xmm5
|
||||||
addps xmm5, xmm6
|
addps xmm5, xmm6
|
||||||
addps xmm6, xmm7
|
addps xmm6, xmm7
|
||||||
addps xmm7, xmm0
|
addps xmm7, xmm0
|
||||||
; 23:
|
; 23:
|
||||||
addps xmm0, xmm1
|
addps xmm0, xmm1
|
||||||
addps xmm1, xmm2
|
addps xmm1, xmm2
|
||||||
addps xmm2, xmm3
|
addps xmm2, xmm3
|
||||||
addps xmm3, xmm4
|
addps xmm3, xmm4
|
||||||
addps xmm4, xmm5
|
addps xmm4, xmm5
|
||||||
addps xmm5, xmm6
|
addps xmm5, xmm6
|
||||||
addps xmm6, xmm7
|
addps xmm6, xmm7
|
||||||
addps xmm7, xmm0
|
addps xmm7, xmm0
|
||||||
; 24:
|
; 24:
|
||||||
addps xmm0, xmm1
|
addps xmm0, xmm1
|
||||||
addps xmm1, xmm2
|
addps xmm1, xmm2
|
||||||
addps xmm2, xmm3
|
addps xmm2, xmm3
|
||||||
addps xmm3, xmm4
|
addps xmm3, xmm4
|
||||||
addps xmm4, xmm5
|
addps xmm4, xmm5
|
||||||
addps xmm5, xmm6
|
addps xmm5, xmm6
|
||||||
addps xmm6, xmm7
|
addps xmm6, xmm7
|
||||||
addps xmm7, xmm0
|
addps xmm7, xmm0
|
||||||
; 25:
|
; 25:
|
||||||
addps xmm0, xmm1
|
addps xmm0, xmm1
|
||||||
addps xmm1, xmm2
|
addps xmm1, xmm2
|
||||||
addps xmm2, xmm3
|
addps xmm2, xmm3
|
||||||
addps xmm3, xmm4
|
addps xmm3, xmm4
|
||||||
addps xmm4, xmm5
|
addps xmm4, xmm5
|
||||||
addps xmm5, xmm6
|
addps xmm5, xmm6
|
||||||
addps xmm6, xmm7
|
addps xmm6, xmm7
|
||||||
addps xmm7, xmm0
|
addps xmm7, xmm0
|
||||||
; 26:
|
; 26:
|
||||||
addps xmm0, xmm1
|
addps xmm0, xmm1
|
||||||
addps xmm1, xmm2
|
addps xmm1, xmm2
|
||||||
addps xmm2, xmm3
|
addps xmm2, xmm3
|
||||||
addps xmm3, xmm4
|
addps xmm3, xmm4
|
||||||
addps xmm4, xmm5
|
addps xmm4, xmm5
|
||||||
addps xmm5, xmm6
|
addps xmm5, xmm6
|
||||||
addps xmm6, xmm7
|
addps xmm6, xmm7
|
||||||
addps xmm7, xmm0
|
addps xmm7, xmm0
|
||||||
; 27:
|
; 27:
|
||||||
addps xmm0, xmm1
|
addps xmm0, xmm1
|
||||||
addps xmm1, xmm2
|
addps xmm1, xmm2
|
||||||
addps xmm2, xmm3
|
addps xmm2, xmm3
|
||||||
addps xmm3, xmm4
|
addps xmm3, xmm4
|
||||||
addps xmm4, xmm5
|
addps xmm4, xmm5
|
||||||
addps xmm5, xmm6
|
addps xmm5, xmm6
|
||||||
addps xmm6, xmm7
|
addps xmm6, xmm7
|
||||||
addps xmm7, xmm0
|
addps xmm7, xmm0
|
||||||
; 28:
|
; 28:
|
||||||
addps xmm0, xmm1
|
addps xmm0, xmm1
|
||||||
addps xmm1, xmm2
|
addps xmm1, xmm2
|
||||||
addps xmm2, xmm3
|
addps xmm2, xmm3
|
||||||
addps xmm3, xmm4
|
addps xmm3, xmm4
|
||||||
addps xmm4, xmm5
|
addps xmm4, xmm5
|
||||||
addps xmm5, xmm6
|
addps xmm5, xmm6
|
||||||
addps xmm6, xmm7
|
addps xmm6, xmm7
|
||||||
addps xmm7, xmm0
|
addps xmm7, xmm0
|
||||||
; 29:
|
; 29:
|
||||||
addps xmm0, xmm1
|
addps xmm0, xmm1
|
||||||
addps xmm1, xmm2
|
addps xmm1, xmm2
|
||||||
addps xmm2, xmm3
|
addps xmm2, xmm3
|
||||||
addps xmm3, xmm4
|
addps xmm3, xmm4
|
||||||
addps xmm4, xmm5
|
addps xmm4, xmm5
|
||||||
addps xmm5, xmm6
|
addps xmm5, xmm6
|
||||||
addps xmm6, xmm7
|
addps xmm6, xmm7
|
||||||
addps xmm7, xmm0
|
addps xmm7, xmm0
|
||||||
; 30:
|
; 30:
|
||||||
addps xmm0, xmm1
|
addps xmm0, xmm1
|
||||||
addps xmm1, xmm2
|
addps xmm1, xmm2
|
||||||
addps xmm2, xmm3
|
addps xmm2, xmm3
|
||||||
addps xmm3, xmm4
|
addps xmm3, xmm4
|
||||||
addps xmm4, xmm5
|
addps xmm4, xmm5
|
||||||
addps xmm5, xmm6
|
addps xmm5, xmm6
|
||||||
addps xmm6, xmm7
|
addps xmm6, xmm7
|
||||||
addps xmm7, xmm0
|
addps xmm7, xmm0
|
||||||
; 31:
|
; 31:
|
||||||
addps xmm0, xmm1
|
addps xmm0, xmm1
|
||||||
addps xmm1, xmm2
|
addps xmm1, xmm2
|
||||||
addps xmm2, xmm3
|
addps xmm2, xmm3
|
||||||
addps xmm3, xmm4
|
addps xmm3, xmm4
|
||||||
addps xmm4, xmm5
|
addps xmm4, xmm5
|
||||||
addps xmm5, xmm6
|
addps xmm5, xmm6
|
||||||
addps xmm6, xmm7
|
addps xmm6, xmm7
|
||||||
addps xmm7, xmm0
|
addps xmm7, xmm0
|
||||||
; ----------------------
|
; ----------------------
|
||||||
dec ecx
|
dec ecx
|
||||||
jnz bsLoop
|
jnz bsLoop
|
||||||
|
|
||||||
; restore xmm6 & xmm7:
|
; restore xmm6 & xmm7:
|
||||||
movups xmm6, [rsp + 8]
|
movups xmm6, [rsp + 8]
|
||||||
movups xmm7, [rsp + 24]
|
movups xmm7, [rsp + 24]
|
||||||
ret
|
ret
|
||||||
busy_sse_loop endp
|
busy_sse_loop endp
|
||||||
|
|
||||||
END
|
END
|
||||||
|
|
|
@ -191,7 +191,7 @@ int cpu_rdmsr(struct msr_driver_t* driver, uint32_t msr_index, uint64_t* result)
|
||||||
if(ioctl(driver->fd, CPUCTL_RDMSR, &args))
|
if(ioctl(driver->fd, CPUCTL_RDMSR, &args))
|
||||||
return set_error(ERR_INVMSR);
|
return set_error(ERR_INVMSR);
|
||||||
|
|
||||||
*result = args.data;
|
*result = args.data;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -237,7 +237,7 @@ struct msr_driver_t* cpu_msr_driver_open(void)
|
||||||
set_error(ERR_NO_RDMSR);
|
set_error(ERR_NO_RDMSR);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
drv = (struct msr_driver_t*) malloc(sizeof(struct msr_driver_t));
|
drv = (struct msr_driver_t*) malloc(sizeof(struct msr_driver_t));
|
||||||
if (!drv) {
|
if (!drv) {
|
||||||
set_error(ERR_NO_MEM);
|
set_error(ERR_NO_MEM);
|
||||||
|
@ -250,7 +250,7 @@ struct msr_driver_t* cpu_msr_driver_open(void)
|
||||||
set_error(ERR_EXTRACT);
|
set_error(ERR_EXTRACT);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
status = load_driver(drv);
|
status = load_driver(drv);
|
||||||
if (!DeleteFile(drv->driver_path))
|
if (!DeleteFile(drv->driver_path))
|
||||||
debugf(1, "Deleting temporary driver file failed.\n");
|
debugf(1, "Deleting temporary driver file failed.\n");
|
||||||
|
@ -285,7 +285,7 @@ static int extract_driver(struct msr_driver_t* driver)
|
||||||
FILE *f;
|
FILE *f;
|
||||||
if (!GetTempPath(sizeof(driver->driver_path), driver->driver_path)) return 0;
|
if (!GetTempPath(sizeof(driver->driver_path), driver->driver_path)) return 0;
|
||||||
strcat(driver->driver_path, "TmpRdr.sys");
|
strcat(driver->driver_path, "TmpRdr.sys");
|
||||||
|
|
||||||
f = fopen(driver->driver_path, "wb");
|
f = fopen(driver->driver_path, "wb");
|
||||||
if (!f) return 0;
|
if (!f) return 0;
|
||||||
if (is_running_x64())
|
if (is_running_x64())
|
||||||
|
@ -303,15 +303,15 @@ static BOOL wait_for_service_state(SC_HANDLE hService, DWORD dwDesiredState, SER
|
||||||
if(hService != NULL){
|
if(hService != NULL){
|
||||||
while(TRUE){
|
while(TRUE){
|
||||||
fOK = QueryServiceStatus(hService, lpsrvStatus);
|
fOK = QueryServiceStatus(hService, lpsrvStatus);
|
||||||
if(!fOK)
|
if(!fOK)
|
||||||
break;
|
break;
|
||||||
if(lpsrvStatus->dwCurrentState == dwDesiredState)
|
if(lpsrvStatus->dwCurrentState == dwDesiredState)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
dwWaitHint = lpsrvStatus->dwWaitHint / 10; // Poll 1/10 of the wait hint
|
dwWaitHint = lpsrvStatus->dwWaitHint / 10; // Poll 1/10 of the wait hint
|
||||||
if (dwWaitHint < 1000)
|
if (dwWaitHint < 1000)
|
||||||
dwWaitHint = 1000; // At most once per second
|
dwWaitHint = 1000; // At most once per second
|
||||||
if (dwWaitHint > 10000)
|
if (dwWaitHint > 10000)
|
||||||
dwWaitHint = 10000; // At least every 10 seconds
|
dwWaitHint = 10000; // At least every 10 seconds
|
||||||
Sleep(dwWaitHint);
|
Sleep(dwWaitHint);
|
||||||
}
|
}
|
||||||
|
@ -372,7 +372,7 @@ static int load_driver(struct msr_driver_t* drv)
|
||||||
default:
|
default:
|
||||||
debugf(1, "Create driver service failed: %d\n", dwLastError);
|
debugf(1, "Create driver service failed: %d\n", dwLastError);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(drv->scDriver != NULL){
|
if(drv->scDriver != NULL){
|
||||||
if(StartService(drv->scDriver, 0, NULL)){
|
if(StartService(drv->scDriver, 0, NULL)){
|
||||||
|
@ -400,7 +400,7 @@ static int load_driver(struct msr_driver_t* drv)
|
||||||
if(fRunning)
|
if(fRunning)
|
||||||
debugf(1, "Driver already running.\n");
|
debugf(1, "Driver already running.\n");
|
||||||
else
|
else
|
||||||
debugf(1, "Driver loaded.\n");
|
debugf(1, "Driver loaded.\n");
|
||||||
CloseServiceHandle(drv->scManager);
|
CloseServiceHandle(drv->scManager);
|
||||||
drv->hhDriver = CreateFile(lpszDriverName, GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, 0, OPEN_EXISTING, FILE_FLAG_OVERLAPPED, 0);
|
drv->hhDriver = CreateFile(lpszDriverName, GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, 0, OPEN_EXISTING, FILE_FLAG_OVERLAPPED, 0);
|
||||||
drv->ovl.hEvent = CreateEvent(NULL, TRUE, FALSE, NULL);
|
drv->ovl.hEvent = CreateEvent(NULL, TRUE, FALSE, NULL);
|
||||||
|
@ -438,7 +438,7 @@ int cpu_rdmsr(struct msr_driver_t* driver, uint32_t msr_index, uint64_t* result)
|
||||||
if (!driver)
|
if (!driver)
|
||||||
return set_error(ERR_HANDLE);
|
return set_error(ERR_HANDLE);
|
||||||
DeviceIoControl(driver->hhDriver, IOCTL_PROCVIEW_RDMSR, &msr_index, sizeof(int), &msrdata, sizeof(__int64), &dwBytesReturned, &driver->ovl);
|
DeviceIoControl(driver->hhDriver, IOCTL_PROCVIEW_RDMSR, &msr_index, sizeof(int), &msrdata, sizeof(__int64), &dwBytesReturned, &driver->ovl);
|
||||||
GetOverlappedResult(driver->hhDriver, &driver->ovl, &dwBytesReturned, TRUE);
|
GetOverlappedResult(driver->hhDriver, &driver->ovl, &dwBytesReturned, TRUE);
|
||||||
*result = msrdata;
|
*result = msrdata;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -78,13 +78,13 @@ void cpu_tsc_unmark(struct cpu_mark_t* mark)
|
||||||
int cpu_clock_by_mark(struct cpu_mark_t* mark)
|
int cpu_clock_by_mark(struct cpu_mark_t* mark)
|
||||||
{
|
{
|
||||||
uint64_t result;
|
uint64_t result;
|
||||||
|
|
||||||
/* Check if some subtraction resulted in a negative number: */
|
/* Check if some subtraction resulted in a negative number: */
|
||||||
if ((mark->tsc >> 63) != 0 || (mark->sys_clock >> 63) != 0) return -1;
|
if ((mark->tsc >> 63) != 0 || (mark->sys_clock >> 63) != 0) return -1;
|
||||||
|
|
||||||
/* Divide-by-zero check: */
|
/* Divide-by-zero check: */
|
||||||
if (mark->sys_clock == 0) return -1;
|
if (mark->sys_clock == 0) return -1;
|
||||||
|
|
||||||
/* Check if the result fits in 32bits */
|
/* Check if the result fits in 32bits */
|
||||||
result = mark->tsc / mark->sys_clock;
|
result = mark->tsc / mark->sys_clock;
|
||||||
if (result > (uint64_t) 0x7fffffff) return -1;
|
if (result > (uint64_t) 0x7fffffff) return -1;
|
||||||
|
@ -97,16 +97,16 @@ int cpu_clock_by_os(void)
|
||||||
HKEY key;
|
HKEY key;
|
||||||
DWORD result;
|
DWORD result;
|
||||||
DWORD size = 4;
|
DWORD size = 4;
|
||||||
|
|
||||||
if (RegOpenKeyEx(HKEY_LOCAL_MACHINE, TEXT("HARDWARE\\DESCRIPTION\\System\\CentralProcessor\\0"), 0, KEY_READ, &key) != ERROR_SUCCESS)
|
if (RegOpenKeyEx(HKEY_LOCAL_MACHINE, TEXT("HARDWARE\\DESCRIPTION\\System\\CentralProcessor\\0"), 0, KEY_READ, &key) != ERROR_SUCCESS)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
if (RegQueryValueEx(key, TEXT("~MHz"), NULL, NULL, (LPBYTE) &result, (LPDWORD) &size) != ERROR_SUCCESS) {
|
if (RegQueryValueEx(key, TEXT("~MHz"), NULL, NULL, (LPBYTE) &result, (LPDWORD) &size) != ERROR_SUCCESS) {
|
||||||
RegCloseKey(key);
|
RegCloseKey(key);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
RegCloseKey(key);
|
RegCloseKey(key);
|
||||||
|
|
||||||
return (int)result;
|
return (int)result;
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
|
@ -129,10 +129,10 @@ int cpu_clock_by_os(void)
|
||||||
FILE *f;
|
FILE *f;
|
||||||
char line[1024], *s;
|
char line[1024], *s;
|
||||||
int result;
|
int result;
|
||||||
|
|
||||||
f = fopen("/proc/cpuinfo", "rt");
|
f = fopen("/proc/cpuinfo", "rt");
|
||||||
if (!f) return -1;
|
if (!f) return -1;
|
||||||
|
|
||||||
while (fgets(line, sizeof(line), f)) {
|
while (fgets(line, sizeof(line), f)) {
|
||||||
if (!strncmp(line, "cpu MHz", 7)) {
|
if (!strncmp(line, "cpu MHz", 7)) {
|
||||||
s = strchr(line, ':');
|
s = strchr(line, ':');
|
||||||
|
@ -184,7 +184,7 @@ int cpu_clock_measure(int millis, int quad_check)
|
||||||
struct cpu_mark_t begin[4], end[4], temp, temp2;
|
struct cpu_mark_t begin[4], end[4], temp, temp2;
|
||||||
int results[4], cycles, n, k, i, j, bi, bj, mdiff, diff, _zero = 0;
|
int results[4], cycles, n, k, i, j, bi, bj, mdiff, diff, _zero = 0;
|
||||||
uint64_t tl;
|
uint64_t tl;
|
||||||
|
|
||||||
if (millis < 1) return -1;
|
if (millis < 1) return -1;
|
||||||
tl = millis * (uint64_t) 1000;
|
tl = millis * (uint64_t) 1000;
|
||||||
if (quad_check)
|
if (quad_check)
|
||||||
|
@ -301,7 +301,7 @@ int cpu_clock_by_ic(int millis, int runs)
|
||||||
} while (t1 - t0 < tl * (uint64_t) 8);
|
} while (t1 - t0 < tl * (uint64_t) 8);
|
||||||
// cpu_Hz = cycles_inner * cycles_outer * 256 / (t1 - t0) * 1000000
|
// cpu_Hz = cycles_inner * cycles_outer * 256 / (t1 - t0) * 1000000
|
||||||
debugf(2, "c = %d, td = %d\n", c, (int) (t1 - t0));
|
debugf(2, "c = %d, td = %d\n", c, (int) (t1 - t0));
|
||||||
hz = ((uint64_t) cycles_inner * (uint64_t) 256 + 12) *
|
hz = ((uint64_t) cycles_inner * (uint64_t) 256 + 12) *
|
||||||
(uint64_t) cycles_outer * (uint64_t) multiplier_numerator * (uint64_t) c * (uint64_t) 1000000
|
(uint64_t) cycles_outer * (uint64_t) multiplier_numerator * (uint64_t) c * (uint64_t) 1000000
|
||||||
/ ((t1 - t0) * (uint64_t) multiplier_denom);
|
/ ((t1 - t0) * (uint64_t) multiplier_denom);
|
||||||
cur_value = (int) (hz / 1000000);
|
cur_value = (int) (hz / 1000000);
|
||||||
|
|
|
@ -48,47 +48,47 @@ struct amd_code_and_bits_t {
|
||||||
const struct match_entry_t cpudb_amd[] = {
|
const struct match_entry_t cpudb_amd[] = {
|
||||||
// F M S EF EM #cores L2$ L3$ BC ModelBits ModelCode Name
|
// F M S EF EM #cores L2$ L3$ BC ModelBits ModelCode Name
|
||||||
{ -1, -1, -1, -1, -1, 1, -1, -1, NC, 0 , 0, "Unknown AMD CPU" },
|
{ -1, -1, -1, -1, -1, 1, -1, -1, NC, 0 , 0, "Unknown AMD CPU" },
|
||||||
|
|
||||||
/* 486 and the likes */
|
/* 486 and the likes */
|
||||||
{ 4, -1, -1, -1, -1, 1, -1, -1, NC, 0 , 0, "Unknown AMD 486" },
|
{ 4, -1, -1, -1, -1, 1, -1, -1, NC, 0 , 0, "Unknown AMD 486" },
|
||||||
{ 4, 3, -1, -1, -1, 1, -1, -1, NC, 0 , 0, "AMD 486DX2" },
|
{ 4, 3, -1, -1, -1, 1, -1, -1, NC, 0 , 0, "AMD 486DX2" },
|
||||||
{ 4, 7, -1, -1, -1, 1, -1, -1, NC, 0 , 0, "AMD 486DX2WB" },
|
{ 4, 7, -1, -1, -1, 1, -1, -1, NC, 0 , 0, "AMD 486DX2WB" },
|
||||||
{ 4, 8, -1, -1, -1, 1, -1, -1, NC, 0 , 0, "AMD 486DX4" },
|
{ 4, 8, -1, -1, -1, 1, -1, -1, NC, 0 , 0, "AMD 486DX4" },
|
||||||
{ 4, 9, -1, -1, -1, 1, -1, -1, NC, 0 , 0, "AMD 486DX4WB" },
|
{ 4, 9, -1, -1, -1, 1, -1, -1, NC, 0 , 0, "AMD 486DX4WB" },
|
||||||
|
|
||||||
/* Pentia clones */
|
/* Pentia clones */
|
||||||
{ 5, -1, -1, -1, -1, 1, -1, -1, NC, 0 , 0, "Unknown AMD 586" },
|
{ 5, -1, -1, -1, -1, 1, -1, -1, NC, 0 , 0, "Unknown AMD 586" },
|
||||||
{ 5, 0, -1, -1, -1, 1, -1, -1, NC, 0 , 0, "K5" },
|
{ 5, 0, -1, -1, -1, 1, -1, -1, NC, 0 , 0, "K5" },
|
||||||
{ 5, 1, -1, -1, -1, 1, -1, -1, NC, 0 , 0, "K5" },
|
{ 5, 1, -1, -1, -1, 1, -1, -1, NC, 0 , 0, "K5" },
|
||||||
{ 5, 2, -1, -1, -1, 1, -1, -1, NC, 0 , 0, "K5" },
|
{ 5, 2, -1, -1, -1, 1, -1, -1, NC, 0 , 0, "K5" },
|
||||||
{ 5, 3, -1, -1, -1, 1, -1, -1, NC, 0 , 0, "K5" },
|
{ 5, 3, -1, -1, -1, 1, -1, -1, NC, 0 , 0, "K5" },
|
||||||
|
|
||||||
/* The K6 */
|
/* The K6 */
|
||||||
{ 5, 6, -1, -1, -1, 1, -1, -1, NC, 0 , 0, "K6" },
|
{ 5, 6, -1, -1, -1, 1, -1, -1, NC, 0 , 0, "K6" },
|
||||||
{ 5, 7, -1, -1, -1, 1, -1, -1, NC, 0 , 0, "K6" },
|
{ 5, 7, -1, -1, -1, 1, -1, -1, NC, 0 , 0, "K6" },
|
||||||
|
|
||||||
{ 5, 8, -1, -1, -1, 1, -1, -1, NC, 0 , 0, "K6-2" },
|
{ 5, 8, -1, -1, -1, 1, -1, -1, NC, 0 , 0, "K6-2" },
|
||||||
{ 5, 9, -1, -1, -1, 1, -1, -1, NC, 0 , 0, "K6-III" },
|
{ 5, 9, -1, -1, -1, 1, -1, -1, NC, 0 , 0, "K6-III" },
|
||||||
{ 5, 10, -1, -1, -1, 1, -1, -1, NC, 0 , 0, "Unknown K6" },
|
{ 5, 10, -1, -1, -1, 1, -1, -1, NC, 0 , 0, "Unknown K6" },
|
||||||
{ 5, 11, -1, -1, -1, 1, -1, -1, NC, 0 , 0, "Unknown K6" },
|
{ 5, 11, -1, -1, -1, 1, -1, -1, NC, 0 , 0, "Unknown K6" },
|
||||||
{ 5, 12, -1, -1, -1, 1, -1, -1, NC, 0 , 0, "Unknown K6" },
|
{ 5, 12, -1, -1, -1, 1, -1, -1, NC, 0 , 0, "Unknown K6" },
|
||||||
{ 5, 13, -1, -1, -1, 1, -1, -1, NC, 0 , 0, "K6-2+" },
|
{ 5, 13, -1, -1, -1, 1, -1, -1, NC, 0 , 0, "K6-2+" },
|
||||||
|
|
||||||
/* Athlon et al. */
|
/* Athlon et al. */
|
||||||
{ 6, 1, -1, -1, -1, 1, -1, -1, NC, 0 , 0, "Athlon (Slot-A)" },
|
{ 6, 1, -1, -1, -1, 1, -1, -1, NC, 0 , 0, "Athlon (Slot-A)" },
|
||||||
{ 6, 2, -1, -1, -1, 1, -1, -1, NC, 0 , 0, "Athlon (Slot-A)" },
|
{ 6, 2, -1, -1, -1, 1, -1, -1, NC, 0 , 0, "Athlon (Slot-A)" },
|
||||||
{ 6, 3, -1, -1, -1, 1, -1, -1, NC, 0 , 0, "Duron (Spitfire)" },
|
{ 6, 3, -1, -1, -1, 1, -1, -1, NC, 0 , 0, "Duron (Spitfire)" },
|
||||||
{ 6, 4, -1, -1, -1, 1, -1, -1, NC, 0 , 0, "Athlon (ThunderBird)" },
|
{ 6, 4, -1, -1, -1, 1, -1, -1, NC, 0 , 0, "Athlon (ThunderBird)" },
|
||||||
|
|
||||||
{ 6, 6, -1, -1, -1, 1, -1, -1, NC, 0 , 0, "Unknown Athlon" },
|
{ 6, 6, -1, -1, -1, 1, -1, -1, NC, 0 , 0, "Unknown Athlon" },
|
||||||
{ 6, 6, -1, -1, -1, 1, -1, -1, NC, ATHLON_ , 0, "Athlon (Palomino)" },
|
{ 6, 6, -1, -1, -1, 1, -1, -1, NC, ATHLON_ , 0, "Athlon (Palomino)" },
|
||||||
{ 6, 6, -1, -1, -1, 1, -1, -1, NC, ATHLON_|_MP_ , 0, "Athlon MP (Palomino)" },
|
{ 6, 6, -1, -1, -1, 1, -1, -1, NC, ATHLON_|_MP_ , 0, "Athlon MP (Palomino)" },
|
||||||
{ 6, 6, -1, -1, -1, 1, -1, -1, NC, DURON_ , 0, "Duron (Palomino)" },
|
{ 6, 6, -1, -1, -1, 1, -1, -1, NC, DURON_ , 0, "Duron (Palomino)" },
|
||||||
{ 6, 6, -1, -1, -1, 1, -1, -1, NC, ATHLON_|_XP_ , 0, "Athlon XP" },
|
{ 6, 6, -1, -1, -1, 1, -1, -1, NC, ATHLON_|_XP_ , 0, "Athlon XP" },
|
||||||
|
|
||||||
{ 6, 7, -1, -1, -1, 1, -1, -1, NC, 0 , 0, "Unknown Athlon XP" },
|
{ 6, 7, -1, -1, -1, 1, -1, -1, NC, 0 , 0, "Unknown Athlon XP" },
|
||||||
{ 6, 7, -1, -1, -1, 1, -1, -1, NC, DURON_ , 0, "Duron (Morgan)" },
|
{ 6, 7, -1, -1, -1, 1, -1, -1, NC, DURON_ , 0, "Duron (Morgan)" },
|
||||||
|
|
||||||
{ 6, 8, -1, -1, -1, 1, -1, -1, NC, 0 , 0, "Athlon XP" },
|
{ 6, 8, -1, -1, -1, 1, -1, -1, NC, 0 , 0, "Athlon XP" },
|
||||||
{ 6, 8, -1, -1, -1, 1, -1, -1, NC, ATHLON_ , 0, "Athlon XP (Thoroughbred)" },
|
{ 6, 8, -1, -1, -1, 1, -1, -1, NC, ATHLON_ , 0, "Athlon XP (Thoroughbred)" },
|
||||||
{ 6, 8, -1, -1, -1, 1, -1, -1, NC, ATHLON_|_XP_ , 0, "Athlon XP (Thoroughbred)" },
|
{ 6, 8, -1, -1, -1, 1, -1, -1, NC, ATHLON_|_XP_ , 0, "Athlon XP (Thoroughbred)" },
|
||||||
|
@ -99,7 +99,7 @@ const struct match_entry_t cpudb_amd[] = {
|
||||||
{ 6, 8, -1, -1, -1, 1, -1, -1, NC, ATHLON_|_MP_ , 0, "Athlon MP (Thoroughbred)" },
|
{ 6, 8, -1, -1, -1, 1, -1, -1, NC, ATHLON_|_MP_ , 0, "Athlon MP (Thoroughbred)" },
|
||||||
{ 6, 8, -1, -1, -1, 1, -1, -1, NC, ATHLON_|_XP_|_M_ , 0, "Mobile Athlon (T-Bred)" },
|
{ 6, 8, -1, -1, -1, 1, -1, -1, NC, ATHLON_|_XP_|_M_ , 0, "Mobile Athlon (T-Bred)" },
|
||||||
{ 6, 8, -1, -1, -1, 1, -1, -1, NC, ATHLON_|_XP_|_M_|_LV_, 0, "Mobile Athlon (T-Bred)" },
|
{ 6, 8, -1, -1, -1, 1, -1, -1, NC, ATHLON_|_XP_|_M_|_LV_, 0, "Mobile Athlon (T-Bred)" },
|
||||||
|
|
||||||
{ 6, 10, -1, -1, -1, 1, -1, -1, NC, 0 , 0, "Athlon XP (Barton)" },
|
{ 6, 10, -1, -1, -1, 1, -1, -1, NC, 0 , 0, "Athlon XP (Barton)" },
|
||||||
{ 6, 10, -1, -1, -1, 1, 512, -1, NC, ATHLON_|_XP_ , 0, "Athlon XP (Barton)" },
|
{ 6, 10, -1, -1, -1, 1, 512, -1, NC, ATHLON_|_XP_ , 0, "Athlon XP (Barton)" },
|
||||||
{ 6, 10, -1, -1, -1, 1, 512, -1, NC, SEMPRON_ , 0, "Sempron (Barton)" },
|
{ 6, 10, -1, -1, -1, 1, 512, -1, NC, SEMPRON_ , 0, "Sempron (Barton)" },
|
||||||
|
@ -108,11 +108,11 @@ const struct match_entry_t cpudb_amd[] = {
|
||||||
{ 6, 10, -1, -1, -1, 1, -1, -1, NC, ATHLON_|_MP_ , 0, "Athlon MP (Barton)" },
|
{ 6, 10, -1, -1, -1, 1, -1, -1, NC, ATHLON_|_MP_ , 0, "Athlon MP (Barton)" },
|
||||||
{ 6, 10, -1, -1, -1, 1, -1, -1, NC, ATHLON_|_XP_|_M_ , 0, "Mobile Athlon (Barton)" },
|
{ 6, 10, -1, -1, -1, 1, -1, -1, NC, ATHLON_|_XP_|_M_ , 0, "Mobile Athlon (Barton)" },
|
||||||
{ 6, 10, -1, -1, -1, 1, -1, -1, NC, ATHLON_|_XP_|_M_|_LV_, 0, "Mobile Athlon (Barton)" },
|
{ 6, 10, -1, -1, -1, 1, -1, -1, NC, ATHLON_|_XP_|_M_|_LV_, 0, "Mobile Athlon (Barton)" },
|
||||||
|
|
||||||
/* K8 Architecture */
|
/* K8 Architecture */
|
||||||
{ 15, -1, -1, 15, -1, 1, -1, -1, NC, 0 , 0, "Unknown K8" },
|
{ 15, -1, -1, 15, -1, 1, -1, -1, NC, 0 , 0, "Unknown K8" },
|
||||||
{ 15, -1, -1, 16, -1, 1, -1, -1, NC, 0 , 0, "Unknown K9" },
|
{ 15, -1, -1, 16, -1, 1, -1, -1, NC, 0 , 0, "Unknown K9" },
|
||||||
|
|
||||||
{ 15, -1, -1, 15, -1, 1, -1, -1, NC, 0 , 0, "Unknown A64" },
|
{ 15, -1, -1, 15, -1, 1, -1, -1, NC, 0 , 0, "Unknown A64" },
|
||||||
{ 15, -1, -1, 15, -1, 1, -1, -1, NC, OPTERON_ , 0, "Opteron" },
|
{ 15, -1, -1, 15, -1, 1, -1, -1, NC, OPTERON_ , 0, "Opteron" },
|
||||||
{ 15, -1, -1, 15, -1, 2, -1, -1, NC, OPTERON_|_X2 , 0, "Opteron (Dual Core)" },
|
{ 15, -1, -1, 15, -1, 2, -1, -1, NC, OPTERON_|_X2 , 0, "Opteron (Dual Core)" },
|
||||||
|
@ -141,22 +141,22 @@ const struct match_entry_t cpudb_amd[] = {
|
||||||
{ 15, -1, -1, 15, 0x27, 1, 512, -1, NC, ATHLON_|_64_ , 0, "Athlon 64 (San Diego/512K)" },
|
{ 15, -1, -1, 15, 0x27, 1, 512, -1, NC, ATHLON_|_64_ , 0, "Athlon 64 (San Diego/512K)" },
|
||||||
{ 15, -1, -1, 15, 0x37, 1, 512, -1, NC, ATHLON_|_64_ , 0, "Athlon 64 (San Diego/512K)" },
|
{ 15, -1, -1, 15, 0x37, 1, 512, -1, NC, ATHLON_|_64_ , 0, "Athlon 64 (San Diego/512K)" },
|
||||||
{ 15, -1, -1, 15, 0x04, 1, 512, -1, NC, ATHLON_|_64_ , 0, "Athlon 64 (ClawHammer/512K)" },
|
{ 15, -1, -1, 15, 0x04, 1, 512, -1, NC, ATHLON_|_64_ , 0, "Athlon 64 (ClawHammer/512K)" },
|
||||||
|
|
||||||
{ 15, -1, -1, 15, 0x5f, 1, 1024, -1, NC, ATHLON_|_64_ , 0, "Athlon 64 (Orleans/1024K)" },
|
{ 15, -1, -1, 15, 0x5f, 1, 1024, -1, NC, ATHLON_|_64_ , 0, "Athlon 64 (Orleans/1024K)" },
|
||||||
{ 15, -1, -1, 15, 0x27, 1, 1024, -1, NC, ATHLON_|_64_ , 0, "Athlon 64 (San Diego/1024K)" },
|
{ 15, -1, -1, 15, 0x27, 1, 1024, -1, NC, ATHLON_|_64_ , 0, "Athlon 64 (San Diego/1024K)" },
|
||||||
{ 15, -1, -1, 15, 0x04, 1, 1024, -1, NC, ATHLON_|_64_ , 0, "Athlon 64 (ClawHammer/1024K)" },
|
{ 15, -1, -1, 15, 0x04, 1, 1024, -1, NC, ATHLON_|_64_ , 0, "Athlon 64 (ClawHammer/1024K)" },
|
||||||
|
|
||||||
{ 15, -1, -1, 15, 0x4b, 2, 256, -1, NC, SEMPRON_ , 0, "Athlon 64 X2 (Windsor/256K)" },
|
{ 15, -1, -1, 15, 0x4b, 2, 256, -1, NC, SEMPRON_ , 0, "Athlon 64 X2 (Windsor/256K)" },
|
||||||
|
|
||||||
{ 15, -1, -1, 15, 0x23, 2, 512, -1, NC, ATHLON_|_64_|_X2 , 0, "Athlon 64 X2 (Toledo/512K)" },
|
{ 15, -1, -1, 15, 0x23, 2, 512, -1, NC, ATHLON_|_64_|_X2 , 0, "Athlon 64 X2 (Toledo/512K)" },
|
||||||
{ 15, -1, -1, 15, 0x4b, 2, 512, -1, NC, ATHLON_|_64_|_X2 , 0, "Athlon 64 X2 (Windsor/512K)" },
|
{ 15, -1, -1, 15, 0x4b, 2, 512, -1, NC, ATHLON_|_64_|_X2 , 0, "Athlon 64 X2 (Windsor/512K)" },
|
||||||
{ 15, -1, -1, 15, 0x43, 2, 512, -1, NC, ATHLON_|_64_|_X2 , 0, "Athlon 64 X2 (Windsor/512K)" },
|
{ 15, -1, -1, 15, 0x43, 2, 512, -1, NC, ATHLON_|_64_|_X2 , 0, "Athlon 64 X2 (Windsor/512K)" },
|
||||||
{ 15, -1, -1, 15, 0x6b, 2, 512, -1, NC, ATHLON_|_64_|_X2 , 0, "Athlon 64 X2 (Brisbane/512K)" },
|
{ 15, -1, -1, 15, 0x6b, 2, 512, -1, NC, ATHLON_|_64_|_X2 , 0, "Athlon 64 X2 (Brisbane/512K)" },
|
||||||
{ 15, -1, -1, 15, 0x2b, 2, 512, -1, NC, ATHLON_|_64_|_X2 , 0, "Athlon 64 X2 (Manchester/512K)"},
|
{ 15, -1, -1, 15, 0x2b, 2, 512, -1, NC, ATHLON_|_64_|_X2 , 0, "Athlon 64 X2 (Manchester/512K)"},
|
||||||
|
|
||||||
{ 15, -1, -1, 15, 0x23, 2, 1024, -1, NC, ATHLON_|_64_|_X2 , 0, "Athlon 64 X2 (Toledo/1024K)" },
|
{ 15, -1, -1, 15, 0x23, 2, 1024, -1, NC, ATHLON_|_64_|_X2 , 0, "Athlon 64 X2 (Toledo/1024K)" },
|
||||||
{ 15, -1, -1, 15, 0x43, 2, 1024, -1, NC, ATHLON_|_64_|_X2 , 0, "Athlon 64 X2 (Windsor/1024K)" },
|
{ 15, -1, -1, 15, 0x43, 2, 1024, -1, NC, ATHLON_|_64_|_X2 , 0, "Athlon 64 X2 (Windsor/1024K)" },
|
||||||
|
|
||||||
{ 15, -1, -1, 15, 0x08, 1, 128, -1, NC, MOBILE_|SEMPRON_ , 0, "Mobile Sempron 64 (Dublin/128K)"},
|
{ 15, -1, -1, 15, 0x08, 1, 128, -1, NC, MOBILE_|SEMPRON_ , 0, "Mobile Sempron 64 (Dublin/128K)"},
|
||||||
{ 15, -1, -1, 15, 0x08, 1, 256, -1, NC, MOBILE_|SEMPRON_ , 0, "Mobile Sempron 64 (Dublin/256K)"},
|
{ 15, -1, -1, 15, 0x08, 1, 256, -1, NC, MOBILE_|SEMPRON_ , 0, "Mobile Sempron 64 (Dublin/256K)"},
|
||||||
{ 15, -1, -1, 15, 0x0c, 1, 256, -1, NC, SEMPRON_ , 0, "Sempron 64 (Paris)" },
|
{ 15, -1, -1, 15, 0x0c, 1, 256, -1, NC, SEMPRON_ , 0, "Sempron 64 (Paris)" },
|
||||||
|
@ -181,7 +181,7 @@ const struct match_entry_t cpudb_amd[] = {
|
||||||
{ 15, -1, -1, 15, 0x4c, 1, 256, -1, NC, MOBILE_| SEMPRON_ , 0, "Mobile Sempron 64 (Keene/256K)"},
|
{ 15, -1, -1, 15, 0x4c, 1, 256, -1, NC, MOBILE_| SEMPRON_ , 0, "Mobile Sempron 64 (Keene/256K)"},
|
||||||
{ 15, -1, -1, 15, 0x4c, 1, 512, -1, NC, MOBILE_| SEMPRON_ , 0, "Mobile Sempron 64 (Keene/512K)"},
|
{ 15, -1, -1, 15, 0x4c, 1, 512, -1, NC, MOBILE_| SEMPRON_ , 0, "Mobile Sempron 64 (Keene/512K)"},
|
||||||
{ 15, -1, -1, 15, -1, 2, -1, -1, NC, SEMPRON_ , 0, "Sempron Dual Core" },
|
{ 15, -1, -1, 15, -1, 2, -1, -1, NC, SEMPRON_ , 0, "Sempron Dual Core" },
|
||||||
|
|
||||||
{ 15, -1, -1, 15, 0x24, 1, 512, -1, NC, TURION_|_64_ , 0, "Turion 64 (Lancaster/512K)" },
|
{ 15, -1, -1, 15, 0x24, 1, 512, -1, NC, TURION_|_64_ , 0, "Turion 64 (Lancaster/512K)" },
|
||||||
{ 15, -1, -1, 15, 0x24, 1, 1024, -1, NC, TURION_|_64_ , 0, "Turion 64 (Lancaster/1024K)" },
|
{ 15, -1, -1, 15, 0x24, 1, 1024, -1, NC, TURION_|_64_ , 0, "Turion 64 (Lancaster/1024K)" },
|
||||||
{ 15, -1, -1, 15, 0x48, 2, 256, -1, NC, TURION_|_X2 , 0, "Turion X2 (Taylor)" },
|
{ 15, -1, -1, 15, 0x48, 2, 256, -1, NC, TURION_|_X2 , 0, "Turion X2 (Taylor)" },
|
||||||
|
@ -373,7 +373,7 @@ static void decode_amd_cache_info(struct cpu_raw_data_t* raw, struct cpu_id_t* d
|
||||||
0, 1, 2, 0, 4, 0, 8, 0, 16, 16, 32, 48, 64, 96, 128, 255
|
0, 1, 2, 0, 4, 0, 8, 0, 16, 16, 32, 48, 64, 96, 128, 255
|
||||||
};
|
};
|
||||||
unsigned n = raw->ext_cpuid[0][0];
|
unsigned n = raw->ext_cpuid[0][0];
|
||||||
|
|
||||||
if (n >= 0x80000005) {
|
if (n >= 0x80000005) {
|
||||||
data->l1_data_cache = (raw->ext_cpuid[5][2] >> 24) & 0xff;
|
data->l1_data_cache = (raw->ext_cpuid[5][2] >> 24) & 0xff;
|
||||||
data->l1_assoc = (raw->ext_cpuid[5][2] >> 16) & 0xff;
|
data->l1_assoc = (raw->ext_cpuid[5][2] >> 16) & 0xff;
|
||||||
|
@ -384,7 +384,7 @@ static void decode_amd_cache_info(struct cpu_raw_data_t* raw, struct cpu_id_t* d
|
||||||
data->l2_cache = (raw->ext_cpuid[6][2] >> 16) & 0xffff;
|
data->l2_cache = (raw->ext_cpuid[6][2] >> 16) & 0xffff;
|
||||||
data->l2_assoc = assoc_table[(raw->ext_cpuid[6][2] >> 12) & 0xf];
|
data->l2_assoc = assoc_table[(raw->ext_cpuid[6][2] >> 12) & 0xf];
|
||||||
data->l2_cacheline = (raw->ext_cpuid[6][2]) & 0xff;
|
data->l2_cacheline = (raw->ext_cpuid[6][2]) & 0xff;
|
||||||
|
|
||||||
l3_result = (raw->ext_cpuid[6][3] >> 18);
|
l3_result = (raw->ext_cpuid[6][3] >> 18);
|
||||||
if (l3_result > 0) {
|
if (l3_result > 0) {
|
||||||
l3_result = 512 * l3_result; /* AMD spec says it's a range,
|
l3_result = 512 * l3_result; /* AMD spec says it's a range,
|
||||||
|
@ -401,7 +401,7 @@ static void decode_amd_cache_info(struct cpu_raw_data_t* raw, struct cpu_id_t* d
|
||||||
static void decode_amd_number_of_cores(struct cpu_raw_data_t* raw, struct cpu_id_t* data)
|
static void decode_amd_number_of_cores(struct cpu_raw_data_t* raw, struct cpu_id_t* data)
|
||||||
{
|
{
|
||||||
int logical_cpus = -1, num_cores = -1;
|
int logical_cpus = -1, num_cores = -1;
|
||||||
|
|
||||||
if (raw->basic_cpuid[0][0] >= 1) {
|
if (raw->basic_cpuid[0][0] >= 1) {
|
||||||
logical_cpus = (raw->basic_cpuid[1][1] >> 16) & 0xff;
|
logical_cpus = (raw->basic_cpuid[1][1] >> 16) & 0xff;
|
||||||
if (raw->ext_cpuid[0][0] >= 8) {
|
if (raw->ext_cpuid[0][0] >= 8) {
|
||||||
|
|
|
@ -62,7 +62,7 @@ typedef enum _intel_model_t intel_model_t;
|
||||||
const struct match_entry_t cpudb_intel[] = {
|
const struct match_entry_t cpudb_intel[] = {
|
||||||
// F M S EF EM #cores L2$ L3$ BC ModelBits ModelCode Name
|
// F M S EF EM #cores L2$ L3$ BC ModelBits ModelCode Name
|
||||||
{ -1, -1, -1, -1, -1, 1, -1, -1, NC, 0 , 0, "Unknown Intel CPU" },
|
{ -1, -1, -1, -1, -1, 1, -1, -1, NC, 0 , 0, "Unknown Intel CPU" },
|
||||||
|
|
||||||
/* i486 */
|
/* i486 */
|
||||||
{ 4, -1, -1, -1, -1, 1, -1, -1, NC, 0 , 0, "Unknown i486" },
|
{ 4, -1, -1, -1, -1, 1, -1, -1, NC, 0 , 0, "Unknown i486" },
|
||||||
{ 4, 0, -1, -1, -1, 1, -1, -1, NC, 0 , 0, "i486 DX-25/33" },
|
{ 4, 0, -1, -1, -1, 1, -1, -1, NC, 0 , 0, "i486 DX-25/33" },
|
||||||
|
@ -74,7 +74,7 @@ const struct match_entry_t cpudb_intel[] = {
|
||||||
{ 4, 7, -1, -1, -1, 1, -1, -1, NC, 0 , 0, "i486 DX2 WriteBack" },
|
{ 4, 7, -1, -1, -1, 1, -1, -1, NC, 0 , 0, "i486 DX2 WriteBack" },
|
||||||
{ 4, 8, -1, -1, -1, 1, -1, -1, NC, 0 , 0, "i486 DX4" },
|
{ 4, 8, -1, -1, -1, 1, -1, -1, NC, 0 , 0, "i486 DX4" },
|
||||||
{ 4, 9, -1, -1, -1, 1, -1, -1, NC, 0 , 0, "i486 DX4 WriteBack" },
|
{ 4, 9, -1, -1, -1, 1, -1, -1, NC, 0 , 0, "i486 DX4 WriteBack" },
|
||||||
|
|
||||||
/* All Pentia:
|
/* All Pentia:
|
||||||
Pentium 1 */
|
Pentium 1 */
|
||||||
{ 5, -1, -1, -1, -1, 1, -1, -1, NC, 0 , 0, "Unknown Pentium" },
|
{ 5, -1, -1, -1, -1, 1, -1, -1, NC, 0 , 0, "Unknown Pentium" },
|
||||||
|
@ -85,7 +85,7 @@ const struct match_entry_t cpudb_intel[] = {
|
||||||
{ 5, 4, -1, -1, -1, 1, -1, -1, NC, 0 , 0, "Pentium 1 (0.35u)" },
|
{ 5, 4, -1, -1, -1, 1, -1, -1, NC, 0 , 0, "Pentium 1 (0.35u)" },
|
||||||
{ 5, 7, -1, -1, -1, 1, -1, -1, NC, 0 , 0, "Pentium 1 (0.35u)" },
|
{ 5, 7, -1, -1, -1, 1, -1, -1, NC, 0 , 0, "Pentium 1 (0.35u)" },
|
||||||
{ 5, 8, -1, -1, -1, 1, -1, -1, NC, 0 , 0, "Pentium MMX (0.25u)" },
|
{ 5, 8, -1, -1, -1, 1, -1, -1, NC, 0 , 0, "Pentium MMX (0.25u)" },
|
||||||
|
|
||||||
/* Pentium 2 / 3 / M / Conroe / whatsnext - all P6 based. */
|
/* Pentium 2 / 3 / M / Conroe / whatsnext - all P6 based. */
|
||||||
{ 6, -1, -1, -1, -1, 1, -1, -1, NC, 0 , 0, "Unknown P6" },
|
{ 6, -1, -1, -1, -1, 1, -1, -1, NC, 0 , 0, "Unknown P6" },
|
||||||
{ 6, 0, -1, -1, -1, 1, -1, -1, NC, 0 , 0, "Pentium Pro" },
|
{ 6, 0, -1, -1, -1, 1, -1, -1, NC, 0 , 0, "Pentium Pro" },
|
||||||
|
@ -94,27 +94,27 @@ const struct match_entry_t cpudb_intel[] = {
|
||||||
{ 6, 5, -1, -1, -1, 1, -1, -1, NC, 0 , 0, "Pentium II (Deschutes)" },
|
{ 6, 5, -1, -1, -1, 1, -1, -1, NC, 0 , 0, "Pentium II (Deschutes)" },
|
||||||
{ 6, 5, -1, -1, -1, 1, -1, -1, NC, MOBILE_|PENTIUM_, 0, "Mobile Pentium II (Tonga)"},
|
{ 6, 5, -1, -1, -1, 1, -1, -1, NC, MOBILE_|PENTIUM_, 0, "Mobile Pentium II (Tonga)"},
|
||||||
{ 6, 6, -1, -1, -1, 1, -1, -1, NC,0 , 0, "Pentium II (Dixon)" },
|
{ 6, 6, -1, -1, -1, 1, -1, -1, NC,0 , 0, "Pentium II (Dixon)" },
|
||||||
|
|
||||||
{ 6, 3, -1, -1, -1, 1, -1, -1, NC, XEON_ , 0, "P-II Xeon (Klamath)" },
|
{ 6, 3, -1, -1, -1, 1, -1, -1, NC, XEON_ , 0, "P-II Xeon (Klamath)" },
|
||||||
{ 6, 5, -1, -1, -1, 1, -1, -1, NC, XEON_ , 0, "P-II Xeon (Drake)" },
|
{ 6, 5, -1, -1, -1, 1, -1, -1, NC, XEON_ , 0, "P-II Xeon (Drake)" },
|
||||||
{ 6, 6, -1, -1, -1, 1, -1, -1, NC, XEON_ , 0, "P-II Xeon (Dixon)" },
|
{ 6, 6, -1, -1, -1, 1, -1, -1, NC, XEON_ , 0, "P-II Xeon (Dixon)" },
|
||||||
|
|
||||||
{ 6, 5, -1, -1, -1, 1, -1, -1, NC, CELERON_ , 0, "P-II Celeron (Covington)" },
|
{ 6, 5, -1, -1, -1, 1, -1, -1, NC, CELERON_ , 0, "P-II Celeron (Covington)" },
|
||||||
{ 6, 6, -1, -1, -1, 1, -1, -1, NC, CELERON_ , 0, "P-II Celeron (Mendocino)" },
|
{ 6, 6, -1, -1, -1, 1, -1, -1, NC, CELERON_ , 0, "P-II Celeron (Mendocino)" },
|
||||||
|
|
||||||
/* -------------------------------------------------- */
|
/* -------------------------------------------------- */
|
||||||
|
|
||||||
{ 6, 7, -1, -1, -1, 1, -1, -1, NC, 0 , 0, "Pentium III (Katmai)" },
|
{ 6, 7, -1, -1, -1, 1, -1, -1, NC, 0 , 0, "Pentium III (Katmai)" },
|
||||||
{ 6, 8, -1, -1, -1, 1, -1, -1, NC, 0 , 0, "Pentium III (Coppermine)"},
|
{ 6, 8, -1, -1, -1, 1, -1, -1, NC, 0 , 0, "Pentium III (Coppermine)"},
|
||||||
{ 6, 10, -1, -1, -1, 1, -1, -1, NC, 0 , 0, "Pentium III (Coppermine)"},
|
{ 6, 10, -1, -1, -1, 1, -1, -1, NC, 0 , 0, "Pentium III (Coppermine)"},
|
||||||
{ 6, 11, -1, -1, -1, 1, -1, -1, NC, 0 , 0, "Pentium III (Tualatin)" },
|
{ 6, 11, -1, -1, -1, 1, -1, -1, NC, 0 , 0, "Pentium III (Tualatin)" },
|
||||||
{ 6, 11, -1, -1, -1, 1, 512, -1, NC, 0 , 0, "Pentium III (Tualatin)" },
|
{ 6, 11, -1, -1, -1, 1, 512, -1, NC, 0 , 0, "Pentium III (Tualatin)" },
|
||||||
|
|
||||||
{ 6, 7, -1, -1, -1, 1, -1, -1, NC, XEON_ , 0, "P-III Xeon (Tanner)" },
|
{ 6, 7, -1, -1, -1, 1, -1, -1, NC, XEON_ , 0, "P-III Xeon (Tanner)" },
|
||||||
{ 6, 8, -1, -1, -1, 1, -1, -1, NC, XEON_ , 0, "P-III Xeon (Cascades)" },
|
{ 6, 8, -1, -1, -1, 1, -1, -1, NC, XEON_ , 0, "P-III Xeon (Cascades)" },
|
||||||
{ 6, 10, -1, -1, -1, 1, -1, -1, NC, XEON_ , 0, "P-III Xeon (Cascades)" },
|
{ 6, 10, -1, -1, -1, 1, -1, -1, NC, XEON_ , 0, "P-III Xeon (Cascades)" },
|
||||||
{ 6, 11, -1, -1, -1, 1, -1, -1, NC, XEON_ , 0, "P-III Xeon (Tualatin)" },
|
{ 6, 11, -1, -1, -1, 1, -1, -1, NC, XEON_ , 0, "P-III Xeon (Tualatin)" },
|
||||||
|
|
||||||
{ 6, 7, -1, -1, -1, 1, 128, -1, NC, CELERON_ , 0, "P-III Celeron (Katmai)" },
|
{ 6, 7, -1, -1, -1, 1, 128, -1, NC, CELERON_ , 0, "P-III Celeron (Katmai)" },
|
||||||
{ 6, 8, -1, -1, -1, 1, 128, -1, NC, CELERON_ , 0, "P-III Celeron (Coppermine)" },
|
{ 6, 8, -1, -1, -1, 1, 128, -1, NC, CELERON_ , 0, "P-III Celeron (Coppermine)" },
|
||||||
{ 6, 10, -1, -1, -1, 1, 128, -1, NC, CELERON_ , 0, "P-III Celeron (Coppermine)" },
|
{ 6, 10, -1, -1, -1, 1, 128, -1, NC, CELERON_ , 0, "P-III Celeron (Coppermine)" },
|
||||||
|
@ -125,7 +125,7 @@ const struct match_entry_t cpudb_intel[] = {
|
||||||
{ 15, -1, -1, -1, -1, 1, -1, -1, NC, 0 , 0, "Unknown Pentium 4" },
|
{ 15, -1, -1, -1, -1, 1, -1, -1, NC, 0 , 0, "Unknown Pentium 4" },
|
||||||
{ 15, -1, -1, 15, -1, 1, -1, -1, NC, CELERON_ , 0, "Unknown P-4 Celeron" },
|
{ 15, -1, -1, 15, -1, 1, -1, -1, NC, CELERON_ , 0, "Unknown P-4 Celeron" },
|
||||||
{ 15, -1, -1, 15, -1, 1, -1, -1, NC, XEON_ , 0, "Unknown Xeon" },
|
{ 15, -1, -1, 15, -1, 1, -1, -1, NC, XEON_ , 0, "Unknown Xeon" },
|
||||||
|
|
||||||
{ 15, 0, -1, 15, -1, 1, -1, -1, NC, PENTIUM_ , 0, "Pentium 4 (Willamette)" },
|
{ 15, 0, -1, 15, -1, 1, -1, -1, NC, PENTIUM_ , 0, "Pentium 4 (Willamette)" },
|
||||||
{ 15, 1, -1, 15, -1, 1, -1, -1, NC, PENTIUM_ , 0, "Pentium 4 (Willamette)" },
|
{ 15, 1, -1, 15, -1, 1, -1, -1, NC, PENTIUM_ , 0, "Pentium 4 (Willamette)" },
|
||||||
{ 15, 2, -1, 15, -1, 1, -1, -1, NC, PENTIUM_ , 0, "Pentium 4 (Northwood)" },
|
{ 15, 2, -1, 15, -1, 1, -1, -1, NC, PENTIUM_ , 0, "Pentium 4 (Northwood)" },
|
||||||
|
@ -138,7 +138,7 @@ const struct match_entry_t cpudb_intel[] = {
|
||||||
{ 15, 3, -1, 15, -1, 1, -1, -1, NC, MOBILE_|PENTIUM_, 0, "Mobile P-4 (Prescott)" },
|
{ 15, 3, -1, 15, -1, 1, -1, -1, NC, MOBILE_|PENTIUM_, 0, "Mobile P-4 (Prescott)" },
|
||||||
{ 15, 4, -1, 15, -1, 1, -1, -1, NC, MOBILE_|PENTIUM_, 0, "Mobile P-4 (Prescott)" },
|
{ 15, 4, -1, 15, -1, 1, -1, -1, NC, MOBILE_|PENTIUM_, 0, "Mobile P-4 (Prescott)" },
|
||||||
{ 15, 6, -1, 15, -1, 1, -1, -1, NC, MOBILE_|PENTIUM_, 0, "Mobile P-4 (Cedar Mill)" },
|
{ 15, 6, -1, 15, -1, 1, -1, -1, NC, MOBILE_|PENTIUM_, 0, "Mobile P-4 (Cedar Mill)" },
|
||||||
|
|
||||||
/* server CPUs */
|
/* server CPUs */
|
||||||
{ 15, 0, -1, 15, -1, 1, -1, -1, NC, XEON_ , 0, "Xeon (Foster)" },
|
{ 15, 0, -1, 15, -1, 1, -1, -1, NC, XEON_ , 0, "Xeon (Foster)" },
|
||||||
{ 15, 1, -1, 15, -1, 1, -1, -1, NC, XEON_ , 0, "Xeon (Foster)" },
|
{ 15, 1, -1, 15, -1, 1, -1, -1, NC, XEON_ , 0, "Xeon (Foster)" },
|
||||||
|
@ -150,7 +150,7 @@ const struct match_entry_t cpudb_intel[] = {
|
||||||
{ 15, 4, -1, 15, -1, 1, -1, -1, NC, XEON_|_MP_ , 0, "Xeon (Cranford)" },
|
{ 15, 4, -1, 15, -1, 1, -1, -1, NC, XEON_|_MP_ , 0, "Xeon (Cranford)" },
|
||||||
{ 15, 4, -1, 15, -1, 1, -1, -1, POTOMAC, XEON_ , 0, "Xeon (Potomac)" },
|
{ 15, 4, -1, 15, -1, 1, -1, -1, POTOMAC, XEON_ , 0, "Xeon (Potomac)" },
|
||||||
{ 15, 6, -1, 15, -1, 1, -1, -1, NC, XEON_ , 0, "Xeon (Dempsey)" },
|
{ 15, 6, -1, 15, -1, 1, -1, -1, NC, XEON_ , 0, "Xeon (Dempsey)" },
|
||||||
|
|
||||||
/* Pentium Ds */
|
/* Pentium Ds */
|
||||||
{ 15, 4, 4, 15, -1, 1, -1, -1, NC, 0 , 0, "Pentium D (SmithField)" },
|
{ 15, 4, 4, 15, -1, 1, -1, -1, NC, 0 , 0, "Pentium D (SmithField)" },
|
||||||
{ 15, 4, -1, 15, -1, 1, -1, -1, PENTIUM_D, 0 , 0, "Pentium D (SmithField)" },
|
{ 15, 4, -1, 15, -1, 1, -1, -1, PENTIUM_D, 0 , 0, "Pentium D (SmithField)" },
|
||||||
|
@ -163,10 +163,10 @@ const struct match_entry_t cpudb_intel[] = {
|
||||||
{ 15, 3, -1, 15, -1, 1, -1, -1, NC, CELERON_ , 0, "P-4 Celeron D (Prescott)" },
|
{ 15, 3, -1, 15, -1, 1, -1, -1, NC, CELERON_ , 0, "P-4 Celeron D (Prescott)" },
|
||||||
{ 15, 4, -1, 15, -1, 1, -1, -1, NC, CELERON_ , 0, "P-4 Celeron D (Prescott)" },
|
{ 15, 4, -1, 15, -1, 1, -1, -1, NC, CELERON_ , 0, "P-4 Celeron D (Prescott)" },
|
||||||
{ 15, 6, -1, 15, -1, 1, -1, -1, NC, CELERON_ , 0, "P-4 Celeron D (Cedar Mill)" },
|
{ 15, 6, -1, 15, -1, 1, -1, -1, NC, CELERON_ , 0, "P-4 Celeron D (Cedar Mill)" },
|
||||||
|
|
||||||
/* -------------------------------------------------- */
|
/* -------------------------------------------------- */
|
||||||
/* Intel Core microarchitecture - P6-based */
|
/* Intel Core microarchitecture - P6-based */
|
||||||
|
|
||||||
{ 6, 9, -1, -1, -1, 1, -1, -1, NC, 0 , 0, "Unknown Pentium M" },
|
{ 6, 9, -1, -1, -1, 1, -1, -1, NC, 0 , 0, "Unknown Pentium M" },
|
||||||
{ 6, 9, -1, -1, -1, 1, -1, -1, PENTIUM_M, 0 , 0, "Unknown Pentium M" },
|
{ 6, 9, -1, -1, -1, 1, -1, -1, PENTIUM_M, 0 , 0, "Unknown Pentium M" },
|
||||||
{ 6, 9, -1, -1, -1, 1, -1, -1, NC, PENTIUM_ , 0, "Pentium M (Banias)" },
|
{ 6, 9, -1, -1, -1, 1, -1, -1, NC, PENTIUM_ , 0, "Pentium M (Banias)" },
|
||||||
|
@ -175,23 +175,23 @@ const struct match_entry_t cpudb_intel[] = {
|
||||||
{ 6, 13, -1, -1, -1, 1, -1, -1, NC, PENTIUM_ , 0, "Pentium M (Dothan)" },
|
{ 6, 13, -1, -1, -1, 1, -1, -1, NC, PENTIUM_ , 0, "Pentium M (Dothan)" },
|
||||||
{ 6, 13, -1, -1, -1, 1, -1, -1, PENTIUM_M, 0 , 0, "Pentium M (Dothan)" },
|
{ 6, 13, -1, -1, -1, 1, -1, -1, PENTIUM_M, 0 , 0, "Pentium M (Dothan)" },
|
||||||
{ 6, 13, -1, -1, -1, 1, -1, -1, NC, CELERON_ , 0, "Celeron M" },
|
{ 6, 13, -1, -1, -1, 1, -1, -1, NC, CELERON_ , 0, "Celeron M" },
|
||||||
|
|
||||||
{ 6, 12, -1, -1, -1, -1, -1, -1, NC, ATOM_ , 0, "Unknown Atom" },
|
{ 6, 12, -1, -1, -1, -1, -1, -1, NC, ATOM_ , 0, "Unknown Atom" },
|
||||||
{ 6, 12, -1, -1, -1, -1, -1, -1, DIAMONDVILLE,ATOM_, 0, "Atom (Diamondville)" },
|
{ 6, 12, -1, -1, -1, -1, -1, -1, DIAMONDVILLE,ATOM_, 0, "Atom (Diamondville)" },
|
||||||
{ 6, 12, -1, -1, -1, -1, -1, -1, SILVERTHORNE,ATOM_, 0, "Atom (Silverthorne)" },
|
{ 6, 12, -1, -1, -1, -1, -1, -1, SILVERTHORNE,ATOM_, 0, "Atom (Silverthorne)" },
|
||||||
{ 6, 12, -1, -1, -1, -1, -1, -1, CEDARVIEW, ATOM_ , 0, "Atom (Cedarview)" },
|
{ 6, 12, -1, -1, -1, -1, -1, -1, CEDARVIEW, ATOM_ , 0, "Atom (Cedarview)" },
|
||||||
{ 6, 6, -1, -1, -1, -1, -1, -1, CEDARVIEW, ATOM_ , 0, "Atom (Cedarview)" },
|
{ 6, 6, -1, -1, -1, -1, -1, -1, CEDARVIEW, ATOM_ , 0, "Atom (Cedarview)" },
|
||||||
{ 6, 12, -1, -1, -1, -1, -1, -1, PINEVIEW, ATOM_ , 0, "Atom (Pineview)" },
|
{ 6, 12, -1, -1, -1, -1, -1, -1, PINEVIEW, ATOM_ , 0, "Atom (Pineview)" },
|
||||||
|
|
||||||
/* -------------------------------------------------- */
|
/* -------------------------------------------------- */
|
||||||
|
|
||||||
{ 6, 14, -1, -1, -1, 1, -1, -1, NC, 0 , 0, "Unknown Yonah" },
|
{ 6, 14, -1, -1, -1, 1, -1, -1, NC, 0 , 0, "Unknown Yonah" },
|
||||||
{ 6, 14, -1, -1, -1, 1, -1, -1, CORE_SOLO, 0 , 0, "Yonah (Core Solo)" },
|
{ 6, 14, -1, -1, -1, 1, -1, -1, CORE_SOLO, 0 , 0, "Yonah (Core Solo)" },
|
||||||
{ 6, 14, -1, -1, -1, 2, -1, -1, CORE_DUO, 0 , 0, "Yonah (Core Duo)" },
|
{ 6, 14, -1, -1, -1, 2, -1, -1, CORE_DUO, 0 , 0, "Yonah (Core Duo)" },
|
||||||
{ 6, 14, -1, -1, -1, 1, -1, -1, CORE_SOLO, MOBILE_, 0, "Yonah (Core Solo)" },
|
{ 6, 14, -1, -1, -1, 1, -1, -1, CORE_SOLO, MOBILE_, 0, "Yonah (Core Solo)" },
|
||||||
{ 6, 14, -1, -1, -1, 2, -1, -1, CORE_DUO , MOBILE_, 0, "Yonah (Core Duo)" },
|
{ 6, 14, -1, -1, -1, 2, -1, -1, CORE_DUO , MOBILE_, 0, "Yonah (Core Duo)" },
|
||||||
{ 6, 14, -1, -1, -1, 1, -1, -1, CORE_SOLO, 0 , 0, "Yonah (Core Solo)" },
|
{ 6, 14, -1, -1, -1, 1, -1, -1, CORE_SOLO, 0 , 0, "Yonah (Core Solo)" },
|
||||||
|
|
||||||
{ 6, 15, -1, -1, -1, 1, -1, -1, NC, 0 , 0, "Unknown Core 2" },
|
{ 6, 15, -1, -1, -1, 1, -1, -1, NC, 0 , 0, "Unknown Core 2" },
|
||||||
{ 6, 15, -1, -1, -1, 2, 4096, -1, CORE_DUO, 0 , 0, "Conroe (Core 2 Duo)" },
|
{ 6, 15, -1, -1, -1, 2, 4096, -1, CORE_DUO, 0 , 0, "Conroe (Core 2 Duo)" },
|
||||||
{ 6, 15, -1, -1, -1, 2, 1024, -1, CORE_DUO, 0 , 0, "Conroe (Core 2 Duo) 1024K" },
|
{ 6, 15, -1, -1, -1, 2, 1024, -1, CORE_DUO, 0 , 0, "Conroe (Core 2 Duo) 1024K" },
|
||||||
|
@ -203,18 +203,18 @@ const struct match_entry_t cpudb_intel[] = {
|
||||||
{ 6, 15, -1, -1, -1, 2, -1, -1, MOBILE_CORE_DUO, 0, 0, "Merom (Core 2 Duo)" },
|
{ 6, 15, -1, -1, -1, 2, -1, -1, MOBILE_CORE_DUO, 0, 0, "Merom (Core 2 Duo)" },
|
||||||
{ 6, 15, -1, -1, -1, 2, 2048, -1, MEROM, 0 , 0, "Merom (Core 2 Duo) 2048K" },
|
{ 6, 15, -1, -1, -1, 2, 2048, -1, MEROM, 0 , 0, "Merom (Core 2 Duo) 2048K" },
|
||||||
{ 6, 15, -1, -1, -1, 2, 4096, -1, MEROM, 0 , 0, "Merom (Core 2 Duo) 4096K" },
|
{ 6, 15, -1, -1, -1, 2, 4096, -1, MEROM, 0 , 0, "Merom (Core 2 Duo) 4096K" },
|
||||||
|
|
||||||
{ 6, 15, -1, -1, 15, 1, -1, -1, NC, CELERON_ , 0, "Conroe-L (Celeron)" },
|
{ 6, 15, -1, -1, 15, 1, -1, -1, NC, CELERON_ , 0, "Conroe-L (Celeron)" },
|
||||||
{ 6, 6, -1, -1, 22, 1, -1, -1, NC, CELERON_ , 0, "Conroe-L (Celeron)" },
|
{ 6, 6, -1, -1, 22, 1, -1, -1, NC, CELERON_ , 0, "Conroe-L (Celeron)" },
|
||||||
{ 6, 15, -1, -1, 15, 2, -1, -1, NC, CELERON_ , 0, "Conroe-L (Allendale)" },
|
{ 6, 15, -1, -1, 15, 2, -1, -1, NC, CELERON_ , 0, "Conroe-L (Allendale)" },
|
||||||
{ 6, 6, -1, -1, 22, 2, -1, -1, NC, CELERON_ , 0, "Conroe-L (Allendale)" },
|
{ 6, 6, -1, -1, 22, 2, -1, -1, NC, CELERON_ , 0, "Conroe-L (Allendale)" },
|
||||||
|
|
||||||
|
|
||||||
{ 6, 6, -1, -1, 22, 1, -1, -1, NC, 0 , 0, "Unknown Core ?" },
|
{ 6, 6, -1, -1, 22, 1, -1, -1, NC, 0 , 0, "Unknown Core ?" },
|
||||||
{ 6, 7, -1, -1, 23, 1, -1, -1, NC, 0 , 0, "Unknown Core ?" },
|
{ 6, 7, -1, -1, 23, 1, -1, -1, NC, 0 , 0, "Unknown Core ?" },
|
||||||
{ 6, 6, -1, -1, 22, 400, -1, -1, MORE_THAN_QUADCORE, 0, 0, "More than quad-core" },
|
{ 6, 6, -1, -1, 22, 400, -1, -1, MORE_THAN_QUADCORE, 0, 0, "More than quad-core" },
|
||||||
{ 6, 7, -1, -1, 23, 400, -1, -1, MORE_THAN_QUADCORE, 0, 0, "More than quad-core" },
|
{ 6, 7, -1, -1, 23, 400, -1, -1, MORE_THAN_QUADCORE, 0, 0, "More than quad-core" },
|
||||||
|
|
||||||
{ 6, 7, -1, -1, 23, 1, -1, -1, CORE_SOLO , 0, 0, "Unknown Core 45nm" },
|
{ 6, 7, -1, -1, 23, 1, -1, -1, CORE_SOLO , 0, 0, "Unknown Core 45nm" },
|
||||||
{ 6, 7, -1, -1, 23, 1, -1, -1, CORE_DUO , 0, 0, "Unknown Core 45nm" },
|
{ 6, 7, -1, -1, 23, 1, -1, -1, CORE_DUO , 0, 0, "Unknown Core 45nm" },
|
||||||
{ 6, 7, -1, -1, 23, 2, 1024, -1, WOLFDALE , 0, 0, "Celeron Wolfdale 1M" },
|
{ 6, 7, -1, -1, 23, 2, 1024, -1, WOLFDALE , 0, 0, "Celeron Wolfdale 1M" },
|
||||||
|
@ -228,7 +228,7 @@ const struct match_entry_t cpudb_intel[] = {
|
||||||
{ 6, 7, -1, -1, 23, 4, 2048, -1, NC , 0, 0, "Yorkfield (Core 2 Quad) 2M"},
|
{ 6, 7, -1, -1, 23, 4, 2048, -1, NC , 0, 0, "Yorkfield (Core 2 Quad) 2M"},
|
||||||
{ 6, 7, -1, -1, 23, 4, 3072, -1, NC , 0, 0, "Yorkfield (Core 2 Quad) 3M"},
|
{ 6, 7, -1, -1, 23, 4, 3072, -1, NC , 0, 0, "Yorkfield (Core 2 Quad) 3M"},
|
||||||
{ 6, 7, -1, -1, 23, 4, 6144, -1, NC , 0, 0, "Yorkfield (Core 2 Quad) 6M"},
|
{ 6, 7, -1, -1, 23, 4, 6144, -1, NC , 0, 0, "Yorkfield (Core 2 Quad) 6M"},
|
||||||
|
|
||||||
/* Core microarchitecture-based Xeons: */
|
/* Core microarchitecture-based Xeons: */
|
||||||
{ 6, 14, -1, -1, 14, 1, -1, -1, NC, XEON_ , 0, "Xeon LV" },
|
{ 6, 14, -1, -1, 14, 1, -1, -1, NC, XEON_ , 0, "Xeon LV" },
|
||||||
{ 6, 15, -1, -1, 15, 2, 4096, -1, NC, XEON_ , _5100, "Xeon (Woodcrest)" },
|
{ 6, 15, -1, -1, 15, 2, 4096, -1, NC, XEON_ , _5100, "Xeon (Woodcrest)" },
|
||||||
|
@ -285,7 +285,7 @@ const struct match_entry_t cpudb_intel[] = {
|
||||||
{ 6, 10, -1, -1, 58, 1, -1, -1, NC, CELERON_ , 0, "Ivy Bridge (Celeron)" },
|
{ 6, 10, -1, -1, 58, 1, -1, -1, NC, CELERON_ , 0, "Ivy Bridge (Celeron)" },
|
||||||
{ 6, 10, -1, -1, 58, 2, -1, -1, NC, CELERON_ , 0, "Ivy Bridge (Celeron)" },
|
{ 6, 10, -1, -1, 58, 2, -1, -1, NC, CELERON_ , 0, "Ivy Bridge (Celeron)" },
|
||||||
{ 6, 14, -1, -1, 62, -1, -1, -1, NC, 0 , 0, "Ivy Bridge-E" },
|
{ 6, 14, -1, -1, 62, -1, -1, -1, NC, 0 , 0, "Ivy Bridge-E" },
|
||||||
|
|
||||||
/* Haswell CPUs (4th gen, 22nm): */
|
/* Haswell CPUs (4th gen, 22nm): */
|
||||||
{ 6, 12, -1, -1, 60, -1, -1, -1, NC, XEON_ , 0, "Haswell (Xeon)" },
|
{ 6, 12, -1, -1, 60, -1, -1, -1, NC, XEON_ , 0, "Haswell (Xeon)" },
|
||||||
{ 6, 12, -1, -1, 60, 4, -1, -1, NC, CORE_|_I_|_7 , 0, "Haswell (Core i7)" },
|
{ 6, 12, -1, -1, 60, 4, -1, -1, NC, CORE_|_I_|_7 , 0, "Haswell (Core i7)" },
|
||||||
|
@ -369,7 +369,7 @@ const struct match_entry_t cpudb_intel[] = {
|
||||||
{ 6, 14, 12, -1, 158, 8, -1, -1, NC, CORE_|_I_|_7 , 0, "Coffee Lake-R (Core i7)" },
|
{ 6, 14, 12, -1, 158, 8, -1, -1, NC, CORE_|_I_|_7 , 0, "Coffee Lake-R (Core i7)" },
|
||||||
{ 6, 14, 13, -1, 158, 6, -1, -1, NC, CORE_|_I_|_5 , 0, "Coffee Lake-R (Core i5)" },
|
{ 6, 14, 13, -1, 158, 6, -1, -1, NC, CORE_|_I_|_5 , 0, "Coffee Lake-R (Core i5)" },
|
||||||
{ 6, 14, 11, -1, 158, 4, -1, -1, NC, CORE_|_I_|_3 , 0, "Coffee Lake-R (Core i3)" },
|
{ 6, 14, 11, -1, 158, 4, -1, -1, NC, CORE_|_I_|_3 , 0, "Coffee Lake-R (Core i3)" },
|
||||||
|
|
||||||
/* Comet Lake CPUs (10th gen, 14nm): */
|
/* Comet Lake CPUs (10th gen, 14nm): */
|
||||||
{ 6, 5, -1, -1, 165, 10, -1, -1, NC, CORE_|_I_|_9 , 0, "Comet Lake (Core i9)" },
|
{ 6, 5, -1, -1, 165, 10, -1, -1, NC, CORE_|_I_|_9 , 0, "Comet Lake (Core i9)" },
|
||||||
{ 6, 5, -1, -1, 165, 8, -1, -1, NC, CORE_|_I_|_7 , 0, "Comet Lake (Core i7)" },
|
{ 6, 5, -1, -1, 165, 8, -1, -1, NC, CORE_|_I_|_7 , 0, "Comet Lake (Core i7)" },
|
||||||
|
@ -502,7 +502,7 @@ static void decode_intel_oldstyle_cache_info(struct cpu_raw_data_t* raw, struct
|
||||||
x >>= 8;
|
x >>= 8;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
check_case(f[0x06], L1I, 8, 4, 32, data);
|
check_case(f[0x06], L1I, 8, 4, 32, data);
|
||||||
check_case(f[0x08], L1I, 16, 4, 32, data);
|
check_case(f[0x08], L1I, 16, 4, 32, data);
|
||||||
check_case(f[0x0A], L1D, 8, 2, 32, data);
|
check_case(f[0x0A], L1D, 8, 2, 32, data);
|
||||||
|
@ -542,7 +542,7 @@ static void decode_intel_oldstyle_cache_info(struct cpu_raw_data_t* raw, struct
|
||||||
check_case(f[0x71], L1I, 16, 8, -1, data);
|
check_case(f[0x71], L1I, 16, 8, -1, data);
|
||||||
check_case(f[0x72], L1I, 32, 8, -1, data);
|
check_case(f[0x72], L1I, 32, 8, -1, data);
|
||||||
check_case(f[0x73], L1I, 64, 8, -1, data);
|
check_case(f[0x73], L1I, 64, 8, -1, data);
|
||||||
|
|
||||||
check_case(f[0x78], L2, 1024, 4, 64, data);
|
check_case(f[0x78], L2, 1024, 4, 64, data);
|
||||||
check_case(f[0x79], L2, 128, 8, 64, data);
|
check_case(f[0x79], L2, 128, 8, 64, data);
|
||||||
check_case(f[0x7A], L2, 256, 8, 64, data);
|
check_case(f[0x7A], L2, 256, 8, 64, data);
|
||||||
|
@ -556,7 +556,7 @@ static void decode_intel_oldstyle_cache_info(struct cpu_raw_data_t* raw, struct
|
||||||
check_case(f[0x85], L2, 2048, 8, 32, data);
|
check_case(f[0x85], L2, 2048, 8, 32, data);
|
||||||
check_case(f[0x86], L2, 512, 4, 64, data);
|
check_case(f[0x86], L2, 512, 4, 64, data);
|
||||||
check_case(f[0x87], L2, 1024, 8, 64, data);
|
check_case(f[0x87], L2, 1024, 8, 64, data);
|
||||||
|
|
||||||
if (f[0x49]) {
|
if (f[0x49]) {
|
||||||
/* This flag is overloaded with two meanings. On Xeon MP
|
/* This flag is overloaded with two meanings. On Xeon MP
|
||||||
* (family 0xf, model 0x6) this means L3 cache. On all other
|
* (family 0xf, model 0x6) this means L3 cache. On all other
|
||||||
|
@ -651,11 +651,11 @@ static void decode_intel_number_of_cores(struct cpu_raw_data_t* raw,
|
||||||
struct cpu_id_t* data)
|
struct cpu_id_t* data)
|
||||||
{
|
{
|
||||||
int logical_cpus = -1, num_cores = -1;
|
int logical_cpus = -1, num_cores = -1;
|
||||||
|
|
||||||
if (raw->basic_cpuid[0][0] >= 11) {
|
if (raw->basic_cpuid[0][0] >= 11) {
|
||||||
if (decode_intel_extended_topology(raw, data)) return;
|
if (decode_intel_extended_topology(raw, data)) return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (raw->basic_cpuid[0][0] >= 1) {
|
if (raw->basic_cpuid[0][0] >= 1) {
|
||||||
logical_cpus = (raw->basic_cpuid[1][1] >> 16) & 0xff;
|
logical_cpus = (raw->basic_cpuid[1][1] >> 16) & 0xff;
|
||||||
if (raw->basic_cpuid[0][0] >= 4) {
|
if (raw->basic_cpuid[0][0] >= 4) {
|
||||||
|
@ -697,7 +697,7 @@ static intel_code_and_bits_t get_brand_code_and_bits(struct cpu_id_t* data)
|
||||||
{ PINEVIEW, "CPU [ND][45]## " },
|
{ PINEVIEW, "CPU [ND][45]## " },
|
||||||
{ CEDARVIEW, "CPU [ND]#### " },
|
{ CEDARVIEW, "CPU [ND]#### " },
|
||||||
};
|
};
|
||||||
|
|
||||||
const struct { uint64_t bit; const char* search; } bit_matchtable[] = {
|
const struct { uint64_t bit; const char* search; } bit_matchtable[] = {
|
||||||
{ XEON_, "Xeon" },
|
{ XEON_, "Xeon" },
|
||||||
{ _MP_, " MP" },
|
{ _MP_, " MP" },
|
||||||
|
@ -706,12 +706,12 @@ static intel_code_and_bits_t get_brand_code_and_bits(struct cpu_id_t* data)
|
||||||
{ CELERON_, "Celeron" },
|
{ CELERON_, "Celeron" },
|
||||||
{ PENTIUM_, "Pentium" },
|
{ PENTIUM_, "Pentium" },
|
||||||
};
|
};
|
||||||
|
|
||||||
for (i = 0; i < COUNT_OF(bit_matchtable); i++) {
|
for (i = 0; i < COUNT_OF(bit_matchtable); i++) {
|
||||||
if (match_pattern(bs, bit_matchtable[i].search))
|
if (match_pattern(bs, bit_matchtable[i].search))
|
||||||
bits |= bit_matchtable[i].bit;
|
bits |= bit_matchtable[i].bit;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((i = match_pattern(bs, "Core(TM) [im][3579]")) != 0) {
|
if ((i = match_pattern(bs, "Core(TM) [im][3579]")) != 0) {
|
||||||
bits |= CORE_;
|
bits |= CORE_;
|
||||||
i--;
|
i--;
|
||||||
|
@ -775,7 +775,7 @@ static intel_code_and_bits_t get_brand_code_and_bits(struct cpu_id_t* data)
|
||||||
code = MORE_THAN_QUADCORE; break;
|
code = MORE_THAN_QUADCORE; break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (code == CORE_DUO && (bits & MOBILE_) && data->model != 14) {
|
if (code == CORE_DUO && (bits & MOBILE_) && data->model != 14) {
|
||||||
if (data->ext_model < 23) {
|
if (data->ext_model < 23) {
|
||||||
code = MEROM;
|
code = MEROM;
|
||||||
|
@ -807,7 +807,7 @@ static intel_model_t get_model_code(struct cpu_id_t* data)
|
||||||
if (bs[i] == '3') return _3xxx;
|
if (bs[i] == '3') return _3xxx;
|
||||||
return UNKNOWN;
|
return UNKNOWN;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* For Core2-based Xeons: */
|
/* For Core2-based Xeons: */
|
||||||
while (i < l - 3) {
|
while (i < l - 3) {
|
||||||
if (bs[i] == 'C' && bs[i+1] == 'P' && bs[i+2] == 'U')
|
if (bs[i] == 'C' && bs[i+1] == 'P' && bs[i+2] == 'U')
|
||||||
|
@ -856,10 +856,10 @@ static void decode_intel_sgx_features(const struct cpu_raw_data_t* raw, struct c
|
||||||
{
|
{
|
||||||
struct cpu_epc_t epc;
|
struct cpu_epc_t epc;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
if (raw->basic_cpuid[0][0] < 0x12) return; // no 12h leaf
|
if (raw->basic_cpuid[0][0] < 0x12) return; // no 12h leaf
|
||||||
if (raw->basic_cpuid[0x12][0] == 0) return; // no sub-leafs available, probably it's disabled by BIOS
|
if (raw->basic_cpuid[0x12][0] == 0) return; // no sub-leafs available, probably it's disabled by BIOS
|
||||||
|
|
||||||
// decode sub-leaf 0:
|
// decode sub-leaf 0:
|
||||||
if (raw->basic_cpuid[0x12][0] & 1) data->sgx.flags[INTEL_SGX1] = 1;
|
if (raw->basic_cpuid[0x12][0] & 1) data->sgx.flags[INTEL_SGX1] = 1;
|
||||||
if (raw->basic_cpuid[0x12][0] & 2) data->sgx.flags[INTEL_SGX2] = 1;
|
if (raw->basic_cpuid[0x12][0] & 2) data->sgx.flags[INTEL_SGX2] = 1;
|
||||||
|
@ -868,11 +868,11 @@ static void decode_intel_sgx_features(const struct cpu_raw_data_t* raw, struct c
|
||||||
data->sgx.misc_select = raw->basic_cpuid[0x12][1];
|
data->sgx.misc_select = raw->basic_cpuid[0x12][1];
|
||||||
data->sgx.max_enclave_32bit = (raw->basic_cpuid[0x12][3] ) & 0xff;
|
data->sgx.max_enclave_32bit = (raw->basic_cpuid[0x12][3] ) & 0xff;
|
||||||
data->sgx.max_enclave_64bit = (raw->basic_cpuid[0x12][3] >> 8) & 0xff;
|
data->sgx.max_enclave_64bit = (raw->basic_cpuid[0x12][3] >> 8) & 0xff;
|
||||||
|
|
||||||
// decode sub-leaf 1:
|
// decode sub-leaf 1:
|
||||||
data->sgx.secs_attributes = raw->intel_fn12h[1][0] | (((uint64_t) raw->intel_fn12h[1][1]) << 32);
|
data->sgx.secs_attributes = raw->intel_fn12h[1][0] | (((uint64_t) raw->intel_fn12h[1][1]) << 32);
|
||||||
data->sgx.secs_xfrm = raw->intel_fn12h[1][2] | (((uint64_t) raw->intel_fn12h[1][3]) << 32);
|
data->sgx.secs_xfrm = raw->intel_fn12h[1][2] | (((uint64_t) raw->intel_fn12h[1][3]) << 32);
|
||||||
|
|
||||||
// decode higher-order subleafs, whenever present:
|
// decode higher-order subleafs, whenever present:
|
||||||
data->sgx.num_epc_sections = -1;
|
data->sgx.num_epc_sections = -1;
|
||||||
for (i = 0; i < 1000000; i++) {
|
for (i = 0; i < 1000000; i++) {
|
||||||
|
@ -903,7 +903,7 @@ struct cpu_epc_t cpuid_get_epc(int index, const struct cpu_raw_data_t* raw)
|
||||||
regs[1] = regs[3] = 0;
|
regs[1] = regs[3] = 0;
|
||||||
cpu_exec_cpuid_ext(regs);
|
cpu_exec_cpuid_ext(regs);
|
||||||
}
|
}
|
||||||
|
|
||||||
// decode values:
|
// decode values:
|
||||||
if ((regs[0] & 0xf) == 0x1) {
|
if ((regs[0] & 0xf) == 0x1) {
|
||||||
retval.start_addr |= (regs[0] & 0xfffff000); // bits [12, 32) -> bits [12, 32)
|
retval.start_addr |= (regs[0] & 0xfffff000); // bits [12, 32) -> bits [12, 32)
|
||||||
|
@ -947,10 +947,10 @@ int cpuid_identify_intel(struct cpu_raw_data_t* raw, struct cpu_id_t* data, stru
|
||||||
debug_print_lbits(2, brand.bits);
|
debug_print_lbits(2, brand.bits);
|
||||||
}
|
}
|
||||||
debugf(2, "Detected Intel model code: %d\n", model_code);
|
debugf(2, "Detected Intel model code: %d\n", model_code);
|
||||||
|
|
||||||
internal->code.intel = brand.code;
|
internal->code.intel = brand.code;
|
||||||
internal->bits = brand.bits;
|
internal->bits = brand.bits;
|
||||||
|
|
||||||
if (data->flags[CPU_FEATURE_SGX]) {
|
if (data->flags[CPU_FEATURE_SGX]) {
|
||||||
debugf(2, "SGX seems to be present, decoding...\n");
|
debugf(2, "SGX seems to be present, decoding...\n");
|
||||||
// if SGX is indicated by the CPU, verify its presence:
|
// if SGX is indicated by the CPU, verify its presence:
|
||||||
|
|
|
@ -1,45 +1,45 @@
|
||||||
Microsoft Visual Studio Solution File, Format Version 11.00
|
Microsoft Visual Studio Solution File, Format Version 11.00
|
||||||
# Visual Studio 2010
|
# Visual Studio 2010
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libcpuid", "libcpuid\libcpuid_vc10.vcxproj", "{92BDBA37-96E3-4D85-B762-185E4407BB49}"
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libcpuid", "libcpuid\libcpuid_vc10.vcxproj", "{92BDBA37-96E3-4D85-B762-185E4407BB49}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cpuid_tool", "cpuid_tool\cpuid_tool_vc10.vcxproj", "{854A36FB-EA23-4165-9110-A55EB97C6377}"
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cpuid_tool", "cpuid_tool\cpuid_tool_vc10.vcxproj", "{854A36FB-EA23-4165-9110-A55EB97C6377}"
|
||||||
EndProject
|
EndProject
|
||||||
Global
|
Global
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
Debug|Win32 = Debug|Win32
|
Debug|Win32 = Debug|Win32
|
||||||
Debug|x64 = Debug|x64
|
Debug|x64 = Debug|x64
|
||||||
Release|Win32 = Release|Win32
|
Release|Win32 = Release|Win32
|
||||||
Release|x64 = Release|x64
|
Release|x64 = Release|x64
|
||||||
ReleaseDLL|Win32 = ReleaseDLL|Win32
|
ReleaseDLL|Win32 = ReleaseDLL|Win32
|
||||||
ReleaseDLL|x64 = ReleaseDLL|x64
|
ReleaseDLL|x64 = ReleaseDLL|x64
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||||
{92BDBA37-96E3-4D85-B762-185E4407BB49}.Debug|Win32.ActiveCfg = Debug|Win32
|
{92BDBA37-96E3-4D85-B762-185E4407BB49}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||||
{92BDBA37-96E3-4D85-B762-185E4407BB49}.Debug|Win32.Build.0 = Debug|Win32
|
{92BDBA37-96E3-4D85-B762-185E4407BB49}.Debug|Win32.Build.0 = Debug|Win32
|
||||||
{92BDBA37-96E3-4D85-B762-185E4407BB49}.Debug|x64.ActiveCfg = Debug|x64
|
{92BDBA37-96E3-4D85-B762-185E4407BB49}.Debug|x64.ActiveCfg = Debug|x64
|
||||||
{92BDBA37-96E3-4D85-B762-185E4407BB49}.Debug|x64.Build.0 = Debug|x64
|
{92BDBA37-96E3-4D85-B762-185E4407BB49}.Debug|x64.Build.0 = Debug|x64
|
||||||
{92BDBA37-96E3-4D85-B762-185E4407BB49}.Release|Win32.ActiveCfg = Release|Win32
|
{92BDBA37-96E3-4D85-B762-185E4407BB49}.Release|Win32.ActiveCfg = Release|Win32
|
||||||
{92BDBA37-96E3-4D85-B762-185E4407BB49}.Release|Win32.Build.0 = Release|Win32
|
{92BDBA37-96E3-4D85-B762-185E4407BB49}.Release|Win32.Build.0 = Release|Win32
|
||||||
{92BDBA37-96E3-4D85-B762-185E4407BB49}.Release|x64.ActiveCfg = Release|x64
|
{92BDBA37-96E3-4D85-B762-185E4407BB49}.Release|x64.ActiveCfg = Release|x64
|
||||||
{92BDBA37-96E3-4D85-B762-185E4407BB49}.Release|x64.Build.0 = Release|x64
|
{92BDBA37-96E3-4D85-B762-185E4407BB49}.Release|x64.Build.0 = Release|x64
|
||||||
{92BDBA37-96E3-4D85-B762-185E4407BB49}.ReleaseDLL|Win32.ActiveCfg = ReleaseDLL|Win32
|
{92BDBA37-96E3-4D85-B762-185E4407BB49}.ReleaseDLL|Win32.ActiveCfg = ReleaseDLL|Win32
|
||||||
{92BDBA37-96E3-4D85-B762-185E4407BB49}.ReleaseDLL|Win32.Build.0 = ReleaseDLL|Win32
|
{92BDBA37-96E3-4D85-B762-185E4407BB49}.ReleaseDLL|Win32.Build.0 = ReleaseDLL|Win32
|
||||||
{92BDBA37-96E3-4D85-B762-185E4407BB49}.ReleaseDLL|x64.ActiveCfg = ReleaseDLL|x64
|
{92BDBA37-96E3-4D85-B762-185E4407BB49}.ReleaseDLL|x64.ActiveCfg = ReleaseDLL|x64
|
||||||
{92BDBA37-96E3-4D85-B762-185E4407BB49}.ReleaseDLL|x64.Build.0 = ReleaseDLL|x64
|
{92BDBA37-96E3-4D85-B762-185E4407BB49}.ReleaseDLL|x64.Build.0 = ReleaseDLL|x64
|
||||||
{854A36FB-EA23-4165-9110-A55EB97C6377}.Debug|Win32.ActiveCfg = Debug|Win32
|
{854A36FB-EA23-4165-9110-A55EB97C6377}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||||
{854A36FB-EA23-4165-9110-A55EB97C6377}.Debug|Win32.Build.0 = Debug|Win32
|
{854A36FB-EA23-4165-9110-A55EB97C6377}.Debug|Win32.Build.0 = Debug|Win32
|
||||||
{854A36FB-EA23-4165-9110-A55EB97C6377}.Debug|x64.ActiveCfg = Debug|x64
|
{854A36FB-EA23-4165-9110-A55EB97C6377}.Debug|x64.ActiveCfg = Debug|x64
|
||||||
{854A36FB-EA23-4165-9110-A55EB97C6377}.Debug|x64.Build.0 = Debug|x64
|
{854A36FB-EA23-4165-9110-A55EB97C6377}.Debug|x64.Build.0 = Debug|x64
|
||||||
{854A36FB-EA23-4165-9110-A55EB97C6377}.Release|Win32.ActiveCfg = Release|Win32
|
{854A36FB-EA23-4165-9110-A55EB97C6377}.Release|Win32.ActiveCfg = Release|Win32
|
||||||
{854A36FB-EA23-4165-9110-A55EB97C6377}.Release|Win32.Build.0 = Release|Win32
|
{854A36FB-EA23-4165-9110-A55EB97C6377}.Release|Win32.Build.0 = Release|Win32
|
||||||
{854A36FB-EA23-4165-9110-A55EB97C6377}.Release|x64.ActiveCfg = Release|x64
|
{854A36FB-EA23-4165-9110-A55EB97C6377}.Release|x64.ActiveCfg = Release|x64
|
||||||
{854A36FB-EA23-4165-9110-A55EB97C6377}.Release|x64.Build.0 = Release|x64
|
{854A36FB-EA23-4165-9110-A55EB97C6377}.Release|x64.Build.0 = Release|x64
|
||||||
{854A36FB-EA23-4165-9110-A55EB97C6377}.ReleaseDLL|Win32.ActiveCfg = ReleaseDLL|Win32
|
{854A36FB-EA23-4165-9110-A55EB97C6377}.ReleaseDLL|Win32.ActiveCfg = ReleaseDLL|Win32
|
||||||
{854A36FB-EA23-4165-9110-A55EB97C6377}.ReleaseDLL|Win32.Build.0 = ReleaseDLL|Win32
|
{854A36FB-EA23-4165-9110-A55EB97C6377}.ReleaseDLL|Win32.Build.0 = ReleaseDLL|Win32
|
||||||
{854A36FB-EA23-4165-9110-A55EB97C6377}.ReleaseDLL|x64.ActiveCfg = ReleaseDLL|x64
|
{854A36FB-EA23-4165-9110-A55EB97C6377}.ReleaseDLL|x64.ActiveCfg = ReleaseDLL|x64
|
||||||
{854A36FB-EA23-4165-9110-A55EB97C6377}.ReleaseDLL|x64.Build.0 = ReleaseDLL|x64
|
{854A36FB-EA23-4165-9110-A55EB97C6377}.ReleaseDLL|x64.Build.0 = ReleaseDLL|x64
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
GlobalSection(SolutionProperties) = preSolution
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
HideSolutionNode = FALSE
|
HideSolutionNode = FALSE
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
EndGlobal
|
EndGlobal
|
||||||
|
|
|
@ -1,35 +1,35 @@
|
||||||
Microsoft Visual Studio Solution File, Format Version 8.00
|
Microsoft Visual Studio Solution File, Format Version 8.00
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libcpuid", "libcpuid\libcpuid_vc71.vcproj", "{A517C21D-1467-41B4-966A-7C7FC5E99D62}"
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libcpuid", "libcpuid\libcpuid_vc71.vcproj", "{A517C21D-1467-41B4-966A-7C7FC5E99D62}"
|
||||||
ProjectSection(ProjectDependencies) = postProject
|
ProjectSection(ProjectDependencies) = postProject
|
||||||
EndProjectSection
|
EndProjectSection
|
||||||
EndProject
|
EndProject
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cpuid_tool", "cpuid_tool\cpuid_tool_vc71.vcproj", "{DD903FEE-4A59-4307-8DE2-0F777DC21FFE}"
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cpuid_tool", "cpuid_tool\cpuid_tool_vc71.vcproj", "{DD903FEE-4A59-4307-8DE2-0F777DC21FFE}"
|
||||||
ProjectSection(ProjectDependencies) = postProject
|
ProjectSection(ProjectDependencies) = postProject
|
||||||
{A517C21D-1467-41B4-966A-7C7FC5E99D62} = {A517C21D-1467-41B4-966A-7C7FC5E99D62}
|
{A517C21D-1467-41B4-966A-7C7FC5E99D62} = {A517C21D-1467-41B4-966A-7C7FC5E99D62}
|
||||||
EndProjectSection
|
EndProjectSection
|
||||||
EndProject
|
EndProject
|
||||||
Global
|
Global
|
||||||
GlobalSection(SolutionConfiguration) = preSolution
|
GlobalSection(SolutionConfiguration) = preSolution
|
||||||
Debug = Debug
|
Debug = Debug
|
||||||
Release = Release
|
Release = Release
|
||||||
Release DLL = Release DLL
|
Release DLL = Release DLL
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
GlobalSection(ProjectConfiguration) = postSolution
|
GlobalSection(ProjectConfiguration) = postSolution
|
||||||
{A517C21D-1467-41B4-966A-7C7FC5E99D62}.Debug.ActiveCfg = Debug|Win32
|
{A517C21D-1467-41B4-966A-7C7FC5E99D62}.Debug.ActiveCfg = Debug|Win32
|
||||||
{A517C21D-1467-41B4-966A-7C7FC5E99D62}.Debug.Build.0 = Debug|Win32
|
{A517C21D-1467-41B4-966A-7C7FC5E99D62}.Debug.Build.0 = Debug|Win32
|
||||||
{A517C21D-1467-41B4-966A-7C7FC5E99D62}.Release.ActiveCfg = Release|Win32
|
{A517C21D-1467-41B4-966A-7C7FC5E99D62}.Release.ActiveCfg = Release|Win32
|
||||||
{A517C21D-1467-41B4-966A-7C7FC5E99D62}.Release.Build.0 = Release|Win32
|
{A517C21D-1467-41B4-966A-7C7FC5E99D62}.Release.Build.0 = Release|Win32
|
||||||
{A517C21D-1467-41B4-966A-7C7FC5E99D62}.Release DLL.ActiveCfg = Release DLL|Win32
|
{A517C21D-1467-41B4-966A-7C7FC5E99D62}.Release DLL.ActiveCfg = Release DLL|Win32
|
||||||
{A517C21D-1467-41B4-966A-7C7FC5E99D62}.Release DLL.Build.0 = Release DLL|Win32
|
{A517C21D-1467-41B4-966A-7C7FC5E99D62}.Release DLL.Build.0 = Release DLL|Win32
|
||||||
{DD903FEE-4A59-4307-8DE2-0F777DC21FFE}.Debug.ActiveCfg = Debug|Win32
|
{DD903FEE-4A59-4307-8DE2-0F777DC21FFE}.Debug.ActiveCfg = Debug|Win32
|
||||||
{DD903FEE-4A59-4307-8DE2-0F777DC21FFE}.Debug.Build.0 = Debug|Win32
|
{DD903FEE-4A59-4307-8DE2-0F777DC21FFE}.Debug.Build.0 = Debug|Win32
|
||||||
{DD903FEE-4A59-4307-8DE2-0F777DC21FFE}.Release.ActiveCfg = Release|Win32
|
{DD903FEE-4A59-4307-8DE2-0F777DC21FFE}.Release.ActiveCfg = Release|Win32
|
||||||
{DD903FEE-4A59-4307-8DE2-0F777DC21FFE}.Release.Build.0 = Release|Win32
|
{DD903FEE-4A59-4307-8DE2-0F777DC21FFE}.Release.Build.0 = Release|Win32
|
||||||
{DD903FEE-4A59-4307-8DE2-0F777DC21FFE}.Release DLL.ActiveCfg = Release DLL|Win32
|
{DD903FEE-4A59-4307-8DE2-0F777DC21FFE}.Release DLL.ActiveCfg = Release DLL|Win32
|
||||||
{DD903FEE-4A59-4307-8DE2-0F777DC21FFE}.Release DLL.Build.0 = Release DLL|Win32
|
{DD903FEE-4A59-4307-8DE2-0F777DC21FFE}.Release DLL.Build.0 = Release DLL|Win32
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
GlobalSection(ExtensibilityAddIns) = postSolution
|
GlobalSection(ExtensibilityAddIns) = postSolution
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
EndGlobal
|
EndGlobal
|
||||||
|
|
|
@ -62,7 +62,7 @@ int main(int argc, char *argv[])
|
||||||
fclose(fout);
|
fclose(fout);
|
||||||
snprintf(cmd, CMD_LEN, "cpuid_tool --load=%s --report --outfile=%s", raw_filename, report_filename);
|
snprintf(cmd, CMD_LEN, "cpuid_tool --load=%s --report --outfile=%s", raw_filename, report_filename);
|
||||||
system(cmd);
|
system(cmd);
|
||||||
|
|
||||||
/* Invoke create_test */
|
/* Invoke create_test */
|
||||||
snprintf(cmd, CMD_LEN, "./create_test.py %s %s > %s.test", raw_filename, report_filename, output_filename);
|
snprintf(cmd, CMD_LEN, "./create_test.py %s %s > %s.test", raw_filename, report_filename, output_filename);
|
||||||
if((argc > 3) && !strcmp(argv[3], "--create"))
|
if((argc > 3) && !strcmp(argv[3], "--create"))
|
||||||
|
|
|
@ -101,7 +101,7 @@ def do_test(inp, expected_out, binary, test_file_name):
|
||||||
fixFile(test_file_name, inp, real_out)
|
fixFile(test_file_name, inp, real_out)
|
||||||
return "Mismatch, fixed."
|
return "Mismatch, fixed."
|
||||||
else:
|
else:
|
||||||
return "Mismatch in fields:\n%s" % "\n".join([fmt_error(err) for err in err_fields])
|
return "Mismatch in fields:\n%s" % "\n".join([fmt_error(err) for err in err_fields])
|
||||||
|
|
||||||
errors = False
|
errors = False
|
||||||
print "Testing..."
|
print "Testing..."
|
||||||
|
|
Loading…
Reference in a new issue