head 1.3; access; symbols pkgsrc-2026Q1:1.3.0.106 pkgsrc-2026Q1-base:1.3 pkgsrc-2025Q4:1.3.0.104 pkgsrc-2025Q4-base:1.3 pkgsrc-2025Q3:1.3.0.102 pkgsrc-2025Q3-base:1.3 pkgsrc-2025Q2:1.3.0.100 pkgsrc-2025Q2-base:1.3 pkgsrc-2025Q1:1.3.0.98 pkgsrc-2025Q1-base:1.3 pkgsrc-2024Q4:1.3.0.96 pkgsrc-2024Q4-base:1.3 pkgsrc-2024Q3:1.3.0.94 pkgsrc-2024Q3-base:1.3 pkgsrc-2024Q2:1.3.0.92 pkgsrc-2024Q2-base:1.3 pkgsrc-2024Q1:1.3.0.90 pkgsrc-2024Q1-base:1.3 pkgsrc-2023Q4:1.3.0.88 pkgsrc-2023Q4-base:1.3 pkgsrc-2023Q3:1.3.0.86 pkgsrc-2023Q3-base:1.3 pkgsrc-2023Q2:1.3.0.84 pkgsrc-2023Q2-base:1.3 pkgsrc-2023Q1:1.3.0.82 pkgsrc-2023Q1-base:1.3 pkgsrc-2022Q4:1.3.0.80 pkgsrc-2022Q4-base:1.3 pkgsrc-2022Q3:1.3.0.78 pkgsrc-2022Q3-base:1.3 pkgsrc-2022Q2:1.3.0.76 pkgsrc-2022Q2-base:1.3 pkgsrc-2022Q1:1.3.0.74 pkgsrc-2022Q1-base:1.3 pkgsrc-2021Q4:1.3.0.72 pkgsrc-2021Q4-base:1.3 pkgsrc-2021Q3:1.3.0.70 pkgsrc-2021Q3-base:1.3 pkgsrc-2021Q2:1.3.0.68 pkgsrc-2021Q2-base:1.3 pkgsrc-2021Q1:1.3.0.66 pkgsrc-2021Q1-base:1.3 pkgsrc-2020Q4:1.3.0.64 pkgsrc-2020Q4-base:1.3 pkgsrc-2020Q3:1.3.0.62 pkgsrc-2020Q3-base:1.3 pkgsrc-2020Q2:1.3.0.58 pkgsrc-2020Q2-base:1.3 pkgsrc-2020Q1:1.3.0.38 pkgsrc-2020Q1-base:1.3 pkgsrc-2019Q4:1.3.0.60 pkgsrc-2019Q4-base:1.3 pkgsrc-2019Q3:1.3.0.56 pkgsrc-2019Q3-base:1.3 pkgsrc-2019Q2:1.3.0.54 pkgsrc-2019Q2-base:1.3 pkgsrc-2019Q1:1.3.0.52 pkgsrc-2019Q1-base:1.3 pkgsrc-2018Q4:1.3.0.50 pkgsrc-2018Q4-base:1.3 pkgsrc-2018Q3:1.3.0.48 pkgsrc-2018Q3-base:1.3 pkgsrc-2018Q2:1.3.0.46 pkgsrc-2018Q2-base:1.3 pkgsrc-2018Q1:1.3.0.44 pkgsrc-2018Q1-base:1.3 pkgsrc-2017Q4:1.3.0.42 pkgsrc-2017Q4-base:1.3 pkgsrc-2017Q3:1.3.0.40 pkgsrc-2017Q3-base:1.3 pkgsrc-2017Q2:1.3.0.36 pkgsrc-2017Q2-base:1.3 pkgsrc-2017Q1:1.3.0.34 pkgsrc-2017Q1-base:1.3 pkgsrc-2016Q4:1.3.0.32 pkgsrc-2016Q4-base:1.3 pkgsrc-2016Q3:1.3.0.30 pkgsrc-2016Q3-base:1.3 pkgsrc-2016Q2:1.3.0.28 pkgsrc-2016Q2-base:1.3 pkgsrc-2016Q1:1.3.0.26 pkgsrc-2016Q1-base:1.3 pkgsrc-2015Q4:1.3.0.24 pkgsrc-2015Q4-base:1.3 pkgsrc-2015Q3:1.3.0.22 pkgsrc-2015Q3-base:1.3 pkgsrc-2015Q2:1.3.0.20 pkgsrc-2015Q2-base:1.3 pkgsrc-2015Q1:1.3.0.18 pkgsrc-2015Q1-base:1.3 pkgsrc-2014Q4:1.3.0.16 pkgsrc-2014Q4-base:1.3 pkgsrc-2014Q3:1.3.0.14 pkgsrc-2014Q3-base:1.3 pkgsrc-2014Q2:1.3.0.12 pkgsrc-2014Q2-base:1.3 pkgsrc-2014Q1:1.3.0.10 pkgsrc-2014Q1-base:1.3 pkgsrc-2013Q4:1.3.0.8 pkgsrc-2013Q4-base:1.3 pkgsrc-2013Q3:1.3.0.6 pkgsrc-2013Q3-base:1.3 pkgsrc-2013Q2:1.3.0.4 pkgsrc-2013Q2-base:1.3 pkgsrc-2013Q1:1.3.0.2 pkgsrc-2013Q1-base:1.3 pkgsrc-2012Q4:1.2.0.52 pkgsrc-2012Q4-base:1.2 pkgsrc-2012Q3:1.2.0.50 pkgsrc-2012Q3-base:1.2 pkgsrc-2012Q2:1.2.0.48 pkgsrc-2012Q2-base:1.2 pkgsrc-2012Q1:1.2.0.46 pkgsrc-2012Q1-base:1.2 pkgsrc-2011Q4:1.2.0.44 pkgsrc-2011Q4-base:1.2 pkgsrc-2011Q3:1.2.0.42 pkgsrc-2011Q3-base:1.2 pkgsrc-2011Q2:1.2.0.40 pkgsrc-2011Q2-base:1.2 pkgsrc-2011Q1:1.2.0.38 pkgsrc-2011Q1-base:1.2 pkgsrc-2010Q4:1.2.0.36 pkgsrc-2010Q4-base:1.2 pkgsrc-2010Q3:1.2.0.34 pkgsrc-2010Q3-base:1.2 pkgsrc-2010Q2:1.2.0.32 pkgsrc-2010Q2-base:1.2 pkgsrc-2010Q1:1.2.0.30 pkgsrc-2010Q1-base:1.2 pkgsrc-2009Q4:1.2.0.28 pkgsrc-2009Q4-base:1.2 pkgsrc-2009Q3:1.2.0.26 pkgsrc-2009Q3-base:1.2 pkgsrc-2009Q2:1.2.0.24 pkgsrc-2009Q2-base:1.2 pkgsrc-2009Q1:1.2.0.22 pkgsrc-2009Q1-base:1.2 pkgsrc-2008Q4:1.2.0.20 pkgsrc-2008Q4-base:1.2 pkgsrc-2008Q3:1.2.0.18 pkgsrc-2008Q3-base:1.2 cube-native-xorg:1.2.0.16 cube-native-xorg-base:1.2 pkgsrc-2008Q2:1.2.0.14 pkgsrc-2008Q2-base:1.2 cwrapper:1.2.0.12 pkgsrc-2008Q1:1.2.0.10 pkgsrc-2008Q1-base:1.2 pkgsrc-2007Q4:1.2.0.8 pkgsrc-2007Q4-base:1.2 pkgsrc-2007Q3:1.2.0.6 pkgsrc-2007Q3-base:1.2 pkgsrc-2007Q2:1.2.0.4 pkgsrc-2007Q2-base:1.2 pkgsrc-2007Q1:1.2.0.2 pkgsrc-2007Q1-base:1.2 pkgsrc-2006Q4:1.1.1.1.0.34 pkgsrc-2006Q4-base:1.1.1.1 pkgsrc-2006Q3:1.1.1.1.0.32 pkgsrc-2006Q3-base:1.1.1.1 pkgsrc-2006Q2:1.1.1.1.0.30 pkgsrc-2006Q2-base:1.1.1.1 pkgsrc-2006Q1:1.1.1.1.0.28 pkgsrc-2006Q1-base:1.1.1.1 pkgsrc-2005Q4:1.1.1.1.0.26 pkgsrc-2005Q4-base:1.1.1.1 pkgsrc-2005Q3:1.1.1.1.0.24 pkgsrc-2005Q3-base:1.1.1.1 pkgsrc-2005Q2:1.1.1.1.0.22 pkgsrc-2005Q2-base:1.1.1.1 pkgsrc-2005Q1:1.1.1.1.0.20 pkgsrc-2005Q1-base:1.1.1.1 pkgsrc-2004Q4:1.1.1.1.0.18 pkgsrc-2004Q4-base:1.1.1.1 pkgsrc-2004Q3:1.1.1.1.0.16 pkgsrc-2004Q3-base:1.1.1.1 pkgsrc-2004Q2:1.1.1.1.0.14 pkgsrc-2004Q2-base:1.1.1.1 pkgsrc-2004Q1:1.1.1.1.0.12 pkgsrc-2004Q1-base:1.1.1.1 pkgsrc-2003Q4:1.1.1.1.0.10 pkgsrc-2003Q4-base:1.1.1.1 netbsd-1-6-1:1.1.1.1.0.6 netbsd-1-6-1-base:1.1.1.1 netbsd-1-6:1.1.1.1.0.8 netbsd-1-6-RELEASE-base:1.1.1.1 pkgviews:1.1.1.1.0.4 pkgviews-base:1.1.1.1 buildlink2:1.1.1.1.0.2 buildlink2-base:1.1.1.1 pkgsrc-base:1.1.1.1 TNF:1.1.1; locks; strict; comment @# @; 1.3 date 2013.01.11.23.30.17; author joerg; state Exp; branches; next 1.2; 1.2 date 2007.02.15.21.46.54; author joerg; state Exp; branches; next 1.1; 1.1 date 2002.04.16.21.49.27; author wiz; state Exp; branches 1.1.1.1; next ; 1.1.1.1 date 2002.04.16.21.49.27; author wiz; state Exp; branches; next ; desc @@ 1.3 log @NetBSD/current requires uvm/uvm_extern.h and _KMEMUSER. @ text @$NetBSD: patch-aa,v 1.2 2007/02/15 21:46:54 joerg Exp $ --- bbsload.cc.orig 2000-05-22 18:53:37.000000000 +0000 +++ bbsload.cc @@@@ -21,6 +21,22 @@@@ #include "bbsload.hh" +#ifdef __NetBSD__ +#define _KMEMUSER +#include +#include +#include +#include +#elif defined(__DragonFly__) +#include +#include +#include +#define template +#include +#undef template +#include +#endif + CheckLoad::CheckLoad(ToolWindow *toolwindow) { bbtool=toolwindow; timer=new BTimer(bbtool->getCurrentScreenInfo()->getBaseDisplay(),this) ; @@@@ -40,97 +54,106 @@@@ void CheckLoad::Reconfigure() { void CheckLoad::timeout() { - FILE *fp; - - char loadstr[28]; - char buffer[128]; - bool redraw=False; - struct stat file_status; - static time_t last_mtime; - static unsigned long old_user=0; - static unsigned long old_nice=0; - static unsigned long old_system=0; - static unsigned long old_idle=0; - broken=False; + static u_int64_t old_user=0, old_nice=0, old_system=0, + old_idle=0; + u_int64_t user,nice,system,idle,total; +#if defined(__DragonFly__) + struct kinfo_cputime cpu_time; +#else + u_int64_t cputimes[5]; +#endif + double lavg[3]; +#if defined(__DragonFly__) + size_t vm_stat_size = sizeof(struct vmstats); + struct vmstats vm_stat; +#else + struct uvmexp uvm_stat; +#endif + int ctl_name[3]; + size_t ctllen; - if (!(fp = fopen("/proc/loadavg", "r"))) - broken=True; - else - { - fstat(fileno(fp),&file_status); - if (file_status.st_mtime != last_mtime) - { - fgets(loadstr, 28, fp); - sscanf(loadstr,"%e %e %e %d/%d",&load.average1m, - &load.average5m,&load.average15m,&task.running, - &task.total); - redraw=true; - } - } - fclose(fp); - if (!(fp = fopen("/proc/meminfo", "r"))) - broken=True; - else - { - fstat(fileno(fp),&file_status); - if (file_status.st_mtime != last_mtime) - { - /* should work for now */ - fgets(buffer,128,fp); - fgets(buffer,128,fp); - sscanf(buffer,"Mem: %lu %lu %lu %lu %lu %lu",&mem.total, - &mem.used,&mem.free,&mem.shared,&mem.buffers, - &mem.cached); - fgets(buffer,128,fp); - sscanf(buffer,"Swap: %lu %lu %lu", - &swap.total,&swap.used,&swap.free); - - norm.total_used=(double)(mem.used+swap.used)/ - (double)(mem.total+swap.total); - norm.mem_used=(double)mem.used/(double)mem.total; - if (swap.total!=0) - norm.swap_used=(double)swap.used/(double)swap.total; - - redraw=true; - } - } - fclose(fp); + int i; - if (!(fp = fopen("/proc/stat", "r"))) - broken=True; - else - { - fstat(fileno(fp),&file_status); - if (file_status.st_mtime != last_mtime) - { - unsigned long user,nice,system,idle,total; - /* should work for now */ - fgets(buffer,128,fp); - sscanf(buffer,"cpu %lu %lu %lu %lu",&user, - &nice,&system,&idle); - total=(user-old_user)+(nice-old_nice)+ - (system-old_system)+(idle-old_idle); + broken=False; - if ((total!=0)&(old_user!=0)) - { - cpu.user=(user-old_user)/(double)total; - cpu.nice=(nice-old_nice)/(double)user; - cpu.system=(system-old_system)/(double)total; - cpu.idle=(idle-old_idle)/(double)total; - } - else - cpu.user=cpu.nice=cpu.system=cpu.idle=0; + /* Get system load */ - old_user=user; - old_nice=nice; - old_system=system; - old_idle=idle; - redraw=true; - } - } - fclose(fp); - if (redraw) - bbtool->Redraw(); + getloadavg(lavg,3); + load.average1m=lavg[0]; + load.average5m=lavg[1]; + load.average15m=lavg[2]; + + /* Get total amount of processes */ + + ctl_name[0]=CTL_KERN; + ctl_name[1]=KERN_PROC; + ctl_name[2]=KERN_PROC_ALL; + sysctl(ctl_name, 3, NULL, &ctllen,NULL,0); /* get size of proc table */ + task.total=ctllen/sizeof(struct kinfo_proc); /* Anybody have an + alternative ? */ + +#if defined(__DragonFly__) + sysctlbyname("vm.vmstats", &vm_stat, &vm_stat_size, NULL, 0); + mem.total = vm_stat.v_page_count; + mem.used = mem.total - vm_stat.v_free_count; + swap.total = 0; /* XXX fill me in, expensive! */ + swap.used = 0; +#else + /* task.running is missing */ + /* get memory statistics */ + ctllen=sizeof(uvm_stat); + ctl_name[0]=CTL_VM; + ctl_name[1]=VM_UVMEXP; + sysctl(ctl_name,2,&uvm_stat,&ctllen,NULL,0); + + mem.total=uvm_stat.npages; + mem.used=uvm_stat.npages-uvm_stat.free; + + swap.total=uvm_stat.swpages; + swap.used=uvm_stat.swpgonly; /* Only count pages in swap which are + not also present in memory */ +#endif + + norm.total_used=(double)(mem.used+swap.used)/ + (double)(mem.total+swap.total); + norm.mem_used=(double)mem.used/(double)mem.total; + if (swap.total!=0) + norm.swap_used=(double)swap.used/(double)swap.total; + +#if defined(__DragonFly__) + kinfo_get_sched_cputime(&cpu_time); + user = cpu_time.cp_user; + nice = cpu_time.cp_nice; + system = cpu_time.cp_sys + cpu_time.cp_intr; + idle = cpu_time.cp_idle; +#else + ctl_name[0]=CTL_KERN; + ctl_name[1]=KERN_CP_TIME; + ctllen=sizeof(cputimes); + if(sysctl(ctl_name,2,cputimes,&ctllen,NULL,0)) + perror("sysctl"); + user=cputimes[0]; + nice=cputimes[1]; + system=cputimes[2] /*sys*/ + +cputimes[3]/*intr*/; + idle=cputimes[4]; +#endif + total=(user-old_user)+(nice-old_nice)+ + (system-old_system)+(idle-old_idle); + if ((total!=0)&(old_user!=0)) + { + cpu.user=(double)(user-old_user)/(double)total; + cpu.nice=(double)(nice-old_nice)/(double)total; + cpu.system=(double)(system-old_system)/(double)total; + cpu.idle=(double)(idle-old_idle)/(double)total; + } + else + cpu.user=cpu.nice=cpu.system=cpu.idle=0; + old_user=user; + old_nice=nice; + old_system=system; + old_idle=idle; + bbtool->Redraw(); } @@@@ -233,15 +256,15 @@@@ void ToolWindow::MakeWindow(bool reconfi label_counter++; } if (resource->show.label_totalused) { - label.width[6] = XTextWidth(resource->label.font,"0.00",strlen("0.00")); + label.width[8] = XTextWidth(resource->label.font,"0.00",strlen("0.00")); label_counter++; } if (resource->show.label_memused) { - label.width[7] = XTextWidth(resource->label.font,"0.00",strlen("0.00")); + label.width[6] = XTextWidth(resource->label.font,"0.00",strlen("0.00")); label_counter++; } if (resource->show.label_swapused) { - label.width[8] = XTextWidth(resource->label.font,"0.00",strlen("0.00")); + label.width[7] = XTextWidth(resource->label.font,"0.00",strlen("0.00")); label_counter++; } if (resource->show.label_usercpu) { @@@@ -545,7 +568,7 @@@@ void ToolWindow::RedrawGauge(double leve } } -void ToolWindow::RedrawLabel(double level,int labelnr) +void ToolWindow::RedrawLabel(double level,int labelnr,int idx, BColor colour) { char t[6]; @@@@ -561,15 +584,14 @@@@ void ToolWindow::RedrawLabel(double leve xposition+=label.seperator_width; } - XSetForeground(getXDisplay(),frameGC, - resource->label.load1m_textColor.getPixel()); + XSetForeground(getXDisplay(),frameGC, colour.getPixel()); labelnr++; sprintf(t,"%1.2f",level); XDrawString(getXDisplay(), labelwin, frameGC, xposition, (label.height+resource->label.font->ascent- resource->label.font->descent) / 2, t, strlen(t)); - xposition+=label.width[2]; + xposition+=label.width[idx]; } void ToolWindow::Redraw() @@@@ -577,12 +599,12 @@@@ void ToolWindow::Redraw() int offset=0; if (resource->show.load1m) { - RedrawGauge(check_load->getLoad().average1m,offset); + RedrawGauge(check_load->getLoad().average1m,offset); offset++; } if (resource->show.load5m) { - RedrawGauge(check_load->getLoad().average5m,offset); + RedrawGauge(check_load->getLoad().average5m,offset); offset++; } if (resource->show.load15m) @@@@ -678,53 +700,63 @@@@ void ToolWindow::Redraw() if (resource->show.label_load1m) { - RedrawLabel(check_load->getLoad().average1m,labelnr); - labelnr++; + RedrawLabel(check_load->getLoad().average1m,offset,2, + resource->label.load1m_textColor); + offset++; } if (resource->show.label_load5m) { - RedrawLabel(check_load->getLoad().average5m,labelnr); - labelnr++; + RedrawLabel(check_load->getLoad().average5m,offset,3, + resource->label.load5m_textColor); + offset++; } if (resource->show.label_load15m) { - RedrawLabel(check_load->getLoad().average15m,labelnr); - labelnr++; + RedrawLabel(check_load->getLoad().average15m,offset,4, + resource->label.load15m_textColor); + offset++; } if (resource->show.label_memused) { - RedrawLabel(check_load->getNorm().mem_used,labelnr); - labelnr++; + RedrawLabel(check_load->getNorm().mem_used,offset,6, + resource->label.memUsed_textColor); + offset++; } if (resource->show.label_swapused) { - RedrawLabel(check_load->getNorm().swap_used,labelnr); - labelnr++; + RedrawLabel(check_load->getNorm().swap_used,offset,7, + resource->label.swapUsed_textColor); + offset++; } if (resource->show.label_totalused) { - RedrawLabel(check_load->getNorm().total_used,labelnr); - labelnr++; + RedrawLabel(check_load->getNorm().total_used,offset,8, + resource->label.totalUsed_textColor); + offset++; } if (resource->show.label_usercpu) { - RedrawLabel(check_load->getCpu().user,labelnr); - labelnr++; + RedrawLabel(check_load->getCpu().user,offset,9, + resource->label.seperator_textColor); + offset++; } if (resource->show.label_nicecpu) { - RedrawLabel(check_load->getCpu().nice,labelnr); - labelnr++; + RedrawLabel(check_load->getCpu().nice,offset,10, + resource->label.seperator_textColor); + offset++; } if (resource->show.label_systemcpu) { - RedrawLabel(check_load->getCpu().system,labelnr); - labelnr++; + RedrawLabel(check_load->getCpu().system,offset,11, + resource->label.seperator_textColor); + offset++; } if (resource->show.label_idlecpu) { - RedrawLabel(check_load->getCpu().idle,labelnr); - labelnr++; + RedrawLabel(check_load->getCpu().idle,offset,12, + resource->label.seperator_textColor); + offset++; } } @ 1.2 log @Add DragonFly and modular Xorg support. @ text @d1 1 a1 1 $NetBSD$ d5 1 a5 1 @@@@ -21,6 +21,20 @@@@ d10 1 d14 1 @ 1.1 log @Initial revision @ text @d3 1 a3 1 --- bbsload.cc.orig Mon May 22 20:53:37 2000 d5 1 a5 1 @@@@ -21,6 +21,12 @@@@ d13 8 d26 1 a26 1 @@@@ -40,97 +46,81 @@@@ d45 3 d49 1 d51 4 d56 1 d155 7 d175 1 d183 7 d200 1 d220 1 a220 1 @@@@ -233,15 +223,15 @@@@ d239 1 a239 1 @@@@ -545,7 +535,7 @@@@ d248 1 a248 1 @@@@ -561,15 +551,14 @@@@ d266 1 a266 1 @@@@ -577,12 +566,12 @@@@ d281 1 a281 1 @@@@ -678,53 +667,63 @@@@ @ 1.1.1.1 log @Initial import of bbsload-0.2.5: bbsload is one of the 'bbtools' for the BlackBox window manager. It is a small (in dimensions) tool that will visualise various system parameters, like avarage load and memory usage. Provided by Martijn van Buul in pkg/16339. @ text @@