head	1.2;
access;
symbols
	micropython-1-5-2-base:1.1.1.1 MICROPYTHON:1.1.1;
locks; strict;
comment	@ * @;


1.2
date	2026.10.15.05.27.58;	author agc;	state dead;
branches;
next	1.1;
commitid	aHLdC1EGCUYk7xZG;

1.1
date	2016.01.14.01.38.49;	author agc;	state Exp;
branches
	1.1.1.1;
next	;
commitid	Q8liT0v6zMF95QQy;

1.1.1.1
date	2016.01.14.01.38.49;	author agc;	state Exp;
branches;
next	;
commitid	Q8liT0v6zMF95QQy;


desc
@@


1.2
log
@Remove waaaay old micropython sources which haven't been relevant for 10 years
@
text
@//*****************************************************************************
//
//  rom.h
//
//  Macros to facilitate calling functions in the ROM.
//
//  Copyright (C) 2014 Texas Instruments Incorporated - http://www.ti.com/
//
//
//  Redistribution and use in source and binary forms, with or without
//  modification, are permitted provided that the following conditions
//  are met:
//
//    Redistributions of source code must retain the above copyright
//    notice, this list of conditions and the following disclaimer.
//
//    Redistributions in binary form must reproduce the above copyright
//    notice, this list of conditions and the following disclaimer in the
//    documentation and/or other materials provided with the
//    distribution.
//
//    Neither the name of Texas Instruments Incorporated nor the names of
//    its contributors may be used to endorse or promote products derived
//    from this software without specific prior written permission.
//
//  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
//  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
//  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
//  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
//  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
//  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
//  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
//  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
//  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
//  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
//  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
//
//*****************************************************************************

//*****************************************************************************
//
// THIS IS AN AUTO-GENERATED FILE.  DO NOT EDIT BY HAND.
//
//*****************************************************************************

#ifndef __ROM_H__
#define __ROM_H__

//*****************************************************************************
//
// Pointers to the main API tables.
//
//*****************************************************************************
#define ROM_APITABLE            ((unsigned long *)0x0000040C)
#define ROM_VERSION             (ROM_APITABLE[0])
#define ROM_UARTTABLE           ((unsigned long *)(ROM_APITABLE[1]))
#define ROM_TIMERTABLE          ((unsigned long *)(ROM_APITABLE[2]))
#define ROM_WATCHDOGTABLE       ((unsigned long *)(ROM_APITABLE[3]))
#define ROM_INTERRUPTTABLE      ((unsigned long *)(ROM_APITABLE[4]))
#define ROM_UDMATABLE           ((unsigned long *)(ROM_APITABLE[5]))
#define ROM_PRCMTABLE           ((unsigned long *)(ROM_APITABLE[6]))
#define ROM_I2CTABLE            ((unsigned long *)(ROM_APITABLE[7]))
#define ROM_SPITABLE            ((unsigned long *)(ROM_APITABLE[8]))
#define ROM_CAMERATABLE         ((unsigned long *)(ROM_APITABLE[9]))
#define ROM_FLASHTABLE          ((unsigned long *)(ROM_APITABLE[10]))
#define ROM_PINTABLE            ((unsigned long *)(ROM_APITABLE[11]))
#define ROM_SYSTICKTABLE        ((unsigned long *)(ROM_APITABLE[12]))
#define ROM_UTILSTABLE          ((unsigned long *)(ROM_APITABLE[13]))
#define ROM_I2STABLE            ((unsigned long *)(ROM_APITABLE[14]))
#define ROM_HWSPINLOCKTABLE     ((unsigned long *)(ROM_APITABLE[15]))
#define ROM_GPIOTABLE           ((unsigned long *)(ROM_APITABLE[16]))
#define ROM_AESTABLE            ((unsigned long *)(ROM_APITABLE[17]))
#define ROM_DESTABLE            ((unsigned long *)(ROM_APITABLE[18]))
#define ROM_SHAMD5TABLE         ((unsigned long *)(ROM_APITABLE[19]))
#define ROM_CRCTABLE            ((unsigned long *)(ROM_APITABLE[20]))
#define ROM_SDHOSTTABLE         ((unsigned long *)(ROM_APITABLE[21]))
#define ROM_ADCTABLE            ((unsigned long *)(ROM_APITABLE[22]))

//*****************************************************************************
//
// Macros for calling ROM functions in the Interrupt API.
//
//*****************************************************************************
#if defined(TARGET_IS_CC3200)
#define ROM_IntEnable                                                         \
        ((void (*)(unsigned long ulInterrupt))ROM_INTERRUPTTABLE[0])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_IntMasterEnable                                                   \
        ((tBoolean (*)(void))ROM_INTERRUPTTABLE[1])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_IntMasterDisable                                                  \
        ((tBoolean (*)(void))ROM_INTERRUPTTABLE[2])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_IntDisable                                                        \
        ((void (*)(unsigned long ulInterrupt))ROM_INTERRUPTTABLE[3])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_IntPriorityGroupingSet                                            \
        ((void (*)(unsigned long ulBits))ROM_INTERRUPTTABLE[4])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_IntPriorityGroupingGet                                            \
        ((unsigned long (*)(void))ROM_INTERRUPTTABLE[5])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_IntPrioritySet                                                    \
        ((void (*)(unsigned long ulInterrupt,                                 \
                   unsigned char ucPriority))ROM_INTERRUPTTABLE[6])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_IntPriorityGet                                                    \
        ((long (*)(unsigned long ulInterrupt))ROM_INTERRUPTTABLE[7])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_IntPendSet                                                        \
        ((void (*)(unsigned long ulInterrupt))ROM_INTERRUPTTABLE[8])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_IntPendClear                                                      \
        ((void (*)(unsigned long ulInterrupt))ROM_INTERRUPTTABLE[9])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_IntPriorityMaskSet                                                \
        ((void (*)(unsigned long ulPriorityMask))ROM_INTERRUPTTABLE[10])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_IntPriorityMaskGet                                                \
        ((unsigned long (*)(void))ROM_INTERRUPTTABLE[11])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_IntRegister                                                       \
        ((void (*)(unsigned long ulInterrupt,                                 \
                   void (*pfnHandler)(void)))ROM_INTERRUPTTABLE[12])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_IntUnregister                                                     \
        ((void (*)(unsigned long ulInterrupt))ROM_INTERRUPTTABLE[13])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_IntVTableBaseSet                                                  \
        ((void (*)(unsigned long ulVtableBase))ROM_INTERRUPTTABLE[14])
#endif

//*****************************************************************************
//
// Macros for calling ROM functions in the Timer API.
//
//*****************************************************************************
#if defined(TARGET_IS_CC3200)
#define ROM_TimerEnable                                                       \
        ((void (*)(unsigned long ulBase,                                      \
                   unsigned long ulTimer))ROM_TIMERTABLE[0])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_TimerDisable                                                      \
        ((void (*)(unsigned long ulBase,                                      \
                   unsigned long ulTimer))ROM_TIMERTABLE[1])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_TimerConfigure                                                    \
        ((void (*)(unsigned long ulBase,                                      \
                   unsigned long ulConfig))ROM_TIMERTABLE[2])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_TimerControlLevel                                                 \
        ((void (*)(unsigned long ulBase,                                      \
                   unsigned long ulTimer,                                     \
                   tBoolean bInvert))ROM_TIMERTABLE[3])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_TimerControlEvent                                                 \
        ((void (*)(unsigned long ulBase,                                      \
                   unsigned long ulTimer,                                     \
                   unsigned long ulEvent))ROM_TIMERTABLE[4])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_TimerControlStall                                                 \
        ((void (*)(unsigned long ulBase,                                      \
                   unsigned long ulTimer,                                     \
                   tBoolean bStall))ROM_TIMERTABLE[5])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_TimerPrescaleSet                                                  \
        ((void (*)(unsigned long ulBase,                                      \
                   unsigned long ulTimer,                                     \
                   unsigned long ulValue))ROM_TIMERTABLE[6])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_TimerPrescaleGet                                                  \
        ((unsigned long (*)(unsigned long ulBase,                             \
                            unsigned long ulTimer))ROM_TIMERTABLE[7])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_TimerPrescaleMatchSet                                             \
        ((void (*)(unsigned long ulBase,                                      \
                   unsigned long ulTimer,                                     \
                   unsigned long ulValue))ROM_TIMERTABLE[8])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_TimerPrescaleMatchGet                                             \
        ((unsigned long (*)(unsigned long ulBase,                             \
                            unsigned long ulTimer))ROM_TIMERTABLE[9])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_TimerLoadSet                                                      \
        ((void (*)(unsigned long ulBase,                                      \
                   unsigned long ulTimer,                                     \
                   unsigned long ulValue))ROM_TIMERTABLE[10])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_TimerLoadGet                                                      \
        ((unsigned long (*)(unsigned long ulBase,                             \
                            unsigned long ulTimer))ROM_TIMERTABLE[11])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_TimerValueGet                                                     \
        ((unsigned long (*)(unsigned long ulBase,                             \
                            unsigned long ulTimer))ROM_TIMERTABLE[12])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_TimerMatchSet                                                     \
        ((void (*)(unsigned long ulBase,                                      \
                   unsigned long ulTimer,                                     \
                   unsigned long ulValue))ROM_TIMERTABLE[13])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_TimerMatchGet                                                     \
        ((unsigned long (*)(unsigned long ulBase,                             \
                            unsigned long ulTimer))ROM_TIMERTABLE[14])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_TimerIntRegister                                                  \
        ((void (*)(unsigned long ulBase,                                      \
                   unsigned long ulTimer,                                     \
                   void (*pfnHandler)(void)))ROM_TIMERTABLE[15])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_TimerIntUnregister                                                \
        ((void (*)(unsigned long ulBase,                                      \
                   unsigned long ulTimer))ROM_TIMERTABLE[16])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_TimerIntEnable                                                    \
        ((void (*)(unsigned long ulBase,                                      \
                   unsigned long ulIntFlags))ROM_TIMERTABLE[17])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_TimerIntDisable                                                   \
        ((void (*)(unsigned long ulBase,                                      \
                   unsigned long ulIntFlags))ROM_TIMERTABLE[18])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_TimerIntStatus                                                    \
        ((unsigned long (*)(unsigned long ulBase,                             \
                            tBoolean bMasked))ROM_TIMERTABLE[19])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_TimerIntClear                                                     \
        ((void (*)(unsigned long ulBase,                                      \
                   unsigned long ulIntFlags))ROM_TIMERTABLE[20])
