@@ -374,15 +374,20 @@ int detect(void)
374
374
}
375
375
#else
376
376
#ifdef __APPLE__
377
+ length64 = sizeof (value64 );
377
378
sysctlbyname ("hw.ncpu" ,& value64 ,& length64 ,NULL ,0 );
378
379
cpulowperf = value64 ;
380
+ length64 = sizeof (value64 );
379
381
sysctlbyname ("hw.nperflevels" ,& value64 ,& length64 ,NULL ,0 );
380
382
if (value64 > 1 ) {
381
- sysctlbyname ("hw.perflevel0.cpusperl" ,& value64 ,& length64 ,NULL ,0 );
383
+ length64 = sizeof (value64 );
384
+ sysctlbyname ("hw.perflevel0.cpusperl2" ,& value64 ,& length64 ,NULL ,0 );
382
385
cpuhiperf = value64 ;
383
- sysctlbyname ("hw.perflevel1.cpusperl" ,& value64 ,& length64 ,NULL ,0 );
386
+ length64 = sizeof (value64 );
387
+ sysctlbyname ("hw.perflevel1.cpusperl2" ,& value64 ,& length64 ,NULL ,0 );
384
388
cpulowperf = value64 ;
385
389
}
390
+ length64 = sizeof (value64 );
386
391
sysctlbyname ("hw.cpufamily" ,& value64 ,& length64 ,NULL ,0 );
387
392
if (value64 == 131287967 || value64 == 458787763 ) return CPU_VORTEX ; //A12/M1
388
393
if (value64 == 3660830781 ) return CPU_VORTEX ; //A15/M2
@@ -467,6 +472,7 @@ int n=0;
467
472
printf ("#define NUM_CORES_HP %d\n" ,cpuhiperf );
468
473
#endif
469
474
#ifdef __APPLE__
475
+ length64 = sizeof (value64 );
470
476
sysctlbyname ("hw.physicalcpu_max" ,& value ,& length ,NULL ,0 );
471
477
printf ("#define NUM_CORES %d\n" ,value );
472
478
if (cpulowperf > 0 )
@@ -698,12 +704,17 @@ void get_cpuconfig(void)
698
704
case CPU_VORTEX :
699
705
printf ("#define VORTEX \n" );
700
706
#ifdef __APPLE__
707
+ length64 = sizeof (value64 );
701
708
sysctlbyname ("hw.l1icachesize" ,& value64 ,& length64 ,NULL ,0 );
702
709
printf ("#define L1_CODE_SIZE %lld \n" ,value64 );
710
+ length64 = sizeof (value64 );
703
711
sysctlbyname ("hw.cachelinesize" ,& value64 ,& length64 ,NULL ,0 );
704
712
printf ("#define L1_CODE_LINESIZE %lld \n" ,value64 );
713
+ printf ("#define L1_DATA_LINESIZE %lld \n" ,value64 );
714
+ length64 = sizeof (value64 );
705
715
sysctlbyname ("hw.l1dcachesize" ,& value64 ,& length64 ,NULL ,0 );
706
716
printf ("#define L1_DATA_SIZE %lld \n" ,value64 );
717
+ length64 = sizeof (value64 );
707
718
sysctlbyname ("hw.l2cachesize" ,& value64 ,& length64 ,NULL ,0 );
708
719
printf ("#define L2_SIZE %lld \n" ,value64 );
709
720
#endif
0 commit comments