1
0
Fork 0
mirror of https://github.com/anrieff/libcpuid synced 2024-11-20 23:01:51 +00:00
Commit graph

757 commits

Author SHA1 Message Date
The Tumultuous Unicorn Of Darkness
39506501d5
Tests: fix the --fix option
--fix was removing delimiters from real output, but there are required.
2024-08-25 21:05:36 +02:00
The Tumultuous Unicorn Of Darkness
3b8b7dfaf8
Detect x2APIC and AVX512 for AMD CPUs and update tests
AVX512 is supported since Zen 4, meaning all Zen 4 CPUs are x86-64-v4.
x2APIC and AVX512 are present in 'Processor Programming Reference (PPR) for AMD Family 19h Model 11h, Revision B1'.
2024-08-25 20:49:56 +02:00
The Tumultuous Unicorn Of Darkness
ca5e1e399d
Tests: add more AMD Raphael 2024-08-25 20:16:19 +02:00
The Tumultuous Unicorn Of Darkness
0438cbaae5
Tests: add more AMD Vermeer 2024-08-25 20:16:04 +02:00
The Tumultuous Unicorn Of Darkness
a9ec98f2bf
DB: add AMD Granite Ridge 2024-08-25 20:09:32 +02:00
The Tumultuous Unicorn Of Darkness
b2bbc1ed23
DB: add AMD Strix Point 2024-08-25 20:01:30 +02:00
The Tumultuous Unicorn Of Darkness
0d8cf47ee4
Fix strings truncation warnings
recog_arm.c: In function 'cpuid_identify_arm':
recog_arm.c:2548:9: warning: 'strncpy' specified bound 16 equals destination size [-Wstringop-truncation]
 2548 |         strncpy(data->vendor_str,   hw_impl->name,     VENDOR_STR_MAX);
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
recog_arm.c:2549:9: warning: 'strncpy' specified bound 64 equals destination size [-Wstringop-truncation]
 2549 |         strncpy(data->brand_str,    id_part->name,     BRAND_STR_MAX);
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
recog_arm.c:2550:9: warning: 'strncpy' specified bound 64 equals destination size [-Wstringop-truncation]
 2550 |         strncpy(data->cpu_codename, id_part->codename, CODENAME_STR_MAX);
2024-08-25 16:48:32 +02:00
The Tumultuous Unicorn Of Darkness
656ea52909
Add missing source files in build systems 2024-08-25 16:48:25 +02:00
The Tumultuous Unicorn Of Darkness
a483748856
Update Readme.md 2024-08-25 12:45:57 +02:00
Pavol Žáčik
9915832b21 Add simple sanity tests of the Python bindings
And include them in the CI together with pylint
and formatting checks.
2024-08-25 12:43:29 +02:00
Pavol Žáčik
ec938b5d42 Document the Python bindings using Sphinx
Additionally, setup the documentation for
deployment to Read The Docs.
2024-08-25 12:43:29 +02:00
Pavol Žáčik
40e2d5fcb6 Add Python bindings
The bindings are implemented via python-cffi and cover all
current functionality of the library. They do not provide
a 1-to-1 mapping of the functionality, but a more "Pythonic"
API instead.

When new functionality is added to the libcpuid library
in the future, the changes must be manually added to the
bindings in order to appear in the Python interface.
However, if only a C enum is extended, the changes will
be automatically reflected in the Python interface.
2024-08-25 12:43:29 +02:00
Pavol Žáčik
6c87edab5a Remove CPU_ prefix from x86 cpu_feature_level_t enum options
This makes the option names of cpu_feature_level_t consistent
and it also makes it easier to list options of the cpu_feature_t
enum just by their prefix (because it now doesn't collide with
the prefix of cpu_feature_level_t options).
2024-08-25 12:43:29 +02:00
The Tumultuous Unicorn Of Darkness
6b87429dc5
Rename error variable in cpu_request_core_type() for consistency 2024-08-04 15:13:45 +02:00
The Tumultuous Unicorn Of Darkness
673f4e45ff
Improve error handling in cpu_identify_all() 2024-08-04 15:13:45 +02:00
The Tumultuous Unicorn Of Darkness
8f6b84d86c
Fix SEGFAULT in debugf() when using --quiet
The `--quiet` option calls `cpuid_set_warn_function(NULL)`, but debugf() was not checking if _warn_fun is defined unlike warnf()
2024-08-04 15:13:26 +02:00
The Tumultuous Unicorn Of Darkness
afbc2e5a4a
Hide a warning
/home/runner/work/libcpuid/libcpuid/libcpuid/cpuid_main.c:450:44: warning: unused parameter 'logical_cpu' [-Wunused-parameter]
static bool set_cpu_affinity(logical_cpu_t logical_cpu)
2024-08-03 12:38:19 +02:00
The Tumultuous Unicorn Of Darkness
ddd5868577
CI: cancel previous jobs in the group
https://stackoverflow.com/a/72408109
2024-08-03 12:34:49 +02:00
The Tumultuous Unicorn Of Darkness
d86097846b
Update status badges with URL in README.md 2024-08-03 12:31:23 +02:00
The Tumultuous Unicorn Of Darkness
ee3543f95b
Improve OS array in README.md 2024-08-03 12:28:08 +02:00
The Tumultuous Unicorn Of Darkness
cec3e8cacc
CI: set run shell for *BSD
/usr/local/bin/bash is a wrapper around 'vagrant ssh' using Bash
2024-08-03 12:25:27 +02:00
The Tumultuous Unicorn Of Darkness
7a03559d3a
CI: add a build job for NetBSD 2024-08-03 12:22:44 +02:00
The Tumultuous Unicorn Of Darkness
f7c8cac3e2
CI: update action for *BSD 2024-08-02 16:52:43 +02:00
The Tumultuous Unicorn Of Darkness
6a189f5245
CI: update workflow filename for release 2024-07-31 19:50:56 +02:00
The Tumultuous Unicorn Of Darkness
50cca6ac1a
CI: add a build job for OpenBSD 2024-07-31 19:50:37 +02:00
The Tumultuous Unicorn Of Darkness
f438aa3b40
CI: add a build job for DragonFly BSD 2024-07-31 19:48:56 +02:00
The Tumultuous Unicorn Of Darkness
fae9ec6b72
CI: update Linux+FreeBSD jobs 2024-07-31 16:39:42 +02:00
The Tumultuous Unicorn Of Darkness
b7940c7029
Fix a regression in cpuid_tool when ident_required=0 for arg
In 2b8023f733, I had to update the behavior of cpuid_tool to loop over all data.cpu_types items.
I did not realize since this change, it was not entering the loop for args with ident_required=0, because data.num_cpu_types was always 0, so print_info() was never called for such args.

