cpuinfo fixups for ppc64 linux

This commit is contained in:
Doug MacEachern 2006-07-11 17:40:18 +00:00
parent 859900e605
commit 36159f8083
1 changed files with 24 additions and 0 deletions

View File

@ -1480,6 +1480,10 @@ static int get_cpu_info(sigar_t *sigar, sigar_cpu_info_t *info,
int found = 0;
#ifdef __powerpc64__
SIGAR_SSTRCPY(info->vendor, "IBM");
#endif
while ((ptr = fgets(buffer, sizeof(buffer), fp))) {
switch (*ptr) {
case 'p': /* processor : 0 */
@ -1513,6 +1517,26 @@ static int get_cpu_info(sigar_t *sigar, sigar_cpu_info_t *info,
ptr = cpu_info_strval(ptr);
info->cache_size = sigar_strtoul(ptr);
}
#ifdef __powerpc64__
/* each /proc/cpuinfo entry looks like so:
* processor : 0
* cpu : POWER5 (gr)
* clock : 1656.392000MHz
* revision : 2.2
*/
else if (strnEQ(ptr, "clock", 5)) {
ptr = cpu_info_strval(ptr);
info->mhz = atoi(ptr);
}
else if (strnEQ(ptr, "cpu", 3)) {
cpu_info_strcpy(ptr, info->model, sizeof(info->model));
if ((ptr = strchr(info->model, ' '))) {
/* "POWER5 (gr)" -> "POWER5" */
*ptr = '\0';
}
}
#endif
break;
/* lone \n means end of info for this processor */
case '\n':