#endif

//*****************************************************************************
//
// Macros for calling ROM functions in the UART API.
//
//*****************************************************************************
#if defined(TARGET_IS_CC3200)
#define ROM_UARTParityModeSet                                                 \
        ((void (*)(unsigned long ulBase,                                      \
                   unsigned long ulParity))ROM_UARTTABLE[0])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_UARTParityModeGet                                                 \
        ((unsigned long (*)(unsigned long ulBase))ROM_UARTTABLE[1])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_UARTFIFOLevelSet                                                  \
        ((void (*)(unsigned long ulBase,                                      \
                   unsigned long ulTxLevel,                                   \
                   unsigned long ulRxLevel))ROM_UARTTABLE[2])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_UARTFIFOLevelGet                                                  \
        ((void (*)(unsigned long ulBase,                                      \
                   unsigned long *pulTxLevel,                                 \
                   unsigned long *pulRxLevel))ROM_UARTTABLE[3])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_UARTConfigSetExpClk                                               \
        ((void (*)(unsigned long ulBase,                                      \
                   unsigned long ulUARTClk,                                   \
                   unsigned long ulBaud,                                      \
                   unsigned long ulConfig))ROM_UARTTABLE[4])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_UARTConfigGetExpClk                                               \
        ((void (*)(unsigned long ulBase,                                      \
                   unsigned long ulUARTClk,                                   \
                   unsigned long *pulBaud,                                    \
                   unsigned long *pulConfig))ROM_UARTTABLE[5])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_UARTEnable                                                        \
        ((void (*)(unsigned long ulBase))ROM_UARTTABLE[6])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_UARTDisable                                                       \
        ((void (*)(unsigned long ulBase))ROM_UARTTABLE[7])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_UARTFIFOEnable                                                    \
        ((void (*)(unsigned long ulBase))ROM_UARTTABLE[8])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_UARTFIFODisable                                                   \
        ((void (*)(unsigned long ulBase))ROM_UARTTABLE[9])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_UARTCharsAvail                                                    \
        ((tBoolean (*)(unsigned long ulBase))ROM_UARTTABLE[10])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_UARTSpaceAvail                                                    \
        ((tBoolean (*)(unsigned long ulBase))ROM_UARTTABLE[11])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_UARTCharGetNonBlocking                                            \
        ((long (*)(unsigned long ulBase))ROM_UARTTABLE[12])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_UARTCharGet                                                       \
        ((long (*)(unsigned long ulBase))ROM_UARTTABLE[13])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_UARTCharPutNonBlocking                                            \
        ((tBoolean (*)(unsigned long ulBase,                                  \
                       unsigned char ucData))ROM_UARTTABLE[14])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_UARTCharPut                                                       \
        ((void (*)(unsigned long ulBase,                                      \
                   unsigned char ucData))ROM_UARTTABLE[15])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_UARTBreakCtl                                                      \
        ((void (*)(unsigned long ulBase,                                      \
                   tBoolean bBreakState))ROM_UARTTABLE[16])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_UARTBusy                                                          \
        ((tBoolean (*)(unsigned long ulBase))ROM_UARTTABLE[17])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_UARTIntRegister                                                   \
        ((void (*)(unsigned long ulBase,                                      \
                   void(*pfnHandler)(void)))ROM_UARTTABLE[18])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_UARTIntUnregister                                                 \
        ((void (*)(unsigned long ulBase))ROM_UARTTABLE[19])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_UARTIntEnable                                                     \
        ((void (*)(unsigned long ulBase,                                      \
                   unsigned long ulIntFlags))ROM_UARTTABLE[20])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_UARTIntDisable                                                    \
        ((void (*)(unsigned long ulBase,                                      \
                   unsigned long ulIntFlags))ROM_UARTTABLE[21])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_UARTIntStatus                                                     \
        ((unsigned long (*)(unsigned long ulBase,                             \
                            tBoolean bMasked))ROM_UARTTABLE[22])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_UARTIntClear                                                      \
        ((void (*)(unsigned long ulBase,                                      \
                   unsigned long ulIntFlags))ROM_UARTTABLE[23])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_UARTDMAEnable                                                     \
        ((void (*)(unsigned long ulBase,                                      \
                   unsigned long ulDMAFlags))ROM_UARTTABLE[24])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_UARTDMADisable                                                    \
        ((void (*)(unsigned long ulBase,                                      \
                   unsigned long ulDMAFlags))ROM_UARTTABLE[25])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_UARTRxErrorGet                                                    \
        ((unsigned long (*)(unsigned long ulBase))ROM_UARTTABLE[26])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_UARTRxErrorClear                                                  \
        ((void (*)(unsigned long ulBase))ROM_UARTTABLE[27])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_UARTModemControlSet                                               \
        ((void (*)(unsigned long ulBase,                                      \
                   unsigned long ulControl))ROM_UARTTABLE[28])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_UARTModemControlClear                                             \
        ((void (*)(unsigned long ulBase,                                      \
                   unsigned long ulControl))ROM_UARTTABLE[29])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_UARTModemControlGet                                               \
        ((unsigned long (*)(unsigned long ulBase))ROM_UARTTABLE[30])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_UARTModemStatusGet                                                \
        ((unsigned long (*)(unsigned long ulBase))ROM_UARTTABLE[31])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_UARTFlowControlSet                                                \
        ((void (*)(unsigned long ulBase,                                      \
                   unsigned long ulMode))ROM_UARTTABLE[32])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_UARTFlowControlGet                                                \
        ((unsigned long (*)(unsigned long ulBase))ROM_UARTTABLE[33])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_UARTTxIntModeSet                                                  \
        ((void (*)(unsigned long ulBase,                                      \
                   unsigned long ulMode))ROM_UARTTABLE[34])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_UARTTxIntModeGet                                                  \
        ((unsigned long (*)(unsigned long ulBase))ROM_UARTTABLE[35])
#endif

//*****************************************************************************
//
// Macros for calling ROM functions in the uDMA API.
//
//*****************************************************************************
#if defined(TARGET_IS_CC3200)
#define ROM_uDMAChannelTransferSet                                            \
        ((void (*)(unsigned long ulChannelStructIndex,                        \
                   unsigned long ulMode,                                      \
                   void *pvSrcAddr,                                           \
                   void *pvDstAddr,                                           \
                   unsigned long ulTransferSize))ROM_UDMATABLE[0])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_uDMAEnable                                                        \
        ((void (*)(void))ROM_UDMATABLE[1])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_uDMADisable                                                       \
        ((void (*)(void))ROM_UDMATABLE[2])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_uDMAErrorStatusGet                                                \
        ((unsigned long (*)(void))ROM_UDMATABLE[3])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_uDMAErrorStatusClear                                              \
        ((void (*)(void))ROM_UDMATABLE[4])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_uDMAChannelEnable                                                 \
        ((void (*)(unsigned long ulChannelNum))ROM_UDMATABLE[5])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_uDMAChannelDisable                                                \
        ((void (*)(unsigned long ulChannelNum))ROM_UDMATABLE[6])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_uDMAChannelIsEnabled                                              \
        ((tBoolean (*)(unsigned long ulChannelNum))ROM_UDMATABLE[7])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_uDMAControlBaseSet                                                \
        ((void (*)(void *pControlTable))ROM_UDMATABLE[8])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_uDMAControlBaseGet                                                \
        ((void * (*)(void))ROM_UDMATABLE[9])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_uDMAChannelRequest                                                \
        ((void (*)(unsigned long ulChannelNum))ROM_UDMATABLE[10])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_uDMAChannelAttributeEnable                                        \
        ((void (*)(unsigned long ulChannelNum,                                \
                   unsigned long ulAttr))ROM_UDMATABLE[11])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_uDMAChannelAttributeDisable                                       \
        ((void (*)(unsigned long ulChannelNum,                                \
                   unsigned long ulAttr))ROM_UDMATABLE[12])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_uDMAChannelAttributeGet                                           \
        ((unsigned long (*)(unsigned long ulChannelNum))ROM_UDMATABLE[13])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_uDMAChannelControlSet                                             \
        ((void (*)(unsigned long ulChannelStructIndex,                        \
                   unsigned long ulControl))ROM_UDMATABLE[14])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_uDMAChannelSizeGet                                                \
        ((unsigned long (*)(unsigned long ulChannelStructIndex))ROM_UDMATABLE[15])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_uDMAChannelModeGet                                                \
        ((unsigned long (*)(unsigned long ulChannelStructIndex))ROM_UDMATABLE[16])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_uDMAIntStatus                                                     \
        ((unsigned long (*)(void))ROM_UDMATABLE[17])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_uDMAIntClear                                                      \
        ((void (*)(unsigned long ulChanMask))ROM_UDMATABLE[18])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_uDMAControlAlternateBaseGet                                       \
        ((void * (*)(void))ROM_UDMATABLE[19])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_uDMAChannelScatterGatherSet                                       \
        ((void (*)(unsigned long ulChannelNum,                                \
                   unsigned ulTaskCount,                                      \
                   void *pvTaskList,                                          \
                   unsigned long ulIsPeriphSG))ROM_UDMATABLE[20])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_uDMAChannelAssign                                                 \
        ((void (*)(unsigned long ulMapping))ROM_UDMATABLE[21])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_uDMAIntRegister                                                   \
        ((void (*)(unsigned long ulIntChannel,                                \
                   void (*pfnHandler)(void)))ROM_UDMATABLE[22])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_uDMAIntUnregister                                                 \
        ((void (*)(unsigned long ulIntChannel))ROM_UDMATABLE[23])
#endif

