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