diff -rNup zabbix-1.4.2.orig/configure.in zabbix-1.4.2/configure.in --- zabbix-1.4.2.orig/configure.in Mon Aug 20 23:22:33 2007 +++ zabbix-1.4.2/configure.in Thu Dec 6 18:04:27 2007 @@ -347,6 +347,30 @@ AC_DEFINE(HAVE_FUNCTION_SYSCTL_KERN_BOOT AC_MSG_RESULT(yes), AC_MSG_RESULT(no)) +dnl Check for function sysctl (HW_NCPU) +AC_MSG_CHECKING(for function sysctl (HW_NCPU)) +AC_TRY_COMPILE( +[ + #include + #include + #include + #include + #include +], +[ + int ncpu; + int mib[2],len; + int now; + + mib[0]=CTL_HW; + mib[1]=HW_NCPU; + len=sizeof(ncpu); + sysctl(mib,2,&ncpu,&len,0,0); +], +AC_DEFINE(HAVE_FUNCTION_SYSCTL_HW_NCPU,1,[Define to 1 if 'HW_NCPU' exist.]) +AC_MSG_RESULT(yes), +AC_MSG_RESULT(no)) + dnl Check for function sysctl (KERN_MAXFILES) AC_MSG_CHECKING(for function sysctl (KERN_MAXFILES)) AC_TRY_COMPILE( diff -rNup zabbix-1.4.2.orig/include/config.h.in zabbix-1.4.2/include/config.h.in --- zabbix-1.4.2.orig/include/config.h.in Mon Aug 20 23:22:57 2007 +++ zabbix-1.4.2/include/config.h.in Sat Dec 8 04:58:34 2007 @@ -48,6 +48,9 @@ /* Define to 1 if 'KERN_MAXPROC' exist. */ #undef HAVE_FUNCTION_SYSCTL_KERN_MAXPROC +/* Define to 1 if 'HW_NCPU' exist. */ +#undef HAVE_FUNCTION_SYSCTL_HW_NCPU + /* Define to 1 if you have the `getaddrinfo' function. */ #undef HAVE_GETADDRINFO diff -rNup zabbix-1.4.2.orig/src/libs/zbxsysinfo/freebsd/cpu.c zabbix-1.4.2/src/libs/zbxsysinfo/freebsd/cpu.c --- zabbix-1.4.2.orig/src/libs/zbxsysinfo/freebsd/cpu.c Mon Aug 20 23:22:23 2007 +++ zabbix-1.4.2/src/libs/zbxsysinfo/freebsd/cpu.c Thu Dec 6 18:45:01 2007 @@ -24,7 +24,28 @@ int SYSTEM_CPU_NUM(const char *cmd, const char *param, unsigned flags, AGENT_RESULT *result) { +#ifdef HAVE_FUNCTION_SYSCTL_HW_NCPU + size_t len; + int mib[2], ncpu; + + assert(result); + + init_result(result); + + mib[0]=CTL_HW; + mib[1]=HW_NCPU; + + len = sizeof(ncpu); + if ((sysctl(mib, 2, &ncpu, &len, 0, 0)) != 0) + { + return SYSINFO_RET_FAIL; + } + + SET_UI64_RESULT(result, ncpu); + return SYSINFO_RET_OK; +#else return SYSINFO_RET_FAIL; +#endif } int SYSTEM_CPU_UTIL(const char *cmd, const char *param, unsigned flags, AGENT_RESULT *result)