stddefs.h 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202
  1. /******************************************************************************
  2. ** stddefs.h : Standard definitions header file.
  3. **
  4. ** Copyright(c) 2006 Wipro Technologies - All Rights Reserved
  5. **
  6. ** Author : Gangadhar Uppala
  7. **
  8. ** $Id: stddefs.h,v 1.1.1.1 2008/05/08 07:26:21 anlzhao Exp $
  9. ******************************************************************************/
  10. #ifndef _STDDEFS_H_
  11. #define _STDDEFS_H_
  12. #include <stdio.h>
  13. #include <stdlib.h>
  14. #include <string.h>
  15. #include "types.h"
  16. #include <drv_debug.h>
  17. typedef void* PVOID;
  18. typedef INT32 RegionHandle_t;
  19. #define UNUSED_PARAMETER( _x_ ) ( (void)( _x_) )
  20. #define FAILURE -1
  21. #define SUCCESS 0
  22. #define GMIN(a,b) ( (a) < (b) ? (a) : (b) )
  23. #define GMAX(a,b) ( (a) > (b) ? (a) : (b) )
  24. #define GABS(X) ( (X) <0 ? (-(X)) : (X) )
  25. #define GMOD(X) ( ((X) < 0) ? -(X) : (X) ) /* ABS() returns +ve always */
  26. #define SWAP_DATA(a,b,temp) \
  27. do { \
  28. (temp) = (a); \
  29. (a) = (b); \
  30. (b) = (temp); \
  31. } while(0)
  32. #undef GUI_DEBUG_MSG
  33. #ifndef RELEASE_VER
  34. #define GUI_DEBUG_MSG
  35. #endif
  36. extern unsigned int sisdbgconf1;
  37. extern unsigned int sisdbgconf2;
  38. #undef GUI_MSG
  39. #ifdef GUI_DEBUG_MSG
  40. #define GUI_MSG(fmt, arg...) do {if (sisdbgconf1 & DBGCFG_MENU) fprintf(stderr, "[GUI] " fmt, ## arg);}while(0)
  41. #else
  42. #define GUI_MSG(fmt, arg...)
  43. #endif
  44. //SpikeYang, Show GUI ERROR automatically by IR ROBOT 2009-08-17
  45. #if !defined(IR_BOT_RANDOM_K) && !defined(IR_BOT_SEQ_K)
  46. #undef SHOW_ERROR
  47. #else
  48. //#define SHOW_ERROR
  49. #endif
  50. //#define SHOW_WARNING
  51. //#define SHOW_TRACE
  52. //#define SHOW_ERROR
  53. #ifdef ERROR
  54. #undef ERROR
  55. #endif
  56. #ifdef SHOW_ERROR
  57. #define ERROR(fmt, arg...) \
  58. do { \
  59. GUI_MSG("%s:ERROR: ",__FUNCTION__); \
  60. GUI_MSG(fmt, ## arg); \
  61. } while(0)
  62. #else
  63. #define ERROR(fmt, arg...)
  64. #endif
  65. #ifdef SHOW_WARNING
  66. #define WARN(fmt, arg...) \
  67. do { \
  68. GUI_MSG("%s:WARNING: ",__FUNCTION__); \
  69. GUI_MSG(fmt, ## arg); \
  70. } while(0)
  71. #else
  72. #define WARN(fmt, arg...)
  73. #endif
  74. #ifdef SHOW_TRACE
  75. #define TRACE(fmt, arg...) \
  76. do { \
  77. GUI_MSG("%s:TRACE: ",__FUNCTION__); \
  78. GUI_MSG(fmt, ## arg); \
  79. } while(0)
  80. #else
  81. #define TRACE(fmt, arg...)
  82. #endif
  83. #if 0
  84. #define NERROR(__X__)
  85. /*
  86. ** Checks if the given value is not in range of given value between low and high value
  87. */
  88. #define NOT_IN_RANGE_INCLUSIVE(var, low_limit, high_limit) ( (var < low_limit) && (var > high_limit) )
  89. /*
  90. ** Checks if the given value is in range of given value between low and high value
  91. */
  92. #define IS_IN_RANGE_INCLUSIVE(var, low_limit, high_limit) ( (var >= low_limit) && (var <= high_limit) )
  93. /*
  94. ** Add value in range of given value between low and high value
  95. ** if value is out of range then give lower value.
  96. */
  97. #define ADD_IN_RANGE_DEF_VALUE(var, addent, low_limit, high_limit, def_val) \
  98. do { \
  99. if( ((var+addent) < low_limit) || ((var+addent) > high_limit) ) { \
  100. var = def_val; \
  101. }\
  102. else { \
  103. var = var+addent; \
  104. } \
  105. } while(0)
  106. /*
  107. ** Add value in range of given value between low and high value
  108. */
  109. #define ADD_IN_RANGE(var, addent, low_limit, high_limit) \
  110. do { \
  111. if( (var+addent) < low_limit ) { \
  112. var = low_limit; \
  113. } else if ( (var+addent) > high_limit ) { \
  114. var = high_limit; \
  115. } else { \
  116. var = var+addent; \
  117. } \
  118. } while(0)
  119. /*
  120. ** Increment the var. If the var falls above high_limit then set it to
  121. ** low_limit.
  122. */
  123. #define INCR_ROLL(var, low_limit, high_limit) \
  124. do { \
  125. if( ( (var) < (low_limit) ) || ( (var) > (high_limit) ) ) { \
  126. PRINT("var (%d) is beyond (%d , %d)\n", (var), (low_limit), (high_limit)); \
  127. } \
  128. if ( (var) == (high_limit) ) { \
  129. (var) = (low_limit); \
  130. } else { \
  131. (var)++; \
  132. } \
  133. } while(0)
  134. /*
  135. ** Increment the var if != high_limit.
  136. */
  137. #define INCR_NO_ROLL(var, low_limit, high_limit) \
  138. do { \
  139. if( ( (var) < (low_limit) ) || ( (var) > (high_limit) ) ) { \
  140. PRINT("var (%d) is beyond (%d , %d)\n", (var), (low_limit), (high_limit)); \
  141. } \
  142. if ( (var) != (high_limit) ) { \
  143. (var)++; \
  144. } \
  145. } while(0)
  146. /*
  147. ** Decrement the var. If the var falls below low_limit then set it to
  148. ** high_limit.
  149. */
  150. #define DECR_ROLL(var, low_limit, high_limit) \
  151. do { \
  152. if( ( (var) < (low_limit) ) || ( (var) > (high_limit) ) ) { \
  153. PRINT("var (%d) is beyond (%d , %d)\n", (var), (low_limit), (high_limit)); \
  154. } \
  155. if ( (var) == (low_limit) ) { \
  156. (var) = (high_limit); \
  157. } else { \
  158. (var)--; \
  159. } \
  160. } while(0)
  161. /*
  162. ** Decrement the var if != low_limit.
  163. */
  164. #define DECR_NO_ROLL(var, low_limit, high_limit) \
  165. do { \
  166. if( ( (var) < (low_limit) ) || ( (var) > (high_limit) ) ) { \
  167. PRINT("var (%d) is beyond (%d , %d)\n", (var), (low_limit), (high_limit)); \
  168. } \
  169. if ( (var) != (low_limit) ) { \
  170. (var)--; \
  171. } \
  172. } while(0)
  173. #endif
  174. #ifdef __cplusplus
  175. }
  176. #endif
  177. #endif