X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=error.h;h=0af0dec9828858979ab5c8100d2423a851b2b11d;hp=899c574b315cd9e8ee7356eb29c1828e1dd6ae04;hb=f5cf47f2bc4bb76d0d21e2467c5846cade38558f;hpb=dbb405c2381c2264ab7da2aa80bdb2cfc6e9d51d;ds=sidebyside diff --git a/error.h b/error.h index 899c574b..0af0dec9 100644 --- a/error.h +++ b/error.h @@ -135,7 +135,6 @@ PARA_ERROR(ID3_SETENCODING, "could not set id3 text encoding field"), \ PARA_ERROR(ID3_SETSTRING, "could not set id3 string field"), \ PARA_ERROR(INCOHERENT_BLOCK_LEN, "incoherent block length"), \ - PARA_ERROR(INVALID_AUDIOD_CMD, "invalid command"), \ PARA_ERROR(KEY_MARKER, "invalid/missing key header or footer"), \ PARA_ERROR(KEY_PERM, "unprotected private key"), \ PARA_ERROR(LIBSAMPLERATE, "secret rabbit code error"), \ @@ -287,19 +286,28 @@ extern const char * const para_errlist[]; */ #define OSL_ERROR_BIT 29 +#define LLS_ERROR_BIT 28 + /** Check whether the system error bit is set. */ #define IS_SYSTEM_ERROR(num) (!!((num) & (1 << SYSTEM_ERROR_BIT))) /** Check whether the osl error bit is set. */ #define IS_OSL_ERROR(num) (!!((num) & (1 << OSL_ERROR_BIT))) +/** Check whether the lopsub error bit is set. */ +#define IS_LLS_ERROR(num) (!!((num) & (1 << LLS_ERROR_BIT))) + /** Set the system error bit for the given number. */ #define ERRNO_TO_PARA_ERROR(num) ((num) | (1 << SYSTEM_ERROR_BIT)) /** Set the osl error bit for the given number. */ #define OSL_ERRNO_TO_PARA_ERROR(num) ((num) | (1 << OSL_ERROR_BIT)) +/** Set the lopsub error bit for the error code. */ +#define LLS_ERRNO_TO_PARA_ERROR(num) ((num) | (1 << LLS_ERROR_BIT)) + static const char *weak_osl_strerror(int) __attribute__ ((weakref("osl_strerror"))); +static const char *weak_lls_strerror(int) __attribute__ ((weakref("lls_strerror"))); /** * Paraslash's version of strerror(3). * @@ -314,6 +322,10 @@ _static_inline_ const char *para_strerror(int num) assert(weak_osl_strerror); return weak_osl_strerror(num & ~(1U << OSL_ERROR_BIT)); } + if (IS_LLS_ERROR(num)) { + assert(weak_lls_strerror); + return weak_lls_strerror(num & ~(1U << LLS_ERROR_BIT)); + } if (IS_SYSTEM_ERROR(num)) return strerror(num & ~(1U << SYSTEM_ERROR_BIT)); return para_errlist[num]; @@ -336,3 +348,16 @@ _static_inline_ int osl(int ret) return ret; return -OSL_ERRNO_TO_PARA_ERROR(-ret); } + +/** + * Wrapper for lopsub library calls. + * + * \param ret See osl(). + * \return See osl(). + */ +_static_inline_ int lls(int ret) +{ + if (ret >= 0) + return ret; + return -LLS_ERRNO_TO_PARA_ERROR(-ret); +}