Home | History | Annotate | Download | only in b_BasicEm
      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