]> rtime.felk.cvut.cz Git - arc.git/blob - include/MemIf.h
Merge branch 'mikulka' of git@rtime.felk.cvut.cz:arc into mikulka
[arc.git] / include / MemIf.h
1 /* -------------------------------- Arctic Core ------------------------------\r
2  * Arctic Core - the open source AUTOSAR platform http://arccore.com\r
3  *\r
4  * Copyright (C) 2009  ArcCore AB <contact@arccore.com>\r
5  *\r
6  * This source code is free software; you can redistribute it and/or modify it\r
7  * under the terms of the GNU General Public License version 2 as published by the\r
8  * Free Software Foundation; See <http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt>.\r
9  *\r
10  * This program is distributed in the hope that it will be useful, but\r
11  * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY\r
12  * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License\r
13  * for more details.\r
14  * -------------------------------- Arctic Core ------------------------------*/\r
15 \r
16 \r
17 \r
18 \r
19 \r
20 \r
21 \r
22 \r
23 #ifndef MEMIF_H_\r
24 #define MEMIF_H_\r
25 #define MEMIF_MODULE_ID                 MODULE_ID_MEMIF\r
26 #define MEMIF_VENDOR_ID                 1\r
27 \r
28 #define MEMIF_SW_MAJOR_VERSION  1\r
29 #define MEMIF_SW_MINOR_VERSION  0\r
30 #define MEMIF_SW_PATCH_VERSION  0\r
31 #define MEMIF_AR_MAJOR_VERSION  3\r
32 #define MEMIF_AR_MINOR_VERSION  0\r
33 #define MEMIF_AR_PATCH_VERSION  1\r
34 \r
35 #include "Std_Types.h"\r
36 #include "MemIf_Cfg.h"\r
37 \r
38 #if defined(USE_FEE)\r
39 #include "Fee.h"\r
40 #endif\r
41 \r
42 #if defined(USE_EA)\r
43 #include "Ea.h"\r
44 #endif\r
45 \r
46 #if (MEMIF_VERSION_INFO_API == STD_ON)\r
47 #define _MemIf_GetVersionInfo(_vi) STD_GET_VERSION_INFO(_vi, MEMIF)\r
48 #endif /* MEMIF_VERSION_INFO_API */\r
49 \r
50 #if (MEMIF_NUMBER_OF_DEVICES == 0)\r
51 #define _MemIf_SetMode(_mode)\r
52 #define _MemIf_Read(_deviceIndex,_blockNumber,_blockOffset,_dataBufferPtr,_length)\r
53 #define _MemIf_Write(_deviceIndex,_blockNumber,_dataBufferPtr)\r
54 #define _MemIf_Cancel(_deviceIndex)\r
55 #define _MemIf_GetStatus(_deviceIndex)\r
56 #define _MemIf_GetJobResult(_deviceIndex)\r
57 #define _MemIf_InvalidateBlock(_deviceIndex,_blockNumber)\r
58 #define _MemIf_EraseImmediateBlock(_deviceIndex,_blockNumber)\r
59 #endif\r
60 \r
61 #if (MEMIF_NUMBER_OF_DEVICES == 1)\r
62 #if (MEMIF_DEVICE_TO_USE == FLS_DRIVER_INDEX)\r
63 #define _MemIf_SetMode(_mode)   Fee_SetMode(_mode)\r
64 #define _MemIf_Read(_deviceIndex,_blockNumber,_blockOffset,_dataBufferPtr,_length)      Fee_Read(_blockNumber,_blockOffset,_dataBufferPtr,_length)\r
65 #define _MemIf_Write(_deviceIndex,_blockNumber,_dataBufferPtr)  Fee_Write(_blockNumber,_dataBufferPtr)\r
66 #define _MemIf_Cancel(_deviceIndex)     Fee_Cancel()\r
67 #define _MemIf_GetStatus(_deviceIndex)  Fee_GetStatus()\r
68 #define _MemIf_GetJobResult(_deviceIndex)       Fee_GetJobResult()\r
69 #define _MemIf_InvalidateBlock(_deviceIndex,_blockNumber)       Fee_InvalidateBlock(blockNumber)\r
70 #define _MemIf_EraseImmediateBlock(_deviceIndex,_blockNumber)   Fee_EraseImmediateBlock(_blockNumber)\r
71 \r
72 #elif (MEMIF_DEVICE_TO_USE == EEP_DRIVER_INDEX)\r
73 #define _MemIf_SetMode(_mode)   Ea_SetMode(_mode)\r
74 #define _MemIf_Read(_deviceIndex,_blockNumber,_blockOffset,_dataBufferPtr,_length)      Ea_Read(_blockNumber,_blockOffset,_dataBufferPtr,_length)\r
75 #define _MemIf_Write(_deviceIndex,_blockNumber,_dataBufferPtr)  Ea_Write(_blockNumber,_dataBufferPtr)\r
76 #define _MemIf_Cancel(_deviceIndex)     Ea_Cancel()\r
77 #define _MemIf_GetStatus(_deviceIndex)  Ea_GetStatus()\r
78 #define _MemIf_GetJobResult(_deviceIndex)       Ea_GetJobResult()\r
79 #define _MemIf_InvalidateBlock(_deviceIndex,_blockNumber)       Ea_InvalidateBlock(_blockNumber)\r
80 #define _MemIf_EraseImmediateBlock(_deviceIndex,_blockNumber)   Ea_EraseImmediateBlock(_blockNumber)\r
81 #else\r
82 #error "Memory device unknown (MEMIF_DEVICE_TO_USE)"\r
83 #endif\r
84 \r
85 #endif\r
86 \r
87 #if (MEMIF_NUMBER_OF_DEVICES > 1) || defined(CFG_MEMIF_NO_MACRO)\r
88 #if (MEMIF_NUMBER_OF_DEVICES > 1)\r
89 #error "Support for more than one device is not implemented yet!"\r
90 #endif\r
91 void MemIf_SetMode(MemIf_ModeType Mode);\r
92 Std_ReturnType MemIf_Read(uint8 DeviceIndex, uint16 BlockNumber, uint16 BlockOffset, uint8 *DataBufferPtr, uint16 Length);\r
93 Std_ReturnType MemIf_Write(uint8 DeviceIndex, uint16 BlockNumber, uint8 *DataBufferPtr);\r
94 void MemIf_Cancel(uint8 DeviceIndex);\r
95 MemIf_StatusType MemIf_GetStatus(uint8 DeviceIndex);\r
96 MemIf_JobResultType MemIf_GetJobResult(uint8 DeviceIndex);\r
97 Std_ReturnType MemIf_InvalidateBlock(uint8 DeviceIndex, uint16 BlockNumber);\r
98 Std_ReturnType MemIf_EraseImmediateBlock(uint8 DeviceIndex, uint16 BlockNumber);\r
99 #else\r
100 #define MemIf_SetMode(_mode)                                            _MemIf_SetMode(_mode)\r
101 #define MemIf_Read(_deviceIndex,_blockNumber,_blockOffset,_dataBufferPtr,_length)       _MemIf_Read(_deviceIndex, _blockNumber,_blockOffset,_dataBufferPtr,_length)\r
102 #define MemIf_Write(_deviceIndex,_blockNumber,_dataBufferPtr)   _MemIf_Write(_deviceIndex,_blockNumber,_dataBufferPtr)\r
103 #define MemIf_Cancel(_deviceIndex)      _MemIf_Cancel(_deviceIndex)\r
104 #define MemIf_GetStatus(_deviceIndex)   _MemIf_GetStatus(_deviceIndex)\r
105 #define MemIf_GetJobResult(_deviceIndex)        _MemIf_GetJobResult(_deviceIndex)\r
106 #define MemIf_InvalidateBlock(_deviceIndex,_blockNumber)        _MemIf_InvalidateBlock(_deviceIndex,_blockNumber)\r
107 #define MemIf_EraseImmediateBlock(_deviceIndex,_blockNumber)    _MemIf_EraseImmediateBlock(_deviceIndex,_blockNumber)\r
108 #endif\r
109 \r
110 #endif /*MEMIF_H_*/\r