1 //***************************************************************************** 2 // 3 // interrupt.h - Prototypes for the NVIC Interrupt Controller Driver. 4 // 5 // Copyright (c) 2005-2011 Texas Instruments Incorporated. All rights reserved. 6 // Software License Agreement 7 // 8 // Texas Instruments (TI) is supplying this software for use solely and 9 // exclusively on TI's microcontroller products. The software is owned by 10 // TI and/or its suppliers, and is protected under applicable copyright 11 // laws. You may not combine this software with "viral" open-source 12 // software in order to form a larger program. 13 // 14 // THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. 15 // NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT 16 // NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 17 // A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY 18 // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL 19 // DAMAGES, FOR ANY REASON WHATSOEVER. 20 // 21 // This is part of revision 8264 of the Stellaris Peripheral Driver Library. 22 // 23 //***************************************************************************** 24 25 #ifndef __INTERRUPT_H__ 26 #define __INTERRUPT_H__ 27 28 //***************************************************************************** 29 // 30 // If building with a C++ compiler, make all of the definitions in this header 31 // have a C binding. 32 // 33 //***************************************************************************** 34 #ifdef __cplusplus 35 extern "C" 36 { 37 #endif 38 39 //***************************************************************************** 40 // 41 // Macro to generate an interrupt priority mask based on the number of bits 42 // of priority supported by the hardware. 43 // 44 //***************************************************************************** 45 #define INT_PRIORITY_MASK ((0xFF << (8 - NUM_PRIORITY_BITS)) & 0xFF) 46 47 //***************************************************************************** 48 // 49 // Prototypes for the APIs. 50 // 51 //***************************************************************************** 52 extern tBoolean IntMasterEnable(void); 53 extern tBoolean IntMasterDisable(void); 54 extern void IntRegister(unsigned long ulInterrupt, void (*pfnHandler)(void)); 55 extern void IntUnregister(unsigned long ulInterrupt); 56 extern void IntPriorityGroupingSet(unsigned long ulBits); 57 extern unsigned long IntPriorityGroupingGet(void); 58 extern void IntPrioritySet(unsigned long ulInterrupt, 59 unsigned char ucPriority); 60 extern long IntPriorityGet(unsigned long ulInterrupt); 61 extern void IntEnable(unsigned long ulInterrupt); 62 extern void IntDisable(unsigned long ulInterrupt); 63 extern void IntPendSet(unsigned long ulInterrupt); 64 extern void IntPendClear(unsigned long ulInterrupt); 65 extern void IntPriorityMaskSet(unsigned long ulPriorityMask); 66 extern unsigned long IntPriorityMaskGet(void); 67 68 //***************************************************************************** 69 // 70 // Mark the end of the C bindings section for C++ compilers. 71 // 72 //***************************************************************************** 73 #ifdef __cplusplus 74 } 75 #endif 76 77 #endif // __INTERRUPT_H__ 78