Skip to content
A simple CPUID decoder/dumper for x86/x86_64
C Makefile Perl Other
Branch: master
Clone or download
tycho handlers: add missing newlines for hyperv VMCS version printouts
Signed-off-by: Steven Noonan <steven@uplinklabs.net>
Latest commit 67068b5 Aug 4, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.travis travis: don't depend on gcc-c++ Jun 11, 2019
getopt add NO_GNU_GETOPT make flag, fix GCC warnings Jul 31, 2011
msvc windows: implement runtime detection for Windows 7+ Oct 5, 2018
tools CPUID v1.7.3 Jun 11, 2019
.gitignore msvc: upgrade project to Visual Studio 2013 Sep 26, 2018
.travis.yml travis: build using docker to get newer build environments Jun 11, 2019
COPYING bump copyright date to 2018 Jan 18, 2018
COPYING.asc bump copyright date to 2018 Jan 18, 2018
CPUID.sln msvc: upgrade project to Visual Studio 2013 Sep 26, 2018
GNUmakefile GNUmakefile: detect MSYS in uname as well Mar 26, 2018
README.md convert README to markdown syntax Oct 15, 2017
TODO TODO: add possible explanation for "bug" Sep 5, 2018
cache.c add vim modelines for formatting consistency Oct 5, 2018
cache.h add vim modelines for formatting consistency Oct 5, 2018
clock.c add vim modelines for formatting consistency Oct 5, 2018
clock.h add vim modelines for formatting consistency Oct 5, 2018
cpuid.c add vim modelines for formatting consistency Oct 5, 2018
cpuid.h add vim modelines for formatting consistency Oct 5, 2018
feature.c Add detection of MD_CLEAR support May 17, 2019
feature.h add vim modelines for formatting consistency Oct 5, 2018
handlers.c handlers: add missing newlines for hyperv VMCS version printouts Aug 3, 2019
handlers.h add vim modelines for formatting consistency Oct 5, 2018
main.c windows: implement runtime detection for Windows 7+ Oct 5, 2018
meson.build meson.build: added to repository Feb 20, 2018
platform.h add vim modelines for formatting consistency Oct 5, 2018
prefix.h windows: implement runtime detection for Windows 7+ Oct 5, 2018
sanity.c add vim modelines for formatting consistency Oct 5, 2018
sanity.h add vim modelines for formatting consistency Oct 5, 2018
state.h windows: implement runtime detection for Windows 7+ Oct 5, 2018
threads.c windows: implement runtime detection for Windows 7+ Oct 5, 2018
threads.h windows: implement runtime detection for Windows 7+ Oct 5, 2018
util.c windows: implement runtime detection for Windows 7+ Oct 5, 2018
util.h windows: implement runtime detection for Windows 7+ Oct 5, 2018
vendor.h add vim modelines for formatting consistency Oct 5, 2018
version.c add vim modelines for formatting consistency Oct 5, 2018
version.h add vim modelines for formatting consistency Oct 5, 2018

README.md

"cpuid" is a very simple C program, designed to dump and extract information from the x86 CPUID instruction.

cpuid is capable of dumping all CPUID leaves (except any unknown leaves which require special ECX values to dump all information). cpuid can only decode certain leaves, but this functionality will be expanded as the CPUID specifications provided by AMD and Intel change.

Building

The build process is simplified compared to a plethora of other open source projects out there. You don't need autoconf/automake or any of the headaches that go along with those tools.

Required:

  • C compiler (GNU C Compiler, Microsoft Visual C++, and the Intel C++ Compiler are known to work)
  • Perl 5.8 or later

And one of:

  • GNU Make 3.80 or later
  • SCons 2.0 or later

Depending on whether you have GNU Make or SCons, do one of:

$ scons

or

$ make

And you should have a new executable called 'cpuid' in a few seconds.

Usage

Since the usage will likely change over time, I recommend that you take a look at the output of:

$ ./cpuid --help

Reporting Bugs

If you find a bug in CPUID, please submit details about it to the bug tracker on GitHub:

https://github.com/tycho/cpuid/issues

If the bug is regarding the decoding or dumping of CPUID details, then you should include the dump.txt and decode.txt generated with these commands:

$ ./cpuid -d -c -1 > dump.txt
$ ./cpuid -c -1 > decode.txt

You should also specify what revision of CPUID you are running. If you don't know, you can find out with:

$ ./cpuid --version

Reference Documentation

You can find current Intel and AMD CPUID specifications at these locations:

Intel Software Developer Manual volume 2A

AMD Processor Programming Reference

I try to keep up with these as they change, but sometimes I'm slow on the uptake. Please notify me if you notice any inconsistencies or if features you find relevant are not being decoded.

Contact

I'm contactable via email and respond frequently.

Steven Noonan steven@uplinklabs.net

You can’t perform that action at this time.