6
#include <sys/utsname.h>
7
#include <sys/sysctl.h>
13
#define SIZE(x) sizeof(x)/sizeof(x[0])
15
extern float external_bogomips(void);
17
int get_cpu_info(cpu_info_t *cpu_info) {
22
/* char bogomips_total[BUFSIZ]="???";
23
char bogo_total[BUFSIZ];
29
int ctl_cpu[] = { CTL_HW, HW_MODEL };
30
int ctl_ncpu[] = { CTL_HW, HW_NCPU };
32
val_len = SIZE(val_str);
33
if (sysctl(ctl_cpu, SIZE(ctl_cpu), val_str, &val_len,0,0))
36
strncpy(cpu_info->chip_type,val_str,63);
38
val_len = sizeof(val_int);
39
if (sysctl(ctl_ncpu, SIZE(ctl_ncpu), &val_int, &val_len,0,0))
42
cpu_info->num_cpus = val_int;
45
cpu_info->bogomips=external_bogomips();
46
cpu_info->megahertz=0.0;