* Licensed under the GPL v2. For licencing details see COPYING.
*/
-/** \file error.h list of error messages for all subsystems */
+/** \file error.h List of error messages for all subsystems. */
/** \cond */
-/* list of all subsystems that use paraslash's error facility */
+/* List of all subsystems that use paraslash's error facility. */
DEFINE_ERRLIST_OBJECT_ENUM;
/* these do not need error handling (yet) */
#define SHA1_ERRORS
#define RECV_ERRORS
#define AFH_COMMON_ERRORS
+#define RBTREE_ERRORS
+
extern const char **para_errlist[];
PARA_ERROR(BAD_ROW, "invalid row"), \
-#define RBTREE_ERRORS \
-
#define AFS_ERRORS \
PARA_ERROR(BAD_TABLE_NAME, "invalid table"), \
PARA_ERROR(NO_ATTRIBUTES, "no attributes defined yet"), \
PARA_ERROR(ATT_TABLE_FULL, "no more space left in attribute table"), \
+
#define BLOB_ERRORS \
PARA_ERROR(BLOB_SYNTAX, "blob syntax error"), \
PARA_ERROR(DUMMY_ROW, "attempted to access blob dummy object"), \
PARA_ERROR(AUDIOC_OVERRUN, "audioc buffer overrun"), \
-
#define CLIENT_COMMON_ERRORS \
PARA_ERROR(CLIENT_SYNTAX, "syntax error"), \
PARA_ERROR(INVALID_CHALLENGE, "did not receive valid challenge"), \
PARA_ERROR(HTTP_RECV_EOF, "http_recv: end of file"), \
PARA_ERROR(HTTP_RECV_OVERRUN, "http_recv: output buffer overrun"), \
+
#define RECV_COMMON_ERRORS \
PARA_ERROR(RECV_SYNTAX, "recv syntax error"), \
#define CHUNK_QUEUE_ERRORS \
PARA_ERROR(QUEUE, "packet queue overrun"), \
+
/** \endcond */
/**
- * the subsystem shift
+ * The subsystem shift.
*
* 255 error codes ought to be enough for every subsystem. Use the higher bits
- * of the return value to encode the subsystem number
+ * of the return value to encode the subsystem number.
*/
#define SS_SHIFT 8
/**
- * compute the subsystem offset
+ * Compute the subsystem offset.
*
- * It is given by x * 2**8 where \a x is the subsystem number
+ * It is given by x * 2**8 where \a x is the subsystem number.
*/
#define SS_OFFSET(ss) (SS_ ## ss << SS_SHIFT)
/**
- * make the enum of all errors of one subsystem
+ * Make the enum of all errors of one subsystem.
*
* As zero should not be an error, we define a dummy enum entry with value
* 2**ss. That lets the real errors start at 2**ss + 1.
ss ## _ERRORS}
/**
- * determine the subsystem number from the error number
+ * Determine the subsystem number from the error number.
*
* Easy, it's just \a num / 2**8.
*/
#define ERRNUM_TO_SS(num) ((num) >> SS_SHIFT)
/**
- * determine the index of an error number
+ * Determine the index of an error number.
*
* Also easy: It's the lower 8 bits of num.
*/
}
/**
- * paraslash's version of strerror(3)
+ * Paraslash's version of strerror(3).
*
- * expands to the error text of \a num (a string constant).
+ * Expands to the error text of \a num (a string constant).
*/
#define PARA_STRERROR(num) IS_SYSTEM_ERROR(num)? \
strerror((num) & ((1 << SYSTEM_ERROR_BIT) - 1)) : \
para_errlist[ERRNUM_TO_SS(num)] [ERRNUM_TO_INDEX(num)]
/**
- * define the error list for one subsystem
+ * Define the error list for one subsystem.
#
* The first entry (index 0) is always the name of the subsystem
- * Used by macros in config.h (generated by configure)
+ * Used by macros in config.h (generated by configure).
*/
#define DEFINE_ERRLIST(ss) const char * ss ## _ERRLIST[] = {#ss, ss ## _ERRORS}
/**
- * activate errors for one subsystem.
+ * Activate errors for one subsystem.
*
* Each executable needs only the error lists of those subsystems it is
* actually linked with. We always reserve space for NUM_SS char pointers,
#define PARA_ERROR(err, msg) E_ ## err
#include "error2.h"
#undef PARA_ERROR
-/* rest of the world only sees the error text */
+/* Rest of the world only sees the error text. */
#define PARA_ERROR(err, msg) msg