some freebsd cpu infos
This commit is contained in:
parent
7852029a84
commit
066ef754c4
|
@ -804,6 +804,7 @@ int sigar_cpu_info_list_get(sigar_t *sigar,
|
||||||
int i, mhz;
|
int i, mhz;
|
||||||
unsigned long long value;
|
unsigned long long value;
|
||||||
size_t size;
|
size_t size;
|
||||||
|
char model[128], vendor[128], *ptr;
|
||||||
|
|
||||||
size = sizeof(value);
|
size = sizeof(value);
|
||||||
if (!sysctlbyname(CTL_HW_FREQ, &value, &size, NULL, 0)) {
|
if (!sysctlbyname(CTL_HW_FREQ, &value, &size, NULL, 0)) {
|
||||||
|
@ -813,6 +814,24 @@ int sigar_cpu_info_list_get(sigar_t *sigar,
|
||||||
mhz = SIGAR_FIELD_NOTIMPL;
|
mhz = SIGAR_FIELD_NOTIMPL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
size = sizeof(model);
|
||||||
|
if (sysctlbyname("hw.model", &model, &size, NULL, 0) == -1) {
|
||||||
|
strcpy(model, "Unknown");
|
||||||
|
}
|
||||||
|
else if ((ptr = strchr(model, ' '))) {
|
||||||
|
*ptr = '\0';
|
||||||
|
if (strstr(model, "Intel")) {
|
||||||
|
SIGAR_SSTRCPY(vendor, "Intel");
|
||||||
|
}
|
||||||
|
else if (strstr(model, "AMD")) {
|
||||||
|
SIGAR_SSTRCPY(vendor, "AMD");
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
SIGAR_SSTRCPY(vendor, "Unknown");
|
||||||
|
}
|
||||||
|
SIGAR_SSTRCPY(model, ptr+1);
|
||||||
|
}
|
||||||
|
|
||||||
sigar_cpu_info_list_create(cpu_infos);
|
sigar_cpu_info_list_create(cpu_infos);
|
||||||
|
|
||||||
for (i=0; i<sigar->ncpu; i++) {
|
for (i=0; i<sigar->ncpu; i++) {
|
||||||
|
@ -821,10 +840,14 @@ int sigar_cpu_info_list_get(sigar_t *sigar,
|
||||||
SIGAR_CPU_INFO_LIST_GROW(cpu_infos);
|
SIGAR_CPU_INFO_LIST_GROW(cpu_infos);
|
||||||
|
|
||||||
info = &cpu_infos->data[cpu_infos->number++];
|
info = &cpu_infos->data[cpu_infos->number++];
|
||||||
|
#ifdef DARWIN
|
||||||
SIGAR_SSTRCPY(info->vendor, "Apple");
|
SIGAR_SSTRCPY(info->vendor, "Apple");
|
||||||
SIGAR_SSTRCPY(info->model, "powerpc");
|
SIGAR_SSTRCPY(info->model, "powerpc");
|
||||||
|
#else
|
||||||
|
SIGAR_SSTRCPY(info->vendor, vendor);
|
||||||
|
SIGAR_SSTRCPY(info->model, model);
|
||||||
|
sigar_cpu_model_adjust(sigar, info);
|
||||||
|
#endif
|
||||||
info->mhz = mhz;
|
info->mhz = mhz;
|
||||||
info->cache_size = SIGAR_FIELD_NOTIMPL;
|
info->cache_size = SIGAR_FIELD_NOTIMPL;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue