Detecting Power7 in C
Jason Bacon
bacon4000 at gmail.com
Thu Jun 9 13:09:21 UTC 2016
I'm porting the SLURM task/affinity plugin to FreeBSD and wondering
what's the best way to detect whether we're running on a power7 processor.
The Linux code is below. I could do something similar with dmesg.boot
on FreeBSD, but hoping there's a more elegant way within a C program.
If I have to use dmesg.boot, what string would I be looking for? I don't
have a power7 installation at the moment.
Thanks,
Jason
FILE *cpu_info_file;
char buffer[128];
char* _cpuinfo_path = "/proc/cpuinfo";
cpu_info_file = fopen(_cpuinfo_path, "r");
if (cpu_info_file == NULL) {
error("_get_is_power: error %d opening %s", errno,
_cpuinfo_path);
return false; /* assume not power processor */
}
is_power = 0;
while (fgets(buffer, sizeof(buffer), cpu_info_file) !=
NULL) {
if (strstr(buffer, "POWER7")) {
is_power = 1;
break;
}
}
fclose(cpu_info_file);
--
All wars are civil wars, because all men are brothers ... Each one owes
infinitely more to the human race than to the particular country in
which he was born.
-- Francois Fenelon
More information about the freebsd-ppc
mailing list