CC3200 Peripheral Driver Library User's Guide  1.2.0
rom.h
1 //*****************************************************************************
2 //
3 // rom.h
4 //
5 // Macros to facilitate calling functions in the ROM.
6 //
7 // Copyright (C) 2014 Texas Instruments Incorporated - https://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__