"Fossies" - the Fresh Open Source Software Archive

Member "linux_logo-6.0/libsysinfo-0.3.0/Linux/cpuinfo_s390.c" (8 May 2020, 1752 Bytes) of package /linux/misc/linux_logo-6.0.tar.gz:


As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) C and C++ source code syntax highlighting (style: standard) with prefixed line numbers and code folding option. Alternatively you can here view or download the uninterpreted source code file.

    1 /* Re-written from scratch 14 July 2002        */
    2 /* Handles s390 on Linux architecture          */
    3 /* by Vince Weaver <vince@deater.net>          */
    4 
    5 #include <stdio.h>
    6 #include <string.h>
    7 #include <stdlib.h>  /* atof */
    8 
    9 #include "../sysinfo.h"
   10 #include "../include/generic.h"
   11 
   12 int get_cpu_info(struct cpu_info_type *cpu_info) {
   13 
   14     FILE *fff;
   15     char temp_string[BUFSIZ];
   16     char vendor_string[BUFSIZ],model_string[BUFSIZ];
   17     int cpu_count=0;
   18     float bogomips=0.0,megahertz=0.0;
   19    
   20     vendor_string[0]=model_string[0]=0;
   21  
   22        /* We get all of our info here from /proc/cpuinfo */
   23     if ((fff=fopen(get_cpuinfo_file(),"r") )!=NULL) {
   24        
   25        while ( (fgets(temp_string,BUFSIZ,fff)!=NULL) ) {
   26     
   27           if ( !(strncmp(temp_string,"# processors",6))) {         
   28          cpu_count=atoi(parse_line(temp_string));
   29       }
   30       
   31          /* Ugh why must people play with capitalization */
   32       if ( !(strncmp(temp_string,"bogomips",8)) ||
   33            !(strncmp(temp_string,"BogoMips",8)) ||
   34            !(strncmp(temp_string,"BogoMIPS",8))) {
   35          bogomips+=atof(parse_line(temp_string));
   36       }
   37        }
   38     }
   39    
   40        /* Hackish, granted */
   41     strncpy(vendor_string,"IBM",7);
   42     strncpy(model_string,"S390",4);
   43     strncpy(cpu_info->chip_vendor,vendor_string,SYSINFO_CHIP_VENDOR_SIZE);
   44     strncpy(cpu_info->chip_type,model_string,SYSINFO_CHIP_TYPE_SIZE);
   45    
   46     cpu_info->num_cpus=cpu_count;
   47     cpu_info->megahertz=megahertz;
   48     cpu_info->bogomips=bogomips*cpu_count;
   49 
   50     return 0;
   51    
   52 }
   53 
   54 int get_hardware(char *hardware_string) {
   55     
   56     return -1;
   57 }
   58 
   59     /* Some architectures might have better ways of detecting RAM size */
   60 long long get_arch_specific_mem_size(void) {
   61        /* We have no special way of detecting RAM */
   62        return 0;
   63 }