//*****************************************************************************
//
// Macros for calling ROM functions in the Watchdog API.
//
//*****************************************************************************
#if defined(TARGET_IS_CC3200)
#define ROM_WatchdogIntClear                                                  \
        ((void (*)(unsigned long ulBase))ROM_WATCHDOGTABLE[0])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_WatchdogRunning                                                   \
        ((tBoolean (*)(unsigned long ulBase))ROM_WATCHDOGTABLE[1])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_WatchdogEnable                                                    \
        ((void (*)(unsigned long ulBase))ROM_WATCHDOGTABLE[2])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_WatchdogLock                                                      \
        ((void (*)(unsigned long ulBase))ROM_WATCHDOGTABLE[3])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_WatchdogUnlock                                                    \
        ((void (*)(unsigned long ulBase))ROM_WATCHDOGTABLE[4])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_WatchdogLockState                                                 \
        ((tBoolean (*)(unsigned long ulBase))ROM_WATCHDOGTABLE[5])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_WatchdogReloadSet                                                 \
        ((void (*)(unsigned long ulBase,                                      \
                   unsigned long ulLoadVal))ROM_WATCHDOGTABLE[6])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_WatchdogReloadGet                                                 \
        ((unsigned long (*)(unsigned long ulBase))ROM_WATCHDOGTABLE[7])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_WatchdogValueGet                                                  \
        ((unsigned long (*)(unsigned long ulBase))ROM_WATCHDOGTABLE[8])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_WatchdogIntStatus                                                 \
        ((unsigned long (*)(unsigned long ulBase,                             \
                            tBoolean bMasked))ROM_WATCHDOGTABLE[10])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_WatchdogStallEnable                                               \
        ((void (*)(unsigned long ulBase))ROM_WATCHDOGTABLE[11])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_WatchdogStallDisable                                              \
        ((void (*)(unsigned long ulBase))ROM_WATCHDOGTABLE[12])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_WatchdogIntRegister                                               \
        ((void (*)(unsigned long ulBase,                                      \
                   void(*pfnHandler)(void)))ROM_WATCHDOGTABLE[13])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_WatchdogIntUnregister                                             \
        ((void (*)(unsigned long ulBase))ROM_WATCHDOGTABLE[14])
#endif

//*****************************************************************************
//
// Macros for calling ROM functions in the I2C API.
//
//*****************************************************************************
#if defined(TARGET_IS_CC3200)
#define ROM_I2CIntRegister                                                    \
        ((void (*)(uint32_t ui32Base,                                         \
                   void(pfnHandler)(void)))ROM_I2CTABLE[0])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_I2CIntUnregister                                                  \
        ((void (*)(uint32_t ui32Base))ROM_I2CTABLE[1])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_I2CTxFIFOConfigSet                                                \
        ((void (*)(uint32_t ui32Base,                                         \
                   uint32_t ui32Config))ROM_I2CTABLE[2])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_I2CTxFIFOFlush                                                    \
        ((void (*)(uint32_t ui32Base))ROM_I2CTABLE[3])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_I2CRxFIFOConfigSet                                                \
        ((void (*)(uint32_t ui32Base,                                         \
                   uint32_t ui32Config))ROM_I2CTABLE[4])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_I2CRxFIFOFlush                                                    \
        ((void (*)(uint32_t ui32Base))ROM_I2CTABLE[5])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_I2CFIFOStatus                                                     \
        ((uint32_t (*)(uint32_t ui32Base))ROM_I2CTABLE[6])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_I2CFIFODataPut                                                    \
        ((void (*)(uint32_t ui32Base,                                         \
                   uint8_t ui8Data))ROM_I2CTABLE[7])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_I2CFIFODataPutNonBlocking                                         \
        ((uint32_t (*)(uint32_t ui32Base,                                     \
                       uint8_t ui8Data))ROM_I2CTABLE[8])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_I2CFIFODataGet                                                    \
        ((uint32_t (*)(uint32_t ui32Base))ROM_I2CTABLE[9])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_I2CFIFODataGetNonBlocking                                         \
        ((uint32_t (*)(uint32_t ui32Base,                                     \
                       uint8_t *pui8Data))ROM_I2CTABLE[10])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_I2CMasterBurstLengthSet                                           \
        ((void (*)(uint32_t ui32Base,                                         \
                   uint8_t ui8Length))ROM_I2CTABLE[11])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_I2CMasterBurstCountGet                                            \
        ((uint32_t (*)(uint32_t ui32Base))ROM_I2CTABLE[12])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_I2CMasterGlitchFilterConfigSet                                    \
        ((void (*)(uint32_t ui32Base,                                         \
                   uint32_t ui32Config))ROM_I2CTABLE[13])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_I2CSlaveFIFOEnable                                                \
        ((void (*)(uint32_t ui32Base,                                         \
                   uint32_t ui32Config))ROM_I2CTABLE[14])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_I2CSlaveFIFODisable                                               \
        ((void (*)(uint32_t ui32Base))ROM_I2CTABLE[15])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_I2CMasterBusBusy                                                  \
        ((bool (*)(uint32_t ui32Base))ROM_I2CTABLE[16])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_I2CMasterBusy                                                     \
        ((bool (*)(uint32_t ui32Base))ROM_I2CTABLE[17])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_I2CMasterControl                                                  \
        ((void (*)(uint32_t ui32Base,                                         \
                   uint32_t ui32Cmd))ROM_I2CTABLE[18])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_I2CMasterDataGet                                                  \
        ((uint32_t (*)(uint32_t ui32Base))ROM_I2CTABLE[19])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_I2CMasterDataPut                                                  \
        ((void (*)(uint32_t ui32Base,                                         \
                   uint8_t ui8Data))ROM_I2CTABLE[20])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_I2CMasterDisable                                                  \
        ((void (*)(uint32_t ui32Base))ROM_I2CTABLE[21])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_I2CMasterEnable                                                   \
        ((void (*)(uint32_t ui32Base))ROM_I2CTABLE[22])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_I2CMasterErr                                                      \
        ((uint32_t (*)(uint32_t ui32Base))ROM_I2CTABLE[23])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_I2CMasterIntClear                                                 \
        ((void (*)(uint32_t ui32Base))ROM_I2CTABLE[24])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_I2CMasterIntDisable                                               \
        ((void (*)(uint32_t ui32Base))ROM_I2CTABLE[25])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_I2CMasterIntEnable                                                \
        ((void (*)(uint32_t ui32Base))ROM_I2CTABLE[26])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_I2CMasterIntStatus                                                \
        ((bool (*)(uint32_t ui32Base,                                         \
                   bool bMasked))ROM_I2CTABLE[27])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_I2CMasterIntEnableEx                                              \
        ((void (*)(uint32_t ui32Base,                                         \
                   uint32_t ui32IntFlags))ROM_I2CTABLE[28])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_I2CMasterIntDisableEx                                             \
        ((void (*)(uint32_t ui32Base,                                         \
                   uint32_t ui32IntFlags))ROM_I2CTABLE[29])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_I2CMasterIntStatusEx                                              \
        ((uint32_t (*)(uint32_t ui32Base,                                     \
                       bool bMasked))ROM_I2CTABLE[30])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_I2CMasterIntClearEx                                               \
        ((void (*)(uint32_t ui32Base,                                         \
                   uint32_t ui32IntFlags))ROM_I2CTABLE[31])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_I2CMasterTimeoutSet                                               \
        ((void (*)(uint32_t ui32Base,                                         \
                   uint32_t ui32Value))ROM_I2CTABLE[32])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_I2CSlaveACKOverride                                               \
        ((void (*)(uint32_t ui32Base,                                         \
                   bool bEnable))ROM_I2CTABLE[33])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_I2CSlaveACKValueSet                                               \
        ((void (*)(uint32_t ui32Base,                                         \
                   bool bACK))ROM_I2CTABLE[34])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_I2CMasterLineStateGet                                             \
        ((uint32_t (*)(uint32_t ui32Base))ROM_I2CTABLE[35])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_I2CMasterSlaveAddrSet                                             \
        ((void (*)(uint32_t ui32Base,                                         \
                   uint8_t ui8SlaveAddr,                                      \
                   bool bReceive))ROM_I2CTABLE[36])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_I2CSlaveDataGet                                                   \
        ((uint32_t (*)(uint32_t ui32Base))ROM_I2CTABLE[37])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_I2CSlaveDataPut                                                   \
        ((void (*)(uint32_t ui32Base,                                         \
                   uint8_t ui8Data))ROM_I2CTABLE[38])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_I2CSlaveDisable                                                   \
        ((void (*)(uint32_t ui32Base))ROM_I2CTABLE[39])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_I2CSlaveEnable                                                    \
        ((void (*)(uint32_t ui32Base))ROM_I2CTABLE[40])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_I2CSlaveInit                                                      \
        ((void (*)(uint32_t ui32Base,                                         \
                   uint8_t ui8SlaveAddr))ROM_I2CTABLE[41])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_I2CSlaveAddressSet                                                \
        ((void (*)(uint32_t ui32Base,                                         \
                   uint8_t ui8AddrNum,                                        \
                   uint8_t ui8SlaveAddr))ROM_I2CTABLE[42])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_I2CSlaveIntClear                                                  \
        ((void (*)(uint32_t ui32Base))ROM_I2CTABLE[43])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_I2CSlaveIntDisable                                                \
        ((void (*)(uint32_t ui32Base))ROM_I2CTABLE[44])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_I2CSlaveIntEnable                                                 \
        ((void (*)(uint32_t ui32Base))ROM_I2CTABLE[45])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_I2CSlaveIntClearEx                                                \
        ((void (*)(uint32_t ui32Base,                                         \
                   uint32_t ui32IntFlags))ROM_I2CTABLE[46])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_I2CSlaveIntDisableEx                                              \
        ((void (*)(uint32_t ui32Base,                                         \
                   uint32_t ui32IntFlags))ROM_I2CTABLE[47])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_I2CSlaveIntEnableEx                                               \
        ((void (*)(uint32_t ui32Base,                                         \
                   uint32_t ui32IntFlags))ROM_I2CTABLE[48])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_I2CSlaveIntStatus                                                 \
        ((bool (*)(uint32_t ui32Base,                                         \
                   bool bMasked))ROM_I2CTABLE[49])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_I2CSlaveIntStatusEx                                               \
        ((uint32_t (*)(uint32_t ui32Base,                                     \
                       bool bMasked))ROM_I2CTABLE[50])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_I2CSlaveStatus                                                    \
        ((uint32_t (*)(uint32_t ui32Base))ROM_I2CTABLE[51])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_I2CMasterInitExpClk                                               \
        ((void (*)(uint32_t ui32Base,                                         \
                   uint32_t ui32I2CClk,                                       \
                   bool bFast))ROM_I2CTABLE[52])
