diff options
author | Aun-Ali Zaidi <admin@kodeit.net> | 2015-12-10 18:29:55 -0600 |
---|---|---|
committer | Gedare Bloom <gedare@rtems.org> | 2015-12-11 09:20:34 -0500 |
commit | 32c2cd2be1067ebe32cdabccbc8aa16126ae3a32 (patch) | |
tree | 7c4e2f70630f4849308cf2cfe22a796098188e54 /c/src/lib/libbsp/arm/nds/libnds/source/common/interrupts.c | |
parent | score: Untangle thread actions (diff) | |
download | rtems-32c2cd2be1067ebe32cdabccbc8aa16126ae3a32.tar.bz2 |
arm/nds: Remove
updates #2450.
Diffstat (limited to 'c/src/lib/libbsp/arm/nds/libnds/source/common/interrupts.c')
-rw-r--r-- | c/src/lib/libbsp/arm/nds/libnds/source/common/interrupts.c | 145 |
1 files changed, 0 insertions, 145 deletions
diff --git a/c/src/lib/libbsp/arm/nds/libnds/source/common/interrupts.c b/c/src/lib/libbsp/arm/nds/libnds/source/common/interrupts.c deleted file mode 100644 index 7e42ebf942..0000000000 --- a/c/src/lib/libbsp/arm/nds/libnds/source/common/interrupts.c +++ /dev/null @@ -1,145 +0,0 @@ -/*--------------------------------------------------------------------------------- - Copyright (C) 2005 - Dave Murphy (WinterMute) - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any - damages arising from the use of this software. - - Permission is granted to anyone to use this software for any - purpose, including commercial applications, and to alter it and - redistribute it freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you - must not claim that you wrote the original software. If you use - this software in a product, an acknowledgment in the product - documentation would be appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and - must not be misrepresented as being the original software. - 3. This notice may not be removed or altered from any source - distribution. - ----------------------------------------------------------------------------------*/ - -#include <nds/interrupts.h> -#include <nds/system.h> - -void IntrMain(void); // Prototype for assembly interrupt dispatcher - -static void irqDummy(void) {} - - -#ifdef ARM9 -#define INT_TABLE_SECTION __attribute__((section(".bsp_fast_text"))) -#else -#define INT_TABLE_SECTION -#endif - -struct IntTable irqTable[MAX_INTERRUPTS] INT_TABLE_SECTION; - -//--------------------------------------------------------------------------------- -void irqSet(int mask, IntFn handler) { -//--------------------------------------------------------------------------------- - if (!mask) return; - - int i; - - for (i=0;i<MAX_INTERRUPTS;i++) - if (!irqTable[i].mask || irqTable[i].mask == mask) break; - - if ( i == MAX_INTERRUPTS ) return; - - irqTable[i].handler = handler; - irqTable[i].mask = mask; - - if(mask & IRQ_VBLANK) - REG_DISPSTAT |= DISP_VBLANK_IRQ ; - if(mask & IRQ_HBLANK) - REG_DISPSTAT |= DISP_HBLANK_IRQ ; - - REG_IE |= mask; -} - -//--------------------------------------------------------------------------------- -void irqInit() { -//--------------------------------------------------------------------------------- - int i; - - // Set all interrupts to dummy functions. - for(i = 0; i < MAX_INTERRUPTS; i ++) - { - irqTable[i].handler = irqDummy; - irqTable[i].mask = 0; - } - - IRQ_HANDLER = IntrMain; - - REG_IE = 0; // disable all interrupts - REG_IF = IRQ_ALL; // clear all pending interrupts - REG_IME = 1; // enable global interrupt - -} - - -//--------------------------------------------------------------------------------- -void irqClear(int mask) { -//--------------------------------------------------------------------------------- - int i = 0; - - for (i=0;i<MAX_INTERRUPTS;i++) - if (irqTable[i].mask == mask) break; - - if ( i == MAX_INTERRUPTS ) return; - - irqTable[i].handler = irqDummy; - - if (mask & IRQ_VBLANK) - REG_DISPSTAT &= ~DISP_VBLANK_IRQ ; - if (mask & IRQ_HBLANK) - REG_DISPSTAT &= ~DISP_HBLANK_IRQ ; - if (mask & IRQ_VCOUNT) - REG_DISPSTAT &= ~DISP_YTRIGGER_IRQ; - - REG_IE &= ~mask; -} - - -//--------------------------------------------------------------------------------- -void irqInitHandler(IntFn handler) { -//--------------------------------------------------------------------------------- - REG_IME = 0; - REG_IF = ~0; - REG_IE = 0; - - IRQ_HANDLER = handler; - - REG_IME = 1; -} - -//--------------------------------------------------------------------------------- -void irqEnable(uint32 irq) { -//--------------------------------------------------------------------------------- - if (irq & IRQ_VBLANK) - REG_DISPSTAT |= DISP_VBLANK_IRQ ; - if (irq & IRQ_HBLANK) - REG_DISPSTAT |= DISP_HBLANK_IRQ ; - if (irq & IRQ_VCOUNT) - REG_DISPSTAT |= DISP_YTRIGGER_IRQ; - - REG_IE |= irq; - REG_IME = 1; -} - -//--------------------------------------------------------------------------------- -void irqDisable(uint32 irq) { -//--------------------------------------------------------------------------------- - if (irq & IRQ_VBLANK) - REG_DISPSTAT &= ~DISP_VBLANK_IRQ ; - if (irq & IRQ_HBLANK) - REG_DISPSTAT &= ~DISP_HBLANK_IRQ ; - if (irq & IRQ_VCOUNT) - REG_DISPSTAT &= ~DISP_YTRIGGER_IRQ; - - REG_IE &= ~irq; -} - |