blob: 9a357921cff93bfb79d9412bf681744772049812 [file] [log] [blame]
/*
$License:
Copyright (C) 2011 InvenSense Corporation, All Rights Reserved.
$
*/
/*******************************************************************************
*
* $Id: mltypes.h 3680 2010-09-04 03:13:32Z mcaramello $
*
*******************************************************************************/
#ifndef _MLERRORCODE_H_
#define _MLERRORCODE_H_
#include "mltypes.h"
#ifdef __cplusplus
extern "C" {
#endif
/*
Defines
*/
#define CALL_N_CHECK(f) { \
unsigned int r35uLt = f; \
if(INV_SUCCESS != r35uLt) { \
MPL_LOGE("Error in file %s, line %d : %s returned code %s (#%d)\n", \
__FILE__, __LINE__, #f, MLErrorCode(r35uLt), r35uLt); \
} \
}
#define CALL_CHECK_N_RETURN_ERROR(f) { \
unsigned int r35uLt = f; \
if(INV_SUCCESS != r35uLt) { \
MPL_LOGE("Error in file %s, line %d : %s returned code %s (#%d)\n", \
__FILE__, __LINE__, #f, MLErrorCode(r35uLt), r35uLt); \
return r35uLt; \
} \
}
// for functions returning void
#define CALL_CHECK_N_RETURN(f) do { \
unsigned int r35uLt = f; \
if(INV_SUCCESS != r35uLt) { \
MPL_LOGE("Error in file %s, line %d : %s returned code %s (#%d)\n", \
__FILE__, __LINE__, #f, MLErrorCode(r35uLt), r35uLt); \
return; \
} \
} while(0)
#define CALL_CHECK_N_EXIT(f) { \
unsigned int r35uLt = f; \
if(INV_SUCCESS != r35uLt) { \
MPL_LOGE("Error in file %s, line %d : %s returned code %s (#%d)\n", \
__FILE__, __LINE__, #f, MLErrorCode(r35uLt), r35uLt); \
exit (r35uLt); \
} \
}
#define CALL_CHECK_N_CALLBACK(f, cb) { \
unsigned int r35uLt = f; \
if(INV_SUCCESS != r35uLt) { \
MPL_LOGE("Error in file %s, line %d : %s returned code %s (#%d)\n", \
__FILE__, __LINE__, #f, MLErrorCode(r35uLt), r35uLt); \
cb; \
} \
}
#define CALL_CHECK_N_GOTO(f, label) { \
unsigned int r35uLt = f; \
if(INV_SUCCESS != r35uLt) { \
MPL_LOGE("Error in file %s, line %d : %s returned code %s (#%d)\n", \
__FILE__, __LINE__, #f, MLErrorCode(r35uLt), r35uLt); \
goto label; \
} \
}
char* MLErrorCode(inv_error_t errorcode);
#ifdef __cplusplus
}
#endif
#endif