From 22ce5a34122245d2f4d63abe7ceb5218eb55f337 Mon Sep 17 00:00:00 2001 From: Ben Noordhuis Date: Thu, 16 Aug 2012 14:43:39 +0200 Subject: [PATCH] sunos: fix uv_cpu_info() on x86_64 kstat_data_lookup("clock_Mhz") returns a KSTAT_DATA_INT32 on i386 but a KSTAT_DATA_INT64 on x86_64. --- src/unix/sunos.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/unix/sunos.c b/src/unix/sunos.c index 6598ea25..b49e4483 100644 --- a/src/unix/sunos.c +++ b/src/unix/sunos.c @@ -346,8 +346,10 @@ uv_err_t uv_cpu_info(uv_cpu_info_t** cpu_infos, int* count) { cpu_info->model = NULL; } else { knp = (kstat_named_t *) kstat_data_lookup(ksp, (char *)"clock_MHz"); - assert(knp->data_type == KSTAT_DATA_INT32); - cpu_info->speed = knp->value.i32; + assert(knp->data_type == KSTAT_DATA_INT32 || + knp->data_type == KSTAT_DATA_INT64); + cpu_info->speed = (knp->data_type == KSTAT_DATA_INT32) ? knp->value.i32 + : knp->value.i64; knp = (kstat_named_t *) kstat_data_lookup(ksp, (char *)"brand"); assert(knp->data_type == KSTAT_DATA_STRING);