1
0
mirror of https://git.FreeBSD.org/ports.git synced 2024-11-27 00:57:50 +00:00
freebsd-ports/sysutils/conky/files/patch-src-freebsd.c
Martin Wilke 81248f69d2 - Update to 1.9.0
PR:		168161
Submitted by:	lbartoletti <coder@tuxfamily.org>
		Lars Engels <lars.engels@0x20.net>
Approved by:	maintainer
2013-02-08 07:11:05 +00:00

56 lines
1.6 KiB
C

--- src/freebsd.c.orig 2012-05-04 00:08:27.000000000 +0300
+++ src/freebsd.c 2012-12-04 11:09:20.000000000 +0200
@@ -38,6 +38,11 @@
#include <sys/types.h>
#include <sys/user.h>
+#if defined(__FreeBSD__) && (!defined(__FreeBSD_kernel__) || !(__FreeBSD_kernel__ + 0))
+# undef __FreeBSD_kernel__
+# define __FreeBSD_kernel__ __FreeBSD__
+#endif
+
#include <net/if.h>
#include <net/if_mib.h>
#include <net/if_media.h>
@@ -283,7 +288,7 @@
pthread_mutex_lock(&kvm_proc_mutex);
p = kvm_getprocs(kd, KERN_PROC_ALL, 0, &n_processes);
for (i = 0; i < n_processes; i++) {
-#if (__FreeBSD__ < 5) && (__FreeBSD_kernel__ < 5)
+#if (defined(__FreeBSD__) && (__FreeBSD__ < 5)) || (defined(__FreeBSD_kernel__) && (__FreeBSD_kernel__ < 5))
if (p[i].kp_proc.p_stat == SRUN) {
#else
if (p[i].ki_stat == SRUN) {
@@ -300,7 +305,9 @@
void get_cpu_count(void)
{
int cpu_count = 0;
- size_t cpu_count_len = sizeof(cpu_count);
+ /* add check for !info.cpu_usage since that mem is freed on a SIGUSR1 */
+ if ((cpu_setup == 1) && (info.cpu_usage))
+ return;
if (GETSYSCTL("hw.ncpu", cpu_count) == 0) {
info.cpu_count = cpu_count;
@@ -313,6 +320,7 @@
if (info.cpu_usage == NULL) {
CRIT_ERR(NULL, NULL, "malloc");
}
+ cpu_setup = 1;
}
struct cpu_info {
@@ -330,11 +338,7 @@
unsigned int malloc_cpu_size = 0;
extern void* global_cpu;
- /* add check for !info.cpu_usage since that mem is freed on a SIGUSR1 */
- if ((cpu_setup == 0) || (!info.cpu_usage)) {
- get_cpu_count();
- cpu_setup = 1;
- }
+ get_cpu_count();
if (!global_cpu) {
malloc_cpu_size = (info.cpu_count + 1) * sizeof(struct cpu_info);