From 33eac9d16dc9c4ea97b647104f5c668bdeb0d249 Mon Sep 17 00:00:00 2001 From: "Pawel \"l0ner\" Soltys" Date: Sun, 1 Feb 2015 16:38:49 +0100 Subject: [PATCH] openbsd: changed cpu stats errors --- openbsd/cpu.cc | 5 ++-- openbsd/error.cc | 70 ++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 72 insertions(+), 3 deletions(-) create mode 100644 openbsd/error.cc diff --git a/openbsd/cpu.cc b/openbsd/cpu.cc index c2019e1..3d78f14 100644 --- a/openbsd/cpu.cc +++ b/openbsd/cpu.cc @@ -16,7 +16,6 @@ * limitations under the License. */ -#include #include // usleep #include @@ -51,7 +50,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 initial cpu stats"); } usleep(cpu_usage_delay); @@ -59,7 +58,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 updated cpu stats"); } // Current load times diff --git a/openbsd/error.cc b/openbsd/error.cc new file mode 100644 index 0000000..bc3dac3 --- /dev/null +++ b/openbsd/error.cc @@ -0,0 +1,70 @@ +/* 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. + */ + +#include +#include +#include + +#include "error.h" + +void error( const char * error ) +{ + using std::cerr; + using std::endl; + + cerr << error; + + switch( errno ) + { + case EFAULT: + cerr << "Bad address"; + break; + case EINVAL: + cerr << "Invalid argument"; + break; + case ENOMEM: + cerr << "Cannot allocate memory"; + break; + case ENOENT: + cerr << "No such file or directory"; + break; + case ENXIO: + cerr << "Device not configured"; + break; + case ENOTDIR: + cerr << "Not a directory"; + break; + case EOPNOTSUPP: + cerr << "Operation not supported"; + break; + case EPERM: + cerr << "Operation not permitted"; + break; + case ESRCH: + cerr << "No such process"; + break; + default: + cerr << "Unknown error code: " << errno; + break; + } + + cerr << endl; + + exit( 23 ); +} +