#ifndef __DEBUG_H__ #define __DEBUG_H__ #define CHECK(cond,ret) \ do{\ if((cond)){\ return((ret));\ }\ }while(0) #define CHK_RETURN(cond,msg,ret) \ do{\ if((cond)){\ if((msg))ERR((msg));\ return((ret));\ }\ }while(0) void printArray(const char * func, int line, unsigned char arr[], int l); #define _MSG_ARRAY(array, len) do { \ if (1) \ { \ printArray(__func__, __LINE__, array, len);\ } \ } while(0) #define print_raw_data(data, len) _MSG_ARRAY(data, len) #define DEBUG 1 #ifdef DEBUG #define LOG(format,...) printf("[%s:%d] "format"\n", __FUNCTION__, __LINE__, ##__VA_ARGS__) #define ERROR(format,...) \ do{ \ fprintf(stderr, "[ERROR at:]%s func: %s line: %d\nerror:"format"\n", \ __FILE__, __FUNCTION__, __LINE__, ##__VA_ARGS__); \ }while(0) #define PrintArray1D(arr, m) \ do \ { \ if (m > 0) { \ int i = 0; \ printf("arr:"); \ for (i = 0; i < m; i++) { \ if(arr[i] == '\0') \ printf(" "); \ else \ printf("%c ", arr[i]); \ } \ printf("\n"); \ } \ }while(0) #define PrintArray2D(arr, m, n) \ do \ { \ int i = 0; \ int j = 0; \ for(i=0;i