text: //*****************************************************************************
  //
  // uart.h - Defines and Macros for the UART.
  //
  // Copyright (c) 2005,2006 Luminary Micro, Inc.  All rights reserved.
  //
  // Software License Agreement
  //
  // Luminary Micro, Inc. (LMI) is supplying this software for use solely and
  // exclusively on LMI's Stellaris Family of microcontroller products.
  //
  // The software is owned by LMI and/or its suppliers, and is protected under
  // applicable copyright laws.  All rights are reserved.  Any use in violation
  // of the foregoing restrictions may subject the user to criminal sanctions
  // under applicable laws, as well as to civil liability for the breach of the
  // terms and conditions of this license.
  //
  // THIS SOFTWARE IS PROVIDED "AS IS".  NO WARRANTIES, WHETHER EXPRESS, IMPLIED
  // OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF
  // MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE.
  // LMI SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR
  // CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER.
  //
  // This is part of revision 991 of the Stellaris Driver Library.
  //
  //*****************************************************************************
  
  #ifndef __UART_H__
  #define __UART_H__
  
  #ifdef __cplusplus
  extern "C"
  {
  #endif
  
  //*****************************************************************************
  //
  // Values that can be passed to UARTIntEnable, UARTIntDisable, and UARTIntClear
  // as the ulIntFlags parameter, and returned from UARTIntStatus.
  //
  //*****************************************************************************
  #define UART_INT_OE             0x400       // Overrun Error Interrupt Mask
  #define UART_INT_BE             0x200       // Break Error Interrupt Mask
  #define UART_INT_PE             0x100       // Parity Error Interrupt Mask
  #define UART_INT_FE             0x080       // Framing Error Interrupt Mask
  #define UART_INT_RT             0x040       // Receive Timeout Interrupt Mask
  #define UART_INT_TX             0x020       // Transmit Interrupt Mask
  #define UART_INT_RX             0x010       // Receive Interrupt Mask
  
  //*****************************************************************************
  //
  // Values that can be passed to UARTConfigSet as the ulConfig parameter and
  // returned by UARTConfigGet in the pulConfig parameter.  Additionally, the
  // UART_CONFIG_PAR_* subset can be passed to UARTParityModeSet as the ulParity
  // parameter, and are returned by UARTParityModeGet.
  //
  //*****************************************************************************
  #define UART_CONFIG_WLEN_8      0x00000060  // 8 bit data
  #define UART_CONFIG_WLEN_7      0x00000040  // 7 bit data
  #define UART_CONFIG_WLEN_6      0x00000020  // 6 bit data
  #define UART_CONFIG_WLEN_5      0x00000000  // 5 bit data
  #define UART_CONFIG_STOP_ONE    0x00000000  // One stop bit
  #define UART_CONFIG_STOP_TWO    0x00000008  // Two stop bits
  #define UART_CONFIG_PAR_NONE    0x00000000  // No parity
  #define UART_CONFIG_PAR_EVEN    0x00000006  // Even parity
  #define UART_CONFIG_PAR_ODD     0x00000002  // Odd parity
  #define UART_CONFIG_PAR_ONE     0x00000086  // Parity bit is one
  #define UART_CONFIG_PAR_ZERO    0x00000082  // Parity bit is zero
  
  //*****************************************************************************
  //
  // API Function prototypes
  //
  //*****************************************************************************
  extern void UARTParityModeSet(unsigned long ulBase, unsigned long ulParity);
  extern unsigned long UARTParityModeGet(unsigned long ulBase);
  extern void UARTConfigSet(unsigned long ulBase, unsigned long ulBaud,
                            unsigned long ulConfig);
  extern void UARTConfigGet(unsigned long ulBase, unsigned long *pulBaud,
                            unsigned long *pulConfig);
  extern void UARTEnable(unsigned long ulBase);
  extern void UARTDisable(unsigned long ulBase);
  extern tBoolean UARTCharsAvail(unsigned long ulBase);
  extern tBoolean UARTSpaceAvail(unsigned long ulBase);
  extern long UARTCharNonBlockingGet(unsigned long ulBase);
  extern long UARTCharGet(unsigned long ulBase);
  extern tBoolean UARTCharNonBlockingPut(unsigned long ulBase,
                                         unsigned char ucData);
  extern void UARTCharPut(unsigned long ulBase, unsigned char ucData);
  extern void UARTBreakCtl(unsigned long ulBase, tBoolean bBreakState);
  extern void UARTIntRegister(unsigned long ulBase, void(*pfnHandler)(void));
  extern void UARTIntUnregister(unsigned long ulBase);
  extern void UARTIntEnable(unsigned long ulBase, unsigned long ulIntFlags);
  extern void UARTIntDisable(unsigned long ulBase, unsigned long ulIntFlags);
  extern unsigned long UARTIntStatus(unsigned long ulBase, tBoolean bMasked);
  extern void UARTIntClear(unsigned long ulBase, unsigned long ulIntFlags);
  extern void UARTConfigSetExpClk(unsigned long ulBase, unsigned long ulUARTClk,
                                  unsigned long ulBaud, unsigned long ulConfig);
  
  #ifdef __cplusplus
  }
  #endif
  
  #endif //  __UART_H__
  