removed junk, reindentation to adhere to style guidelines

This commit is contained in:
Pawel "l0ner" Soltys 2015-01-20 02:57:14 +01:00
parent 580b076b79
commit 3e7ce96903
7 changed files with 164 additions and 130 deletions

@ -1,5 +1,7 @@
/* /* vim: tabstop=2 shiftwidth=2 expandtab textwidth=80 linebreak wrap
*
* Copyright 2012 Matthew McCormick * Copyright 2012 Matthew McCormick
* Copyright 2015 Pawel 'l0ner' Soltys
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@ -12,10 +14,7 @@
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and * See the License for the specific language governing permissions and
* limitations under the License. * limitations under the License.
* */ */
// This file was Authored by Justin Crawford <Justasic@gmail.com>
// Based on: github.com/freebsd/freebsd/blob/master/usr.bin/top/machine.c
// Based on: Apple.cpp for load_string/mem_string and apple's documentation
#include <sys/types.h> #include <sys/types.h>
#include <unistd.h> // usleep #include <unistd.h> // usleep
@ -34,7 +33,7 @@ uint8_t get_cpu_count()
if(sysctl(mib, 2, &cpu_count, &len, NULL, 0) < 0) if(sysctl(mib, 2, &cpu_count, &len, NULL, 0) < 0)
{ {
error("sysctl: error getting cpu count"); error("sysctl: error getting cpu count");
} }
return cpu_count; return cpu_count;
@ -52,7 +51,7 @@ float cpu_percentage( unsigned int cpu_usage_delay )
// get cpu times // get cpu times
if(sysctl(cpu_ctl, 2, &load1, &size, NULL, 0) < 0) if(sysctl(cpu_ctl, 2, &load1, &size, NULL, 0) < 0)
{ {
error("sysctl: error getting cpu stats"); error("sysctl: error getting cpu stats");
} }
usleep(cpu_usage_delay); usleep(cpu_usage_delay);
@ -60,7 +59,7 @@ float cpu_percentage( unsigned int cpu_usage_delay )
// update cpu times // update cpu times
if(sysctl(cpu_ctl, 2, &load2, &size, NULL, 0) < 0) if(sysctl(cpu_ctl, 2, &load2, &size, NULL, 0) < 0)
{ {
error("sysctl: error getting cpu stats"); error("sysctl: error getting cpu stats");
} }
// Current load times // Current load times
@ -80,6 +79,6 @@ float cpu_percentage( unsigned int cpu_usage_delay )
unsigned long long diff_idle = next_idle - current_idle; unsigned long long diff_idle = next_idle - current_idle;
return static_cast<float>(diff_user + diff_system + diff_nice) / return static_cast<float>(diff_user + diff_system + diff_nice) /
static_cast<float>(diff_user + diff_system + diff_nice + diff_idle) * static_cast<float>(diff_user + diff_system + diff_nice + diff_idle) *
100.0; 100.0;
} }

