Graphics framework for GR-PEACH. When you use this program, we judge you have agreed to the following contents. https://developer.mbed.org/teams/Renesas/wiki/About-LICENSE
Dependents: ImageZoomInout_Sample ImageRotaion_Sample ImageScroll_Sample GR-PEACH_LCD_4_3inch_Save_to_USB ... more
r_multi_compiler_typedef.h
00001 /******************************************************************************* 00002 * DISCLAIMER 00003 * This software is supplied by Renesas Electronics Corporation and is only 00004 * intended for use with Renesas products. No other uses are authorized. This 00005 * software is owned by Renesas Electronics Corporation and is protected under 00006 * all applicable laws, including copyright laws. 00007 * THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING 00008 * THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT 00009 * LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE 00010 * AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED. 00011 * TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS 00012 * ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE 00013 * FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR 00014 * ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE 00015 * BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. 00016 * Renesas reserves the right, without notice, to make changes to this software 00017 * and to discontinue the availability of this software. By using this software, 00018 * you agree to the additional terms and conditions found by accessing the 00019 * following link: 00020 * http://www.renesas.com/disclaimer 00021 * Copyright (C) 2012 - 2015 Renesas Electronics Corporation. All rights reserved. 00022 *******************************************************************************/ 00023 /** 00024 * @file r_multi_compiler_typedef.h 00025 * @brief Compiler Porting Layer. Data types. 00026 * 00027 * $Module: OSPL $ $PublicVersion: 0.90 $ (=R_OSPL_VERSION) 00028 * $Rev: 42 $ 00029 * $Date:: 2014-06-03 16:54:02 +0900#$ 00030 */ 00031 00032 #ifndef R_MULTI_COMPILER_TYPEDEF_H 00033 #define R_MULTI_COMPILER_TYPEDEF_H 00034 00035 00036 /****************************************************************************** 00037 Includes <System Includes> , "Project Includes" 00038 ******************************************************************************/ 00039 #ifdef __cplusplus 00040 extern "C" { 00041 #endif /* __cplusplus */ 00042 00043 00044 /****************************************************************************** 00045 Typedef definitions 00046 ******************************************************************************/ 00047 00048 /****************************************************************************** 00049 Macro definitions 00050 ******************************************************************************/ 00051 00052 /** 00053 * @def R_OSPL_SECTION_INLINE_VERSION 00054 * @brief R_OSPL_SECTION_INLINE_VERSION 00055 * @par Parameters 00056 * None 00057 * @return None. 00058 */ 00059 #define R_OSPL_SECTION_INLINE_VERSION 4 00060 00061 00062 /** 00063 * @def R_OSPL_LIST_UP_INLINE_BODY 00064 * @brief Define or not define 00065 * @par Parameters 00066 * None 00067 * @return None. 00068 */ 00069 /* #define R_OSPL_LIST_UP_INLINE_BODY */ 00070 00071 00072 /** 00073 * @def R_OSPL_MAKE_INLINE_BODY 00074 * @brief Define or not define 00075 * @par Parameters 00076 * None 00077 * @return None. 00078 */ 00079 /* #define R_OSPL_MAKE_INLINE_BODY */ 00080 00081 00082 /** 00083 * @def INLINE 00084 * @brief Inline function 00085 * @par Parameters 00086 * None 00087 * @return None. 00088 * 00089 * @par Description 00090 * "__INLINE" is reserved by compiler. 00091 */ 00092 /* ->QAC 1252 : QAC considers that && is not short-circuit evaluation */ 00093 #if defined( __STDC_VERSION__ ) && __STDC_VERSION__ >= 199901L && ! defined( __ICCARM__ ) /* For C99 */ \ 00094 && ! IS_MBED_USED || defined( __cplusplus ) 00095 /* <-QAC 1252 */ 00096 #if defined( R_OSPL_MAKE_INLINE_BODY ) && ! defined( R_OSPL_LIST_UP_INLINE_BODY ) 00097 #define INLINE extern inline 00098 #else 00099 #define INLINE inline 00100 #endif 00101 00102 /* ->QAC 1252 : QAC considers that && is not short-circuit evaluation */ 00103 #elif defined( __STDC_VERSION__ ) && __STDC_VERSION__ >= 199901L && defined( __ICCARM__ ) /* For IAR C99 */ 00104 /* <-QAC 1252 */ 00105 #if defined( R_OSPL_MAKE_INLINE_BODY ) 00106 #define INLINE 00107 /* "extern inline" raises a error, if with "@" operator */ 00108 #else 00109 #define INLINE inline /* Special inline */ 00110 #endif 00111 00112 #elif defined( __CC_ARM ) && ! defined( __GNUC__ ) /* For ARMCC not C99, not -gnu */ 00113 #if defined( R_OSPL_MAKE_INLINE_BODY ) && ! defined( R_OSPL_LIST_UP_INLINE_BODY ) 00114 #if R_OSPL_LIBRARY_MAKING 00115 #define INLINE static __inline 00116 #else 00117 #define INLINE extern __inline /* Special inline */ 00118 #endif 00119 #else 00120 #if R_OSPL_LIBRARY_MAKING 00121 #define INLINE static __inline 00122 #else 00123 #define INLINE extern __inline /* Special inline */ 00124 #endif 00125 #endif 00126 /* Function bodys are in shared "i.<FunctionName>" section */ 00127 00128 #elif defined( __GNUC__ ) /* For gcc */ 00129 #if IS_MBED_USED 00130 #define INLINE static __inline 00131 #else 00132 #if defined( R_OSPL_MAKE_INLINE_BODY ) && ! defined( R_OSPL_LIST_UP_INLINE_BODY ) 00133 #define INLINE __inline__ /* extern inline of C99 */ 00134 #else 00135 #define INLINE extern __inline__ /* inline of C99 */ 00136 #endif 00137 #endif 00138 00139 #elif defined( _SH ) /* For SH compiler */ 00140 #if defined( R_OSPL_MAKE_INLINE_BODY ) && ! defined( R_OSPL_LIST_UP_INLINE_BODY ) 00141 #define INLINE 00142 #else 00143 #define INLINE static 00144 /* "extern" is ignored, if 'C1400 (W) Function "..." in #pragma inline is not expanded' */ 00145 #endif 00146 /* No inline qualifier */ 00147 /* #ifdef _SH */ 00148 /* #pragma inline <function_name> */ 00149 /* #endif */ 00150 00151 #else 00152 #error 00153 #endif 00154 00155 00156 /** 00157 * @def STATIC_INLINE 00158 * @brief Static inline in C source file 00159 * @par Parameters 00160 * None 00161 * @return None. 00162 * 00163 * @par Description 00164 * "__STATIC_INLINE" is reserved by compiler. 00165 */ 00166 00167 #ifndef __cplusplus 00168 00169 #ifdef __CC_ARM 00170 #define STATIC_INLINE static __inline 00171 #endif 00172 00173 #ifdef __ICCARM__ 00174 #define STATIC_INLINE static inline 00175 #endif 00176 00177 #if defined( __GNUC__ ) && ! defined( __CC_ARM ) 00178 #define STATIC_INLINE static inline 00179 #endif 00180 00181 #else 00182 00183 #define STATIC_INLINE static inline 00184 00185 #endif /* __cplusplus */ 00186 00187 00188 /** 00189 * @def R_OSPL_SECTION 00190 * @brief Names section name to function or varaible 00191 * @par Parameters 00192 * None 00193 * @return None. 00194 */ 00195 /** 00196 * @def R_OSPL_SECTION_FOR_ZERO_INIT 00197 * @brief Names section name to zero initialized varaible 00198 * @par Parameters 00199 * None 00200 * @return None. 00201 */ 00202 /* ->MISRA 19.10 : Cannot ( ) */ /* ->MISRA 19.7 : Cannot function */ /* ->SEC M5.1.3 */ 00203 #if defined( __CC_ARM ) 00204 #define R_OSPL_SECTION( SectionName, Declaration ) \ 00205 __attribute__ ((section (SectionName))) Declaration 00206 00207 #define R_OSPL_SECTION_FOR_ZERO_INIT( SectionName, Declaration ) \ 00208 __attribute__ ((section (SectionName), zero_init)) Declaration 00209 00210 #elif defined( __GNUC__ ) && ! defined( __CC_ARM ) 00211 #define R_OSPL_SECTION( SectionName, Declaration ) \ 00212 __attribute__ ((section (SectionName))) Declaration 00213 00214 #define R_OSPL_SECTION_FOR_ZERO_INIT( SectionName, Declaration ) \ 00215 __attribute__ ((section (SectionName))) Declaration 00216 00217 #elif defined( __ICCARM__ ) 00218 #define R_OSPL_SECTION( SectionName, Declaration ) \ 00219 Declaration @ SectionName 00220 00221 #define R_OSPL_SECTION_FOR_ZERO_INIT( SectionName, Declaration ) \ 00222 Declaration @ SectionName 00223 00224 #elif defined( _SH ) /* For SH compiler */ 00225 #define R_OSPL_SECTION( SectionName, Declaration ) \ 00226 Declaration 00227 /* No section qualifier */ 00228 /* #ifdef _SH */ 00229 /* #pragma section <section_name> */ 00230 /* #endif */ 00231 /* : */ 00232 /* <Not extern code> */ 00233 /* : */ 00234 /* #ifdef _SH */ 00235 /* #pragma section */ 00236 /* #endif */ 00237 00238 #define R_OSPL_SECTION_FOR_ZERO_INIT( SectionName, Declaration ) \ 00239 Declaration 00240 00241 #else 00242 #error 00243 #endif 00244 /* <-MISRA 19.10 */ /* <-MISRA 19.7 */ /* <-SEC M5.1.3 */ 00245 00246 00247 /** 00248 * @def R_OSPL_SECTION_FOR_INLINE 00249 * @brief Names section name to inline function 00250 * @par Parameters 00251 * None 00252 * @return None. 00253 */ 00254 /* ->MISRA 19.10 : Cannot ( ) */ /* ->MISRA 19.7 : Cannot function */ /* ->SEC M5.1.3 */ 00255 #if defined( __CC_ARM ) || defined( __GNUC__ ) 00256 #if defined( R_OSPL_LIST_UP_INLINE_BODY ) 00257 #define R_OSPL_SECTION_FOR_INLINE( SectionName, Declaration ) \ 00258 __attribute__ ((section ("INLINE_BODY"))) Declaration 00259 #else 00260 #define R_OSPL_SECTION_FOR_INLINE( SectionName, Declaration ) \ 00261 __attribute__ ((section (SectionName))) Declaration 00262 #endif 00263 00264 #elif defined( __ICCARM__ ) 00265 #if defined( R_OSPL_MAKE_INLINE_BODY ) 00266 #if defined( R_OSPL_LIST_UP_INLINE_BODY ) 00267 #define R_OSPL_SECTION_FOR_INLINE( SectionName, Declaration ) \ 00268 Declaration @ "INLINE_BODY" 00269 #else 00270 #define R_OSPL_SECTION_FOR_INLINE( SectionName, Declaration ) \ 00271 Declaration @ SectionName 00272 #endif 00273 #else 00274 #define R_OSPL_SECTION_FOR_INLINE( SectionName, Declaration ) \ 00275 Declaration 00276 #endif 00277 00278 #elif defined( _SH ) /* For SH compiler */ 00279 #define R_OSPL_SECTION_FOR_INLINE( SectionName, Declaration ) \ 00280 Declaration 00281 /* No section qualifier */ 00282 /* #ifdef _SH */ 00283 /* #pragma section <section_name> */ 00284 /* #endif */ 00285 /* : */ 00286 /* <Not extern code> */ 00287 /* : */ 00288 /* #ifdef _SH */ 00289 /* #pragma section */ 00290 /* #endif */ 00291 00292 #else 00293 #error 00294 #endif 00295 /* <-MISRA 19.10 */ /* <-MISRA 19.7 */ /* <-SEC M5.1.3 */ 00296 00297 00298 /** 00299 * @def R_OSPL_ALIGNMENT 00300 * @brief Alignments first addres of global variable 00301 * @param ByteCount Value of alignment 00302 * @param Declaration_with_Semicolon Declaration of the variable 00303 * @return None. 00304 */ 00305 /* ->MISRA 19.10 : Cannot ( ) */ /* ->MISRA 19.7 : Cannot function */ /* ->SEC M5.1.3 */ 00306 #if defined( __CC_ARM ) 00307 #define R_OSPL_ALIGNMENT( ByteCount, Declaration_with_Semicolon ) \ 00308 __align( ByteCount ) Declaration_with_Semicolon 00309 00310 #elif defined( __GNUC__ ) && ! defined( __CC_ARM ) 00311 #define R_OSPL_ALIGNMENT( ByteCount, Declaration_with_Semicolon ) \ 00312 __attribute__((aligned( ByteCount ))) Declaration_with_Semicolon 00313 00314 #elif defined( __ICCARM__ ) 00315 #define R_OSPL_ALIGNMENT( ByteCount, Declaration_with_Semicolon ) \ 00316 R_OSPL_ALIGNMENT_SUB( ByteCount, Declaration_with_Semicolon ) 00317 #define R_OSPL_ALIGNMENT_SUB( ByteCount, Declaration_with_Semicolon ) \ 00318 _Pragma( "diag_suppress=Pe606" ) \ 00319 _Pragma( "diag_suppress=Pa060" ) \ 00320 _Pragma( "diag_suppress=Pe609" ) \ 00321 R_OSPL_ALIGNMENT_##ByteCount() \ 00322 Declaration_with_Semicolon \ 00323 R_OSPL_ALIGNMENT_##0x4() 00324 /* align 0x4 must be written after ";" */ 00325 00326 #define R_OSPL_ALIGNMENT_0x4() _Pragma( "data_alignment=0x4" ) 00327 #define R_OSPL_ALIGNMENT_0x8() _Pragma( "data_alignment=0x8" ) 00328 #define R_OSPL_ALIGNMENT_0x10() _Pragma( "data_alignment=0x10" ) 00329 #define R_OSPL_ALIGNMENT_0x20() _Pragma( "data_alignment=0x20" ) 00330 #define R_OSPL_ALIGNMENT_0x40() _Pragma( "data_alignment=0x40" ) 00331 #define R_OSPL_ALIGNMENT_0x80() _Pragma( "data_alignment=0x80" ) 00332 #define R_OSPL_ALIGNMENT_0x100() _Pragma( "data_alignment=0x100" ) 00333 #define R_OSPL_ALIGNMENT_0x200() _Pragma( "data_alignment=0x200" ) 00334 #define R_OSPL_ALIGNMENT_0x400() _Pragma( "data_alignment=0x400" ) 00335 #define R_OSPL_ALIGNMENT_0x800() _Pragma( "data_alignment=0x800" ) 00336 #define R_OSPL_ALIGNMENT_0x1000() _Pragma( "data_alignment=0x1000" ) 00337 #define R_OSPL_ALIGNMENT_0x2000() _Pragma( "data_alignment=0x2000" ) 00338 #define R_OSPL_ALIGNMENT_0x4000() _Pragma( "data_alignment=0x4000" ) 00339 #define R_OSPL_ALIGNMENT_0x8000() _Pragma( "data_alignment=0x8000" ) 00340 #define R_OSPL_ALIGNMENT_0x10000() _Pragma( "data_alignment=0x10000" ) 00341 #define R_OSPL_ALIGNMENT_0x20000() _Pragma( "data_alignment=0x20000" ) 00342 #define R_OSPL_ALIGNMENT_0x40000() _Pragma( "data_alignment=0x40000" ) 00343 #define R_OSPL_ALIGNMENT_0x80000() _Pragma( "data_alignment=0x80000" ) 00344 #define R_OSPL_ALIGNMENT_0x100000() _Pragma( "data_alignment=0x100000" ) 00345 00346 #define R_OSPL_ALIGNMENT_4() _Pragma( "data_alignment=4" ) 00347 #define R_OSPL_ALIGNMENT_8() _Pragma( "data_alignment=8" ) 00348 #define R_OSPL_ALIGNMENT_16() _Pragma( "data_alignment=16" ) 00349 #define R_OSPL_ALIGNMENT_32() _Pragma( "data_alignment=32" ) 00350 #define R_OSPL_ALIGNMENT_64() _Pragma( "data_alignment=64" ) 00351 #define R_OSPL_ALIGNMENT_128() _Pragma( "data_alignment=128" ) 00352 #define R_OSPL_ALIGNMENT_256() _Pragma( "data_alignment=256" ) 00353 #define R_OSPL_ALIGNMENT_512() _Pragma( "data_alignment=512" ) 00354 #define R_OSPL_ALIGNMENT_1024() _Pragma( "data_alignment=1024" ) 00355 #define R_OSPL_ALIGNMENT_2048() _Pragma( "data_alignment=2048" ) 00356 #define R_OSPL_ALIGNMENT_4096() _Pragma( "data_alignment=4096" ) 00357 #define R_OSPL_ALIGNMENT_8192() _Pragma( "data_alignment=8192" ) 00358 #define R_OSPL_ALIGNMENT_16384() _Pragma( "data_alignment=16384" ) 00359 #define R_OSPL_ALIGNMENT_32768() _Pragma( "data_alignment=32768" ) 00360 #define R_OSPL_ALIGNMENT_65536() _Pragma( "data_alignment=65536" ) 00361 00362 #elif defined( _SH ) 00363 #define R_OSPL_ALIGNMENT( ByteCount, Declaration_with_Semicolon ) \ 00364 Declaration_with_Semicolon 00365 /* No alignment qualifier */ 00366 /* Set aligned address by "Map section information" */ 00367 00368 #else 00369 #error 00370 #endif 00371 /* <-MISRA 19.10 */ /* <-MISRA 19.7 */ /* <-SEC M5.1.3 */ 00372 00373 00374 /* Form: C Language Header */ 00375 /****************************************************************************** 00376 Variable Externs 00377 ******************************************************************************/ 00378 00379 /****************************************************************************** 00380 Functions Prototypes 00381 ******************************************************************************/ 00382 /* In "r_multi_compiler.h" */ 00383 00384 /*********************************************************************** 00385 * End of File: 00386 ************************************************************************/ 00387 #ifdef __cplusplus 00388 } /* End of extern "C" */ 00389 #endif /* __cplusplus */ 00390 00391 #endif /* R_MULTI_COMPILER_TYPEDEF_H */
Generated on Tue Jul 12 2022 11:15:02 by 1.7.2