#endif

//*****************************************************************************
//
// Macros for calling ROM functions in the SPI API.
//
//*****************************************************************************
#if defined(TARGET_IS_CC3200)
#define ROM_SPIEnable                                                         \
        ((void (*)(unsigned long ulBase))ROM_SPITABLE[0])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_SPIDisable                                                        \
        ((void (*)(unsigned long ulBase))ROM_SPITABLE[1])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_SPIReset                                                          \
        ((void (*)(unsigned long ulBase))ROM_SPITABLE[2])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_SPIConfigSetExpClk                                                \
        ((void (*)(unsigned long ulBase,                                      \
                  unsigned long ulSPIClk,                                     \
                   unsigned long ulBitRate,                                   \
                   unsigned long ulMode,                                      \
                   unsigned long ulSubMode,                                   \
                   unsigned long ulConfig))ROM_SPITABLE[3])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_SPIDataGetNonBlocking                                             \
        ((long (*)(unsigned long ulBase,                                      \
                   unsigned long * pulData))ROM_SPITABLE[4])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_SPIDataGet                                                        \
        ((void (*)(unsigned long ulBase,                                      \
                   unsigned long *pulData))ROM_SPITABLE[5])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_SPIDataPutNonBlocking                                             \
        ((long (*)(unsigned long ulBase,                                      \
                   unsigned long ulData))ROM_SPITABLE[6])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_SPIDataPut                                                        \
        ((void (*)(unsigned long ulBase,                                      \
                   unsigned long ulData))ROM_SPITABLE[7])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_SPIFIFOEnable                                                     \
        ((void (*)(unsigned long ulBase,                                      \
                   unsigned long ulFlags))ROM_SPITABLE[8])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_SPIFIFODisable                                                    \
        ((void (*)(unsigned long ulBase,                                      \
                   unsigned long ulFlags))ROM_SPITABLE[9])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_SPIFIFOLevelSet                                                   \
        ((void (*)(unsigned long ulBase,                                      \
                   unsigned long ulTxLevel,                                   \
                   unsigned long ulRxLevel))ROM_SPITABLE[10])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_SPIFIFOLevelGet                                                   \
        ((void (*)(unsigned long ulBase,                                      \
                   unsigned long *pulTxLevel,                                 \
                   unsigned long *pulRxLevel))ROM_SPITABLE[11])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_SPIWordCountSet                                                   \
        ((void (*)(unsigned long ulBase,                                      \
                   unsigned long ulWordCount))ROM_SPITABLE[12])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_SPIIntRegister                                                    \
        ((void (*)(unsigned long ulBase,                                      \
                   void(*pfnHandler)(void)))ROM_SPITABLE[13])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_SPIIntUnregister                                                  \
        ((void (*)(unsigned long ulBase))ROM_SPITABLE[14])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_SPIIntEnable                                                      \
        ((void (*)(unsigned long ulBase,                                      \
                   unsigned long ulIntFlags))ROM_SPITABLE[15])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_SPIIntDisable                                                     \
        ((void (*)(unsigned long ulBase,                                      \
                   unsigned long ulIntFlags))ROM_SPITABLE[16])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_SPIIntStatus                                                      \
        ((unsigned long (*)(unsigned long ulBase,                             \
                            tBoolean bMasked))ROM_SPITABLE[17])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_SPIIntClear                                                       \
        ((void (*)(unsigned long ulBase,                                      \
                   unsigned long ulIntFlags))ROM_SPITABLE[18])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_SPIDmaEnable                                                      \
        ((void (*)(unsigned long ulBase,                                      \
                   unsigned long ulFlags))ROM_SPITABLE[19])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_SPIDmaDisable                                                     \
        ((void (*)(unsigned long ulBase,                                      \
                   unsigned long ulFlags))ROM_SPITABLE[20])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_SPICSEnable                                                       \
        ((void (*)(unsigned long ulBase))ROM_SPITABLE[21])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_SPICSDisable                                                      \
        ((void (*)(unsigned long ulBase))ROM_SPITABLE[22])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_SPITransfer                                                       \
        ((long (*)(unsigned long ulBase,                                      \
                   unsigned char *ucDout,                                     \
                   unsigned char *ucDin,                                      \
                   unsigned long ulSize,                                      \
                   unsigned long ulFlags))ROM_SPITABLE[23])
#endif

//*****************************************************************************
//
// Macros for calling ROM functions in the CAM API.
//
//*****************************************************************************
#if defined(TARGET_IS_CC3200)
#define ROM_CameraReset                                                       \
        ((void (*)(unsigned long ulBase))ROM_CAMERATABLE[0])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_CameraParamsConfig                                                \
        ((void (*)(unsigned long ulBase,                                      \
                   unsigned long ulHSPol,                                     \
                   unsigned long ulVSPol,                                     \
                   unsigned long ulFlags))ROM_CAMERATABLE[1])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_CameraXClkConfig                                                  \
        ((void (*)(unsigned long ulBase,                                      \
                   unsigned long ulCamClkIn,                                  \
                   unsigned long ulXClk))ROM_CAMERATABLE[2])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_CameraXClkSet                                                     \
        ((void (*)(unsigned long ulBase,                                      \
                   unsigned char bXClkFlags))ROM_CAMERATABLE[3])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_CameraDMAEnable                                                   \
        ((void (*)(unsigned long ulBase))ROM_CAMERATABLE[4])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_CameraDMADisable                                                  \
        ((void (*)(unsigned long ulBase))ROM_CAMERATABLE[5])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_CameraThresholdSet                                                \
        ((void (*)(unsigned long ulBase,                                      \
                   unsigned long ulThreshold))ROM_CAMERATABLE[6])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_CameraIntRegister                                                 \
        ((void (*)(unsigned long ulBase,                                      \
                   void (*pfnHandler)(void)))ROM_CAMERATABLE[7])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_CameraIntUnregister                                               \
        ((void (*)(unsigned long ulBase))ROM_CAMERATABLE[8])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_CameraIntEnable                                                   \
        ((void (*)(unsigned long ulBase,                                      \
                   unsigned long ulIntFlags))ROM_CAMERATABLE[9])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_CameraIntDisable                                                  \
        ((void (*)(unsigned long ulBase,                                      \
                   unsigned long ulIntFlags))ROM_CAMERATABLE[10])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_CameraIntStatus                                                   \
        ((unsigned long (*)(unsigned long ulBase))ROM_CAMERATABLE[11])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_CameraIntClear                                                    \
        ((void (*)(unsigned long ulBase,                                      \
                   unsigned long ulIntFlags))ROM_CAMERATABLE[12])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_CameraCaptureStop                                                 \
        ((void (*)(unsigned long ulBase,                                      \
                   tBoolean bImmediate))ROM_CAMERATABLE[13])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_CameraCaptureStart                                                \
        ((void (*)(unsigned long ulBase))ROM_CAMERATABLE[14])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_CameraBufferRead                                                  \
        ((void (*)(unsigned long ulBase,                                      \
                  unsigned long *pBuffer,                                     \
                   unsigned char ucSize))ROM_CAMERATABLE[15])
#endif

//*****************************************************************************
//
// Macros for calling ROM functions in the FLASH API.
//
//*****************************************************************************
#if defined(TARGET_IS_CC3200)
#define ROM_FlashDisable                                                      \
        ((void (*)(void))ROM_FLASHTABLE[0])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_FlashErase                                                        \
        ((long (*)(unsigned long ulAddress))ROM_FLASHTABLE[1])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_FlashMassErase                                                    \
        ((long (*)(void))ROM_FLASHTABLE[2])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_FlashMassEraseNonBlocking                                         \
        ((void (*)(void))ROM_FLASHTABLE[3])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_FlashEraseNonBlocking                                             \
        ((void (*)(unsigned long ulAddress))ROM_FLASHTABLE[4])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_FlashProgram                                                      \
        ((long (*)(unsigned long *pulData,                                    \
                   unsigned long ulAddress,                                   \
                   unsigned long ulCount))ROM_FLASHTABLE[5])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_FlashProgramNonBlocking                                           \
        ((long (*)(unsigned long *pulData,                                    \
                   unsigned long ulAddress,                                   \
                   unsigned long ulCount))ROM_FLASHTABLE[6])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_FlashIntRegister                                                  \
        ((void (*)(void (*pfnHandler)(void)))ROM_FLASHTABLE[7])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_FlashIntUnregister                                                \
        ((void (*)(void))ROM_FLASHTABLE[8])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_FlashIntEnable                                                    \
        ((void (*)(unsigned long ulIntFlags))ROM_FLASHTABLE[9])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_FlashIntDisable                                                   \
        ((void (*)(unsigned long ulIntFlags))ROM_FLASHTABLE[10])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_FlashIntStatus                                                    \
        ((unsigned long (*)(tBoolean bMasked))ROM_FLASHTABLE[11])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_FlashIntClear                                                     \
        ((void (*)(unsigned long ulIntFlags))ROM_FLASHTABLE[12])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_FlashProtectGet                                                   \
        ((tFlashProtection (*)(unsigned long ulAddress))ROM_FLASHTABLE[13])
#endif

