auto import from //depot/cupcake/@135843
[android/platform/external/neven.git] / Embedded / common / src / b_BasicEm / Basic.h
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