/*
 * This is Compiler.h for target platform: VRTA/MinGW
 */

/*
 * This is a template file. It defines integration functions necessary to complete RTA-BSW.
 * The integrator must complete the templates before deploying software containing functions defined in this file.
 * Once templates have been completed, the integrator should delete the #error line.
 * Note: The integrator is responsible for updates made to this file.
 *
 * To remove the following error define the macro NOT_READY_FOR_TESTING_OR_DEPLOYMENT with a compiler option (e.g. -D NOT_READY_FOR_TESTING_OR_DEPLOYMENT)
 * The removal of the error only allows the user to proceed with the building phase
 */
/* #ifndef NOT_READY_FOR_TESTING_OR_DEPLOYMENT
#error The content of this file is a template which provides empty stubs. The content of this file must be completed by the integrator accordingly to project specific requirements
#else
#warning The content of this file is a template which provides empty stubs. The content of this file must be completed by the integrator accordingly to project specific requirements
#endif */ /* NOT_READY_FOR_TESTING_OR_DEPLOYMENT */

#ifndef COMPILER_H
#define COMPILER_H

/* [COMPILER010] The compiler */
#define _MINGW_C_VRTA_WIN_
/* [COMPILER043] Published information : sample */
#define COMPILER_VENDOR_ID (11U)
#define COMPILER_AR_MAJOR_VERSION (4U)
#define COMPILER_AR_MINOR_VERSION (0U)
#define COMPILER_AR_PATCH_VERSION (3U)
#define COMPILER_SW_MAJOR_VERSION (0U)
#define COMPILER_SW_MINOR_VERSION (0U)
#define COMPILER_SW_PATCH_VERSION (0U)

#include <Compiler_Cfg.h>

#define AUTOMATIC  /* [COMPILER046] [COMPILER036] Used for local non static variables */
#define TYPEDEF  /* [COMPILER059] Type definitions where no memory qualifier can be specified. */
#define STATIC static /* COMPILER049 */
#define NULL_PTR ((void *)0) /* [COMPILER051] */
#define INLINE  /* [COMPILER057] */
#define LOCAL_INLINE __attribute__((always_inline)) static inline /* [COMPILER060] */

#define FUNC(rettype, memclass) rettype /* [COMPILER001] */
#define P2VAR(ptrtype, memclass, ptrclass) ptrclass ptrtype * /* [COMPILER006] */
#define P2CONST(ptrtype, memclass, ptrclass) const ptrclass ptrtype * /* [COMPILER013] */
#define CONSTP2VAR(ptrtype, memclass, ptrclass) ptrclass ptrtype * const /* [COMPILER031] */
#define CONSTP2CONST(ptrtype, memclass, ptrclass) const ptrtype * const ptrclass /* [COMPILER032] */
#define P2FUNC(rettype, ptrclass, fctname) ptrclass rettype (*fctname) /* [COMPILER039] */
#define CONSTP2FUNC(rettype, ptrclass, fctname) rettype (* const ptrclass fctname) /* [COMPILER065] */
#define CONST(ctype, memclass)  const ctype /* [COMPILER023] */
#define VAR(vtype, memclass)  vtype /* [COMPILER026] */
#define FUNC_P2CONST(rettype, ptrclass, memclass) const ptrclass rettype * /* [COMPILER061] [$UKS 1769] */
#define FUNC_P2VAR(rettype, ptrclass, memclass) ptrclass rettype * /* [COMPILER063] [$UKS 1770] */

#endif /* COMPILER_H */