//*****************************************************************************
//
// Macros for calling ROM functions in the Pin API.
//
//*****************************************************************************
#if defined(TARGET_IS_CC3200)
#define ROM_PinModeSet                                                        \
        ((void (*)(unsigned long ulPin,                                       \
                   unsigned long ulPinMode))ROM_PINTABLE[0])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_PinDirModeSet                                                     \
        ((void (*)(unsigned long ulPin,                                       \
                   unsigned long ulPinIO))ROM_PINTABLE[1])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_PinDirModeGet                                                     \
        ((unsigned long (*)(unsigned long ulPin))ROM_PINTABLE[2])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_PinModeGet                                                        \
        ((unsigned long (*)(unsigned long ulPin))ROM_PINTABLE[3])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_PinConfigGet                                                      \
        ((void (*)(unsigned long ulPin,                                       \
                  unsigned long  *pulPinStrength,                             \
                   unsigned long *pulPinType))ROM_PINTABLE[4])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_PinConfigSet                                                      \
        ((void (*)(unsigned long ulPin,                                       \
                  unsigned long  ulPinStrength,                               \
                   unsigned long ulPinType))ROM_PINTABLE[5])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_PinTypeUART                                                       \
        ((void (*)(unsigned long ulPin,                                       \
                  unsigned long ulPinMode))ROM_PINTABLE[6])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_PinTypeI2C                                                        \
        ((void (*)(unsigned long ulPin,                                       \
                  unsigned long ulPinMode))ROM_PINTABLE[7])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_PinTypeSPI                                                        \
        ((void (*)(unsigned long ulPin,                                       \
                  unsigned long ulPinMode))ROM_PINTABLE[8])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_PinTypeI2S                                                        \
        ((void (*)(unsigned long ulPin,                                       \
                  unsigned long ulPinMode))ROM_PINTABLE[9])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_PinTypeTimer                                                      \
        ((void (*)(unsigned long ulPin,                                       \
                  unsigned long ulPinMode))ROM_PINTABLE[10])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_PinTypeCamera                                                     \
        ((void (*)(unsigned long ulPin,                                       \
                  unsigned long ulPinMode))ROM_PINTABLE[11])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_PinTypeGPIO                                                       \
        ((void (*)(unsigned long ulPin,                                       \
                  unsigned long ulPinMode,                                    \
                   tBoolean bOpenDrain))ROM_PINTABLE[12])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_PinTypeADC                                                        \
        ((void (*)(unsigned long ulPin,                                       \
                  unsigned long ulPinMode))ROM_PINTABLE[13])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_PinTypeSDHost                                                     \
        ((void (*)(unsigned long ulPin,                                       \
                  unsigned long ulPinMode))ROM_PINTABLE[14])
#endif

//*****************************************************************************
//
// Macros for calling ROM functions in the SYSTICK API.
//
//*****************************************************************************
#if defined(TARGET_IS_CC3200)
#define ROM_SysTickEnable                                                     \
        ((void (*)(void))ROM_SYSTICKTABLE[0])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_SysTickDisable                                                    \
        ((void (*)(void))ROM_SYSTICKTABLE[1])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_SysTickIntRegister                                                \
        ((void (*)(void (*pfnHandler)(void)))ROM_SYSTICKTABLE[2])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_SysTickIntUnregister                                              \
        ((void (*)(void))ROM_SYSTICKTABLE[3])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_SysTickIntEnable                                                  \
        ((void (*)(void))ROM_SYSTICKTABLE[4])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_SysTickIntDisable                                                 \
        ((void (*)(void))ROM_SYSTICKTABLE[5])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_SysTickPeriodSet                                                  \
        ((void (*)(unsigned long ulPeriod))ROM_SYSTICKTABLE[6])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_SysTickPeriodGet                                                  \
        ((unsigned long (*)(void))ROM_SYSTICKTABLE[7])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_SysTickValueGet                                                   \
        ((unsigned long (*)(void))ROM_SYSTICKTABLE[8])
#endif

//*****************************************************************************
//
// Macros for calling ROM functions in the UTILS API.
//
//*****************************************************************************
#if defined(TARGET_IS_CC3200)
#define ROM_UtilsDelay                                                        \
        ((void (*)(unsigned long ulCount))ROM_UTILSTABLE[0])
#endif

//*****************************************************************************
//
// Macros for calling ROM functions in the I2S API.
//
//*****************************************************************************
#if defined(TARGET_IS_CC3200)
#define ROM_I2SEnable                                                         \
        ((void (*)(unsigned long ulBase,                                      \
                   unsigned long ulMode))ROM_I2STABLE[0])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_I2SDisable                                                        \
        ((void (*)(unsigned long ulBase))ROM_I2STABLE[1])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_I2SDataPut                                                        \
        ((void (*)(unsigned long ulBase,                                      \
                   unsigned long ulDataLine,                                  \
                   unsigned long ulData))ROM_I2STABLE[2])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_I2SDataPutNonBlocking                                             \
        ((long (*)(unsigned long ulBase,                                      \
                   unsigned long ulDataLine,                                  \
                   unsigned long ulData))ROM_I2STABLE[3])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_I2SDataGet                                                        \
        ((void (*)(unsigned long ulBase,                                      \
                   unsigned long ulDataLine,                                  \
                   unsigned long *pulData))ROM_I2STABLE[4])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_I2SDataGetNonBlocking                                             \
        ((long (*)(unsigned long ulBase,                                      \
                   unsigned long ulDataLine,                                  \
                   unsigned long *pulData))ROM_I2STABLE[5])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_I2SConfigSetExpClk                                                \
        ((void (*)(unsigned long ulBase,                                      \
                   unsigned long ulI2SClk,                                    \
                   unsigned long ulBitClk,                                    \
                   unsigned long ulConfig))ROM_I2STABLE[6])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_I2STxFIFOEnable                                                   \
        ((void (*)(unsigned long ulBase,                                      \
                   unsigned long ulTxLevel,                                   \
                   unsigned long ulWordsPerTransfer))ROM_I2STABLE[7])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_I2STxFIFODisable                                                  \
        ((void (*)(unsigned long ulBase))ROM_I2STABLE[8])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_I2SRxFIFOEnable                                                   \
        ((void (*)(unsigned long ulBase,                                      \
                   unsigned long ulRxLevel,                                   \
                   unsigned long ulWordsPerTransfer))ROM_I2STABLE[9])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_I2SRxFIFODisable                                                  \
        ((void (*)(unsigned long ulBase))ROM_I2STABLE[10])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_I2STxFIFOStatusGet                                                \
        ((unsigned long (*)(unsigned long ulBase))ROM_I2STABLE[11])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_I2SRxFIFOStatusGet                                                \
        ((unsigned long (*)(unsigned long ulBase))ROM_I2STABLE[12])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_I2SSerializerConfig                                               \
        ((void (*)(unsigned long ulBase,                                      \
                   unsigned long ulDataLine,                                  \
                   unsigned long ulSerMode,                                   \
                   unsigned long ulInActState))ROM_I2STABLE[13])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_I2SIntEnable                                                      \
        ((void (*)(unsigned long ulBase,                                      \
                   unsigned long ulIntFlags))ROM_I2STABLE[14])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_I2SIntDisable                                                     \
        ((void (*)(unsigned long ulBase,                                      \
                   unsigned long ulIntFlags))ROM_I2STABLE[15])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_I2SIntStatus                                                      \
        ((unsigned long (*)(unsigned long ulBase))ROM_I2STABLE[16])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_I2SIntClear                                                       \
        ((void (*)(unsigned long ulBase,                                      \
                   unsigned long ulIntFlags))ROM_I2STABLE[17])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_I2SIntRegister                                                    \
        ((void (*)(unsigned long ulBase,                                      \
                   void (*pfnHandler)(void)))ROM_I2STABLE[18])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_I2SIntUnregister                                                  \
        ((void (*)(unsigned long ulBase))ROM_I2STABLE[19])
#endif

//*****************************************************************************
//
// Macros for calling ROM functions in the GPIO API.
//
//*****************************************************************************
#if defined(TARGET_IS_CC3200)
#define ROM_GPIODirModeSet                                                    \
        ((void (*)(unsigned long ulPort,                                      \
                   unsigned char ucPins,                                      \
                   unsigned long ulPinIO))ROM_GPIOTABLE[0])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_GPIODirModeGet                                                    \
        ((unsigned long (*)(unsigned long ulPort,                             \
                            unsigned char ucPin))ROM_GPIOTABLE[1])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_GPIOIntTypeSet                                                    \
        ((void (*)(unsigned long ulPort,                                      \
                   unsigned char ucPins,                                      \
                   unsigned long ulIntType))ROM_GPIOTABLE[2])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_GPIODMATriggerEnable                                              \
        ((void (*)(unsigned long ulPort))ROM_GPIOTABLE[3])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_GPIODMATriggerDisable                                             \
        ((void (*)(unsigned long ulPort))ROM_GPIOTABLE[4])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_GPIOIntTypeGet                                                    \
        ((unsigned long (*)(unsigned long ulPort,                             \
                            unsigned char ucPin))ROM_GPIOTABLE[5])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_GPIOIntEnable                                                     \
        ((void (*)(unsigned long ulPort,                                      \
                   unsigned long ulIntFlags))ROM_GPIOTABLE[6])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_GPIOIntDisable                                                    \
        ((void (*)(unsigned long ulPort,                                      \
                   unsigned long ulIntFlags))ROM_GPIOTABLE[7])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_GPIOIntStatus                                                     \
        ((long (*)(unsigned long ulPort,                                      \
                   tBoolean bMasked))ROM_GPIOTABLE[8])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_GPIOIntClear                                                      \
        ((void (*)(unsigned long ulPort,                                      \
                   unsigned long ulIntFlags))ROM_GPIOTABLE[9])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_GPIOIntRegister                                                   \
        ((void (*)(unsigned long ulPort,                                      \
                   void (*pfnIntHandler)(void)))ROM_GPIOTABLE[10])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_GPIOIntUnregister                                                 \
        ((void (*)(unsigned long ulPort))ROM_GPIOTABLE[11])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_GPIOPinRead                                                       \
        ((long (*)(unsigned long ulPort,                                      \
                   unsigned char ucPins))ROM_GPIOTABLE[12])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_GPIOPinWrite                                                      \
        ((void (*)(unsigned long ulPort,                                      \
                   unsigned char ucPins,                                      \
                   unsigned char ucVal))ROM_GPIOTABLE[13])
