1c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/*
2c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * Copyright (c) 2010, Texas Instruments Incorporated
3c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * All rights reserved.
4c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *
5c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * Redistribution and use in source and binary forms, with or without
6c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * modification, are permitted provided that the following conditions
7c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * are met:
8c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *
9c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * *  Redistributions of source code must retain the above copyright
10c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *    notice, this list of conditions and the following disclaimer.
11c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *
12c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * *  Redistributions in binary form must reproduce the above copyright
13c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *    notice, this list of conditions and the following disclaimer in the
14c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *    documentation and/or other materials provided with the distribution.
15c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *
16c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * *  Neither the name of Texas Instruments Incorporated nor the names of
17c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *    its contributors may be used to endorse or promote products derived
18c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *    from this software without specific prior written permission.
19c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *
20c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
21c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
22c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
23c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
24c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
25c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
26c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
27c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
28c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
29c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
30c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */
32c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
33c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/*
34c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev*  @file timm_timm_osal_error.h
35c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev*  The osal header file defines the error codes
36c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev*  @path
37c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev*
38c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev*/
39c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/* -------------------------------------------------------------------------- */
40c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/* =========================================================================
41c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *!
42c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *! Revision History
43c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *! ===================================
44c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *! 0.1: Created the first draft version, ksrini@ti.com
45c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * ========================================================================= */
46c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
47c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev#ifndef _TIMM_OSAL_ERROR_H_
48c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev#define _TIMM_OSAL_ERROR_H_
49c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
50c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev#ifdef __cplusplus
51c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevextern "C"
52c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev{
53c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev#endif				/* __cplusplus */
54c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
55c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev#include "timm_osal_types.h"
56c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
57c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/** A unique ID for each component*/
58c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	typedef TIMM_OSAL_U16 TIMM_OSAL_COMPID;
59c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
60c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/** TIMM_OSAL_ERROR is a 32 bits unsigned integer.
61c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *   Each error code can be broken up into three fields as given below:
62c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * - Type of error (2 bits): NO_ERROR: 00, WARNING: 01, FATAL_ERROR: 10
63c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * - Component ID (14 bits): A unique ID which indicates which of the component generated the error
64c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * - Error ID (16 bits): The specific error generated by a component
65c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */
66c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	typedef TIMM_OSAL_U32 TIMM_OSAL_ERRORTYPE;
67c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
68c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev#define TIMM_OSAL_OK  0
69c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev#define TIMM_OSAL_WAR 1
70c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev#define TIMM_OSAL_ERR 2
71c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
72c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
73c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/* Macro to process TIMM_OSAL_ERROR */
74c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
75c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/** This macro tests if the provided M4OSA_ERR is a warning or not*/
76c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev#define TIMM_OSAL_IS_WARNING(error)   ((((error)>>30) == TIMM_OSAL_WAR) ? 1:0)
77c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
78c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/** This macro tests if the provided M4OSA_ERR is a fatal error or not*/
79c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev#define TIMM_OSAL_IS_ERROR(error)   ((((error)>>30) == TIMM_OSAL_ERR) ? 1:0)
80c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
81c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/** This macro returns an error code accroding to the 3 provided fields:
82c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev  * @arg Type: (IN) [TIMM_OSAL_U32] Type of error to put in the error code
83c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev  * @arg compID: (IN) [TIMM_OSAL_U32] CompID to put in the error code
84c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev  * @arg errorID: (IN) [TIMM_OSAL_U32] ErrorID to put in the error code*/
85c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev#define TIMM_OSAL_ERR_CREATE(type, compID, errorID)\
86c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev   (((type)<<30)+(((compID)&0x003FFF)<<16)+((errorID)&0x00FFFF))
87c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
88c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/** This macro extracts the 3 fields from the error:
89c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev  * @arg error: (IN) [TIMM_OSAL_ERRORTYPE] Error code
90c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev  * @arg type: (OUT) [TIMM_OSAL_U32] Type of error in the error code
91c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev  * @arg compID: (OUT) [TIMM_OSAL_U32] CompID to put in the error code
92c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev  * @arg errorID: (OUT) [TIMM_OSAL_U32] ErrorID to put in the error code*/
93c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev#define TIMM_OSAL_ERR_SPLIT(error, type, compID, errorID)\
94c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev   { type=(TIMM_OSAL_U32)((error)>>30);\
95c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev     compID=(TIMM_OSAL_U32)(((error)>>16)&0x003FFF);\
96c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev     (TIMM_OSAL_U32)(errorID=(error)&0x00FFFF); }
97c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
98c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/* Component IDs */
99c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev#define TIMM_OSAL_COMP_GENERAL      0x00
100c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev#define TIMM_OSAL_COMP_MEMORY       0x01
101c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev#define TIMM_OSAL_COMP_PIPES        0x02
102c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev#define TIMM_OSAL_COMP_EVENTS       0x03
103c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev#define TIMM_OSAL_COMP_SEMAPHORES   0x04
104c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev#define TIMM_OSAL_COMP_TASK         0x05
105c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
106c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/* Definition of common error codes */
107c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/** there is no error*/
108c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev#define TIMM_OSAL_ERR_NONE                 ((TIMM_OSAL_ERRORTYPE) 0x00000000)
109c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
110c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
111c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/** There is no more memory available*/
112c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev#define TIMM_OSAL_ERR_ALLOC                ((TIMM_OSAL_ERRORTYPE) TIMM_OSAL_ERR_CREATE(TIMM_OSAL_ERR,TIMM_OSAL_COMP_GENERAL,0x000001))
113c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev#define TIMM_OSAL_ERR_OUT_OF_RESOURCE      ((TIMM_OSAL_ERRORTYPE) TIMM_OSAL_ERR_CREATE(TIMM_OSAL_ERR,TIMM_OSAL_COMP_GENERAL,0x000002))
114c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
115c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/** Time out */
116c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev#define TIMM_OSAL_WAR_TIMEOUT              ((TIMM_OSAL_ERRORTYPE) TIMM_OSAL_ERR_CREATE(TIMM_OSAL_WAR,TIMM_OSAL_COMP_GENERAL,0x000003))
117c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev#define TIMM_OSAL_ERR_PARAMETER            ((TIMM_OSAL_ERRORTYPE) TIMM_OSAL_ERR_CREATE(TIMM_OSAL_ERR,TIMM_OSAL_COMP_GENERAL,0x000004))
118c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev#define TIMM_OSAL_ERR_NOT_READY            ((TIMM_OSAL_ERRORTYPE) TIMM_OSAL_ERR_CREATE(TIMM_OSAL_ERR,TIMM_OSAL_COMP_GENERAL,0x000005))
119c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev#define TIMM_OSAL_ERR_OMX                  ((TIMM_OSAL_ERRORTYPE) TIMM_OSAL_ERR_CREATE(TIMM_OSAL_ERR,TIMM_OSAL_COMP_GENERAL,0x000006))
120c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev#define TIMM_OSAL_ERR_PIPE_FULL            ((TIMM_OSAL_ERRORTYPE) TIMM_OSAL_ERR_CREATE(TIMM_OSAL_ERR,TIMM_OSAL_COMP_GENERAL,0x000007))
121c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev#define TIMM_OSAL_ERR_PIPE_EMPTY           ((TIMM_OSAL_ERRORTYPE) TIMM_OSAL_ERR_CREATE(TIMM_OSAL_ERR,TIMM_OSAL_COMP_GENERAL,0x000008))
122c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev#define TIMM_OSAL_ERR_PIPE_DELETED         ((TIMM_OSAL_ERRORTYPE) TIMM_OSAL_ERR_CREATE(TIMM_OSAL_ERR,TIMM_OSAL_COMP_GENERAL,0x000009))
123c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev#define TIMM_OSAL_ERR_PIPE_RESET           ((TIMM_OSAL_ERRORTYPE) TIMM_OSAL_ERR_CREATE(TIMM_OSAL_ERR,TIMM_OSAL_COMP_GENERAL,0x00000A))
124c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev#define TIMM_OSAL_ERR_GROUP_DELETED        ((TIMM_OSAL_ERRORTYPE) TIMM_OSAL_ERR_CREATE(TIMM_OSAL_ERR,TIMM_OSAL_COMP_GENERAL,0x00000B))
125c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev#define TIMM_OSAL_ERR_UNKNOWN              ((TIMM_OSAL_ERRORTYPE) TIMM_OSAL_ERR_CREATE(TIMM_OSAL_ERR,TIMM_OSAL_COMP_GENERAL,0x00000C))
126c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
127c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
128c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev#define TIMM_OSAL_ERR_SEM_CREATE_FAILED    ((TIMM_OSAL_ERRORTYPE) TIMM_OSAL_ERR_CREATE(TIMM_OSAL_ERR,TIMM_OSAL_COMP_SEMAPHORE,0x000001))
129c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
130c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/*Added during Linux Porting*/
131c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev#define TIMM_OSAL_ERR_NO_PERMISSIONS		((TIMM_OSAL_ERRORTYPE) TIMM_OSAL_ERR_CREATE(TIMM_OSAL_ERR,TIMM_OSAL_COMP_GENERAL,0x00000D))
132c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev#define TIMM_OSAL_ERR_RESOURCE_EXISTS		((TIMM_OSAL_ERRORTYPE) TIMM_OSAL_ERR_CREATE(TIMM_OSAL_ERR,TIMM_OSAL_COMP_GENERAL,0x00000E))
133c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev#define TIMM_OSAL_ERR_RESOURCE_REMOVED		((TIMM_OSAL_ERRORTYPE) TIMM_OSAL_ERR_CREATE(TIMM_OSAL_ERR,TIMM_OSAL_COMP_GENERAL,0x00000F))
134c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev#define TIMM_OSAL_ERR_SYSTEM_LIMIT_EXCEEDED	((TIMM_OSAL_ERRORTYPE) TIMM_OSAL_ERR_CREATE(TIMM_OSAL_ERR,TIMM_OSAL_COMP_GENERAL,0x000010))
135c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev#define TIMM_OSAL_ERR_NOT_SUPPORTED		((TIMM_OSAL_ERRORTYPE) TIMM_OSAL_ERR_CREATE(TIMM_OSAL_ERR,TIMM_OSAL_COMP_GENERAL,0x000011))
136c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev#define TIMM_OSAL_ERR_SIGNAL_CAUGHT		((TIMM_OSAL_ERRORTYPE) TIMM_OSAL_ERR_CREATE(TIMM_OSAL_ERR,TIMM_OSAL_COMP_GENERAL,0x000012))
137c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev#define TIMM_OSAL_ERR_TIMEOUT              ((TIMM_OSAL_ERRORTYPE) TIMM_OSAL_ERR_CREATE(TIMM_OSAL_ERR,TIMM_OSAL_COMP_GENERAL,0x000013))
138c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
139c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
140c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
141c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev#define TIMM_OSAL_COMP_MSG_Q        0x06
142c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev#define TIMM_OSAL_ERR_MSG_SIZE_MISMATCH		((TIMM_OSAL_ERRORTYPE) TIMM_OSAL_ERR_CREATE(TIMM_OSAL_ERR,TIMM_OSAL_COMP_MSG_Q,0x000001))
143c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev#define TIMM_OSAL_ERR_MSG_TYPE_NOT_FOUND	((TIMM_OSAL_ERRORTYPE) TIMM_OSAL_ERR_CREATE(TIMM_OSAL_ERR,TIMM_OSAL_COMP_MSG_Q,0x000002))
144c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
145c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
146c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/*
147c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev#define GOTO_EXIT_IF(_Cond,_ErrorCode) { \
148c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    if ((_Cond)) { \
149c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev        status = _ErrorCode; \
150c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev        printf ("Error :: %s : %s : %d :: Exiting because : %s\n", \
151c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev                __FILE__, __FUNCTION__, __LINE__, #_Cond); \
152c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev        goto EXIT; \
153c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    } \
154c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev}
155c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev*/
156c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
157c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev#define SWITCH_CASE(_Case, _ErrCode, _ErrMsg)\
158c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	case _Case:\
159c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev		TIMM_OSAL_Error(_ErrMsg);\
160c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev		bReturnStatus = _ErrCode;\
161c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev		break;
162c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
163c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev#define SWITCH_DEFAULT_CASE(_ErrCode, _ErrMsg )\
164c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	default:\
165c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev		TIMM_OSAL_Error(_ErrMsg);\
166c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev		bReturnStatus = _ErrCode;\
167c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev		break;
168c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
169c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
170c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
171c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev#ifdef __cplusplus
172c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev}
173c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev#endif				/* __cplusplus */
174c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
175c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev#endif /*_TIMM_OSAL_ERROR_H_*/
176