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

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers r_multi_compiler_typedef.h Source File

r_multi_compiler_typedef.h

Go to the documentation of this file.
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 */