blob: 37cdc956151daf2a8c0c40eb96e45a7a05d3293e [file] [log] [blame]
/*
error.h - Part of libsensors, a Linux library for reading sensor data.
Copyright (c) 1998, 1999 Frodo Looijaard <frodol@dds.nl>
Copyright (C) 2007-2009 Jean Delvare <khali@linux-fr.org>
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
MA 02110-1301 USA.
*/
#ifndef LIB_SENSORS_ERROR_H
#define LIB_SENSORS_ERROR_H
#define SENSORS_ERR_WILDCARDS 1 /* Wildcard found in chip name */
#define SENSORS_ERR_NO_ENTRY 2 /* No such subfeature known */
#define SENSORS_ERR_ACCESS_R 3 /* Can't read */
#define SENSORS_ERR_KERNEL 4 /* Kernel interface error */
#define SENSORS_ERR_DIV_ZERO 5 /* Divide by zero */
#define SENSORS_ERR_CHIP_NAME 6 /* Can't parse chip name */
#define SENSORS_ERR_BUS_NAME 7 /* Can't parse bus name */
#define SENSORS_ERR_PARSE 8 /* General parse error */
#define SENSORS_ERR_ACCESS_W 9 /* Can't write */
#define SENSORS_ERR_IO 10 /* I/O error */
#define SENSORS_ERR_RECURSION 11 /* Evaluation recurses too deep */
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
/* This function returns a pointer to a string which describes the error.
errnum may be negative (the corresponding positive error is returned).
You may not modify the result! */
const char *sensors_strerror(int errnum);
/* These functions are called when a parse error is detected. Give them new
values, and your own functions are called instead of the default (which
print to stderr). These functions may terminate the program, but they
usually output an error and return. The first function is the original
one, the second one was added later when support for multiple
configuration files was added.
The library code now only calls the second function. However, for
backwards compatibility, if an application provides a custom handling
function for the first function but not the second, then all parse
errors will be reported using the first function (that is, the filename
is never reported.)
Note that filename can be NULL (if filename isn't known) and lineno
can be 0 (if the error occurs before the actual parsing starts.) */
extern void (*sensors_parse_error) (const char *err, int lineno);
extern void (*sensors_parse_error_wfn) (const char *err,
const char *filename, int lineno);
/* This function is called when an immediately fatal error (like no
memory left) is detected. Give it a new value, and your own function
is called instead of the default (which prints to stderr and ends
the program). Never let it return! */
extern void (*sensors_fatal_error) (const char *proc, const char *err);
#ifdef __cplusplus
}
#endif /* __cplusplus */
#endif /* def LIB_SENSORS_ERROR_H */