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