@ -1,3 +1,21 @@
/* vim: tabstop=2 shiftwidth=2 expandtab textwidth=80 linebreak wrap
*
* Copyright 2012 Matthew McCormick
* Copyright 2015 Pawel 'l0ner' Soltys
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#ifndef CPU_H_ #ifndef CPU_H_
#define CPU_H_ #define CPU_H_

@ -1,5 +1,7 @@
/* /* vim: tabstop=2 shiftwidth=2 expandtab textwidth=80 linebreak wrap
*
* Copyright 2012 Matthew McCormick * Copyright 2012 Matthew McCormick
* Copyright 2015 Pawel 'l0ner' Soltys
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@ -12,29 +14,13 @@
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and * See the License for the specific language governing permissions and
* limitations under the License. * limitations under the License.
* */ */
// This file was Authored by Justin Crawford <Justasic@gmail.com>
// Based on: github.com/freebsd/freebsd/blob/master/usr.bin/top/machine.c
// Based on: Apple.cpp for load_string/mem_string and apple's documentation
#ifndef BSD_METER_COMMON_H_ #ifndef BSD_ERROR_H_
#define BSD_METER_COMMON_H_ #define BSD_ERROR_H_
#include <iostream> #include <iostream>
// Memory Sizes
#define KILOBYTES(x) ((x)/1024)
#define MEGABYTES(x) (KILOBYTES((x))/1024)
#define GIGABYTES(x) (MEGABYTES((x))/1024)
// CPU percentages stuff
#define CP_USER 0
#define CP_NICE 1
#define CP_SYS 2
#define CP_INTR 3
#define CP_IDLE 4
#define CPUSTATES 5
inline void error(const char * error) { inline void error(const char * error) {
std::cerr << error << std::endl; std::cerr << error << std::endl;
exit(23); exit(23);

@ -1,5 +1,7 @@
/* /* vim: tabstop=2 shiftwidth=2 expandtab textwidth=80 linebreak wrap
*
* Copyright 2012 Matthew McCormick * Copyright 2012 Matthew McCormick
* Copyright 2015 Pawel 'l0ner' Soltys
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@ -12,11 +14,7 @@
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and * See the License for the specific language governing permissions and
* limitations under the License. * limitations under the License.
* */ */
// This file was Authored by Justin Crawford <Justasic@gmail.com>
// Based on: https://github.com/freebsd/freebsd/blob/master/usr.bin/top/machine.c
// Based on: Apple.cpp for load_string/mem_string and apple's documentation
#include <sstream> #include <sstream>
#include <string> #include <string>
@ -39,37 +37,37 @@ std::string load_string( bool use_colors = false )
if( getloadavg( averages, nelem ) < 0) if( getloadavg( averages, nelem ) < 0)
{ {
ss << "0.00 0.00 0.00"; // couldn't get averages. ss << "0.00 0.00 0.00"; // couldn't get averages.
} }
else else
{ {
if( use_colors ) if( use_colors )
{ {
// may not work // may not work
uint8_t cpu_count = get_cpu_count(); uint8_t cpu_count = get_cpu_count();
unsigned load_percent = static_cast<unsigned int>( unsigned load_percent = static_cast<unsigned int>(
averages[0] / cpu_count * 0.5f * 100.0f); averages[0] / cpu_count * 0.5f * 100.0f);
if( load_percent > 100 ) if( load_percent > 100 )
{ {
load_percent = 100; load_percent = 100;
} }
ss << load_lut[load_percent]; ss << load_lut[load_percent];
} }
for( int i = 0; i < nelem; ++i ) for( int i = 0; i < nelem; ++i )
{ {
// Round to nearest, make sure this is only a 0.00 value not a 0.0000 // Round to nearest, make sure this is only a 0.00 value not a 0.0000
float avg = floorf( static_cast<float> (averages[i] ) * 100 + 0.5 ) / 100; float avg = floorf( static_cast<float> (averages[i] ) * 100 + 0.5 ) / 100;
ss << avg << " "; ss << avg << " ";
} }
if( use_colors ) if( use_colors )
{ {
ss << "#[fg=default,bg=default]"; ss << "#[fg=default,bg=default]";
} }
} }

@ -1,3 +1,21 @@
/* vim: tabstop=2 shiftwidth=2 expandtab textwidth=80 linebreak wrap
*
* Copyright 2012 Matthew McCormick
* Copyright 2015 Pawel 'l0ner' Soltys
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#ifndef LOAD_H_ #ifndef LOAD_H_
#define LOAD_H_ #define LOAD_H_

@ -1,5 +1,7 @@
/* /* vim: tabstop=2 shiftwidth=2 expandtab textwidth=80 linebreak wrap
*
* Copyright 2012 Matthew McCormick * Copyright 2012 Matthew McCormick
* Copyright 2015 Pawel 'l0ner' Soltys
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@ -12,12 +14,7 @@
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and * See the License for the specific language governing permissions and
* limitations under the License. * limitations under the License.
* */ */
// This file was Authored by Justin Crawford <Justasic@gmail.com>
// Pawel Soltys <pwslts@gmail.com>
//#error ToDo: OpenBSD. This file is incomplete and likely will not compile if
//you remove this error (it is here to tell you it's unfinished)
#include <sstream> #include <sstream>
#include <string> #include <string>
@ -37,76 +34,76 @@ static int pageshift;
std::string mem_string( bool use_colors = false ) std::string mem_string( bool use_colors = false )
{ {
std::ostringstream oss; std::ostringstream oss;
// These values are in bytes
int64_t total_mem = 0;
int64_t used_mem = 0;
int32_t free_mem = 0;
size_t size;
// get page size // These values are in bytes
static int hw_pagesize[] = { CTL_HW, HW_PAGESIZE }; int64_t total_mem = 0;
int page_size = 0; int64_t used_mem = 0;
size = sizeof( page_size ); int32_t free_mem = 0;
if( sysctl( hw_pagesize, 2, &page_size, &size, NULL, 0) < 0) size_t size;
{
error("memory: error getting page size");
exit(23);
}
// calculate how far we must shift the variables
pageshift = 0;
while( page_size > 1 )
{
pageshift++;
page_size >>= 1;
}
// get vm memory stats // get page size
static int vm_totalmem[] = { CTL_VM, VM_METER }; static int hw_pagesize[] = { CTL_HW, HW_PAGESIZE };
struct vmtotal vm_total; int page_size = 0;
size = sizeof( vm_total ); size = sizeof( page_size );
if( sysctl( vm_totalmem, 2, &vm_total, &size, NULL, 0 ) < 0 ) if( sysctl( hw_pagesize, 2, &page_size, &size, NULL, 0) < 0)
{ {
error("memory: error getting vm memory stats"); error("memory: error getting page size");
exit(23); exit(23);
} }
// In case we need it, this gets the cached memory (bcstats.numbufpages)
static int vm_bcstats[] = { CTL_VFS, VFS_GENERIC, VFS_BCACHESTAT };
struct bcachestats bcstats;
size = sizeof( bcstats );
if( sysctl( vm_bcstats, 3, &bcstats, &size, NULL, 0 ) < 0 )
{
error( "memory: error getting cached memory size" );
exit( 23 );
}
// calculations based on conky openbsd port // calculate how far we must shift the variables
used_mem = pagesh( vm_total.t_rm ); pageshift = 0;
free_mem = pagesh( vm_total.t_free ); while( page_size > 1 )
{
pageshift++;
page_size >>= 1;
}
// from nagios-memory plugin // get vm memory stats
used_mem -= pagesh( bcstats.numbufpages ); static int vm_totalmem[] = { CTL_VM, VM_METER };
free_mem += pagesh( bcstats.numbufpages ); struct vmtotal vm_total;
size = sizeof( vm_total );
// calculate total memory if( sysctl( vm_totalmem, 2, &vm_total, &size, NULL, 0 ) < 0 )
total_mem = used_mem + free_mem; {
error("memory: error getting vm memory stats");
if( use_colors ) exit(23);
{ }
oss << mem_lut[( 100 * used_mem ) / total_mem];
}
oss << convert_unit( used_mem, MEGABYTES ) // In case we need it, this gets the cached memory (bcstats.numbufpages)
<< '/' << convert_unit( total_mem, MEGABYTES ) << "MB"; static int vm_bcstats[] = { CTL_VFS, VFS_GENERIC, VFS_BCACHESTAT };
struct bcachestats bcstats;
size = sizeof( bcstats );
if( sysctl( vm_bcstats, 3, &bcstats, &size, NULL, 0 ) < 0 )
{
error( "memory: error getting cached memory size" );
exit( 23 );
}
if( use_colors ) // calculations based on conky openbsd port
{ used_mem = pagesh( vm_total.t_rm );
oss << "#[fg=default,bg=default]"; free_mem = pagesh( vm_total.t_free );
}
return oss.str(); // from nagios-memory plugin
used_mem -= pagesh( bcstats.numbufpages );
free_mem += pagesh( bcstats.numbufpages );
// calculate total memory
total_mem = used_mem + free_mem;
if( use_colors )
{
oss << mem_lut[( 100 * used_mem ) / total_mem];
}
oss << convert_unit( used_mem, MEGABYTES )
<< '/' << convert_unit( total_mem, MEGABYTES ) << "MB";
if( use_colors )
{
oss << "#[fg=default,bg=default]";
}
return oss.str();
} }

@ -1,3 +1,21 @@
/* vim: tabstop=2 shiftwidth=2 expandtab textwidth=80 linebreak wrap
*
* Copyright 2012 Matthew McCormick
* Copyright 2015 Pawel 'l0ner' Soltys
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#ifndef MEMORY_H_ #ifndef MEMORY_H_
#define MEMORY_H_ #define MEMORY_H_