#endif

//*****************************************************************************
//
// Macros for calling ROM functions in the AES API.
//
//*****************************************************************************
#if defined(TARGET_IS_CC3200)
#define ROM_AESConfigSet                                                      \
        ((void (*)(uint32_t ui32Base,                                         \
                   uint32_t ui32Config))ROM_AESTABLE[0])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_AESKey1Set                                                        \
        ((void (*)(uint32_t ui32Base,                                         \
                   uint8_t *pui8Key,                                          \
                   uint32_t ui32Keysize))ROM_AESTABLE[1])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_AESKey2Set                                                        \
        ((void (*)(uint32_t ui32Base,                                         \
                   uint8_t *pui8Key,                                          \
                   uint32_t ui32Keysize))ROM_AESTABLE[2])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_AESKey3Set                                                        \
        ((void (*)(uint32_t ui32Base,                                         \
                   uint8_t *pui8Key))ROM_AESTABLE[3])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_AESIVSet                                                          \
        ((void (*)(uint32_t ui32Base,                                         \
                   uint8_t *pui8IVdata))ROM_AESTABLE[4])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_AESTagRead                                                        \
        ((void (*)(uint32_t ui32Base,                                         \
                   uint8_t *pui8TagData))ROM_AESTABLE[5])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_AESDataLengthSet                                                  \
        ((void (*)(uint32_t ui32Base,                                         \
                   uint64_t ui64Length))ROM_AESTABLE[6])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_AESAuthDataLengthSet                                              \
        ((void (*)(uint32_t ui32Base,                                         \
                   uint32_t ui32Length))ROM_AESTABLE[7])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_AESDataReadNonBlocking                                            \
        ((bool (*)(uint32_t ui32Base,                                         \
                   uint8_t *pui8Dest,                                         \
                   uint8_t ui8Length))ROM_AESTABLE[8])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_AESDataRead                                                       \
        ((void (*)(uint32_t ui32Base,                                         \
                   uint8_t *pui8Dest,                                         \
                   uint8_t ui8Length))ROM_AESTABLE[9])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_AESDataWriteNonBlocking                                           \
        ((bool (*)(uint32_t ui32Base,                                         \
                   uint8_t *pui8Src,                                          \
                   uint8_t ui8Length))ROM_AESTABLE[10])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_AESDataWrite                                                      \
        ((void (*)(uint32_t ui32Base,                                         \
                   uint8_t *pui8Src,                                          \
                   uint8_t ui8Length))ROM_AESTABLE[11])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_AESDataProcess                                                    \
        ((bool (*)(uint32_t ui32Base,                                         \
                   uint8_t *pui8Src,                                          \
                   uint8_t *pui8Dest,                                         \
                   uint32_t ui32Length))ROM_AESTABLE[12])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_AESDataMAC                                                        \
        ((bool (*)(uint32_t ui32Base,                                         \
                   uint8_t *pui8Src,                                          \
                   uint32_t ui32Length,                                       \
                   uint8_t *pui8Tag))ROM_AESTABLE[13])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_AESDataProcessAE                                                  \
        ((bool (*)(uint32_t ui32Base,                                         \
                   uint8_t *pui8Src,                                          \
                   uint8_t *pui8Dest,                                         \
                   uint32_t ui32Length,                                       \
                   uint8_t *pui8AuthSrc,                                      \
                   uint32_t ui32AuthLength,                                   \
                   uint8_t *pui8Tag))ROM_AESTABLE[14])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_AESIntStatus                                                      \
        ((uint32_t (*)(uint32_t ui32Base,                                     \
                       bool bMasked))ROM_AESTABLE[15])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_AESIntEnable                                                      \
        ((void (*)(uint32_t ui32Base,                                         \
                   uint32_t ui32IntFlags))ROM_AESTABLE[16])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_AESIntDisable                                                     \
        ((void (*)(uint32_t ui32Base,                                         \
                   uint32_t ui32IntFlags))ROM_AESTABLE[17])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_AESIntClear                                                       \
        ((void (*)(uint32_t ui32Base,                                         \
                   uint32_t ui32IntFlags))ROM_AESTABLE[18])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_AESIntRegister                                                    \
        ((void (*)(uint32_t ui32Base,                                         \
                   void(*pfnHandler)(void)))ROM_AESTABLE[19])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_AESIntUnregister                                                  \
        ((void (*)(uint32_t ui32Base))ROM_AESTABLE[20])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_AESDMAEnable                                                      \
        ((void (*)(uint32_t ui32Base,                                         \
                   uint32_t ui32Flags))ROM_AESTABLE[21])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_AESDMADisable                                                     \
        ((void (*)(uint32_t ui32Base,                                         \
                   uint32_t ui32Flags))ROM_AESTABLE[22])
#endif

//*****************************************************************************
//
// Macros for calling ROM functions in the DES API.
//
//*****************************************************************************
#if defined(TARGET_IS_CC3200)
#define ROM_DESConfigSet                                                      \
        ((void (*)(uint32_t ui32Base,                                         \
                   uint32_t ui32Config))ROM_DESTABLE[0])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_DESDataRead                                                       \
        ((void (*)(uint32_t ui32Base,                                         \
                   uint8_t *pui8Dest,                                         \
                   uint8_t ui8Length))ROM_DESTABLE[1])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_DESDataReadNonBlocking                                            \
        ((bool (*)(uint32_t ui32Base,                                         \
                   uint8_t *pui8Dest,                                         \
                   uint8_t ui8Length))ROM_DESTABLE[2])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_DESDataProcess                                                    \
        ((bool (*)(uint32_t ui32Base,                                         \
                   uint8_t *pui8Src,                                          \
                   uint8_t *pui8Dest,                                         \
                   uint32_t ui32Length))ROM_DESTABLE[3])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_DESDataWrite                                                      \
        ((void (*)(uint32_t ui32Base,                                         \
                   uint8_t *pui8Src,                                          \
                   uint8_t ui8Length))ROM_DESTABLE[4])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_DESDataWriteNonBlocking                                           \
        ((bool (*)(uint32_t ui32Base,                                         \
                   uint8_t *pui8Src,                                          \
                   uint8_t ui8Length))ROM_DESTABLE[5])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_DESDMADisable                                                     \
        ((void (*)(uint32_t ui32Base,                                         \
                   uint32_t ui32Flags))ROM_DESTABLE[6])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_DESDMAEnable                                                      \
        ((void (*)(uint32_t ui32Base,                                         \
                   uint32_t ui32Flags))ROM_DESTABLE[7])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_DESIntClear                                                       \
        ((void (*)(uint32_t ui32Base,                                         \
                   uint32_t ui32IntFlags))ROM_DESTABLE[8])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_DESIntDisable                                                     \
        ((void (*)(uint32_t ui32Base,                                         \
                   uint32_t ui32IntFlags))ROM_DESTABLE[9])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_DESIntEnable                                                      \
        ((void (*)(uint32_t ui32Base,                                         \
                   uint32_t ui32IntFlags))ROM_DESTABLE[10])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_DESIntRegister                                                    \
        ((void (*)(uint32_t ui32Base,                                         \
                   void(*pfnHandler)(void)))ROM_DESTABLE[11])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_DESIntStatus                                                      \
        ((uint32_t (*)(uint32_t ui32Base,                                     \
                       bool bMasked))ROM_DESTABLE[12])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_DESIntUnregister                                                  \
        ((void (*)(uint32_t ui32Base))ROM_DESTABLE[13])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_DESIVSet                                                          \
        ((bool (*)(uint32_t ui32Base,                                         \
                   uint8_t *pui8IVdata))ROM_DESTABLE[14])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_DESKeySet                                                         \
        ((void (*)(uint32_t ui32Base,                                         \
                   uint8_t *pui8Key))ROM_DESTABLE[15])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_DESDataLengthSet                                                  \
        ((void (*)(uint32_t ui32Base,                                         \
                   uint32_t ui32Length))ROM_DESTABLE[16])
#endif

//*****************************************************************************
//
// Macros for calling ROM functions in the SHAMD5 API.
//
//*****************************************************************************
#if defined(TARGET_IS_CC3200)
#define ROM_SHAMD5ConfigSet                                                   \
        ((void (*)(uint32_t ui32Base,                                         \
                   uint32_t ui32Mode))ROM_SHAMD5TABLE[0])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_SHAMD5DataProcess                                                 \
        ((bool (*)(uint32_t ui32Base,                                         \
                   uint8_t *pui8DataSrc,                                      \
                   uint32_t ui32DataLength,                                   \
                   uint8_t *pui8HashResult))ROM_SHAMD5TABLE[1])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_SHAMD5DataWrite                                                   \
        ((void (*)(uint32_t ui32Base,                                         \
                   uint8_t *pui8Src))ROM_SHAMD5TABLE[2])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_SHAMD5DataWriteNonBlocking                                        \
        ((bool (*)(uint32_t ui32Base,                                         \
                   uint8_t *pui8Src))ROM_SHAMD5TABLE[3])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_SHAMD5DMADisable                                                  \
        ((void (*)(uint32_t ui32Base))ROM_SHAMD5TABLE[4])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_SHAMD5DMAEnable                                                   \
        ((void (*)(uint32_t ui32Base))ROM_SHAMD5TABLE[5])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_SHAMD5DataLengthSet                                               \
        ((void (*)(uint32_t ui32Base,                                         \
                   uint32_t ui32Length))ROM_SHAMD5TABLE[6])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_SHAMD5HMACKeySet                                                  \
        ((void (*)(uint32_t ui32Base,                                         \
                   uint8_t *pui8Src))ROM_SHAMD5TABLE[7])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_SHAMD5HMACPPKeyGenerate                                           \
        ((void (*)(uint32_t ui32Base,                                         \
                   uint8_t *pui8Key,                                          \
                   uint8_t *pui8PPKey))ROM_SHAMD5TABLE[8])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_SHAMD5HMACPPKeySet                                                \
        ((void (*)(uint32_t ui32Base,                                         \
                   uint8_t *pui8Src))ROM_SHAMD5TABLE[9])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_SHAMD5HMACProcess                                                 \
        ((bool (*)(uint32_t ui32Base,                                         \
                   uint8_t *pui8DataSrc,                                      \
                   uint32_t ui32DataLength,                                   \
                   uint8_t *pui8HashResult))ROM_SHAMD5TABLE[10])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_SHAMD5IntClear                                                    \
        ((void (*)(uint32_t ui32Base,                                         \
                   uint32_t ui32IntFlags))ROM_SHAMD5TABLE[11])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_SHAMD5IntDisable                                                  \
        ((void (*)(uint32_t ui32Base,                                         \
                   uint32_t ui32IntFlags))ROM_SHAMD5TABLE[12])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_SHAMD5IntEnable                                                   \
        ((void (*)(uint32_t ui32Base,                                         \
                   uint32_t ui32IntFlags))ROM_SHAMD5TABLE[13])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_SHAMD5IntRegister                                                 \
        ((void (*)(uint32_t ui32Base,                                         \
                   void(*pfnHandler)(void)))ROM_SHAMD5TABLE[14])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_SHAMD5IntStatus                                                   \
        ((uint32_t (*)(uint32_t ui32Base,                                     \
                       bool bMasked))ROM_SHAMD5TABLE[15])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_SHAMD5IntUnregister                                               \
        ((void (*)(uint32_t ui32Base))ROM_SHAMD5TABLE[16])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_SHAMD5ResultRead                                                  \
        ((void (*)(uint32_t ui32Base,                                         \
                   uint8_t *pui8Dest))ROM_SHAMD5TABLE[17])
