blob: c5d0318445d484e0b6853a0833b39f250ffc9a89 [file] [log] [blame]
rjw6c1fd8f2022-11-30 14:33:01 +08001/*****************************************************************************
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/*****************************************************************************
37 *
38 * Filename:
39 * ---------
40 * kal_trace.h
41 *
42 * Project:
43 * --------
44 * Maui_Software
45 *
46 * Description:
47 * ------------
48 * This file provides typedefs and definiton for PS index trace.
49 *
50 * Author:
51 * -------
52 * -------
53 *
54 *============================================================================
55 * HISTORY
56 * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
57 *------------------------------------------------------------------------------
58 * removed!
59 * removed!
60 * removed!
61 *
62 * removed!
63 * removed!
64 * removed!
65 *
66 * removed!
67 * removed!
68 * removed!
69 *
70 * removed!
71 * removed!
72 * removed!
73 *
74 * removed!
75 * removed!
76 * removed!
77 *
78 * removed!
79 * removed!
80 * removed!
81 *
82 * removed!
83 * removed!
84 * removed!
85 *
86 * removed!
87 * removed!
88 * removed!
89 *
90 * removed!
91 * removed!
92 * removed!
93 *
94 * removed!
95 * removed!
96 * removed!
97 *
98 * removed!
99 * removed!
100 * removed!
101 *
102 * removed!
103 * removed!
104 * removed!
105 *
106 * removed!
107 * removed!
108 * removed!
109 *
110 * removed!
111 * removed!
112 * removed!
113 * removed!
114 *
115 * removed!
116 * removed!
117 * removed!
118 *
119 * removed!
120 * removed!
121 * removed!
122 *
123 * removed!
124 * removed!
125 * removed!
126 *
127 * removed!
128 * removed!
129 * removed!
130 *
131 * removed!
132 * removed!
133 * removed!
134 *
135 * removed!
136 * removed!
137 * removed!
138 *
139 * removed!
140 * removed!
141 * removed!
142 *
143 * removed!
144 * removed!
145 * removed!
146 *
147 * removed!
148 * removed!
149 * removed!
150 *
151 * removed!
152 * removed!
153 * removed!
154 *
155 * removed!
156 * removed!
157 * removed!
158 *
159 * removed!
160 * removed!
161 * removed!
162 *
163 * removed!
164 * removed!
165 * removed!
166 *
167 * removed!
168 * removed!
169 * removed!
170 *
171 * removed!
172 * removed!
173 * removed!
174 *
175 * removed!
176 * removed!
177 * removed!
178 *
179 * removed!
180 * removed!
181 * removed!
182 *
183 * removed!
184 * removed!
185 * removed!
186 *
187 * removed!
188 * removed!
189 * removed!
190 *
191 * removed!
192 * removed!
193 * removed!
194 *
195 * removed!
196 * removed!
197 * removed!
198 *
199 * removed!
200 * removed!
201 * removed!
202 *
203 * removed!
204 * removed!
205 * removed!
206 *
207 * removed!
208 * removed!
209 * removed!
210 *
211 * removed!
212 * removed!
213 * removed!
214 *
215 * removed!
216 * removed!
217 * removed!
218 *
219 * removed!
220 * removed!
221 * removed!
222 *
223 * removed!
224 * removed!
225 * removed!
226 *
227 * removed!
228 * removed!
229 * removed!
230 *
231 * removed!
232 * removed!
233 * removed!
234 * removed!
235 *
236 * removed!
237 * removed!
238 * removed!
239 *
240 * removed!
241 * removed!
242 * removed!
243 *
244 * removed!
245 * removed!
246 * removed!
247 *
248 * removed!
249 * removed!
250 *
251 *
252 * removed!
253 * removed!
254 *
255 *
256 * removed!
257 * removed!
258 *
259 *
260 * removed!
261 * removed!
262 *
263 *
264 * removed!
265 * removed!
266 *
267 *
268 * removed!
269 * removed!
270 *
271 *
272 * removed!
273 * removed!
274 *
275 *
276 * removed!
277 * removed!
278 *
279 *
280 * removed!
281 * removed!
282 *
283 *
284 * removed!
285 * removed!
286 *
287 *
288 * removed!
289 * removed!
290 *
291 *
292 * removed!
293 * removed!
294 *
295 *
296 * removed!
297 * removed!
298 *
299 *
300 * removed!
301 * removed!
302 * removed!
303 *
304 * removed!
305 * removed!
306 *
307 *
308 * removed!
309 * removed!
310 *
311 *
312 * removed!
313 * removed!
314 *
315 *
316 * removed!
317 * removed!
318 * removed!
319 *
320 * removed!
321 * removed!
322 * removed!
323 *
324 * removed!
325 * removed!
326 *
327 *
328 * removed!
329 * removed!
330 *
331 *
332 * removed!
333 * removed!
334 * removed!
335 *
336 * removed!
337 * removed!
338 * removed!
339 * removed!
340 *
341 * removed!
342 * removed!
343 * removed!
344 *
345 * removed!
346 * removed!
347 * removed!
348 *
349 * removed!
350 * removed!
351 * removed!
352 *
353 * removed!
354 * removed!
355 *
356 * removed!
357 * removed!
358 * removed!
359 *
360 * removed!
361 * removed!
362 *
363 * removed!
364 * removed!
365 * removed!
366 *
367 * removed!
368 * removed!
369 * removed!
370 *
371 * removed!
372 * removed!
373 * removed!
374 *
375 * removed!
376 * removed!
377 * removed!
378 *
379 * removed!
380 * removed!
381 * removed!
382 *
383 * removed!
384 * removed!
385 * removed!
386 *
387 * removed!
388 * removed!
389 * removed!
390 *
391 * removed!
392 * removed!
393 *
394 * removed!
395 * removed!
396 *------------------------------------------------------------------------------
397 * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
398 *============================================================================
399 ****************************************************************************/
400
401#ifndef _KAL_TRACE_H
402#define _KAL_TRACE_H
403
404#include "dhl_unified_trace.h"
405#if defined(__DHL_MODULE__)
406#else
407
408#include <stdarg.h>
409#ifndef GEN_FOR_PC
410#include <stdio.h>
411#endif
412#include "kal_general_types.h"
413#include "kal_public_defs.h"
414
415#if defined(__MTK_TARGET__) && !defined(__GNUC__)
416#pragma diag_suppress 870
417#endif //#ifdef __MTK_TARGET__
418
419#ifdef __cplusplus
420extern "C" {
421#endif
422
423#if defined(__TST_MODULE__) && defined(__EM_MODE__) /* for ilm_struct type definition */
424#ifndef GEN_FOR_PC
425struct ilm_struct;
426extern void tst_EM_logger(struct ilm_struct *ilm_ptr);
427#if defined(__DHL_MODULE__)
428extern void dhl_EM_logger(struct ilm_struct *ilm_ptr);
429#endif
430#endif
431#endif //#if defined(__TST_MODULE__) && defined(__EM_MODE__)
432
433#if !defined(__DHL_MODULE__)
434#define dhl_trace(...)
435#define dhl_internal_trace(...)
436#define dhl_brief_trace(...)
437#define dhl_peer_trace(...)
438#define dhl_raw_trace(...)
439#define dhl_print(...)
440#define dhl_print_string(...)
441#define dhl_print_system_trace(...)
442
443#define dhl_print_struct(...)
444#define dhl_debug_print(...)
445
446#define dhl_trace_impl(...)
447#define dhl_internal_trace_impl(...)
448#define dhl_print_impl(...)
449#define dhl_EM_logger(...)
450#endif //#if !defined(__DHL_MODULE__)
451
452#define MAX_MSG_NBR_IN_MODULE 20
453#define ADDITIONAL_BUFFER_FOR_MUX 45
454#define DEFAULT_RS232_FRAME_SIZE 5 /* STX, LenHi, LenLo, Type, Checksum*/
455#define SAP_LOCAL_PARA_FILTER 0x02
456#define SAP_PEER_BUFF_FILTER 0x04
457
458#define STX_OCTET 0x55
459#define LOGGED_PRIMITIVE_TYPE 0x60
460#define PS_TRACE_INDEX_TRACE_TYPE 0x61
461#define PS_PROMPT_TRACE_TYPE 0x62
462#define CONTROL_COMMAND_TYPE 0x63
463#define INJECT_PRIMITIVE_TYPE 0x64
464#define SYS_TRACE_TYPE 0x65
465
466//Define Trace Macro for PS trace
467#if defined(GEN_FOR_PC) && !defined(GEN_FOR_CPARSER)
468#define BEGIN_TRACE_MAP(MOD) START_MODULE_MSG MOD MAX_MSG_NBR_IN_MODULE
469#define BEGIN_TRACE_MAP_WITH_RANGE(MOD, MIN_VAL, MAX_VAL) START_RANGE_MODULE_MSG MOD MAX_MSG_NBR_IN_MODULE MIN_VAL MAX_VAL
470#define TRC_MSG(MSG,STR) MSG STR
471#define TRC_MSG_NEWLINE(MSG,STR,NUM) MSG STR NUM
472#define END_TRACE_MAP(MOD) END_MODULE_MSG
473#define END_TRACE_MAP_WITH_RANGE(MOD, MIN_VAL, MAX_VAL) MOD MIN_VAL MAX_VAL END_RANGE_MODULE_MSG
474#else //Define Trace Macro for PS trace
475#define BEGIN_TRACE_MAP(MOD) enum MOD##_MSG_ENUM{\
476 MOD##_empty_string=MOD<<MAX_MSG_NBR_IN_MODULE,
477#define BEGIN_TRACE_MAP_WITH_RANGE(MOD, MIN_VAL, MAX_VAL) enum MOD##_##MIN_VAL##_MSG_ENUM{\
478 MOD##_##MIN_VAL##_empty_string = (MOD<<MAX_MSG_NBR_IN_MODULE) + MIN_VAL - 1,
479#define TRC_MSG(MSG,STR) MSG##__enum,
480#define TRC_MSG_NEWLINE(MSG,STR,NUM) MSG##__enum, MSG##_NEWLINE_EXPAND__enum = MSG##__enum+NUM,
481#define END_TRACE_MAP(MOD) MOD##__end};
482#define END_TRACE_MAP_WITH_RANGE(MOD, MIN_VAL, MAX_VAL) MOD##_##MIN_VAL##__end};
483#endif //Define Trace Macro for PS trace
484
485
486//Decide which path should enter
487#ifdef __TST_MODULE__
488#if !defined(__FUE__) && !defined(__UBL__)
489#if !defined(MODULE_TRACE_OFF)
490#define __TST_TRACE_ENABLED__
491#elif defined(__TST_CRITICAL_TRACE_LEVEL__) //__PRIORITY_TRACING_ENABLED__ should be disabled in MoDIS
492#define __TST_CRITICAL_TRACE_ENABLED__
493#endif //!defined(MODULE_TRACE_OFF) &&
494#endif
495#endif //#ifdef __TST_MODULE__
496
497#ifndef __TST_TRACE_ENABLED__
498#if defined(KAL_ON_OSCAR) || defined(MCD_DLL_EXPORT) || defined(L1_SIM)
499#define __TST_TRACE_EMPTY_FUNCTION__
500
501#if defined(__TST_CRITICAL_TRACE_ENABLED__)
502#undef __TST_CRITICAL_TRACE_ENABLED__
503#endif //__TST_CRITICAL_TRACE_ENABLED__
504#endif //#if defined(KAL_ON_OSCAR) || defined(MCD_DLL_EXPORT) || defined(L1_SIM)
505#endif
506
507
508#if !defined(__TST_CRITICAL_TRACE_ENABLED__) || defined(GEN_FOR_PC)
509typedef enum
510{
511 TRACE_FUNC,
512 TRACE_STATE,
513 TRACE_INFO,
514 TRACE_WARNING,
515 TRACE_ERROR,
516 TRACE_GROUP_1,
517 TRACE_GROUP_2,
518 TRACE_GROUP_3,
519 TRACE_GROUP_4,
520 TRACE_GROUP_5,
521 TRACE_GROUP_6,
522 TRACE_GROUP_7,
523 TRACE_GROUP_8,
524 TRACE_GROUP_9,
525 TRACE_GROUP_10,
526 TRACE_PEER
527} trace_class_enum;
528
529
530typedef enum
531{
532 DHL_CUSTOM_MEM_PMIC,
533 DHL_CUSTOM_MEM_MAX
534} DHL_CUSTOM_MEM_TYPE;
535
536#else //__TST_CRITICAL_TRACE_ENABLED__
537typedef unsigned char trace_class_enum;
538#endif //__TST_CRITICAL_TRACE_ENABLED__
539
540
541#if defined(__TST_TRACE_ENABLED__)
542#define kal_print_string_trace kal_wap_trace //alias kal_print_string_trace as kal_wap_trace
543//#define kal_critical_trace kal_trace
544//#define kal_critical_brief_trace kal_brief_trace
545//#define kal_critical_assert_trace kal_assert_trace
546extern void kal_critical_trace(trace_class_enum, kal_uint32, const kal_char *, ...);
547extern void kal_critical_brief_trace(trace_class_enum, kal_uint32, const kal_char *, ...);
548extern void kal_critical_assert_trace(trace_class_enum, kal_uint32, const kal_char *, ...);
549
550/*******************************************************************************
551* <GROUP Functions>
552*
553* FUNCTION
554* kal_trace
555* DESCRIPTION
556* This function is used to output the pre-defined trace to PC.
557* The engineers SHOULD define their own traces before using this function.
558* If a trace is defined as ��Today is %d-$d-%d��, kal_trace simply sends the trace ID and the content of %d to PC.
559* That will reduce the communication traffic. In the chapter 2, we will introduce how to ass a new trace.
560*
561*
562* Property:
563*�� ��Message Compression�� type API
564*�� Cannot be invoked in LISR/HISR context.
565*�� Can send up to 128 bytes parameters
566*�� Suggested to use this API for most of the scenario.
567*
568* PARAMETERS
569* trc_class: [IN] The trace class of this trace. Each module has 15 classes to category.
570* msg_index: [IN] Message index. This part will be handled by tool.
571* arg_type: [IN] This part will be handled by tool.
572* ...: [IN] Parameters to log
573* RETURNS
574* NONE
575* NOTE
576*
577******************************************************************************/
578extern void kal_trace_for_3rd_party(trace_class_enum, kal_uint32, const kal_char *, va_list);
579extern void kal_lib_trace(trace_class_enum, kal_uint32, const kal_char *, ...);
580extern void kal_assert_trace(trace_class_enum, kal_uint32, const kal_char *, ...);
581extern void kal_wap_trace(module_type mod_id, trace_class_enum trc_class, const char *fmt, ...);
582extern void kal_buffer_trace(trace_class_enum trc_class, kal_uint32 msg_index, const kal_char *fmt, kal_uint32 buf_len, const kal_uint8 *pData);
583extern void kal_dev_trace(trace_class_enum trc_class, kal_uint32 msg_index, const char *arg_type, ...);
584extern void kal_bootup_trace(trace_class_enum, kal_uint32, const kal_char *, ...);
585extern void kal_brief_trace(trace_class_enum, kal_uint32, const kal_char *, ...);
586extern void kal_trace(trace_class_enum, kal_uint32, const kal_char *, ...);
587
588#define __TST_OPTIMIZATION_FOR_SPEED__ //Default enable in MOLY
589
590#ifdef __TST_OPTIMIZATION_FOR_SPEED__ //Optimization, kal_brief_trace_macro definition
591
592#if !defined(_MSC_VER)
593
594//Target build
595extern kal_bool tst_is_PsTrc_open_and_pstrace_flag; //For optimization, the AND flag of tst_is_PsTrc_open and tst_pstrace_flag
596extern void kal_brief_trace_opt_helper(trace_class_enum trc_class, kal_uint32 msg_index, const char *arg_type, ...);
597
598#define kal_brief_trace_macro(trc_class, msg_index,...) do{\
599 if(tst_is_PsTrc_open_and_pstrace_flag){\
600 kal_brief_trace_opt_helper(trc_class, msg_index, ##__VA_ARGS__);\
601 }\
602 }while(0)
603
604#else
605
606//PC build (MoDIS or MCDDLL)
607extern void kal_trace_macro(trace_class_enum, kal_uint32, const kal_char *, ...);
608
609#endif
610
611#else //__TST_OPTIMIZATION_FOR_SPEED__
612
613#if !defined(_MSC_VER)
614
615//Target build
616#define kal_brief_trace_macro(...) kal_brief_trace(__VA_ARGS__)
617
618#else
619
620//PC build (MoDIS or MCDDLL)
621extern void kal_trace_macro(trace_class_enum, kal_uint32, const kal_char *, ...);
622
623#endif
624
625#endif //__TST_OPTIMIZATION_FOR_SPEED__
626
627
628#else //__TST_TRACE_ENABLED__
629#if defined(__TST_TRACE_EMPTY_FUNCTION__)
630/*
631* For non-target platform (PC simulator or MNT),
632* we define trace-related functions as inline function to avoid compile error
633* in VC++.
634*/
635
636static __inline void kal_critical_trace(trace_class_enum trc_class, kal_uint32 msg_index, const kal_char *arg_type, ...)
637{
638 return ;
639}
640
641static __inline void kal_critical_brief_trace(trace_class_enum trc_class, kal_uint32 msg_index, const kal_char *arg_type, ...)
642{
643 return ;
644}
645static __inline void kal_critical_assert_trace(trace_class_enum trc_class, kal_uint32 msg_index, const kal_char *arg_type, ...)
646{
647 return ;
648}
649
650static __inline void kal_trace(trace_class_enum trc_class, kal_uint32 msg_index, const kal_char *arg_type, ...)
651{
652 return ;
653}
654
655static __inline void kal_brief_trace(trace_class_enum trc_class, kal_uint32 msg_index, const kal_char *arg_type, ...)
656{
657 return ;
658}
659
660static __inline void kal_trace_for_3rd_party(trace_class_enum trc_class, kal_uint32 msg_index, const kal_char *arg_type, va_list argument_info)
661{
662 return ;
663}
664
665static __inline void kal_lib_trace(trace_class_enum trc_class, kal_uint32 msg_index, const kal_char *arg_type, ...)
666{
667 return ;
668}
669static __inline void kal_assert_trace(trace_class_enum trc_class, kal_uint32 msg_index, const kal_char *arg_type, ...)
670{
671 return ;
672}
673static __inline void kal_wap_trace(module_type mod_id, trace_class_enum trc_class, const char *fmt, ...)
674{
675 return ;
676}
677static __inline void kal_print_string_trace(module_type mod_id, trace_class_enum trc_class, const char *fmt, ...)
678{
679 return ;
680}
681
682static __inline void kal_buffer_trace(trace_class_enum trc_class, kal_uint32 msg_index, const kal_char *fmt, kal_uint32 buf_len, const kal_uint8 *pData)
683{
684 return;
685}
686
687static __inline void kal_dev_trace(trace_class_enum trc_class, kal_uint32 msg_index, const char *arg_type, ...)
688{
689 return;
690}
691
692static __inline void kal_bootup_trace(trace_class_enum trc_class, kal_uint32 msg_index, const kal_char *arg_type, ...)
693{
694 return ;
695}
696
697static __inline void kal_brief_trace_macro(trace_class_enum trc_class, kal_uint32 msg_index, const kal_char *arg_type, ...)
698{
699 return ;
700}
701
702#elif defined(__TST_CRITICAL_TRACE_ENABLED__)
703//Support partial tracing API enable
704extern void kal_critical_trace(trace_class_enum, kal_uint32, const kal_char *, ...);
705extern void kal_critical_brief_trace(trace_class_enum, kal_uint32, const kal_char *, ...);
706extern void kal_critical_assert_trace(trace_class_enum, kal_uint32, const kal_char *, ...);
707
708#define kal_trace(...)
709#define kal_brief_trace(...)
710#define kal_trace_for_3rd_party(...)
711#define kal_lib_trace(...)
712#define kal_assert_trace(...)
713#define kal_wap_trace(...)
714#define kal_print_string_trace(...)
715#define kal_buffer_trace(...)
716#define kal_dev_trace(...)
717#define kal_bootup_trace(...)
718#define kal_brief_trace_macro(...)
719
720#if __TST_CRITICAL_TRACE_LEVEL__ > 0
721
722#define TRACE_FUNC 0
723#define TRACE_STATE 1
724#define TRACE_INFO 2
725#define TRACE_WARNING 3
726#define TRACE_ERROR 4
727#define TRACE_GROUP_1 5
728#define TRACE_GROUP_2 6
729#define TRACE_GROUP_3 7
730#define TRACE_GROUP_4 8
731#define TRACE_GROUP_5 9
732#define TRACE_GROUP_6 10
733#define TRACE_GROUP_7 11
734#define TRACE_GROUP_8 12
735#define TRACE_GROUP_9 13
736#define TRACE_GROUP_10 14
737#define TRACE_PEER 15
738
739#undef kal_trace
740#undef kal_brief_trace
741
742#define _kal_trace(trace_class_enum, ...) kal_critical_trace_##trace_class_enum(trace_class_enum, __VA_ARGS__)
743#define _kal_brief_trace(trace_class_enum, ...) kal_critical_brief_trace_##trace_class_enum(trace_class_enum, __VA_ARGS__)
744
745#define kal_trace(trace_class_enum, ...) _kal_trace(trace_class_enum, __VA_ARGS__)
746#define kal_brief_trace(trace_class_enum, ...) _kal_brief_trace(trace_class_enum, __VA_ARGS__)
747#define kal_brief_trace_macro(trace_class_enum, ...) _kal_brief_trace(trace_class_enum, __VA_ARGS__)
748
749//#define kal_assert_trace_(trace_class_enum, ...) kal_critical_assert_trace_##trace_class_enum(__VA_ARGS__)
750
751//declare the empty defined
752#define kal_critical_trace_0(...)
753#define kal_critical_trace_1(...)
754#define kal_critical_trace_2(...)
755#define kal_critical_trace_3(...)
756#define kal_critical_trace_5(...)
757#define kal_critical_trace_6(...)
758#define kal_critical_trace_7(...)
759#define kal_critical_trace_8(...)
760#define kal_critical_trace_9(...)
761#define kal_critical_trace_10(...)
762#define kal_critical_trace_11(...)
763#define kal_critical_trace_12(...)
764#define kal_critical_trace_13(...)
765#define kal_critical_trace_14(...)
766#define kal_critical_trace_15(...)
767
768#define kal_critical_brief_trace_0(...)
769#define kal_critical_brief_trace_1(...)
770#define kal_critical_brief_trace_2(...)
771#define kal_critical_brief_trace_3(...)
772#define kal_critical_brief_trace_5(...)
773#define kal_critical_brief_trace_6(...)
774#define kal_critical_brief_trace_7(...)
775#define kal_critical_brief_trace_8(...)
776#define kal_critical_brief_trace_9(...)
777#define kal_critical_brief_trace_10(...)
778#define kal_critical_brief_trace_11(...)
779#define kal_critical_brief_trace_12(...)
780#define kal_critical_brief_trace_13(...)
781#define kal_critical_brief_trace_14(...)
782#define kal_critical_brief_trace_15(...)
783
784//ignore the known issues, wrap logging APIs in other APIs
785#define kal_critical_trace_trc_class(...)
786#define kal_critical_brief_trace_trc_class(...)
787
788//define ERROR --> 4
789#define kal_critical_trace_4 kal_critical_trace
790#define kal_critical_brief_trace_4 kal_critical_brief_trace
791#endif
792
793#if __TST_CRITICAL_TRACE_LEVEL__ > 1
794//define WARNING 3
795#undef kal_critical_trace_3
796#undef kal_critical_brief_trace_3
797#define kal_critical_trace_3 kal_critical_trace
798#define kal_critical_brief_trace_3 kal_critical_brief_trace
799#endif
800
801#if __TST_CRITICAL_TRACE_LEVEL__ > 2
802//define TRACE_STATE 1
803#undef kal_critical_trace_1
804#undef kal_critical_brief_trace_1
805#define kal_critical_trace_1 kal_critical_trace
806#define kal_critical_brief_trace_1 kal_critical_brief_trace
807#endif
808
809#if __TST_CRITICAL_TRACE_LEVEL__ > 3
810//define TRACE_INFO 2
811#undef kal_critical_trace_2
812#undef kal_critical_brief_trace_2
813#define kal_critical_trace_2 kal_critical_trace
814#define kal_critical_brief_trace_2 kal_critical_brief_trace
815#endif
816
817#if __TST_CRITICAL_TRACE_LEVEL__ > 4
818//#define TRACE_PEER 15
819#undef kal_critical_trace_15
820#undef kal_critical_brief_trace_15
821#define kal_critical_trace_15 kal_critical_trace
822#define kal_critical_brief_trace_15 kal_critical_brief_trace
823#endif
824
825#if __TST_CRITICAL_TRACE_LEVEL__ > 5
826//#define TRACE_GROUP_1 5
827#undef kal_critical_trace_5
828#undef kal_critical_brief_trace_5
829#define kal_critical_trace_5 kal_critical_trace
830#define kal_critical_brief_trace_5 kal_critical_brief_trace
831#endif
832
833#if __TST_CRITICAL_TRACE_LEVEL__ > 6
834//#define TRACE_GROUP_2 6
835#undef kal_critical_trace_6
836#undef kal_critical_brief_trace_6
837#define kal_critical_trace_6 kal_critical_trace
838#define kal_critical_brief_trace_6 kal_critical_brief_trace
839#endif
840
841#if __TST_CRITICAL_TRACE_LEVEL__ > 7
842//#define TRACE_GROUP_3 7
843#undef kal_critical_trace_7
844#undef kal_critical_brief_trace_7
845#define kal_critical_trace_7 kal_critical_trace
846#define kal_critical_brief_trace_7 kal_critical_brief_trace
847#endif
848
849#if __TST_CRITICAL_TRACE_LEVEL__ > 8
850//#define TRACE_GROUP_4 8
851#undef kal_critical_trace_8
852#undef kal_critical_brief_trace_8
853#define kal_critical_trace_8 kal_critical_trace
854#define kal_critical_brief_trace_8 kal_critical_brief_trace
855#endif
856
857#if __TST_CRITICAL_TRACE_LEVEL__ > 9
858//#define TRACE_GROUP_5 9
859#undef kal_critical_trace_9
860#undef kal_critical_brief_trace_9
861#define kal_critical_trace_9 kal_critical_trace
862#define kal_critical_brief_trace_9 kal_critical_brief_trace
863#endif
864
865#if __TST_CRITICAL_TRACE_LEVEL__ > 10
866//#define TRACE_GROUP_6 10
867#undef kal_critical_trace_10
868#undef kal_critical_brief_trace_10
869#define kal_critical_trace_10 kal_critical_trace
870#define kal_critical_brief_trace_10 kal_critical_brief_trace
871#endif
872
873#if __TST_CRITICAL_TRACE_LEVEL__ > 11
874//#define TRACE_GROUP_7 11
875#undef kal_critical_trace_11
876#undef kal_critical_brief_trace_11
877#define kal_critical_trace_11 kal_critical_trace
878#define kal_critical_brief_trace_11 kal_critical_brief_trace
879#endif
880
881#if __TST_CRITICAL_TRACE_LEVEL__ > 12
882//#define TRACE_GROUP_8 12
883#undef kal_critical_trace_12
884#undef kal_critical_brief_trace_12
885#define kal_critical_trace_12 kal_critical_trace
886#define kal_critical_brief_trace_12 kal_critical_brief_trace
887#endif
888
889#if __TST_CRITICAL_TRACE_LEVEL__ > 13
890//#define TRACE_GROUP_9 13
891#undef kal_critical_trace_13
892#undef kal_critical_brief_trace_13
893#define kal_critical_trace_13 kal_critical_trace
894#define kal_critical_brief_trace_13 kal_critical_brief_trace
895#endif
896
897#if __TST_CRITICAL_TRACE_LEVEL__ > 14
898//#define TRACE_GROUP_10 14
899#undef kal_critical_trace_14
900#undef kal_critical_brief_trace_14
901#define kal_critical_trace_14 kal_critical_trace
902#define kal_critical_brief_trace_14 kal_critical_brief_trace
903#endif
904
905#if __TST_CRITICAL_TRACE_LEVEL__ > 15
906//#define TRACE_FUNC 0
907#undef kal_critical_trace_0
908#undef kal_critical_brief_trace_0
909#define kal_critical_trace_0 kal_critical_trace
910#define kal_critical_brief_trace_0 kal_critical_brief_trace
911#endif
912
913#else // #if defined(__TST_TRACE_EMPTY_FUNCTION__)
914//Define empty functions for Target SW
915#define kal_trace(...)
916#define kal_brief_trace(...)
917#define kal_trace_for_3rd_party(...)
918#define kal_lib_trace(...)
919#define kal_assert_trace(...)
920#define kal_wap_trace(...)
921#define kal_print_string_trace(...)
922#define kal_buffer_trace(...)
923#define kal_dev_trace(...)
924#define kal_bootup_trace(...)
925#define kal_critical_trace(...)
926#define kal_critical_brief_trace(...)
927#define kal_critical_assert_trace(...)
928#define kal_brief_trace_macro(...)
929#endif // #if defined(__TST_TRACE_EMPTY_FUNCTION__)
930#endif //__TST_TRACE_ENABLED__
931
932#define kal_sys_trace tst_sys_trace
933#define kal_sys_init_trace tst_sys_init_trace
934#define kal_sys_fatal_trace tst_sysfatal_trace
935
936#ifdef __TST_MODULE__
937/*******************************************************************************
938* <GROUP Functions>
939*
940* FUNCTION
941* kal_prompt_trace
942* DESCRIPTION
943* It's a printf-like function which outputs log to Catcher Tool.
944* Property:
945* The message is sent in plaintext
946*�� Cannot be invoked in LISR context.
947*�� Can send up to 128 bytes logs
948*�� This API can only be used in customer side to reduce the impact of ROM size increase.
949*�� Heavy resource consumption.
950*�� a.Caller��s RO-DATA
951*�� b. Logging Bandwidth
952*
953* PARAMETERS
954* mod_id: [IN] Module id
955* fmt: [IN] The format string. Please refer to print function of C standard library.
956* RETURNS
957* NONE
958* NOTE
959*
960******************************************************************************/
961extern void kal_prompt_trace(module_type mod_id, const kal_char *fmt, ...);
962extern void tst_sys_init_trace(const kal_char *info);
963extern void tst_sys_trace(kal_char *info);
964extern void tst_sysfatal_trace(kal_char *info);
965extern kal_int32 tst_trace_check_ps_filter_off(trace_class_enum trc_class, kal_uint32 *module_id, kal_uint32 supportOption);
966
967#define kal_bootup_print tst_sys_init_trace
968#else
969#ifdef __TST_TRACE_EMPTY_FUNCTION__
970static __inline void kal_prompt_trace(module_type mod_id, const kal_char *fmt, ...)
971{
972 return ;
973}
974static __inline void tst_sys_init_trace(const kal_char *info)
975{
976 return ;
977}
978static __inline void tst_sys_trace(kal_char *info)
979{
980 return ;
981}
982static __inline void tst_sysfatal_trace(kal_char *info)
983{
984 return ;
985}
986static __inline kal_int32 tst_trace_check_ps_filter_off(trace_class_enum trc_class, kal_uint32 *module_id, kal_uint32 supportOption)
987{
988 return 0;
989}
990#else
991#define kal_prompt_trace(...)
992#define tst_sys_init_trace(...)
993#define tst_sys_trace(...)
994#define tst_sysfatal_trace(...)
995#define tst_trace_check_ps_filter_off(...)
996#endif
997#endif //#ifdef __TST_MODULE__
998
999typedef void (*TST_VC_CallBack)(const kal_uint8 *pData, kal_uint32 nLen);
1000typedef void (*TST_String_Inject_CB)(kal_uint32 index, kal_uint8 *pData);
1001
1002/*
1003* tst_virtual_channel_id:
1004* regiester new virtual channel here and remake tst
1005*/
1006typedef enum
1007{
1008 TVCI_GPS_LOGGING,
1009 TVCI_DNT_L2COPRO_LOGGING,
1010 TVCI_CATCHER_POLLING,
1011 TVCI_GDB_COMM,
1012 TVCI_AST_LOGGING,
1013 TVCI_MINI_LOG,
1014 TVCI_VM_LOGGING,
1015 TVCI_BTT,
1016 TVCI_LAST_ID
1017}
1018tst_virtual_channel_id;
1019
1020#define MAX_VC_RESPONSE_LEN (1023)
1021
1022kal_bool tst_vc_register_channel(tst_virtual_channel_id channel_id, TST_VC_CallBack fnCmd);
1023kal_bool tst_vc_response(tst_virtual_channel_id channel_id, const kal_uint8 *pData, kal_uint16 len);
1024
1025#define TVCI_CREATE_FILE 0x24540001
1026#define TVCI_CLOSE_FILE 0x24540002
1027
1028void tst_log_with_offset_single_gpd(sap_type desc_SAP, sap_type raw_data_sap, kal_uint32 msg_index, const char *arg_type, kal_uint32 offset, kal_uint32 *dl_gpd);
1029
1030kal_bool tst_save_assert_bypass_trace(kal_char *info);
1031
1032#ifdef __cplusplus
1033}
1034#endif
1035
1036#endif /* __LTE_RAT__ */
1037
1038#endif /* _KAL_TRACE_H */
1039