In other words, args like --rdmsr or --cpuid did nothing due to this regression. This commit fix this regression.
2024-07-31 16:33:40 +02:00
The Tumultuous Unicorn Of Darkness
d31e2fd73b
CI: split UNIX job 2024-07-31 15:51:56 +02:00
The Tumultuous Unicorn Of Darkness
70559537c9
CI: add a build job for FreeBSD 2024-07-31 15:36:09 +02:00
The Tumultuous Unicorn Of Darkness
55ddd70513
CI: rename some jobs with better names 2024-07-31 15:33:28 +02:00
The Tumultuous Unicorn Of Darkness
543c3ac17d
Fix scanf() format for 'logical_cpu' in cpuid_deserialize_raw_data_internal()
logical_cpu is an uint16_t, so SCNu16 is the correct format. It was providing strange values with SCNi16, like with the Intel® Xeon® Platinum 8280 dump.
2024-07-31 15:12:30 +02:00
The Tumultuous Unicorn Of Darkness
25c83f0d0b
Provide raw for logical CPU 0 in cpuid_get_raw_data_core() even if set_cpu_affinity() is not supported
On OpenBSD, set_cpu_affinity() is not supported, so cpuid_get_raw_data_core() always returns ERR_INVCNB.
This commit allows to provide raw data for at least one CPU core.
2024-07-27 17:45:05 +02:00
The Tumultuous Unicorn Of Darkness
00b7081035
Do not set 'with_affinity' in cpu_raw_data_array_t_constructor() when set_cpu_affinity() is not supported 2024-07-27 17:41:58 +02:00
The Tumultuous Unicorn Of Darkness
508225fe3f
Fix build on OpenBSD
There are declaration conflicts between ctype.h and libcpuid_internal.h. Let's provide a workaround for it.
2024-07-27 17:39:48 +02:00
The Tumultuous Unicorn Of Darkness
c6723aa914
Improve cpuid_tool behavior when cpu_types array is empty
It happens when cpuid_get_all_raw_data() cannot use set_cpu_affinity()
2024-07-27 13:33:55 +02:00
The Tumultuous Unicorn Of Darkness
2133c22052
Improve set_cpu_affinity() on NetBSD
By default, running libcpuid as regular user on NetBSD shows nothing: set_cpu_affinity() fails quietly so cpu_identify_all() is not able to get raw data.
This commit display a warning when an unallowed user try to set CPU affinity.
2024-07-27 13:25:08 +02:00
The Tumultuous Unicorn Of Darkness
3c37492b93
Support get_total_cpus() on DragonFly BSD
Tested on DragonFly BSD 6: it works as expected.
2024-07-27 12:00:23 +02:00
The Tumultuous Unicorn Of Darkness
505c8b5fe6
Improve errors handling in cpuid_get_all_raw_data() and cpuid_get_raw_data_core()
Close #202
2024-07-26 11:57:11 +02:00
The Tumultuous Unicorn Of Darkness
dec92af12f
Add README for CPUID kernel modules for ARM 2024-07-10 22:28:50 +02:00
The Tumultuous Unicorn Of Darkness
af5f267ba3
CI: update CMake option names
Related to 52efefbb7d
2024-07-10 22:02:50 +02:00
The Tumultuous Unicorn Of Darkness
66c4e22162
Ignore files generated by cpuid_tool 2024-07-10 21:57:20 +02:00
The Tumultuous Unicorn Of Darkness
4df61a58b2
Update supported CPU and OS in README.md 2024-07-10 21:56:29 +02:00
The Tumultuous Unicorn Of Darkness
52efefbb7d
CMake: harmonizes options 2024-07-10 20:56:38 +02:00
The Tumultuous Unicorn Of Darkness
4d6cc787fe
rdcpuid: handle errors 2024-07-10 20:18:03 +02:00
The Tumultuous Unicorn Of Darkness
0d71be934e
Add cpuid FreeBSD kernel module for ARM CPUs 2024-07-10 20:17:10 +02:00
The Tumultuous Unicorn Of Darkness
371a9648d6
Add cpuid Linux kernel module for ARM CPUs 2024-07-10 20:16:19 +02:00
The Tumultuous Unicorn Of Darkness
fb4abf78bb
CMake: disable C++ compiler
libcpuid is written in C only, the C++ (CXX) compiler is not required
2024-07-10 16:53:19 +02:00
The Tumultuous Unicorn Of Darkness
ea462f761f
Move Windows MSR driver to a new directory
The idea is to have add new drivers for ARM CPUs
2024-07-09 19:02:39 +02:00
The Tumultuous Unicorn Of Darkness
7b6047c2ac
Extract both AArch32 and AArch64 registers on AArch64 2024-07-09 18:17:54 +02:00