| /* |
| * Copyright 2001-2008 Texas Instruments - http://www.ti.com/ |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| |
| |
| /* |
| * ======== gt.h ======== |
| * Purpose: |
| * There are two definitions that affect which portions of trace |
| * are acutally compiled into the client: GT_TRACE and GT_ASSERT. If |
| * GT_TRACE is set to 0 then all trace statements (except for assertions) |
| * will be compiled out of the client. If GT_ASSERT is set to 0 then |
| * assertions will be compiled out of the client. GT_ASSERT can not be |
| * set to 0 unless GT_TRACE is also set to 0 (i.e. GT_TRACE == 1 implies |
| * GT_ASSERT == 1). |
| * |
| *! Revision History |
| *! ================ |
| *! 02-Feb-2000 rr: Renamed this file to gtce.h. GT CLASS and trace definitions |
| *! are WinCE Specific. |
| *! 03-Jan-1997 ge Replaced "GT_" prefix to GT_Config structure members |
| *! to eliminate preprocessor confusion with other macros. |
| */ |
| |
| #ifndef GT_ |
| #define GT_ |
| |
| #ifndef GT_TRACE |
| #define GT_TRACE 0 /* 0 = "trace compiled out"; 1 = "trace active" */ |
| #endif |
| |
| #if !defined(GT_ASSERT) || GT_TRACE |
| #define GT_ASSERT 1 |
| #endif |
| |
| struct GT_Config { |
| Fxn PRINTFXN; |
| Fxn PIDFXN; |
| Fxn TIDFXN; |
| Fxn ERRORFXN; |
| }; |
| |
| extern struct GT_Config *GT; |
| |
| struct GT_Mask { |
| String modName; |
| SmBits *flags; |
| } ; |
| |
| /* |
| * New GT Class defenitions. |
| * |
| * The following are the explanations and how it could be used in the code |
| * |
| * - GT_ENTER On Entry to Functions |
| * |
| * - GT_1CLASS Display level of debugging status- Object/Automatic |
| * variables |
| * - GT_2CLASS ---- do ---- |
| * |
| * - GT_3CLASS ---- do ---- + It can be used(recommended) for debug |
| status in the ISR, IST |
| * - GT_4CLASS ---- do ---- |
| * |
| * - GT_5CLASS Display entry for module init/exit functions |
| * |
| * - GT_6CLASS Warn whenever SERVICES function fails |
| * |
| * - GT_7CLASS Warn failure of Critical failures |
| * |
| */ |
| |
| #define GT_ENTER ((SmBits)0x01) |
| #define GT_1CLASS ((SmBits)0x02) |
| #define GT_2CLASS ((SmBits)0x04) |
| #define GT_3CLASS ((SmBits)0x08) |
| #define GT_4CLASS ((SmBits)0x10) |
| #define GT_5CLASS ((SmBits)0x20) |
| #define GT_6CLASS ((SmBits)0x40) |
| #define GT_7CLASS ((SmBits)0x80) |
| |
| #ifdef _LINT_ |
| |
| /* LINTLIBRARY */ |
| |
| /* |
| * ======== GT_assert ======== |
| */ |
| /* ARGSUSED */ |
| Void |
| GT_assert(struct GT_Mask mask, Int expr) |
| { |
| } |
| |
| /* |
| * ======== GT_config ======== |
| */ |
| /* ARGSUSED */ |
| Void |
| GT_config(struct GT_Config config) |
| { |
| } |
| |
| /* |
| * ======== GT_create ======== |
| */ |
| /* ARGSUSED */ |
| Void |
| GT_create(struct GT_Mask * mask /* OUT */ , String modName) |
| { |
| } |
| |
| /* |
| * ======== GT_curLine ======== |
| * Purpose: |
| * Returns the current source code line number. Is useful for performing |
| * branch testing using trace. For example, |
| * |
| * GT_1trace(curTrace, GT_1CLASS, |
| * "in module XX_mod, executing line %u\n", GT_curLine()); |
| */ |
| /* ARGSUSED */ |
| MdUns |
| GT_curLine(Void) |
| { |
| return ((MdUns) NULL); |
| } |
| |
| /* |
| * ======== GT_exit ======== |
| */ |
| /* ARGSUSED */ |
| Void |
| GT_exit(Void) |
| { |
| } |
| |
| /* |
| * ======== GT_init ======== |
| */ |
| /* ARGSUSED */ |
| Void |
| GT_init(Void) |
| { |
| } |
| |
| /* |
| * ======== GT_query ======== |
| */ |
| /* ARGSUSED */ |
| bool |
| GT_query(struct GT_Mask mask, SmBits class) |
| { |
| return (false); |
| } |
| |
| /* |
| * ======== GT_set ======== |
| * sets trace mask according to settings |
| */ |
| |
| /* ARGSUSED */ |
| Void |
| GT_set(String settings) |
| { |
| } |
| |
| /* |
| * ======== GT_setprintf ======== |
| * sets printf function |
| */ |
| |
| /* ARGSUSED */ |
| Void |
| GT_setprintf(Fxn fxn) |
| { |
| } |
| |
| /* ARGSUSED */ |
| Void |
| GT_0trace(struct GT_Mask mask, SmBits class, String format) |
| { |
| } |
| |
| /* ARGSUSED */ |
| Void |
| GT_1trace(struct GT_Mask mask, SmBits class, String format, ...) |
| { |
| } |
| |
| /* ARGSUSED */ |
| Void |
| GT_2trace(struct GT_Mask mask, SmBits class, String format, ...) |
| { |
| } |
| |
| /* ARGSUSED */ |
| Void |
| GT_3trace(struct GT_Mask mask, SmBits class, String format, ...) |
| { |
| } |
| |
| /* ARGSUSED */ |
| Void |
| GT_4trace(struct GT_Mask mask, SmBits class, String format, ...) |
| { |
| } |
| |
| /* ARGSUSED */ |
| Void |
| GT_5trace(struct GT_Mask mask, SmBits class, String format, ...) |
| { |
| } |
| |
| /* ARGSUSED */ |
| Void |
| GT_6trace(struct GT_Mask mask, SmBits class, String format, ...) |
| { |
| } |
| |
| #else |
| |
| #define GT_BOUND 26 /* 26 letters in alphabet */ |
| |
| extern Void _GT_create(struct GT_Mask * mask, String modName); |
| |
| #define GT_exit() |
| |
| extern Void GT_init(Void); |
| extern Void _GT_set(String str); |
| extern Int _GT_trace(struct GT_Mask * mask, String format, ...); |
| |
| #if GT_ASSERT == 0 |
| |
| #define GT_assert( mask, expr ) |
| #define GT_config( config ) |
| #define GT_configInit( config ) |
| #define GT_seterror( fxn ) |
| |
| #else |
| |
| extern struct GT_Config _GT_params; |
| |
| #define GT_assert( mask, expr ) \ |
| (!(expr) ? \ |
| (*GT->ERRORFXN)("assertion violation: %s, line %d\n", \ |
| __FILE__, __LINE__), NULL : NULL) |
| |
| #define GT_config( config ) (_GT_params = *(config)) |
| #define GT_configInit( config ) (*(config) = _GT_params) |
| #define GT_seterror( fxn ) (_GT_params.ERRORFXN = (Fxn)(fxn)) |
| |
| #endif |
| |
| #if GT_TRACE == 0 |
| |
| #define GT_curLine() ((MdUns)__LINE__) |
| #define GT_create(mask, modName) |
| #define GT_exit() |
| #define GT_init() |
| #define GT_set( settings ) |
| #define GT_setprintf( fxn ) |
| |
| #define GT_query( mask, class ) false |
| |
| #define GT_0trace( mask, class, format ) |
| #define GT_1trace( mask, class, format, arg1 ) |
| #define GT_2trace( mask, class, format, arg1, arg2 ) |
| #define GT_3trace( mask, class, format, arg1, arg2, arg3 ) |
| #define GT_4trace( mask, class, format, arg1, arg2, arg3, arg4 ) |
| #define GT_5trace( mask, class, format, arg1, arg2, arg3, arg4, arg5 ) |
| #define GT_6trace( mask, class, format, arg1, arg2, arg3, arg4, arg5, arg6 ) |
| |
| #else /* GT_TRACE == 1 */ |
| |
| extern String GT_format; |
| extern SmBits *GT_tMask[GT_BOUND]; |
| |
| #define GT_create(mask, modName) _GT_create((mask), (modName)) |
| #define GT_curLine() ((MdUns)__LINE__) |
| #define GT_set( settings ) _GT_set( settings ) |
| #define GT_setprintf( fxn ) (_GT_params.PRINTFXN = (Fxn)(fxn)) |
| |
| #define GT_query( mask, class ) ((*(mask).flags & (class))) |
| |
| #define GT_0trace( mask, class, format ) \ |
| ((*(mask).flags & (class)) ? \ |
| _GT_trace(&(mask), (format)) : 0) |
| |
| #define GT_1trace( mask, class, format, arg1 ) \ |
| ((*(mask).flags & (class)) ? \ |
| _GT_trace(&(mask), (format), (arg1)) : 0) |
| |
| #define GT_2trace( mask, class, format, arg1, arg2 ) \ |
| ((*(mask).flags & (class)) ? \ |
| _GT_trace(&(mask), (format), (arg1), (arg2)) : 0) |
| |
| #define GT_3trace( mask, class, format, arg1, arg2, arg3 ) \ |
| ((*(mask).flags & (class)) ? \ |
| _GT_trace(&(mask), (format), (arg1), (arg2), (arg3)) : 0) |
| |
| #define GT_4trace( mask, class, format, arg1, arg2, arg3, arg4 ) \ |
| ((*(mask).flags & (class)) ? \ |
| _GT_trace(&(mask), (format), (arg1), (arg2), (arg3), (arg4)) : 0) |
| |
| #define GT_5trace( mask, class, format, arg1, arg2, arg3, arg4, arg5 ) \ |
| ((*(mask).flags & (class)) ? \ |
| _GT_trace(&(mask), (format), (arg1), (arg2), (arg3), (arg4), (arg5)) : 0) |
| |
| #define GT_6trace( mask, class, format, arg1, arg2, arg3, arg4, arg5, arg6 ) \ |
| ((*(mask).flags & (class)) ? \ |
| _GT_trace(&(mask), (format), (arg1), (arg2), (arg3), (arg4), (arg5), \ |
| (arg6)) : 0) |
| |
| #endif /* GT_TRACE */ |
| |
| #endif /* _LINT_ */ |
| |
| #endif /* GTCE_ */ |
| |