#endif

//*****************************************************************************
//
// Macros for calling ROM functions in the CRC API.
//
//*****************************************************************************
#if defined(TARGET_IS_CC3200)
#define ROM_CRCConfigSet                                                      \
        ((void (*)(uint32_t ui32Base,                                         \
                   uint32_t ui32CRCConfig))ROM_CRCTABLE[0])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_CRCDataProcess                                                    \
        ((uint32_t (*)(uint32_t ui32Base,                                     \
                       void *puiDataIn,                                       \
                       uint32_t ui32DataLength,                               \
                       uint32_t ui32Config))ROM_CRCTABLE[1])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_CRCDataWrite                                                      \
        ((void (*)(uint32_t ui32Base,                                         \
                   uint32_t ui32Data))ROM_CRCTABLE[2])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_CRCResultRead                                                     \
        ((uint32_t (*)(uint32_t ui32Base))ROM_CRCTABLE[3])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_CRCSeedSet                                                        \
        ((void (*)(uint32_t ui32Base,                                         \
                   uint32_t ui32Seed))ROM_CRCTABLE[4])
#endif

//*****************************************************************************
//
// Macros for calling ROM functions in the SDHOST API.
//
//*****************************************************************************
#if defined(TARGET_IS_CC3200)
#define ROM_SDHostCmdReset                                                    \
        ((void (*)(unsigned long ulBase))ROM_SDHOSTTABLE[0])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_SDHostInit                                                        \
        ((void (*)(unsigned long ulBase))ROM_SDHOSTTABLE[1])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_SDHostCmdSend                                                     \
        ((long (*)(unsigned long ulBase,                                      \
                  unsigned long ulCmd,                                        \
                   unsigned ulArg))ROM_SDHOSTTABLE[2])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_SDHostIntRegister                                                 \
        ((void (*)(unsigned long ulBase,                                      \
                   void (*pfnHandler)(void)))ROM_SDHOSTTABLE[3])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_SDHostIntUnregister                                               \
        ((void (*)(unsigned long ulBase))ROM_SDHOSTTABLE[4])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_SDHostIntEnable                                                   \
        ((void (*)(unsigned long ulBase,                                      \
                  unsigned long ulIntFlags))ROM_SDHOSTTABLE[5])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_SDHostIntDisable                                                  \
        ((void (*)(unsigned long ulBase,                                      \
                  unsigned long ulIntFlags))ROM_SDHOSTTABLE[6])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_SDHostIntStatus                                                   \
        ((unsigned long (*)(unsigned long ulBase))ROM_SDHOSTTABLE[7])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_SDHostIntClear                                                    \
        ((void (*)(unsigned long ulBase,                                      \
                  unsigned long ulIntFlags))ROM_SDHOSTTABLE[8])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_SDHostRespStatus                                                  \
        ((unsigned long (*)(unsigned long ulBase))ROM_SDHOSTTABLE[9])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_SDHostRespGet                                                     \
        ((void (*)(unsigned long ulBase,                                      \
                   unsigned long ulRespnse[4]))ROM_SDHOSTTABLE[10])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_SDHostBlockSizeSet                                                \
        ((void (*)(unsigned long ulBase,                                      \
                   unsigned short ulBlkSize))ROM_SDHOSTTABLE[11])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_SDHostBlockCountSet                                               \
        ((void (*)(unsigned long ulBase,                                      \
                   unsigned short ulBlkCount))ROM_SDHOSTTABLE[12])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_SDHostDataNonBlockingWrite                                        \
        ((tBoolean (*)(unsigned long ulBase,                                  \
                       unsigned long ulData))ROM_SDHOSTTABLE[13])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_SDHostDataNonBlockingRead                                         \
        ((tBoolean (*)(unsigned long ulBase,                                  \
                       unsigned long *pulData))ROM_SDHOSTTABLE[14])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_SDHostDataWrite                                                   \
        ((void (*)(unsigned long ulBase,                                      \
                   unsigned long ulData))ROM_SDHOSTTABLE[15])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_SDHostDataRead                                                    \
        ((void (*)(unsigned long ulBase,                                      \
                   unsigned long *ulData))ROM_SDHOSTTABLE[16])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_SDHostSetExpClk                                                   \
        ((void (*)(unsigned long ulBase,                                      \
                   unsigned long ulSDHostClk,                                 \
                   unsigned long ulCardClk))ROM_SDHOSTTABLE[17])
#endif

//*****************************************************************************
//
// Macros for calling ROM functions in the PRCM API.
//
//*****************************************************************************
#if defined(TARGET_IS_CC3200)
#define ROM_PRCMMCUReset                                                      \
        ((void (*)(tBoolean bIncludeSubsystem))ROM_PRCMTABLE[1])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_PRCMSysResetCauseGet                                              \
        ((unsigned long (*)(void))ROM_PRCMTABLE[2])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_PRCMPeripheralClkEnable                                           \
        ((void (*)(unsigned long ulPeripheral,                                \
                   unsigned long ulClkFlags))ROM_PRCMTABLE[3])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_PRCMPeripheralClkDisable                                          \
        ((void (*)(unsigned long ulPeripheral,                                \
                   unsigned long ulClkFlags))ROM_PRCMTABLE[4])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_PRCMPeripheralReset                                               \
        ((void (*)(unsigned long ulPeripheral))ROM_PRCMTABLE[5])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_PRCMPeripheralStatusGet                                           \
        ((tBoolean (*)(unsigned long ulPeripheral))ROM_PRCMTABLE[6])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_PRCMI2SClockFreqSet                                               \
        ((void (*)(unsigned long ulI2CClkFreq))ROM_PRCMTABLE[7])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_PRCMPeripheralClockGet                                            \
        ((unsigned long (*)(unsigned long ulPeripheral))ROM_PRCMTABLE[8])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_PRCMSleepEnter                                                    \
        ((void (*)(void))ROM_PRCMTABLE[9])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_PRCMDeepSleepEnter                                                \
        ((void (*)(void))ROM_PRCMTABLE[10])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_PRCMSRAMRetentionEnable                                           \
        ((void (*)(unsigned long ulSramColSel,                                \
                   unsigned long ulFlags))ROM_PRCMTABLE[11])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_PRCMSRAMRetentionDisable                                          \
        ((void (*)(unsigned long ulSramColSel,                                \
                   unsigned long ulFlags))ROM_PRCMTABLE[12])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_PRCMLPDSEnter                                                     \
        ((void (*)(void))ROM_PRCMTABLE[13])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_PRCMLPDSIntervalSet                                               \
        ((void (*)(unsigned long ulTicks))ROM_PRCMTABLE[14])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_PRCMLPDSWakeupSourceEnable                                        \
        ((void (*)(unsigned long ulLpdsWakeupSrc))ROM_PRCMTABLE[15])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_PRCMLPDSWakeupCauseGet                                            \
        ((unsigned long (*)(void))ROM_PRCMTABLE[16])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_PRCMLPDSWakeUpGPIOSelect                                          \
        ((void (*)(unsigned long ulGPIOPin,                                   \
                   unsigned long ulType))ROM_PRCMTABLE[17])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_PRCMLPDSWakeupSourceDisable                                       \
        ((void (*)(unsigned long ulLpdsWakeupSrc))ROM_PRCMTABLE[18])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_PRCMHibernateEnter                                                \
        ((void (*)(void))ROM_PRCMTABLE[19])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_PRCMHibernateWakeupSourceEnable                                   \
        ((void (*)(unsigned long ulHIBWakupSrc))ROM_PRCMTABLE[20])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_PRCMHibernateWakeupCauseGet                                       \
        ((unsigned long (*)(void))ROM_PRCMTABLE[21])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_PRCMHibernateWakeUpGPIOSelect                                     \
        ((void (*)(unsigned long ulMultiGPIOBitMap,                           \
                   unsigned long ulType))ROM_PRCMTABLE[22])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_PRCMHibernateWakeupSourceDisable                                  \
        ((void (*)(unsigned long ulHIBWakupSrc))ROM_PRCMTABLE[23])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_PRCMHibernateIntervalSet                                          \
        ((void (*)(unsigned long long ullTicks))ROM_PRCMTABLE[24])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_PRCMSlowClkCtrGet                                                 \
        ((unsigned long long (*)(void))ROM_PRCMTABLE[25])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_PRCMSlowClkCtrMatchSet                                            \
        ((void (*)(unsigned long long ullTicks))ROM_PRCMTABLE[26])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_PRCMSlowClkCtrMatchGet                                            \
        ((unsigned long long (*)(void))ROM_PRCMTABLE[27])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_PRCMOCRRegisterWrite                                              \
        ((void (*)(unsigned char ucIndex,                                     \
                   unsigned long ulRegValue))ROM_PRCMTABLE[28])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_PRCMOCRRegisterRead                                               \
        ((unsigned long (*)(unsigned char ucIndex))ROM_PRCMTABLE[29])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_PRCMIntRegister                                                   \
        ((void (*)(void (*pfnHandler)(void)))ROM_PRCMTABLE[30])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_PRCMIntUnregister                                                 \
        ((void (*)(void))ROM_PRCMTABLE[31])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_PRCMIntEnable                                                     \
        ((void (*)(unsigned long ulIntFlags))ROM_PRCMTABLE[32])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_PRCMIntDisable                                                    \
        ((void (*)(unsigned long ulIntFlags))ROM_PRCMTABLE[33])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_PRCMIntStatus                                                     \
        ((unsigned long (*)(void))ROM_PRCMTABLE[34])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_PRCMRTCInUseSet                                                   \
        ((void (*)(void))ROM_PRCMTABLE[35])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_PRCMRTCInUseGet                                                   \
        ((tBoolean (*)(void))ROM_PRCMTABLE[36])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_PRCMRTCSet                                                        \
        ((void (*)(unsigned long ulSecs,                                      \
                   unsigned short usMsec))ROM_PRCMTABLE[37])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_PRCMRTCGet                                                        \
        ((void (*)(unsigned long *ulSecs,                                     \
                   unsigned short *usMsec))ROM_PRCMTABLE[38])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_PRCMRTCMatchSet                                                   \
        ((void (*)(unsigned long ulSecs,                                      \
                   unsigned short usMsec))ROM_PRCMTABLE[39])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_PRCMRTCMatchGet                                                   \
        ((void (*)(unsigned long *ulSecs,                                     \
                   unsigned short *usMsec))ROM_PRCMTABLE[40])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_PRCMLPDSRestoreInfoSet                                            \
        ((void (*)(unsigned long ulRestoreSP,                                 \
                   unsigned long ulRestorePC))ROM_PRCMTABLE[41])
