1 //*****************************************************************************
2 //
3 //  rom.h
4 //
5 //  Macros to facilitate calling functions in the ROM.
6 //
7 //  Copyright (C) 2014 Texas Instruments Incorporated - http://www.ti.com/
8 //
9 //
10 //  Redistribution and use in source and binary forms, with or without
11 //  modification, are permitted provided that the following conditions
12 //  are met:
13 //
14 //    Redistributions of source code must retain the above copyright
15 //    notice, this list of conditions and the following disclaimer.
16 //
17 //    Redistributions in binary form must reproduce the above copyright
18 //    notice, this list of conditions and the following disclaimer in the
19 //    documentation and/or other materials provided with the
20 //    distribution.
21 //
22 //    Neither the name of Texas Instruments Incorporated nor the names of
23 //    its contributors may be used to endorse or promote products derived
24 //    from this software without specific prior written permission.
25 //
26 //  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
27 //  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
28 //  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
29 //  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
30 //  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
31 //  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
32 //  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
33 //  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
34 //  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
35 //  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
36 //  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
37 //
38 //*****************************************************************************
39 
40 //*****************************************************************************
41 //
42 // THIS IS AN AUTO-GENERATED FILE.  DO NOT EDIT BY HAND.
43 //
44 //*****************************************************************************
45 
46 #ifndef __ROM_H__
47 #define __ROM_H__
48 
49 //*****************************************************************************
50 //
51 // Pointers to the main API tables.
52 //
53 //*****************************************************************************
54 #define ROM_APITABLE            ((unsigned long *)0x0000040C)
55 #define ROM_VERSION             (ROM_APITABLE[0])
56 #define ROM_UARTTABLE           ((unsigned long *)(ROM_APITABLE[1]))
57 #define ROM_TIMERTABLE          ((unsigned long *)(ROM_APITABLE[2]))
58 #define ROM_WATCHDOGTABLE       ((unsigned long *)(ROM_APITABLE[3]))
59 #define ROM_INTERRUPTTABLE      ((unsigned long *)(ROM_APITABLE[4]))
60 #define ROM_UDMATABLE           ((unsigned long *)(ROM_APITABLE[5]))
61 #define ROM_PRCMTABLE           ((unsigned long *)(ROM_APITABLE[6]))
62 #define ROM_I2CTABLE            ((unsigned long *)(ROM_APITABLE[7]))
63 #define ROM_SPITABLE            ((unsigned long *)(ROM_APITABLE[8]))
64 #define ROM_CAMERATABLE         ((unsigned long *)(ROM_APITABLE[9]))
65 #define ROM_FLASHTABLE          ((unsigned long *)(ROM_APITABLE[10]))
66 #define ROM_PINTABLE            ((unsigned long *)(ROM_APITABLE[11]))
67 #define ROM_SYSTICKTABLE        ((unsigned long *)(ROM_APITABLE[12]))
68 #define ROM_UTILSTABLE          ((unsigned long *)(ROM_APITABLE[13]))
69 #define ROM_I2STABLE            ((unsigned long *)(ROM_APITABLE[14]))
70 #define ROM_HWSPINLOCKTABLE     ((unsigned long *)(ROM_APITABLE[15]))
71 #define ROM_GPIOTABLE           ((unsigned long *)(ROM_APITABLE[16]))
72 #define ROM_AESTABLE            ((unsigned long *)(ROM_APITABLE[17]))
73 #define ROM_DESTABLE            ((unsigned long *)(ROM_APITABLE[18]))
74 #define ROM_SHAMD5TABLE         ((unsigned long *)(ROM_APITABLE[19]))
75 #define ROM_CRCTABLE            ((unsigned long *)(ROM_APITABLE[20]))
76 #define ROM_SDHOSTTABLE         ((unsigned long *)(ROM_APITABLE[21]))
77 #define ROM_ADCTABLE            ((unsigned long *)(ROM_APITABLE[22]))
78 
79 //*****************************************************************************
80 //
81 // Macros for calling ROM functions in the Interrupt API.
82 //
83 //*****************************************************************************
84 #if defined(TARGET_IS_CC3200)
85 #define ROM_IntEnable                                                         \
86         ((void (*)(unsigned long ulInterrupt))ROM_INTERRUPTTABLE[0])
87 #endif
88 #if defined(TARGET_IS_CC3200)
89 #define ROM_IntMasterEnable                                                   \
90         ((tBoolean (*)(void))ROM_INTERRUPTTABLE[1])
91 #endif
92 #if defined(TARGET_IS_CC3200)
93 #define ROM_IntMasterDisable                                                  \
94         ((tBoolean (*)(void))ROM_INTERRUPTTABLE[2])
95 #endif
96 #if defined(TARGET_IS_CC3200)
97 #define ROM_IntDisable                                                        \
98         ((void (*)(unsigned long ulInterrupt))ROM_INTERRUPTTABLE[3])
99 #endif
100 #if defined(TARGET_IS_CC3200)
101 #define ROM_IntPriorityGroupingSet                                            \
102         ((void (*)(unsigned long ulBits))ROM_INTERRUPTTABLE[4])
103 #endif
104 #if defined(TARGET_IS_CC3200)
105 #define ROM_IntPriorityGroupingGet                                            \
106         ((unsigned long (*)(void))ROM_INTERRUPTTABLE[5])
107 #endif
108 #if defined(TARGET_IS_CC3200)
109 #define ROM_IntPrioritySet                                                    \
110         ((void (*)(unsigned long ulInterrupt,                                 \
111                    unsigned char ucPriority))ROM_INTERRUPTTABLE[6])
112 #endif
113 #if defined(TARGET_IS_CC3200)
114 #define ROM_IntPriorityGet                                                    \
115         ((long (*)(unsigned long ulInterrupt))ROM_INTERRUPTTABLE[7])
116 #endif
117 #if defined(TARGET_IS_CC3200)
118 #define ROM_IntPendSet                                                        \
119         ((void (*)(unsigned long ulInterrupt))ROM_INTERRUPTTABLE[8])
120 #endif
121 #if defined(TARGET_IS_CC3200)
122 #define ROM_IntPendClear                                                      \
123         ((void (*)(unsigned long ulInterrupt))ROM_INTERRUPTTABLE[9])
124 #endif
125 #if defined(TARGET_IS_CC3200)
126 #define ROM_IntPriorityMaskSet                                                \
127         ((void (*)(unsigned long ulPriorityMask))ROM_INTERRUPTTABLE[10])
128 #endif
129 #if defined(TARGET_IS_CC3200)
130 #define ROM_IntPriorityMaskGet                                                \
131         ((unsigned long (*)(void))ROM_INTERRUPTTABLE[11])
132 #endif
133 #if defined(TARGET_IS_CC3200)
134 #define ROM_IntRegister                                                       \
135         ((void (*)(unsigned long ulInterrupt,                                 \
136                    void (*pfnHandler)(void)))ROM_INTERRUPTTABLE[12])
137 #endif
138 #if defined(TARGET_IS_CC3200)
139 #define ROM_IntUnregister                                                     \
140         ((void (*)(unsigned long ulInterrupt))ROM_INTERRUPTTABLE[13])
141 #endif
142 #if defined(TARGET_IS_CC3200)
143 #define ROM_IntVTableBaseSet                                                  \
144         ((void (*)(unsigned long ulVtableBase))ROM_INTERRUPTTABLE[14])
145 #endif
146 
147 //*****************************************************************************
148 //
149 // Macros for calling ROM functions in the Timer API.
150 //
151 //*****************************************************************************
152 #if defined(TARGET_IS_CC3200)
153 #define ROM_TimerEnable                                                       \
154         ((void (*)(unsigned long ulBase,                                      \
155                    unsigned long ulTimer))ROM_TIMERTABLE[0])
156 #endif
157 #if defined(TARGET_IS_CC3200)
158 #define ROM_TimerDisable                                                      \
159         ((void (*)(unsigned long ulBase,                                      \
160                    unsigned long ulTimer))ROM_TIMERTABLE[1])
161 #endif
162 #if defined(TARGET_IS_CC3200)
163 #define ROM_TimerConfigure                                                    \
164         ((void (*)(unsigned long ulBase,                                      \
165                    unsigned long ulConfig))ROM_TIMERTABLE[2])
166 #endif
167 #if defined(TARGET_IS_CC3200)
168 #define ROM_TimerControlLevel                                                 \
169         ((void (*)(unsigned long ulBase,                                      \
170                    unsigned long ulTimer,                                     \
171                    tBoolean bInvert))ROM_TIMERTABLE[3])
172 #endif
173 #if defined(TARGET_IS_CC3200)
174 #define ROM_TimerControlEvent                                                 \
175         ((void (*)(unsigned long ulBase,                                      \
176                    unsigned long ulTimer,                                     \
177                    unsigned long ulEvent))ROM_TIMERTABLE[4])
178 #endif
179 #if defined(TARGET_IS_CC3200)
180 #define ROM_TimerControlStall                                                 \
181         ((void (*)(unsigned long ulBase,                                      \
182                    unsigned long ulTimer,                                     \
183                    tBoolean bStall))ROM_TIMERTABLE[5])
184 #endif
185 #if defined(TARGET_IS_CC3200)
186 #define ROM_TimerPrescaleSet                                                  \
187         ((void (*)(unsigned long ulBase,                                      \
188                    unsigned long ulTimer,                                     \
189                    unsigned long ulValue))ROM_TIMERTABLE[6])
190 #endif
191 #if defined(TARGET_IS_CC3200)
192 #define ROM_TimerPrescaleGet                                                  \
193         ((unsigned long (*)(unsigned long ulBase,                             \
194                             unsigned long ulTimer))ROM_TIMERTABLE[7])
195 #endif
196 #if defined(TARGET_IS_CC3200)
197 #define ROM_TimerPrescaleMatchSet                                             \
198         ((void (*)(unsigned long ulBase,                                      \
199                    unsigned long ulTimer,                                     \
200                    unsigned long ulValue))ROM_TIMERTABLE[8])
201 #endif
202 #if defined(TARGET_IS_CC3200)
203 #define ROM_TimerPrescaleMatchGet                                             \
204         ((unsigned long (*)(unsigned long ulBase,                             \
205                             unsigned long ulTimer))ROM_TIMERTABLE[9])
206 #endif
207 #if defined(TARGET_IS_CC3200)
208 #define ROM_TimerLoadSet                                                      \
209         ((void (*)(unsigned long ulBase,                                      \
210                    unsigned long ulTimer,                                     \
211                    unsigned long ulValue))ROM_TIMERTABLE[10])
212 #endif
213 #if defined(TARGET_IS_CC3200)
214 #define ROM_TimerLoadGet                                                      \
215         ((unsigned long (*)(unsigned long ulBase,                             \
216                             unsigned long ulTimer))ROM_TIMERTABLE[11])
217 #endif
218 #if defined(TARGET_IS_CC3200)
219 #define ROM_TimerValueGet                                                     \
220         ((unsigned long (*)(unsigned long ulBase,                             \
221                             unsigned long ulTimer))ROM_TIMERTABLE[12])
222 #endif
223 #if defined(TARGET_IS_CC3200)
224 #define ROM_TimerMatchSet                                                     \
225         ((void (*)(unsigned long ulBase,                                      \
226                    unsigned long ulTimer,                                     \
227                    unsigned long ulValue))ROM_TIMERTABLE[13])
228 #endif
229 #if defined(TARGET_IS_CC3200)
230 #define ROM_TimerMatchGet                                                     \
231         ((unsigned long (*)(unsigned long ulBase,                             \
232                             unsigned long ulTimer))ROM_TIMERTABLE[14])
233 #endif
234 #if defined(TARGET_IS_CC3200)
235 #define ROM_TimerIntRegister                                                  \
236         ((void (*)(unsigned long ulBase,                                      \
237                    unsigned long ulTimer,                                     \
238                    void (*pfnHandler)(void)))ROM_TIMERTABLE[15])
239 #endif
240 #if defined(TARGET_IS_CC3200)
241 #define ROM_TimerIntUnregister                                                \
242         ((void (*)(unsigned long ulBase,                                      \
243                    unsigned long ulTimer))ROM_TIMERTABLE[16])
244 #endif
245 #if defined(TARGET_IS_CC3200)
246 #define ROM_TimerIntEnable                                                    \
247         ((void (*)(unsigned long ulBase,                                      \
248                    unsigned long ulIntFlags))ROM_TIMERTABLE[17])
249 #endif
250 #if defined(TARGET_IS_CC3200)
251 #define ROM_TimerIntDisable                                                   \
252         ((void (*)(unsigned long ulBase,                                      \
253                    unsigned long ulIntFlags))ROM_TIMERTABLE[18])
254 #endif
255 #if defined(TARGET_IS_CC3200)
256 #define ROM_TimerIntStatus                                                    \
257         ((unsigned long (*)(unsigned long ulBase,                             \
258                             tBoolean bMasked))ROM_TIMERTABLE[19])
259 #endif
260 #if defined(TARGET_IS_CC3200)
261 #define ROM_TimerIntClear                                                     \
262         ((void (*)(unsigned long ulBase,                                      \
263                    unsigned long ulIntFlags))ROM_TIMERTABLE[20])
264 #endif
265 
266 //*****************************************************************************
267 //
268 // Macros for calling ROM functions in the UART API.
269 //
270 //*****************************************************************************
271 #if defined(TARGET_IS_CC3200)
272 #define ROM_UARTParityModeSet                                                 \
273         ((void (*)(unsigned long ulBase,                                      \
274                    unsigned long ulParity))ROM_UARTTABLE[0])
275 #endif
276 #if defined(TARGET_IS_CC3200)
277 #define ROM_UARTParityModeGet                                                 \
278         ((unsigned long (*)(unsigned long ulBase))ROM_UARTTABLE[1])
279 #endif
280 #if defined(TARGET_IS_CC3200)
281 #define ROM_UARTFIFOLevelSet                                                  \
282         ((void (*)(unsigned long ulBase,                                      \
283                    unsigned long ulTxLevel,                                   \
284                    unsigned long ulRxLevel))ROM_UARTTABLE[2])
285 #endif
286 #if defined(TARGET_IS_CC3200)
287 #define ROM_UARTFIFOLevelGet                                                  \
288         ((void (*)(unsigned long ulBase,                                      \
289                    unsigned long *pulTxLevel,                                 \
290                    unsigned long *pulRxLevel))ROM_UARTTABLE[3])
291 #endif
292 #if defined(TARGET_IS_CC3200)
293 #define ROM_UARTConfigSetExpClk                                               \
294         ((void (*)(unsigned long ulBase,                                      \
295                    unsigned long ulUARTClk,                                   \
296                    unsigned long ulBaud,                                      \
297                    unsigned long ulConfig))ROM_UARTTABLE[4])
298 #endif
299 #if defined(TARGET_IS_CC3200)
300 #define ROM_UARTConfigGetExpClk                                               \
301         ((void (*)(unsigned long ulBase,                                      \
302                    unsigned long ulUARTClk,                                   \
303                    unsigned long *pulBaud,                                    \
304                    unsigned long *pulConfig))ROM_UARTTABLE[5])
305 #endif
306 #if defined(TARGET_IS_CC3200)
307 #define ROM_UARTEnable                                                        \
308         ((void (*)(unsigned long ulBase))ROM_UARTTABLE[6])
309 #endif
310 #if defined(TARGET_IS_CC3200)
311 #define ROM_UARTDisable                                                       \
312         ((void (*)(unsigned long ulBase))ROM_UARTTABLE[7])
313 #endif
314 #if defined(TARGET_IS_CC3200)
315 #define ROM_UARTFIFOEnable                                                    \
316         ((void (*)(unsigned long ulBase))ROM_UARTTABLE[8])
317 #endif
318 #if defined(TARGET_IS_CC3200)
319 #define ROM_UARTFIFODisable                                                   \
320         ((void (*)(unsigned long ulBase))ROM_UARTTABLE[9])
321 #endif
322 #if defined(TARGET_IS_CC3200)
323 #define ROM_UARTCharsAvail                                                    \
324         ((tBoolean (*)(unsigned long ulBase))ROM_UARTTABLE[10])
325 #endif
326 #if defined(TARGET_IS_CC3200)
327 #define ROM_UARTSpaceAvail                                                    \
328         ((tBoolean (*)(unsigned long ulBase))ROM_UARTTABLE[11])
329 #endif
330 #if defined(TARGET_IS_CC3200)
331 #define ROM_UARTCharGetNonBlocking                                            \
332         ((long (*)(unsigned long ulBase))ROM_UARTTABLE[12])
333 #endif
334 #if defined(TARGET_IS_CC3200)
335 #define ROM_UARTCharGet                                                       \
336         ((long (*)(unsigned long ulBase))ROM_UARTTABLE[13])
337 #endif
338 #if defined(TARGET_IS_CC3200)
339 #define ROM_UARTCharPutNonBlocking                                            \
340         ((tBoolean (*)(unsigned long ulBase,                                  \
341                        unsigned char ucData))ROM_UARTTABLE[14])
342 #endif
343 #if defined(TARGET_IS_CC3200)
344 #define ROM_UARTCharPut                                                       \
345         ((void (*)(unsigned long ulBase,                                      \
346                    unsigned char ucData))ROM_UARTTABLE[15])
347 #endif
348 #if defined(TARGET_IS_CC3200)
349 #define ROM_UARTBreakCtl                                                      \
350         ((void (*)(unsigned long ulBase,                                      \
351                    tBoolean bBreakState))ROM_UARTTABLE[16])
352 #endif
353 #if defined(TARGET_IS_CC3200)
354 #define ROM_UARTBusy                                                          \
355         ((tBoolean (*)(unsigned long ulBase))ROM_UARTTABLE[17])
356 #endif
357 #if defined(TARGET_IS_CC3200)
358 #define ROM_UARTIntRegister                                                   \
359         ((void (*)(unsigned long ulBase,                                      \
360                    void(*pfnHandler)(void)))ROM_UARTTABLE[18])
361 #endif
362 #if defined(TARGET_IS_CC3200)
363 #define ROM_UARTIntUnregister                                                 \
364         ((void (*)(unsigned long ulBase))ROM_UARTTABLE[19])
365 #endif
366 #if defined(TARGET_IS_CC3200)
367 #define ROM_UARTIntEnable                                                     \
368         ((void (*)(unsigned long ulBase,                                      \
369                    unsigned long ulIntFlags))ROM_UARTTABLE[20])
370 #endif
371 #if defined(TARGET_IS_CC3200)
372 #define ROM_UARTIntDisable                                                    \
373         ((void (*)(unsigned long ulBase,                                      \
374                    unsigned long ulIntFlags))ROM_UARTTABLE[21])
375 #endif
376 #if defined(TARGET_IS_CC3200)
377 #define ROM_UARTIntStatus                                                     \
378         ((unsigned long (*)(unsigned long ulBase,                             \
379                             tBoolean bMasked))ROM_UARTTABLE[22])
380 #endif
381 #if defined(TARGET_IS_CC3200)
382 #define ROM_UARTIntClear                                                      \
383         ((void (*)(unsigned long ulBase,                                      \
384                    unsigned long ulIntFlags))ROM_UARTTABLE[23])
385 #endif
386 #if defined(TARGET_IS_CC3200)
387 #define ROM_UARTDMAEnable                                                     \
388         ((void (*)(unsigned long ulBase,                                      \
389                    unsigned long ulDMAFlags))ROM_UARTTABLE[24])
390 #endif
391 #if defined(TARGET_IS_CC3200)
392 #define ROM_UARTDMADisable                                                    \
393         ((void (*)(unsigned long ulBase,                                      \
394                    unsigned long ulDMAFlags))ROM_UARTTABLE[25])
395 #endif
396 #if defined(TARGET_IS_CC3200)
397 #define ROM_UARTRxErrorGet                                                    \
398         ((unsigned long (*)(unsigned long ulBase))ROM_UARTTABLE[26])
399 #endif
400 #if defined(TARGET_IS_CC3200)
401 #define ROM_UARTRxErrorClear                                                  \
402         ((void (*)(unsigned long ulBase))ROM_UARTTABLE[27])
403 #endif
404 #if defined(TARGET_IS_CC3200)
405 #define ROM_UARTModemControlSet                                               \
406         ((void (*)(unsigned long ulBase,                                      \
407                    unsigned long ulControl))ROM_UARTTABLE[28])
408 #endif
409 #if defined(TARGET_IS_CC3200)
410 #define ROM_UARTModemControlClear                                             \
411         ((void (*)(unsigned long ulBase,                                      \
412                    unsigned long ulControl))ROM_UARTTABLE[29])
413 #endif
414 #if defined(TARGET_IS_CC3200)
415 #define ROM_UARTModemControlGet                                               \
416         ((unsigned long (*)(unsigned long ulBase))ROM_UARTTABLE[30])
417 #endif
418 #if defined(TARGET_IS_CC3200)
419 #define ROM_UARTModemStatusGet                                                \
420         ((unsigned long (*)(unsigned long ulBase))ROM_UARTTABLE[31])
421 #endif
422 #if defined(TARGET_IS_CC3200)
423 #define ROM_UARTFlowControlSet                                                \
424         ((void (*)(unsigned long ulBase,                                      \
425                    unsigned long ulMode))ROM_UARTTABLE[32])
426 #endif
427 #if defined(TARGET_IS_CC3200)
428 #define ROM_UARTFlowControlGet                                                \
429         ((unsigned long (*)(unsigned long ulBase))ROM_UARTTABLE[33])
430 #endif
431 #if defined(TARGET_IS_CC3200)
432 #define ROM_UARTTxIntModeSet                                                  \
433         ((void (*)(unsigned long ulBase,                                      \
434                    unsigned long ulMode))ROM_UARTTABLE[34])
435 #endif
436 #if defined(TARGET_IS_CC3200)
437 #define ROM_UARTTxIntModeGet                                                  \
438         ((unsigned long (*)(unsigned long ulBase))ROM_UARTTABLE[35])
439 #endif
440 
441 //*****************************************************************************
442 //
443 // Macros for calling ROM functions in the uDMA API.
444 //
445 //*****************************************************************************
446 #if defined(TARGET_IS_CC3200)
447 #define ROM_uDMAChannelTransferSet                                            \
448         ((void (*)(unsigned long ulChannelStructIndex,                        \
449                    unsigned long ulMode,                                      \
450                    void *pvSrcAddr,                                           \
451                    void *pvDstAddr,                                           \
452                    unsigned long ulTransferSize))ROM_UDMATABLE[0])
453 #endif
454 #if defined(TARGET_IS_CC3200)
455 #define ROM_uDMAEnable                                                        \
456         ((void (*)(void))ROM_UDMATABLE[1])
457 #endif
458 #if defined(TARGET_IS_CC3200)
459 #define ROM_uDMADisable                                                       \
460         ((void (*)(void))ROM_UDMATABLE[2])
461 #endif
462 #if defined(TARGET_IS_CC3200)
463 #define ROM_uDMAErrorStatusGet                                                \
464         ((unsigned long (*)(void))ROM_UDMATABLE[3])
465 #endif
466 #if defined(TARGET_IS_CC3200)
467 #define ROM_uDMAErrorStatusClear                                              \
468         ((void (*)(void))ROM_UDMATABLE[4])
469 #endif
470 #if defined(TARGET_IS_CC3200)
471 #define ROM_uDMAChannelEnable                                                 \
472         ((void (*)(unsigned long ulChannelNum))ROM_UDMATABLE[5])
473 #endif
474 #if defined(TARGET_IS_CC3200)
475 #define ROM_uDMAChannelDisable                                                \
476         ((void (*)(unsigned long ulChannelNum))ROM_UDMATABLE[6])
477 #endif
478 #if defined(TARGET_IS_CC3200)
479 #define ROM_uDMAChannelIsEnabled                                              \
480         ((tBoolean (*)(unsigned long ulChannelNum))ROM_UDMATABLE[7])
481 #endif
482 #if defined(TARGET_IS_CC3200)
483 #define ROM_uDMAControlBaseSet                                                \
484         ((void (*)(void *pControlTable))ROM_UDMATABLE[8])
485 #endif
486 #if defined(TARGET_IS_CC3200)
487 #define ROM_uDMAControlBaseGet                                                \
488         ((void * (*)(void))ROM_UDMATABLE[9])
489 #endif
490 #if defined(TARGET_IS_CC3200)
491 #define ROM_uDMAChannelRequest                                                \
492         ((void (*)(unsigned long ulChannelNum))ROM_UDMATABLE[10])
493 #endif
494 #if defined(TARGET_IS_CC3200)
495 #define ROM_uDMAChannelAttributeEnable                                        \
496         ((void (*)(unsigned long ulChannelNum,                                \
497                    unsigned long ulAttr))ROM_UDMATABLE[11])
498 #endif
499 #if defined(TARGET_IS_CC3200)
500 #define ROM_uDMAChannelAttributeDisable                                       \
501         ((void (*)(unsigned long ulChannelNum,                                \
502                    unsigned long ulAttr))ROM_UDMATABLE[12])
503 #endif
504 #if defined(TARGET_IS_CC3200)
505 #define ROM_uDMAChannelAttributeGet                                           \
506         ((unsigned long (*)(unsigned long ulChannelNum))ROM_UDMATABLE[13])
507 #endif
508 #if defined(TARGET_IS_CC3200)
509 #define ROM_uDMAChannelControlSet                                             \
510         ((void (*)(unsigned long ulChannelStructIndex,                        \
511                    unsigned long ulControl))ROM_UDMATABLE[14])
512 #endif
513 #if defined(TARGET_IS_CC3200)
514 #define ROM_uDMAChannelSizeGet                                                \
515         ((unsigned long (*)(unsigned long ulChannelStructIndex))ROM_UDMATABLE[15])
516 #endif
517 #if defined(TARGET_IS_CC3200)
518 #define ROM_uDMAChannelModeGet                                                \
519         ((unsigned long (*)(unsigned long ulChannelStructIndex))ROM_UDMATABLE[16])
520 #endif
521 #if defined(TARGET_IS_CC3200)
522 #define ROM_uDMAIntStatus                                                     \
523         ((unsigned long (*)(void))ROM_UDMATABLE[17])
524 #endif
525 #if defined(TARGET_IS_CC3200)
526 #define ROM_uDMAIntClear                                                      \
527         ((void (*)(unsigned long ulChanMask))ROM_UDMATABLE[18])
528 #endif
529 #if defined(TARGET_IS_CC3200)
530 #define ROM_uDMAControlAlternateBaseGet                                       \
531         ((void * (*)(void))ROM_UDMATABLE[19])
532 #endif
533 #if defined(TARGET_IS_CC3200)
534 #define ROM_uDMAChannelScatterGatherSet                                       \
535         ((void (*)(unsigned long ulChannelNum,                                \
536                    unsigned ulTaskCount,                                      \
537                    void *pvTaskList,                                          \
538                    unsigned long ulIsPeriphSG))ROM_UDMATABLE[20])
539 #endif
540 #if defined(TARGET_IS_CC3200)
541 #define ROM_uDMAChannelAssign                                                 \
542         ((void (*)(unsigned long ulMapping))ROM_UDMATABLE[21])
543 #endif
544 #if defined(TARGET_IS_CC3200)
545 #define ROM_uDMAIntRegister                                                   \
546         ((void (*)(unsigned long ulIntChannel,                                \
547                    void (*pfnHandler)(void)))ROM_UDMATABLE[22])
548 #endif
549 #if defined(TARGET_IS_CC3200)
550 #define ROM_uDMAIntUnregister                                                 \
551         ((void (*)(unsigned long ulIntChannel))ROM_UDMATABLE[23])
552 #endif
553 
554 //*****************************************************************************
555 //
556 // Macros for calling ROM functions in the Watchdog API.
557 //
558 //*****************************************************************************
559 #if defined(TARGET_IS_CC3200)
560 #define ROM_WatchdogIntClear                                                  \
561         ((void (*)(unsigned long ulBase))ROM_WATCHDOGTABLE[0])
562 #endif
563 #if defined(TARGET_IS_CC3200)
564 #define ROM_WatchdogRunning                                                   \
565         ((tBoolean (*)(unsigned long ulBase))ROM_WATCHDOGTABLE[1])
566 #endif
567 #if defined(TARGET_IS_CC3200)
568 #define ROM_WatchdogEnable                                                    \
569         ((void (*)(unsigned long ulBase))ROM_WATCHDOGTABLE[2])
570 #endif
571 #if defined(TARGET_IS_CC3200)
572 #define ROM_WatchdogLock                                                      \
573         ((void (*)(unsigned long ulBase))ROM_WATCHDOGTABLE[3])
574 #endif
575 #if defined(TARGET_IS_CC3200)
576 #define ROM_WatchdogUnlock                                                    \
577         ((void (*)(unsigned long ulBase))ROM_WATCHDOGTABLE[4])
578 #endif
579 #if defined(TARGET_IS_CC3200)
580 #define ROM_WatchdogLockState                                                 \
581         ((tBoolean (*)(unsigned long ulBase))ROM_WATCHDOGTABLE[5])
582 #endif
583 #if defined(TARGET_IS_CC3200)
584 #define ROM_WatchdogReloadSet                                                 \
585         ((void (*)(unsigned long ulBase,                                      \
586                    unsigned long ulLoadVal))ROM_WATCHDOGTABLE[6])
587 #endif
588 #if defined(TARGET_IS_CC3200)
589 #define ROM_WatchdogReloadGet                                                 \
590         ((unsigned long (*)(unsigned long ulBase))ROM_WATCHDOGTABLE[7])
591 #endif
592 #if defined(TARGET_IS_CC3200)
593 #define ROM_WatchdogValueGet                                                  \
594         ((unsigned long (*)(unsigned long ulBase))ROM_WATCHDOGTABLE[8])
595 #endif
596 #if defined(TARGET_IS_CC3200)
597 #define ROM_WatchdogIntStatus                                                 \
598         ((unsigned long (*)(unsigned long ulBase,                             \
599                             tBoolean bMasked))ROM_WATCHDOGTABLE[10])
600 #endif
601 #if defined(TARGET_IS_CC3200)
602 #define ROM_WatchdogStallEnable                                               \
603         ((void (*)(unsigned long ulBase))ROM_WATCHDOGTABLE[11])
604 #endif
605 #if defined(TARGET_IS_CC3200)
606 #define ROM_WatchdogStallDisable                                              \
607         ((void (*)(unsigned long ulBase))ROM_WATCHDOGTABLE[12])
608 #endif
609 #if defined(TARGET_IS_CC3200)
610 #define ROM_WatchdogIntRegister                                               \
611         ((void (*)(unsigned long ulBase,                                      \
612                    void(*pfnHandler)(void)))ROM_WATCHDOGTABLE[13])
613 #endif
614 #if defined(TARGET_IS_CC3200)
615 #define ROM_WatchdogIntUnregister                                             \
616         ((void (*)(unsigned long ulBase))ROM_WATCHDOGTABLE[14])
617 #endif
618 
619 //*****************************************************************************
620 //
621 // Macros for calling ROM functions in the I2C API.
622 //
623 //*****************************************************************************
624 #if defined(TARGET_IS_CC3200)
625 #define ROM_I2CIntRegister                                                    \
626         ((void (*)(uint32_t ui32Base,                                         \
627                    void(pfnHandler)(void)))ROM_I2CTABLE[0])
628 #endif
629 #if defined(TARGET_IS_CC3200)
630 #define ROM_I2CIntUnregister                                                  \
631         ((void (*)(uint32_t ui32Base))ROM_I2CTABLE[1])
632 #endif
633 #if defined(TARGET_IS_CC3200)
634 #define ROM_I2CTxFIFOConfigSet                                                \
635         ((void (*)(uint32_t ui32Base,                                         \
636                    uint32_t ui32Config))ROM_I2CTABLE[2])
637 #endif
638 #if defined(TARGET_IS_CC3200)
639 #define ROM_I2CTxFIFOFlush                                                    \
640         ((void (*)(uint32_t ui32Base))ROM_I2CTABLE[3])
641 #endif
642 #if defined(TARGET_IS_CC3200)
643 #define ROM_I2CRxFIFOConfigSet                                                \
644         ((void (*)(uint32_t ui32Base,                                         \
645                    uint32_t ui32Config))ROM_I2CTABLE[4])
646 #endif
647 #if defined(TARGET_IS_CC3200)
648 #define ROM_I2CRxFIFOFlush                                                    \
649         ((void (*)(uint32_t ui32Base))ROM_I2CTABLE[5])
650 #endif
651 #if defined(TARGET_IS_CC3200)
652 #define ROM_I2CFIFOStatus                                                     \
653         ((uint32_t (*)(uint32_t ui32Base))ROM_I2CTABLE[6])
654 #endif
655 #if defined(TARGET_IS_CC3200)
656 #define ROM_I2CFIFODataPut                                                    \
657         ((void (*)(uint32_t ui32Base,                                         \
658                    uint8_t ui8Data))ROM_I2CTABLE[7])
659 #endif
660 #if defined(TARGET_IS_CC3200)
661 #define ROM_I2CFIFODataPutNonBlocking                                         \
662         ((uint32_t (*)(uint32_t ui32Base,                                     \
663                        uint8_t ui8Data))ROM_I2CTABLE[8])
664 #endif
665 #if defined(TARGET_IS_CC3200)
666 #define ROM_I2CFIFODataGet                                                    \
667         ((uint32_t (*)(uint32_t ui32Base))ROM_I2CTABLE[9])
668 #endif
669 #if defined(TARGET_IS_CC3200)
670 #define ROM_I2CFIFODataGetNonBlocking                                         \
671         ((uint32_t (*)(uint32_t ui32Base,                                     \
672                        uint8_t *pui8Data))ROM_I2CTABLE[10])
673 #endif
674 #if defined(TARGET_IS_CC3200)
675 #define ROM_I2CMasterBurstLengthSet                                           \
676         ((void (*)(uint32_t ui32Base,                                         \
677                    uint8_t ui8Length))ROM_I2CTABLE[11])
678 #endif
679 #if defined(TARGET_IS_CC3200)
680 #define ROM_I2CMasterBurstCountGet                                            \
681         ((uint32_t (*)(uint32_t ui32Base))ROM_I2CTABLE[12])
682 #endif
683 #if defined(TARGET_IS_CC3200)
684 #define ROM_I2CMasterGlitchFilterConfigSet                                    \
685         ((void (*)(uint32_t ui32Base,                                         \
686                    uint32_t ui32Config))ROM_I2CTABLE[13])
687 #endif
688 #if defined(TARGET_IS_CC3200)
689 #define ROM_I2CSlaveFIFOEnable                                                \
690         ((void (*)(uint32_t ui32Base,                                         \
691                    uint32_t ui32Config))ROM_I2CTABLE[14])
692 #endif
693 #if defined(TARGET_IS_CC3200)
694 #define ROM_I2CSlaveFIFODisable                                               \
695         ((void (*)(uint32_t ui32Base))ROM_I2CTABLE[15])
696 #endif
697 #if defined(TARGET_IS_CC3200)
698 #define ROM_I2CMasterBusBusy                                                  \
699         ((bool (*)(uint32_t ui32Base))ROM_I2CTABLE[16])
700 #endif
701 #if defined(TARGET_IS_CC3200)
702 #define ROM_I2CMasterBusy                                                     \
703         ((bool (*)(uint32_t ui32Base))ROM_I2CTABLE[17])
704 #endif
705 #if defined(TARGET_IS_CC3200)
706 #define ROM_I2CMasterControl                                                  \
707         ((void (*)(uint32_t ui32Base,                                         \
708                    uint32_t ui32Cmd))ROM_I2CTABLE[18])
709 #endif
710 #if defined(TARGET_IS_CC3200)
711 #define ROM_I2CMasterDataGet                                                  \
712         ((uint32_t (*)(uint32_t ui32Base))ROM_I2CTABLE[19])
713 #endif
714 #if defined(TARGET_IS_CC3200)
715 #define ROM_I2CMasterDataPut                                                  \
716         ((void (*)(uint32_t ui32Base,                                         \
717                    uint8_t ui8Data))ROM_I2CTABLE[20])
718 #endif
719 #if defined(TARGET_IS_CC3200)
720 #define ROM_I2CMasterDisable                                                  \
721         ((void (*)(uint32_t ui32Base))ROM_I2CTABLE[21])
722 #endif
723 #if defined(TARGET_IS_CC3200)
724 #define ROM_I2CMasterEnable                                                   \
725         ((void (*)(uint32_t ui32Base))ROM_I2CTABLE[22])
726 #endif
727 #if defined(TARGET_IS_CC3200)
728 #define ROM_I2CMasterErr                                                      \
729         ((uint32_t (*)(uint32_t ui32Base))ROM_I2CTABLE[23])
730 #endif
731 #if defined(TARGET_IS_CC3200)
732 #define ROM_I2CMasterIntClear                                                 \
733         ((void (*)(uint32_t ui32Base))ROM_I2CTABLE[24])
734 #endif
735 #if defined(TARGET_IS_CC3200)
736 #define ROM_I2CMasterIntDisable                                               \
737         ((void (*)(uint32_t ui32Base))ROM_I2CTABLE[25])
738 #endif
739 #if defined(TARGET_IS_CC3200)
740 #define ROM_I2CMasterIntEnable                                                \
741         ((void (*)(uint32_t ui32Base))ROM_I2CTABLE[26])
742 #endif
743 #if defined(TARGET_IS_CC3200)
744 #define ROM_I2CMasterIntStatus                                                \
745         ((bool (*)(uint32_t ui32Base,                                         \
746                    bool bMasked))ROM_I2CTABLE[27])
747 #endif
748 #if defined(TARGET_IS_CC3200)
749 #define ROM_I2CMasterIntEnableEx                                              \
750         ((void (*)(uint32_t ui32Base,                                         \
751                    uint32_t ui32IntFlags))ROM_I2CTABLE[28])
752 #endif
753 #if defined(TARGET_IS_CC3200)
754 #define ROM_I2CMasterIntDisableEx                                             \
755         ((void (*)(uint32_t ui32Base,                                         \
756                    uint32_t ui32IntFlags))ROM_I2CTABLE[29])
757 #endif
758 #if defined(TARGET_IS_CC3200)
759 #define ROM_I2CMasterIntStatusEx                                              \
760         ((uint32_t (*)(uint32_t ui32Base,                                     \
761                        bool bMasked))ROM_I2CTABLE[30])
762 #endif
763 #if defined(TARGET_IS_CC3200)
764 #define ROM_I2CMasterIntClearEx                                               \
765         ((void (*)(uint32_t ui32Base,                                         \
766                    uint32_t ui32IntFlags))ROM_I2CTABLE[31])
767 #endif
768 #if defined(TARGET_IS_CC3200)
769 #define ROM_I2CMasterTimeoutSet                                               \
770         ((void (*)(uint32_t ui32Base,                                         \
771                    uint32_t ui32Value))ROM_I2CTABLE[32])
772 #endif
773 #if defined(TARGET_IS_CC3200)
774 #define ROM_I2CSlaveACKOverride                                               \
775         ((void (*)(uint32_t ui32Base,                                         \
776                    bool bEnable))ROM_I2CTABLE[33])
777 #endif
778 #if defined(TARGET_IS_CC3200)
779 #define ROM_I2CSlaveACKValueSet                                               \
780         ((void (*)(uint32_t ui32Base,                                         \
781                    bool bACK))ROM_I2CTABLE[34])
782 #endif
783 #if defined(TARGET_IS_CC3200)
784 #define ROM_I2CMasterLineStateGet                                             \
785         ((uint32_t (*)(uint32_t ui32Base))ROM_I2CTABLE[35])
786 #endif
787 #if defined(TARGET_IS_CC3200)
788 #define ROM_I2CMasterSlaveAddrSet                                             \
789         ((void (*)(uint32_t ui32Base,                                         \
790                    uint8_t ui8SlaveAddr,                                      \
791                    bool bReceive))ROM_I2CTABLE[36])
792 #endif
793 #if defined(TARGET_IS_CC3200)
794 #define ROM_I2CSlaveDataGet                                                   \
795         ((uint32_t (*)(uint32_t ui32Base))ROM_I2CTABLE[37])
796 #endif
797 #if defined(TARGET_IS_CC3200)
798 #define ROM_I2CSlaveDataPut                                                   \
799         ((void (*)(uint32_t ui32Base,                                         \
800                    uint8_t ui8Data))ROM_I2CTABLE[38])
801 #endif
802 #if defined(TARGET_IS_CC3200)
803 #define ROM_I2CSlaveDisable                                                   \
804         ((void (*)(uint32_t ui32Base))ROM_I2CTABLE[39])
805 #endif
806 #if defined(TARGET_IS_CC3200)
807 #define ROM_I2CSlaveEnable                                                    \
808         ((void (*)(uint32_t ui32Base))ROM_I2CTABLE[40])
809 #endif
810 #if defined(TARGET_IS_CC3200)
811 #define ROM_I2CSlaveInit                                                      \
812         ((void (*)(uint32_t ui32Base,                                         \
813                    uint8_t ui8SlaveAddr))ROM_I2CTABLE[41])
814 #endif
815 #if defined(TARGET_IS_CC3200)
816 #define ROM_I2CSlaveAddressSet                                                \
817         ((void (*)(uint32_t ui32Base,                                         \
818                    uint8_t ui8AddrNum,                                        \
819                    uint8_t ui8SlaveAddr))ROM_I2CTABLE[42])
820 #endif
821 #if defined(TARGET_IS_CC3200)
822 #define ROM_I2CSlaveIntClear                                                  \
823         ((void (*)(uint32_t ui32Base))ROM_I2CTABLE[43])
824 #endif
825 #if defined(TARGET_IS_CC3200)
826 #define ROM_I2CSlaveIntDisable                                                \
827         ((void (*)(uint32_t ui32Base))ROM_I2CTABLE[44])
828 #endif
829 #if defined(TARGET_IS_CC3200)
830 #define ROM_I2CSlaveIntEnable                                                 \
831         ((void (*)(uint32_t ui32Base))ROM_I2CTABLE[45])
832 #endif
833 #if defined(TARGET_IS_CC3200)
834 #define ROM_I2CSlaveIntClearEx                                                \
835         ((void (*)(uint32_t ui32Base,                                         \
836                    uint32_t ui32IntFlags))ROM_I2CTABLE[46])
837 #endif
838 #if defined(TARGET_IS_CC3200)
839 #define ROM_I2CSlaveIntDisableEx                                              \
840         ((void (*)(uint32_t ui32Base,                                         \
841                    uint32_t ui32IntFlags))ROM_I2CTABLE[47])
842 #endif
843 #if defined(TARGET_IS_CC3200)
844 #define ROM_I2CSlaveIntEnableEx                                               \
845         ((void (*)(uint32_t ui32Base,                                         \
846                    uint32_t ui32IntFlags))ROM_I2CTABLE[48])
847 #endif
848 #if defined(TARGET_IS_CC3200)
849 #define ROM_I2CSlaveIntStatus                                                 \
850         ((bool (*)(uint32_t ui32Base,                                         \
851                    bool bMasked))ROM_I2CTABLE[49])
852 #endif
853 #if defined(TARGET_IS_CC3200)
854 #define ROM_I2CSlaveIntStatusEx                                               \
855         ((uint32_t (*)(uint32_t ui32Base,                                     \
856                        bool bMasked))ROM_I2CTABLE[50])
857 #endif
858 #if defined(TARGET_IS_CC3200)
859 #define ROM_I2CSlaveStatus                                                    \
860         ((uint32_t (*)(uint32_t ui32Base))ROM_I2CTABLE[51])
861 #endif
862 #if defined(TARGET_IS_CC3200)
863 #define ROM_I2CMasterInitExpClk                                               \
864         ((void (*)(uint32_t ui32Base,                                         \
865                    uint32_t ui32I2CClk,                                       \
866                    bool bFast))ROM_I2CTABLE[52])
867 #endif
868 
869 //*****************************************************************************
870 //
871 // Macros for calling ROM functions in the SPI API.
872 //
873 //*****************************************************************************
874 #if defined(TARGET_IS_CC3200)
875 #define ROM_SPIEnable                                                         \
876         ((void (*)(unsigned long ulBase))ROM_SPITABLE[0])
877 #endif
878 #if defined(TARGET_IS_CC3200)
879 #define ROM_SPIDisable                                                        \
880         ((void (*)(unsigned long ulBase))ROM_SPITABLE[1])
881 #endif
882 #if defined(TARGET_IS_CC3200)
883 #define ROM_SPIReset                                                          \
884         ((void (*)(unsigned long ulBase))ROM_SPITABLE[2])
885 #endif
886 #if defined(TARGET_IS_CC3200)
887 #define ROM_SPIConfigSetExpClk                                                \
888         ((void (*)(unsigned long ulBase,                                      \
889                   unsigned long ulSPIClk,                                     \
890                    unsigned long ulBitRate,                                   \
891                    unsigned long ulMode,                                      \
892                    unsigned long ulSubMode,                                   \
893                    unsigned long ulConfig))ROM_SPITABLE[3])
894 #endif
895 #if defined(TARGET_IS_CC3200)
896 #define ROM_SPIDataGetNonBlocking                                             \
897         ((long (*)(unsigned long ulBase,                                      \
898                    unsigned long * pulData))ROM_SPITABLE[4])
899 #endif
900 #if defined(TARGET_IS_CC3200)
901 #define ROM_SPIDataGet                                                        \
902         ((void (*)(unsigned long ulBase,                                      \
903                    unsigned long *pulData))ROM_SPITABLE[5])
904 #endif
905 #if defined(TARGET_IS_CC3200)
906 #define ROM_SPIDataPutNonBlocking                                             \
907         ((long (*)(unsigned long ulBase,                                      \
908                    unsigned long ulData))ROM_SPITABLE[6])
909 #endif
910 #if defined(TARGET_IS_CC3200)
911 #define ROM_SPIDataPut                                                        \
912         ((void (*)(unsigned long ulBase,                                      \
913                    unsigned long ulData))ROM_SPITABLE[7])
914 #endif
915 #if defined(TARGET_IS_CC3200)
916 #define ROM_SPIFIFOEnable                                                     \
917         ((void (*)(unsigned long ulBase,                                      \
918                    unsigned long ulFlags))ROM_SPITABLE[8])
919 #endif
920 #if defined(TARGET_IS_CC3200)
921 #define ROM_SPIFIFODisable                                                    \
922         ((void (*)(unsigned long ulBase,                                      \
923                    unsigned long ulFlags))ROM_SPITABLE[9])
924 #endif
925 #if defined(TARGET_IS_CC3200)
926 #define ROM_SPIFIFOLevelSet                                                   \
927         ((void (*)(unsigned long ulBase,                                      \
928                    unsigned long ulTxLevel,                                   \
929                    unsigned long ulRxLevel))ROM_SPITABLE[10])
930 #endif
931 #if defined(TARGET_IS_CC3200)
932 #define ROM_SPIFIFOLevelGet                                                   \
933         ((void (*)(unsigned long ulBase,                                      \
934                    unsigned long *pulTxLevel,                                 \
935                    unsigned long *pulRxLevel))ROM_SPITABLE[11])
936 #endif
937 #if defined(TARGET_IS_CC3200)
938 #define ROM_SPIWordCountSet                                                   \
939         ((void (*)(unsigned long ulBase,                                      \
940                    unsigned long ulWordCount))ROM_SPITABLE[12])
941 #endif
942 #if defined(TARGET_IS_CC3200)
943 #define ROM_SPIIntRegister                                                    \
944         ((void (*)(unsigned long ulBase,                                      \
945                    void(*pfnHandler)(void)))ROM_SPITABLE[13])
946 #endif
947 #if defined(TARGET_IS_CC3200)
948 #define ROM_SPIIntUnregister                                                  \
949         ((void (*)(unsigned long ulBase))ROM_SPITABLE[14])
950 #endif
951 #if defined(TARGET_IS_CC3200)
952 #define ROM_SPIIntEnable                                                      \
953         ((void (*)(unsigned long ulBase,                                      \
954                    unsigned long ulIntFlags))ROM_SPITABLE[15])
955 #endif
956 #if defined(TARGET_IS_CC3200)
957 #define ROM_SPIIntDisable                                                     \
958         ((void (*)(unsigned long ulBase,                                      \
959                    unsigned long ulIntFlags))ROM_SPITABLE[16])
960 #endif
961 #if defined(TARGET_IS_CC3200)
962 #define ROM_SPIIntStatus                                                      \
963         ((unsigned long (*)(unsigned long ulBase,                             \
964                             tBoolean bMasked))ROM_SPITABLE[17])
965 #endif
966 #if defined(TARGET_IS_CC3200)
967 #define ROM_SPIIntClear                                                       \
968         ((void (*)(unsigned long ulBase,                                      \
969                    unsigned long ulIntFlags))ROM_SPITABLE[18])
970 #endif
971 #if defined(TARGET_IS_CC3200)
972 #define ROM_SPIDmaEnable                                                      \
973         ((void (*)(unsigned long ulBase,                                      \
974                    unsigned long ulFlags))ROM_SPITABLE[19])
975 #endif
976 #if defined(TARGET_IS_CC3200)
977 #define ROM_SPIDmaDisable                                                     \
978         ((void (*)(unsigned long ulBase,                                      \
979                    unsigned long ulFlags))ROM_SPITABLE[20])
980 #endif
981 #if defined(TARGET_IS_CC3200)
982 #define ROM_SPICSEnable                                                       \
983         ((void (*)(unsigned long ulBase))ROM_SPITABLE[21])
984 #endif
985 #if defined(TARGET_IS_CC3200)
986 #define ROM_SPICSDisable                                                      \
987         ((void (*)(unsigned long ulBase))ROM_SPITABLE[22])
988 #endif
989 #if defined(TARGET_IS_CC3200)
990 #define ROM_SPITransfer                                                       \
991         ((long (*)(unsigned long ulBase,                                      \
992                    unsigned char *ucDout,                                     \
993                    unsigned char *ucDin,                                      \
994                    unsigned long ulSize,                                      \
995                    unsigned long ulFlags))ROM_SPITABLE[23])
996 #endif
997 
998 //*****************************************************************************
999 //
1000 // Macros for calling ROM functions in the CAM API.
1001 //
1002 //*****************************************************************************
1003 #if defined(TARGET_IS_CC3200)
1004 #define ROM_CameraReset                                                       \
1005         ((void (*)(unsigned long ulBase))ROM_CAMERATABLE[0])
1006 #endif
1007 #if defined(TARGET_IS_CC3200)
1008 #define ROM_CameraParamsConfig                                                \
1009         ((void (*)(unsigned long ulBase,                                      \
1010                    unsigned long ulHSPol,                                     \
1011                    unsigned long ulVSPol,                                     \
1012                    unsigned long ulFlags))ROM_CAMERATABLE[1])
1013 #endif
1014 #if defined(TARGET_IS_CC3200)
1015 #define ROM_CameraXClkConfig                                                  \
1016         ((void (*)(unsigned long ulBase,                                      \
1017                    unsigned long ulCamClkIn,                                  \
1018                    unsigned long ulXClk))ROM_CAMERATABLE[2])
1019 #endif
1020 #if defined(TARGET_IS_CC3200)
1021 #define ROM_CameraXClkSet                                                     \
1022         ((void (*)(unsigned long ulBase,                                      \
1023                    unsigned char bXClkFlags))ROM_CAMERATABLE[3])
1024 #endif
1025 #if defined(TARGET_IS_CC3200)
1026 #define ROM_CameraDMAEnable                                                   \
1027         ((void (*)(unsigned long ulBase))ROM_CAMERATABLE[4])
1028 #endif
1029 #if defined(TARGET_IS_CC3200)
1030 #define ROM_CameraDMADisable                                                  \
1031         ((void (*)(unsigned long ulBase))ROM_CAMERATABLE[5])
1032 #endif
1033 #if defined(TARGET_IS_CC3200)
1034 #define ROM_CameraThresholdSet                                                \
1035         ((void (*)(unsigned long ulBase,                                      \
1036                    unsigned long ulThreshold))ROM_CAMERATABLE[6])
1037 #endif
1038 #if defined(TARGET_IS_CC3200)
1039 #define ROM_CameraIntRegister                                                 \
1040         ((void (*)(unsigned long ulBase,                                      \
1041                    void (*pfnHandler)(void)))ROM_CAMERATABLE[7])
1042 #endif
1043 #if defined(TARGET_IS_CC3200)
1044 #define ROM_CameraIntUnregister                                               \
1045         ((void (*)(unsigned long ulBase))ROM_CAMERATABLE[8])
1046 #endif
1047 #if defined(TARGET_IS_CC3200)
1048 #define ROM_CameraIntEnable                                                   \
1049         ((void (*)(unsigned long ulBase,                                      \
1050                    unsigned long ulIntFlags))ROM_CAMERATABLE[9])
1051 #endif
1052 #if defined(TARGET_IS_CC3200)
1053 #define ROM_CameraIntDisable                                                  \
1054         ((void (*)(unsigned long ulBase,                                      \
1055                    unsigned long ulIntFlags))ROM_CAMERATABLE[10])
1056 #endif
1057 #if defined(TARGET_IS_CC3200)
1058 #define ROM_CameraIntStatus                                                   \
1059         ((unsigned long (*)(unsigned long ulBase))ROM_CAMERATABLE[11])
1060 #endif
1061 #if defined(TARGET_IS_CC3200)
1062 #define ROM_CameraIntClear                                                    \
1063         ((void (*)(unsigned long ulBase,                                      \
1064                    unsigned long ulIntFlags))ROM_CAMERATABLE[12])
1065 #endif
1066 #if defined(TARGET_IS_CC3200)
1067 #define ROM_CameraCaptureStop                                                 \
1068         ((void (*)(unsigned long ulBase,                                      \
1069                    tBoolean bImmediate))ROM_CAMERATABLE[13])
1070 #endif
1071 #if defined(TARGET_IS_CC3200)
1072 #define ROM_CameraCaptureStart                                                \
1073         ((void (*)(unsigned long ulBase))ROM_CAMERATABLE[14])
1074 #endif
1075 #if defined(TARGET_IS_CC3200)
1076 #define ROM_CameraBufferRead                                                  \
1077         ((void (*)(unsigned long ulBase,                                      \
1078                   unsigned long *pBuffer,                                     \
1079                    unsigned char ucSize))ROM_CAMERATABLE[15])
1080 #endif
1081 
1082 //*****************************************************************************
1083 //
1084 // Macros for calling ROM functions in the FLASH API.
1085 //
1086 //*****************************************************************************
1087 #if defined(TARGET_IS_CC3200)
1088 #define ROM_FlashDisable                                                      \
1089         ((void (*)(void))ROM_FLASHTABLE[0])
1090 #endif
1091 #if defined(TARGET_IS_CC3200)
1092 #define ROM_FlashErase                                                        \
1093         ((long (*)(unsigned long ulAddress))ROM_FLASHTABLE[1])
1094 #endif
1095 #if defined(TARGET_IS_CC3200)
1096 #define ROM_FlashMassErase                                                    \
1097         ((long (*)(void))ROM_FLASHTABLE[2])
1098 #endif
1099 #if defined(TARGET_IS_CC3200)
1100 #define ROM_FlashMassEraseNonBlocking                                         \
1101         ((void (*)(void))ROM_FLASHTABLE[3])
1102 #endif
1103 #if defined(TARGET_IS_CC3200)
1104 #define ROM_FlashEraseNonBlocking                                             \
1105         ((void (*)(unsigned long ulAddress))ROM_FLASHTABLE[4])
1106 #endif
1107 #if defined(TARGET_IS_CC3200)
1108 #define ROM_FlashProgram                                                      \
1109         ((long (*)(unsigned long *pulData,                                    \
1110                    unsigned long ulAddress,                                   \
1111                    unsigned long ulCount))ROM_FLASHTABLE[5])
1112 #endif
1113 #if defined(TARGET_IS_CC3200)
1114 #define ROM_FlashProgramNonBlocking                                           \
1115         ((long (*)(unsigned long *pulData,                                    \
1116                    unsigned long ulAddress,                                   \
1117                    unsigned long ulCount))ROM_FLASHTABLE[6])
1118 #endif
1119 #if defined(TARGET_IS_CC3200)
1120 #define ROM_FlashIntRegister                                                  \
1121         ((void (*)(void (*pfnHandler)(void)))ROM_FLASHTABLE[7])
1122 #endif
1123 #if defined(TARGET_IS_CC3200)
1124 #define ROM_FlashIntUnregister                                                \
1125         ((void (*)(void))ROM_FLASHTABLE[8])
1126 #endif
1127 #if defined(TARGET_IS_CC3200)
1128 #define ROM_FlashIntEnable                                                    \
1129         ((void (*)(unsigned long ulIntFlags))ROM_FLASHTABLE[9])
1130 #endif
1131 #if defined(TARGET_IS_CC3200)
1132 #define ROM_FlashIntDisable                                                   \
1133         ((void (*)(unsigned long ulIntFlags))ROM_FLASHTABLE[10])
1134 #endif
1135 #if defined(TARGET_IS_CC3200)
1136 #define ROM_FlashIntStatus                                                    \
1137         ((unsigned long (*)(tBoolean bMasked))ROM_FLASHTABLE[11])
1138 #endif
1139 #if defined(TARGET_IS_CC3200)
1140 #define ROM_FlashIntClear                                                     \
1141         ((void (*)(unsigned long ulIntFlags))ROM_FLASHTABLE[12])
1142 #endif
1143 #if defined(TARGET_IS_CC3200)
1144 #define ROM_FlashProtectGet                                                   \
1145         ((tFlashProtection (*)(unsigned long ulAddress))ROM_FLASHTABLE[13])
1146 #endif
1147 
1148 //*****************************************************************************
1149 //
1150 // Macros for calling ROM functions in the Pin API.
1151 //
1152 //*****************************************************************************
1153 #if defined(TARGET_IS_CC3200)
1154 #define ROM_PinModeSet                                                        \
1155         ((void (*)(unsigned long ulPin,                                       \
1156                    unsigned long ulPinMode))ROM_PINTABLE[0])
1157 #endif
1158 #if defined(TARGET_IS_CC3200)
1159 #define ROM_PinDirModeSet                                                     \
1160         ((void (*)(unsigned long ulPin,                                       \
1161                    unsigned long ulPinIO))ROM_PINTABLE[1])
1162 #endif
1163 #if defined(TARGET_IS_CC3200)
1164 #define ROM_PinDirModeGet                                                     \
1165         ((unsigned long (*)(unsigned long ulPin))ROM_PINTABLE[2])
1166 #endif
1167 #if defined(TARGET_IS_CC3200)
1168 #define ROM_PinModeGet                                                        \
1169         ((unsigned long (*)(unsigned long ulPin))ROM_PINTABLE[3])
1170 #endif
1171 #if defined(TARGET_IS_CC3200)
1172 #define ROM_PinConfigGet                                                      \
1173         ((void (*)(unsigned long ulPin,                                       \
1174                   unsigned long  *pulPinStrength,                             \
1175                    unsigned long *pulPinType))ROM_PINTABLE[4])
1176 #endif
1177 #if defined(TARGET_IS_CC3200)
1178 #define ROM_PinConfigSet                                                      \
1179         ((void (*)(unsigned long ulPin,                                       \
1180                   unsigned long  ulPinStrength,                               \
1181                    unsigned long ulPinType))ROM_PINTABLE[5])
1182 #endif
1183 #if defined(TARGET_IS_CC3200)
1184 #define ROM_PinTypeUART                                                       \
1185         ((void (*)(unsigned long ulPin,                                       \
1186                   unsigned long ulPinMode))ROM_PINTABLE[6])
1187 #endif
1188 #if defined(TARGET_IS_CC3200)
1189 #define ROM_PinTypeI2C                                                        \
1190         ((void (*)(unsigned long ulPin,                                       \
1191                   unsigned long ulPinMode))ROM_PINTABLE[7])
1192 #endif
1193 #if defined(TARGET_IS_CC3200)
1194 #define ROM_PinTypeSPI                                                        \
1195         ((void (*)(unsigned long ulPin,                                       \
1196                   unsigned long ulPinMode))ROM_PINTABLE[8])
1197 #endif
1198 #if defined(TARGET_IS_CC3200)
1199 #define ROM_PinTypeI2S                                                        \
1200         ((void (*)(unsigned long ulPin,                                       \
1201                   unsigned long ulPinMode))ROM_PINTABLE[9])
1202 #endif
1203 #if defined(TARGET_IS_CC3200)
1204 #define ROM_PinTypeTimer                                                      \
1205         ((void (*)(unsigned long ulPin,                                       \
1206                   unsigned long ulPinMode))ROM_PINTABLE[10])
1207 #endif
1208 #if defined(TARGET_IS_CC3200)
1209 #define ROM_PinTypeCamera                                                     \
1210         ((void (*)(unsigned long ulPin,                                       \
1211                   unsigned long ulPinMode))ROM_PINTABLE[11])
1212 #endif
1213 #if defined(TARGET_IS_CC3200)
1214 #define ROM_PinTypeGPIO                                                       \
1215         ((void (*)(unsigned long ulPin,                                       \
1216                   unsigned long ulPinMode,                                    \
1217                    tBoolean bOpenDrain))ROM_PINTABLE[12])
1218 #endif
1219 #if defined(TARGET_IS_CC3200)
1220 #define ROM_PinTypeADC                                                        \
1221         ((void (*)(unsigned long ulPin,                                       \
1222                   unsigned long ulPinMode))ROM_PINTABLE[13])
1223 #endif
1224 #if defined(TARGET_IS_CC3200)
1225 #define ROM_PinTypeSDHost                                                     \
1226         ((void (*)(unsigned long ulPin,                                       \
1227                   unsigned long ulPinMode))ROM_PINTABLE[14])
1228 #endif
1229 
1230 //*****************************************************************************
1231 //
1232 // Macros for calling ROM functions in the SYSTICK API.
1233 //
1234 //*****************************************************************************
1235 #if defined(TARGET_IS_CC3200)
1236 #define ROM_SysTickEnable                                                     \
1237         ((void (*)(void))ROM_SYSTICKTABLE[0])
1238 #endif
1239 #if defined(TARGET_IS_CC3200)
1240 #define ROM_SysTickDisable                                                    \
1241         ((void (*)(void))ROM_SYSTICKTABLE[1])
1242 #endif
1243 #if defined(TARGET_IS_CC3200)
1244 #define ROM_SysTickIntRegister                                                \
1245         ((void (*)(void (*pfnHandler)(void)))ROM_SYSTICKTABLE[2])
1246 #endif
1247 #if defined(TARGET_IS_CC3200)
1248 #define ROM_SysTickIntUnregister                                              \
1249         ((void (*)(void))ROM_SYSTICKTABLE[3])
1250 #endif
1251 #if defined(TARGET_IS_CC3200)
1252 #define ROM_SysTickIntEnable                                                  \
1253         ((void (*)(void))ROM_SYSTICKTABLE[4])
1254 #endif
1255 #if defined(TARGET_IS_CC3200)
1256 #define ROM_SysTickIntDisable                                                 \
1257         ((void (*)(void))ROM_SYSTICKTABLE[5])
1258 #endif
1259 #if defined(TARGET_IS_CC3200)
1260 #define ROM_SysTickPeriodSet                                                  \
1261         ((void (*)(unsigned long ulPeriod))ROM_SYSTICKTABLE[6])
1262 #endif
1263 #if defined(TARGET_IS_CC3200)
1264 #define ROM_SysTickPeriodGet                                                  \
1265         ((unsigned long (*)(void))ROM_SYSTICKTABLE[7])
1266 #endif
1267 #if defined(TARGET_IS_CC3200)
1268 #define ROM_SysTickValueGet                                                   \
1269         ((unsigned long (*)(void))ROM_SYSTICKTABLE[8])
1270 #endif
1271 
1272 //*****************************************************************************
1273 //
1274 // Macros for calling ROM functions in the UTILS API.
1275 //
1276 //*****************************************************************************
1277 #if defined(TARGET_IS_CC3200)
1278 #define ROM_UtilsDelay                                                        \
1279         ((void (*)(unsigned long ulCount))ROM_UTILSTABLE[0])
1280 #endif
1281 
1282 //*****************************************************************************
1283 //
1284 // Macros for calling ROM functions in the I2S API.
1285 //
1286 //*****************************************************************************
1287 #if defined(TARGET_IS_CC3200)
1288 #define ROM_I2SEnable                                                         \
1289         ((void (*)(unsigned long ulBase,                                      \
1290                    unsigned long ulMode))ROM_I2STABLE[0])
1291 #endif
1292 #if defined(TARGET_IS_CC3200)
1293 #define ROM_I2SDisable                                                        \
1294         ((void (*)(unsigned long ulBase))ROM_I2STABLE[1])
1295 #endif
1296 #if defined(TARGET_IS_CC3200)
1297 #define ROM_I2SDataPut                                                        \
1298         ((void (*)(unsigned long ulBase,                                      \
1299                    unsigned long ulDataLine,                                  \
1300                    unsigned long ulData))ROM_I2STABLE[2])
1301 #endif
1302 #if defined(TARGET_IS_CC3200)
1303 #define ROM_I2SDataPutNonBlocking                                             \
1304         ((long (*)(unsigned long ulBase,                                      \
1305                    unsigned long ulDataLine,                                  \
1306                    unsigned long ulData))ROM_I2STABLE[3])
1307 #endif
1308 #if defined(TARGET_IS_CC3200)
1309 #define ROM_I2SDataGet                                                        \
1310         ((void (*)(unsigned long ulBase,                                      \
1311                    unsigned long ulDataLine,                                  \
1312                    unsigned long *pulData))ROM_I2STABLE[4])
1313 #endif
1314 #if defined(TARGET_IS_CC3200)
1315 #define ROM_I2SDataGetNonBlocking                                             \
1316         ((long (*)(unsigned long ulBase,                                      \
1317                    unsigned long ulDataLine,                                  \
1318                    unsigned long *pulData))ROM_I2STABLE[5])
1319 #endif
1320 #if defined(TARGET_IS_CC3200)
1321 #define ROM_I2SConfigSetExpClk                                                \
1322         ((void (*)(unsigned long ulBase,                                      \
1323                    unsigned long ulI2SClk,                                    \
1324                    unsigned long ulBitClk,                                    \
1325                    unsigned long ulConfig))ROM_I2STABLE[6])
1326 #endif
1327 #if defined(TARGET_IS_CC3200)
1328 #define ROM_I2STxFIFOEnable                                                   \
1329         ((void (*)(unsigned long ulBase,                                      \
1330                    unsigned long ulTxLevel,                                   \
1331                    unsigned long ulWordsPerTransfer))ROM_I2STABLE[7])
1332 #endif
1333 #if defined(TARGET_IS_CC3200)
1334 #define ROM_I2STxFIFODisable                                                  \
1335         ((void (*)(unsigned long ulBase))ROM_I2STABLE[8])
1336 #endif
1337 #if defined(TARGET_IS_CC3200)
1338 #define ROM_I2SRxFIFOEnable                                                   \
1339         ((void (*)(unsigned long ulBase,                                      \
1340                    unsigned long ulRxLevel,                                   \
1341                    unsigned long ulWordsPerTransfer))ROM_I2STABLE[9])
1342 #endif
1343 #if defined(TARGET_IS_CC3200)
1344 #define ROM_I2SRxFIFODisable                                                  \
1345         ((void (*)(unsigned long ulBase))ROM_I2STABLE[10])
1346 #endif
1347 #if defined(TARGET_IS_CC3200)
1348 #define ROM_I2STxFIFOStatusGet                                                \
1349         ((unsigned long (*)(unsigned long ulBase))ROM_I2STABLE[11])
1350 #endif
1351 #if defined(TARGET_IS_CC3200)
1352 #define ROM_I2SRxFIFOStatusGet                                                \
1353         ((unsigned long (*)(unsigned long ulBase))ROM_I2STABLE[12])
1354 #endif
1355 #if defined(TARGET_IS_CC3200)
1356 #define ROM_I2SSerializerConfig                                               \
1357         ((void (*)(unsigned long ulBase,                                      \
1358                    unsigned long ulDataLine,                                  \
1359                    unsigned long ulSerMode,                                   \
1360                    unsigned long ulInActState))ROM_I2STABLE[13])
1361 #endif
1362 #if defined(TARGET_IS_CC3200)
1363 #define ROM_I2SIntEnable                                                      \
1364         ((void (*)(unsigned long ulBase,                                      \
1365                    unsigned long ulIntFlags))ROM_I2STABLE[14])
1366 #endif
1367 #if defined(TARGET_IS_CC3200)
1368 #define ROM_I2SIntDisable                                                     \
1369         ((void (*)(unsigned long ulBase,                                      \
1370                    unsigned long ulIntFlags))ROM_I2STABLE[15])
1371 #endif
1372 #if defined(TARGET_IS_CC3200)
1373 #define ROM_I2SIntStatus                                                      \
1374         ((unsigned long (*)(unsigned long ulBase))ROM_I2STABLE[16])
1375 #endif
1376 #if defined(TARGET_IS_CC3200)
1377 #define ROM_I2SIntClear                                                       \
1378         ((void (*)(unsigned long ulBase,                                      \
1379                    unsigned long ulIntFlags))ROM_I2STABLE[17])
1380 #endif
1381 #if defined(TARGET_IS_CC3200)
1382 #define ROM_I2SIntRegister                                                    \
1383         ((void (*)(unsigned long ulBase,                                      \
1384                    void (*pfnHandler)(void)))ROM_I2STABLE[18])
1385 #endif
1386 #if defined(TARGET_IS_CC3200)
1387 #define ROM_I2SIntUnregister                                                  \
1388         ((void (*)(unsigned long ulBase))ROM_I2STABLE[19])
1389 #endif
1390 
1391 //*****************************************************************************
1392 //
1393 // Macros for calling ROM functions in the GPIO API.
1394 //
1395 //*****************************************************************************
1396 #if defined(TARGET_IS_CC3200)
1397 #define ROM_GPIODirModeSet                                                    \
1398         ((void (*)(unsigned long ulPort,                                      \
1399                    unsigned char ucPins,                                      \
1400                    unsigned long ulPinIO))ROM_GPIOTABLE[0])
1401 #endif
1402 #if defined(TARGET_IS_CC3200)
1403 #define ROM_GPIODirModeGet                                                    \
1404         ((unsigned long (*)(unsigned long ulPort,                             \
1405                             unsigned char ucPin))ROM_GPIOTABLE[1])
1406 #endif
1407 #if defined(TARGET_IS_CC3200)
1408 #define ROM_GPIOIntTypeSet                                                    \
1409         ((void (*)(unsigned long ulPort,                                      \
1410                    unsigned char ucPins,                                      \
1411                    unsigned long ulIntType))ROM_GPIOTABLE[2])
1412 #endif
1413 #if defined(TARGET_IS_CC3200)
1414 #define ROM_GPIODMATriggerEnable                                              \
1415         ((void (*)(unsigned long ulPort))ROM_GPIOTABLE[3])
1416 #endif
1417 #if defined(TARGET_IS_CC3200)
1418 #define ROM_GPIODMATriggerDisable                                             \
1419         ((void (*)(unsigned long ulPort))ROM_GPIOTABLE[4])
1420 #endif
1421 #if defined(TARGET_IS_CC3200)
1422 #define ROM_GPIOIntTypeGet                                                    \
1423         ((unsigned long (*)(unsigned long ulPort,                             \
1424                             unsigned char ucPin))ROM_GPIOTABLE[5])
1425 #endif
1426 #if defined(TARGET_IS_CC3200)
1427 #define ROM_GPIOIntEnable                                                     \
1428         ((void (*)(unsigned long ulPort,                                      \
1429                    unsigned long ulIntFlags))ROM_GPIOTABLE[6])
1430 #endif
1431 #if defined(TARGET_IS_CC3200)
1432 #define ROM_GPIOIntDisable                                                    \
1433         ((void (*)(unsigned long ulPort,                                      \
1434                    unsigned long ulIntFlags))ROM_GPIOTABLE[7])
1435 #endif
1436 #if defined(TARGET_IS_CC3200)
1437 #define ROM_GPIOIntStatus                                                     \
1438         ((long (*)(unsigned long ulPort,                                      \
1439                    tBoolean bMasked))ROM_GPIOTABLE[8])
1440 #endif
1441 #if defined(TARGET_IS_CC3200)
1442 #define ROM_GPIOIntClear                                                      \
1443         ((void (*)(unsigned long ulPort,                                      \
1444                    unsigned long ulIntFlags))ROM_GPIOTABLE[9])
1445 #endif
1446 #if defined(TARGET_IS_CC3200)
1447 #define ROM_GPIOIntRegister                                                   \
1448         ((void (*)(unsigned long ulPort,                                      \
1449                    void (*pfnIntHandler)(void)))ROM_GPIOTABLE[10])
1450 #endif
1451 #if defined(TARGET_IS_CC3200)
1452 #define ROM_GPIOIntUnregister                                                 \
1453         ((void (*)(unsigned long ulPort))ROM_GPIOTABLE[11])
1454 #endif
1455 #if defined(TARGET_IS_CC3200)
1456 #define ROM_GPIOPinRead                                                       \
1457         ((long (*)(unsigned long ulPort,                                      \
1458                    unsigned char ucPins))ROM_GPIOTABLE[12])
1459 #endif
1460 #if defined(TARGET_IS_CC3200)
1461 #define ROM_GPIOPinWrite                                                      \
1462         ((void (*)(unsigned long ulPort,                                      \
1463                    unsigned char ucPins,                                      \
1464                    unsigned char ucVal))ROM_GPIOTABLE[13])
1465 #endif
1466 
1467 //*****************************************************************************
1468 //
1469 // Macros for calling ROM functions in the AES API.
1470 //
1471 //*****************************************************************************
1472 #if defined(TARGET_IS_CC3200)
1473 #define ROM_AESConfigSet                                                      \
1474         ((void (*)(uint32_t ui32Base,                                         \
1475                    uint32_t ui32Config))ROM_AESTABLE[0])
1476 #endif
1477 #if defined(TARGET_IS_CC3200)
1478 #define ROM_AESKey1Set                                                        \
1479         ((void (*)(uint32_t ui32Base,                                         \
1480                    uint8_t *pui8Key,                                          \
1481                    uint32_t ui32Keysize))ROM_AESTABLE[1])
1482 #endif
1483 #if defined(TARGET_IS_CC3200)
1484 #define ROM_AESKey2Set                                                        \
1485         ((void (*)(uint32_t ui32Base,                                         \
1486                    uint8_t *pui8Key,                                          \
1487                    uint32_t ui32Keysize))ROM_AESTABLE[2])
1488 #endif
1489 #if defined(TARGET_IS_CC3200)
1490 #define ROM_AESKey3Set                                                        \
1491         ((void (*)(uint32_t ui32Base,                                         \
1492                    uint8_t *pui8Key))ROM_AESTABLE[3])
1493 #endif
1494 #if defined(TARGET_IS_CC3200)
1495 #define ROM_AESIVSet                                                          \
1496         ((void (*)(uint32_t ui32Base,                                         \
1497                    uint8_t *pui8IVdata))ROM_AESTABLE[4])
1498 #endif
1499 #if defined(TARGET_IS_CC3200)
1500 #define ROM_AESTagRead                                                        \
1501         ((void (*)(uint32_t ui32Base,                                         \
1502                    uint8_t *pui8TagData))ROM_AESTABLE[5])
1503 #endif
1504 #if defined(TARGET_IS_CC3200)
1505 #define ROM_AESDataLengthSet                                                  \
1506         ((void (*)(uint32_t ui32Base,                                         \
1507                    uint64_t ui64Length))ROM_AESTABLE[6])
1508 #endif
1509 #if defined(TARGET_IS_CC3200)
1510 #define ROM_AESAuthDataLengthSet                                              \
1511         ((void (*)(uint32_t ui32Base,                                         \
1512                    uint32_t ui32Length))ROM_AESTABLE[7])
1513 #endif
1514 #if defined(TARGET_IS_CC3200)
1515 #define ROM_AESDataReadNonBlocking                                            \
1516         ((bool (*)(uint32_t ui32Base,                                         \
1517                    uint8_t *pui8Dest,                                         \
1518                    uint8_t ui8Length))ROM_AESTABLE[8])
1519 #endif
1520 #if defined(TARGET_IS_CC3200)
1521 #define ROM_AESDataRead                                                       \
1522         ((void (*)(uint32_t ui32Base,                                         \
1523                    uint8_t *pui8Dest,                                         \
1524                    uint8_t ui8Length))ROM_AESTABLE[9])
1525 #endif
1526 #if defined(TARGET_IS_CC3200)
1527 #define ROM_AESDataWriteNonBlocking                                           \
1528         ((bool (*)(uint32_t ui32Base,                                         \
1529                    uint8_t *pui8Src,                                          \
1530                    uint8_t ui8Length))ROM_AESTABLE[10])
1531 #endif
1532 #if defined(TARGET_IS_CC3200)
1533 #define ROM_AESDataWrite                                                      \
1534         ((void (*)(uint32_t ui32Base,                                         \
1535                    uint8_t *pui8Src,                                          \
1536                    uint8_t ui8Length))ROM_AESTABLE[11])
1537 #endif
1538 #if defined(TARGET_IS_CC3200)
1539 #define ROM_AESDataProcess                                                    \
1540         ((bool (*)(uint32_t ui32Base,                                         \
1541                    uint8_t *pui8Src,                                          \
1542                    uint8_t *pui8Dest,                                         \
1543                    uint32_t ui32Length))ROM_AESTABLE[12])
1544 #endif
1545 #if defined(TARGET_IS_CC3200)
1546 #define ROM_AESDataMAC                                                        \
1547         ((bool (*)(uint32_t ui32Base,                                         \
1548                    uint8_t *pui8Src,                                          \
1549                    uint32_t ui32Length,                                       \
1550                    uint8_t *pui8Tag))ROM_AESTABLE[13])
1551 #endif
1552 #if defined(TARGET_IS_CC3200)
1553 #define ROM_AESDataProcessAE                                                  \
1554         ((bool (*)(uint32_t ui32Base,                                         \
1555                    uint8_t *pui8Src,                                          \
1556                    uint8_t *pui8Dest,                                         \
1557                    uint32_t ui32Length,                                       \
1558                    uint8_t *pui8AuthSrc,                                      \
1559                    uint32_t ui32AuthLength,                                   \
1560                    uint8_t *pui8Tag))ROM_AESTABLE[14])
1561 #endif
1562 #if defined(TARGET_IS_CC3200)
1563 #define ROM_AESIntStatus                                                      \
1564         ((uint32_t (*)(uint32_t ui32Base,                                     \
1565                        bool bMasked))ROM_AESTABLE[15])
1566 #endif
1567 #if defined(TARGET_IS_CC3200)
1568 #define ROM_AESIntEnable                                                      \
1569         ((void (*)(uint32_t ui32Base,                                         \
1570                    uint32_t ui32IntFlags))ROM_AESTABLE[16])
1571 #endif
1572 #if defined(TARGET_IS_CC3200)
1573 #define ROM_AESIntDisable                                                     \
1574         ((void (*)(uint32_t ui32Base,                                         \
1575                    uint32_t ui32IntFlags))ROM_AESTABLE[17])
1576 #endif
1577 #if defined(TARGET_IS_CC3200)
1578 #define ROM_AESIntClear                                                       \
1579         ((void (*)(uint32_t ui32Base,                                         \
1580                    uint32_t ui32IntFlags))ROM_AESTABLE[18])
1581 #endif
1582 #if defined(TARGET_IS_CC3200)
1583 #define ROM_AESIntRegister                                                    \
1584         ((void (*)(uint32_t ui32Base,                                         \
1585                    void(*pfnHandler)(void)))ROM_AESTABLE[19])
1586 #endif
1587 #if defined(TARGET_IS_CC3200)
1588 #define ROM_AESIntUnregister                                                  \
1589         ((void (*)(uint32_t ui32Base))ROM_AESTABLE[20])
1590 #endif
1591 #if defined(TARGET_IS_CC3200)
1592 #define ROM_AESDMAEnable                                                      \
1593         ((void (*)(uint32_t ui32Base,                                         \
1594                    uint32_t ui32Flags))ROM_AESTABLE[21])
1595 #endif
1596 #if defined(TARGET_IS_CC3200)
1597 #define ROM_AESDMADisable                                                     \
1598         ((void (*)(uint32_t ui32Base,                                         \
1599                    uint32_t ui32Flags))ROM_AESTABLE[22])
1600 #endif
1601 
1602 //*****************************************************************************
1603 //
1604 // Macros for calling ROM functions in the DES API.
1605 //
1606 //*****************************************************************************
1607 #if defined(TARGET_IS_CC3200)
1608 #define ROM_DESConfigSet                                                      \
1609         ((void (*)(uint32_t ui32Base,                                         \
1610                    uint32_t ui32Config))ROM_DESTABLE[0])
1611 #endif
1612 #if defined(TARGET_IS_CC3200)
1613 #define ROM_DESDataRead                                                       \
1614         ((void (*)(uint32_t ui32Base,                                         \
1615                    uint8_t *pui8Dest,                                         \
1616                    uint8_t ui8Length))ROM_DESTABLE[1])
1617 #endif
1618 #if defined(TARGET_IS_CC3200)
1619 #define ROM_DESDataReadNonBlocking                                            \
1620         ((bool (*)(uint32_t ui32Base,                                         \
1621                    uint8_t *pui8Dest,                                         \
1622                    uint8_t ui8Length))ROM_DESTABLE[2])
1623 #endif
1624 #if defined(TARGET_IS_CC3200)
1625 #define ROM_DESDataProcess                                                    \
1626         ((bool (*)(uint32_t ui32Base,                                         \
1627                    uint8_t *pui8Src,                                          \
1628                    uint8_t *pui8Dest,                                         \
1629                    uint32_t ui32Length))ROM_DESTABLE[3])
1630 #endif
1631 #if defined(TARGET_IS_CC3200)
1632 #define ROM_DESDataWrite                                                      \
1633         ((void (*)(uint32_t ui32Base,                                         \
1634                    uint8_t *pui8Src,                                          \
1635                    uint8_t ui8Length))ROM_DESTABLE[4])
1636 #endif
1637 #if defined(TARGET_IS_CC3200)
1638 #define ROM_DESDataWriteNonBlocking                                           \
1639         ((bool (*)(uint32_t ui32Base,                                         \
1640                    uint8_t *pui8Src,                                          \
1641                    uint8_t ui8Length))ROM_DESTABLE[5])
1642 #endif
1643 #if defined(TARGET_IS_CC3200)
1644 #define ROM_DESDMADisable                                                     \
1645         ((void (*)(uint32_t ui32Base,                                         \
1646                    uint32_t ui32Flags))ROM_DESTABLE[6])
1647 #endif
1648 #if defined(TARGET_IS_CC3200)
1649 #define ROM_DESDMAEnable                                                      \
1650         ((void (*)(uint32_t ui32Base,                                         \
1651                    uint32_t ui32Flags))ROM_DESTABLE[7])
1652 #endif
1653 #if defined(TARGET_IS_CC3200)
1654 #define ROM_DESIntClear                                                       \
1655         ((void (*)(uint32_t ui32Base,                                         \
1656                    uint32_t ui32IntFlags))ROM_DESTABLE[8])
1657 #endif
1658 #if defined(TARGET_IS_CC3200)
1659 #define ROM_DESIntDisable                                                     \
1660         ((void (*)(uint32_t ui32Base,                                         \
1661                    uint32_t ui32IntFlags))ROM_DESTABLE[9])
1662 #endif
1663 #if defined(TARGET_IS_CC3200)
1664 #define ROM_DESIntEnable                                                      \
1665         ((void (*)(uint32_t ui32Base,                                         \
1666                    uint32_t ui32IntFlags))ROM_DESTABLE[10])
1667 #endif
1668 #if defined(TARGET_IS_CC3200)
1669 #define ROM_DESIntRegister                                                    \
1670         ((void (*)(uint32_t ui32Base,                                         \
1671                    void(*pfnHandler)(void)))ROM_DESTABLE[11])
1672 #endif
1673 #if defined(TARGET_IS_CC3200)
1674 #define ROM_DESIntStatus                                                      \
1675         ((uint32_t (*)(uint32_t ui32Base,                                     \
1676                        bool bMasked))ROM_DESTABLE[12])
1677 #endif
1678 #if defined(TARGET_IS_CC3200)
1679 #define ROM_DESIntUnregister                                                  \
1680         ((void (*)(uint32_t ui32Base))ROM_DESTABLE[13])
1681 #endif
1682 #if defined(TARGET_IS_CC3200)
1683 #define ROM_DESIVSet                                                          \
1684         ((bool (*)(uint32_t ui32Base,                                         \
1685                    uint8_t *pui8IVdata))ROM_DESTABLE[14])
1686 #endif
1687 #if defined(TARGET_IS_CC3200)
1688 #define ROM_DESKeySet                                                         \
1689         ((void (*)(uint32_t ui32Base,                                         \
1690                    uint8_t *pui8Key))ROM_DESTABLE[15])
1691 #endif
1692 #if defined(TARGET_IS_CC3200)
1693 #define ROM_DESDataLengthSet                                                  \
1694         ((void (*)(uint32_t ui32Base,                                         \
1695                    uint32_t ui32Length))ROM_DESTABLE[16])
1696 #endif
1697 
1698 //*****************************************************************************
1699 //
1700 // Macros for calling ROM functions in the SHAMD5 API.
1701 //
1702 //*****************************************************************************
1703 #if defined(TARGET_IS_CC3200)
1704 #define ROM_SHAMD5ConfigSet                                                   \
1705         ((void (*)(uint32_t ui32Base,                                         \
1706                    uint32_t ui32Mode))ROM_SHAMD5TABLE[0])
1707 #endif
1708 #if defined(TARGET_IS_CC3200)
1709 #define ROM_SHAMD5DataProcess                                                 \
1710         ((bool (*)(uint32_t ui32Base,                                         \
1711                    uint8_t *pui8DataSrc,                                      \
1712                    uint32_t ui32DataLength,                                   \
1713                    uint8_t *pui8HashResult))ROM_SHAMD5TABLE[1])
1714 #endif
1715 #if defined(TARGET_IS_CC3200)
1716 #define ROM_SHAMD5DataWrite                                                   \
1717         ((void (*)(uint32_t ui32Base,                                         \
1718                    uint8_t *pui8Src))ROM_SHAMD5TABLE[2])
1719 #endif
1720 #if defined(TARGET_IS_CC3200)
1721 #define ROM_SHAMD5DataWriteNonBlocking                                        \
1722         ((bool (*)(uint32_t ui32Base,                                         \
1723                    uint8_t *pui8Src))ROM_SHAMD5TABLE[3])
1724 #endif
1725 #if defined(TARGET_IS_CC3200)
1726 #define ROM_SHAMD5DMADisable                                                  \
1727         ((void (*)(uint32_t ui32Base))ROM_SHAMD5TABLE[4])
1728 #endif
1729 #if defined(TARGET_IS_CC3200)
1730 #define ROM_SHAMD5DMAEnable                                                   \
1731         ((void (*)(uint32_t ui32Base))ROM_SHAMD5TABLE[5])
1732 #endif
1733 #if defined(TARGET_IS_CC3200)
1734 #define ROM_SHAMD5DataLengthSet                                               \
1735         ((void (*)(uint32_t ui32Base,                                         \
1736                    uint32_t ui32Length))ROM_SHAMD5TABLE[6])
1737 #endif
1738 #if defined(TARGET_IS_CC3200)
1739 #define ROM_SHAMD5HMACKeySet                                                  \
1740         ((void (*)(uint32_t ui32Base,                                         \
1741                    uint8_t *pui8Src))ROM_SHAMD5TABLE[7])
1742 #endif
1743 #if defined(TARGET_IS_CC3200)
1744 #define ROM_SHAMD5HMACPPKeyGenerate                                           \
1745         ((void (*)(uint32_t ui32Base,                                         \
1746                    uint8_t *pui8Key,                                          \
1747                    uint8_t *pui8PPKey))ROM_SHAMD5TABLE[8])
1748 #endif
1749 #if defined(TARGET_IS_CC3200)
1750 #define ROM_SHAMD5HMACPPKeySet                                                \
1751         ((void (*)(uint32_t ui32Base,                                         \
1752                    uint8_t *pui8Src))ROM_SHAMD5TABLE[9])
1753 #endif
1754 #if defined(TARGET_IS_CC3200)
1755 #define ROM_SHAMD5HMACProcess                                                 \
1756         ((bool (*)(uint32_t ui32Base,                                         \
1757                    uint8_t *pui8DataSrc,                                      \
1758                    uint32_t ui32DataLength,                                   \
1759                    uint8_t *pui8HashResult))ROM_SHAMD5TABLE[10])
1760 #endif
1761 #if defined(TARGET_IS_CC3200)
1762 #define ROM_SHAMD5IntClear                                                    \
1763         ((void (*)(uint32_t ui32Base,                                         \
1764                    uint32_t ui32IntFlags))ROM_SHAMD5TABLE[11])
1765 #endif
1766 #if defined(TARGET_IS_CC3200)
1767 #define ROM_SHAMD5IntDisable                                                  \
1768         ((void (*)(uint32_t ui32Base,                                         \
1769                    uint32_t ui32IntFlags))ROM_SHAMD5TABLE[12])
1770 #endif
1771 #if defined(TARGET_IS_CC3200)
1772 #define ROM_SHAMD5IntEnable                                                   \
1773         ((void (*)(uint32_t ui32Base,                                         \
1774                    uint32_t ui32IntFlags))ROM_SHAMD5TABLE[13])
1775 #endif
1776 #if defined(TARGET_IS_CC3200)
1777 #define ROM_SHAMD5IntRegister                                                 \
1778         ((void (*)(uint32_t ui32Base,                                         \
1779                    void(*pfnHandler)(void)))ROM_SHAMD5TABLE[14])
1780 #endif
1781 #if defined(TARGET_IS_CC3200)
1782 #define ROM_SHAMD5IntStatus                                                   \
1783         ((uint32_t (*)(uint32_t ui32Base,                                     \
1784                        bool bMasked))ROM_SHAMD5TABLE[15])
1785 #endif
1786 #if defined(TARGET_IS_CC3200)
1787 #define ROM_SHAMD5IntUnregister                                               \
1788         ((void (*)(uint32_t ui32Base))ROM_SHAMD5TABLE[16])
1789 #endif
1790 #if defined(TARGET_IS_CC3200)
1791 #define ROM_SHAMD5ResultRead                                                  \
1792         ((void (*)(uint32_t ui32Base,                                         \
1793                    uint8_t *pui8Dest))ROM_SHAMD5TABLE[17])
1794 #endif
1795 
1796 //*****************************************************************************
1797 //
1798 // Macros for calling ROM functions in the CRC API.
1799 //
1800 //*****************************************************************************
1801 #if defined(TARGET_IS_CC3200)
1802 #define ROM_CRCConfigSet                                                      \
1803         ((void (*)(uint32_t ui32Base,                                         \
1804                    uint32_t ui32CRCConfig))ROM_CRCTABLE[0])
1805 #endif
1806 #if defined(TARGET_IS_CC3200)
1807 #define ROM_CRCDataProcess                                                    \
1808         ((uint32_t (*)(uint32_t ui32Base,                                     \
1809                        void *puiDataIn,                                       \
1810                        uint32_t ui32DataLength,                               \
1811                        uint32_t ui32Config))ROM_CRCTABLE[1])
1812 #endif
1813 #if defined(TARGET_IS_CC3200)
1814 #define ROM_CRCDataWrite                                                      \
1815         ((void (*)(uint32_t ui32Base,                                         \
1816                    uint32_t ui32Data))ROM_CRCTABLE[2])
1817 #endif
1818 #if defined(TARGET_IS_CC3200)
1819 #define ROM_CRCResultRead                                                     \
1820         ((uint32_t (*)(uint32_t ui32Base))ROM_CRCTABLE[3])
1821 #endif
1822 #if defined(TARGET_IS_CC3200)
1823 #define ROM_CRCSeedSet                                                        \
1824         ((void (*)(uint32_t ui32Base,                                         \
1825                    uint32_t ui32Seed))ROM_CRCTABLE[4])
1826 #endif
1827 
1828 //*****************************************************************************
1829 //
1830 // Macros for calling ROM functions in the SDHOST API.
1831 //
1832 //*****************************************************************************
1833 #if defined(TARGET_IS_CC3200)
1834 #define ROM_SDHostCmdReset                                                    \
1835         ((void (*)(unsigned long ulBase))ROM_SDHOSTTABLE[0])
1836 #endif
1837 #if defined(TARGET_IS_CC3200)
1838 #define ROM_SDHostInit                                                        \
1839         ((void (*)(unsigned long ulBase))ROM_SDHOSTTABLE[1])
1840 #endif
1841 #if defined(TARGET_IS_CC3200)
1842 #define ROM_SDHostCmdSend                                                     \
1843         ((long (*)(unsigned long ulBase,                                      \
1844                   unsigned long ulCmd,                                        \
1845                    unsigned ulArg))ROM_SDHOSTTABLE[2])
1846 #endif
1847 #if defined(TARGET_IS_CC3200)
1848 #define ROM_SDHostIntRegister                                                 \
1849         ((void (*)(unsigned long ulBase,                                      \
1850                    void (*pfnHandler)(void)))ROM_SDHOSTTABLE[3])
1851 #endif
1852 #if defined(TARGET_IS_CC3200)
1853 #define ROM_SDHostIntUnregister                                               \
1854         ((void (*)(unsigned long ulBase))ROM_SDHOSTTABLE[4])
1855 #endif
1856 #if defined(TARGET_IS_CC3200)
1857 #define ROM_SDHostIntEnable                                                   \
1858         ((void (*)(unsigned long ulBase,                                      \
1859                   unsigned long ulIntFlags))ROM_SDHOSTTABLE[5])
1860 #endif
1861 #if defined(TARGET_IS_CC3200)
1862 #define ROM_SDHostIntDisable                                                  \
1863         ((void (*)(unsigned long ulBase,                                      \
1864                   unsigned long ulIntFlags))ROM_SDHOSTTABLE[6])
1865 #endif
1866 #if defined(TARGET_IS_CC3200)
1867 #define ROM_SDHostIntStatus                                                   \
1868         ((unsigned long (*)(unsigned long ulBase))ROM_SDHOSTTABLE[7])
1869 #endif
1870 #if defined(TARGET_IS_CC3200)
1871 #define ROM_SDHostIntClear                                                    \
1872         ((void (*)(unsigned long ulBase,                                      \
1873                   unsigned long ulIntFlags))ROM_SDHOSTTABLE[8])
1874 #endif
1875 #if defined(TARGET_IS_CC3200)
1876 #define ROM_SDHostRespStatus                                                  \
1877         ((unsigned long (*)(unsigned long ulBase))ROM_SDHOSTTABLE[9])
1878 #endif
1879 #if defined(TARGET_IS_CC3200)
1880 #define ROM_SDHostRespGet                                                     \
1881         ((void (*)(unsigned long ulBase,                                      \
1882                    unsigned long ulRespnse[4]))ROM_SDHOSTTABLE[10])
1883 #endif
1884 #if defined(TARGET_IS_CC3200)
1885 #define ROM_SDHostBlockSizeSet                                                \
1886         ((void (*)(unsigned long ulBase,                                      \
1887                    unsigned short ulBlkSize))ROM_SDHOSTTABLE[11])
1888 #endif
1889 #if defined(TARGET_IS_CC3200)
1890 #define ROM_SDHostBlockCountSet                                               \
1891         ((void (*)(unsigned long ulBase,                                      \
1892                    unsigned short ulBlkCount))ROM_SDHOSTTABLE[12])
1893 #endif
1894 #if defined(TARGET_IS_CC3200)
1895 #define ROM_SDHostDataNonBlockingWrite                                        \
1896         ((tBoolean (*)(unsigned long ulBase,                                  \
1897                        unsigned long ulData))ROM_SDHOSTTABLE[13])
1898 #endif
1899 #if defined(TARGET_IS_CC3200)
1900 #define ROM_SDHostDataNonBlockingRead                                         \
1901         ((tBoolean (*)(unsigned long ulBase,                                  \
1902                        unsigned long *pulData))ROM_SDHOSTTABLE[14])
1903 #endif
1904 #if defined(TARGET_IS_CC3200)
1905 #define ROM_SDHostDataWrite                                                   \
1906         ((void (*)(unsigned long ulBase,                                      \
1907                    unsigned long ulData))ROM_SDHOSTTABLE[15])
1908 #endif
1909 #if defined(TARGET_IS_CC3200)
1910 #define ROM_SDHostDataRead                                                    \
1911         ((void (*)(unsigned long ulBase,                                      \
1912                    unsigned long *ulData))ROM_SDHOSTTABLE[16])
1913 #endif
1914 #if defined(TARGET_IS_CC3200)
1915 #define ROM_SDHostSetExpClk                                                   \
1916         ((void (*)(unsigned long ulBase,                                      \
1917                    unsigned long ulSDHostClk,                                 \
1918                    unsigned long ulCardClk))ROM_SDHOSTTABLE[17])
1919 #endif
1920 
1921 //*****************************************************************************
1922 //
1923 // Macros for calling ROM functions in the PRCM API.
1924 //
1925 //*****************************************************************************
1926 #if defined(TARGET_IS_CC3200)
1927 #define ROM_PRCMMCUReset                                                      \
1928         ((void (*)(tBoolean bIncludeSubsystem))ROM_PRCMTABLE[1])
1929 #endif
1930 #if defined(TARGET_IS_CC3200)
1931 #define ROM_PRCMSysResetCauseGet                                              \
1932         ((unsigned long (*)(void))ROM_PRCMTABLE[2])
1933 #endif
1934 #if defined(TARGET_IS_CC3200)
1935 #define ROM_PRCMPeripheralClkEnable                                           \
1936         ((void (*)(unsigned long ulPeripheral,                                \
1937                    unsigned long ulClkFlags))ROM_PRCMTABLE[3])
1938 #endif
1939 #if defined(TARGET_IS_CC3200)
1940 #define ROM_PRCMPeripheralClkDisable                                          \
1941         ((void (*)(unsigned long ulPeripheral,                                \
1942                    unsigned long ulClkFlags))ROM_PRCMTABLE[4])
1943 #endif
1944 #if defined(TARGET_IS_CC3200)
1945 #define ROM_PRCMPeripheralReset                                               \
1946         ((void (*)(unsigned long ulPeripheral))ROM_PRCMTABLE[5])
1947 #endif
1948 #if defined(TARGET_IS_CC3200)
1949 #define ROM_PRCMPeripheralStatusGet                                           \
1950         ((tBoolean (*)(unsigned long ulPeripheral))ROM_PRCMTABLE[6])
1951 #endif
1952 #if defined(TARGET_IS_CC3200)
1953 #define ROM_PRCMI2SClockFreqSet                                               \
1954         ((void (*)(unsigned long ulI2CClkFreq))ROM_PRCMTABLE[7])
1955 #endif
1956 #if defined(TARGET_IS_CC3200)
1957 #define ROM_PRCMPeripheralClockGet                                            \
1958         ((unsigned long (*)(unsigned long ulPeripheral))ROM_PRCMTABLE[8])
1959 #endif
1960 #if defined(TARGET_IS_CC3200)
1961 #define ROM_PRCMSleepEnter                                                    \
1962         ((void (*)(void))ROM_PRCMTABLE[9])
1963 #endif
1964 #if defined(TARGET_IS_CC3200)
1965 #define ROM_PRCMDeepSleepEnter                                                \
1966         ((void (*)(void))ROM_PRCMTABLE[10])
1967 #endif
1968 #if defined(TARGET_IS_CC3200)
1969 #define ROM_PRCMSRAMRetentionEnable                                           \
1970         ((void (*)(unsigned long ulSramColSel,                                \
1971                    unsigned long ulFlags))ROM_PRCMTABLE[11])
1972 #endif
1973 #if defined(TARGET_IS_CC3200)
1974 #define ROM_PRCMSRAMRetentionDisable                                          \
1975         ((void (*)(unsigned long ulSramColSel,                                \
1976                    unsigned long ulFlags))ROM_PRCMTABLE[12])
1977 #endif
1978 #if defined(TARGET_IS_CC3200)
1979 #define ROM_PRCMLPDSEnter                                                     \
1980         ((void (*)(void))ROM_PRCMTABLE[13])
1981 #endif
1982 #if defined(TARGET_IS_CC3200)
1983 #define ROM_PRCMLPDSIntervalSet                                               \
1984         ((void (*)(unsigned long ulTicks))ROM_PRCMTABLE[14])
1985 #endif
1986 #if defined(TARGET_IS_CC3200)
1987 #define ROM_PRCMLPDSWakeupSourceEnable                                        \
1988         ((void (*)(unsigned long ulLpdsWakeupSrc))ROM_PRCMTABLE[15])
1989 #endif
1990 #if defined(TARGET_IS_CC3200)
1991 #define ROM_PRCMLPDSWakeupCauseGet                                            \
1992         ((unsigned long (*)(void))ROM_PRCMTABLE[16])
1993 #endif
1994 #if defined(TARGET_IS_CC3200)
1995 #define ROM_PRCMLPDSWakeUpGPIOSelect                                          \
1996         ((void (*)(unsigned long ulGPIOPin,                                   \
1997                    unsigned long ulType))ROM_PRCMTABLE[17])
1998 #endif
1999 #if defined(TARGET_IS_CC3200)
2000 #define ROM_PRCMLPDSWakeupSourceDisable                                       \
2001         ((void (*)(unsigned long ulLpdsWakeupSrc))ROM_PRCMTABLE[18])
2002 #endif
2003 #if defined(TARGET_IS_CC3200)
2004 #define ROM_PRCMHibernateEnter                                                \
2005         ((void (*)(void))ROM_PRCMTABLE[19])
2006 #endif
2007 #if defined(TARGET_IS_CC3200)
2008 #define ROM_PRCMHibernateWakeupSourceEnable                                   \
2009         ((void (*)(unsigned long ulHIBWakupSrc))ROM_PRCMTABLE[20])
2010 #endif
2011 #if defined(TARGET_IS_CC3200)
2012 #define ROM_PRCMHibernateWakeupCauseGet                                       \
2013         ((unsigned long (*)(void))ROM_PRCMTABLE[21])
2014 #endif
2015 #if defined(TARGET_IS_CC3200)
2016 #define ROM_PRCMHibernateWakeUpGPIOSelect                                     \
2017         ((void (*)(unsigned long ulMultiGPIOBitMap,                           \
2018                    unsigned long ulType))ROM_PRCMTABLE[22])
2019 #endif
2020 #if defined(TARGET_IS_CC3200)
2021 #define ROM_PRCMHibernateWakeupSourceDisable                                  \
2022         ((void (*)(unsigned long ulHIBWakupSrc))ROM_PRCMTABLE[23])
2023 #endif
2024 #if defined(TARGET_IS_CC3200)
2025 #define ROM_PRCMHibernateIntervalSet                                          \
2026         ((void (*)(unsigned long long ullTicks))ROM_PRCMTABLE[24])
2027 #endif
2028 #if defined(TARGET_IS_CC3200)
2029 #define ROM_PRCMSlowClkCtrGet                                                 \
2030         ((unsigned long long (*)(void))ROM_PRCMTABLE[25])
2031 #endif
2032 #if defined(TARGET_IS_CC3200)
2033 #define ROM_PRCMSlowClkCtrMatchSet                                            \
2034         ((void (*)(unsigned long long ullTicks))ROM_PRCMTABLE[26])
2035 #endif
2036 #if defined(TARGET_IS_CC3200)
2037 #define ROM_PRCMSlowClkCtrMatchGet                                            \
2038         ((unsigned long long (*)(void))ROM_PRCMTABLE[27])
2039 #endif
2040 #if defined(TARGET_IS_CC3200)
2041 #define ROM_PRCMOCRRegisterWrite                                              \
2042         ((void (*)(unsigned char ucIndex,                                     \
2043                    unsigned long ulRegValue))ROM_PRCMTABLE[28])
2044 #endif
2045 #if defined(TARGET_IS_CC3200)
2046 #define ROM_PRCMOCRRegisterRead                                               \
2047         ((unsigned long (*)(unsigned char ucIndex))ROM_PRCMTABLE[29])
2048 #endif
2049 #if defined(TARGET_IS_CC3200)
2050 #define ROM_PRCMIntRegister                                                   \
2051         ((void (*)(void (*pfnHandler)(void)))ROM_PRCMTABLE[30])
2052 #endif
2053 #if defined(TARGET_IS_CC3200)
2054 #define ROM_PRCMIntUnregister                                                 \
2055         ((void (*)(void))ROM_PRCMTABLE[31])
2056 #endif
2057 #if defined(TARGET_IS_CC3200)
2058 #define ROM_PRCMIntEnable                                                     \
2059         ((void (*)(unsigned long ulIntFlags))ROM_PRCMTABLE[32])
2060 #endif
2061 #if defined(TARGET_IS_CC3200)
2062 #define ROM_PRCMIntDisable                                                    \
2063         ((void (*)(unsigned long ulIntFlags))ROM_PRCMTABLE[33])
2064 #endif
2065 #if defined(TARGET_IS_CC3200)
2066 #define ROM_PRCMIntStatus                                                     \
2067         ((unsigned long (*)(void))ROM_PRCMTABLE[34])
2068 #endif
2069 #if defined(TARGET_IS_CC3200)
2070 #define ROM_PRCMRTCInUseSet                                                   \
2071         ((void (*)(void))ROM_PRCMTABLE[35])
2072 #endif
2073 #if defined(TARGET_IS_CC3200)
2074 #define ROM_PRCMRTCInUseGet                                                   \
2075         ((tBoolean (*)(void))ROM_PRCMTABLE[36])
2076 #endif
2077 #if defined(TARGET_IS_CC3200)
2078 #define ROM_PRCMRTCSet                                                        \
2079         ((void (*)(unsigned long ulSecs,                                      \
2080                    unsigned short usMsec))ROM_PRCMTABLE[37])
2081 #endif
2082 #if defined(TARGET_IS_CC3200)
2083 #define ROM_PRCMRTCGet                                                        \
2084         ((void (*)(unsigned long *ulSecs,                                     \
2085                    unsigned short *usMsec))ROM_PRCMTABLE[38])
2086 #endif
2087 #if defined(TARGET_IS_CC3200)
2088 #define ROM_PRCMRTCMatchSet                                                   \
2089         ((void (*)(unsigned long ulSecs,                                      \
2090                    unsigned short usMsec))ROM_PRCMTABLE[39])
2091 #endif
2092 #if defined(TARGET_IS_CC3200)
2093 #define ROM_PRCMRTCMatchGet                                                   \
2094         ((void (*)(unsigned long *ulSecs,                                     \
2095                    unsigned short *usMsec))ROM_PRCMTABLE[40])
2096 #endif
2097 #if defined(TARGET_IS_CC3200)
2098 #define ROM_PRCMLPDSRestoreInfoSet                                            \
2099         ((void (*)(unsigned long ulRestoreSP,                                 \
2100                    unsigned long ulRestorePC))ROM_PRCMTABLE[41])
2101 #endif
2102 
2103 //*****************************************************************************
2104 //
2105 // Macros for calling ROM functions in the HWSPINLOCK API.
2106 //
2107 //*****************************************************************************
2108 #if defined(TARGET_IS_CC3200)
2109 #define ROM_HwSpinLockAcquire                                                 \
2110         ((void (*)(uint32_t ui32LockID))ROM_HWSPINLOCKTABLE[0])
2111 #endif
2112 #if defined(TARGET_IS_CC3200)
2113 #define ROM_HwSpinLockTryAcquire                                              \
2114         ((int32_t (*)(uint32_t ui32LockID,                                    \
2115                       uint32_t ui32Retry))ROM_HWSPINLOCKTABLE[1])
2116 #endif
2117 #if defined(TARGET_IS_CC3200)
2118 #define ROM_HwSpinLockRelease                                                 \
2119         ((void (*)(uint32_t ui32LockID))ROM_HWSPINLOCKTABLE[2])
2120 #endif
2121 #if defined(TARGET_IS_CC3200)
2122 #define ROM_HwSpinLockTest                                                    \
2123         ((uint32_t (*)(uint32_t ui32LockID,                                   \
2124                        bool bCurrentStatus))ROM_HWSPINLOCKTABLE[3])
2125 #endif
2126 
2127 //*****************************************************************************
2128 //
2129 // Macros for calling ROM functions in the ADC API.
2130 //
2131 //*****************************************************************************
2132 #if defined(TARGET_IS_CC3200)
2133 #define ROM_ADCEnable                                                         \
2134         ((void (*)(unsigned long ulBase))ROM_ADCTABLE[0])
2135 #endif
2136 #if defined(TARGET_IS_CC3200)
2137 #define ROM_ADCDisable                                                        \
2138         ((void (*)(unsigned long ulBase))ROM_ADCTABLE[1])
2139 #endif
2140 #if defined(TARGET_IS_CC3200)
2141 #define ROM_ADCChannelEnable                                                  \
2142         ((void (*)(unsigned long ulBase,                                      \
2143                   unsigned long ulChannel))ROM_ADCTABLE[2])
2144 #endif
2145 #if defined(TARGET_IS_CC3200)
2146 #define ROM_ADCChannelDisable                                                 \
2147         ((void (*)(unsigned long ulBase,                                      \
2148                   unsigned long ulChannel))ROM_ADCTABLE[3])
2149 #endif
2150 #if defined(TARGET_IS_CC3200)
2151 #define ROM_ADCIntRegister                                                    \
2152         ((void (*)(unsigned long ulBase,                                      \
2153                    unsigned long ulChannel,                                   \
2154                    void (*pfnHandler)(void)))ROM_ADCTABLE[4])
2155 #endif
2156 #if defined(TARGET_IS_CC3200)
2157 #define ROM_ADCIntUnregister                                                  \
2158         ((void (*)(unsigned long ulBase,                                      \
2159                    unsigned long ulChannel))ROM_ADCTABLE[5])
2160 #endif
2161 #if defined(TARGET_IS_CC3200)
2162 #define ROM_ADCIntEnable                                                      \
2163         ((void (*)(unsigned long ulBase,                                      \
2164                    unsigned long ulChannel,                                   \
2165                    unsigned long ulIntFlags))ROM_ADCTABLE[6])
2166 #endif
2167 #if defined(TARGET_IS_CC3200)
2168 #define ROM_ADCIntDisable                                                     \
2169         ((void (*)(unsigned long ulBase,                                      \
2170                    unsigned long ulChannel,                                   \
2171                    unsigned long ulIntFlags))ROM_ADCTABLE[7])
2172 #endif
2173 #if defined(TARGET_IS_CC3200)
2174 #define ROM_ADCIntStatus                                                      \
2175         ((unsigned long (*)(unsigned long ulBase,                             \
2176                            unsigned long ulChannel))ROM_ADCTABLE[8])
2177 #endif
2178 #if defined(TARGET_IS_CC3200)
2179 #define ROM_ADCIntClear                                                       \
2180         ((void (*)(unsigned long ulBase,                                      \
2181                    unsigned long ulChannel,                                   \
2182                    unsigned long ulIntFlags))ROM_ADCTABLE[9])
2183 #endif
2184 #if defined(TARGET_IS_CC3200)
2185 #define ROM_ADCDMAEnable                                                      \
2186         ((void (*)(unsigned long ulBase,                                      \
2187                    unsigned long ulChannel))ROM_ADCTABLE[10])
2188 #endif
2189 #if defined(TARGET_IS_CC3200)
2190 #define ROM_ADCDMADisable                                                     \
2191         ((void (*)(unsigned long ulBase,                                      \
2192                    unsigned long ulChannel))ROM_ADCTABLE[11])
2193 #endif
2194 #if defined(TARGET_IS_CC3200)
2195 #define ROM_ADCChannelGainSet                                                 \
2196         ((void (*)(unsigned long ulBase,                                      \
2197                    unsigned long ulChannel,                                   \
2198                    unsigned char ucGain))ROM_ADCTABLE[12])
2199 #endif
2200 #if defined(TARGET_IS_CC3200)
2201 #define ROM_ADCChannleGainGet                                                 \
2202         ((unsigned char (*)(unsigned long ulBase,                             \
2203                             unsigned long ulChannel))ROM_ADCTABLE[13])
2204 #endif
2205 #if defined(TARGET_IS_CC3200)
2206 #define ROM_ADCTimerConfig                                                    \
2207         ((void (*)(unsigned long ulBase,                                      \
2208                    unsigned long ulValue))ROM_ADCTABLE[14])
2209 #endif
2210 #if defined(TARGET_IS_CC3200)
2211 #define ROM_ADCTimerEnable                                                    \
2212         ((void (*)(unsigned long ulBase))ROM_ADCTABLE[15])
2213 #endif
2214 #if defined(TARGET_IS_CC3200)
2215 #define ROM_ADCTimerDisable                                                   \
2216         ((void (*)(unsigned long ulBase))ROM_ADCTABLE[16])
2217 #endif
2218 #if defined(TARGET_IS_CC3200)
2219 #define ROM_ADCTimerReset                                                     \
2220         ((void (*)(unsigned long ulBase))ROM_ADCTABLE[17])
2221 #endif
2222 #if defined(TARGET_IS_CC3200)
2223 #define ROM_ADCTimerValueGet                                                  \
2224         ((unsigned long (*)(unsigned long ulBase))ROM_ADCTABLE[18])
2225 #endif
2226 #if defined(TARGET_IS_CC3200)
2227 #define ROM_ADCFIFOLvlGet                                                     \
2228         ((unsigned char (*)(unsigned long ulBase,                             \
2229                             unsigned long ulChannel))ROM_ADCTABLE[19])
2230 #endif
2231 #if defined(TARGET_IS_CC3200)
2232 #define ROM_ADCFIFORead                                                       \
2233         ((unsigned long (*)(unsigned long ulBase,                             \
2234                             unsigned long ulChannel))ROM_ADCTABLE[20])
2235 #endif
2236 
2237 #endif // __ROM_H__
2238