f5ac268b4b023758614afda99f2f17545244c891
[SCSI2SD-V6.git] / software / SCSI2SD / v3 / SCSI2SD.cydsn / Generated_Source / PSoC5 / SCSI_RST_ISR.c
1 /*******************************************************************************\r
2 * File Name: SCSI_RST_ISR.c  \r
3 * Version 1.70\r
4 *\r
5 *  Description:\r
6 *   API for controlling the state of an interrupt.\r
7 *\r
8 *\r
9 *  Note:\r
10 *\r
11 ********************************************************************************\r
12 * Copyright 2008-2012, Cypress Semiconductor Corporation.  All rights reserved.\r
13 * You may use this file only in accordance with the license, terms, conditions, \r
14 * disclaimers, and limitations in the end user license agreement accompanying \r
15 * the software package with which this file was provided.\r
16 *******************************************************************************/\r
17 \r
18 \r
19 #include <cydevice_trm.h>\r
20 #include <CyLib.h>\r
21 #include <SCSI_RST_ISR.h>\r
22 \r
23 #if !defined(SCSI_RST_ISR__REMOVED) /* Check for removal by optimization */\r
24 \r
25 /*******************************************************************************\r
26 *  Place your includes, defines and code here \r
27 ********************************************************************************/\r
28 /* `#START SCSI_RST_ISR_intc` */\r
29 \r
30 /* `#END` */\r
31 \r
32 #ifndef CYINT_IRQ_BASE\r
33 #define CYINT_IRQ_BASE      16\r
34 #endif /* CYINT_IRQ_BASE */\r
35 #ifndef CYINT_VECT_TABLE\r
36 #define CYINT_VECT_TABLE    ((cyisraddress **) CYREG_NVIC_VECT_OFFSET)\r
37 #endif /* CYINT_VECT_TABLE */\r
38 \r
39 /* Declared in startup, used to set unused interrupts to. */\r
40 CY_ISR_PROTO(IntDefaultHandler);\r
41 \r
42 \r
43 /*******************************************************************************\r
44 * Function Name: SCSI_RST_ISR_Start\r
45 ********************************************************************************\r
46 *\r
47 * Summary:\r
48 *  Set up the interrupt and enable it.\r
49 *\r
50 * Parameters:  \r
51 *   None\r
52 *\r
53 * Return:\r
54 *   None\r
55 *\r
56 *******************************************************************************/\r
57 void SCSI_RST_ISR_Start(void)\r
58 {\r
59     /* For all we know the interrupt is active. */\r
60     SCSI_RST_ISR_Disable();\r
61 \r
62     /* Set the ISR to point to the SCSI_RST_ISR Interrupt. */\r
63     SCSI_RST_ISR_SetVector(&SCSI_RST_ISR_Interrupt);\r
64 \r
65     /* Set the priority. */\r
66     SCSI_RST_ISR_SetPriority((uint8)SCSI_RST_ISR_INTC_PRIOR_NUMBER);\r
67 \r
68     /* Enable it. */\r
69     SCSI_RST_ISR_Enable();\r
70 }\r
71 \r
72 \r
73 /*******************************************************************************\r
74 * Function Name: SCSI_RST_ISR_StartEx\r
75 ********************************************************************************\r
76 *\r
77 * Summary:\r
78 *  Set up the interrupt and enable it.\r
79 *\r
80 * Parameters:  \r
81 *   address: Address of the ISR to set in the interrupt vector table.\r
82 *\r
83 * Return:\r
84 *   None\r
85 *\r
86 *******************************************************************************/\r
87 void SCSI_RST_ISR_StartEx(cyisraddress address)\r
88 {\r
89     /* For all we know the interrupt is active. */\r
90     SCSI_RST_ISR_Disable();\r
91 \r
92     /* Set the ISR to point to the SCSI_RST_ISR Interrupt. */\r
93     SCSI_RST_ISR_SetVector(address);\r
94 \r
95     /* Set the priority. */\r
96     SCSI_RST_ISR_SetPriority((uint8)SCSI_RST_ISR_INTC_PRIOR_NUMBER);\r
97 \r
98     /* Enable it. */\r
99     SCSI_RST_ISR_Enable();\r
100 }\r
101 \r
102 \r
103 /*******************************************************************************\r
104 * Function Name: SCSI_RST_ISR_Stop\r
105 ********************************************************************************\r
106 *\r
107 * Summary:\r
108 *   Disables and removes the interrupt.\r
109 *\r
110 * Parameters:  \r
111 *\r
112 * Return:\r
113 *   None\r
114 *\r
115 *******************************************************************************/\r
116 void SCSI_RST_ISR_Stop(void)\r
117 {\r
118     /* Disable this interrupt. */\r
119     SCSI_RST_ISR_Disable();\r
120 \r
121     /* Set the ISR to point to the passive one. */\r
122     SCSI_RST_ISR_SetVector(&IntDefaultHandler);\r
123 }\r
124 \r
125 \r
126 /*******************************************************************************\r
127 * Function Name: SCSI_RST_ISR_Interrupt\r
128 ********************************************************************************\r
129 *\r
130 * Summary:\r
131 *   The default Interrupt Service Routine for SCSI_RST_ISR.\r
132 *\r
133 *   Add custom code between the coments to keep the next version of this file\r
134 *   from over writting your code.\r
135 *\r
136 * Parameters:  \r
137 *\r
138 * Return:\r
139 *   None\r
140 *\r
141 *******************************************************************************/\r
142 CY_ISR(SCSI_RST_ISR_Interrupt)\r
143 {\r
144     /*  Place your Interrupt code here. */\r
145     /* `#START SCSI_RST_ISR_Interrupt` */\r
146 \r
147     /* `#END` */\r
148 }\r
149 \r
150 \r
151 /*******************************************************************************\r
152 * Function Name: SCSI_RST_ISR_SetVector\r
153 ********************************************************************************\r
154 *\r
155 * Summary:\r
156 *   Change the ISR vector for the Interrupt. Note calling SCSI_RST_ISR_Start\r
157 *   will override any effect this method would have had. To set the vector \r
158 *   before the component has been started use SCSI_RST_ISR_StartEx instead.\r
159 *\r
160 * Parameters:\r
161 *   address: Address of the ISR to set in the interrupt vector table.\r
162 *\r
163 * Return:\r
164 *   None\r
165 *\r
166 *******************************************************************************/\r
167 void SCSI_RST_ISR_SetVector(cyisraddress address)\r
168 {\r
169     cyisraddress * ramVectorTable;\r
170 \r
171     ramVectorTable = (cyisraddress *) *CYINT_VECT_TABLE;\r
172 \r
173     ramVectorTable[CYINT_IRQ_BASE + (uint32)SCSI_RST_ISR__INTC_NUMBER] = address;\r
174 }\r
175 \r
176 \r
177 /*******************************************************************************\r
178 * Function Name: SCSI_RST_ISR_GetVector\r
179 ********************************************************************************\r
180 *\r
181 * Summary:\r
182 *   Gets the "address" of the current ISR vector for the Interrupt.\r
183 *\r
184 * Parameters:\r
185 *   None\r
186 *\r
187 * Return:\r
188 *   Address of the ISR in the interrupt vector table.\r
189 *\r
190 *******************************************************************************/\r
191 cyisraddress SCSI_RST_ISR_GetVector(void)\r
192 {\r
193     cyisraddress * ramVectorTable;\r
194 \r
195     ramVectorTable = (cyisraddress *) *CYINT_VECT_TABLE;\r
196 \r
197     return ramVectorTable[CYINT_IRQ_BASE + (uint32)SCSI_RST_ISR__INTC_NUMBER];\r
198 }\r
199 \r
200 \r
201 /*******************************************************************************\r
202 * Function Name: SCSI_RST_ISR_SetPriority\r
203 ********************************************************************************\r
204 *\r
205 * Summary:\r
206 *   Sets the Priority of the Interrupt. Note calling SCSI_RST_ISR_Start\r
207 *   or SCSI_RST_ISR_StartEx will override any effect this method \r
208 *   would have had. This method should only be called after \r
209 *   SCSI_RST_ISR_Start or SCSI_RST_ISR_StartEx has been called. To set \r
210 *   the initial priority for the component use the cydwr file in the tool.\r
211 *\r
212 * Parameters:\r
213 *   priority: Priority of the interrupt. 0 - 7, 0 being the highest.\r
214 *\r
215 * Return:\r
216 *   None\r
217 *\r
218 *******************************************************************************/\r
219 void SCSI_RST_ISR_SetPriority(uint8 priority)\r
220 {\r
221     *SCSI_RST_ISR_INTC_PRIOR = priority << 5;\r
222 }\r
223 \r
224 \r
225 /*******************************************************************************\r
226 * Function Name: SCSI_RST_ISR_GetPriority\r
227 ********************************************************************************\r
228 *\r
229 * Summary:\r
230 *   Gets the Priority of the Interrupt.\r
231 *\r
232 * Parameters:\r
233 *   None\r
234 *\r
235 * Return:\r
236 *   Priority of the interrupt. 0 - 7, 0 being the highest.\r
237 *\r
238 *******************************************************************************/\r
239 uint8 SCSI_RST_ISR_GetPriority(void)\r
240 {\r
241     uint8 priority;\r
242 \r
243 \r
244     priority = *SCSI_RST_ISR_INTC_PRIOR >> 5;\r
245 \r
246     return priority;\r
247 }\r
248 \r
249 \r
250 /*******************************************************************************\r
251 * Function Name: SCSI_RST_ISR_Enable\r
252 ********************************************************************************\r
253 *\r
254 * Summary:\r
255 *   Enables the interrupt.\r
256 *\r
257 * Parameters:\r
258 *   None\r
259 *\r
260 * Return:\r
261 *   None\r
262 *\r
263 *******************************************************************************/\r
264 void SCSI_RST_ISR_Enable(void)\r
265 {\r
266     /* Enable the general interrupt. */\r
267     *SCSI_RST_ISR_INTC_SET_EN = SCSI_RST_ISR__INTC_MASK;\r
268 }\r
269 \r
270 \r
271 /*******************************************************************************\r
272 * Function Name: SCSI_RST_ISR_GetState\r
273 ********************************************************************************\r
274 *\r
275 * Summary:\r
276 *   Gets the state (enabled, disabled) of the Interrupt.\r
277 *\r
278 * Parameters:\r
279 *   None\r
280 *\r
281 * Return:\r
282 *   1 if enabled, 0 if disabled.\r
283 *\r
284 *******************************************************************************/\r
285 uint8 SCSI_RST_ISR_GetState(void)\r
286 {\r
287     /* Get the state of the general interrupt. */\r
288     return ((*SCSI_RST_ISR_INTC_SET_EN & (uint32)SCSI_RST_ISR__INTC_MASK) != 0u) ? 1u:0u;\r
289 }\r
290 \r
291 \r
292 /*******************************************************************************\r
293 * Function Name: SCSI_RST_ISR_Disable\r
294 ********************************************************************************\r
295 *\r
296 * Summary:\r
297 *   Disables the Interrupt.\r
298 *\r
299 * Parameters:\r
300 *   None\r
301 *\r
302 * Return:\r
303 *   None\r
304 *\r
305 *******************************************************************************/\r
306 void SCSI_RST_ISR_Disable(void)\r
307 {\r
308     /* Disable the general interrupt. */\r
309     *SCSI_RST_ISR_INTC_CLR_EN = SCSI_RST_ISR__INTC_MASK;\r
310 }\r
311 \r
312 \r
313 /*******************************************************************************\r
314 * Function Name: SCSI_RST_ISR_SetPending\r
315 ********************************************************************************\r
316 *\r
317 * Summary:\r
318 *   Causes the Interrupt to enter the pending state, a software method of\r
319 *   generating the interrupt.\r
320 *\r
321 * Parameters:\r
322 *   None\r
323 *\r
324 * Return:\r
325 *   None\r
326 *\r
327 *******************************************************************************/\r
328 void SCSI_RST_ISR_SetPending(void)\r
329 {\r
330     *SCSI_RST_ISR_INTC_SET_PD = SCSI_RST_ISR__INTC_MASK;\r
331 }\r
332 \r
333 \r
334 /*******************************************************************************\r
335 * Function Name: SCSI_RST_ISR_ClearPending\r
336 ********************************************************************************\r
337 *\r
338 * Summary:\r
339 *   Clears a pending interrupt.\r
340 *\r
341 * Parameters:\r
342 *   None\r
343 *\r
344 * Return:\r
345 *   None\r
346 *\r
347 *******************************************************************************/\r
348 void SCSI_RST_ISR_ClearPending(void)\r
349 {\r
350     *SCSI_RST_ISR_INTC_CLR_PD = SCSI_RST_ISR__INTC_MASK;\r
351 }\r
352 \r
353 #endif /* End check for removal by optimization */\r
354 \r
355 \r
356 /* [] END OF FILE */\r