/**
 * @file % !FILENAME %
 *
 * @section desc File description
 *
 * Compiler abstraction for all AUTOSAR Modules
 * Compiler abstraction for GreenHills C compiler
 *
 * @section copyright Copyright
 *
 * Trampoline OS
 *
 * Trampoline is copyright (c) IRCCyN 2005-2007
 * Trampoline is protected by the French intellectual property law.
 *
 * This software is distributed under the Lesser GNU Public Licence
 *
 * @section infos File informations
 *
 * $Date$
 * $Rev$
 * $Author$
 * $URL$
 */
 
#ifndef COMPILER_H
#define COMPILER_H

/******************************************************************************/
/* INCLUSIONS                                                                 */
/******************************************************************************/
#include "Compiler_Cfg.h"


/******************************************************************************/
/* DEFINITION OF MACROS                                                       */
/******************************************************************************/
#define AUTOMATIC
#define TYPEDEF
#define STATIC static
#define _STATIC_ static
#define NULL_PTR ((void *)0)
#define INLINE inline

#define ROM_MEM   const
#define _INTERRUPT_  __interrupt

#define FUNC(rettype, memclass) rettype
#define P2VAR(ptrtype, memclass, ptrclass) ptrtype *
#define P2CONST(ptrtype, memclass, ptrclass) const ptrtype *
#define CONSTP2VAR(ptrtype, memclass, ptrclass) ptrtype * const
#define CONSTP2CONST(ptrtype, memclass, ptrclass) const ptrtype * const
#define P2FUNC(rettype, ptrclass, fctname) rettype (* fctname)
#define CONST(consttype, memclass) const consttype
#define VAR(vartype, memclass) vartype

#define CONSTP2FUNC(rettype, ptrclass, fctname)  rettype (*const fctname)

#define EXIT_INTERRUPT()

/*****************************************************************************/
/* PUBLISHED INFORMATION                                                     */
/*****************************************************************************/
#define COMPILER_VENDOR_ID
#define COMPILER_AR_MAJOR_VERSION 3
#define COMPILER_AR_MINOR_VERSION 0
#define COMPILER_AR_PATCH_VERSION 0
#define COMPILER_SW_MAJOR_VERSION 2
#define COMPILER_SW_MINOR_VERSION 4
#define COMPILER_SW_PATCH_VERSION 0


#endif /* COMPILER_H */