cpuinfo fixups for ppc64 linux
This commit is contained in:
		
							parent
							
								
									859900e605
								
							
						
					
					
						commit
						36159f8083
					
				@ -1480,6 +1480,10 @@ static int get_cpu_info(sigar_t *sigar, sigar_cpu_info_t *info,
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    int found = 0;
 | 
					    int found = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __powerpc64__
 | 
				
			||||||
 | 
					    SIGAR_SSTRCPY(info->vendor, "IBM");
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    while ((ptr = fgets(buffer, sizeof(buffer), fp))) {
 | 
					    while ((ptr = fgets(buffer, sizeof(buffer), fp))) {
 | 
				
			||||||
        switch (*ptr) {
 | 
					        switch (*ptr) {
 | 
				
			||||||
          case 'p': /* processor	: 0 */
 | 
					          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);
 | 
					                ptr = cpu_info_strval(ptr);
 | 
				
			||||||
                info->cache_size = sigar_strtoul(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;
 | 
					            break;
 | 
				
			||||||
           /* lone \n means end of info for this processor */
 | 
					           /* lone \n means end of info for this processor */
 | 
				
			||||||
          case '\n':
 | 
					          case '\n':
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user