peripherals  1.4.2
RoadNarrows Robotics Hardware Peripherals Package
econ_error.h
1 /**********************************************************************************************************
2  * Copyright (C) 2007 by e-con Systems. *
3  * www.e-consystems.com *
4  * *
5  * This file is licensed under the terms of the GNU General Public License *
6  * version 2. This program is licensed "as is" without any warranty of any *
7  * kind, whether express or implied. *
8  * *
9  * *
10  * PROJECT : Error code management *
11  * MODULE NAME : *
12  * MODULE VERSION : *
13  * *
14  * *
15  * *
16  * Version No : 000-0001 CODE_REV : 0.0.0.0 *
17  **********************************************************************************************************/
18 
19 /*
20  *==========================================================================================================
21  * REVISION HISTORY
22  *----------------------------------------------------------------------------------------------------------
23  * CODE_REV REASON FOR MODIFICATION MODIFIED FUNCTION NAME AUTHOR
24  *----------------------------------------------------------------------------------------------------------
25  * 0.0.0.0 code development Ananthapadmanaban
26  *
27  *
28  *==========================================================================================================
29  */
30 
31 
32 /******************************************************************************
33  * GENDRAL ERROR TYPE DEFINITION
34  *
35  * Author : E-consystems
36  *
37  *
38  ******************************************************************************/
39 
40 #define TRACE_ERROR(ARG1) \
41 { \
42  trace_error(__FILE__,(PINT8)__FUNCTION__,__LINE__,ARG1); \
43 }
44 
45 #define TRACE_ERR_AND_RET(ARG1) \
46 { \
47  trace_error(__FILE__,(PINT8)__FUNCTION__,__LINE__,ARG1); \
48  return ARG1; \
49 }
50 
51 /******************************************************************************
52  * Device structure register
53  *
54  ******************************************************************************/
55 
56 #define REGISTER_DATA 0x00000001
57 #define UNREGISTER_CLEAR_ENTRY 0x00000002
58 #define GET_REGISTERED_DATA 0x00000003
59 
60 #define NO_DATA 0x00000000
61 #define RESET_TIME 0x00000001
62 
63 #define ERROR_BLOCK 0x00100000
64 
65 /******************************************************************************
66  * API RETURN TYPE Definition
67  *
68  * Author : E-consystems
69  *
70  * APPLICATION SPECIFIC SUCCESS RANGE - (0x0000_0000 - 0x3FFF_FFFF)
71  * =========================================================================
72  *
73  *
74  * DRIVER SPECIFIC SUCCESS BASES RANGE - (0x4000_0000 - 0x7FFF_FFFF)
75  * =========================================================================
76  * BASIC SUCCESS : 0x7EE0_0000 - 0x7EEF_FFFF
77  * I2C SUCCESS : 0x7ED0_0000 - 0x7EDF_FFFF
78  *
79  * ----------------------------------------------------------------------------
80  *
81  *
82  * DRIVER SPECIFIC ERRORS RANGE - (0x8000_0000 - 0xBFFF_FFFF)
83  * =========================================================================
84  * BASIC ERRORS : 0x8000_0000 - 0x800F_FFFF
85  * I2C ERROR : 0x8010_0000 - 0x801F_FFFF
86  * MEMORY ERROR : 0x8020_0000 - 0x802F_FFFF
87  *
88  * APPLICATION SPECIFIC ERRORS BASES:RANGE - (0xC000_0000 - 0xFF7F_FFFF)
89  * =========================================================================
90  * BASIC ERROR : 0xC000_0000 - 0xC00F_FFFF
91  * READ ERROR : 0xC010_0000 - 0xC01F_FFFF
92  * WRITE ERROR : 0xC020_0000 - 0xC02F_FFFF
93  * memory ERROR : 0xC030_0000 - 0xC03F_FFFF
94  * Ioctls ERROR : 0xC040_0000 - 0xC04F_FFFF
95  * =========================================================================
96  *
97  *
98  * SPECIAL ERROR : 0xFF80_0000 - 0xFFFF_FFFF
99  *
100  ******************************************************************************/
101 
102 
103 enum __error_base_macro
104 {
105  APP_BASE_SUC_START = 0x00000000,
106  APP_BASE_SUC_END = 0x3FFFFFFF,
107  DRI_BASE_SUC_START = 0x40000000,
108  DRI_BASE_SUC_END = 0x7FFFFFFF,
109 
110  DRI_BASE_ERR_START = 0x80000000,
111  DRI_BASIC_ERR = DRI_BASE_ERR_START,
112  DRI_I2C_ERROR = (DRI_BASIC_ERR + ERROR_BLOCK),
113  DRI_MEM_ERROR = (DRI_I2C_ERROR + ERROR_BLOCK),
114 
115  DRI_BASE_ERR_END = 0xBFFFFFFF,
116 
117  APP_BASE_ERR_START = 0xC0000000,
118  APP_BASIC_ERR = APP_BASE_ERR_START,
119  APP_READ_ERR = (APP_BASIC_ERR + ERROR_BLOCK),
120  APP_WRITE_ERR = (APP_READ_ERR + ERROR_BLOCK),
121  APP_MEMORY_ERR = (APP_WRITE_ERR + ERROR_BLOCK),
122  APP_IOCTL_ERR = (APP_MEMORY_ERR + ERROR_BLOCK),
123  APP_BASE_ERR_END = 0xFF7FFFFF,
124 
125  SPECIAL_ERROR_START = 0xFF800000,
126  SPECIAL_ERROR_END = 0xFFFFFFFF,
127 };
128 
129 #define CHECK_IN_SUCCESS_LIMIT(x) ((x >= (FNRESLT)APP_BASE_SUC_START) && (x <= (FNRESLT)DRI_BASE_SUC_END))
130 #define CHECK_IN_FAIL_LIMIT(x) ((x >= (FNRESLT)DRI_BASE_ERR_START ) && (x <= (FNRESLT)SPECIAL_ERROR_END))
131 
132 enum __error_base
133 {
134 /****************************************************************************
135  *
136  * Application Specific SUCCESS code definitions
137  *
138  ****************************************************************************/
139 
140  SUCCESS = APP_BASE_SUC_START,
141 
142 /****************************************************************************
143  *
144  * Driver Specific SUCCESS code definitions
145  *
146  ****************************************************************************/
147  I2C_INIT_SUCCESS = DRI_BASE_SUC_START,
148  I2C_TX_EMPTY_SEND_SUCCESS,
149  I2C_WRITE_SUCCESS,
150  I2C_RX_FULL_SUCCESS,
151  I2C_READ_SUCCESS,
152  I2C_CAM_READ_REGISTER_SUCCESS,
153  I2C_PROTO_READ_ID_SUCCESS,
154  PAGE_0_REG_ACCESS_SUCCESS,
155  PAGE_1_REG_ACCESS_SUCCESS,
156  PAGE_2_REG_ACCESS_SUCCESS,
157  MT9D111_DUMP_ALL_SUCCESS,
158  MT9D111_SOFT_RESET_SUCCESS,
159  I2C_BUS_AVAILABLE,
160 
161 /****************************************************************************
162  *
163  * Driver Specific Error code definitions
164  *
165  ****************************************************************************/
166 
167 /*
168  * BASIC ERROR definition
169  */
170  DRIVER_MEMORY_NOT_AVAILABLE = DRI_BASIC_ERR,
171 
172 /*
173  * I2C ERROR definition
174  */
175  I2C_INIT_FAIL = DRI_I2C_ERROR,
176  I2C_TX_EMPTY_SEND_FAIL,
177  I2C_WRITE_FAIL,
178  I2C_RX_FULL_FAIL,
179  I2C_READ_FAIL,
180  I2C_CAM_READ_REGISTER_FAIL,
181  I2C_PROTO_READ_ID_FAIL,
182  PAGE_0_REG_ACCESS_FAIL,
183  PAGE_1_REG_ACCESS_FAIL,
184  PAGE_2_REG_ACCESS_FAIL,
185  MT9D111_SOFT_RESET_FAIL,
186  CLK_BYPASS_PLL_FAIL,
187  MCU_RESET_VALUE_FAIL,
188  RESET_EN_REG_VALUE_FAIL,
189  RESET_DIS_REG_VALUE_FAIL,
190  I2C_BUS_BUSY,
191 
192 /*
193  * Memory Error definition
194  */
195  MEM_KERN_OVERLAP = DRI_MEM_ERROR,
196 
197 /****************************************************************************
198  *
199  * Application based error types
200  *
201  ****************************************************************************/
202 
203 /*
204  * BASIC ERROR definition
205  */
206 
207  PORT_OPEN_FAILURE = APP_BASIC_ERR,
208  FILE_OPEN_FAILURE,
209 
210 /*
211  * READ ERROR definition
212  */
213 
214  READ_ERROR = APP_READ_ERR,
215  LOOSING_BYTES_IN_READ,
216  LESS_NUM_BYTE_READ,
217  MORE_NUM_BYTE_READ,
218  LESS_NUMBER_BYTE_IN_PORT,
219  READ_FROM_DEVICE_FAIL,
220 
221 /*
222  * WRITE ERROR definition
223  */
224  WRITE_ERROR = APP_WRITE_ERR,
225  LESS_NUM_BYTE_WRITE,
226  MORE_NUM_BYTE_WRITE,
227  FAILED_TO_WRITE_TO_PORT,
228 
229 
230 /*
231  * MEMORY ERROR definition
232  */
233  MEMORY_ERROR = APP_MEMORY_ERR,
234  ALLOCATION_MEMORY_FAILED,
235  MEMORY_NOT_VALID,
236 
237 /*
238  * IOCTLS ERROR definition
239  */
240  IOCTLS_ERROR = APP_IOCTL_ERR,
241  DATA_FRM_PORT_NOT_VALID,
242  IOCTL_GET_DATA_FAILED,
243  IOCTL_LOGING_DATA_FAILED,
244 
245 /*
246  * Special type of Errors
247  */
248  CAPTURE_FORMAT_NOT_AVAILABLE = SPECIAL_ERROR_START,
249  MAPPING_FAILED,
250  POINTER_NOT_REGISTERED,
251  ALLOCATION_MEMORY_FAILED_BASED_POINTER,
252 
253 
254  PORT_OPEN_ERROR = -1,
255  FAIL = -1,
256 
257 };
258 
259