diff --git a/wmcpufreq/wmcpufreq/wmcpufreq.c b/wmcpufreq/wmcpufreq/wmcpufreq.c index e63ae95..d413b2c 100644 --- a/wmcpufreq/wmcpufreq/wmcpufreq.c +++ b/wmcpufreq/wmcpufreq/wmcpufreq.c @@ -61,14 +61,17 @@ int main(int argc, char *argv[]) { struct timespec ts,ts1; int i,ncpu; + int idcpu; unsigned long freq[8]; XEvent event; char gov[20]; - char drv[20],*ptr; + char drv[20],*ptr,*endptr; char prg[LN_PATH]; ts.tv_sec=0; ts.tv_nsec=DELAY; prg[0]=0; + idcpu=0; + for(i=0;i1) @@ -86,10 +89,25 @@ int main(int argc, char *argv[]) strcpy(prg,argv[i+1]); break; } - printf("only -v and -exe supported \n"); + if (!strcmp(argv[i], "-cpuid")) + { + if(strlen(argv[i+1]) < LN_PATH ) + idcpu=strtol(argv[i+1],&endptr,0); + printf("cpuid= %d \n",idcpu); + break; + } + printf("only -v, -exe, -cpuid supported \n"); exit(0); } } + + /* basic checks */ + if ( idcpu < 0 ) + { + printf("cpuid < 0 \n"); + exit(-1); + } + /* get driver name (guess all cpu have the same driver) */ ptr=cpufreq_get_driver(cpu); if(!ptr) @@ -99,36 +117,47 @@ int main(int argc, char *argv[]) } strcpy(drv,ptr); cpufreq_put_driver(ptr); + + /* get number of cpu (0=cpu0, 1=cpu1 ...) */ - ncpu=3; - if( cpufreq_cpu_exists(ncpu) ==0) + + ncpu=-1; + + for(i=0;igovernor); max=policy->max;