diff --git a/openbsd/cpu.cc b/openbsd/cpu.cc index 4fb2681..a0a31d4 100644 --- a/openbsd/cpu.cc +++ b/openbsd/cpu.cc @@ -1,5 +1,7 @@ -/* +/* 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. @@ -12,10 +14,7 @@ * 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. - * */ -// This file was Authored by Justin Crawford -// 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 #include // usleep @@ -34,7 +33,7 @@ uint8_t get_cpu_count() 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; @@ -52,7 +51,7 @@ float cpu_percentage( unsigned int cpu_usage_delay ) // get cpu times 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); @@ -60,7 +59,7 @@ float cpu_percentage( unsigned int cpu_usage_delay ) // update cpu times 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 @@ -80,6 +79,6 @@ float cpu_percentage( unsigned int cpu_usage_delay ) unsigned long long diff_idle = next_idle - current_idle; return static_cast(diff_user + diff_system + diff_nice) / - static_cast(diff_user + diff_system + diff_nice + diff_idle) * - 100.0; + static_cast(diff_user + diff_system + diff_nice + diff_idle) * + 100.0; } diff --git a/openbsd/cpu.h b/openbsd/cpu.h index 6cc5786..5bb6e87 100644 --- a/openbsd/cpu.h +++ b/openbsd/cpu.h @@ -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_ #define CPU_H_ diff --git a/openbsd/error.h b/openbsd/error.h index 5904c16..540b334 100644 --- a/openbsd/error.h +++ b/openbsd/error.h @@ -1,5 +1,7 @@ -/* +/* 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. @@ -12,29 +14,13 @@ * 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. - * */ -// This file was Authored by Justin Crawford -// 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_ -#define BSD_METER_COMMON_H_ +#ifndef BSD_ERROR_H_ +#define BSD_ERROR_H_ #include -// 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) { std::cerr << error << std::endl; exit(23); diff --git a/openbsd/load.cc b/openbsd/load.cc index 3b01e5e..1c3a88b 100644 --- a/openbsd/load.cc +++ b/openbsd/load.cc @@ -1,5 +1,7 @@ -/* +/* 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. @@ -12,11 +14,7 @@ * 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. - * */ -// This file was Authored by Justin Crawford -// 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 #include @@ -39,37 +37,37 @@ std::string load_string( bool use_colors = false ) 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 { - if( use_colors ) - { - // may not work - uint8_t cpu_count = get_cpu_count(); + if( use_colors ) + { + // may not work + uint8_t cpu_count = get_cpu_count(); - unsigned load_percent = static_cast( - averages[0] / cpu_count * 0.5f * 100.0f); + unsigned load_percent = static_cast( + averages[0] / cpu_count * 0.5f * 100.0f); - if( load_percent > 100 ) - { - load_percent = 100; - } + if( load_percent > 100 ) + { + load_percent = 100; + } - ss << load_lut[load_percent]; - } + ss << load_lut[load_percent]; + } - for( int i = 0; i < nelem; ++i ) - { - // Round to nearest, make sure this is only a 0.00 value not a 0.0000 - float avg = floorf( static_cast (averages[i] ) * 100 + 0.5 ) / 100; - ss << avg << " "; - } + for( int i = 0; i < nelem; ++i ) + { + // Round to nearest, make sure this is only a 0.00 value not a 0.0000 + float avg = floorf( static_cast (averages[i] ) * 100 + 0.5 ) / 100; + ss << avg << " "; + } - if( use_colors ) - { - ss << "#[fg=default,bg=default]"; - } + if( use_colors ) + { + ss << "#[fg=default,bg=default]"; + } } diff --git a/openbsd/load.h b/openbsd/load.h index 3b8d814..f1bbc58 100644 --- a/openbsd/load.h +++ b/openbsd/load.h @@ -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_ #define LOAD_H_ diff --git a/openbsd/memory.cc b/openbsd/memory.cc index 9586acf..953a212 100644 --- a/openbsd/memory.cc +++ b/openbsd/memory.cc @@ -1,5 +1,7 @@ -/* +/* 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. @@ -12,12 +14,7 @@ * 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. - * */ -// This file was Authored by Justin Crawford -// Pawel Soltys - -//#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 #include @@ -37,76 +34,76 @@ static int pageshift; std::string mem_string( bool use_colors = false ) { - 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; + std::ostringstream oss; - // get page size - static int hw_pagesize[] = { CTL_HW, HW_PAGESIZE }; - int page_size = 0; - size = sizeof( page_size ); - if( sysctl( hw_pagesize, 2, &page_size, &size, NULL, 0) < 0) - { - 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; - } + // These values are in bytes + int64_t total_mem = 0; + int64_t used_mem = 0; + int32_t free_mem = 0; + size_t size; - // get vm memory stats - static int vm_totalmem[] = { CTL_VM, VM_METER }; - struct vmtotal vm_total; - size = sizeof( vm_total ); - if( sysctl( vm_totalmem, 2, &vm_total, &size, NULL, 0 ) < 0 ) - { - error("memory: error getting vm memory stats"); - 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 ); - } + // get page size + static int hw_pagesize[] = { CTL_HW, HW_PAGESIZE }; + int page_size = 0; + size = sizeof( page_size ); + if( sysctl( hw_pagesize, 2, &page_size, &size, NULL, 0) < 0) + { + error("memory: error getting page size"); + exit(23); + } - // calculations based on conky openbsd port - used_mem = pagesh( vm_total.t_rm ); - free_mem = pagesh( vm_total.t_free ); + // calculate how far we must shift the variables + pageshift = 0; + while( page_size > 1 ) + { + pageshift++; + page_size >>= 1; + } - // 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]; - } + // get vm memory stats + static int vm_totalmem[] = { CTL_VM, VM_METER }; + struct vmtotal vm_total; + size = sizeof( vm_total ); + if( sysctl( vm_totalmem, 2, &vm_total, &size, NULL, 0 ) < 0 ) + { + error("memory: error getting vm memory stats"); + exit(23); + } - oss << convert_unit( used_mem, MEGABYTES ) - << '/' << convert_unit( total_mem, MEGABYTES ) << "MB"; + // 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 ); + } - if( use_colors ) - { - oss << "#[fg=default,bg=default]"; - } + // calculations based on conky openbsd port + used_mem = pagesh( vm_total.t_rm ); + 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(); } diff --git a/openbsd/memory.h b/openbsd/memory.h index 196dfd6..3a123bb 100644 --- a/openbsd/memory.h +++ b/openbsd/memory.h @@ -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_ #define MEMORY_H_