#endif

//*****************************************************************************
//
// Macros for calling ROM functions in the HWSPINLOCK API.
//
//*****************************************************************************
#if defined(TARGET_IS_CC3200)
#define ROM_HwSpinLockAcquire                                                 \
        ((void (*)(uint32_t ui32LockID))ROM_HWSPINLOCKTABLE[0])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_HwSpinLockTryAcquire                                              \
        ((int32_t (*)(uint32_t ui32LockID,                                    \
                      uint32_t ui32Retry))ROM_HWSPINLOCKTABLE[1])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_HwSpinLockRelease                                                 \
        ((void (*)(uint32_t ui32LockID))ROM_HWSPINLOCKTABLE[2])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_HwSpinLockTest                                                    \
        ((uint32_t (*)(uint32_t ui32LockID,                                   \
                       bool bCurrentStatus))ROM_HWSPINLOCKTABLE[3])
#endif

//*****************************************************************************
//
// Macros for calling ROM functions in the ADC API.
//
//*****************************************************************************
#if defined(TARGET_IS_CC3200)
#define ROM_ADCEnable                                                         \
        ((void (*)(unsigned long ulBase))ROM_ADCTABLE[0])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_ADCDisable                                                        \
        ((void (*)(unsigned long ulBase))ROM_ADCTABLE[1])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_ADCChannelEnable                                                  \
        ((void (*)(unsigned long ulBase,                                      \
                  unsigned long ulChannel))ROM_ADCTABLE[2])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_ADCChannelDisable                                                 \
        ((void (*)(unsigned long ulBase,                                      \
                  unsigned long ulChannel))ROM_ADCTABLE[3])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_ADCIntRegister                                                    \
        ((void (*)(unsigned long ulBase,                                      \
                   unsigned long ulChannel,                                   \
                   void (*pfnHandler)(void)))ROM_ADCTABLE[4])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_ADCIntUnregister                                                  \
        ((void (*)(unsigned long ulBase,                                      \
                   unsigned long ulChannel))ROM_ADCTABLE[5])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_ADCIntEnable                                                      \
        ((void (*)(unsigned long ulBase,                                      \
                   unsigned long ulChannel,                                   \
                   unsigned long ulIntFlags))ROM_ADCTABLE[6])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_ADCIntDisable                                                     \
        ((void (*)(unsigned long ulBase,                                      \
                   unsigned long ulChannel,                                   \
                   unsigned long ulIntFlags))ROM_ADCTABLE[7])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_ADCIntStatus                                                      \
        ((unsigned long (*)(unsigned long ulBase,                             \
                           unsigned long ulChannel))ROM_ADCTABLE[8])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_ADCIntClear                                                       \
        ((void (*)(unsigned long ulBase,                                      \
                   unsigned long ulChannel,                                   \
                   unsigned long ulIntFlags))ROM_ADCTABLE[9])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_ADCDMAEnable                                                      \
        ((void (*)(unsigned long ulBase,                                      \
                   unsigned long ulChannel))ROM_ADCTABLE[10])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_ADCDMADisable                                                     \
        ((void (*)(unsigned long ulBase,                                      \
                   unsigned long ulChannel))ROM_ADCTABLE[11])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_ADCChannelGainSet                                                 \
        ((void (*)(unsigned long ulBase,                                      \
                   unsigned long ulChannel,                                   \
                   unsigned char ucGain))ROM_ADCTABLE[12])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_ADCChannleGainGet                                                 \
        ((unsigned char (*)(unsigned long ulBase,                             \
                            unsigned long ulChannel))ROM_ADCTABLE[13])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_ADCTimerConfig                                                    \
        ((void (*)(unsigned long ulBase,                                      \
                   unsigned long ulValue))ROM_ADCTABLE[14])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_ADCTimerEnable                                                    \
        ((void (*)(unsigned long ulBase))ROM_ADCTABLE[15])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_ADCTimerDisable                                                   \
        ((void (*)(unsigned long ulBase))ROM_ADCTABLE[16])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_ADCTimerReset                                                     \
        ((void (*)(unsigned long ulBase))ROM_ADCTABLE[17])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_ADCTimerValueGet                                                  \
        ((unsigned long (*)(unsigned long ulBase))ROM_ADCTABLE[18])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_ADCFIFOLvlGet                                                     \
        ((unsigned char (*)(unsigned long ulBase,                             \
                            unsigned long ulChannel))ROM_ADCTABLE[19])
#endif
#if defined(TARGET_IS_CC3200)
#define ROM_ADCFIFORead                                                       \
        ((unsigned long (*)(unsigned long ulBase,                             \
                            unsigned long ulChannel))ROM_ADCTABLE[20])
#endif

#endif // __ROM_H__
@


1.1
log
@Initial revision
@
text
@@


1.1.1.1
log
@Import micropython version 1.5.2 into othersrc.

Micropython is a python3 implementation that has been optimised for
micro-controllers and small embedded systems.  It also has a "unix"
port. It has an MIT license.

This is version 1.5.2 of micropython.

	MicroPython implements the entire Python 3.4 syntax (including
	exceptions, "with", "yield from", etc.).  The following core
	datatypes are provided:  str (including basic Unicode
	support), bytes, bytearray, tuple, list, dict, set, frozenset,
	array.array, collections.namedtuple, classes and instances. 
	Builtin modules include sys, time, and struct.  Note that only
	subset of Python 3.4 functionality implemented for the data
	types and modules.

This is the standard micropython source (version v1.5.2), which has been
adapted to use reachover infrastructure. At the present time, libffi
(from pkgsrc) is used. Alternative locations for libffi can be set
using the PKGSRC_PREFIX definition to make.

In the whole scheme of things, micropython is quite small:

	% size bin/micropython
	   text    data     bss     dec     hex filename
	 393495    1624    2208  397327   6100f bin/micropython
	%

and runs much as expected:

	% bin/micropython
	MicroPython v1.5.2 on 2016-01-13; linux version
	Use Ctrl-D to exit, Ctrl-E for paste mode
	>>> print("hello world")
	hello world
	>>> list(5 * x + y for x in range(10) for y in [4, 2, 1])
	[4, 2, 1, 9, 7, 6, 14, 12, 11, 19, 17, 16, 24, 22, 21, 29, 27, 26, 34, 32, 31, 39, 37, 36, 44, 42, 41, 49, 47, 46]
	>>>
	% python2.7
	Python 2.7.10 (default, Oct 17 2015, 17:55:29)
	[GCC 4.8.5] on netbsd7
	Type "help", "copyright", "credits" or "license" for more information.
	>>> print("hello world")
	hello world
	>>> list(5 * x + y for x in range(10) for y in [4, 2, 1])
	[4, 2, 1, 9, 7, 6, 14, 12, 11, 19, 17, 16, 24, 22, 21, 29, 27, 26, 34, 32, 31, 39, 37, 36, 44, 42, 41, 49, 47, 46]
	>>> ^D
	%

This (reachover) version runs all the tests which the gmake version does.

	% make t
	cd bin && make t
	cd /home/agc/local/micropython/bin/../dist/unix/../tests && env MICROPY_MICROPYTHON=/home/agc/local/micropython/bin/micropython ./run-tests
	pass  basics/0prelim.py
	pass  basics/andor.py
	pass  basics/array1.py
	pass  basics/array_add.py
	pass  basics/array_construct.py
	pass  basics/array_construct2.py
	...
	pass  unix/ffi_callback.py
	pass  unix/ffi_float.py
	pass  unix/ffi_float2.py
	474 tests performed (15812 individual testcases)
	474 tests passed
	5 tests skipped: cmd_showbc cmd_verbose machine1 machine_mem extra_coverage
	%

The sources are available from github:
	https://github.com/micropython/micropython

micropython release at:
	https://github.com/micropython/micropython/releases

Sources for 1.5.2 taken from:
	https://github.com/micropython/micropython/archive/v1.5.2.tar.gz

Alistair Crooks
agc@@netbsd.org
Wed Jan 13 17:15:30 PST 2016
@
text
@@
