DebugInitDef.h
上传用户:lqx1163
上传日期:2014-08-13
资源大小:9183k
文件大小:9k
源码类别:

MTK

开发平台:

C/C++

  1. /*****************************************************************************
  2. *  Copyright Statement:
  3. *  --------------------
  4. *  This software is protected by Copyright and the information contained
  5. *  herein is confidential. The software may not be copied and the information
  6. *  contained herein may not be used or disclosed except with the written
  7. *  permission of MediaTek Inc. (C) 2005
  8. *
  9. *  BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
  10. *  THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
  11. *  RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
  12. *  AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
  13. *  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
  14. *  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
  15. *  NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
  16. *  SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
  17. *  SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
  18. *  THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
  19. *  NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
  20. *  SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
  21. *
  22. *  BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
  23. *  LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
  24. *  AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
  25. *  OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
  26. *  MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE. 
  27. *
  28. *  THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
  29. *  WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
  30. *  LAWS PRINCIPLES.  ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
  31. *  RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
  32. *  THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
  33. *
  34. *****************************************************************************/
  35. /*******************************************************************************
  36.  * Filename:
  37.  * ---------
  38.  *  DebugInitDef.h
  39.  *
  40.  * Project:
  41.  * --------
  42.  *  MAUI
  43.  *
  44.  * Description:
  45.  * ------------
  46.  *  
  47.  *
  48.  * Author:
  49.  * -------
  50.  *  
  51.  *
  52.  *==============================================================================
  53.  *             HISTORY
  54.  * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!! 
  55.  *------------------------------------------------------------------------------
  56.  * removed!
  57.  *
  58.  *------------------------------------------------------------------------------
  59.  * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!! 
  60.  *==============================================================================
  61.  *******************************************************************************/
  62. /**
  63.  * Copyright Notice
  64.  * ?2002 - 2003, Pixtel Communications, Inc., 1489 43rd Ave. W.,
  65.  * Vancouver, B.C. V6M 4K8 Canada. All Rights Reserved.
  66.  *  (It is illegal to remove this copyright notice from this software or any
  67.  *  portion of it)
  68.  */
  69. /**************************************************************
  70.    FILENAME : DebugInitDef.h
  71.    PURPOSE     : To implement debug print levels and their conditional configurations.
  72.    REMARKS     : nil
  73.    AUTHOR      : Pixtel Engineers
  74.    DATE     : 
  75. **************************************************************/
  76. #ifndef _DEBUG_INT_H
  77. #define _DEBUG_INT_H
  78. #include "PixtelDataTypes.h"
  79. #if defined(MMI_ON_HARDWARE_P)
  80. #include "kal_release.h"        /* Target or MNT */
  81. #elif !defined(__GNUC__)
  82. #include "assert.h"     /* PC Simulator. Not resource generator. */
  83. #endif 
  84. #if defined(MMI_ON_HARDWARE_P)
  85. #include "kal_trace.h"
  86. #define MMI_TRACE_FUNC        TRACE_FUNC
  87. #define MMI_TRACE_STATE       TRACE_STATE
  88. #define MMI_TRACE_INFO        TRACE_INFO
  89. #define MMI_TRACE_WARNING     TRACE_WARNING
  90. #define MMI_TRACE_ERROR       TRACE_ERROR
  91. #define MMI_TRACE_G1_FRM      TRACE_GROUP_1
  92. #define MMI_TRACE_G2_GUI      TRACE_GROUP_2
  93. #define MMI_TRACE_G3_BOOTUP   TRACE_GROUP_3
  94. #define MMI_TRACE_G4_PHB      TRACE_GROUP_4
  95. #define MMI_TRACE_G5_CM       TRACE_GROUP_5
  96. #define MMI_TRACE_G6_SMS      TRACE_GROUP_6
  97. #define MMI_TRACE_G7_MISC     TRACE_GROUP_7
  98. #define MMI_TRACE_G8_MEDIA    TRACE_GROUP_8
  99. #define MMI_TRACE_G9_EMAIL    TRACE_GROUP_9
  100. #define MMI_TRACE_G10_RESERVED TRACE_GROUP_10
  101. #define MAX_MMI_TRACE_LOG_TYPE (MMI_TRACE_G10_RESERVED+1)
  102. #else /* defined(MMI_ON_HARDWARE_P) */ 
  103. typedef enum
  104. {
  105.     MMI_TRACE_FUNC = 0,
  106.     MMI_TRACE_STATE,
  107.     MMI_TRACE_INFO,
  108.     MMI_TRACE_WARNING,
  109.     MMI_TRACE_ERROR,
  110.     MMI_TRACE_G1_FRM,
  111.     MMI_TRACE_G2_GUI,
  112.     MMI_TRACE_G3_BOOTUP,
  113.     MMI_TRACE_G4_PHB,
  114.     MMI_TRACE_G5_CM,
  115.     MMI_TRACE_G6_SMS,
  116.     MMI_TRACE_G7_MISC,
  117.     MMI_TRACE_G8_MEDIA,
  118.     MMI_TRACE_G9_EMAIL,
  119.     MMI_TRACE_G10_RESERVED,
  120.     MAX_MMI_TRACE_LOG_TYPE
  121. } mmi_log_type_enum;
  122. #endif /* defined(MMI_ON_HARDWARE_P) */ 
  123. #if defined(__TST_MODULE__)
  124. #define DEBUG_INFORMATION 1
  125. #endif 
  126. #define DEBUG_ASSERT    1
  127. extern void Trace(S8 *fmt, ...);
  128. extern void Trace2(U32 fmt, S8 *arg_type, ...);
  129. extern void Trace3(U32 fmt, U32 arg_type, ...);
  130. extern void init_trace_table(void);
  131. extern char *get_trace_table(int msg_id);
  132. #ifdef DEBUG_TRACE
  133. #ifdef DEBUG_TEMPORARY
  134. #define DEBUG_FATAL
  135. #define DEBUG_ERROR
  136. #define DEBUG_INFORMATION
  137. #define DEBUG_DUMP
  138. #else /* DEBUG_TEMPORARY */ 
  139. #ifdef DEBUG_DUMP
  140. #define DEBUG_FATAL
  141. #define DEBUG_ERROR
  142. #define DEBUG_INFORMATION
  143. #else /* DEBUG_DUMP */ 
  144. #ifdef DEBUG_INFORMATION
  145. #define DEBUG_FATAL
  146. #define DEBUG_ERROR
  147. #else /* DEBUG_INFORMATION */ 
  148. #ifdef DEBUG_ERROR
  149. #define DEBUG_FATAL
  150. #else /* DEBUG_ERROR */ 
  151. #undef DEBUG_TEMPORARY
  152. #undef DEBUG_DUMP
  153. #undef DEBUG_INFORMATION
  154. #undef DEBUG_ERROR
  155. #undef DEBUG_FATAL
  156. #endif /* DEBUG_ERROR */ 
  157. #endif /* DEBUG_INFORMATION */ 
  158. #endif /* DEBUG_DUMP */ 
  159. #endif /* DEBUG_TEMPORARY */ 
  160. #endif /* DEBUG_TRACE */ 
  161. #ifdef DEBUG_TEMPORARY
  162. #define PRINT_TEMPORARY(args) Trace args
  163. #else 
  164. #define PRINT_TEMPORARY(args) NULL
  165. #endif 
  166. #ifdef DEBUG_DUMP
  167. #define PRINT_DUMP(args) Trace args
  168. #else 
  169. #define PRINT_DUMP(args) NULL
  170. #endif 
  171. #ifdef DEBUG_INFORMATION
  172. #define PRINT_INFORMATION(args) Trace args
  173. #define PRINT_INFORMATION_2(args) Trace2 args
  174. #define PRINT_INFORMATION_3(args)  Trace3 args
  175. #ifdef MMI_ON_HARDWARE_P
  176. #define MMI_TRACE(args) kal_lib_trace args
  177. #else 
  178. #define MMI_TRACE(args) NULL    /* Trace3 args */
  179. #endif 
  180. #else /* DEBUG_INFORMATION */ 
  181. #define PRINT_INFORMATION(args) NULL
  182. #define PRINT_INFORMATION_2(args) NULL
  183. #define PRINT_INFORMATION_3(args)  NULL
  184. #define MMI_TRACE(args) NULL
  185. #endif /* DEBUG_INFORMATION */ 
  186. #ifdef DEBUG_ERROR
  187. #define PRINT_ERROR(args) Trace args
  188. #else 
  189. #define PRINT_ERROR(args) NULL
  190. #endif 
  191. #ifdef DEBUG_FATAL
  192. #define PRINT_FATAL(args)  Trace args
  193. #else 
  194. #define PRINT_FATAL(args) NULL
  195. #endif 
  196. #ifdef DEBUG_FILE
  197. FILE *fpDebugTrace;
  198. #endif 
  199. /*
  200.  * = MMI_ASSERT = 
  201.  *
  202.  * Equivalent to ASSERT(). We are sure that this should not happen, and we don't know how to recover from it.
  203.  * 
  204.  * Note: MMI_ASSERT might be REMOVED for __PRODUCTION_RELEASE__ in the future!!
  205.  *
  206.  * = MMI_DBG_ASSERT =
  207.  *
  208.  * MMI_DBG_ASSERT is ignored unless g_mmi_frm_enable_debug_assert is set in Engineer Mode.
  209.  * It is used to test if something strange occurs, typically non-fatal errors.
  210.  * However, we should prevent failure of MMI_DBG_ASSERT in most cases.
  211.  * MMI_DBG_ASSERT is completely removed in produce release to save space and time.
  212.  *
  213.  * = MMI_EXT_ASSERT =
  214.  *
  215.  * In production release, it reset the mobile phone on failure.
  216.  * In non-production release, it print error message on failure.
  217.  */
  218. #ifdef DEBUG_ASSERT
  219. extern BOOL g_mmi_frm_enable_debug_assert;
  220. #ifdef MMI_ON_HARDWARE_P
  221.       /* Target or MNT */
  222. #define MMI_ASSERT(expr)      ASSERT(expr)
  223. #ifdef __PRODUCTION_RELEASE__
  224. #define MMI_DBG_ASSERT(expr)  NULL
  225. #else 
  226. #define MMI_DBG_ASSERT(expr)  do {if (g_mmi_frm_enable_debug_assert) ASSERT(expr);} while(0)
  227. #endif 
  228. #elif !defined(__GNUC__)
  229.       /* PC Simulator */
  230. #define MMI_ASSERT(expr)      assert(expr)
  231. #define MMI_DBG_ASSERT(expr)  do {if (g_mmi_frm_enable_debug_assert) assert(expr);} while(0)
  232. #else 
  233.       /* Resource generation tool */
  234. #define MMI_ASSERT(expr)      NULL
  235. #define MMI_DBG_ASSERT(expr)  NULL
  236. #endif 
  237. #else /* DEBUG_ASSERT */ 
  238. #define MMI_ASSERT(expr)      NULL
  239. #define MMI_DBG_ASSERT(expr)  NULL
  240. #endif /* DEBUG_ASSERT */ 
  241. #ifdef MMI_ON_HARDWARE_P
  242. #define MMI_EXT_ASSERT(expr, e1, e2, e3)  EXT_ASSERT(expr, e1, e2, e3)
  243. #elif !defined(__GNUC__)
  244. #define MMI_EXT_ASSERT(expr, e1, e2, e3)  assert(expr)
  245. #else 
  246. #define MMI_EXT_ASSERT(expr, e1, e2, e3)  NULL
  247. #endif 
  248. #define MEMORY_ALLOC_FAIL        "Memory alloc failed"
  249. #define SEMAPHORE_RELEASE_FAIL      "Failed to release Semaphore"
  250. #define MMI_QUEUE_WRITE_FAIL     "Failed to write in mmi queue"
  251. #define TIMER_START_FAIL         "Failed to start timer"
  252. #define TIMER_STOP_FAIL          "Failed to stop timer"
  253. #define FATAL_ERR             "FATAL Error!!!"
  254. #define KBD_QUEUE_WRITE_FAIL     "Failed to write in kbd queue"
  255. #define KBH_QUEUE_WRITE_FAIL     "Failed to write in kbh queue"
  256. #define TMR_QUEUE_WRITE_FAIL     "Failed to write in tmr queue"
  257. #define PRT_QUEUE_WRITE_FAIL     "Failed to write in prt queue"
  258. #endif /* _DEBUG_INT_H */