1 /*
2  * Copyright (C) 2008 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 #ifndef bbs_BASIC_EM_H
18 #define bbs_BASIC_EM_H
19 
20 /* ---- includes ----------------------------------------------------------- */
21 
22 /** This header file is not part of the repository.
23  *  If you get an error message at this point, copy
24  *  b_BasicEm/LibConfigDefault.h into
25  *  "../conf/b_BasicEm/LibConfig.h"
26  */
27 #include "../conf/b_BasicEm/LibConfig.h"
28 
29 #include "b_BasicEm/Config.h"
30 
31 /* ---- defines ------------------------------------------------------------ */
32 
33 #if defined( WIN32 )
34 	/* disable warning for short += short: */
35 	#pragma warning( disable : 4244 )
36 #endif
37 
38 #if defined( bbs_NO_MESSAGE_HANDLING )
39 #error bbs_NO_MESSAGE_HANDLING is obsolete, please use bbs_COMPACT_MESSAGE_HANDLING instead.
40 #endif
41 #if defined( bbs_ENABLE_MESSAGE_FPTRG )
42 #error bbs_ENABLE_MESSAGE_FPTRG is obsolete, please use error handler in context object instead.
43 #endif
44 
45 #if defined( bbs_NO_MESSAGE_HANDLING ) && defined( bbs_ENABLE_MESSAGE_FPTRG )
46 #error LibConfig.h: bbs_NO_MESSAGE_HANDLING and bbs_ENABLE_MESSAGE_FPTRG are mutually exclusive
47 #endif
48 
49 
50 
51 /* ---- typedefs ----------------------------------------------------------- */
52 
53 typedef signed char		int8;
54 typedef signed short	int16;
55 typedef unsigned char	uint8;
56 typedef unsigned short	uint16;
57 
58 #if defined HW_TMS320C6x
59 	typedef signed int		int32;
60 	typedef unsigned int	uint32;
61 	typedef uint32			count_t;
62 #elif defined HW_TMS320C5x
63 	typedef signed long		int32;
64 	typedef unsigned long	uint32;
65 	typedef uint16			count_t;
66 #else
67 	typedef signed int		int32;
68 	typedef unsigned int	uint32;
69 	typedef uint32			count_t;
70 #endif
71 
72 
73 typedef uint32 flag; /* boolean type */
74 
75 /*
76 	Please modify the 64 bit types declarations below for specific platforms/compilers
77 	where necessary;
78 	bbs_TYPES_64_AVAILABLE should be checked in code sections that make use of 64 bit data types.
79 */
80 #ifdef bbs_TYPES_64_AVAILABLE
81 
82 #ifdef WIN64
83 	typedef __int64				int64;
84 	typedef unsigned __int64	uint64;
85 #else
86 	typedef long long			int64;
87 	typedef unsigned long long	uint64;
88 #endif
89 
90 #endif /* bbs_TYPES_64_AVAILABLE */
91 
92 /** floating point type */
93 struct flt16
94 {
95 	int16 valE;
96 	int16 bbpE;
97 };
98 
99 #ifndef TRUE
100 	#define TRUE 1
101 	#define FALSE 0
102 #endif
103 
104 #ifndef NULL
105 	#define NULL 0L
106 #endif
107 
108 #define bbs_MAX_STRING_LENGTH 1024
109 
110 /* ---- macros ------------------------------------------------------------- */
111 
112 /** device independent macro definitions for sizeof:
113   * bbs_SIZEOF8:  size in bytes
114   *	bbs_SIZEOF16: size in 16-bit words
115   *	bbs_SIZEOF32: size in 32-bit words
116   */
117 #if defined( HW_TMS320C5x )
118 	#define bbs_SIZEOF8( typeA )  ( sizeof( typeA ) << 1 )
119 	#define bbs_SIZEOF16( typeA ) ( sizeof( typeA ) )
120 	#define bbs_SIZEOF32( typeA ) ( sizeof( typeA ) >> 1 )
121 #else
122 	#define bbs_SIZEOF8( typeA )  ( sizeof( typeA ) )
123 	#define bbs_SIZEOF16( typeA ) ( sizeof( typeA ) >> 1 )
124 	#define bbs_SIZEOF32( typeA ) ( sizeof( typeA ) >> 2 )
125 #endif
126 
127 /** messages */
128 #if defined( HW_TMS320C5x ) || defined( bbs_COMPACT_MESSAGE_HANDLING )
129 
130 	#define bbs_DEF_fNameL( fNameA )
131 
132 	#define bbs_ERROR0( formatA )										bbs_Context_pushError( cpA, bbs_Error_create( bbs_ERR_ERROR, __LINE__, __FILE__, NULL ) )
133 	#define bbs_ERROR1( formatA, arg1A )								bbs_Context_pushError( cpA, bbs_Error_create( bbs_ERR_ERROR, __LINE__, __FILE__, NULL ) )
134 	#define bbs_ERROR2( formatA, arg1A, arg2A )							bbs_Context_pushError( cpA, bbs_Error_create( bbs_ERR_ERROR, __LINE__, __FILE__, NULL ) )
135 	#define bbs_ERROR3( formatA, arg1A, arg2A, arg3A )					bbs_Context_pushError( cpA, bbs_Error_create( bbs_ERR_ERROR, __LINE__, __FILE__, NULL ) )
136 	#define bbs_ERROR4( formatA, arg1A, arg2A, arg3A, arg4A )			bbs_Context_pushError( cpA, bbs_Error_create( bbs_ERR_ERROR, __LINE__, __FILE__, NULL ) )
137 	#define bbs_ERROR5( formatA, arg1A, arg2A, arg3A, arg4A, arg5A )	bbs_Context_pushError( cpA, bbs_Error_create( bbs_ERR_ERROR, __LINE__, __FILE__, NULL ) )
138 
139 	#define bbs_ERR0( errorA, formatA )									bbs_Context_pushError( cpA, bbs_Error_create( errorA, __LINE__, __FILE__, NULL ) )
140 	#define bbs_ERR1( errorA, formatA, arg1A )							bbs_Context_pushError( cpA, bbs_Error_create( errorA, __LINE__, __FILE__, NULL ) )
141 	#define bbs_ERR2( errorA, formatA, arg1A, arg2A )					bbs_Context_pushError( cpA, bbs_Error_create( errorA, __LINE__, __FILE__, NULL ) )
142 	#define bbs_ERR3( errorA, formatA, arg1A, arg2A, arg3A )			bbs_Context_pushError( cpA, bbs_Error_create( errorA, __LINE__, __FILE__, NULL ) )
143 	#define bbs_ERR4( errorA, formatA, arg1A, arg2A, arg3A, arg4A )		bbs_Context_pushError( cpA, bbs_Error_create( errorA, __LINE__, __FILE__, NULL ) )
144 	#define bbs_ERR5( errorA, formatA, arg1A, arg2A, arg3A, arg4A, arg5A )	bbs_Context_pushError( cpA, bbs_Error_create( errorA, __LINE__, __FILE__, NULL ) )
145 
146 #else
147 
148 	#define bbs_DEF_fNameL( fNameA )									const char* fNameL = fNameA;
149 
150 	#define bbs_ERROR0( formatA )										bbs_Context_pushError( cpA, bbs_Error_create( bbs_ERR_ERROR, __LINE__, __FILE__, formatA ) )
151 	#define bbs_ERROR1( formatA, arg1A )								bbs_Context_pushError( cpA, bbs_Error_create( bbs_ERR_ERROR, __LINE__, __FILE__, formatA, arg1A ) )
152 	#define bbs_ERROR2( formatA, arg1A, arg2A )							bbs_Context_pushError( cpA, bbs_Error_create( bbs_ERR_ERROR, __LINE__, __FILE__, formatA, arg1A, arg2A ) )
153 	#define bbs_ERROR3( formatA, arg1A, arg2A, arg3A )					bbs_Context_pushError( cpA, bbs_Error_create( bbs_ERR_ERROR, __LINE__, __FILE__, formatA, arg1A, arg2A, arg3A ) )
154 	#define bbs_ERROR4( formatA, arg1A, arg2A, arg3A, arg4A )			bbs_Context_pushError( cpA, bbs_Error_create( bbs_ERR_ERROR, __LINE__, __FILE__, formatA, arg1A, arg2A, arg3A, arg4A ) )
155     #define bbs_ERROR5( formatA, arg1A, arg2A, arg3A, arg4A, arg5A )	bbs_Context_pushError( cpA, bbs_Error_create( bbs_ERR_ERROR, __LINE__, __FILE__, formatA, arg1A, arg2A, arg3A, arg4A, arg5A ) )
156 
157 	#define bbs_ERR0( errorA, formatA )										bbs_Context_pushError( cpA, bbs_Error_create( errorA, __LINE__, __FILE__, formatA ) )
158 	#define bbs_ERR1( errorA, formatA, arg1A )								bbs_Context_pushError( cpA, bbs_Error_create( errorA, __LINE__, __FILE__, formatA, arg1A ) )
159 	#define bbs_ERR2( errorA, formatA, arg1A, arg2A )						bbs_Context_pushError( cpA, bbs_Error_create( errorA, __LINE__, __FILE__, formatA, arg1A, arg2A ) )
160 	#define bbs_ERR3( errorA, formatA, arg1A, arg2A, arg3A )				bbs_Context_pushError( cpA, bbs_Error_create( errorA, __LINE__, __FILE__, formatA, arg1A, arg2A, arg3A ) )
161 	#define bbs_ERR4( errorA, formatA, arg1A, arg2A, arg3A, arg4A )			bbs_Context_pushError( cpA, bbs_Error_create( errorA, __LINE__, __FILE__, formatA, arg1A, arg2A, arg3A, arg4A ) )
162     #define bbs_ERR5( errorA, formatA, arg1A, arg2A, arg3A, arg4A, arg5A )	bbs_Context_pushError( cpA, bbs_Error_create( errorA, __LINE__, __FILE__, formatA, arg1A, arg2A, arg3A, arg4A, arg5A ) )
163 
164 #endif
165 
166 /* ---- constants ---------------------------------------------------------- */
167 
168 /* ---- associated objects ------------------------------------------------- */
169 
170 /* ---- external functions ------------------------------------------------- */
171 
172 #endif /* bbs_BASIC_EM_H */
173 
174