rom.h
Go to the documentation of this file.
1 //*****************************************************************************
2 //
3 // rom.h - Macros to facilitate calling functions in the ROM.
4 //
5 // Copyright (c) 2007-2017 Texas Instruments Incorporated. All rights reserved.
6 // Software License Agreement
7 //
8 // Redistribution and use in source and binary forms, with or without
9 // modification, are permitted provided that the following conditions
10 // are met:
11 //
12 // Redistributions of source code must retain the above copyright
13 // notice, this list of conditions and the following disclaimer.
14 //
15 // Redistributions in binary form must reproduce the above copyright
16 // notice, this list of conditions and the following disclaimer in the
17 // documentation and/or other materials provided with the
18 // distribution.
19 //
20 // Neither the name of Texas Instruments Incorporated nor the names of
21 // its contributors may be used to endorse or promote products derived
22 // from this software without specific prior written permission.
23 //
24 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
25 // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
26 // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
27 // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
28 // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
29 // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
30 // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
31 // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
32 // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
33 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
34 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
35 //
36 //*****************************************************************************
37 
38 #ifndef __DRIVERLIB_ROM_H__
39 #define __DRIVERLIB_ROM_H__
40 
41 #include <stdint.h>
42 #include <stdbool.h>
43 
44 //*****************************************************************************
45 //
46 // Pointers to the main API tables.
47 //
48 //*****************************************************************************
49 #define ROM_APITABLE ((uint32_t *)0x01000010)
50 #define ROM_VERSION (ROM_APITABLE[0])
51 #define ROM_UARTTABLE ((uint32_t *)(ROM_APITABLE[1]))
52 #define ROM_SSITABLE ((uint32_t *)(ROM_APITABLE[2]))
53 #define ROM_I2CTABLE ((uint32_t *)(ROM_APITABLE[3]))
54 #define ROM_GPIOTABLE ((uint32_t *)(ROM_APITABLE[4]))
55 #define ROM_ADCTABLE ((uint32_t *)(ROM_APITABLE[5]))
56 #define ROM_COMPARATORTABLE ((uint32_t *)(ROM_APITABLE[6]))
57 #define ROM_FLASHTABLE ((uint32_t *)(ROM_APITABLE[7]))
58 #define ROM_PWMTABLE ((uint32_t *)(ROM_APITABLE[8]))
59 #define ROM_QEITABLE ((uint32_t *)(ROM_APITABLE[9]))
60 #define ROM_SYSTICKTABLE ((uint32_t *)(ROM_APITABLE[10]))
61 #define ROM_TIMERTABLE ((uint32_t *)(ROM_APITABLE[11]))
62 #define ROM_WATCHDOGTABLE ((uint32_t *)(ROM_APITABLE[12]))
63 #define ROM_SYSCTLTABLE ((uint32_t *)(ROM_APITABLE[13]))
64 #define ROM_INTERRUPTTABLE ((uint32_t *)(ROM_APITABLE[14]))
65 #define ROM_USBTABLE ((uint32_t *)(ROM_APITABLE[16]))
66 #define ROM_UDMATABLE ((uint32_t *)(ROM_APITABLE[17]))
67 #define ROM_CANTABLE ((uint32_t *)(ROM_APITABLE[18]))
68 #define ROM_HIBERNATETABLE ((uint32_t *)(ROM_APITABLE[19]))
69 #define ROM_MPUTABLE ((uint32_t *)(ROM_APITABLE[20]))
70 #define ROM_SOFTWARETABLE ((uint32_t *)(ROM_APITABLE[21]))
71 #define ROM_EPITABLE ((uint32_t *)(ROM_APITABLE[23]))
72 #define ROM_EEPROMTABLE ((uint32_t *)(ROM_APITABLE[24]))
73 #define ROM_FPUTABLE ((uint32_t *)(ROM_APITABLE[26]))
74 #define ROM_SMBUSTABLE ((uint32_t *)(ROM_APITABLE[29]))
75 #define ROM_SYSEXCTABLE ((uint32_t *)(ROM_APITABLE[30]))
76 #define ROM_ONEWIRETABLE ((uint32_t *)(ROM_APITABLE[34]))
77 #define ROM_SPIFLASHTABLE ((uint32_t *)(ROM_APITABLE[38]))
78 #define ROM_LCDTABLE ((uint32_t *)(ROM_APITABLE[41]))
79 #define ROM_EMACTABLE ((uint32_t *)(ROM_APITABLE[42]))
80 #define ROM_AESTABLE ((uint32_t *)(ROM_APITABLE[43]))
81 #define ROM_CRCTABLE ((uint32_t *)(ROM_APITABLE[44]))
82 #define ROM_DESTABLE ((uint32_t *)(ROM_APITABLE[45]))
83 #define ROM_SHAMD5TABLE ((uint32_t *)(ROM_APITABLE[46]))
84 
85 //*****************************************************************************
86 //
87 // Macros for calling ROM functions in the ADC API.
88 //
89 //*****************************************************************************
90 #define ROM_ADCSequenceDataGet \
91  ((int32_t (*)(uint32_t ui32Base, \
92  uint32_t ui32SequenceNum, \
93  uint32_t *pui32Buffer))ROM_ADCTABLE[0])
94 #define ROM_ADCIntDisable \
95  ((void (*)(uint32_t ui32Base, \
96  uint32_t ui32SequenceNum))ROM_ADCTABLE[1])
97 #define ROM_ADCIntEnable \
98  ((void (*)(uint32_t ui32Base, \
99  uint32_t ui32SequenceNum))ROM_ADCTABLE[2])
100 #define ROM_ADCIntStatus \
101  ((uint32_t (*)(uint32_t ui32Base, \
102  uint32_t ui32SequenceNum, \
103  bool bMasked))ROM_ADCTABLE[3])
104 #define ROM_ADCIntClear \
105  ((void (*)(uint32_t ui32Base, \
106  uint32_t ui32SequenceNum))ROM_ADCTABLE[4])
107 #define ROM_ADCSequenceEnable \
108  ((void (*)(uint32_t ui32Base, \
109  uint32_t ui32SequenceNum))ROM_ADCTABLE[5])
110 #define ROM_ADCSequenceDisable \
111  ((void (*)(uint32_t ui32Base, \
112  uint32_t ui32SequenceNum))ROM_ADCTABLE[6])
113 #define ROM_ADCSequenceConfigure \
114  ((void (*)(uint32_t ui32Base, \
115  uint32_t ui32SequenceNum, \
116  uint32_t ui32Trigger, \
117  uint32_t ui32Priority))ROM_ADCTABLE[7])
118 #define ROM_ADCSequenceStepConfigure \
119  ((void (*)(uint32_t ui32Base, \
120  uint32_t ui32SequenceNum, \
121  uint32_t ui32Step, \
122  uint32_t ui32Config))ROM_ADCTABLE[8])
123 #define ROM_ADCSequenceOverflow \
124  ((int32_t (*)(uint32_t ui32Base, \
125  uint32_t ui32SequenceNum))ROM_ADCTABLE[9])
126 #define ROM_ADCSequenceOverflowClear \
127  ((void (*)(uint32_t ui32Base, \
128  uint32_t ui32SequenceNum))ROM_ADCTABLE[10])
129 #define ROM_ADCSequenceUnderflow \
130  ((int32_t (*)(uint32_t ui32Base, \
131  uint32_t ui32SequenceNum))ROM_ADCTABLE[11])
132 #define ROM_ADCSequenceUnderflowClear \
133  ((void (*)(uint32_t ui32Base, \
134  uint32_t ui32SequenceNum))ROM_ADCTABLE[12])
135 #define ROM_ADCProcessorTrigger \
136  ((void (*)(uint32_t ui32Base, \
137  uint32_t ui32SequenceNum))ROM_ADCTABLE[13])
138 #define ROM_ADCHardwareOversampleConfigure \
139  ((void (*)(uint32_t ui32Base, \
140  uint32_t ui32Factor))ROM_ADCTABLE[14])
141 #define ROM_ADCComparatorConfigure \
142  ((void (*)(uint32_t ui32Base, \
143  uint32_t ui32Comp, \
144  uint32_t ui32Config))ROM_ADCTABLE[15])
145 #define ROM_ADCComparatorRegionSet \
146  ((void (*)(uint32_t ui32Base, \
147  uint32_t ui32Comp, \
148  uint32_t ui32LowRef, \
149  uint32_t ui32HighRef))ROM_ADCTABLE[16])
150 #define ROM_ADCComparatorReset \
151  ((void (*)(uint32_t ui32Base, \
152  uint32_t ui32Comp, \
153  bool bTrigger, \
154  bool bInterrupt))ROM_ADCTABLE[17])
155 #define ROM_ADCComparatorIntDisable \
156  ((void (*)(uint32_t ui32Base, \
157  uint32_t ui32SequenceNum))ROM_ADCTABLE[18])
158 #define ROM_ADCComparatorIntEnable \
159  ((void (*)(uint32_t ui32Base, \
160  uint32_t ui32SequenceNum))ROM_ADCTABLE[19])
161 #define ROM_ADCComparatorIntStatus \
162  ((uint32_t (*)(uint32_t ui32Base))ROM_ADCTABLE[20])
163 #define ROM_ADCComparatorIntClear \
164  ((void (*)(uint32_t ui32Base, \
165  uint32_t ui32Status))ROM_ADCTABLE[21])
166 #define ROM_ADCReferenceSet \
167  ((void (*)(uint32_t ui32Base, \
168  uint32_t ui32Ref))ROM_ADCTABLE[22])
169 #define ROM_ADCReferenceGet \
170  ((uint32_t (*)(uint32_t ui32Base))ROM_ADCTABLE[23])
171 #define ROM_ADCPhaseDelaySet \
172  ((void (*)(uint32_t ui32Base, \
173  uint32_t ui32Phase))ROM_ADCTABLE[24])
174 #define ROM_ADCPhaseDelayGet \
175  ((uint32_t (*)(uint32_t ui32Base))ROM_ADCTABLE[25])
176 #define ROM_ADCIntDisableEx \
177  ((void (*)(uint32_t ui32Base, \
178  uint32_t ui32IntFlags))ROM_ADCTABLE[29])
179 #define ROM_ADCIntEnableEx \
180  ((void (*)(uint32_t ui32Base, \
181  uint32_t ui32IntFlags))ROM_ADCTABLE[30])
182 #define ROM_ADCIntStatusEx \
183  ((uint32_t (*)(uint32_t ui32Base, \
184  bool bMasked))ROM_ADCTABLE[31])
185 #define ROM_ADCSequenceDMAEnable \
186  ((void (*)(uint32_t ui32Base, \
187  uint32_t ui32SequenceNum))ROM_ADCTABLE[32])
188 #define ROM_ADCSequenceDMADisable \
189  ((void (*)(uint32_t ui32Base, \
190  uint32_t ui32SequenceNum))ROM_ADCTABLE[33])
191 #define ROM_ADCBusy \
192  ((bool (*)(uint32_t ui32Base))ROM_ADCTABLE[34])
193 
194 //*****************************************************************************
195 //
196 // Macros for calling ROM functions in the AES API.
197 //
198 //*****************************************************************************
199 #define ROM_AESIntStatus \
200  ((uint32_t (*)(uint32_t ui32Base, \
201  bool bMasked))ROM_AESTABLE[0])
202 #define ROM_AESAuthLengthSet \
203  ((void (*)(uint32_t ui32Base, \
204  uint32_t ui32Length))ROM_AESTABLE[1])
205 #define ROM_AESConfigSet \
206  ((void (*)(uint32_t ui32Base, \
207  uint32_t ui32Config))ROM_AESTABLE[2])
208 #define ROM_AESDataAuth \
209  ((bool (*)(uint32_t ui32Base, \
210  uint32_t *pui32Src, \
211  uint32_t ui32Length, \
212  uint32_t *pui32Tag))ROM_AESTABLE[3])
213 #define ROM_AESDataProcess \
214  ((bool (*)(uint32_t ui32Base, \
215  uint32_t *pui32Src, \
216  uint32_t *pui32Dest, \
217  uint32_t ui32Length))ROM_AESTABLE[4])
218 #define ROM_AESDataProcessAuth \
219  ((bool (*)(uint32_t ui32Base, \
220  uint32_t *pui32Src, \
221  uint32_t *pui32Dest, \
222  uint32_t ui32Length, \
223  uint32_t *pui32AuthSrc, \
224  uint32_t ui32AuthLength, \
225  uint32_t *pui32Tag))ROM_AESTABLE[5])
226 #define ROM_AESDataRead \
227  ((void (*)(uint32_t ui32Base, \
228  uint32_t *pui32Dest))ROM_AESTABLE[6])
229 #define ROM_AESDataReadNonBlocking \
230  ((bool (*)(uint32_t ui32Base, \
231  uint32_t *pui32Dest))ROM_AESTABLE[7])
232 #define ROM_AESDataWrite \
233  ((void (*)(uint32_t ui32Base, \
234  uint32_t *pui32Src))ROM_AESTABLE[8])
235 #define ROM_AESDataWriteNonBlocking \
236  ((bool (*)(uint32_t ui32Base, \
237  uint32_t *pui32Src))ROM_AESTABLE[9])
238 #define ROM_AESDMADisable \
239  ((void (*)(uint32_t ui32Base, \
240  uint32_t ui32Flags))ROM_AESTABLE[10])
241 #define ROM_AESDMAEnable \
242  ((void (*)(uint32_t ui32Base, \
243  uint32_t ui32Flags))ROM_AESTABLE[11])
244 #define ROM_AESIntClear \
245  ((void (*)(uint32_t ui32Base, \
246  uint32_t ui32IntFlags))ROM_AESTABLE[12])
247 #define ROM_AESIntDisable \
248  ((void (*)(uint32_t ui32Base, \
249  uint32_t ui32IntFlags))ROM_AESTABLE[13])
250 #define ROM_AESIntEnable \
251  ((void (*)(uint32_t ui32Base, \
252  uint32_t ui32IntFlags))ROM_AESTABLE[14])
253 #define ROM_AESIVSet \
254  ((void (*)(uint32_t ui32Base, \
255  uint32_t *pui32IVdata))ROM_AESTABLE[15])
256 #define ROM_AESKey1Set \
257  ((void (*)(uint32_t ui32Base, \
258  uint32_t *pui32Key, \
259  uint32_t ui32Keysize))ROM_AESTABLE[16])
260 #define ROM_AESKey2Set \
261  ((void (*)(uint32_t ui32Base, \
262  uint32_t *pui32Key, \
263  uint32_t ui32Keysize))ROM_AESTABLE[17])
264 #define ROM_AESKey3Set \
265  ((void (*)(uint32_t ui32Base, \
266  uint32_t *pui32Key))ROM_AESTABLE[18])
267 #define ROM_AESLengthSet \
268  ((void (*)(uint32_t ui32Base, \
269  uint64_t ui64Length))ROM_AESTABLE[19])
270 #define ROM_AESReset \
271  ((void (*)(uint32_t ui32Base))ROM_AESTABLE[20])
272 #define ROM_AESTagRead \
273  ((void (*)(uint32_t ui32Base, \
274  uint32_t *pui32TagData))ROM_AESTABLE[21])
275 #define ROM_AESIVRead \
276  ((void (*)(uint32_t ui32Base, \
277  uint32_t *pui32IVdata))ROM_AESTABLE[22])
278 
279 //*****************************************************************************
280 //
281 // Macros for calling ROM functions in the CAN API.
282 //
283 //*****************************************************************************
284 #define ROM_CANIntClear \
285  ((void (*)(uint32_t ui32Base, \
286  uint32_t ui32IntClr))ROM_CANTABLE[0])
287 #define ROM_CANInit \
288  ((void (*)(uint32_t ui32Base))ROM_CANTABLE[1])
289 #define ROM_CANEnable \
290  ((void (*)(uint32_t ui32Base))ROM_CANTABLE[2])
291 #define ROM_CANDisable \
292  ((void (*)(uint32_t ui32Base))ROM_CANTABLE[3])
293 #define ROM_CANBitTimingSet \
294  ((void (*)(uint32_t ui32Base, \
295  tCANBitClkParms *psClkParms))ROM_CANTABLE[4])
296 #define ROM_CANBitTimingGet \
297  ((void (*)(uint32_t ui32Base, \
298  tCANBitClkParms *psClkParms))ROM_CANTABLE[5])
299 #define ROM_CANMessageSet \
300  ((void (*)(uint32_t ui32Base, \
301  uint32_t ui32ObjID, \
302  tCANMsgObject *psMsgObject, \
303  tMsgObjType eMsgType))ROM_CANTABLE[6])
304 #define ROM_CANMessageGet \
305  ((void (*)(uint32_t ui32Base, \
306  uint32_t ui32ObjID, \
307  tCANMsgObject *psMsgObject, \
308  bool bClrPendingInt))ROM_CANTABLE[7])
309 #define ROM_CANStatusGet \
310  ((uint32_t (*)(uint32_t ui32Base, \
311  tCANStsReg eStatusReg))ROM_CANTABLE[8])
312 #define ROM_CANMessageClear \
313  ((void (*)(uint32_t ui32Base, \
314  uint32_t ui32ObjID))ROM_CANTABLE[9])
315 #define ROM_CANIntEnable \
316  ((void (*)(uint32_t ui32Base, \
317  uint32_t ui32IntFlags))ROM_CANTABLE[10])
318 #define ROM_CANIntDisable \
319  ((void (*)(uint32_t ui32Base, \
320  uint32_t ui32IntFlags))ROM_CANTABLE[11])
321 #define ROM_CANIntStatus \
322  ((uint32_t (*)(uint32_t ui32Base, \
323  tCANIntStsReg eIntStsReg))ROM_CANTABLE[12])
324 #define ROM_CANRetryGet \
325  ((bool (*)(uint32_t ui32Base))ROM_CANTABLE[13])
326 #define ROM_CANRetrySet \
327  ((void (*)(uint32_t ui32Base, \
328  bool bAutoRetry))ROM_CANTABLE[14])
329 #define ROM_CANErrCntrGet \
330  ((bool (*)(uint32_t ui32Base, \
331  uint32_t *pui32RxCount, \
332  uint32_t *pui32TxCount))ROM_CANTABLE[15])
333 #define ROM_CANBitRateSet \
334  ((uint32_t (*)(uint32_t ui32Base, \
335  uint32_t ui32SourceClock, \
336  uint32_t ui32BitRate))ROM_CANTABLE[16])
337 
338 //*****************************************************************************
339 //
340 // Macros for calling ROM functions in the Comparator API.
341 //
342 //*****************************************************************************
343 #define ROM_ComparatorIntClear \
344  ((void (*)(uint32_t ui32Base, \
345  uint32_t ui32Comp))ROM_COMPARATORTABLE[0])
346 #define ROM_ComparatorConfigure \
347  ((void (*)(uint32_t ui32Base, \
348  uint32_t ui32Comp, \
349  uint32_t ui32Config))ROM_COMPARATORTABLE[1])
350 #define ROM_ComparatorRefSet \
351  ((void (*)(uint32_t ui32Base, \
352  uint32_t ui32Ref))ROM_COMPARATORTABLE[2])
353 #define ROM_ComparatorValueGet \
354  ((bool (*)(uint32_t ui32Base, \
355  uint32_t ui32Comp))ROM_COMPARATORTABLE[3])
356 #define ROM_ComparatorIntEnable \
357  ((void (*)(uint32_t ui32Base, \
358  uint32_t ui32Comp))ROM_COMPARATORTABLE[4])
359 #define ROM_ComparatorIntDisable \
360  ((void (*)(uint32_t ui32Base, \
361  uint32_t ui32Comp))ROM_COMPARATORTABLE[5])
362 #define ROM_ComparatorIntStatus \
363  ((bool (*)(uint32_t ui32Base, \
364  uint32_t ui32Comp, \
365  bool bMasked))ROM_COMPARATORTABLE[6])
366 
367 //*****************************************************************************
368 //
369 // Macros for calling ROM functions in the CRC API.
370 //
371 //*****************************************************************************
372 #define ROM_CRCConfigSet \
373  ((void (*)(uint32_t ui32Base, \
374  uint32_t ui32CRCConfig))ROM_CRCTABLE[0])
375 #define ROM_CRCDataProcess \
376  ((uint32_t (*)(uint32_t ui32Base, \
377  uint32_t *pui32DataIn, \
378  uint32_t ui32DataLength, \
379  bool bPPResult))ROM_CRCTABLE[1])
380 #define ROM_CRCDataWrite \
381  ((void (*)(uint32_t ui32Base, \
382  uint32_t ui32Data))ROM_CRCTABLE[2])
383 #define ROM_CRCResultRead \
384  ((uint32_t (*)(uint32_t ui32Base, \
385  bool bPPResult))ROM_CRCTABLE[3])
386 #define ROM_CRCSeedSet \
387  ((void (*)(uint32_t ui32Base, \
388  uint32_t ui32Seed))ROM_CRCTABLE[4])
389 
390 //*****************************************************************************
391 //
392 // Macros for calling ROM functions in the DES API.
393 //
394 //*****************************************************************************
395 #define ROM_DESIntStatus \
396  ((uint32_t (*)(uint32_t ui32Base, \
397  bool bMasked))ROM_DESTABLE[0])
398 #define ROM_DESConfigSet \
399  ((void (*)(uint32_t ui32Base, \
400  uint32_t ui32Config))ROM_DESTABLE[1])
401 #define ROM_DESDataRead \
402  ((void (*)(uint32_t ui32Base, \
403  uint32_t *pui32Dest))ROM_DESTABLE[2])
404 #define ROM_DESDataReadNonBlocking \
405  ((bool (*)(uint32_t ui32Base, \
406  uint32_t *pui32Dest))ROM_DESTABLE[3])
407 #define ROM_DESDataProcess \
408  ((bool (*)(uint32_t ui32Base, \
409  uint32_t *pui32Src, \
410  uint32_t *pui32Dest, \
411  uint32_t ui32Length))ROM_DESTABLE[4])
412 #define ROM_DESDataWrite \
413  ((void (*)(uint32_t ui32Base, \
414  uint32_t *pui32Src))ROM_DESTABLE[5])
415 #define ROM_DESDataWriteNonBlocking \
416  ((bool (*)(uint32_t ui32Base, \
417  uint32_t *pui32Src))ROM_DESTABLE[6])
418 #define ROM_DESDMADisable \
419  ((void (*)(uint32_t ui32Base, \
420  uint32_t ui32Flags))ROM_DESTABLE[7])
421 #define ROM_DESDMAEnable \
422  ((void (*)(uint32_t ui32Base, \
423  uint32_t ui32Flags))ROM_DESTABLE[8])
424 #define ROM_DESIntClear \
425  ((void (*)(uint32_t ui32Base, \
426  uint32_t ui32IntFlags))ROM_DESTABLE[9])
427 #define ROM_DESIntDisable \
428  ((void (*)(uint32_t ui32Base, \
429  uint32_t ui32IntFlags))ROM_DESTABLE[10])
430 #define ROM_DESIntEnable \
431  ((void (*)(uint32_t ui32Base, \
432  uint32_t ui32IntFlags))ROM_DESTABLE[11])
433 #define ROM_DESIVSet \
434  ((bool (*)(uint32_t ui32Base, \
435  uint32_t *pui32IVdata))ROM_DESTABLE[12])
436 #define ROM_DESKeySet \
437  ((void (*)(uint32_t ui32Base, \
438  uint32_t *pui32Key))ROM_DESTABLE[13])
439 #define ROM_DESLengthSet \
440  ((void (*)(uint32_t ui32Base, \
441  uint32_t ui32Length))ROM_DESTABLE[14])
442 #define ROM_DESReset \
443  ((void (*)(uint32_t ui32Base))ROM_DESTABLE[15])
444 
445 //*****************************************************************************
446 //
447 // Macros for calling ROM functions in the EEPROM API.
448 //
449 //*****************************************************************************
450 #define ROM_EEPROMRead \
451  ((void (*)(uint32_t *pui32Data, \
452  uint32_t ui32Address, \
453  uint32_t ui32Count))ROM_EEPROMTABLE[0])
454 #define ROM_EEPROMBlockCountGet \
455  ((uint32_t (*)(void))ROM_EEPROMTABLE[1])
456 #define ROM_EEPROMBlockHide \
457  ((void (*)(uint32_t ui32Block))ROM_EEPROMTABLE[2])
458 #define ROM_EEPROMBlockLock \
459  ((uint32_t (*)(uint32_t ui32Block))ROM_EEPROMTABLE[3])
460 #define ROM_EEPROMBlockPasswordSet \
461  ((uint32_t (*)(uint32_t ui32Block, \
462  uint32_t *pui32Password, \
463  uint32_t ui32Count))ROM_EEPROMTABLE[4])
464 #define ROM_EEPROMBlockProtectGet \
465  ((uint32_t (*)(uint32_t ui32Block))ROM_EEPROMTABLE[5])
466 #define ROM_EEPROMBlockProtectSet \
467  ((uint32_t (*)(uint32_t ui32Block, \
468  uint32_t ui32Protect))ROM_EEPROMTABLE[6])
469 #define ROM_EEPROMBlockUnlock \
470  ((uint32_t (*)(uint32_t ui32Block, \
471  uint32_t *pui32Password, \
472  uint32_t ui32Count))ROM_EEPROMTABLE[7])
473 #define ROM_EEPROMIntClear \
474  ((void (*)(uint32_t ui32IntFlags))ROM_EEPROMTABLE[8])
475 #define ROM_EEPROMIntDisable \
476  ((void (*)(uint32_t ui32IntFlags))ROM_EEPROMTABLE[9])
477 #define ROM_EEPROMIntEnable \
478  ((void (*)(uint32_t ui32IntFlags))ROM_EEPROMTABLE[10])
479 #define ROM_EEPROMIntStatus \
480  ((uint32_t (*)(bool bMasked))ROM_EEPROMTABLE[11])
481 #define ROM_EEPROMProgram \
482  ((uint32_t (*)(uint32_t *pui32Data, \
483  uint32_t ui32Address, \
484  uint32_t ui32Count))ROM_EEPROMTABLE[13])
485 #define ROM_EEPROMProgramNonBlocking \
486  ((uint32_t (*)(uint32_t ui32Data, \
487  uint32_t ui32Address))ROM_EEPROMTABLE[14])
488 #define ROM_EEPROMSizeGet \
489  ((uint32_t (*)(void))ROM_EEPROMTABLE[15])
490 #define ROM_EEPROMStatusGet \
491  ((uint32_t (*)(void))ROM_EEPROMTABLE[16])
492 #define ROM_EEPROMInit \
493  ((uint32_t (*)(void))ROM_EEPROMTABLE[17])
494 
495 //*****************************************************************************
496 //
497 // Macros for calling ROM functions in the EPI API.
498 //
499 //*****************************************************************************
500 #define ROM_EPIIntStatus \
501  ((uint32_t (*)(uint32_t ui32Base, \
502  bool bMasked))ROM_EPITABLE[0])
503 #define ROM_EPIModeSet \
504  ((void (*)(uint32_t ui32Base, \
505  uint32_t ui32Mode))ROM_EPITABLE[1])
506 #define ROM_EPIDividerSet \
507  ((void (*)(uint32_t ui32Base, \
508  uint32_t ui32Divider))ROM_EPITABLE[2])
509 #define ROM_EPIConfigSDRAMSet \
510  ((void (*)(uint32_t ui32Base, \
511  uint32_t ui32Config, \
512  uint32_t ui32Refresh))ROM_EPITABLE[3])
513 #define ROM_EPIConfigGPModeSet \
514  ((void (*)(uint32_t ui32Base, \
515  uint32_t ui32Config, \
516  uint32_t ui32FrameCount, \
517  uint32_t ui32MaxWait))ROM_EPITABLE[4])
518 #define ROM_EPIConfigHB8Set \
519  ((void (*)(uint32_t ui32Base, \
520  uint32_t ui32Config, \
521  uint32_t ui32MaxWait))ROM_EPITABLE[5])
522 #define ROM_EPIConfigHB16Set \
523  ((void (*)(uint32_t ui32Base, \
524  uint32_t ui32Config, \
525  uint32_t ui32MaxWait))ROM_EPITABLE[6])
526 #define ROM_EPIAddressMapSet \
527  ((void (*)(uint32_t ui32Base, \
528  uint32_t ui32Map))ROM_EPITABLE[7])
529 #define ROM_EPINonBlockingReadConfigure \
530  ((void (*)(uint32_t ui32Base, \
531  uint32_t ui32Channel, \
532  uint32_t ui32DataSize, \
533  uint32_t ui32Address))ROM_EPITABLE[8])
534 #define ROM_EPINonBlockingReadStart \
535  ((void (*)(uint32_t ui32Base, \
536  uint32_t ui32Channel, \
537  uint32_t ui32Count))ROM_EPITABLE[9])
538 #define ROM_EPINonBlockingReadStop \
539  ((void (*)(uint32_t ui32Base, \
540  uint32_t ui32Channel))ROM_EPITABLE[10])
541 #define ROM_EPINonBlockingReadCount \
542  ((uint32_t (*)(uint32_t ui32Base, \
543  uint32_t ui32Channel))ROM_EPITABLE[11])
544 #define ROM_EPINonBlockingReadAvail \
545  ((uint32_t (*)(uint32_t ui32Base))ROM_EPITABLE[12])
546 #define ROM_EPINonBlockingReadGet32 \
547  ((uint32_t (*)(uint32_t ui32Base, \
548  uint32_t ui32Count, \
549  uint32_t *pui32Buf))ROM_EPITABLE[13])
550 #define ROM_EPINonBlockingReadGet16 \
551  ((uint32_t (*)(uint32_t ui32Base, \
552  uint32_t ui32Count, \
553  uint16_t *pui16Buf))ROM_EPITABLE[14])
554 #define ROM_EPINonBlockingReadGet8 \
555  ((uint32_t (*)(uint32_t ui32Base, \
556  uint32_t ui32Count, \
557  uint8_t *pui8Buf))ROM_EPITABLE[15])
558 #define ROM_EPIFIFOConfig \
559  ((void (*)(uint32_t ui32Base, \
560  uint32_t ui32Config))ROM_EPITABLE[16])
561 #define ROM_EPIWriteFIFOCountGet \
562  ((uint32_t (*)(uint32_t ui32Base))ROM_EPITABLE[17])
563 #define ROM_EPIIntEnable \
564  ((void (*)(uint32_t ui32Base, \
565  uint32_t ui32IntFlags))ROM_EPITABLE[18])
566 #define ROM_EPIIntDisable \
567  ((void (*)(uint32_t ui32Base, \
568  uint32_t ui32IntFlags))ROM_EPITABLE[19])
569 #define ROM_EPIIntErrorStatus \
570  ((uint32_t (*)(uint32_t ui32Base))ROM_EPITABLE[20])
571 #define ROM_EPIIntErrorClear \
572  ((void (*)(uint32_t ui32Base, \
573  uint32_t ui32ErrFlags))ROM_EPITABLE[21])
574 #define ROM_EPIDividerCSSet \
575  ((void (*)(uint32_t ui32Base, \
576  uint32_t ui32CS, \
577  uint32_t ui32Divider))ROM_EPITABLE[22])
578 #define ROM_EPIConfigHB8CSSet \
579  ((void (*)(uint32_t ui32Base, \
580  uint32_t ui32CS, \
581  uint32_t ui32Config))ROM_EPITABLE[24])
582 #define ROM_EPIConfigHB16CSSet \
583  ((void (*)(uint32_t ui32Base, \
584  uint32_t ui32CS, \
585  uint32_t ui32Config))ROM_EPITABLE[25])
586 #define ROM_EPIConfigHB8TimingSet \
587  ((void (*)(uint32_t ui32Base, \
588  uint32_t ui32CS, \
589  uint32_t ui32Config))ROM_EPITABLE[26])
590 #define ROM_EPIConfigHB16TimingSet \
591  ((void (*)(uint32_t ui32Base, \
592  uint32_t ui32CS, \
593  uint32_t ui32Config))ROM_EPITABLE[27])
594 #define ROM_EPIPSRAMConfigRegSet \
595  ((void (*)(uint32_t ui32Base, \
596  uint32_t ui32CS, \
597  uint32_t ui32CR))ROM_EPITABLE[28])
598 #define ROM_EPIPSRAMConfigRegRead \
599  ((void (*)(uint32_t ui32Base, \
600  uint32_t ui32CS))ROM_EPITABLE[29])
601 #define ROM_EPIPSRAMConfigRegGetNonBlocking \
602  ((bool (*)(uint32_t ui32Base, \
603  uint32_t ui32CS, \
604  uint32_t *pui32CR))ROM_EPITABLE[30])
605 #define ROM_EPIPSRAMConfigRegGet \
606  ((uint32_t (*)(uint32_t ui32Base, \
607  uint32_t ui32CS))ROM_EPITABLE[31])
608 
609 //*****************************************************************************
610 //
611 // Macros for calling ROM functions in the EMAC API.
612 //
613 //*****************************************************************************
614 #define ROM_EMACIntStatus \
615  ((uint32_t (*)(uint32_t ui32Base, \
616  bool bMasked))ROM_EMACTABLE[0])
617 #define ROM_EMACAddrGet \
618  ((void (*)(uint32_t ui32Base, \
619  uint32_t ui32Index, \
620  uint8_t *pui8MACAddr))ROM_EMACTABLE[1])
621 #define ROM_EMACAddrSet \
622  ((void (*)(uint32_t ui32Base, \
623  uint32_t ui32Index, \
624  const uint8_t *pui8MACAddr))ROM_EMACTABLE[2])
625 #define ROM_EMACConfigGet \
626  ((void (*)(uint32_t ui32Base, \
627  uint32_t *pui32Config, \
628  uint32_t *pui32Mode, \
629  uint32_t *pui32RxMaxFrameSize))ROM_EMACTABLE[3])
630 #define ROM_EMACConfigSet \
631  ((void (*)(uint32_t ui32Base, \
632  uint32_t ui32Config, \
633  uint32_t ui32ModeFlags, \
634  uint32_t ui32RxMaxFrameSize))ROM_EMACTABLE[4])
635 #define ROM_EMACDMAStateGet \
636  ((uint32_t (*)(uint32_t ui32Base))ROM_EMACTABLE[5])
637 #define ROM_EMACFrameFilterGet \
638  ((uint32_t (*)(uint32_t ui32Base))ROM_EMACTABLE[6])
639 #define ROM_EMACFrameFilterSet \
640  ((void (*)(uint32_t ui32Base, \
641  uint32_t ui32FilterOpts))ROM_EMACTABLE[7])
642 #define ROM_EMACInit \
643  ((void (*)(uint32_t ui32Base, \
644  uint32_t ui32SysClk, \
645  uint32_t ui32BusConfig, \
646  uint32_t ui32RxBurst, \
647  uint32_t ui32TxBurst, \
648  uint32_t ui32DescSkipSize))ROM_EMACTABLE[8])
649 #define ROM_EMACIntClear \
650  ((void (*)(uint32_t ui32Base, \
651  uint32_t ui32IntFlags))ROM_EMACTABLE[9])
652 #define ROM_EMACIntDisable \
653  ((void (*)(uint32_t ui32Base, \
654  uint32_t ui32IntFlags))ROM_EMACTABLE[10])
655 #define ROM_EMACIntEnable \
656  ((void (*)(uint32_t ui32Base, \
657  uint32_t ui32IntFlags))ROM_EMACTABLE[11])
658 #define ROM_EMACPHYConfigSet \
659  ((void (*)(uint32_t ui32Base, \
660  uint32_t ui32Config))ROM_EMACTABLE[12])
661 #define ROM_EMACPHYPowerOff \
662  ((void (*)(uint32_t ui32Base, \
663  uint8_t ui8PhyAddr))ROM_EMACTABLE[13])
664 #define ROM_EMACPHYPowerOn \
665  ((void (*)(uint32_t ui32Base, \
666  uint8_t ui8PhyAddr))ROM_EMACTABLE[14])
667 #define ROM_EMACPHYRead \
668  ((uint16_t (*)(uint32_t ui32Base, \
669  uint8_t ui8PhyAddr, \
670  uint8_t ui8RegAddr))ROM_EMACTABLE[15])
671 #define ROM_EMACPHYWrite \
672  ((void (*)(uint32_t ui32Base, \
673  uint8_t ui8PhyAddr, \
674  uint8_t ui8RegAddr, \
675  uint16_t ui16Data))ROM_EMACTABLE[16])
676 #define ROM_EMACReset \
677  ((void (*)(uint32_t ui32Base))ROM_EMACTABLE[17])
678 #define ROM_EMACRxDisable \
679  ((void (*)(uint32_t ui32Base))ROM_EMACTABLE[18])
680 #define ROM_EMACRxDMACurrentBufferGet \
681  ((uint8_t * (*)(uint32_t ui32Base))ROM_EMACTABLE[19])
682 #define ROM_EMACRxDMACurrentDescriptorGet \
683  ((tEMACDMADescriptor * (*)(uint32_t ui32Base))ROM_EMACTABLE[20])
684 #define ROM_EMACRxDMADescriptorListGet \
685  ((tEMACDMADescriptor * (*)(uint32_t ui32Base))ROM_EMACTABLE[21])
686 #define ROM_EMACRxDMADescriptorListSet \
687  ((void (*)(uint32_t ui32Base, \
688  tEMACDMADescriptor *pDescriptor))ROM_EMACTABLE[22])
689 #define ROM_EMACRxDMAPollDemand \
690  ((void (*)(uint32_t ui32Base))ROM_EMACTABLE[23])
691 #define ROM_EMACRxEnable \
692  ((void (*)(uint32_t ui32Base))ROM_EMACTABLE[24])
693 #define ROM_EMACRxWatchdogTimerSet \
694  ((void (*)(uint32_t ui32Base, \
695  uint8_t ui8Timeout))ROM_EMACTABLE[25])
696 #define ROM_EMACStatusGet \
697  ((uint32_t (*)(uint32_t ui32Base))ROM_EMACTABLE[26])
698 #define ROM_EMACTxDisable \
699  ((void (*)(uint32_t ui32Base))ROM_EMACTABLE[27])
700 #define ROM_EMACTxDMACurrentBufferGet \
701  ((uint8_t * (*)(uint32_t ui32Base))ROM_EMACTABLE[28])
702 #define ROM_EMACTxDMACurrentDescriptorGet \
703  ((tEMACDMADescriptor * (*)(uint32_t ui32Base))ROM_EMACTABLE[29])
704 #define ROM_EMACTxDMADescriptorListGet \
705  ((tEMACDMADescriptor * (*)(uint32_t ui32Base))ROM_EMACTABLE[30])
706 #define ROM_EMACTxDMADescriptorListSet \
707  ((void (*)(uint32_t ui32Base, \
708  tEMACDMADescriptor *pDescriptor))ROM_EMACTABLE[31])
709 #define ROM_EMACTxDMAPollDemand \
710  ((void (*)(uint32_t ui32Base))ROM_EMACTABLE[32])
711 #define ROM_EMACTxEnable \
712  ((void (*)(uint32_t ui32Base))ROM_EMACTABLE[33])
713 #define ROM_EMACTxFlush \
714  ((void (*)(uint32_t ui32Base))ROM_EMACTABLE[34])
715 #define ROM_EMACAddrFilterGet \
716  ((uint32_t (*)(uint32_t ui32Base, \
717  uint32_t ui32Index))ROM_EMACTABLE[35])
718 #define ROM_EMACAddrFilterSet \
719  ((void (*)(uint32_t ui32Base, \
720  uint32_t ui32Index, \
721  uint32_t ui32Config))ROM_EMACTABLE[36])
722 #define ROM_EMACHashFilterBitCalculate \
723  ((uint32_t (*)(uint8_t *pui8MACAddr))ROM_EMACTABLE[37])
724 #define ROM_EMACHashFilterGet \
725  ((void (*)(uint32_t ui32Base, \
726  uint32_t *pui32HashHi, \
727  uint32_t *pui32HashLo))ROM_EMACTABLE[38])
728 #define ROM_EMACHashFilterSet \
729  ((void (*)(uint32_t ui32Base, \
730  uint32_t ui32HashHi, \
731  uint32_t ui32HashLo))ROM_EMACTABLE[39])
732 #define ROM_EMACNumAddrGet \
733  ((uint32_t (*)(uint32_t ui32Base))ROM_EMACTABLE[40])
734 #define ROM_EMACPHYExtendedRead \
735  ((uint16_t (*)(uint32_t ui32Base, \
736  uint8_t ui8PhyAddr, \
737  uint16_t ui16RegAddr))ROM_EMACTABLE[41])
738 #define ROM_EMACPHYExtendedWrite \
739  ((void (*)(uint32_t ui32Base, \
740  uint8_t ui8PhyAddr, \
741  uint16_t ui16RegAddr, \
742  uint16_t ui16Data))ROM_EMACTABLE[42])
743 #define ROM_EMACPowerManagementControlGet \
744  ((uint32_t (*)(uint32_t ui32Base))ROM_EMACTABLE[43])
745 #define ROM_EMACPowerManagementControlSet \
746  ((void (*)(uint32_t ui32Base, \
747  uint32_t ui32Flags))ROM_EMACTABLE[44])
748 #define ROM_EMACPowerManagementStatusGet \
749  ((uint32_t (*)(uint32_t ui32Base))ROM_EMACTABLE[45])
750 #define ROM_EMACRemoteWakeUpFrameFilterGet \
751  ((void (*)(uint32_t ui32Base, \
752  tEMACWakeUpFrameFilter *pFilter))ROM_EMACTABLE[46])
753 #define ROM_EMACRemoteWakeUpFrameFilterSet \
754  ((void (*)(uint32_t ui32Base, \
755  const tEMACWakeUpFrameFilter *pFilter))ROM_EMACTABLE[47])
756 #define ROM_EMACTimestampAddendSet \
757  ((void (*)(uint32_t ui32Base, \
758  uint32_t ui32Seconds))ROM_EMACTABLE[48])
759 #define ROM_EMACTimestampConfigGet \
760  ((uint32_t (*)(uint32_t ui32Base, \
761  uint32_t *pui32SubSecondInc))ROM_EMACTABLE[49])
762 #define ROM_EMACTimestampConfigSet \
763  ((void (*)(uint32_t ui32Base, \
764  uint32_t ui32Config, \
765  uint32_t ui32SubSecondInc))ROM_EMACTABLE[50])
766 #define ROM_EMACTimestampDisable \
767  ((void (*)(uint32_t ui32Base))ROM_EMACTABLE[51])
768 #define ROM_EMACTimestampEnable \
769  ((void (*)(uint32_t ui32Base))ROM_EMACTABLE[52])
770 #define ROM_EMACTimestampIntStatus \
771  ((uint32_t (*)(uint32_t ui32Base))ROM_EMACTABLE[53])
772 #define ROM_EMACTimestampPPSCommand \
773  ((void (*)(uint32_t ui32Base, \
774  uint8_t ui8Cmd))ROM_EMACTABLE[54])
775 #define ROM_EMACTimestampPPSCommandModeSet \
776  ((void (*)(uint32_t ui32Base, \
777  uint32_t ui32Config))ROM_EMACTABLE[55])
778 #define ROM_EMACTimestampPPSPeriodSet \
779  ((void (*)(uint32_t ui32Base, \
780  uint32_t ui32Period, \
781  uint32_t ui32Width))ROM_EMACTABLE[56])
782 #define ROM_EMACTimestampPPSSimpleModeSet \
783  ((void (*)(uint32_t ui32Base, \
784  uint32_t ui32FreqConfig))ROM_EMACTABLE[57])
785 #define ROM_EMACTimestampSysTimeGet \
786  ((void (*)(uint32_t ui32Base, \
787  uint32_t *pui32Seconds, \
788  uint32_t *pui32SubSeconds))ROM_EMACTABLE[58])
789 #define ROM_EMACTimestampSysTimeSet \
790  ((void (*)(uint32_t ui32Base, \
791  uint32_t ui32Seconds, \
792  uint32_t ui32SubSeconds))ROM_EMACTABLE[59])
793 #define ROM_EMACTimestampSysTimeUpdate \
794  ((void (*)(uint32_t ui32Base, \
795  uint32_t ui32Seconds, \
796  uint32_t ui32SubSeconds, \
797  bool bInc))ROM_EMACTABLE[60])
798 #define ROM_EMACTimestampTargetIntDisable \
799  ((void (*)(uint32_t ui32Base))ROM_EMACTABLE[61])
800 #define ROM_EMACTimestampTargetIntEnable \
801  ((void (*)(uint32_t ui32Base))ROM_EMACTABLE[62])
802 #define ROM_EMACTimestampTargetSet \
803  ((void (*)(uint32_t ui32Base, \
804  uint32_t ui32Seconds, \
805  uint32_t ui32Nanoseconds))ROM_EMACTABLE[63])
806 #define ROM_EMACVLANHashFilterBitCalculate \
807  ((uint32_t (*)(uint16_t ui16Tag))ROM_EMACTABLE[64])
808 #define ROM_EMACVLANHashFilterGet \
809  ((uint32_t (*)(uint32_t ui32Base))ROM_EMACTABLE[65])
810 #define ROM_EMACVLANHashFilterSet \
811  ((void (*)(uint32_t ui32Base, \
812  uint32_t ui32Hash))ROM_EMACTABLE[66])
813 #define ROM_EMACVLANRxConfigGet \
814  ((uint32_t (*)(uint32_t ui32Base, \
815  uint16_t *pui16Tag))ROM_EMACTABLE[67])
816 #define ROM_EMACVLANRxConfigSet \
817  ((void (*)(uint32_t ui32Base, \
818  uint16_t ui16Tag, \
819  uint32_t ui32Config))ROM_EMACTABLE[68])
820 #define ROM_EMACVLANTxConfigGet \
821  ((uint32_t (*)(uint32_t ui32Base, \
822  uint16_t *pui16Tag))ROM_EMACTABLE[69])
823 #define ROM_EMACVLANTxConfigSet \
824  ((void (*)(uint32_t ui32Base, \
825  uint16_t ui16Tag, \
826  uint32_t ui32Config))ROM_EMACTABLE[70])
827 #define ROM_UpdateEMAC \
828  ((void (*)(uint32_t ui32Clock))ROM_EMACTABLE[71])
829 
830 //*****************************************************************************
831 //
832 // Macros for calling ROM functions in the Flash API.
833 //
834 //*****************************************************************************
835 #define ROM_FlashProgram \
836  ((int32_t (*)(uint32_t *pui32Data, \
837  uint32_t ui32Address, \
838  uint32_t ui32Count))ROM_FLASHTABLE[0])
839 #define ROM_FlashErase \
840  ((int32_t (*)(uint32_t ui32Address))ROM_FLASHTABLE[3])
841 #define ROM_FlashProtectGet \
842  ((tFlashProtection (*)(uint32_t ui32Address))ROM_FLASHTABLE[4])
843 #define ROM_FlashProtectSet \
844  ((int32_t (*)(uint32_t ui32Address, \
845  tFlashProtection eProtect))ROM_FLASHTABLE[5])
846 #define ROM_FlashProtectSave \
847  ((int32_t (*)(void))ROM_FLASHTABLE[6])
848 #define ROM_FlashUserGet \
849  ((int32_t (*)(uint32_t *pui32User0, \
850  uint32_t *pui32User1))ROM_FLASHTABLE[7])
851 #define ROM_FlashUserSet \
852  ((int32_t (*)(uint32_t ui32User0, \
853  uint32_t ui32User1))ROM_FLASHTABLE[8])
854 #define ROM_FlashUserSave \
855  ((int32_t (*)(void))ROM_FLASHTABLE[9])
856 #define ROM_FlashIntEnable \
857  ((void (*)(uint32_t ui32IntFlags))ROM_FLASHTABLE[10])
858 #define ROM_FlashIntDisable \
859  ((void (*)(uint32_t ui32IntFlags))ROM_FLASHTABLE[11])
860 #define ROM_FlashIntStatus \
861  ((uint32_t (*)(bool bMasked))ROM_FLASHTABLE[12])
862 #define ROM_FlashIntClear \
863  ((void (*)(uint32_t ui32IntFlags))ROM_FLASHTABLE[13])
864 
865 //*****************************************************************************
866 //
867 // Macros for calling ROM functions in the FPU API.
868 //
869 //*****************************************************************************
870 #define ROM_FPUEnable \
871  ((void (*)(void))ROM_FPUTABLE[0])
872 #define ROM_FPUDisable \
873  ((void (*)(void))ROM_FPUTABLE[1])
874 #define ROM_FPUFlushToZeroModeSet \
875  ((void (*)(uint32_t ui32Mode))ROM_FPUTABLE[2])
876 #define ROM_FPUHalfPrecisionModeSet \
877  ((void (*)(uint32_t ui32Mode))ROM_FPUTABLE[3])
878 #define ROM_FPULazyStackingEnable \
879  ((void (*)(void))ROM_FPUTABLE[4])
880 #define ROM_FPUNaNModeSet \
881  ((void (*)(uint32_t ui32Mode))ROM_FPUTABLE[5])
882 #define ROM_FPURoundingModeSet \
883  ((void (*)(uint32_t ui32Mode))ROM_FPUTABLE[6])
884 #define ROM_FPUStackingDisable \
885  ((void (*)(void))ROM_FPUTABLE[7])
886 #define ROM_FPUStackingEnable \
887  ((void (*)(void))ROM_FPUTABLE[8])
888 
889 //*****************************************************************************
890 //
891 // Macros for calling ROM functions in the GPIO API.
892 //
893 //*****************************************************************************
894 #define ROM_GPIOPinWrite \
895  ((void (*)(uint32_t ui32Port, \
896  uint8_t ui8Pins, \
897  uint8_t ui8Val))ROM_GPIOTABLE[0])
898 #define ROM_GPIODirModeSet \
899  ((void (*)(uint32_t ui32Port, \
900  uint8_t ui8Pins, \
901  uint32_t ui32PinIO))ROM_GPIOTABLE[1])
902 #define ROM_GPIODirModeGet \
903  ((uint32_t (*)(uint32_t ui32Port, \
904  uint8_t ui8Pin))ROM_GPIOTABLE[2])
905 #define ROM_GPIOIntTypeSet \
906  ((void (*)(uint32_t ui32Port, \
907  uint8_t ui8Pins, \
908  uint32_t ui32IntType))ROM_GPIOTABLE[3])
909 #define ROM_GPIOIntTypeGet \
910  ((uint32_t (*)(uint32_t ui32Port, \
911  uint8_t ui8Pin))ROM_GPIOTABLE[4])
912 #define ROM_GPIOPadConfigGet \
913  ((void (*)(uint32_t ui32Port, \
914  uint8_t ui8Pin, \
915  uint32_t *pui32Strength, \
916  uint32_t *pui32PadType))ROM_GPIOTABLE[6])
917 #define ROM_GPIOPinRead \
918  ((int32_t (*)(uint32_t ui32Port, \
919  uint8_t ui8Pins))ROM_GPIOTABLE[11])
920 #define ROM_GPIOPinTypeComparator \
921  ((void (*)(uint32_t ui32Port, \
922  uint8_t ui8Pins))ROM_GPIOTABLE[13])
923 #define ROM_GPIOPinTypeGPIOInput \
924  ((void (*)(uint32_t ui32Port, \
925  uint8_t ui8Pins))ROM_GPIOTABLE[14])
926 #define ROM_GPIOPinTypeGPIOOutput \
927  ((void (*)(uint32_t ui32Port, \
928  uint8_t ui8Pins))ROM_GPIOTABLE[15])
929 #define ROM_GPIOPinTypeI2C \
930  ((void (*)(uint32_t ui32Port, \
931  uint8_t ui8Pins))ROM_GPIOTABLE[16])
932 #define ROM_GPIOPinTypePWM \
933  ((void (*)(uint32_t ui32Port, \
934  uint8_t ui8Pins))ROM_GPIOTABLE[17])
935 #define ROM_GPIOPinTypeQEI \
936  ((void (*)(uint32_t ui32Port, \
937  uint8_t ui8Pins))ROM_GPIOTABLE[18])
938 #define ROM_GPIOPinTypeSSI \
939  ((void (*)(uint32_t ui32Port, \
940  uint8_t ui8Pins))ROM_GPIOTABLE[19])
941 #define ROM_GPIOPinTypeTimer \
942  ((void (*)(uint32_t ui32Port, \
943  uint8_t ui8Pins))ROM_GPIOTABLE[20])
944 #define ROM_GPIOPinTypeUART \
945  ((void (*)(uint32_t ui32Port, \
946  uint8_t ui8Pins))ROM_GPIOTABLE[21])
947 #define ROM_GPIOPinTypeGPIOOutputOD \
948  ((void (*)(uint32_t ui32Port, \
949  uint8_t ui8Pins))ROM_GPIOTABLE[22])
950 #define ROM_GPIOPinTypeADC \
951  ((void (*)(uint32_t ui32Port, \
952  uint8_t ui8Pins))ROM_GPIOTABLE[23])
953 #define ROM_GPIOPinTypeUSBDigital \
954  ((void (*)(uint32_t ui32Port, \
955  uint8_t ui8Pins))ROM_GPIOTABLE[24])
956 #define ROM_GPIOPinConfigure \
957  ((void (*)(uint32_t ui32PinConfig))ROM_GPIOTABLE[26])
958 #define ROM_GPIOPinTypeUSBAnalog \
959  ((void (*)(uint32_t ui32Port, \
960  uint8_t ui8Pins))ROM_GPIOTABLE[28])
961 #define ROM_GPIODMATriggerEnable \
962  ((void (*)(uint32_t ui32Port, \
963  uint8_t ui8Pins))ROM_GPIOTABLE[31])
964 #define ROM_GPIODMATriggerDisable \
965  ((void (*)(uint32_t ui32Port, \
966  uint8_t ui8Pins))ROM_GPIOTABLE[32])
967 #define ROM_GPIOADCTriggerEnable \
968  ((void (*)(uint32_t ui32Port, \
969  uint8_t ui8Pins))ROM_GPIOTABLE[33])
970 #define ROM_GPIOADCTriggerDisable \
971  ((void (*)(uint32_t ui32Port, \
972  uint8_t ui8Pins))ROM_GPIOTABLE[34])
973 #define ROM_GPIOPinTypeI2CSCL \
974  ((void (*)(uint32_t ui32Port, \
975  uint8_t ui8Pins))ROM_GPIOTABLE[39])
976 #define ROM_GPIOPinTypeOneWire \
977  ((void (*)(uint32_t ui32Port, \
978  uint8_t ui8Pins))ROM_GPIOTABLE[44])
979 #define ROM_GPIOPinTypeWakeHigh \
980  ((void (*)(uint32_t ui32Port, \
981  uint8_t ui8Pins))ROM_GPIOTABLE[48])
982 #define ROM_GPIOPinTypeWakeLow \
983  ((void (*)(uint32_t ui32Port, \
984  uint8_t ui8Pins))ROM_GPIOTABLE[49])
985 #define ROM_GPIOIntClear \
986  ((void (*)(uint32_t ui32Port, \
987  uint32_t ui32IntFlags))ROM_GPIOTABLE[51])
988 #define ROM_GPIOIntDisable \
989  ((void (*)(uint32_t ui32Port, \
990  uint32_t ui32IntFlags))ROM_GPIOTABLE[52])
991 #define ROM_GPIOIntEnable \
992  ((void (*)(uint32_t ui32Port, \
993  uint32_t ui32IntFlags))ROM_GPIOTABLE[53])
994 #define ROM_GPIOIntStatus \
995  ((uint32_t (*)(uint32_t ui32Port, \
996  bool bMasked))ROM_GPIOTABLE[54])
997 
998 //*****************************************************************************
999 //
1000 // Macros for calling ROM functions in the Hibernate API.
1001 //
1002 //*****************************************************************************
1003 #define ROM_HibernateIntClear \
1004  ((void (*)(uint32_t ui32IntFlags))ROM_HIBERNATETABLE[0])
1005 #define ROM_HibernateEnableExpClk \
1006  ((void (*)(uint32_t ui32HibClk))ROM_HIBERNATETABLE[1])
1007 #define ROM_HibernateDisable \
1008  ((void (*)(void))ROM_HIBERNATETABLE[2])
1009 #define ROM_HibernateRTCEnable \
1010  ((void (*)(void))ROM_HIBERNATETABLE[4])
1011 #define ROM_HibernateRTCDisable \
1012  ((void (*)(void))ROM_HIBERNATETABLE[5])
1013 #define ROM_HibernateWakeSet \
1014  ((void (*)(uint32_t ui32WakeFlags))ROM_HIBERNATETABLE[6])
1015 #define ROM_HibernateWakeGet \
1016  ((uint32_t (*)(void))ROM_HIBERNATETABLE[7])
1017 #define ROM_HibernateLowBatSet \
1018  ((void (*)(uint32_t ui32LowBatFlags))ROM_HIBERNATETABLE[8])
1019 #define ROM_HibernateLowBatGet \
1020  ((uint32_t (*)(void))ROM_HIBERNATETABLE[9])
1021 #define ROM_HibernateRTCSet \
1022  ((void (*)(uint32_t ui32RTCValue))ROM_HIBERNATETABLE[10])
1023 #define ROM_HibernateRTCGet \
1024  ((uint32_t (*)(void))ROM_HIBERNATETABLE[11])
1025 #define ROM_HibernateRTCTrimSet \
1026  ((void (*)(uint32_t ui32Trim))ROM_HIBERNATETABLE[16])
1027 #define ROM_HibernateRTCTrimGet \
1028  ((uint32_t (*)(void))ROM_HIBERNATETABLE[17])
1029 #define ROM_HibernateDataSet \
1030  ((void (*)(uint32_t *pui32Data, \
1031  uint32_t ui32Count))ROM_HIBERNATETABLE[18])
1032 #define ROM_HibernateDataGet \
1033  ((void (*)(uint32_t *pui32Data, \
1034  uint32_t ui32Count))ROM_HIBERNATETABLE[19])
1035 #define ROM_HibernateRequest \
1036  ((void (*)(void))ROM_HIBERNATETABLE[20])
1037 #define ROM_HibernateIntEnable \
1038  ((void (*)(uint32_t ui32IntFlags))ROM_HIBERNATETABLE[21])
1039 #define ROM_HibernateIntDisable \
1040  ((void (*)(uint32_t ui32IntFlags))ROM_HIBERNATETABLE[22])
1041 #define ROM_HibernateIntStatus \
1042  ((uint32_t (*)(bool bMasked))ROM_HIBERNATETABLE[23])
1043 #define ROM_HibernateIsActive \
1044  ((uint32_t (*)(void))ROM_HIBERNATETABLE[24])
1045 #define ROM_HibernateRTCSSGet \
1046  ((uint32_t (*)(void))ROM_HIBERNATETABLE[27])
1047 #define ROM_HibernateClockConfig \
1048  ((void (*)(uint32_t ui32Config))ROM_HIBERNATETABLE[28])
1049 #define ROM_HibernateBatCheckStart \
1050  ((void (*)(void))ROM_HIBERNATETABLE[29])
1051 #define ROM_HibernateBatCheckDone \
1052  ((uint32_t (*)(void))ROM_HIBERNATETABLE[30])
1053 #define ROM_HibernateGPIORetentionEnable \
1054  ((void (*)(void))ROM_HIBERNATETABLE[31])
1055 #define ROM_HibernateGPIORetentionDisable \
1056  ((void (*)(void))ROM_HIBERNATETABLE[32])
1057 #define ROM_HibernateGPIORetentionGet \
1058  ((bool (*)(void))ROM_HIBERNATETABLE[33])
1059 #define ROM_HibernateCounterMode \
1060  ((void (*)(uint32_t ui32Config))ROM_HIBERNATETABLE[34])
1061 #define ROM_HibernateCalendarSet \
1062  ((void (*)(struct tm *psTime))ROM_HIBERNATETABLE[35])
1063 #define ROM_HibernateCalendarGet \
1064  ((int (*)(struct tm *psTime))ROM_HIBERNATETABLE[36])
1065 #define ROM_HibernateCalendarMatchSet \
1066  ((void (*)(uint32_t ui32Index, \
1067  struct tm *psTime))ROM_HIBERNATETABLE[37])
1068 #define ROM_HibernateCalendarMatchGet \
1069  ((void (*)(uint32_t ui32Index, \
1070  struct tm *psTime))ROM_HIBERNATETABLE[38])
1071 #define ROM_HibernateTamperDisable \
1072  ((void (*)(void))ROM_HIBERNATETABLE[39])
1073 #define ROM_HibernateTamperEnable \
1074  ((void (*)(void))ROM_HIBERNATETABLE[40])
1075 #define ROM_HibernateTamperEventsClear \
1076  ((void (*)(void))ROM_HIBERNATETABLE[41])
1077 #define ROM_HibernateTamperEventsConfig \
1078  ((void (*)(uint32_t ui32Config))ROM_HIBERNATETABLE[42])
1079 #define ROM_HibernateTamperEventsGet \
1080  ((bool (*)(uint32_t ui32Index, \
1081  uint32_t *pui32RTC, \
1082  uint32_t *pui32Event))ROM_HIBERNATETABLE[43])
1083 #define ROM_HibernateTamperExtOscValid \
1084  ((bool (*)(void))ROM_HIBERNATETABLE[44])
1085 #define ROM_HibernateTamperExtOscRecover \
1086  ((void (*)(void))ROM_HIBERNATETABLE[45])
1087 #define ROM_HibernateTamperIODisable \
1088  ((void (*)(uint32_t ui32Input))ROM_HIBERNATETABLE[46])
1089 #define ROM_HibernateTamperIOEnable \
1090  ((void (*)(uint32_t ui32Input, \
1091  uint32_t ui32Config))ROM_HIBERNATETABLE[47])
1092 #define ROM_HibernateTamperStatusGet \
1093  ((uint32_t (*)(void))ROM_HIBERNATETABLE[48])
1094 #define ROM_HibernateRTCMatchGet \
1095  ((uint32_t (*)(uint32_t ui32Match))ROM_HIBERNATETABLE[49])
1096 #define ROM_HibernateRTCMatchSet \
1097  ((void (*)(uint32_t ui32Match, \
1098  uint32_t ui32Value))ROM_HIBERNATETABLE[50])
1099 #define ROM_HibernateRTCSSMatchGet \
1100  ((uint32_t (*)(uint32_t ui32Match))ROM_HIBERNATETABLE[51])
1101 #define ROM_HibernateRTCSSMatchSet \
1102  ((void (*)(uint32_t ui32Match, \
1103  uint32_t ui32Value))ROM_HIBERNATETABLE[52])
1104 
1105 //*****************************************************************************
1106 //
1107 // Macros for calling ROM functions in the I2C API.
1108 //
1109 //*****************************************************************************
1110 #define ROM_I2CMasterDataPut \
1111  ((void (*)(uint32_t ui32Base, \
1112  uint8_t ui8Data))ROM_I2CTABLE[0])
1113 #define ROM_I2CMasterInitExpClk \
1114  ((void (*)(uint32_t ui32Base, \
1115  uint32_t ui32I2CClk, \
1116  bool bFast))ROM_I2CTABLE[1])
1117 #define ROM_I2CSlaveInit \
1118  ((void (*)(uint32_t ui32Base, \
1119  uint8_t ui8SlaveAddr))ROM_I2CTABLE[2])
1120 #define ROM_I2CMasterEnable \
1121  ((void (*)(uint32_t ui32Base))ROM_I2CTABLE[3])
1122 #define ROM_I2CSlaveEnable \
1123  ((void (*)(uint32_t ui32Base))ROM_I2CTABLE[4])
1124 #define ROM_I2CMasterDisable \
1125  ((void (*)(uint32_t ui32Base))ROM_I2CTABLE[5])
1126 #define ROM_I2CSlaveDisable \
1127  ((void (*)(uint32_t ui32Base))ROM_I2CTABLE[6])
1128 #define ROM_I2CMasterIntEnable \
1129  ((void (*)(uint32_t ui32Base))ROM_I2CTABLE[7])
1130 #define ROM_I2CSlaveIntEnable \
1131  ((void (*)(uint32_t ui32Base))ROM_I2CTABLE[8])
1132 #define ROM_I2CMasterIntDisable \
1133  ((void (*)(uint32_t ui32Base))ROM_I2CTABLE[9])
1134 #define ROM_I2CSlaveIntDisable \
1135  ((void (*)(uint32_t ui32Base))ROM_I2CTABLE[10])
1136 #define ROM_I2CMasterIntStatus \
1137  ((bool (*)(uint32_t ui32Base, \
1138  bool bMasked))ROM_I2CTABLE[11])
1139 #define ROM_I2CSlaveIntStatus \
1140  ((bool (*)(uint32_t ui32Base, \
1141  bool bMasked))ROM_I2CTABLE[12])
1142 #define ROM_I2CMasterIntClear \
1143  ((void (*)(uint32_t ui32Base))ROM_I2CTABLE[13])
1144 #define ROM_I2CSlaveIntClear \
1145  ((void (*)(uint32_t ui32Base))ROM_I2CTABLE[14])
1146 #define ROM_I2CMasterSlaveAddrSet \
1147  ((void (*)(uint32_t ui32Base, \
1148  uint8_t ui8SlaveAddr, \
1149  bool bReceive))ROM_I2CTABLE[15])
1150 #define ROM_I2CMasterBusy \
1151  ((bool (*)(uint32_t ui32Base))ROM_I2CTABLE[16])
1152 #define ROM_I2CMasterBusBusy \
1153  ((bool (*)(uint32_t ui32Base))ROM_I2CTABLE[17])
1154 #define ROM_I2CMasterControl \
1155  ((void (*)(uint32_t ui32Base, \
1156  uint32_t ui32Cmd))ROM_I2CTABLE[18])
1157 #define ROM_I2CMasterErr \
1158  ((uint32_t (*)(uint32_t ui32Base))ROM_I2CTABLE[19])
1159 #define ROM_I2CMasterDataGet \
1160  ((uint32_t (*)(uint32_t ui32Base))ROM_I2CTABLE[20])
1161 #define ROM_I2CSlaveStatus \
1162  ((uint32_t (*)(uint32_t ui32Base))ROM_I2CTABLE[21])
1163 #define ROM_I2CSlaveDataPut \
1164  ((void (*)(uint32_t ui32Base, \
1165  uint8_t ui8Data))ROM_I2CTABLE[22])
1166 #define ROM_I2CSlaveDataGet \
1167  ((uint32_t (*)(uint32_t ui32Base))ROM_I2CTABLE[23])
1168 #define ROM_UpdateI2C \
1169  ((void (*)(void))ROM_I2CTABLE[24])
1170 #define ROM_I2CSlaveIntEnableEx \
1171  ((void (*)(uint32_t ui32Base, \
1172  uint32_t ui32IntFlags))ROM_I2CTABLE[25])
1173 #define ROM_I2CSlaveIntDisableEx \
1174  ((void (*)(uint32_t ui32Base, \
1175  uint32_t ui32IntFlags))ROM_I2CTABLE[26])
1176 #define ROM_I2CSlaveIntStatusEx \
1177  ((uint32_t (*)(uint32_t ui32Base, \
1178  bool bMasked))ROM_I2CTABLE[27])
1179 #define ROM_I2CSlaveIntClearEx \
1180  ((void (*)(uint32_t ui32Base, \
1181  uint32_t ui32IntFlags))ROM_I2CTABLE[28])
1182 #define ROM_I2CMasterIntEnableEx \
1183  ((void (*)(uint32_t ui32Base, \
1184  uint32_t ui32IntFlags))ROM_I2CTABLE[29])
1185 #define ROM_I2CMasterIntDisableEx \
1186  ((void (*)(uint32_t ui32Base, \
1187  uint32_t ui32IntFlags))ROM_I2CTABLE[30])
1188 #define ROM_I2CMasterIntStatusEx \
1189  ((uint32_t (*)(uint32_t ui32Base, \
1190  bool bMasked))ROM_I2CTABLE[31])
1191 #define ROM_I2CMasterIntClearEx \
1192  ((void (*)(uint32_t ui32Base, \
1193  uint32_t ui32IntFlags))ROM_I2CTABLE[32])
1194 #define ROM_I2CMasterTimeoutSet \
1195  ((void (*)(uint32_t ui32Base, \
1196  uint32_t ui32Value))ROM_I2CTABLE[33])
1197 #define ROM_I2CSlaveACKOverride \
1198  ((void (*)(uint32_t ui32Base, \
1199  bool bEnable))ROM_I2CTABLE[34])
1200 #define ROM_I2CSlaveACKValueSet \
1201  ((void (*)(uint32_t ui32Base, \
1202  bool bACK))ROM_I2CTABLE[35])
1203 #define ROM_I2CSlaveAddressSet \
1204  ((void (*)(uint32_t ui32Base, \
1205  uint8_t ui8AddrNum, \
1206  uint8_t ui8SlaveAddr))ROM_I2CTABLE[37])
1207 #define ROM_I2CMasterLineStateGet \
1208  ((uint32_t (*)(uint32_t ui32Base))ROM_I2CTABLE[38])
1209 #define ROM_I2CTxFIFOConfigSet \
1210  ((void (*)(uint32_t ui32Base, \
1211  uint32_t ui32Config))ROM_I2CTABLE[39])
1212 #define ROM_I2CTxFIFOFlush \
1213  ((void (*)(uint32_t ui32Base))ROM_I2CTABLE[40])
1214 #define ROM_I2CRxFIFOConfigSet \
1215  ((void (*)(uint32_t ui32Base, \
1216  uint32_t ui32Config))ROM_I2CTABLE[41])
1217 #define ROM_I2CRxFIFOFlush \
1218  ((void (*)(uint32_t ui32Base))ROM_I2CTABLE[42])
1219 #define ROM_I2CFIFOStatus \
1220  ((uint32_t (*)(uint32_t ui32Base))ROM_I2CTABLE[43])
1221 #define ROM_I2CFIFODataPut \
1222  ((void (*)(uint32_t ui32Base, \
1223  uint8_t ui8Data))ROM_I2CTABLE[44])
1224 #define ROM_I2CFIFODataPutNonBlocking \
1225  ((uint32_t (*)(uint32_t ui32Base, \
1226  uint8_t ui8Data))ROM_I2CTABLE[45])
1227 #define ROM_I2CFIFODataGet \
1228  ((uint32_t (*)(uint32_t ui32Base))ROM_I2CTABLE[46])
1229 #define ROM_I2CFIFODataGetNonBlocking \
1230  ((uint32_t (*)(uint32_t ui32Base, \
1231  uint8_t *pui8Data))ROM_I2CTABLE[47])
1232 #define ROM_I2CMasterBurstLengthSet \
1233  ((void (*)(uint32_t ui32Base, \
1234  uint8_t ui8Length))ROM_I2CTABLE[48])
1235 #define ROM_I2CMasterBurstCountGet \
1236  ((uint32_t (*)(uint32_t ui32Base))ROM_I2CTABLE[49])
1237 #define ROM_I2CSlaveFIFODisable \
1238  ((void (*)(uint32_t ui32Base))ROM_I2CTABLE[50])
1239 #define ROM_I2CSlaveFIFOEnable \
1240  ((void (*)(uint32_t ui32Base, \
1241  uint32_t ui32Config))ROM_I2CTABLE[51])
1242 #define ROM_I2CMasterGlitchFilterConfigSet \
1243  ((void (*)(uint32_t ui32Base, \
1244  uint32_t ui32Config))ROM_I2CTABLE[54])
1245 
1246 //*****************************************************************************
1247 //
1248 // Macros for calling ROM functions in the Interrupt API.
1249 //
1250 //*****************************************************************************
1251 #define ROM_IntEnable \
1252  ((void (*)(uint32_t ui32Interrupt))ROM_INTERRUPTTABLE[0])
1253 #define ROM_IntMasterEnable \
1254  ((bool (*)(void))ROM_INTERRUPTTABLE[1])
1255 #define ROM_IntMasterDisable \
1256  ((bool (*)(void))ROM_INTERRUPTTABLE[2])
1257 #define ROM_IntDisable \
1258  ((void (*)(uint32_t ui32Interrupt))ROM_INTERRUPTTABLE[3])
1259 #define ROM_IntPriorityGroupingSet \
1260  ((void (*)(uint32_t ui32Bits))ROM_INTERRUPTTABLE[4])
1261 #define ROM_IntPriorityGroupingGet \
1262  ((uint32_t (*)(void))ROM_INTERRUPTTABLE[5])
1263 #define ROM_IntPrioritySet \
1264  ((void (*)(uint32_t ui32Interrupt, \
1265  uint8_t ui8Priority))ROM_INTERRUPTTABLE[6])
1266 #define ROM_IntPriorityGet \
1267  ((int32_t (*)(uint32_t ui32Interrupt))ROM_INTERRUPTTABLE[7])
1268 #define ROM_IntPendSet \
1269  ((void (*)(uint32_t ui32Interrupt))ROM_INTERRUPTTABLE[8])
1270 #define ROM_IntPendClear \
1271  ((void (*)(uint32_t ui32Interrupt))ROM_INTERRUPTTABLE[9])
1272 #define ROM_IntPriorityMaskSet \
1273  ((void (*)(uint32_t ui32PriorityMask))ROM_INTERRUPTTABLE[10])
1274 #define ROM_IntPriorityMaskGet \
1275  ((uint32_t (*)(void))ROM_INTERRUPTTABLE[11])
1276 #define ROM_IntIsEnabled \
1277  ((uint32_t (*)(uint32_t ui32Interrupt))ROM_INTERRUPTTABLE[12])
1278 #define ROM_IntTrigger \
1279  ((void (*)(uint32_t ui32Interrupt))ROM_INTERRUPTTABLE[13])
1280 
1281 //*****************************************************************************
1282 //
1283 // Macros for calling ROM functions in the LCD API.
1284 //
1285 //*****************************************************************************
1286 #define ROM_LCDIntStatus \
1287  ((uint32_t (*)(uint32_t ui32Base, \
1288  bool bMasked))ROM_LCDTABLE[0])
1289 #define ROM_LCDClockReset \
1290  ((void (*)(uint32_t ui32Base, \
1291  uint32_t ui32Clocks))ROM_LCDTABLE[1])
1292 #define ROM_LCDDMAConfigSet \
1293  ((void (*)(uint32_t ui32Base, \
1294  uint32_t ui32Config))ROM_LCDTABLE[2])
1295 #define ROM_LCDIDDCommandWrite \
1296  ((void (*)(uint32_t ui32Base, \
1297  uint32_t ui32CS, \
1298  uint16_t ui16Cmd))ROM_LCDTABLE[3])
1299 #define ROM_LCDIDDConfigSet \
1300  ((void (*)(uint32_t ui32Base, \
1301  uint32_t ui32Config))ROM_LCDTABLE[4])
1302 #define ROM_LCDIDDDataRead \
1303  ((uint16_t (*)(uint32_t ui32Base, \
1304  uint32_t ui32CS))ROM_LCDTABLE[5])
1305 #define ROM_LCDIDDDataWrite \
1306  ((void (*)(uint32_t ui32Base, \
1307  uint32_t ui32CS, \
1308  uint16_t ui16Data))ROM_LCDTABLE[6])
1309 #define ROM_LCDIDDDMADisable \
1310  ((void (*)(uint32_t ui32Base))ROM_LCDTABLE[7])
1311 #define ROM_LCDIDDDMAWrite \
1312  ((void (*)(uint32_t ui32Base, \
1313  uint32_t ui32CS, \
1314  const uint32_t *pui32Data, \
1315  uint32_t ui32Count))ROM_LCDTABLE[8])
1316 #define ROM_LCDIDDIndexedRead \
1317  ((uint16_t (*)(uint32_t ui32Base, \
1318  uint32_t ui32CS, \
1319  uint16_t ui16Addr))ROM_LCDTABLE[9])
1320 #define ROM_LCDIDDIndexedWrite \
1321  ((void (*)(uint32_t ui32Base, \
1322  uint32_t ui32CS, \
1323  uint16_t ui16Addr, \
1324  uint16_t ui16Data))ROM_LCDTABLE[10])
1325 #define ROM_LCDIDDStatusRead \
1326  ((uint16_t (*)(uint32_t ui32Base, \
1327  uint32_t ui32CS))ROM_LCDTABLE[11])
1328 #define ROM_LCDIDDTimingSet \
1329  ((void (*)(uint32_t ui32Base, \
1330  uint32_t ui32CS, \
1331  const tLCDIDDTiming *pTiming))ROM_LCDTABLE[12])
1332 #define ROM_LCDIntClear \
1333  ((void (*)(uint32_t ui32Base, \
1334  uint32_t ui32IntFlags))ROM_LCDTABLE[13])
1335 #define ROM_LCDIntDisable \
1336  ((void (*)(uint32_t ui32Base, \
1337  uint32_t ui32IntFlags))ROM_LCDTABLE[14])
1338 #define ROM_LCDIntEnable \
1339  ((void (*)(uint32_t ui32Base, \
1340  uint32_t ui32IntFlags))ROM_LCDTABLE[15])
1341 #define ROM_LCDModeSet \
1342  ((uint32_t (*)(uint32_t ui32Base, \
1343  uint8_t ui8Mode, \
1344  uint32_t ui32PixClk, \
1345  uint32_t ui32SysClk))ROM_LCDTABLE[16])
1346 #define ROM_LCDRasterACBiasIntCountSet \
1347  ((void (*)(uint32_t ui32Base, \
1348  uint8_t ui8Count))ROM_LCDTABLE[17])
1349 #define ROM_LCDRasterConfigSet \
1350  ((void (*)(uint32_t ui32Base, \
1351  uint32_t ui32Config, \
1352  uint8_t ui8PalLoadDelay))ROM_LCDTABLE[18])
1353 #define ROM_LCDRasterDisable \
1354  ((void (*)(uint32_t ui32Base))ROM_LCDTABLE[19])
1355 #define ROM_LCDRasterEnable \
1356  ((void (*)(uint32_t ui32Base))ROM_LCDTABLE[20])
1357 #define ROM_LCDRasterFrameBufferSet \
1358  ((void (*)(uint32_t ui32Base, \
1359  uint8_t ui8Buffer, \
1360  uint32_t *pui32Addr, \
1361  uint32_t ui32NumBytes))ROM_LCDTABLE[21])
1362 #define ROM_LCDRasterPaletteSet \
1363  ((void (*)(uint32_t ui32Base, \
1364  uint32_t ui32Type, \
1365  uint32_t *pui32PalAddr, \
1366  const uint32_t *pui32SrcColors, \
1367  uint32_t ui32Start, \
1368  uint32_t ui32Count))ROM_LCDTABLE[22])
1369 #define ROM_LCDRasterSubPanelConfigSet \
1370  ((void (*)(uint32_t ui32Base, \
1371  uint32_t ui32Flags, \
1372  uint32_t ui32BottomLines, \
1373  uint32_t ui32DefaultPixel))ROM_LCDTABLE[23])
1374 #define ROM_LCDRasterSubPanelDisable \
1375  ((void (*)(uint32_t ui32Base))ROM_LCDTABLE[24])
1376 #define ROM_LCDRasterSubPanelEnable \
1377  ((void (*)(uint32_t ui32Base))ROM_LCDTABLE[25])
1378 #define ROM_LCDRasterTimingSet \
1379  ((void (*)(uint32_t ui32Base, \
1380  const tLCDRasterTiming *pTiming))ROM_LCDTABLE[26])
1381 #define ROM_LCDRasterEnabled \
1382  ((bool (*)(uint32_t ui32Base))ROM_LCDTABLE[27])
1383 
1384 //*****************************************************************************
1385 //
1386 // Macros for calling ROM functions in the MPU API.
1387 //
1388 //*****************************************************************************
1389 #define ROM_MPUEnable \
1390  ((void (*)(uint32_t ui32MPUConfig))ROM_MPUTABLE[0])
1391 #define ROM_MPUDisable \
1392  ((void (*)(void))ROM_MPUTABLE[1])
1393 #define ROM_MPURegionCountGet \
1394  ((uint32_t (*)(void))ROM_MPUTABLE[2])
1395 #define ROM_MPURegionEnable \
1396  ((void (*)(uint32_t ui32Region))ROM_MPUTABLE[3])
1397 #define ROM_MPURegionDisable \
1398  ((void (*)(uint32_t ui32Region))ROM_MPUTABLE[4])
1399 #define ROM_MPURegionSet \
1400  ((void (*)(uint32_t ui32Region, \
1401  uint32_t ui32Addr, \
1402  uint32_t ui32Flags))ROM_MPUTABLE[5])
1403 #define ROM_MPURegionGet \
1404  ((void (*)(uint32_t ui32Region, \
1405  uint32_t *pui32Addr, \
1406  uint32_t *pui32Flags))ROM_MPUTABLE[6])
1407 
1408 //*****************************************************************************
1409 //
1410 // Macros for calling ROM functions in the OneWire API.
1411 //
1412 //*****************************************************************************
1413 #define ROM_OneWireIntStatus \
1414  ((uint32_t (*)(uint32_t ui32Base, \
1415  bool bMasked))ROM_ONEWIRETABLE[0])
1416 #define ROM_OneWireBusReset \
1417  ((void (*)(uint32_t ui32Base))ROM_ONEWIRETABLE[1])
1418 #define ROM_OneWireBusStatus \
1419  ((uint32_t (*)(uint32_t ui32Base))ROM_ONEWIRETABLE[2])
1420 #define ROM_OneWireDataGet \
1421  ((void (*)(uint32_t u3i2Base, \
1422  uint32_t *pui32Data))ROM_ONEWIRETABLE[3])
1423 #define ROM_OneWireDataGetNonBlocking \
1424  ((bool (*)(uint32_t ui32Base, \
1425  uint32_t *pui32Data))ROM_ONEWIRETABLE[4])
1426 #define ROM_OneWireInit \
1427  ((void (*)(uint32_t ui32Base, \
1428  uint32_t ui32InitFlags))ROM_ONEWIRETABLE[5])
1429 #define ROM_OneWireIntClear \
1430  ((void (*)(uint32_t ui32Base, \
1431  uint32_t ui32IntFlags))ROM_ONEWIRETABLE[6])
1432 #define ROM_OneWireIntDisable \
1433  ((void (*)(uint32_t ui32Base, \
1434  uint32_t ui32IntFlags))ROM_ONEWIRETABLE[7])
1435 #define ROM_OneWireIntEnable \
1436  ((void (*)(uint32_t ui32Base, \
1437  uint32_t ui32IntFlags))ROM_ONEWIRETABLE[8])
1438 #define ROM_OneWireTransaction \
1439  ((void (*)(uint32_t ui32Base, \
1440  uint32_t ui32OpFlags, \
1441  uint32_t ui32Data, \
1442  uint32_t ui32BitCnt))ROM_ONEWIRETABLE[9])
1443 #define ROM_OneWireDMADisable \
1444  ((void (*)(uint32_t ui32Base, \
1445  uint32_t ui32DMAFlags))ROM_ONEWIRETABLE[10])
1446 #define ROM_OneWireDMAEnable \
1447  ((void (*)(uint32_t ui32Base, \
1448  uint32_t ui32DMAFlags))ROM_ONEWIRETABLE[11])
1449 
1450 //*****************************************************************************
1451 //
1452 // Macros for calling ROM functions in the PWM API.
1453 //
1454 //*****************************************************************************
1455 #define ROM_PWMPulseWidthSet \
1456  ((void (*)(uint32_t ui32Base, \
1457  uint32_t ui32PWMOut, \
1458  uint32_t ui32Width))ROM_PWMTABLE[0])
1459 #define ROM_PWMGenConfigure \
1460  ((void (*)(uint32_t ui32Base, \
1461  uint32_t ui32Gen, \
1462  uint32_t ui32Config))ROM_PWMTABLE[1])
1463 #define ROM_PWMGenPeriodSet \
1464  ((void (*)(uint32_t ui32Base, \
1465  uint32_t ui32Gen, \
1466  uint32_t ui32Period))ROM_PWMTABLE[2])
1467 #define ROM_PWMGenPeriodGet \
1468  ((uint32_t (*)(uint32_t ui32Base, \
1469  uint32_t ui32Gen))ROM_PWMTABLE[3])
1470 #define ROM_PWMGenEnable \
1471  ((void (*)(uint32_t ui32Base, \
1472  uint32_t ui32Gen))ROM_PWMTABLE[4])
1473 #define ROM_PWMGenDisable \
1474  ((void (*)(uint32_t ui32Base, \
1475  uint32_t ui32Gen))ROM_PWMTABLE[5])
1476 #define ROM_PWMPulseWidthGet \
1477  ((uint32_t (*)(uint32_t ui32Base, \
1478  uint32_t ui32PWMOut))ROM_PWMTABLE[6])
1479 #define ROM_PWMDeadBandEnable \
1480  ((void (*)(uint32_t ui32Base, \
1481  uint32_t ui32Gen, \
1482  uint16_t ui16Rise, \
1483  uint16_t ui16Fall))ROM_PWMTABLE[7])
1484 #define ROM_PWMDeadBandDisable \
1485  ((void (*)(uint32_t ui32Base, \
1486  uint32_t ui32Gen))ROM_PWMTABLE[8])
1487 #define ROM_PWMSyncUpdate \
1488  ((void (*)(uint32_t ui32Base, \
1489  uint32_t ui32GenBits))ROM_PWMTABLE[9])
1490 #define ROM_PWMSyncTimeBase \
1491  ((void (*)(uint32_t ui32Base, \
1492  uint32_t ui32GenBits))ROM_PWMTABLE[10])
1493 #define ROM_PWMOutputState \
1494  ((void (*)(uint32_t ui32Base, \
1495  uint32_t ui32PWMOutBits, \
1496  bool bEnable))ROM_PWMTABLE[11])
1497 #define ROM_PWMOutputInvert \
1498  ((void (*)(uint32_t ui32Base, \
1499  uint32_t ui32PWMOutBits, \
1500  bool bInvert))ROM_PWMTABLE[12])
1501 #define ROM_PWMOutputFault \
1502  ((void (*)(uint32_t ui32Base, \
1503  uint32_t ui32PWMOutBits, \
1504  bool bFaultSuppress))ROM_PWMTABLE[13])
1505 #define ROM_PWMGenIntTrigEnable \
1506  ((void (*)(uint32_t ui32Base, \
1507  uint32_t ui32Gen, \
1508  uint32_t ui32IntTrig))ROM_PWMTABLE[14])
1509 #define ROM_PWMGenIntTrigDisable \
1510  ((void (*)(uint32_t ui32Base, \
1511  uint32_t ui32Gen, \
1512  uint32_t ui32IntTrig))ROM_PWMTABLE[15])
1513 #define ROM_PWMGenIntStatus \
1514  ((uint32_t (*)(uint32_t ui32Base, \
1515  uint32_t ui32Gen, \
1516  bool bMasked))ROM_PWMTABLE[16])
1517 #define ROM_PWMGenIntClear \
1518  ((void (*)(uint32_t ui32Base, \
1519  uint32_t ui32Gen, \
1520  uint32_t ui32Ints))ROM_PWMTABLE[17])
1521 #define ROM_PWMIntEnable \
1522  ((void (*)(uint32_t ui32Base, \
1523  uint32_t ui32GenFault))ROM_PWMTABLE[18])
1524 #define ROM_PWMIntDisable \
1525  ((void (*)(uint32_t ui32Base, \
1526  uint32_t ui32GenFault))ROM_PWMTABLE[19])
1527 #define ROM_PWMIntStatus \
1528  ((uint32_t (*)(uint32_t ui32Base, \
1529  bool bMasked))ROM_PWMTABLE[21])
1530 #define ROM_PWMOutputFaultLevel \
1531  ((void (*)(uint32_t ui32Base, \
1532  uint32_t ui32PWMOutBits, \
1533  bool bDriveHigh))ROM_PWMTABLE[22])
1534 #define ROM_PWMFaultIntClearExt \
1535  ((void (*)(uint32_t ui32Base, \
1536  uint32_t ui32FaultInts))ROM_PWMTABLE[23])
1537 #define ROM_PWMGenFaultConfigure \
1538  ((void (*)(uint32_t ui32Base, \
1539  uint32_t ui32Gen, \
1540  uint32_t ui32MinFaultPeriod, \
1541  uint32_t ui32FaultSenses))ROM_PWMTABLE[24])
1542 #define ROM_PWMGenFaultTriggerSet \
1543  ((void (*)(uint32_t ui32Base, \
1544  uint32_t ui32Gen, \
1545  uint32_t ui32Group, \
1546  uint32_t ui32FaultTriggers))ROM_PWMTABLE[25])
1547 #define ROM_PWMGenFaultTriggerGet \
1548  ((uint32_t (*)(uint32_t ui32Base, \
1549  uint32_t ui32Gen, \
1550  uint32_t ui32Group))ROM_PWMTABLE[26])
1551 #define ROM_PWMGenFaultStatus \
1552  ((uint32_t (*)(uint32_t ui32Base, \
1553  uint32_t ui32Gen, \
1554  uint32_t ui32Group))ROM_PWMTABLE[27])
1555 #define ROM_PWMGenFaultClear \
1556  ((void (*)(uint32_t ui32Base, \
1557  uint32_t ui32Gen, \
1558  uint32_t ui32Group, \
1559  uint32_t ui32FaultTriggers))ROM_PWMTABLE[28])
1560 #define ROM_PWMClockSet \
1561  ((void (*)(uint32_t ui32Base, \
1562  uint32_t ui32Config))ROM_PWMTABLE[29])
1563 #define ROM_PWMClockGet \
1564  ((uint32_t (*)(uint32_t ui32Base))ROM_PWMTABLE[30])
1565 #define ROM_PWMOutputUpdateMode \
1566  ((void (*)(uint32_t ui32Base, \
1567  uint32_t ui32PWMOutBits, \
1568  uint32_t ui32Mode))ROM_PWMTABLE[31])
1569 
1570 //*****************************************************************************
1571 //
1572 // Macros for calling ROM functions in the QEI API.
1573 //
1574 //*****************************************************************************
1575 #define ROM_QEIPositionGet \
1576  ((uint32_t (*)(uint32_t ui32Base))ROM_QEITABLE[0])
1577 #define ROM_QEIEnable \
1578  ((void (*)(uint32_t ui32Base))ROM_QEITABLE[1])
1579 #define ROM_QEIDisable \
1580  ((void (*)(uint32_t ui32Base))ROM_QEITABLE[2])
1581 #define ROM_QEIConfigure \
1582  ((void (*)(uint32_t ui32Base, \
1583  uint32_t ui32Config, \
1584  uint32_t ui32MaxPosition))ROM_QEITABLE[3])
1585 #define ROM_QEIPositionSet \
1586  ((void (*)(uint32_t ui32Base, \
1587  uint32_t ui32Position))ROM_QEITABLE[4])
1588 #define ROM_QEIDirectionGet \
1589  ((int32_t (*)(uint32_t ui32Base))ROM_QEITABLE[5])
1590 #define ROM_QEIErrorGet \
1591  ((bool (*)(uint32_t ui32Base))ROM_QEITABLE[6])
1592 #define ROM_QEIVelocityEnable \
1593  ((void (*)(uint32_t ui32Base))ROM_QEITABLE[7])
1594 #define ROM_QEIVelocityDisable \
1595  ((void (*)(uint32_t ui32Base))ROM_QEITABLE[8])
1596 #define ROM_QEIVelocityConfigure \
1597  ((void (*)(uint32_t ui32Base, \
1598  uint32_t ui32PreDiv, \
1599  uint32_t ui32Period))ROM_QEITABLE[9])
1600 #define ROM_QEIVelocityGet \
1601  ((uint32_t (*)(uint32_t ui32Base))ROM_QEITABLE[10])
1602 #define ROM_QEIIntEnable \
1603  ((void (*)(uint32_t ui32Base, \
1604  uint32_t ui32IntFlags))ROM_QEITABLE[11])
1605 #define ROM_QEIIntDisable \
1606  ((void (*)(uint32_t ui32Base, \
1607  uint32_t ui32IntFlags))ROM_QEITABLE[12])
1608 #define ROM_QEIIntStatus \
1609  ((uint32_t (*)(uint32_t ui32Base, \
1610  bool bMasked))ROM_QEITABLE[13])
1611 #define ROM_QEIIntClear \
1612  ((void (*)(uint32_t ui32Base, \
1613  uint32_t ui32IntFlags))ROM_QEITABLE[14])
1614 
1615 //*****************************************************************************
1616 //
1617 // Macros for calling ROM functions in the SHAMD5 API.
1618 //
1619 //*****************************************************************************
1620 #define ROM_SHAMD5IntStatus \
1621  ((uint32_t (*)(uint32_t ui32Base, \
1622  bool bMasked))ROM_SHAMD5TABLE[0])
1623 #define ROM_SHAMD5ConfigSet \
1624  ((void (*)(uint32_t ui32Base, \
1625  uint32_t ui32Mode))ROM_SHAMD5TABLE[1])
1626 #define ROM_SHAMD5DataProcess \
1627  ((void (*)(uint32_t ui32Base, \
1628  uint32_t *pui32DataSrc, \
1629  uint32_t ui32DataLength, \
1630  uint32_t *pui32HashResult))ROM_SHAMD5TABLE[2])
1631 #define ROM_SHAMD5DataWrite \
1632  ((void (*)(uint32_t ui32Base, \
1633  uint32_t *pui32Src))ROM_SHAMD5TABLE[3])
1634 #define ROM_SHAMD5DataWriteNonBlocking \
1635  ((bool (*)(uint32_t ui32Base, \
1636  uint32_t *pui32Src))ROM_SHAMD5TABLE[4])
1637 #define ROM_SHAMD5DMADisable \
1638  ((void (*)(uint32_t ui32Base))ROM_SHAMD5TABLE[5])
1639 #define ROM_SHAMD5DMAEnable \
1640  ((void (*)(uint32_t ui32Base))ROM_SHAMD5TABLE[6])
1641 #define ROM_SHAMD5HashLengthSet \
1642  ((void (*)(uint32_t ui32Base, \
1643  uint32_t ui32Length))ROM_SHAMD5TABLE[7])
1644 #define ROM_SHAMD5HMACKeySet \
1645  ((void (*)(uint32_t ui32Base, \
1646  uint32_t *pui32Src))ROM_SHAMD5TABLE[8])
1647 #define ROM_SHAMD5HMACPPKeyGenerate \
1648  ((void (*)(uint32_t ui32Base, \
1649  uint32_t *pui32Key, \
1650  uint32_t *pui32PPKey))ROM_SHAMD5TABLE[9])
1651 #define ROM_SHAMD5HMACPPKeySet \
1652  ((void (*)(uint32_t ui32Base, \
1653  uint32_t *pui32Src))ROM_SHAMD5TABLE[10])
1654 #define ROM_SHAMD5HMACProcess \
1655  ((void (*)(uint32_t ui32Base, \
1656  uint32_t *pui32DataSrc, \
1657  uint32_t ui32DataLength, \
1658  uint32_t *pui32HashResult))ROM_SHAMD5TABLE[11])
1659 #define ROM_SHAMD5IntClear \
1660  ((void (*)(uint32_t ui32Base, \
1661  uint32_t ui32IntFlags))ROM_SHAMD5TABLE[12])
1662 #define ROM_SHAMD5IntDisable \
1663  ((void (*)(uint32_t ui32Base, \
1664  uint32_t ui32IntFlags))ROM_SHAMD5TABLE[13])
1665 #define ROM_SHAMD5IntEnable \
1666  ((void (*)(uint32_t ui32Base, \
1667  uint32_t ui32IntFlags))ROM_SHAMD5TABLE[14])
1668 #define ROM_SHAMD5Reset \
1669  ((void (*)(uint32_t ui32Base))ROM_SHAMD5TABLE[15])
1670 #define ROM_SHAMD5ResultRead \
1671  ((void (*)(uint32_t ui32Base, \
1672  uint32_t *pui32Dest))ROM_SHAMD5TABLE[16])
1673 
1674 //*****************************************************************************
1675 //
1676 // Macros for calling ROM functions in the SMBus API.
1677 //
1678 //*****************************************************************************
1679 #define ROM_SMBusMasterIntProcess \
1680  ((tSMBusStatus (*)(tSMBus *psSMBus))ROM_SMBUSTABLE[0])
1681 #define ROM_SMBusARPDisable \
1682  ((void (*)(tSMBus *psSMBus))ROM_SMBUSTABLE[1])
1683 #define ROM_SMBusARPEnable \
1684  ((void (*)(tSMBus *psSMBus))ROM_SMBUSTABLE[2])
1685 #define ROM_SMBusARPUDIDPacketDecode \
1686  ((void (*)(tSMBusUDID *pUDID, \
1687  uint8_t *pui8Address, \
1688  uint8_t *pui8Data))ROM_SMBUSTABLE[3])
1689 #define ROM_SMBusARPUDIDPacketEncode \
1690  ((void (*)(tSMBusUDID *pUDID, \
1691  uint8_t ui8Address, \
1692  uint8_t *pui8Data))ROM_SMBUSTABLE[4])
1693 #define ROM_SMBusMasterARPAssignAddress \
1694  ((tSMBusStatus (*)(tSMBus *psSMBus, \
1695  uint8_t *pui8Data))ROM_SMBUSTABLE[5])
1696 #define ROM_SMBusMasterARPGetUDIDDir \
1697  ((tSMBusStatus (*)(tSMBus *psSMBus, \
1698  uint8_t ui8TargetAddress, \
1699  uint8_t *pui8Data))ROM_SMBUSTABLE[6])
1700 #define ROM_SMBusMasterARPGetUDIDGen \
1701  ((tSMBusStatus (*)(tSMBus *psSMBus, \
1702  uint8_t *pui8Data))ROM_SMBUSTABLE[7])
1703 #define ROM_SMBusMasterARPNotifyMaster \
1704  ((tSMBusStatus (*)(tSMBus *psSMBus, \
1705  uint8_t *pui8Data))ROM_SMBUSTABLE[8])
1706 #define ROM_SMBusMasterARPPrepareToARP \
1707  ((tSMBusStatus (*)(tSMBus *psSMBus))ROM_SMBUSTABLE[9])
1708 #define ROM_SMBusMasterARPResetDeviceDir \
1709  ((tSMBusStatus (*)(tSMBus *psSMBus, \
1710  uint8_t ui8TargetAddress))ROM_SMBUSTABLE[10])
1711 #define ROM_SMBusMasterARPResetDeviceGen \
1712  ((tSMBusStatus (*)(tSMBus *psSMBus))ROM_SMBUSTABLE[11])
1713 #define ROM_SMBusMasterBlockProcessCall \
1714  ((tSMBusStatus (*)(tSMBus *psSMBus, \
1715  uint8_t ui8TargetAddress, \
1716  uint8_t ui8Command, \
1717  uint8_t *pui8TxData, \
1718  uint8_t ui8TxSize, \
1719  uint8_t *pui8RxData))ROM_SMBUSTABLE[12])
1720 #define ROM_SMBusMasterBlockRead \
1721  ((tSMBusStatus (*)(tSMBus *psSMBus, \
1722  uint8_t ui8TargetAddress, \
1723  uint8_t ui8Command, \
1724  uint8_t *pui8Data))ROM_SMBUSTABLE[13])
1725 #define ROM_SMBusMasterBlockWrite \
1726  ((tSMBusStatus (*)(tSMBus *psSMBus, \
1727  uint8_t ui8TargetAddress, \
1728  uint8_t ui8Command, \
1729  uint8_t *pui8Data, \
1730  uint8_t ui8Size))ROM_SMBUSTABLE[14])
1731 #define ROM_SMBusMasterByteReceive \
1732  ((tSMBusStatus (*)(tSMBus *psSMBus, \
1733  uint8_t ui8TargetAddress, \
1734  uint8_t *pui8Data))ROM_SMBUSTABLE[15])
1735 #define ROM_SMBusMasterByteSend \
1736  ((tSMBusStatus (*)(tSMBus *psSMBus, \
1737  uint8_t ui8TargetAddress, \
1738  uint8_t ui8Data))ROM_SMBUSTABLE[16])
1739 #define ROM_SMBusMasterByteWordRead \
1740  ((tSMBusStatus (*)(tSMBus *psSMBus, \
1741  uint8_t ui8TargetAddress, \
1742  uint8_t ui8Command, \
1743  uint8_t *pui8Data, \
1744  uint8_t ui8Size))ROM_SMBUSTABLE[17])
1745 #define ROM_SMBusMasterByteWordWrite \
1746  ((tSMBusStatus (*)(tSMBus *psSMBus, \
1747  uint8_t ui8TargetAddress, \
1748  uint8_t ui8Command, \
1749  uint8_t *pui8Data, \
1750  uint8_t ui8Size))ROM_SMBUSTABLE[18])
1751 #define ROM_SMBusMasterHostNotify \
1752  ((tSMBusStatus (*)(tSMBus *psSMBus, \
1753  uint8_t ui8OwnSlaveAddress, \
1754  uint8_t *pui8Data))ROM_SMBUSTABLE[19])
1755 #define ROM_SMBusMasterI2CRead \
1756  ((tSMBusStatus (*)(tSMBus *psSMBus, \
1757  uint8_t ui8TargetAddress, \
1758  uint8_t *pui8Data, \
1759  uint8_t ui8Size))ROM_SMBUSTABLE[20])
1760 #define ROM_SMBusMasterI2CWrite \
1761  ((tSMBusStatus (*)(tSMBus *psSMBus, \
1762  uint8_t ui8TargetAddress, \
1763  uint8_t *pui8Data, \
1764  uint8_t ui8Size))ROM_SMBUSTABLE[21])
1765 #define ROM_SMBusMasterI2CWriteRead \
1766  ((tSMBusStatus (*)(tSMBus *psSMBus, \
1767  uint8_t ui8TargetAddress, \
1768  uint8_t *pui8TxData, \
1769  uint8_t ui8TxSize, \
1770  uint8_t *pui8RxData, \
1771  uint8_t ui8RxSize))ROM_SMBUSTABLE[22])
1772 #define ROM_SMBusMasterInit \
1773  ((void (*)(tSMBus *psSMBus, \
1774  uint32_t ui32I2CBase, \
1775  uint32_t ui32SMBusClock))ROM_SMBUSTABLE[23])
1776 #define ROM_SMBusMasterIntEnable \
1777  ((void (*)(tSMBus *psSMBus))ROM_SMBUSTABLE[24])
1778 #define ROM_SMBusMasterProcessCall \
1779  ((tSMBusStatus (*)(tSMBus *psSMBus, \
1780  uint8_t ui8TargetAddress, \
1781  uint8_t ui8Command, \
1782  uint8_t *pui8TxData, \
1783  uint8_t *pui8RxData))ROM_SMBUSTABLE[25])
1784 #define ROM_SMBusMasterQuickCommand \
1785  ((tSMBusStatus (*)(tSMBus *psSMBus, \
1786  uint8_t ui8TargetAddress, \
1787  bool bData))ROM_SMBUSTABLE[26])
1788 #define ROM_SMBusPECDisable \
1789  ((void (*)(tSMBus *psSMBus))ROM_SMBUSTABLE[27])
1790 #define ROM_SMBusPECEnable \
1791  ((void (*)(tSMBus *psSMBus))ROM_SMBUSTABLE[28])
1792 #define ROM_SMBusRxPacketSizeGet \
1793  ((uint8_t (*)(tSMBus *psSMBus))ROM_SMBUSTABLE[29])
1794 #define ROM_SMBusSlaveACKSend \
1795  ((void (*)(tSMBus *psSMBus, \
1796  bool bACK))ROM_SMBUSTABLE[30])
1797 #define ROM_SMBusSlaveAddressSet \
1798  ((void (*)(tSMBus *psSMBus, \
1799  uint8_t ui8AddressNum, \
1800  uint8_t ui8SlaveAddress))ROM_SMBUSTABLE[31])
1801 #define ROM_SMBusSlaveARPFlagARGet \
1802  ((bool (*)(tSMBus *psSMBus))ROM_SMBUSTABLE[32])
1803 #define ROM_SMBusSlaveARPFlagARSet \
1804  ((void (*)(tSMBus *psSMBus, \
1805  bool bValue))ROM_SMBUSTABLE[33])
1806 #define ROM_SMBusSlaveARPFlagAVGet \
1807  ((bool (*)(tSMBus *psSMBus))ROM_SMBUSTABLE[34])
1808 #define ROM_SMBusSlaveARPFlagAVSet \
1809  ((void (*)(tSMBus *psSMBus, \
1810  bool bValue))ROM_SMBUSTABLE[35])
1811 #define ROM_SMBusSlaveBlockTransferDisable \
1812  ((void (*)(tSMBus *psSMBus))ROM_SMBUSTABLE[36])
1813 #define ROM_SMBusSlaveBlockTransferEnable \
1814  ((void (*)(tSMBus *psSMBus))ROM_SMBUSTABLE[37])
1815 #define ROM_SMBusSlaveCommandGet \
1816  ((uint8_t (*)(tSMBus *psSMBus))ROM_SMBUSTABLE[38])
1817 #define ROM_SMBusSlaveI2CDisable \
1818  ((void (*)(tSMBus *psSMBus))ROM_SMBUSTABLE[39])
1819 #define ROM_SMBusSlaveI2CEnable \
1820  ((void (*)(tSMBus *psSMBus))ROM_SMBUSTABLE[40])
1821 #define ROM_SMBusSlaveInit \
1822  ((void (*)(tSMBus *psSMBus, \
1823  uint32_t ui32I2CBase))ROM_SMBUSTABLE[41])
1824 #define ROM_SMBusSlaveIntAddressGet \
1825  ((tSMBusStatus (*)(tSMBus *psSMBus))ROM_SMBUSTABLE[42])
1826 #define ROM_SMBusSlaveIntEnable \
1827  ((void (*)(tSMBus *psSMBus))ROM_SMBUSTABLE[43])
1828 #define ROM_SMBusSlaveIntProcess \
1829  ((tSMBusStatus (*)(tSMBus *psSMBus))ROM_SMBUSTABLE[44])
1830 #define ROM_SMBusSlaveManualACKDisable \
1831  ((void (*)(tSMBus *psSMBus))ROM_SMBUSTABLE[45])
1832 #define ROM_SMBusSlaveManualACKEnable \
1833  ((void (*)(tSMBus *psSMBus))ROM_SMBUSTABLE[46])
1834 #define ROM_SMBusSlaveManualACKStatusGet \
1835  ((bool (*)(tSMBus *psSMBus))ROM_SMBUSTABLE[47])
1836 #define ROM_SMBusSlaveProcessCallDisable \
1837  ((void (*)(tSMBus *psSMBus))ROM_SMBUSTABLE[48])
1838 #define ROM_SMBusSlaveProcessCallEnable \
1839  ((void (*)(tSMBus *psSMBus))ROM_SMBUSTABLE[49])
1840 #define ROM_SMBusSlaveRxBufferSet \
1841  ((void (*)(tSMBus *psSMBus, \
1842  uint8_t *pui8Data, \
1843  uint8_t ui8Size))ROM_SMBUSTABLE[50])
1844 #define ROM_SMBusSlaveTransferInit \
1845  ((void (*)(tSMBus *psSMBus))ROM_SMBUSTABLE[51])
1846 #define ROM_SMBusSlaveTxBufferSet \
1847  ((void (*)(tSMBus *psSMBus, \
1848  uint8_t *pui8Data, \
1849  uint8_t ui8Size))ROM_SMBUSTABLE[52])
1850 #define ROM_SMBusSlaveUDIDSet \
1851  ((void (*)(tSMBus *psSMBus, \
1852  tSMBusUDID *pUDID))ROM_SMBUSTABLE[53])
1853 #define ROM_SMBusStatusGet \
1854  ((tSMBusStatus (*)(tSMBus *psSMBus))ROM_SMBUSTABLE[54])
1855 #define ROM_SMBusSlaveDataSend \
1856  ((tSMBusStatus (*)(tSMBus *psSMBus))ROM_SMBUSTABLE[55])
1857 #define ROM_SMBusFIFOEnable \
1858  ((void (*)(tSMBus *psSMBus))ROM_SMBUSTABLE[56])
1859 #define ROM_SMBusFIFODisable \
1860  ((void (*)(tSMBus *psSMBus))ROM_SMBUSTABLE[57])
1861 #define ROM_SMBusDMAEnable \
1862  ((void (*)(tSMBus *psSMBus, \
1863  uint8_t ui8TxChannel, \
1864  uint8_t ui8RxChannel))ROM_SMBUSTABLE[58])
1865 #define ROM_SMBusDMADisable \
1866  ((void (*)(tSMBus *psSMBus))ROM_SMBUSTABLE[59])
1867 
1868 //*****************************************************************************
1869 //
1870 // Macros for calling ROM functions in the SPIFlash API.
1871 //
1872 //*****************************************************************************
1873 #define ROM_SPIFlashIntHandler \
1874  ((uint32_t (*)(tSPIFlashState *pState))ROM_SPIFLASHTABLE[0])
1875 #define ROM_SPIFlashInit \
1876  ((void (*)(uint32_t ui32Base, \
1877  uint32_t ui32Clock, \
1878  uint32_t ui32BitRate))ROM_SPIFLASHTABLE[1])
1879 #define ROM_SPIFlashWriteStatus \
1880  ((void (*)(uint32_t ui32Base, \
1881  uint8_t ui8Status))ROM_SPIFLASHTABLE[2])
1882 #define ROM_SPIFlashPageProgram \
1883  ((void (*)(uint32_t ui32Base, \
1884  uint32_t ui32Addr, \
1885  const uint8_t *pui8Data, \
1886  uint32_t ui32Count))ROM_SPIFLASHTABLE[3])
1887 #define ROM_SPIFlashPageProgramNonBlocking \
1888  ((void (*)(tSPIFlashState *pState, \
1889  uint32_t ui32Base, \
1890  uint32_t ui32Addr, \
1891  const uint8_t *pui8Data, \
1892  uint32_t ui32Count, \
1893  bool bUseDMA, \
1894  uint32_t ui32TxChannel))ROM_SPIFLASHTABLE[4])
1895 #define ROM_SPIFlashRead \
1896  ((void (*)(uint32_t ui32Base, \
1897  uint32_t ui32Addr, \
1898  uint8_t *pui8Data, \
1899  uint32_t ui32Count))ROM_SPIFLASHTABLE[5])
1900 #define ROM_SPIFlashReadNonBlocking \
1901  ((void (*)(tSPIFlashState *pState, \
1902  uint32_t ui32Base, \
1903  uint32_t ui32Addr, \
1904  uint8_t *pui8Data, \
1905  uint32_t ui32Count, \
1906  bool bUseDMA, \
1907  uint32_t ui32TxChannel, \
1908  uint32_t ui32RxChannel))ROM_SPIFLASHTABLE[6])
1909 #define ROM_SPIFlashWriteDisable \
1910  ((void (*)(uint32_t ui32Base))ROM_SPIFLASHTABLE[7])
1911 #define ROM_SPIFlashReadStatus \
1912  ((uint8_t (*)(uint32_t ui32Base))ROM_SPIFLASHTABLE[8])
1913 #define ROM_SPIFlashWriteEnable \
1914  ((void (*)(uint32_t ui32Base))ROM_SPIFLASHTABLE[9])
1915 #define ROM_SPIFlashFastRead \
1916  ((void (*)(uint32_t ui32Base, \
1917  uint32_t ui32Addr, \
1918  uint8_t *pui8Data, \
1919  uint32_t ui32Count))ROM_SPIFLASHTABLE[10])
1920 #define ROM_SPIFlashFastReadNonBlocking \
1921  ((void (*)(tSPIFlashState *pState, \
1922  uint32_t ui32Base, \
1923  uint32_t ui32Addr, \
1924  uint8_t *pui8Data, \
1925  uint32_t ui32Count, \
1926  bool bUseDMA, \
1927  uint32_t ui32TxChannel, \
1928  uint32_t ui32RxChannel))ROM_SPIFLASHTABLE[11])
1929 #define ROM_SPIFlashSectorErase \
1930  ((void (*)(uint32_t ui32Base, \
1931  uint32_t ui32Addr))ROM_SPIFLASHTABLE[12])
1932 #define ROM_SPIFlashDualRead \
1933  ((void (*)(uint32_t ui32Base, \
1934  uint32_t ui32Addr, \
1935  uint8_t *pui8Data, \
1936  uint32_t ui32Count))ROM_SPIFLASHTABLE[13])
1937 #define ROM_SPIFlashDualReadNonBlocking \
1938  ((void (*)(tSPIFlashState *pState, \
1939  uint32_t ui32Base, \
1940  uint32_t ui32Addr, \
1941  uint8_t *pui8Data, \
1942  uint32_t ui32Count, \
1943  bool bUseDMA, \
1944  uint32_t ui32TxChannel, \
1945  uint32_t ui32RxChannel))ROM_SPIFLASHTABLE[14])
1946 #define ROM_SPIFlashBlockErase32 \
1947  ((void (*)(uint32_t ui32Base, \
1948  uint32_t ui32Addr))ROM_SPIFLASHTABLE[15])
1949 #define ROM_SPIFlashQuadRead \
1950  ((void (*)(uint32_t ui32Base, \
1951  uint32_t ui32Addr, \
1952  uint8_t *pui8Data, \
1953  uint32_t ui32Count))ROM_SPIFLASHTABLE[16])
1954 #define ROM_SPIFlashQuadReadNonBlocking \
1955  ((void (*)(tSPIFlashState *pState, \
1956  uint32_t ui32Base, \
1957  uint32_t ui32Addr, \
1958  uint8_t *pui8Data, \
1959  uint32_t ui32Count, \
1960  bool bUseDMA, \
1961  uint32_t ui32TxChannel, \
1962  uint32_t ui32RxChannel))ROM_SPIFLASHTABLE[17])
1963 #define ROM_SPIFlashReadID \
1964  ((void (*)(uint32_t ui32Base, \
1965  uint8_t *pui8ManufacturerID, \
1966  uint16_t *pui16DeviceID))ROM_SPIFLASHTABLE[18])
1967 #define ROM_SPIFlashChipErase \
1968  ((void (*)(uint32_t ui32Base))ROM_SPIFLASHTABLE[19])
1969 #define ROM_SPIFlashBlockErase64 \
1970  ((void (*)(uint32_t ui32Base, \
1971  uint32_t ui32Addr))ROM_SPIFLASHTABLE[20])
1972 
1973 //*****************************************************************************
1974 //
1975 // Macros for calling ROM functions in the SSI API.
1976 //
1977 //*****************************************************************************
1978 #define ROM_SSIDataPut \
1979  ((void (*)(uint32_t ui32Base, \
1980  uint32_t ui32Data))ROM_SSITABLE[0])
1981 #define ROM_SSIConfigSetExpClk \
1982  ((void (*)(uint32_t ui32Base, \
1983  uint32_t ui32SSIClk, \
1984  uint32_t ui32Protocol, \
1985  uint32_t ui32Mode, \
1986  uint32_t ui32BitRate, \
1987  uint32_t ui32DataWidth))ROM_SSITABLE[1])
1988 #define ROM_SSIEnable \
1989  ((void (*)(uint32_t ui32Base))ROM_SSITABLE[2])
1990 #define ROM_SSIDisable \
1991  ((void (*)(uint32_t ui32Base))ROM_SSITABLE[3])
1992 #define ROM_SSIIntEnable \
1993  ((void (*)(uint32_t ui32Base, \
1994  uint32_t ui32IntFlags))ROM_SSITABLE[4])
1995 #define ROM_SSIIntDisable \
1996  ((void (*)(uint32_t ui32Base, \
1997  uint32_t ui32IntFlags))ROM_SSITABLE[5])
1998 #define ROM_SSIIntStatus \
1999  ((uint32_t (*)(uint32_t ui32Base, \
2000  bool bMasked))ROM_SSITABLE[6])
2001 #define ROM_SSIIntClear \
2002  ((void (*)(uint32_t ui32Base, \
2003  uint32_t ui32IntFlags))ROM_SSITABLE[7])
2004 #define ROM_SSIDataPutNonBlocking \
2005  ((int32_t (*)(uint32_t ui32Base, \
2006  uint32_t ui32Data))ROM_SSITABLE[8])
2007 #define ROM_SSIDataGet \
2008  ((void (*)(uint32_t ui32Base, \
2009  uint32_t *pui32Data))ROM_SSITABLE[9])
2010 #define ROM_SSIDataGetNonBlocking \
2011  ((int32_t (*)(uint32_t ui32Base, \
2012  uint32_t *pui32Data))ROM_SSITABLE[10])
2013 #define ROM_UpdateSSI \
2014  ((void (*)(void))ROM_SSITABLE[11])
2015 #define ROM_SSIDMAEnable \
2016  ((void (*)(uint32_t ui32Base, \
2017  uint32_t ui32DMAFlags))ROM_SSITABLE[12])
2018 #define ROM_SSIDMADisable \
2019  ((void (*)(uint32_t ui32Base, \
2020  uint32_t ui32DMAFlags))ROM_SSITABLE[13])
2021 #define ROM_SSIBusy \
2022  ((bool (*)(uint32_t ui32Base))ROM_SSITABLE[14])
2023 #define ROM_SSIClockSourceGet \
2024  ((uint32_t (*)(uint32_t ui32Base))ROM_SSITABLE[15])
2025 #define ROM_SSIClockSourceSet \
2026  ((void (*)(uint32_t ui32Base, \
2027  uint32_t ui32Source))ROM_SSITABLE[16])
2028 #define ROM_SSIAdvModeSet \
2029  ((void (*)(uint32_t ui32Base, \
2030  uint32_t ui32Mode))ROM_SSITABLE[17])
2031 #define ROM_SSIAdvDataPutFrameEnd \
2032  ((void (*)(uint32_t ui32Base, \
2033  uint32_t ui32Data))ROM_SSITABLE[18])
2034 #define ROM_SSIAdvDataPutFrameEndNonBlocking \
2035  ((int32_t (*)(uint32_t ui32Base, \
2036  uint32_t ui32Data))ROM_SSITABLE[19])
2037 #define ROM_SSIAdvFrameHoldEnable \
2038  ((void (*)(uint32_t ui32Base))ROM_SSITABLE[20])
2039 #define ROM_SSIAdvFrameHoldDisable \
2040  ((void (*)(uint32_t ui32Base))ROM_SSITABLE[21])
2041 
2042 //*****************************************************************************
2043 //
2044 // Macros for calling ROM functions in the SysCtl API.
2045 //
2046 //*****************************************************************************
2047 #define ROM_SysCtlSleep \
2048  ((void (*)(void))ROM_SYSCTLTABLE[0])
2049 #define ROM_SysCtlSRAMSizeGet \
2050  ((uint32_t (*)(void))ROM_SYSCTLTABLE[1])
2051 #define ROM_SysCtlFlashSizeGet \
2052  ((uint32_t (*)(void))ROM_SYSCTLTABLE[2])
2053 #define ROM_SysCtlPeripheralPresent \
2054  ((bool (*)(uint32_t ui32Peripheral))ROM_SYSCTLTABLE[4])
2055 #define ROM_SysCtlPeripheralReset \
2056  ((void (*)(uint32_t ui32Peripheral))ROM_SYSCTLTABLE[5])
2057 #define ROM_SysCtlPeripheralEnable \
2058  ((void (*)(uint32_t ui32Peripheral))ROM_SYSCTLTABLE[6])
2059 #define ROM_SysCtlPeripheralDisable \
2060  ((void (*)(uint32_t ui32Peripheral))ROM_SYSCTLTABLE[7])
2061 #define ROM_SysCtlPeripheralSleepEnable \
2062  ((void (*)(uint32_t ui32Peripheral))ROM_SYSCTLTABLE[8])
2063 #define ROM_SysCtlPeripheralSleepDisable \
2064  ((void (*)(uint32_t ui32Peripheral))ROM_SYSCTLTABLE[9])
2065 #define ROM_SysCtlPeripheralDeepSleepEnable \
2066  ((void (*)(uint32_t ui32Peripheral))ROM_SYSCTLTABLE[10])
2067 #define ROM_SysCtlPeripheralDeepSleepDisable \
2068  ((void (*)(uint32_t ui32Peripheral))ROM_SYSCTLTABLE[11])
2069 #define ROM_SysCtlPeripheralClockGating \
2070  ((void (*)(bool bEnable))ROM_SYSCTLTABLE[12])
2071 #define ROM_SysCtlIntEnable \
2072  ((void (*)(uint32_t ui32Ints))ROM_SYSCTLTABLE[13])
2073 #define ROM_SysCtlIntDisable \
2074  ((void (*)(uint32_t ui32Ints))ROM_SYSCTLTABLE[14])
2075 #define ROM_SysCtlIntClear \
2076  ((void (*)(uint32_t ui32Ints))ROM_SYSCTLTABLE[15])
2077 #define ROM_SysCtlIntStatus \
2078  ((uint32_t (*)(bool bMasked))ROM_SYSCTLTABLE[16])
2079 #define ROM_SysCtlReset \
2080  ((void (*)(void))ROM_SYSCTLTABLE[19])
2081 #define ROM_SysCtlDeepSleep \
2082  ((void (*)(void))ROM_SYSCTLTABLE[20])
2083 #define ROM_SysCtlResetCauseGet \
2084  ((uint32_t (*)(void))ROM_SYSCTLTABLE[21])
2085 #define ROM_SysCtlResetCauseClear \
2086  ((void (*)(uint32_t ui32Causes))ROM_SYSCTLTABLE[22])
2087 #define ROM_SysCtlDelay \
2088  ((void (*)(uint32_t ui32Count))ROM_SYSCTLTABLE[34])
2089 #define ROM_SysCtlPeripheralReady \
2090  ((bool (*)(uint32_t ui32Peripheral))ROM_SYSCTLTABLE[35])
2091 #define ROM_SysCtlPeripheralPowerOn \
2092  ((void (*)(uint32_t ui32Peripheral))ROM_SYSCTLTABLE[36])
2093 #define ROM_SysCtlPeripheralPowerOff \
2094  ((void (*)(uint32_t ui32Peripheral))ROM_SYSCTLTABLE[37])
2095 #define ROM_SysCtlMOSCConfigSet \
2096  ((void (*)(uint32_t ui32Config))ROM_SYSCTLTABLE[44])
2097 #define ROM_SysCtlPIOSCCalibrate \
2098  ((uint32_t (*)(uint32_t ui32Type))ROM_SYSCTLTABLE[45])
2099 #define ROM_SysCtlDeepSleepClockConfigSet \
2100  ((void (*)(uint32_t ui32Div, \
2101  uint32_t ui32Config))ROM_SYSCTLTABLE[47])
2102 #define ROM_SysCtlResetBehaviorSet \
2103  ((void (*)(uint32_t ui32Behavior))ROM_SYSCTLTABLE[51])
2104 #define ROM_SysCtlResetBehaviorGet \
2105  ((uint32_t (*)(void))ROM_SYSCTLTABLE[52])
2106 #define ROM_SysCtlFlashSectorSizeGet \
2107  ((uint32_t (*)(void))ROM_SYSCTLTABLE[54])
2108 #define ROM_SysCtlVoltageEventConfig \
2109  ((void (*)(uint32_t ui32Config))ROM_SYSCTLTABLE[55])
2110 #define ROM_SysCtlVoltageEventStatus \
2111  ((uint32_t (*)(void))ROM_SYSCTLTABLE[56])
2112 #define ROM_SysCtlVoltageEventClear \
2113  ((void (*)(uint32_t ui32Status))ROM_SYSCTLTABLE[57])
2114 #define ROM_SysCtlNMIStatus \
2115  ((uint32_t (*)(void))ROM_SYSCTLTABLE[58])
2116 #define ROM_SysCtlNMIClear \
2117  ((void (*)(uint32_t ui32Status))ROM_SYSCTLTABLE[59])
2118 #define ROM_SysCtlClockOutConfig \
2119  ((void (*)(uint32_t ui32Config, \
2120  uint32_t ui32Div))ROM_SYSCTLTABLE[60])
2121 #define ROM_SysCtlAltClkConfig \
2122  ((void (*)(uint32_t ui32Config))ROM_SYSCTLTABLE[61])
2123 
2124 //*****************************************************************************
2125 //
2126 // Macros for calling ROM functions in the SysExc API.
2127 //
2128 //*****************************************************************************
2129 #define ROM_SysExcIntStatus \
2130  ((uint32_t (*)(bool bMasked))ROM_SYSEXCTABLE[0])
2131 #define ROM_SysExcIntClear \
2132  ((void (*)(uint32_t ui32IntFlags))ROM_SYSEXCTABLE[1])
2133 #define ROM_SysExcIntDisable \
2134  ((void (*)(uint32_t ui32IntFlags))ROM_SYSEXCTABLE[2])
2135 #define ROM_SysExcIntEnable \
2136  ((void (*)(uint32_t ui32IntFlags))ROM_SYSEXCTABLE[3])
2137 
2138 //*****************************************************************************
2139 //
2140 // Macros for calling ROM functions in the SysTick API.
2141 //
2142 //*****************************************************************************
2143 #define ROM_SysTickValueGet \
2144  ((uint32_t (*)(void))ROM_SYSTICKTABLE[0])
2145 #define ROM_SysTickEnable \
2146  ((void (*)(void))ROM_SYSTICKTABLE[1])
2147 #define ROM_SysTickDisable \
2148  ((void (*)(void))ROM_SYSTICKTABLE[2])
2149 #define ROM_SysTickIntEnable \
2150  ((void (*)(void))ROM_SYSTICKTABLE[3])
2151 #define ROM_SysTickIntDisable \
2152  ((void (*)(void))ROM_SYSTICKTABLE[4])
2153 #define ROM_SysTickPeriodSet \
2154  ((void (*)(uint32_t ui32Period))ROM_SYSTICKTABLE[5])
2155 #define ROM_SysTickPeriodGet \
2156  ((uint32_t (*)(void))ROM_SYSTICKTABLE[6])
2157 
2158 //*****************************************************************************
2159 //
2160 // Macros for calling ROM functions in the Timer API.
2161 //
2162 //*****************************************************************************
2163 #define ROM_TimerIntClear \
2164  ((void (*)(uint32_t ui32Base, \
2165  uint32_t ui32IntFlags))ROM_TIMERTABLE[0])
2166 #define ROM_TimerEnable \
2167  ((void (*)(uint32_t ui32Base, \
2168  uint32_t ui32Timer))ROM_TIMERTABLE[1])
2169 #define ROM_TimerDisable \
2170  ((void (*)(uint32_t ui32Base, \
2171  uint32_t ui32Timer))ROM_TIMERTABLE[2])
2172 #define ROM_TimerConfigure \
2173  ((void (*)(uint32_t ui32Base, \
2174  uint32_t ui32Config))ROM_TIMERTABLE[3])
2175 #define ROM_TimerControlLevel \
2176  ((void (*)(uint32_t ui32Base, \
2177  uint32_t ui32Timer, \
2178  bool bInvert))ROM_TIMERTABLE[4])
2179 #define ROM_TimerControlEvent \
2180  ((void (*)(uint32_t ui32Base, \
2181  uint32_t ui32Timer, \
2182  uint32_t ui32Event))ROM_TIMERTABLE[6])
2183 #define ROM_TimerControlStall \
2184  ((void (*)(uint32_t ui32Base, \
2185  uint32_t ui32Timer, \
2186  bool bStall))ROM_TIMERTABLE[7])
2187 #define ROM_TimerRTCEnable \
2188  ((void (*)(uint32_t ui32Base))ROM_TIMERTABLE[8])
2189 #define ROM_TimerRTCDisable \
2190  ((void (*)(uint32_t ui32Base))ROM_TIMERTABLE[9])
2191 #define ROM_TimerPrescaleSet \
2192  ((void (*)(uint32_t ui32Base, \
2193  uint32_t ui32Timer, \
2194  uint32_t ui32Value))ROM_TIMERTABLE[10])
2195 #define ROM_TimerPrescaleGet \
2196  ((uint32_t (*)(uint32_t ui32Base, \
2197  uint32_t ui32Timer))ROM_TIMERTABLE[11])
2198 #define ROM_TimerPrescaleMatchSet \
2199  ((void (*)(uint32_t ui32Base, \
2200  uint32_t ui32Timer, \
2201  uint32_t ui32Value))ROM_TIMERTABLE[12])
2202 #define ROM_TimerPrescaleMatchGet \
2203  ((uint32_t (*)(uint32_t ui32Base, \
2204  uint32_t ui32Timer))ROM_TIMERTABLE[13])
2205 #define ROM_TimerLoadSet \
2206  ((void (*)(uint32_t ui32Base, \
2207  uint32_t ui32Timer, \
2208  uint32_t ui32Value))ROM_TIMERTABLE[14])
2209 #define ROM_TimerLoadGet \
2210  ((uint32_t (*)(uint32_t ui32Base, \
2211  uint32_t ui32Timer))ROM_TIMERTABLE[15])
2212 #define ROM_TimerValueGet \
2213  ((uint32_t (*)(uint32_t ui32Base, \
2214  uint32_t ui32Timer))ROM_TIMERTABLE[16])
2215 #define ROM_TimerMatchSet \
2216  ((void (*)(uint32_t ui32Base, \
2217  uint32_t ui32Timer, \
2218  uint32_t ui32Value))ROM_TIMERTABLE[17])
2219 #define ROM_TimerMatchGet \
2220  ((uint32_t (*)(uint32_t ui32Base, \
2221  uint32_t ui32Timer))ROM_TIMERTABLE[18])
2222 #define ROM_TimerIntEnable \
2223  ((void (*)(uint32_t ui32Base, \
2224  uint32_t ui32IntFlags))ROM_TIMERTABLE[19])
2225 #define ROM_TimerIntDisable \
2226  ((void (*)(uint32_t ui32Base, \
2227  uint32_t ui32IntFlags))ROM_TIMERTABLE[20])
2228 #define ROM_TimerIntStatus \
2229  ((uint32_t (*)(uint32_t ui32Base, \
2230  bool bMasked))ROM_TIMERTABLE[21])
2231 #define ROM_TimerControlWaitOnTrigger \
2232  ((void (*)(uint32_t ui32Base, \
2233  uint32_t ui32Timer, \
2234  bool bWait))ROM_TIMERTABLE[22])
2235 #define ROM_TimerClockSourceGet \
2236  ((uint32_t (*)(uint32_t ui32Base))ROM_TIMERTABLE[28])
2237 #define ROM_TimerClockSourceSet \
2238  ((void (*)(uint32_t ui32Base, \
2239  uint32_t ui32Source))ROM_TIMERTABLE[29])
2240 #define ROM_TimerADCEventGet \
2241  ((uint32_t (*)(uint32_t ui32Base))ROM_TIMERTABLE[30])
2242 #define ROM_TimerADCEventSet \
2243  ((void (*)(uint32_t ui32Base, \
2244  uint32_t ui32ADCEvent))ROM_TIMERTABLE[31])
2245 #define ROM_TimerDMAEventGet \
2246  ((uint32_t (*)(uint32_t ui32Base))ROM_TIMERTABLE[32])
2247 #define ROM_TimerDMAEventSet \
2248  ((void (*)(uint32_t ui32Base, \
2249  uint32_t ui32DMAEvent))ROM_TIMERTABLE[33])
2250 #define ROM_TimerSynchronize \
2251  ((void (*)(uint32_t ui32Base, \
2252  uint32_t ui32Timers))ROM_TIMERTABLE[34])
2253 
2254 //*****************************************************************************
2255 //
2256 // Macros for calling ROM functions in the UART API.
2257 //
2258 //*****************************************************************************
2259 #define ROM_UARTCharPut \
2260  ((void (*)(uint32_t ui32Base, \
2261  unsigned char ucData))ROM_UARTTABLE[0])
2262 #define ROM_UARTParityModeSet \
2263  ((void (*)(uint32_t ui32Base, \
2264  uint32_t ui32Parity))ROM_UARTTABLE[1])
2265 #define ROM_UARTParityModeGet \
2266  ((uint32_t (*)(uint32_t ui32Base))ROM_UARTTABLE[2])
2267 #define ROM_UARTFIFOLevelSet \
2268  ((void (*)(uint32_t ui32Base, \
2269  uint32_t ui32TxLevel, \
2270  uint32_t ui32RxLevel))ROM_UARTTABLE[3])
2271 #define ROM_UARTFIFOLevelGet \
2272  ((void (*)(uint32_t ui32Base, \
2273  uint32_t *pui32TxLevel, \
2274  uint32_t *pui32RxLevel))ROM_UARTTABLE[4])
2275 #define ROM_UARTConfigSetExpClk \
2276  ((void (*)(uint32_t ui32Base, \
2277  uint32_t ui32UARTClk, \
2278  uint32_t ui32Baud, \
2279  uint32_t ui32Config))ROM_UARTTABLE[5])
2280 #define ROM_UARTConfigGetExpClk \
2281  ((void (*)(uint32_t ui32Base, \
2282  uint32_t ui32UARTClk, \
2283  uint32_t *pui32Baud, \
2284  uint32_t *pui32Config))ROM_UARTTABLE[6])
2285 #define ROM_UARTEnable \
2286  ((void (*)(uint32_t ui32Base))ROM_UARTTABLE[7])
2287 #define ROM_UARTDisable \
2288  ((void (*)(uint32_t ui32Base))ROM_UARTTABLE[8])
2289 #define ROM_UARTEnableSIR \
2290  ((void (*)(uint32_t ui32Base, \
2291  bool bLowPower))ROM_UARTTABLE[9])
2292 #define ROM_UARTDisableSIR \
2293  ((void (*)(uint32_t ui32Base))ROM_UARTTABLE[10])
2294 #define ROM_UARTCharsAvail \
2295  ((bool (*)(uint32_t ui32Base))ROM_UARTTABLE[11])
2296 #define ROM_UARTSpaceAvail \
2297  ((bool (*)(uint32_t ui32Base))ROM_UARTTABLE[12])
2298 #define ROM_UARTCharGetNonBlocking \
2299  ((int32_t (*)(uint32_t ui32Base))ROM_UARTTABLE[13])
2300 #define ROM_UARTCharGet \
2301  ((int32_t (*)(uint32_t ui32Base))ROM_UARTTABLE[14])
2302 #define ROM_UARTCharPutNonBlocking \
2303  ((bool (*)(uint32_t ui32Base, \
2304  unsigned char ucData))ROM_UARTTABLE[15])
2305 #define ROM_UARTBreakCtl \
2306  ((void (*)(uint32_t ui32Base, \
2307  bool bBreakState))ROM_UARTTABLE[16])
2308 #define ROM_UARTIntEnable \
2309  ((void (*)(uint32_t ui32Base, \
2310  uint32_t ui32IntFlags))ROM_UARTTABLE[17])
2311 #define ROM_UARTIntDisable \
2312  ((void (*)(uint32_t ui32Base, \
2313  uint32_t ui32IntFlags))ROM_UARTTABLE[18])
2314 #define ROM_UARTIntStatus \
2315  ((uint32_t (*)(uint32_t ui32Base, \
2316  bool bMasked))ROM_UARTTABLE[19])
2317 #define ROM_UARTIntClear \
2318  ((void (*)(uint32_t ui32Base, \
2319  uint32_t ui32IntFlags))ROM_UARTTABLE[20])
2320 #define ROM_UpdateUART \
2321  ((void (*)(void))ROM_UARTTABLE[21])
2322 #define ROM_UARTDMAEnable \
2323  ((void (*)(uint32_t ui32Base, \
2324  uint32_t ui32DMAFlags))ROM_UARTTABLE[22])
2325 #define ROM_UARTDMADisable \
2326  ((void (*)(uint32_t ui32Base, \
2327  uint32_t ui32DMAFlags))ROM_UARTTABLE[23])
2328 #define ROM_UARTFIFOEnable \
2329  ((void (*)(uint32_t ui32Base))ROM_UARTTABLE[24])
2330 #define ROM_UARTFIFODisable \
2331  ((void (*)(uint32_t ui32Base))ROM_UARTTABLE[25])
2332 #define ROM_UARTBusy \
2333  ((bool (*)(uint32_t ui32Base))ROM_UARTTABLE[26])
2334 #define ROM_UARTTxIntModeSet \
2335  ((void (*)(uint32_t ui32Base, \
2336  uint32_t ui32Mode))ROM_UARTTABLE[27])
2337 #define ROM_UARTTxIntModeGet \
2338  ((uint32_t (*)(uint32_t ui32Base))ROM_UARTTABLE[28])
2339 #define ROM_UARTRxErrorGet \
2340  ((uint32_t (*)(uint32_t ui32Base))ROM_UARTTABLE[29])
2341 #define ROM_UARTRxErrorClear \
2342  ((void (*)(uint32_t ui32Base))ROM_UARTTABLE[30])
2343 #define ROM_UARTClockSourceSet \
2344  ((void (*)(uint32_t ui32Base, \
2345  uint32_t ui32Source))ROM_UARTTABLE[31])
2346 #define ROM_UARTClockSourceGet \
2347  ((uint32_t (*)(uint32_t ui32Base))ROM_UARTTABLE[32])
2348 #define ROM_UART9BitEnable \
2349  ((void (*)(uint32_t ui32Base))ROM_UARTTABLE[33])
2350 #define ROM_UART9BitDisable \
2351  ((void (*)(uint32_t ui32Base))ROM_UARTTABLE[34])
2352 #define ROM_UART9BitAddrSet \
2353  ((void (*)(uint32_t ui32Base, \
2354  uint8_t ui8Addr, \
2355  uint8_t ui8Mask))ROM_UARTTABLE[35])
2356 #define ROM_UART9BitAddrSend \
2357  ((void (*)(uint32_t ui32Base, \
2358  uint8_t ui8Addr))ROM_UARTTABLE[36])
2359 #define ROM_UARTSmartCardDisable \
2360  ((void (*)(uint32_t ui32Base))ROM_UARTTABLE[37])
2361 #define ROM_UARTSmartCardEnable \
2362  ((void (*)(uint32_t ui32Base))ROM_UARTTABLE[38])
2363 #define ROM_UARTModemControlClear \
2364  ((void (*)(uint32_t ui32Base, \
2365  uint32_t ui32Control))ROM_UARTTABLE[39])
2366 #define ROM_UARTModemControlGet \
2367  ((uint32_t (*)(uint32_t ui32Base))ROM_UARTTABLE[40])
2368 #define ROM_UARTModemControlSet \
2369  ((void (*)(uint32_t ui32Base, \
2370  uint32_t ui32Control))ROM_UARTTABLE[41])
2371 #define ROM_UARTModemStatusGet \
2372  ((uint32_t (*)(uint32_t ui32Base))ROM_UARTTABLE[42])
2373 #define ROM_UARTFlowControlGet \
2374  ((uint32_t (*)(uint32_t ui32Base))ROM_UARTTABLE[43])
2375 #define ROM_UARTFlowControlSet \
2376  ((void (*)(uint32_t ui32Base, \
2377  uint32_t ui32Mode))ROM_UARTTABLE[44])
2378 
2379 //*****************************************************************************
2380 //
2381 // Macros for calling ROM functions in the uDMA API.
2382 //
2383 //*****************************************************************************
2384 #define ROM_uDMAChannelTransferSet \
2385  ((void (*)(uint32_t ui32ChannelStructIndex, \
2386  uint32_t ui32Mode, \
2387  void *pvSrcAddr, \
2388  void *pvDstAddr, \
2389  uint32_t ui32TransferSize))ROM_UDMATABLE[0])
2390 #define ROM_uDMAEnable \
2391  ((void (*)(void))ROM_UDMATABLE[1])
2392 #define ROM_uDMADisable \
2393  ((void (*)(void))ROM_UDMATABLE[2])
2394 #define ROM_uDMAErrorStatusGet \
2395  ((uint32_t (*)(void))ROM_UDMATABLE[3])
2396 #define ROM_uDMAErrorStatusClear \
2397  ((void (*)(void))ROM_UDMATABLE[4])
2398 #define ROM_uDMAChannelEnable \
2399  ((void (*)(uint32_t ui32ChannelNum))ROM_UDMATABLE[5])
2400 #define ROM_uDMAChannelDisable \
2401  ((void (*)(uint32_t ui32ChannelNum))ROM_UDMATABLE[6])
2402 #define ROM_uDMAChannelIsEnabled \
2403  ((bool (*)(uint32_t ui32ChannelNum))ROM_UDMATABLE[7])
2404 #define ROM_uDMAControlBaseSet \
2405  ((void (*)(void *pControlTable))ROM_UDMATABLE[8])
2406 #define ROM_uDMAControlBaseGet \
2407  ((void * (*)(void))ROM_UDMATABLE[9])
2408 #define ROM_uDMAChannelRequest \
2409  ((void (*)(uint32_t ui32ChannelNum))ROM_UDMATABLE[10])
2410 #define ROM_uDMAChannelAttributeEnable \
2411  ((void (*)(uint32_t ui32ChannelNum, \
2412  uint32_t ui32Attr))ROM_UDMATABLE[11])
2413 #define ROM_uDMAChannelAttributeDisable \
2414  ((void (*)(uint32_t ui32ChannelNum, \
2415  uint32_t ui32Attr))ROM_UDMATABLE[12])
2416 #define ROM_uDMAChannelAttributeGet \
2417  ((uint32_t (*)(uint32_t ui32ChannelNum))ROM_UDMATABLE[13])
2418 #define ROM_uDMAChannelControlSet \
2419  ((void (*)(uint32_t ui32ChannelStructIndex, \
2420  uint32_t ui32Control))ROM_UDMATABLE[14])
2421 #define ROM_uDMAChannelSizeGet \
2422  ((uint32_t (*)(uint32_t ui32ChannelStructIndex))ROM_UDMATABLE[15])
2423 #define ROM_uDMAChannelModeGet \
2424  ((uint32_t (*)(uint32_t ui32ChannelStructIndex))ROM_UDMATABLE[16])
2425 #define ROM_uDMAControlAlternateBaseGet \
2426  ((void * (*)(void))ROM_UDMATABLE[21])
2427 #define ROM_uDMAChannelScatterGatherSet \
2428  ((void (*)(uint32_t ui32ChannelNum, \
2429  uint32_t ui32TaskCount, \
2430  void *pvTaskList, \
2431  uint32_t ui32IsPeriphSG))ROM_UDMATABLE[22])
2432 #define ROM_uDMAChannelAssign \
2433  ((void (*)(uint32_t ui32Mapping))ROM_UDMATABLE[23])
2434 
2435 //*****************************************************************************
2436 //
2437 // Macros for calling ROM functions in the USB API.
2438 //
2439 //*****************************************************************************
2440 #define ROM_USBDevAddrGet \
2441  ((uint32_t (*)(uint32_t ui32Base))ROM_USBTABLE[1])
2442 #define ROM_USBDevAddrSet \
2443  ((void (*)(uint32_t ui32Base, \
2444  uint32_t ui32Address))ROM_USBTABLE[2])
2445 #define ROM_USBDevConnect \
2446  ((void (*)(uint32_t ui32Base))ROM_USBTABLE[3])
2447 #define ROM_USBDevDisconnect \
2448  ((void (*)(uint32_t ui32Base))ROM_USBTABLE[4])
2449 #define ROM_USBDevEndpointConfigSet \
2450  ((void (*)(uint32_t ui32Base, \
2451  uint32_t ui32Endpoint, \
2452  uint32_t ui32MaxPacketSize, \
2453  uint32_t ui32Flags))ROM_USBTABLE[5])
2454 #define ROM_USBDevEndpointDataAck \
2455  ((void (*)(uint32_t ui32Base, \
2456  uint32_t ui32Endpoint, \
2457  bool bIsLastPacket))ROM_USBTABLE[6])
2458 #define ROM_USBDevEndpointStall \
2459  ((void (*)(uint32_t ui32Base, \
2460  uint32_t ui32Endpoint, \
2461  uint32_t ui32Flags))ROM_USBTABLE[7])
2462 #define ROM_USBDevEndpointStallClear \
2463  ((void (*)(uint32_t ui32Base, \
2464  uint32_t ui32Endpoint, \
2465  uint32_t ui32Flags))ROM_USBTABLE[8])
2466 #define ROM_USBDevEndpointStatusClear \
2467  ((void (*)(uint32_t ui32Base, \
2468  uint32_t ui32Endpoint, \
2469  uint32_t ui32Flags))ROM_USBTABLE[9])
2470 #define ROM_USBEndpointDataGet \
2471  ((int32_t (*)(uint32_t ui32Base, \
2472  uint32_t ui32Endpoint, \
2473  uint8_t *pui8Data, \
2474  uint32_t *pui32Size))ROM_USBTABLE[10])
2475 #define ROM_USBEndpointDataPut \
2476  ((int32_t (*)(uint32_t ui32Base, \
2477  uint32_t ui32Endpoint, \
2478  uint8_t *pui8Data, \
2479  uint32_t ui32Size))ROM_USBTABLE[11])
2480 #define ROM_USBEndpointDataSend \
2481  ((int32_t (*)(uint32_t ui32Base, \
2482  uint32_t ui32Endpoint, \
2483  uint32_t ui32TransType))ROM_USBTABLE[12])
2484 #define ROM_USBEndpointDataToggleClear \
2485  ((void (*)(uint32_t ui32Base, \
2486  uint32_t ui32Endpoint, \
2487  uint32_t ui32Flags))ROM_USBTABLE[13])
2488 #define ROM_USBEndpointStatus \
2489  ((uint32_t (*)(uint32_t ui32Base, \
2490  uint32_t ui32Endpoint))ROM_USBTABLE[14])
2491 #define ROM_USBFIFOAddrGet \
2492  ((uint32_t (*)(uint32_t ui32Base, \
2493  uint32_t ui32Endpoint))ROM_USBTABLE[15])
2494 #define ROM_USBFIFOConfigGet \
2495  ((void (*)(uint32_t ui32Base, \
2496  uint32_t ui32Endpoint, \
2497  uint32_t *pui32FIFOAddress, \
2498  uint32_t *pui32FIFOSize, \
2499  uint32_t ui32Flags))ROM_USBTABLE[16])
2500 #define ROM_USBFIFOConfigSet \
2501  ((void (*)(uint32_t ui32Base, \
2502  uint32_t ui32Endpoint, \
2503  uint32_t ui32FIFOAddress, \
2504  uint32_t ui32FIFOSize, \
2505  uint32_t ui32Flags))ROM_USBTABLE[17])
2506 #define ROM_USBFIFOFlush \
2507  ((void (*)(uint32_t ui32Base, \
2508  uint32_t ui32Endpoint, \
2509  uint32_t ui32Flags))ROM_USBTABLE[18])
2510 #define ROM_USBFrameNumberGet \
2511  ((uint32_t (*)(uint32_t ui32Base))ROM_USBTABLE[19])
2512 #define ROM_USBHostAddrGet \
2513  ((uint32_t (*)(uint32_t ui32Base, \
2514  uint32_t ui32Endpoint, \
2515  uint32_t ui32Flags))ROM_USBTABLE[20])
2516 #define ROM_USBHostAddrSet \
2517  ((void (*)(uint32_t ui32Base, \
2518  uint32_t ui32Endpoint, \
2519  uint32_t ui32Addr, \
2520  uint32_t ui32Flags))ROM_USBTABLE[21])
2521 #define ROM_USBHostEndpointConfig \
2522  ((void (*)(uint32_t ui32Base, \
2523  uint32_t ui32Endpoint, \
2524  uint32_t ui32MaxPacketSize, \
2525  uint32_t ui32NAKPollInterval, \
2526  uint32_t ui32TargetEndpoint, \
2527  uint32_t ui32Flags))ROM_USBTABLE[22])
2528 #define ROM_USBHostEndpointDataAck \
2529  ((void (*)(uint32_t ui32Base, \
2530  uint32_t ui32Endpoint))ROM_USBTABLE[23])
2531 #define ROM_USBHostEndpointDataToggle \
2532  ((void (*)(uint32_t ui32Base, \
2533  uint32_t ui32Endpoint, \
2534  bool bDataToggle, \
2535  uint32_t ui32Flags))ROM_USBTABLE[24])
2536 #define ROM_USBHostEndpointStatusClear \
2537  ((void (*)(uint32_t ui32Base, \
2538  uint32_t ui32Endpoint, \
2539  uint32_t ui32Flags))ROM_USBTABLE[25])
2540 #define ROM_USBHostHubAddrGet \
2541  ((uint32_t (*)(uint32_t ui32Base, \
2542  uint32_t ui32Endpoint, \
2543  uint32_t ui32Flags))ROM_USBTABLE[26])
2544 #define ROM_USBHostHubAddrSet \
2545  ((void (*)(uint32_t ui32Base, \
2546  uint32_t ui32Endpoint, \
2547  uint32_t ui32Addr, \
2548  uint32_t ui32Flags))ROM_USBTABLE[27])
2549 #define ROM_USBHostPwrDisable \
2550  ((void (*)(uint32_t ui32Base))ROM_USBTABLE[28])
2551 #define ROM_USBHostPwrEnable \
2552  ((void (*)(uint32_t ui32Base))ROM_USBTABLE[29])
2553 #define ROM_USBHostPwrConfig \
2554  ((void (*)(uint32_t ui32Base, \
2555  uint32_t ui32Flags))ROM_USBTABLE[30])
2556 #define ROM_USBHostPwrFaultDisable \
2557  ((void (*)(uint32_t ui32Base))ROM_USBTABLE[31])
2558 #define ROM_USBHostPwrFaultEnable \
2559  ((void (*)(uint32_t ui32Base))ROM_USBTABLE[32])
2560 #define ROM_USBHostRequestIN \
2561  ((void (*)(uint32_t ui32Base, \
2562  uint32_t ui32Endpoint))ROM_USBTABLE[33])
2563 #define ROM_USBHostRequestStatus \
2564  ((void (*)(uint32_t ui32Base))ROM_USBTABLE[34])
2565 #define ROM_USBHostReset \
2566  ((void (*)(uint32_t ui32Base, \
2567  bool bStart))ROM_USBTABLE[35])
2568 #define ROM_USBHostResume \
2569  ((void (*)(uint32_t ui32Base, \
2570  bool bStart))ROM_USBTABLE[36])
2571 #define ROM_USBHostSpeedGet \
2572  ((uint32_t (*)(uint32_t ui32Base))ROM_USBTABLE[37])
2573 #define ROM_USBHostSuspend \
2574  ((void (*)(uint32_t ui32Base))ROM_USBTABLE[38])
2575 #define ROM_USBDevEndpointConfigGet \
2576  ((void (*)(uint32_t ui32Base, \
2577  uint32_t ui32Endpoint, \
2578  uint32_t *pui32MaxPacketSize, \
2579  uint32_t *pui32Flags))ROM_USBTABLE[41])
2580 #define ROM_USBEndpointDMAEnable \
2581  ((void (*)(uint32_t ui32Base, \
2582  uint32_t ui32Endpoint, \
2583  uint32_t ui32Flags))ROM_USBTABLE[42])
2584 #define ROM_USBEndpointDMADisable \
2585  ((void (*)(uint32_t ui32Base, \
2586  uint32_t ui32Endpoint, \
2587  uint32_t ui32Flags))ROM_USBTABLE[43])
2588 #define ROM_USBEndpointDataAvail \
2589  ((uint32_t (*)(uint32_t ui32Base, \
2590  uint32_t ui32Endpoint))ROM_USBTABLE[44])
2591 #define ROM_USBModeGet \
2592  ((uint32_t (*)(uint32_t ui32Base))ROM_USBTABLE[46])
2593 #define ROM_USBIntDisableControl \
2594  ((void (*)(uint32_t ui32Base, \
2595  uint32_t ui32IntFlags))ROM_USBTABLE[48])
2596 #define ROM_USBIntEnableControl \
2597  ((void (*)(uint32_t ui32Base, \
2598  uint32_t ui32IntFlags))ROM_USBTABLE[49])
2599 #define ROM_USBIntStatusControl \
2600  ((uint32_t (*)(uint32_t ui32Base))ROM_USBTABLE[50])
2601 #define ROM_USBIntDisableEndpoint \
2602  ((void (*)(uint32_t ui32Base, \
2603  uint32_t ui32IntFlags))ROM_USBTABLE[51])
2604 #define ROM_USBIntEnableEndpoint \
2605  ((void (*)(uint32_t ui32Base, \
2606  uint32_t ui32IntFlags))ROM_USBTABLE[52])
2607 #define ROM_USBIntStatusEndpoint \
2608  ((uint32_t (*)(uint32_t ui32Base))ROM_USBTABLE[53])
2609 #define ROM_USBHostMode \
2610  ((void (*)(uint32_t ui32Base))ROM_USBTABLE[54])
2611 #define ROM_USBDevMode \
2612  ((void (*)(uint32_t ui32Base))ROM_USBTABLE[55])
2613 #define ROM_USBPHYPowerOff \
2614  ((void (*)(uint32_t ui32Base))ROM_USBTABLE[56])
2615 #define ROM_USBPHYPowerOn \
2616  ((void (*)(uint32_t ui32Base))ROM_USBTABLE[57])
2617 #define ROM_UpdateUSB \
2618  ((void (*)(uint8_t *pui8DescriptorInfo))ROM_USBTABLE[58])
2619 #define ROM_USBOTGMode \
2620  ((void (*)(uint32_t ui32Base))ROM_USBTABLE[59])
2621 #define ROM_USBHostRequestINClear \
2622  ((void (*)(uint32_t ui32Base, \
2623  uint32_t ui32Endpoint))ROM_USBTABLE[60])
2624 #define ROM_USBNumEndpointsGet \
2625  ((uint32_t (*)(uint32_t ui32Base))ROM_USBTABLE[61])
2626 #define ROM_USBClockDisable \
2627  ((void (*)(uint32_t ui32Base))ROM_USBTABLE[62])
2628 #define ROM_USBClockEnable \
2629  ((void (*)(uint32_t ui32Base, \
2630  uint32_t ui32Div, \
2631  uint32_t ui32Flags))ROM_USBTABLE[63])
2632 #define ROM_USBDevLPMConfig \
2633  ((void (*)(uint32_t ui32Base, \
2634  uint32_t ui32Config))ROM_USBTABLE[65])
2635 #define ROM_USBDevLPMDisable \
2636  ((void (*)(uint32_t ui32Base))ROM_USBTABLE[66])
2637 #define ROM_USBDevLPMEnable \
2638  ((void (*)(uint32_t ui32Base))ROM_USBTABLE[67])
2639 #define ROM_USBDevLPMRemoteWake \
2640  ((void (*)(uint32_t ui32Base))ROM_USBTABLE[68])
2641 #define ROM_USBDevSpeedGet \
2642  ((uint32_t (*)(uint32_t ui32Base))ROM_USBTABLE[69])
2643 #define ROM_USBDMAChannelAddressGet \
2644  ((void * (*)(uint32_t ui32Base, \
2645  uint32_t ui32Channel))ROM_USBTABLE[70])
2646 #define ROM_USBDMAChannelAddressSet \
2647  ((void (*)(uint32_t ui32Base, \
2648  uint32_t ui32Channel, \
2649  void *pvAddress))ROM_USBTABLE[71])
2650 #define ROM_USBDMAChannelConfigSet \
2651  ((void (*)(uint32_t ui32Base, \
2652  uint32_t ui32Channel, \
2653  uint32_t ui32Endpoint, \
2654  uint32_t ui32Config))ROM_USBTABLE[72])
2655 #define ROM_USBDMAChannelDisable \
2656  ((void (*)(uint32_t ui32Base, \
2657  uint32_t ui32Channel))ROM_USBTABLE[73])
2658 #define ROM_USBDMAChannelEnable \
2659  ((void (*)(uint32_t ui32Base, \
2660  uint32_t ui32Channel))ROM_USBTABLE[74])
2661 #define ROM_USBDMAChannelIntDisable \
2662  ((void (*)(uint32_t ui32Base, \
2663  uint32_t ui32Channel))ROM_USBTABLE[75])
2664 #define ROM_USBDMAChannelIntEnable \
2665  ((void (*)(uint32_t ui32Base, \
2666  uint32_t ui32Channel))ROM_USBTABLE[76])
2667 #define ROM_USBDMAChannelCountGet \
2668  ((uint32_t (*)(uint32_t ui32Base, \
2669  uint32_t ui32Channel))ROM_USBTABLE[77])
2670 #define ROM_USBDMAChannelCountSet \
2671  ((void (*)(uint32_t ui32Base, \
2672  uint32_t ui32Count, \
2673  uint32_t ui32Channel))ROM_USBTABLE[78])
2674 #define ROM_USBDMAChannelIntStatus \
2675  ((uint32_t (*)(uint32_t ui32Base))ROM_USBTABLE[79])
2676 #define ROM_USBDMAChannelStatus \
2677  ((uint32_t (*)(uint32_t ui32Base, \
2678  uint32_t ui32Channel))ROM_USBTABLE[80])
2679 #define ROM_USBDMAChannelStatusClear \
2680  ((void (*)(uint32_t ui32Base, \
2681  uint32_t ui32Channel, \
2682  uint32_t ui32Status))ROM_USBTABLE[81])
2683 #define ROM_USBHighSpeed \
2684  ((void (*)(uint32_t ui32Base, \
2685  bool bEnable))ROM_USBTABLE[82])
2686 #define ROM_USBHostEndpointPing \
2687  ((void (*)(uint32_t ui32Base, \
2688  uint32_t ui32Endpoint, \
2689  bool bEnable))ROM_USBTABLE[83])
2690 #define ROM_USBHostEndpointSpeed \
2691  ((void (*)(uint32_t ui32Base, \
2692  uint32_t ui32Endpoint, \
2693  uint32_t ui32Flags))ROM_USBTABLE[84])
2694 #define ROM_USBHostLPMConfig \
2695  ((void (*)(uint32_t ui32Base, \
2696  uint32_t ui32ResumeTime, \
2697  uint32_t ui32Config))ROM_USBTABLE[85])
2698 #define ROM_USBHostLPMResume \
2699  ((void (*)(uint32_t ui32Base))ROM_USBTABLE[86])
2700 #define ROM_USBHostLPMSend \
2701  ((void (*)(uint32_t ui32Base, \
2702  uint32_t ui32Address, \
2703  uint32_t uiEndpoint))ROM_USBTABLE[87])
2704 #define ROM_USBLPMIntDisable \
2705  ((void (*)(uint32_t ui32Base, \
2706  uint32_t ui32Ints))ROM_USBTABLE[88])
2707 #define ROM_USBLPMIntEnable \
2708  ((void (*)(uint32_t ui32Base, \
2709  uint32_t ui32Ints))ROM_USBTABLE[89])
2710 #define ROM_USBLPMIntStatus \
2711  ((uint32_t (*)(uint32_t ui32Base))ROM_USBTABLE[90])
2712 #define ROM_USBLPMLinkStateGet \
2713  ((uint32_t (*)(uint32_t ui32Base))ROM_USBTABLE[91])
2714 #define ROM_USBEndpointPacketCountSet \
2715  ((void (*)(uint32_t ui32Base, \
2716  uint32_t ui32Endpoint, \
2717  uint32_t ui32Count))ROM_USBTABLE[92])
2718 #define ROM_USBULPIConfig \
2719  ((void (*)(uint32_t ui32Base, \
2720  uint32_t ui32Config))ROM_USBTABLE[93])
2721 #define ROM_USBULPIDisable \
2722  ((void (*)(uint32_t ui32Base))ROM_USBTABLE[94])
2723 #define ROM_USBULPIEnable \
2724  ((void (*)(uint32_t ui32Base))ROM_USBTABLE[95])
2725 #define ROM_USBULPIRegRead \
2726  ((uint8_t (*)(uint32_t ui32Base, \
2727  uint8_t ui8Reg))ROM_USBTABLE[96])
2728 #define ROM_USBULPIRegWrite \
2729  ((void (*)(uint32_t ui32Base, \
2730  uint8_t ui8Reg, \
2731  uint8_t ui8Data))ROM_USBTABLE[97])
2732 #define ROM_USBOTGSessionRequest \
2733  ((void (*)(uint32_t ui32Base, \
2734  bool bStart))ROM_USBTABLE[98])
2735 #define ROM_USBDMANumChannels \
2736  ((uint32_t (*)(uint32_t ui32Base))ROM_USBTABLE[99])
2737 #define ROM_USBEndpointDMAConfigSet \
2738  ((void (*)(uint32_t ui32Base, \
2739  uint32_t ui32Endpoint, \
2740  uint32_t ui32Config))ROM_USBTABLE[100])
2741 #define ROM_USBLPMRemoteWakeEnabled \
2742  ((bool (*)(uint32_t ui32Base))ROM_USBTABLE[102])
2743 #define ROM_USBModeConfig \
2744  ((void (*)(uint32_t ui32Base, \
2745  uint32_t ui32Mode))ROM_USBTABLE[103])
2746 
2747 //*****************************************************************************
2748 //
2749 // Macros for calling ROM functions in the Watchdog API.
2750 //
2751 //*****************************************************************************
2752 #define ROM_WatchdogIntClear \
2753  ((void (*)(uint32_t ui32Base))ROM_WATCHDOGTABLE[0])
2754 #define ROM_WatchdogRunning \
2755  ((bool (*)(uint32_t ui32Base))ROM_WATCHDOGTABLE[1])
2756 #define ROM_WatchdogEnable \
2757  ((void (*)(uint32_t ui32Base))ROM_WATCHDOGTABLE[2])
2758 #define ROM_WatchdogResetEnable \
2759  ((void (*)(uint32_t ui32Base))ROM_WATCHDOGTABLE[3])
2760 #define ROM_WatchdogResetDisable \
2761  ((void (*)(uint32_t ui32Base))ROM_WATCHDOGTABLE[4])
2762 #define ROM_WatchdogLock \
2763  ((void (*)(uint32_t ui32Base))ROM_WATCHDOGTABLE[5])
2764 #define ROM_WatchdogUnlock \
2765  ((void (*)(uint32_t ui32Base))ROM_WATCHDOGTABLE[6])
2766 #define ROM_WatchdogLockState \
2767  ((bool (*)(uint32_t ui32Base))ROM_WATCHDOGTABLE[7])
2768 #define ROM_WatchdogReloadSet \
2769  ((void (*)(uint32_t ui32Base, \
2770  uint32_t ui32LoadVal))ROM_WATCHDOGTABLE[8])
2771 #define ROM_WatchdogReloadGet \
2772  ((uint32_t (*)(uint32_t ui32Base))ROM_WATCHDOGTABLE[9])
2773 #define ROM_WatchdogValueGet \
2774  ((uint32_t (*)(uint32_t ui32Base))ROM_WATCHDOGTABLE[10])
2775 #define ROM_WatchdogIntEnable \
2776  ((void (*)(uint32_t ui32Base))ROM_WATCHDOGTABLE[11])
2777 #define ROM_WatchdogIntStatus \
2778  ((uint32_t (*)(uint32_t ui32Base, \
2779  bool bMasked))ROM_WATCHDOGTABLE[12])
2780 #define ROM_WatchdogStallEnable \
2781  ((void (*)(uint32_t ui32Base))ROM_WATCHDOGTABLE[13])
2782 #define ROM_WatchdogStallDisable \
2783  ((void (*)(uint32_t ui32Base))ROM_WATCHDOGTABLE[14])
2784 #define ROM_WatchdogIntTypeSet \
2785  ((void (*)(uint32_t ui32Base, \
2786  uint32_t ui32Type))ROM_WATCHDOGTABLE[15])
2787 
2788 //*****************************************************************************
2789 //
2790 // Macros for calling ROM functions in the Software API.
2791 //
2792 //*****************************************************************************
2793 #define ROM_Crc16Array \
2794  ((uint16_t (*)(uint32_t ui32WordLen, \
2795  const uint32_t *pui32Data))ROM_SOFTWARETABLE[1])
2796 #define ROM_Crc16Array3 \
2797  ((void (*)(uint32_t ui32WordLen, \
2798  const uint32_t *pui32Data, \
2799  uint16_t *pui16Crc3))ROM_SOFTWARETABLE[2])
2800 #define ROM_Crc16 \
2801  ((uint16_t (*)(uint16_t ui16Crc, \
2802  const uint8_t *pui8Data, \
2803  uint32_t ui32Count))ROM_SOFTWARETABLE[3])
2804 #define ROM_Crc8CCITT \
2805  ((uint8_t (*)(uint8_t ui8Crc, \
2806  const uint8_t *pui8Data, \
2807  uint32_t ui32Count))ROM_SOFTWARETABLE[4])
2808 #define ROM_Crc32 \
2809  ((uint32_t (*)(uint32_t ui32Crc, \
2810  const uint8_t *pui8Data, \
2811  uint32_t ui32Count))ROM_SOFTWARETABLE[5])
2812 #define ROM_pvAESTable \
2813  ((void *)&(ROM_SOFTWARETABLE[7]))
2814 
2815 #endif // __DRIVERLIB_ROM_H__
Copyright 2017, Texas Instruments Incorporated