text: //*****************************************************************************
  //
  // interrupt.h - Prototypes for the NVIC Interrupt Controller Driver.
  //
  // Copyright (c) 2005-2011 Texas Instruments Incorporated.  All rights reserved.
  // Software License Agreement
  // 
  // Texas Instruments (TI) is supplying this software for use solely and
  // exclusively on TI's microcontroller products. The software is owned by
  // TI and/or its suppliers, and is protected under applicable copyright
  // laws. You may not combine this software with "viral" open-source
  // software in order to form a larger program.
  // 
  // THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS.
  // 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. TI SHALL NOT, UNDER ANY
  // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL
  // DAMAGES, FOR ANY REASON WHATSOEVER.
  // 
  // This is part of revision 6852 of the Stellaris Peripheral Driver Library.
  //
  //*****************************************************************************
  
  #ifndef __INTERRUPT_H__
  #define __INTERRUPT_H__
  
  //*****************************************************************************
  //
  // If building with a C++ compiler, make all of the definitions in this header
  // have a C binding.
  //
  //*****************************************************************************
  #ifdef __cplusplus
  extern "C"
  {
  #endif
  
  //*****************************************************************************
  //
  // Macro to generate an interrupt priority mask based on the number of bits
  // of priority supported by the hardware.
  //
  //*****************************************************************************
  #define INT_PRIORITY_MASK       ((0xFF << (8 - NUM_PRIORITY_BITS)) & 0xFF)
  
  //*****************************************************************************
  //
  // Prototypes for the APIs.
  //
  //*****************************************************************************
  extern tBoolean IntMasterEnable(void);
  extern tBoolean IntMasterDisable(void);
  extern void IntRegister(unsigned long ulInterrupt, void (*pfnHandler)(void));
  extern void IntUnregister(unsigned long ulInterrupt);
  extern void IntPriorityGroupingSet(unsigned long ulBits);
  extern unsigned long IntPriorityGroupingGet(void);
  extern void IntPrioritySet(unsigned long ulInterrupt,
                             unsigned char ucPriority);
  extern long IntPriorityGet(unsigned long ulInterrupt);
  extern void IntEnable(unsigned long ulInterrupt);
  extern void IntDisable(unsigned long ulInterrupt);
  extern void IntPendSet(unsigned long ulInterrupt);
  extern void IntPendClear(unsigned long ulInterrupt);
  extern void IntPriorityMaskSet(unsigned long ulPriorityMask);
  extern unsigned long IntPriorityMaskGet(void);
  
  //*****************************************************************************
  //
  // Mark the end of the C bindings section for C++ compilers.
  //
  //*****************************************************************************
  #ifdef __cplusplus
  }
  #endif
  
  #endif // __INTERRUPT_H__
  