change log for rtems (2010-04-30)

rtems-vc at rtems.org rtems-vc at rtems.org
Fri Apr 30 14:11:40 UTC 2010


 *sh*:
2010-04-30	Sebastian Huber <sebastian.huber at embedded-brains.de>

	* at91rm9200/irq/irq.c, at91rm9200/irq/irq.h, lpc22xx/irq/irq.c,
	lpc22xx/irq/irq.h, mc9328mxl/irq/irq.c, mc9328mxl/irq/irq.h,
	pxa255/irq/irq.c, pxa255/irq/irq.h, s3c24xx/irq/irq.c,
	s3c24xx/irq/irq.h: The previous interrupt warning fix changed the
	interrupt handler API.  To fix this problem the generic interrupt
	support framework will be used now.  This eliminates a lot of copy and
	paste code.  The interrupt header file is now <bsp/irq.h>.
	* at91rm9200/clock/clock.c, lpc22xx/clock/clockdrv.c,
	mc9328mxl/clock/clockdrv.c, pxa255/clock/clock.c,
	s3c24xx/clock/clockdrv.c: Include <bsp/irq.h> instead of <irq.h>.
	* at91rm9200/irq/bsp_irq_asm.S, at91rm9200/irq/bsp_irq_init.c,
	mc9328mxl/irq/bsp_irq_asm.S, mc9328mxl/irq/bsp_irq_init.c,
	s3c24xx/irq/bsp_irq_asm.S, s3c24xx/irq/bsp_irq_init.c: Removed files.
	* Makefile.am, preinstall.am: Reflect changes above.

M   1.73  c/src/lib/libcpu/arm/ChangeLog
M   1.20  c/src/lib/libcpu/arm/Makefile.am
M   1.12  c/src/lib/libcpu/arm/at91rm9200/clock/clock.c
R    1.5  c/src/lib/libcpu/arm/at91rm9200/irq/bsp_irq_asm.S
R    1.6  c/src/lib/libcpu/arm/at91rm9200/irq/bsp_irq_init.c
M    1.7  c/src/lib/libcpu/arm/at91rm9200/irq/irq.h
M    1.6  c/src/lib/libcpu/arm/at91rm9200/irq/irq.c
M   1.10  c/src/lib/libcpu/arm/lpc22xx/clock/clockdrv.c
M    1.7  c/src/lib/libcpu/arm/lpc22xx/irq/irq.h
M    1.7  c/src/lib/libcpu/arm/lpc22xx/irq/irq.c
M    1.9  c/src/lib/libcpu/arm/mc9328mxl/clock/clockdrv.c
R    1.6  c/src/lib/libcpu/arm/mc9328mxl/irq/bsp_irq_asm.S
R    1.6  c/src/lib/libcpu/arm/mc9328mxl/irq/bsp_irq_init.c
M    1.9  c/src/lib/libcpu/arm/mc9328mxl/irq/irq.h
M    1.8  c/src/lib/libcpu/arm/mc9328mxl/irq/irq.c
M   1.16  c/src/lib/libcpu/arm/preinstall.am
M    1.7  c/src/lib/libcpu/arm/pxa255/clock/clock.c
M    1.5  c/src/lib/libcpu/arm/pxa255/irq/irq.h
M    1.4  c/src/lib/libcpu/arm/pxa255/irq/irq.c
M    1.6  c/src/lib/libcpu/arm/s3c24xx/clock/clockdrv.c
R    1.1  c/src/lib/libcpu/arm/s3c24xx/irq/bsp_irq_asm.S
R    1.3  c/src/lib/libcpu/arm/s3c24xx/irq/bsp_irq_init.c
M    1.3  c/src/lib/libcpu/arm/s3c24xx/irq/irq.h
M    1.2  c/src/lib/libcpu/arm/s3c24xx/irq/irq.c

diff -u rtems/c/src/lib/libcpu/arm/ChangeLog:1.72 rtems/c/src/lib/libcpu/arm/ChangeLog:1.73
--- rtems/c/src/lib/libcpu/arm/ChangeLog:1.72	Fri Apr  9 15:24:55 2010
+++ rtems/c/src/lib/libcpu/arm/ChangeLog	Fri Apr 30 08:15:48 2010
@@ -1,3 +1,20 @@
+2010-04-30	Sebastian Huber <sebastian.huber at embedded-brains.de>
+
+	* at91rm9200/irq/irq.c, at91rm9200/irq/irq.h, lpc22xx/irq/irq.c,
+	lpc22xx/irq/irq.h, mc9328mxl/irq/irq.c, mc9328mxl/irq/irq.h,
+	pxa255/irq/irq.c, pxa255/irq/irq.h, s3c24xx/irq/irq.c,
+	s3c24xx/irq/irq.h: The previous interrupt warning fix changed the
+	interrupt handler API.  To fix this problem the generic interrupt
+	support framework will be used now.  This eliminates a lot of copy and
+	paste code.  The interrupt header file is now <bsp/irq.h>.
+	* at91rm9200/clock/clock.c, lpc22xx/clock/clockdrv.c,
+	mc9328mxl/clock/clockdrv.c, pxa255/clock/clock.c,
+	s3c24xx/clock/clockdrv.c: Include <bsp/irq.h> instead of <irq.h>.
+	* at91rm9200/irq/bsp_irq_asm.S, at91rm9200/irq/bsp_irq_init.c,
+	mc9328mxl/irq/bsp_irq_asm.S, mc9328mxl/irq/bsp_irq_init.c,
+	s3c24xx/irq/bsp_irq_asm.S, s3c24xx/irq/bsp_irq_init.c: Removed files.
+	* Makefile.am, preinstall.am: Reflect changes above.
+
 2010-04-09	Thomas Doerfler <Thomas.Doerfler at embedded-brains.de>
 
 	* configure.ac, Makefile.am, at91rm9200/clock/clock.c,

diff -u rtems/c/src/lib/libcpu/arm/Makefile.am:1.19 rtems/c/src/lib/libcpu/arm/Makefile.am:1.20
--- rtems/c/src/lib/libcpu/arm/Makefile.am:1.19	Fri Apr  9 15:24:55 2010
+++ rtems/c/src/lib/libcpu/arm/Makefile.am	Fri Apr 30 08:15:48 2010
@@ -10,11 +10,16 @@
 
 noinst_PROGRAMS =
 
+include_bspdir = $(includedir)/bsp
+include_libcpudir = $(includedir)/libcpu
+
+include_bsp_HEADERS =
+include_libcpu_HEADERS =
+
 ## shared/include
 if shared
-include_libcpudir = $(includedir)/libcpu
 
-include_libcpu_HEADERS = shared/include/mmu.h
+include_libcpu_HEADERS += shared/include/mmu.h
 include_libcpu_HEADERS += shared/include/arm-cp15.h
 
 ## shared/arm920
@@ -52,10 +57,9 @@
 pxa255_pmc_rel_LDFLAGS = $(RTEMS_RELLDFLAGS)
 
 ## pxa255/interrupt
-include_HEADERS += pxa255/irq/irq.h
+include_bsp_HEADERS += pxa255/irq/irq.h
 noinst_PROGRAMS += pxa255/irq.rel
-pxa255_irq_rel_SOURCES = pxa255/irq/irq.c pxa255/irq/bsp_irq_init.c \
-    ../../libbsp/arm/shared/irq/irq_init.c pxa255/irq/bsp_irq_asm.S \
+pxa255_irq_rel_SOURCES = pxa255/irq/irq.c \
     pxa255/irq/irq.h
 pxa255_irq_rel_CPPFLAGS = $(AM_CPPFLAGS)
 pxa255_irq_rel_LDFLAGS = $(RTEMS_RELLDFLAGS)
@@ -98,11 +102,10 @@
 at91rm9200_pmc_rel_LDFLAGS = $(RTEMS_RELLDFLAGS)
 
 ## at91rm9200/interrupt
-include_HEADERS += at91rm9200/irq/irq.h
+include_bsp_HEADERS += at91rm9200/irq/irq.h
 
 noinst_PROGRAMS += at91rm9200/irq.rel
-at91rm9200_irq_rel_SOURCES = at91rm9200/irq/irq.c at91rm9200/irq/bsp_irq_init.c \
-    ../../libbsp/arm/shared/irq/irq_init.c at91rm9200/irq/bsp_irq_asm.S \
+at91rm9200_irq_rel_SOURCES = at91rm9200/irq/irq.c \
     at91rm9200/irq/irq.h
 at91rm9200_irq_rel_CPPFLAGS = $(AM_CPPFLAGS)
 at91rm9200_irq_rel_LDFLAGS = $(RTEMS_RELLDFLAGS)
@@ -124,11 +127,10 @@
 mc9328mxl_timer_rel_LDFLAGS = $(RTEMS_RELLDFLAGS)
 
 ## mc9328mxl/interrupt
-include_HEADERS += mc9328mxl/irq/irq.h
+include_bsp_HEADERS += mc9328mxl/irq/irq.h
 
 noinst_PROGRAMS += mc9328mxl/irq.rel
-mc9328mxl_irq_rel_SOURCES = mc9328mxl/irq/irq.c mc9328mxl/irq/bsp_irq_init.c \
-    ../../libbsp/arm/shared/irq/irq_init.c mc9328mxl/irq/bsp_irq_asm.S \
+mc9328mxl_irq_rel_SOURCES = mc9328mxl/irq/irq.c \
     mc9328mxl/irq/irq.h
 mc9328mxl_irq_rel_CPPFLAGS = $(AM_CPPFLAGS)
 mc9328mxl_irq_rel_LDFLAGS = $(RTEMS_RELLDFLAGS)
@@ -150,11 +152,10 @@
 s3c24xx_timer_rel_LDFLAGS = $(RTEMS_RELLDFLAGS)
 
 ## s3c24xx/interrupt
-include_HEADERS += s3c24xx/irq/irq.h
+include_bsp_HEADERS += s3c24xx/irq/irq.h
 
 noinst_PROGRAMS += s3c24xx/irq.rel
-s3c24xx_irq_rel_SOURCES = s3c24xx/irq/irq.c s3c24xx/irq/bsp_irq_init.c \
-    ../../libbsp/arm/shared/irq/irq_init.c s3c24xx/irq/bsp_irq_asm.S \
+s3c24xx_irq_rel_SOURCES = s3c24xx/irq/irq.c \
     s3c24xx/irq/irq.h
 s3c24xx_irq_rel_CPPFLAGS = $(AM_CPPFLAGS)
 s3c24xx_irq_rel_LDFLAGS = $(RTEMS_RELLDFLAGS)
@@ -176,11 +177,10 @@
 lpc22xx_timer_rel_LDFLAGS = $(RTEMS_RELLDFLAGS)
 
 ## lpc22xx/interrupt
-include_HEADERS += lpc22xx/irq/irq.h
+include_bsp_HEADERS += lpc22xx/irq/irq.h
 
 noinst_PROGRAMS += lpc22xx/irq.rel
-lpc22xx_irq_rel_SOURCES = lpc22xx/irq/irq.c lpc22xx/irq/bsp_irq_init.c \
-    ../../libbsp/arm/shared/irq/irq_init.c lpc22xx/irq/bsp_irq_asm.S \
+lpc22xx_irq_rel_SOURCES = lpc22xx/irq/irq.c \
     lpc22xx/irq/irq.h
 lpc22xx_irq_rel_CPPFLAGS = $(AM_CPPFLAGS)
 lpc22xx_irq_rel_LDFLAGS = $(RTEMS_RELLDFLAGS)

diff -u rtems/c/src/lib/libcpu/arm/at91rm9200/clock/clock.c:1.11 rtems/c/src/lib/libcpu/arm/at91rm9200/clock/clock.c:1.12
--- rtems/c/src/lib/libcpu/arm/at91rm9200/clock/clock.c:1.11	Fri Apr  9 15:24:55 2010
+++ rtems/c/src/lib/libcpu/arm/at91rm9200/clock/clock.c	Fri Apr 30 08:15:48 2010
@@ -19,7 +19,7 @@
 
 #include <stdlib.h>
 #include <bsp.h>
-#include <irq.h>
+#include <bsp/irq.h>
 #include <at91rm9200.h>
 #include <at91rm9200_pmc.h>
 

diff -u rtems/c/src/lib/libcpu/arm/at91rm9200/irq/irq.h:1.6 rtems/c/src/lib/libcpu/arm/at91rm9200/irq/irq.h:1.7
--- rtems/c/src/lib/libcpu/arm/at91rm9200/irq/irq.h:1.6	Fri Apr  9 15:24:55 2010
+++ rtems/c/src/lib/libcpu/arm/at91rm9200/irq/irq.h	Fri Apr 30 08:15:49 2010
@@ -1,6 +1,8 @@
 /*
  * Interrupt handler Header file
  *
+ * Copyright (c) 2010 embedded brains GmbH.
+ *
  * Copyright (c) 2004 by Jay Monkman <jtm at lopingdog.com>
  *
  *  The license and distribution terms for this file may be
@@ -15,24 +17,14 @@
 #ifndef __IRQ_H__
 #define __IRQ_H__
 
-#ifdef __cplusplus
-extern "C" {
-#endif
-
 #ifndef __asm__
 
-/*
- * Include some preprocessor value also used by assember code
- */
-
-#include <rtems/irq.h>
 #include <rtems.h>
-#include <at91rm9200.h>
+#include <rtems/irq.h>
+#include <rtems/irq-extension.h>
+
+#endif /* __asm__ */
 
-extern void default_int_handler(rtems_irq_hdl_param unused);
-/***********************************************************************
- * Constants
- **********************************************************************/
 /* possible interrupt sources on the AT91RM9200 */
 #define AT91RM9200_INT_FIQ        0
 #define AT91RM9200_INT_SYSIRQ     1
@@ -68,20 +60,8 @@
 #define AT91RM9200_INT_IRQ6      31
 #define AT91RM9200_MAX_INT       32
 
-/* vector table used by shared/irq_init.c */
-/* we can treat the AT91RM9200 AIC_SVR_BASE as */
-/* a vector table */
-#define VECTOR_TABLE AIC_SVR_BASE
-
-/*
- * function to initialize the interrupt for a specific BSP
- */
-void BSP_rtems_irq_mngt_init();
-
-#endif /* __asm__ */
+#define BSP_INTERRUPT_VECTOR_MIN 0
 
-#ifdef __cplusplus
-}
-#endif
+#define BSP_INTERRUPT_VECTOR_MAX (AT91RM9200_MAX_INT - 1)
 
 #endif /* __IRQ_H__ */

diff -u rtems/c/src/lib/libcpu/arm/at91rm9200/irq/irq.c:1.5 rtems/c/src/lib/libcpu/arm/at91rm9200/irq/irq.c:1.6
--- rtems/c/src/lib/libcpu/arm/at91rm9200/irq/irq.c:1.5	Sun Nov 29 22:58:24 2009
+++ rtems/c/src/lib/libcpu/arm/at91rm9200/irq/irq.c	Fri Apr 30 08:15:49 2010
@@ -1,6 +1,8 @@
 /*
  * Atmel AT91RM9200 Interrupt handler
  *
+ * Copyright (c) 2010 embedded brains GmbH.
+ *
  * Copyright (c) 2004 by Jay Monkman <jtm at lopingdog.com>
  *
  *  The license and distribution terms for this file may be
@@ -10,106 +12,47 @@
  *
  *  $Id$
  */
+
 #include <bsp.h>
-#include <irq.h>
-#include <rtems/score/thread.h>
-#include <rtems/score/apiext.h>
+#include <bsp/irq.h>
+#include <bsp/irq-generic.h>
+
 #include <at91rm9200.h>
 
-/*
- * This function check that the value given for the irq line
- * is valid.
- */
-static int isValidInterrupt(int irq)
+void bsp_interrupt_dispatch(void)
 {
-    if ( (irq < 0) || (irq >= AT91RM9200_MAX_INT)) {
-        return 0;
-    }
-    return 1;
+  rtems_vector_number vector = AIC_CTL_REG(AIC_ISR);
+
+  bsp_interrupt_handler_dispatch(vector);
+
+  AIC_CTL_REG(AIC_EOICR) = 0;
 }
 
-/*
- * Installs the interrupt handler.
- */
-int BSP_install_rtems_irq_handler  (const rtems_irq_connect_data* irq)
+rtems_status_code bsp_interrupt_vector_enable(rtems_vector_number vector)
 {
-    rtems_interrupt_level level;
+  AIC_CTL_REG(AIC_IECR) = 1 << vector;
 
-    if (!isValidInterrupt(irq->name)) {
-        return 0;
-    }
-
-    /*
-     * Check if default handler is actually connected. If not, issue
-     * an error. Note: irq->name is a number corresponding to the
-     * sources PID (see the at91rm9200_pid for this mapping).  We
-     * convert it to a long word offset to get source's vector register
-     */
-    if (AIC_SVR_REG(irq->name * 4) != (uint32_t) default_int_handler) {
-        return 0;
-    }
-
-    rtems_interrupt_disable(level);
-
-    /*
-     * store the new handler
-     */
-    AIC_SVR_REG(irq->name * 4) = (uint32_t) irq->hdl;
-
-    /*
-     * unmask interrupt
-     */
-    AIC_CTL_REG(AIC_IECR) = 1 << irq->name;
-
-    /*
-     * Enable interrupt on device
-     */
-    if(irq->on) {
-        irq->on(irq);
-    }
+  return RTEMS_SUCCESSFUL;
+}
 
-    rtems_interrupt_enable(level);
+rtems_status_code bsp_interrupt_vector_disable(rtems_vector_number vector)
+{
+  AIC_CTL_REG(AIC_IDCR) = 1 << vector;
 
-    return 1;
+  return RTEMS_SUCCESSFUL;
 }
 
-/*
- * Remove and interrupt handler
- */
-int BSP_remove_rtems_irq_handler  (const rtems_irq_connect_data* irq)
+rtems_status_code bsp_interrupt_facility_initialize(void)
 {
-    rtems_interrupt_level level;
+  /* disable all interrupts */
+  AIC_CTL_REG(AIC_IDCR) = 0xffffffff;
 
-    if (!isValidInterrupt(irq->name)) {
-        return 0;
-    }
-
-    /*
-     * Check if the handler is actually connected. If not, issue an error.
-     */
-    if (AIC_SVR_REG(irq->name * 4) != (uint32_t) irq->hdl) {
-      return 0;
-    }
-    rtems_interrupt_disable(level);
-
-    /*
-     * mask interrupt
-     */
-    AIC_CTL_REG(AIC_IDCR) = 1 << irq->name;
-
-    /*
-     * Disable interrupt on device
-     */
-    if(irq->off) {
-        irq->off(irq);
-    }
-
-    /*
-     * restore the default irq value
-     */
-    AIC_SVR_REG(irq->name * 4) = (uint32_t) default_int_handler;
+  _CPU_ISR_install_vector(ARM_EXCEPTION_IRQ, arm_exc_interrupt, NULL);
 
-    rtems_interrupt_enable(level);
+  return RTEMS_SUCCESSFUL;
+}
 
-    return 1;
+void bsp_interrupt_handler_default(rtems_vector_number vector)
+{
+  printk("spurious interrupt: %u\n", vector);
 }

diff -u rtems/c/src/lib/libcpu/arm/lpc22xx/clock/clockdrv.c:1.9 rtems/c/src/lib/libcpu/arm/lpc22xx/clock/clockdrv.c:1.10
--- rtems/c/src/lib/libcpu/arm/lpc22xx/clock/clockdrv.c:1.9	Fri Apr  9 15:24:55 2010
+++ rtems/c/src/lib/libcpu/arm/lpc22xx/clock/clockdrv.c	Fri Apr 30 08:15:49 2010
@@ -16,7 +16,7 @@
 */
 #include <rtems.h>
 #include <bsp.h>
-#include <irq.h>
+#include <bsp/irq.h>
 #include <lpc22xx.h>
 #include <rtems/bspIo.h>  /* for printk */
 

diff -u rtems/c/src/lib/libcpu/arm/lpc22xx/irq/irq.h:1.6 rtems/c/src/lib/libcpu/arm/lpc22xx/irq/irq.h:1.7
--- rtems/c/src/lib/libcpu/arm/lpc22xx/irq/irq.h:1.6	Fri Apr  9 15:24:55 2010
+++ rtems/c/src/lib/libcpu/arm/lpc22xx/irq/irq.h	Fri Apr 30 08:15:49 2010
@@ -1,6 +1,8 @@
 /*
  * Interrupt handler Header file
  *
+ * Copyright (c) 2010 embedded brains GmbH.
+ *
  * Copyright (c) 2006 by Ray <rayx.cn at gmail.com> to support LPC ARM
  *
  *  The license and distribution terms for this file may be
@@ -15,25 +17,13 @@
 #ifndef __IRQ_H__
 #define __IRQ_H__
 
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-  /* define that can be useful (the values are just examples) */
 #ifndef __asm__
 
-/*
- * Include some preprocessor value also used by assember code
- */
-#include <rtems/irq.h>
 #include <rtems.h>
-#include <lpc22xx.h>
-
-extern void default_int_handler(rtems_irq_hdl_param unused);
+#include <rtems/irq.h>
+#include <rtems/irq-extension.h>
 
-/***********************************************************************
- * Constants
- **********************************************************************/
+#endif /* __asm__ */
 
 /* possible interrupt sources on the LPC22xx */
 #define LPC22xx_INTERRUPT_WDINT	 0	/* Watchdog int. 0 */
@@ -67,6 +57,10 @@
 #define LPC22xx_INTERRUPT_CAN4RX 27	/* CAN2 Rx interrupt */
 #define BSP_MAX_INT              28
 
+#define BSP_INTERRUPT_VECTOR_MIN 0
+
+#define BSP_INTERRUPT_VECTOR_MAX (BSP_MAX_INT - 1)
+
 #define UNDEFINED_INSTRUCTION_VECTOR_ADDR   (*(u_long *)0x00000004L)
 #define SOFTWARE_INTERRUPT_VECTOR_ADDR      (*(u_long *)0x00000008L)
 #define PREFETCH_ABORT_VECTOR_ADDR          (*(u_long *)0x0000000CL)
@@ -78,20 +72,4 @@
 #define IRQ_ISR_ADDR                        (*(u_long *)0x00000038L)
 #define FIQ_ISR_ADDR                        (*(u_long *)0x0000003CL)
 
-
-//extern rtems_irq_hdl bsp_vector_table[BSP_MAX_INT];
-#define VECTOR_TABLE VICVectAddrBase
-
-
-/*
- * function to initialize the interrupt for a specific BSP
- */
-void BSP_rtems_irq_mngt_init(void);
-
-#endif /* __asm__ */
-
-#ifdef __cplusplus
-}
-#endif
-
 #endif /* __IRQ_H__ */

diff -u rtems/c/src/lib/libcpu/arm/lpc22xx/irq/irq.c:1.6 rtems/c/src/lib/libcpu/arm/lpc22xx/irq/irq.c:1.7
--- rtems/c/src/lib/libcpu/arm/lpc22xx/irq/irq.c:1.6	Sun Nov 29 22:59:43 2009
+++ rtems/c/src/lib/libcpu/arm/lpc22xx/irq/irq.c	Fri Apr 30 08:15:49 2010
@@ -1,6 +1,8 @@
 /*
  * Philps LPC22XX Interrupt handler
  *
+ * Copyright (c) 2010 embedded brains GmbH.
+ *
  * Copyright (c)  2006 by Ray<rayx.cn at gmail.com>  to support LPC ARM
  *  The license and distribution terms for this file may be
  *  found in the file LICENSE in this distribution or at
@@ -9,117 +11,68 @@
  *
  *  $Id$
  */
+
 #include <bsp.h>
-#include <irq.h>
-#include <rtems/score/thread.h>
-#include <rtems/score/apiext.h>
+#include <bsp/irq.h>
+#include <bsp/irq-generic.h>
+
 #include <lpc22xx.h>
 
-/*
- * This function check that the value given for the irq line
- * is valid.
- */
-static int isValidInterrupt(int irq)
+void bsp_interrupt_dispatch(void)
 {
-  if ( (irq < 0) || (irq >= BSP_MAX_INT))
-    return 0;
-  return 1;
+  rtems_vector_number vector = 31 - __builtin_clz(VICIRQStatus);
+
+  bsp_interrupt_handler_dispatch(vector);
+
+  VICVectAddr = 0;
 }
 
-/*
- * Installs the interrupt handler.
- *
- * You should only have to add the code to unmask the interrupt.
- *
- */
-int BSP_install_rtems_irq_handler  (const rtems_irq_connect_data* irq)
+rtems_status_code bsp_interrupt_vector_enable(rtems_vector_number vector)
 {
-    rtems_interrupt_level level;
-    rtems_irq_hdl        *bsp_tbl;
-    int                  *vic_cntl;
+  VICIntEnable |= 1 << vector;
 
-    bsp_tbl = (rtems_irq_hdl *)VICVectAddrBase;
+  return RTEMS_SUCCESSFUL;
+}
 
-    vic_cntl=(int *)VICVectCntlBase;
+rtems_status_code bsp_interrupt_vector_disable(rtems_vector_number vector)
+{
+  VICIntEnClr = 1 << vector;
 
-    if (!isValidInterrupt(irq->name)) {
-      return 0;
-    }
+  return RTEMS_SUCCESSFUL;
+}
 
-    /*
-     * Check if default handler is actually connected. If not issue an error.
-     */
+rtems_status_code bsp_interrupt_facility_initialize(void)
+{
+  volatile uint32_t *ctrl = (volatile uint32_t *) VICVectCntlBase;
+  size_t i = 0;
 
-    if (bsp_tbl[irq->name] != default_int_handler) {
-      return 0;
-    }
+  /* Disable all interrupts */
+  VICIntEnClr = 0xffffffff;
 
-    rtems_interrupt_disable(level);
+  /* Use IRQ category */
+  VICIntSelect = 0;
 
-    /*
-     * store the new handler
-     */
-    bsp_tbl[irq->name] = irq->hdl;
-    /* *(volatile unsigned long*)(VICVectAddr0+(irq->name * 4)&0x7c )= (uint32_t) irq->hdl;*/
-    /*
-     * Enable interrupt on device
-     */
-    vic_cntl[irq->name] = 0x20 | irq->name;
+  /* Enable access in USER mode */
+  VICProtection = 0;
 
-    VICIntEnable |= 1 << irq->name;
+  for (i = 0; i < 16; ++i) {
+    /* Disable vector mode */
+    ctrl [i] = 0;
 
-    if(irq->on)
-    {
-    	irq->on(irq);
-    }
+    /* Acknowledge interrupts for all priorities */
+    VICVectAddr = 0;
+  }
 
+  /* Acknowledge interrupts for all priorities */
+  VICVectAddr = 0;
 
-    rtems_interrupt_enable(level);
+  /* Install the IRQ exception handler */
+  _CPU_ISR_install_vector(ARM_EXCEPTION_IRQ, arm_exc_interrupt, NULL);
 
-    return 1;
+  return RTEMS_SUCCESSFUL;
 }
 
-/*
- * Remove and interrupt handler
- *
- * You should only have to add the code to mask the interrupt.
- *
- */
-int BSP_remove_rtems_irq_handler  (const rtems_irq_connect_data* irq)
+void bsp_interrupt_handler_default(rtems_vector_number vector)
 {
-    rtems_interrupt_level level;
-    rtems_irq_hdl        *bsp_tbl;
-
-    bsp_tbl = (rtems_irq_hdl *)&VICVectAddr0;
-
-    if (!isValidInterrupt(irq->name)) {
-      return 0;
-    }
-    /*
-     * Check if the handler is actually connected. If not issue an error.
-     */
-    if (bsp_tbl[irq->name] != irq->hdl) {
-      return 0;
-    }
-
-    rtems_interrupt_disable(level);
-
-    VICIntEnClr = 1 << irq->name;
-
-    /*
-     * Disable interrupt on device
-     */
-    if(irq->off) {
-        irq->off(irq);
-    }
-    /*
-     * restore the default irq value
-     */
-    bsp_tbl[irq->name] = default_int_handler;
-
-    rtems_interrupt_enable(level);
-
-    return 1;
+  printk("spurious interrupt: %u\n", vector);
 }
-
-

diff -u rtems/c/src/lib/libcpu/arm/mc9328mxl/clock/clockdrv.c:1.8 rtems/c/src/lib/libcpu/arm/mc9328mxl/clock/clockdrv.c:1.9
--- rtems/c/src/lib/libcpu/arm/mc9328mxl/clock/clockdrv.c:1.8	Sun Nov 29 23:03:56 2009
+++ rtems/c/src/lib/libcpu/arm/mc9328mxl/clock/clockdrv.c	Fri Apr 30 08:15:49 2010
@@ -17,7 +17,7 @@
 */
 #include <rtems.h>
 #include <bsp.h>
-#include <irq.h>
+#include <bsp/irq.h>
 #include <mc9328mxl.h>
 #include <rtems/bspIo.h>  /* for printk */
 

diff -u rtems/c/src/lib/libcpu/arm/mc9328mxl/irq/irq.h:1.8 rtems/c/src/lib/libcpu/arm/mc9328mxl/irq/irq.h:1.9
--- rtems/c/src/lib/libcpu/arm/mc9328mxl/irq/irq.h:1.8	Fri Apr  9 15:24:55 2010
+++ rtems/c/src/lib/libcpu/arm/mc9328mxl/irq/irq.h	Fri Apr 30 08:15:49 2010
@@ -1,6 +1,8 @@
 /*
  * Interrupt handler Header file
  *
+ * Copyright (c) 2010 embedded brains GmbH.
+ *
  * Copyright (c) 2004 by Jay Monkman <jtm at lopingdog.com>
  *
  *  The license and distribution terms for this file may be
@@ -15,26 +17,13 @@
 #ifndef __IRQ_H__
 #define __IRQ_H__
 
-#include <rtems/irq.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-  /* define that can be useful (the values are just examples) */
 #ifndef __asm__
 
-/*
- * Include some preprocessor value also used by assember code
- */
-
 #include <rtems.h>
-#include <mc9328mxl.h>
+#include <rtems/irq.h>
+#include <rtems/irq-extension.h>
 
-extern void default_int_handler(rtems_irq_hdl_param);
-/***********************************************************************
- * Constants
- **********************************************************************/
+#endif /* __asm__ */
 
 /* possible interrupt sources on the MC9328MXL */
 #define BSP_INT_UART3_PFERR       0
@@ -103,24 +92,8 @@
 #define BSP_INT_WDT              63
 #define BSP_MAX_INT              64
 
-typedef struct {
-    rtems_irq_hdl       vector;
-    rtems_irq_hdl_param data;
-} mc9328mxl_irq_info_t;
-
-
-
-extern mc9328mxl_irq_info_t bsp_vector_table[BSP_MAX_INT];
-
-/*
- * function to initialize the interrupt for a specific BSP
- */
-void BSP_rtems_irq_mngt_init(void);
-
-#endif /* __asm__ */
+#define BSP_INTERRUPT_VECTOR_MIN 0
 
-#ifdef __cplusplus
-}
-#endif
+#define BSP_INTERRUPT_VECTOR_MAX (BSP_MAX_INT - 1)
 
 #endif /* __IRQ_H__ */

diff -u rtems/c/src/lib/libcpu/arm/mc9328mxl/irq/irq.c:1.7 rtems/c/src/lib/libcpu/arm/mc9328mxl/irq/irq.c:1.8
--- rtems/c/src/lib/libcpu/arm/mc9328mxl/irq/irq.c:1.7	Sun Nov 29 23:03:56 2009
+++ rtems/c/src/lib/libcpu/arm/mc9328mxl/irq/irq.c	Fri Apr 30 08:15:49 2010
@@ -1,6 +1,8 @@
 /*
  * Motorola MC9328MXL Interrupt handler
  *
+ * Copyright (c) 2010 embedded brains GmbH.
+ *
  * Copyright (c) 2004 by Jay Monkman <jtm at lopingdog.com>
  *
  *  The license and distribution terms for this file may be
@@ -10,105 +12,39 @@
  *
  *  $Id$
  */
+
 #include <bsp.h>
-#include <irq.h>
-#include <rtems/score/thread.h>
-#include <rtems/score/apiext.h>
-#include <mc9328mxl.h>
+#include <bsp/irq.h>
+#include <bsp/irq-generic.h>
 
-mc9328mxl_irq_info_t bsp_vector_table[BSP_MAX_INT];
+#include <mc9328mxl.h>
 
-/*
- * This function check that the value given for the irq line
- * is valid.
- */
-static int isValidInterrupt(int irq)
+void bsp_interrupt_dispatch(void)
 {
-  if ( (irq < 0) || (irq >= BSP_MAX_INT))
-    return 0;
-  return 1;
+  rtems_vector_number vector = *((uint32_t *) 0x00223040) >> 16;
+
+  bsp_interrupt_handler_dispatch(vector);
 }
 
-/*
- * Installs the interrupt handler.
- *
- * You should only have to add the code to unmask the interrupt.
- *
- */
-int BSP_install_rtems_irq_handler  (const rtems_irq_connect_data* irq)
+rtems_status_code bsp_interrupt_vector_enable(rtems_vector_number vector)
 {
-    rtems_interrupt_level level;
-
-    if (!isValidInterrupt(irq->name)) {
-      return 0;
-    }
-
-    /*
-     * Check if default handler is actually connected. If not issue an error.
-     */
-    if (bsp_vector_table[irq->name].vector != default_int_handler) {
-        return 0;
-    }
-
-    rtems_interrupt_disable(level);
-
-    /*
-     * store the new handler
-     */
-    bsp_vector_table[irq->name].vector = irq->hdl;
-    bsp_vector_table[irq->name].data = irq->handle;
-
-    /*
-     * Enable interrupt on device
-     */
-    if(irq->on)
-    {
-    	irq->on(irq);
-    }
-
-    rtems_interrupt_enable(level);
-
-    return 1;
+  return RTEMS_SUCCESSFUL;
 }
 
-/*
- * Remove and interrupt handler
- *
- * You should only have to add the code to mask the interrupt.
- *
- */
-int BSP_remove_rtems_irq_handler  (const rtems_irq_connect_data* irq)
+rtems_status_code bsp_interrupt_vector_disable(rtems_vector_number vector)
 {
-    rtems_interrupt_level level;
+  return RTEMS_SUCCESSFUL;
+}
 
-    if (!isValidInterrupt(irq->name)) {
-      return 0;
-    }
-    /*
-     * Check if the handler is actually connected. If not issue an error.
-     */
-    if (bsp_vector_table[irq->name].vector != irq->hdl) {
-        return 0;
-    }
-
-    rtems_interrupt_disable(level);
-
-
-    /*
-     * Disable interrupt on device
-     */
-    if(irq->off) {
-        irq->off(irq);
-    }
-    /*
-     * restore the default irq value
-     */
-    bsp_vector_table[irq->name].vector = default_int_handler;
-    bsp_vector_table[irq->name].data = NULL;
+rtems_status_code bsp_interrupt_facility_initialize(void)
+{
 
-    rtems_interrupt_enable(level);
+  _CPU_ISR_install_vector(ARM_EXCEPTION_IRQ, arm_exc_interrupt, NULL);
 
-    return 1;
+  return RTEMS_SUCCESSFUL;
 }
 
-
+void bsp_interrupt_handler_default(rtems_vector_number vector)
+{
+  printk("spurious interrupt: %u\n", vector);
+}

diff -u rtems/c/src/lib/libcpu/arm/preinstall.am:1.15 rtems/c/src/lib/libcpu/arm/preinstall.am:1.16
--- rtems/c/src/lib/libcpu/arm/preinstall.am:1.15	Fri Apr  9 15:24:55 2010
+++ rtems/c/src/lib/libcpu/arm/preinstall.am	Fri Apr 30 08:15:48 2010
@@ -18,12 +18,17 @@
 	@: > $(PROJECT_INCLUDE)/$(dirstamp)
 PREINSTALL_DIRS += $(PROJECT_INCLUDE)/$(dirstamp)
 
-if shared
+$(PROJECT_INCLUDE)/bsp/$(dirstamp):
+	@$(MKDIR_P) $(PROJECT_INCLUDE)/bsp
+	@: > $(PROJECT_INCLUDE)/bsp/$(dirstamp)
+PREINSTALL_DIRS += $(PROJECT_INCLUDE)/bsp/$(dirstamp)
+
 $(PROJECT_INCLUDE)/libcpu/$(dirstamp):
 	@$(MKDIR_P) $(PROJECT_INCLUDE)/libcpu
 	@: > $(PROJECT_INCLUDE)/libcpu/$(dirstamp)
 PREINSTALL_DIRS += $(PROJECT_INCLUDE)/libcpu/$(dirstamp)
 
+if shared
 $(PROJECT_INCLUDE)/libcpu/mmu.h: shared/include/mmu.h $(PROJECT_INCLUDE)/libcpu/$(dirstamp)
 	$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/libcpu/mmu.h
 PREINSTALL_FILES += $(PROJECT_INCLUDE)/libcpu/mmu.h
@@ -41,9 +46,9 @@
 	$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/ffuart.h
 PREINSTALL_FILES += $(PROJECT_INCLUDE)/ffuart.h
 
-$(PROJECT_INCLUDE)/irq.h: pxa255/irq/irq.h $(PROJECT_INCLUDE)/$(dirstamp)
-	$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/irq.h
-PREINSTALL_FILES += $(PROJECT_INCLUDE)/irq.h
+$(PROJECT_INCLUDE)/bsp/irq.h: pxa255/irq/irq.h $(PROJECT_INCLUDE)/bsp/$(dirstamp)
+	$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/irq.h
+PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/irq.h
 endif
 if at91rm9200
 $(PROJECT_INCLUDE)/at91rm9200.h: at91rm9200/include/at91rm9200.h $(PROJECT_INCLUDE)/$(dirstamp)
@@ -78,18 +83,18 @@
 	$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/at91rm9200_usart.h
 PREINSTALL_FILES += $(PROJECT_INCLUDE)/at91rm9200_usart.h
 
-$(PROJECT_INCLUDE)/irq.h: at91rm9200/irq/irq.h $(PROJECT_INCLUDE)/$(dirstamp)
-	$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/irq.h
-PREINSTALL_FILES += $(PROJECT_INCLUDE)/irq.h
+$(PROJECT_INCLUDE)/bsp/irq.h: at91rm9200/irq/irq.h $(PROJECT_INCLUDE)/bsp/$(dirstamp)
+	$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/irq.h
+PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/irq.h
 endif
 if mc9328mxl
 $(PROJECT_INCLUDE)/mc9328mxl.h: mc9328mxl/include/mc9328mxl.h $(PROJECT_INCLUDE)/$(dirstamp)
 	$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/mc9328mxl.h
 PREINSTALL_FILES += $(PROJECT_INCLUDE)/mc9328mxl.h
 
-$(PROJECT_INCLUDE)/irq.h: mc9328mxl/irq/irq.h $(PROJECT_INCLUDE)/$(dirstamp)
-	$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/irq.h
-PREINSTALL_FILES += $(PROJECT_INCLUDE)/irq.h
+$(PROJECT_INCLUDE)/bsp/irq.h: mc9328mxl/irq/irq.h $(PROJECT_INCLUDE)/bsp/$(dirstamp)
+	$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/irq.h
+PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/irq.h
 endif
 if s3c24xx
 $(PROJECT_INCLUDE)/s3c24xx.h: s3c24xx/include/s3c24xx.h $(PROJECT_INCLUDE)/$(dirstamp)
@@ -104,16 +109,16 @@
 	$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/s3c2410.h
 PREINSTALL_FILES += $(PROJECT_INCLUDE)/s3c2410.h
 
-$(PROJECT_INCLUDE)/irq.h: s3c24xx/irq/irq.h $(PROJECT_INCLUDE)/$(dirstamp)
-	$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/irq.h
-PREINSTALL_FILES += $(PROJECT_INCLUDE)/irq.h
+$(PROJECT_INCLUDE)/bsp/irq.h: s3c24xx/irq/irq.h $(PROJECT_INCLUDE)/bsp/$(dirstamp)
+	$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/irq.h
+PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/irq.h
 endif
 if lpc22xx
 $(PROJECT_INCLUDE)/lpc22xx.h: lpc22xx/include/lpc22xx.h $(PROJECT_INCLUDE)/$(dirstamp)
 	$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/lpc22xx.h
 PREINSTALL_FILES += $(PROJECT_INCLUDE)/lpc22xx.h
 
-$(PROJECT_INCLUDE)/irq.h: lpc22xx/irq/irq.h $(PROJECT_INCLUDE)/$(dirstamp)
-	$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/irq.h
-PREINSTALL_FILES += $(PROJECT_INCLUDE)/irq.h
+$(PROJECT_INCLUDE)/bsp/irq.h: lpc22xx/irq/irq.h $(PROJECT_INCLUDE)/bsp/$(dirstamp)
+	$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/irq.h
+PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/irq.h
 endif

diff -u rtems/c/src/lib/libcpu/arm/pxa255/clock/clock.c:1.6 rtems/c/src/lib/libcpu/arm/pxa255/clock/clock.c:1.7
--- rtems/c/src/lib/libcpu/arm/pxa255/clock/clock.c:1.6	Fri Apr  9 15:24:56 2010
+++ rtems/c/src/lib/libcpu/arm/pxa255/clock/clock.c	Fri Apr 30 08:15:49 2010
@@ -18,7 +18,7 @@
 #include <stdlib.h>
 #include <bsp.h>
 #include <bspopts.h>
-#include <irq.h>
+#include <bsp/irq.h>
 #include <pxa255.h>
 
 #if ON_SKYEYE==1

diff -u rtems/c/src/lib/libcpu/arm/pxa255/irq/irq.h:1.4 rtems/c/src/lib/libcpu/arm/pxa255/irq/irq.h:1.5
--- rtems/c/src/lib/libcpu/arm/pxa255/irq/irq.h:1.4	Fri Apr  9 15:24:56 2010
+++ rtems/c/src/lib/libcpu/arm/pxa255/irq/irq.h	Fri Apr 30 08:15:49 2010
@@ -1,4 +1,6 @@
 /*
+ * Copyright (c) 2010 embedded brains GmbH.
+ *
  * Interrupt handler Header file for PXA By Yang Xi <hiyangxi at gmail.com>
  * Copyright (c) 2004 by Jay Monkman <jtm at lopingdog.com>
  *
@@ -12,30 +14,18 @@
 #ifndef __IRQ_H__
 #define __IRQ_H__
 
-#ifdef __cplusplus
-extern "C" {
-#endif
-
 #ifndef __asm__
 
-/*
- * Include some preprocessor value also used by assember code
- */
-
-#include <rtems/irq.h>
 #include <rtems.h>
+#include <rtems/irq.h>
+#include <rtems/irq-extension.h>
+
 #include <pxa255.h>
 
-extern void default_int_handler(rtems_irq_hdl_param unused);
-extern void (*IRQ_table[PRIMARY_IRQS])(rtems_irq_hdl_param param);
-extern void dummy_handler(rtems_irq_hdl_param unused);
+#define BSP_INTERRUPT_VECTOR_MIN 0
 
-extern void BSP_rtems_irq_mngt_init(void);
+#define BSP_INTERRUPT_VECTOR_MAX (PRIMARY_IRQS - 1)
 
 #endif /* __asm__ */
 
-#ifdef __cplusplus
-}
-#endif
-
 #endif /* __IRQ_H__ */

diff -u rtems/c/src/lib/libcpu/arm/pxa255/irq/irq.c:1.3 rtems/c/src/lib/libcpu/arm/pxa255/irq/irq.c:1.4
--- rtems/c/src/lib/libcpu/arm/pxa255/irq/irq.c:1.3	Sun Nov 29 23:02:23 2009
+++ rtems/c/src/lib/libcpu/arm/pxa255/irq/irq.c	Fri Apr 30 08:15:49 2010
@@ -1,4 +1,6 @@
 /*
+ * Copyright (c) 2010 embedded brains GmbH.
+ *
  * PXA255 Interrupt handler by Yang Xi <hiyangxi at gmail.com>
  * Copyright (c) 2004 by Jay Monkman <jtm at lopingdog.com>
  *
@@ -8,108 +10,49 @@
  *
  *  $Id$
  */
+
 #include <bsp.h>
-#include <irq.h>
-#include <rtems/score/thread.h>
-#include <rtems/score/apiext.h>
+#include <bsp/irq.h>
+#include <bsp/irq-generic.h>
+
 #include <pxa255.h>
 
-/*
- * This function check that the value given for the irq line
- * is valid.
- */
-static int isValidInterrupt(int irq)
+void bsp_interrupt_dispatch(void)
 {
-    if ( (irq < 0) || (irq >= PRIMARY_IRQS)) {
-        return 0;
-    }
-    return 1;
+  rtems_vector_number vector = 31 - __builtin_clz(XSCALE_INT_ICIP);
+
+  bsp_interrupt_handler_dispatch(vector);
 }
 
-/*
- * Installs the interrupt handler.
- */
-int BSP_install_rtems_irq_handler  (const rtems_irq_connect_data* irq)
+rtems_status_code bsp_interrupt_vector_enable(rtems_vector_number vector)
 {
-    rtems_interrupt_level level;
-
-    if (!isValidInterrupt(irq->name)) {
-        return 0;
-    }
-
-    /*
-     * Check if default handler is actually connected. If not, issue
-     * an error. Note: irq->name is a number corresponding to the
-     * interrupt number .  We
-     * convert it to a long word offset to get source's vector register
-     */
-        if (IRQ_table[irq->name] != dummy_handler) {
-        return 0;
-	}
-
-    _CPU_ISR_Disable(level);
-
-    /*
-     * store the new handler
-     */
-    IRQ_table[irq->name] = irq->hdl;
-
-    /*
-     * unmask interrupt
-     */
-    XSCALE_INT_ICMR = XSCALE_INT_ICMR | 1 << irq->name;
-
+  XSCALE_INT_ICMR |= 1 << vector;
 
+  return RTEMS_SUCCESSFUL;
+}
 
-    /*
-     * Enable interrupt on device
-     */
-    if(irq->on) {
-        irq->on(irq);
-    }
-
-    _CPU_ISR_Enable(level);
+rtems_status_code bsp_interrupt_vector_disable(rtems_vector_number vector)
+{
+  XSCALE_INT_ICMR  &= ~(1 << vector);
 
-    return 1;
+  return RTEMS_SUCCESSFUL;
 }
 
-/*
- * Remove and interrupt handler
- */
-int BSP_remove_rtems_irq_handler  (const rtems_irq_connect_data* irq)
+rtems_status_code bsp_interrupt_facility_initialize(void)
 {
-    rtems_interrupt_level level;
+  /* disable all interrupts */
+  XSCALE_INT_ICMR = 0x0;
 
-    if (!isValidInterrupt(irq->name)) {
-        return 0;
-    }
-
-    /*
-     * Check if the handler is actually connected. If not, issue an error.
-     */
-    if (IRQ_table[irq->name] != irq->hdl) {
-      return 0;
-    }
-    _CPU_ISR_Disable(level);
-
-    /*
-     * mask interrupt
-     */
-    XSCALE_INT_ICMR  =  XSCALE_INT_ICMR  & (~(1 << irq->name));
-
-    /*
-     * Disable interrupt on device
-     */
-    if(irq->off) {
-        irq->off(irq);
-    }
-
-    /*
-     * restore the default irq value
-     */
-    IRQ_table[irq->name] = dummy_handler;
+  /* Direct the interrupt to IRQ*/
+  XSCALE_INT_ICLR = 0x0;
 
-    _CPU_ISR_Enable(level);
+  /* Install the IRQ exception handler */
+  _CPU_ISR_install_vector(ARM_EXCEPTION_IRQ, arm_exc_interrupt, NULL);
 
-    return 1;
+  return RTEMS_SUCCESSFUL;
+}
+
+void bsp_interrupt_handler_default(rtems_vector_number vector)
+{
+  printk("spurious interrupt: %u\n", vector);
 }

diff -u rtems/c/src/lib/libcpu/arm/s3c24xx/clock/clockdrv.c:1.5 rtems/c/src/lib/libcpu/arm/s3c24xx/clock/clockdrv.c:1.6
--- rtems/c/src/lib/libcpu/arm/s3c24xx/clock/clockdrv.c:1.5	Fri Apr  9 15:24:56 2010
+++ rtems/c/src/lib/libcpu/arm/s3c24xx/clock/clockdrv.c	Fri Apr 30 08:15:49 2010
@@ -13,7 +13,7 @@
  *  $Id$
 */
 #include <rtems.h>
-#include <irq.h>
+#include <bsp/irq.h>
 #include <bsp.h>
 #include <s3c24xx.h>
 

diff -u rtems/c/src/lib/libcpu/arm/s3c24xx/irq/irq.h:1.2 rtems/c/src/lib/libcpu/arm/s3c24xx/irq/irq.h:1.3
--- rtems/c/src/lib/libcpu/arm/s3c24xx/irq/irq.h:1.2	Fri Apr  9 15:24:56 2010
+++ rtems/c/src/lib/libcpu/arm/s3c24xx/irq/irq.h	Fri Apr 30 08:15:49 2010
@@ -1,26 +1,21 @@
 /* irq.h
  *
+ *  Copyright (c) 2010 embedded brains GmbH.
+ *
+ *  CopyRight (C) 2000 Canon Research France SA.
+ *  Emmanuel Raguet,  mailto:raguet at crf.canon.fr
+ *
  *  Common file, merged from s3c2400/irq/irq.h and s3c2410/irq/irq.h
  */
 
 #ifndef _IRQ_H_
 #define _IRQ_H_
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*
- * Include some preprocessor value also used by assember code
- */
 
-#include <rtems/irq.h>
 #include <rtems.h>
-#include <s3c24xx.h>
+#include <rtems/irq.h>
+#include <rtems/irq-extension.h>
 
-extern void default_int_handler(rtems_irq_hdl_param unused);
-/*-------------------------------------------------------------------------+
-| Constants
-+--------------------------------------------------------------------------*/
+#include <s3c24xx.h>
 
 #ifdef CPU_S3C2400
   /* possible interrupt sources */
@@ -93,25 +88,9 @@
 #define BSP_MAX_INT          32
 #endif
 
-extern void *bsp_vector_table;
-#define VECTOR_TABLE &bsp_vector_table
+#define BSP_INTERRUPT_VECTOR_MIN 0
 
-/*-------------------------------------------------------------------------+
-| Function Prototypes.
-+--------------------------------------------------------------------------*/
-/*
- * ------------------ RTEMS Single Irq Handler Mngt Routines ----------------
- */
-
-/*
- * function to initialize the interrupt for a specific BSP
- */
-void BSP_rtems_irq_mngt_init();
-
-
-#ifdef __cplusplus
-}
-#endif
+#define BSP_INTERRUPT_VECTOR_MAX (BSP_MAX_INT - 1)
 
 #endif /* _IRQ_H_ */
 /* end of include file */

diff -u rtems/c/src/lib/libcpu/arm/s3c24xx/irq/irq.c:1.1 rtems/c/src/lib/libcpu/arm/s3c24xx/irq/irq.c:1.2
--- rtems/c/src/lib/libcpu/arm/s3c24xx/irq/irq.c:1.1	Tue May  6 15:58:05 2008
+++ rtems/c/src/lib/libcpu/arm/s3c24xx/irq/irq.c	Fri Apr 30 08:15:49 2010
@@ -2,6 +2,8 @@
  *
  *  This file contains the implementation of the function described in irq.h
  *
+ *  Copyright (c) 2010 embedded brains GmbH.
+ *
  *  CopyRight (C) 2000 Canon Research France SA.
  *  Emmanuel Raguet,  mailto:raguet at crf.canon.fr
  *
@@ -12,99 +14,37 @@
  *  $Id$
  */
 
-
 #include <bsp.h>
-#include <irq.h>
-#include <rtems/score/thread.h>
-#include <rtems/score/apiext.h>
-#include <s3c24xx.h>
+#include <bsp/irq.h>
+#include <bsp/irq-generic.h>
 
-/*
- * This function check that the value given for the irq line
- * is valid.
- */
+#include <s3c24xx.h>
 
-static int isValidInterrupt(int irq)
+void bsp_interrupt_dispatch(void)
 {
-    if ( (irq < 0) || (irq > BSP_MAX_INT)) {
-        return 0;
-    }
+  rtems_vector_number vector = *((uint32_t *) rINTOFFSET_ADDR);
 
-    return 1;
+  bsp_interrupt_handler_dispatch(vector);
 }
 
-/*
- * ------------------- RTEMS Single Irq Handler Mngt Routines ----------------
- */
-
-int BSP_install_rtems_irq_handler  (const rtems_irq_connect_data* irq)
+rtems_status_code bsp_interrupt_vector_enable(rtems_vector_number vector)
 {
-    rtems_irq_hdl *HdlTable;
-    rtems_interrupt_level level;
-
-    if (!isValidInterrupt(irq->name)) {
-        return 0;
-    }
-
-    /*
-     * Check if default handler is actually connected. If not issue an error.
-     */
-    HdlTable = (rtems_irq_hdl *)VECTOR_TABLE;
-    if (*(HdlTable + irq->name) != default_int_handler) {
-        return 0;
-    }
-
-    _CPU_ISR_Disable(level);
-
-    /*
-     * store the new handler
-     */
-    *(HdlTable + irq->name) = irq->hdl;
-
-    /*
-     * Enable interrupt on device
-     */
-    if(irq->on)
-    {
-        irq->on(irq);
-    }
-
-    _CPU_ISR_Enable(level);
-
-    return 1;
+  return RTEMS_SUCCESSFUL;
 }
 
-int BSP_remove_rtems_irq_handler  (const rtems_irq_connect_data* irq)
+rtems_status_code bsp_interrupt_vector_disable(rtems_vector_number vector)
 {
-    rtems_irq_hdl *HdlTable;
-    rtems_interrupt_level level;
+  return RTEMS_SUCCESSFUL;
+}
 
-    if (!isValidInterrupt(irq->name)) {
-        return 0;
-    }
-
-    /*
-     * Check if the handler is actually connected. If not issue an error.
-     */
-    HdlTable = (rtems_irq_hdl *)VECTOR_TABLE;
-    if (*(HdlTable + irq->name) != irq->hdl) {
-        return 0;
-    }
-    _CPU_ISR_Disable(level);
-
-    /*
-     * Disable interrupt on device
-     */
-    if(irq->off) {
-        irq->off(irq);
-    }
-
-    /*
-     * restore the default irq value
-     */
-    *(HdlTable + irq->name) = default_int_handler;
+rtems_status_code bsp_interrupt_facility_initialize(void)
+{
+  _CPU_ISR_install_vector(ARM_EXCEPTION_IRQ, arm_exc_interrupt, NULL);
 
-    _CPU_ISR_Enable(level);
+  return RTEMS_SUCCESSFUL;
+}
 
-    return 1;
+void bsp_interrupt_handler_default(rtems_vector_number vector)
+{
+  printk("spurious interrupt: %u\n", vector);
 }


 *sh*:
2010-04-30	Sebastian Huber <sebastian.huber at embedded-brains.de>

	* shared/irq_init.c: Removed file.
	* Makefile.am: Reflect change above.

M   1.78  c/src/lib/libbsp/arm/ChangeLog
M   1.14  c/src/lib/libbsp/arm/Makefile.am
R   1.14  c/src/lib/libbsp/arm/shared/irq/irq_init.c

diff -u rtems/c/src/lib/libbsp/arm/ChangeLog:1.77 rtems/c/src/lib/libbsp/arm/ChangeLog:1.78
--- rtems/c/src/lib/libbsp/arm/ChangeLog:1.77	Fri Apr  9 15:24:56 2010
+++ rtems/c/src/lib/libbsp/arm/ChangeLog	Fri Apr 30 08:21:07 2010
@@ -1,3 +1,8 @@
+2010-04-30	Sebastian Huber <sebastian.huber at embedded-brains.de>
+
+	* shared/irq_init.c: Removed file.
+	* Makefile.am: Reflect change above.
+
 2010-04-09	Thomas Doerfler <Thomas.Doerfler at embedded-brains.de>
 
 	* shared/irq/irq_init.c, shared/lpc/clock/lpc-clock-config.c,

diff -u rtems/c/src/lib/libbsp/arm/Makefile.am:1.13 rtems/c/src/lib/libbsp/arm/Makefile.am:1.14
--- rtems/c/src/lib/libbsp/arm/Makefile.am:1.13	Mon Dec  7 10:24:17 2009
+++ rtems/c/src/lib/libbsp/arm/Makefile.am	Fri Apr 30 08:21:08 2010
@@ -15,9 +15,6 @@
 EXTRA_DIST += shared/comm/uart.h
 EXTRA_DIST += shared/comm/uart.c
 
-# irq
-EXTRA_DIST += shared/irq/irq_init.c
-
 # abort
 EXTRA_DIST += shared/abort/simple_abort.c
 


 *sh*:
2010-04-30	Sebastian Huber <sebastian.huber at embedded-brains.de>

	* csb336/make/custom/csb336.cfg,
	csb337/make/custom/csb337.cfg, edb7312/make/custom/edb7312.cfg,
	gba/make/custom/gba.cfg, gdbarmsim/make/custom/arm920.cfg,
	gp32/make/custom/gp32.cfg, gumstix/make/custom/gumstix.cfg,
	lpc32xx/make/custom/lpc32xx_phycore.cfg, nds/make/custom/nds.cfg,
	rtl22xx/make/custom/rtl22xx.cfg, smdk2410/make/custom/smdk2410.cfg:
	Use VFP floating point model.

M   1.67  c/src/lib/libbsp/arm/csb336/ChangeLog
M    1.3  c/src/lib/libbsp/arm/csb336/make/custom/csb336.cfg
M   1.71  c/src/lib/libbsp/arm/csb337/ChangeLog
M    1.3  c/src/lib/libbsp/arm/csb337/make/custom/csb337.cfg
M  1.113  c/src/lib/libbsp/arm/edb7312/ChangeLog
M    1.3  c/src/lib/libbsp/arm/edb7312/make/custom/edb7312.cfg
M   1.65  c/src/lib/libbsp/arm/gba/ChangeLog
M    1.3  c/src/lib/libbsp/arm/gba/make/custom/gba.cfg
M    1.6  c/src/lib/libbsp/arm/gdbarmsim/ChangeLog
M    1.3  c/src/lib/libbsp/arm/gdbarmsim/make/custom/arm920.cfg
M   1.60  c/src/lib/libbsp/arm/gp32/ChangeLog
M    1.3  c/src/lib/libbsp/arm/gp32/make/custom/gp32.cfg
M   1.22  c/src/lib/libbsp/arm/gumstix/ChangeLog
M    1.3  c/src/lib/libbsp/arm/gumstix/make/custom/gumstix.cfg
M    1.7  c/src/lib/libbsp/arm/lpc32xx/ChangeLog
M    1.3  c/src/lib/libbsp/arm/lpc32xx/make/custom/lpc32xx_phycore.cfg
M   1.57  c/src/lib/libbsp/arm/nds/ChangeLog
M    1.3  c/src/lib/libbsp/arm/nds/make/custom/nds.cfg
M   1.50  c/src/lib/libbsp/arm/rtl22xx/ChangeLog
M    1.3  c/src/lib/libbsp/arm/rtl22xx/make/custom/rtl22xx.cfg
M   1.28  c/src/lib/libbsp/arm/smdk2410/ChangeLog
M    1.3  c/src/lib/libbsp/arm/smdk2410/make/custom/smdk2410.cfg

diff -u rtems/c/src/lib/libbsp/arm/csb336/ChangeLog:1.66 rtems/c/src/lib/libbsp/arm/csb336/ChangeLog:1.67
--- rtems/c/src/lib/libbsp/arm/csb336/ChangeLog:1.66	Fri Apr  9 15:24:56 2010
+++ rtems/c/src/lib/libbsp/arm/csb336/ChangeLog	Fri Apr 30 08:40:13 2010
@@ -1,3 +1,7 @@
+2010-04-30	Sebastian Huber <sebastian.huber at embedded-brains.de>
+
+	* make/custom/csb336.cfg: Use VFP floating point model.
+
 2010-04-09	Thomas Doerfler <Thomas.Doerfler at embedded-brains.de>
 
 	* startup/bspstart.c, network/network.c: make irq data types

diff -u rtems/c/src/lib/libbsp/arm/csb336/make/custom/csb336.cfg:1.2 rtems/c/src/lib/libbsp/arm/csb336/make/custom/csb336.cfg:1.3
--- rtems/c/src/lib/libbsp/arm/csb336/make/custom/csb336.cfg:1.2	Wed Oct 21 05:34:36 2009
+++ rtems/c/src/lib/libbsp/arm/csb336/make/custom/csb336.cfg	Fri Apr 30 08:40:12 2010
@@ -11,7 +11,7 @@
 
 #  This contains the compiler options necessary to select the CPU model
 #  and (hopefully) optimize for it. 
-CPU_CFLAGS = -mcpu=arm920 -mstructure-size-boundary=8 
+CPU_CFLAGS = -mstructure-size-boundary=8 -mcpu=arm920 -mfpu=vfp -mfloat-abi=soft
 
 # optimize flag: typically -O2
 CFLAGS_OPTIMIZE_V = -O2 -g

diff -u rtems/c/src/lib/libbsp/arm/csb337/ChangeLog:1.70 rtems/c/src/lib/libbsp/arm/csb337/ChangeLog:1.71
--- rtems/c/src/lib/libbsp/arm/csb337/ChangeLog:1.70	Sun Apr 25 21:24:36 2010
+++ rtems/c/src/lib/libbsp/arm/csb337/ChangeLog	Fri Apr 30 08:40:13 2010
@@ -1,3 +1,7 @@
+2010-04-30	Sebastian Huber <sebastian.huber at embedded-brains.de>
+
+	* make/custom/csb337.cfg: Use VFP floating point model.
+
 2010-04-25	Joel Sherrill <joel.sherrilL at OARcorp.com>
 
 	* console/fbcons.c: Fix warnings.

diff -u rtems/c/src/lib/libbsp/arm/csb337/make/custom/csb337.cfg:1.2 rtems/c/src/lib/libbsp/arm/csb337/make/custom/csb337.cfg:1.3
--- rtems/c/src/lib/libbsp/arm/csb337/make/custom/csb337.cfg:1.2	Wed Oct 21 05:34:37 2009
+++ rtems/c/src/lib/libbsp/arm/csb337/make/custom/csb337.cfg	Fri Apr 30 08:40:12 2010
@@ -11,7 +11,7 @@
 
 #  This contains the compiler options necessary to select the CPU model
 #  and (hopefully) optimize for it. 
-CPU_CFLAGS = -mcpu=arm920 -mstructure-size-boundary=8 
+CPU_CFLAGS = -mstructure-size-boundary=8 -mcpu=arm920 -mfpu=vfp -mfloat-abi=soft
 
 # optimize flag: typically -O2
 CFLAGS_OPTIMIZE_V = -O2 -g 

diff -u rtems/c/src/lib/libbsp/arm/edb7312/ChangeLog:1.112 rtems/c/src/lib/libbsp/arm/edb7312/ChangeLog:1.113
--- rtems/c/src/lib/libbsp/arm/edb7312/ChangeLog:1.112	Wed Apr 14 04:27:31 2010
+++ rtems/c/src/lib/libbsp/arm/edb7312/ChangeLog	Fri Apr 30 08:40:13 2010
@@ -1,3 +1,7 @@
+2010-04-30	Sebastian Huber <sebastian.huber at embedded-brains.de>
+
+	* make/custom/edb7312.cfg: Use VFP floating point model.
+
 2010-04-10	Ralf Corsépius <ralf.corsepius at rtems.org>
 
 	* console/uart.c: Reflect termios API changes.

diff -u rtems/c/src/lib/libbsp/arm/edb7312/make/custom/edb7312.cfg:1.2 rtems/c/src/lib/libbsp/arm/edb7312/make/custom/edb7312.cfg:1.3
--- rtems/c/src/lib/libbsp/arm/edb7312/make/custom/edb7312.cfg:1.2	Wed Oct 21 05:34:39 2009
+++ rtems/c/src/lib/libbsp/arm/edb7312/make/custom/edb7312.cfg	Fri Apr 30 08:40:13 2010
@@ -12,7 +12,7 @@
 #  This contains the compiler options necessary to select the CPU model
 #  and (hopefully) optimize for it. 
 #
-CPU_CFLAGS = -mcpu=$(RTEMS_CPU_MODEL) -mstructure-size-boundary=8
+CPU_CFLAGS = -mstructure-size-boundary=8 -mcpu=$(RTEMS_CPU_MODEL) -mfpu=vfp -mfloat-abi=soft
 
 # optimize flag: typically -O2
 CFLAGS_OPTIMIZE_V = -O2 -g

diff -u rtems/c/src/lib/libbsp/arm/gba/ChangeLog:1.64 rtems/c/src/lib/libbsp/arm/gba/ChangeLog:1.65
--- rtems/c/src/lib/libbsp/arm/gba/ChangeLog:1.64	Fri Apr  9 15:24:56 2010
+++ rtems/c/src/lib/libbsp/arm/gba/ChangeLog	Fri Apr 30 08:40:13 2010
@@ -1,3 +1,7 @@
+2010-04-30	Sebastian Huber <sebastian.huber at embedded-brains.de>
+
+	* make/custom/gba.cfg: Use VFP floating point model.
+
 2010-04-09	Thomas Doerfler <Thomas.Doerfler at embedded-brains.de>
 
 	* clock/clockdrv.c, console/console.c, irq/irq.c, irq/irq.h,

diff -u rtems/c/src/lib/libbsp/arm/gba/make/custom/gba.cfg:1.2 rtems/c/src/lib/libbsp/arm/gba/make/custom/gba.cfg:1.3
--- rtems/c/src/lib/libbsp/arm/gba/make/custom/gba.cfg:1.2	Wed Oct 21 05:34:41 2009
+++ rtems/c/src/lib/libbsp/arm/gba/make/custom/gba.cfg	Fri Apr 30 08:40:13 2010
@@ -13,7 +13,7 @@
 #  and (hopefully) optimize for it.
 #
 #CPU_CFLAGS = -mcpu=$(RTEMS_CPU_MODEL) -mthumb -mthumb-interwork -msoft-float -mstructure-size-boundary=8
-CPU_CFLAGS = -mcpu=$(RTEMS_CPU_MODEL) -msoft-float -mstructure-size-boundary=8
+CPU_CFLAGS = -mstructure-size-boundary=8 -mcpu=$(RTEMS_CPU_MODEL) -mfpu=vfp -mfloat-abi=soft
 
 # optimize flag: typically -O2
 CFLAGS_OPTIMIZE_V = -O2 -g

diff -u rtems/c/src/lib/libbsp/arm/gdbarmsim/ChangeLog:1.5 rtems/c/src/lib/libbsp/arm/gdbarmsim/ChangeLog:1.6
--- rtems/c/src/lib/libbsp/arm/gdbarmsim/ChangeLog:1.5	Wed Apr  7 16:49:49 2010
+++ rtems/c/src/lib/libbsp/arm/gdbarmsim/ChangeLog	Fri Apr 30 08:40:13 2010
@@ -1,3 +1,7 @@
+2010-04-30	Sebastian Huber <sebastian.huber at embedded-brains.de>
+
+	* make/custom/arm920.cfg: Use VFP floating point model.
+
 2010-04-07	Joel Sherrill <joel.sherrill at oarcorp.com>
 
 	* start/start.S: Verify boot_card() is passed a NULL.

diff -u rtems/c/src/lib/libbsp/arm/gdbarmsim/make/custom/arm920.cfg:1.2 rtems/c/src/lib/libbsp/arm/gdbarmsim/make/custom/arm920.cfg:1.3
--- rtems/c/src/lib/libbsp/arm/gdbarmsim/make/custom/arm920.cfg:1.2	Wed Oct 21 05:34:42 2009
+++ rtems/c/src/lib/libbsp/arm/gdbarmsim/make/custom/arm920.cfg	Fri Apr 30 08:40:13 2010
@@ -12,7 +12,7 @@
 #  This contains the compiler options necessary to select the CPU model
 #  and (hopefully) optimize for it. 
 # CPU_CFLAGS = -mcpu=arm920 -mstructure-size-boundary=8 
-CPU_CFLAGS = -mcpu=arm920
+CPU_CFLAGS = -mcpu=arm920 -mfloat-abi=soft -mfpu=vfp
 
 # optimize flag: typically -O2
 CFLAGS_OPTIMIZE_V = -O2 -g

diff -u rtems/c/src/lib/libbsp/arm/gp32/ChangeLog:1.59 rtems/c/src/lib/libbsp/arm/gp32/ChangeLog:1.60
--- rtems/c/src/lib/libbsp/arm/gp32/ChangeLog:1.59	Sun Apr 25 21:33:57 2010
+++ rtems/c/src/lib/libbsp/arm/gp32/ChangeLog	Fri Apr 30 08:40:13 2010
@@ -1,3 +1,7 @@
+2010-04-30	Sebastian Huber <sebastian.huber at embedded-brains.de>
+
+	* make/custom/gp32.cfg: Use VFP floating point model.
+
 2010-04-25	Joel Sherrill <joel.sherrilL at OARcorp.com>
 
 	* console/uart.c: Fix warnings.

diff -u rtems/c/src/lib/libbsp/arm/gp32/make/custom/gp32.cfg:1.2 rtems/c/src/lib/libbsp/arm/gp32/make/custom/gp32.cfg:1.3
--- rtems/c/src/lib/libbsp/arm/gp32/make/custom/gp32.cfg:1.2	Wed Oct 21 05:34:43 2009
+++ rtems/c/src/lib/libbsp/arm/gp32/make/custom/gp32.cfg	Fri Apr 30 08:40:13 2010
@@ -12,7 +12,7 @@
 #  This contains the compiler options necessary to select the CPU model
 #  and (hopefully) optimize for it. 
 #
-CPU_CFLAGS = -mcpu=arm920t -mstructure-size-boundary=32 -DCPU_S3C2400
+CPU_CFLAGS = -mstructure-size-boundary=32 -mcpu=arm920t -mfpu=vfp -mfloat-abi=soft -DCPU_S3C2400
 
 # optimize flag: typically -O2
 CFLAGS_OPTIMIZE_V = -O2 -g

diff -u rtems/c/src/lib/libbsp/arm/gumstix/ChangeLog:1.21 rtems/c/src/lib/libbsp/arm/gumstix/ChangeLog:1.22
--- rtems/c/src/lib/libbsp/arm/gumstix/ChangeLog:1.21	Fri Apr  9 15:24:56 2010
+++ rtems/c/src/lib/libbsp/arm/gumstix/ChangeLog	Fri Apr 30 08:40:13 2010
@@ -1,3 +1,7 @@
+2010-04-30	Sebastian Huber <sebastian.huber at embedded-brains.de>
+
+	* make/custom/gumstix.cfg: Use VFP floating point model.
+
 2010-04-09	Thomas Doerfler <Thomas.Doerfler at embedded-brains.de>
 
 	* rtl8019/rtl8019.c: make irq data types consistent

diff -u rtems/c/src/lib/libbsp/arm/gumstix/make/custom/gumstix.cfg:1.2 rtems/c/src/lib/libbsp/arm/gumstix/make/custom/gumstix.cfg:1.3
--- rtems/c/src/lib/libbsp/arm/gumstix/make/custom/gumstix.cfg:1.2	Wed Oct 21 05:34:44 2009
+++ rtems/c/src/lib/libbsp/arm/gumstix/make/custom/gumstix.cfg	Fri Apr 30 08:40:13 2010
@@ -11,7 +11,7 @@
 
 #  This contains the compiler options necessary to select the CPU model
 #  and (hopefully) optimize for it. 
-CPU_CFLAGS = -mcpu=xscale -mstructure-size-boundary=8 
+CPU_CFLAGS = -mstructure-size-boundary=8 -mcpu=xscale -mfpu=vfp -mfloat-abi=soft
 
 # optimize flag: typically -O2
 CFLAGS_OPTIMIZE_V = -O2 -g 

diff -u rtems/c/src/lib/libbsp/arm/lpc32xx/ChangeLog:1.6 rtems/c/src/lib/libbsp/arm/lpc32xx/ChangeLog:1.7
--- rtems/c/src/lib/libbsp/arm/lpc32xx/ChangeLog:1.6	Fri Apr  9 07:25:21 2010
+++ rtems/c/src/lib/libbsp/arm/lpc32xx/ChangeLog	Fri Apr 30 08:40:13 2010
@@ -1,3 +1,7 @@
+2010-04-30	Sebastian Huber <sebastian.huber at embedded-brains.de>
+
+	* make/custom/lpc32xx_phycore.cfg: Use VFP floating point model.
+
 2010-04-09	Sebastian Huber <sebastian.huber at embedded-brains.de>
 
 	* console/hsu.c: New file.

diff -u rtems/c/src/lib/libbsp/arm/lpc32xx/make/custom/lpc32xx_phycore.cfg:1.2 rtems/c/src/lib/libbsp/arm/lpc32xx/make/custom/lpc32xx_phycore.cfg:1.3
--- rtems/c/src/lib/libbsp/arm/lpc32xx/make/custom/lpc32xx_phycore.cfg:1.2	Tue Feb  2 09:56:21 2010
+++ rtems/c/src/lib/libbsp/arm/lpc32xx/make/custom/lpc32xx_phycore.cfg	Fri Apr 30 08:40:13 2010
@@ -8,6 +8,6 @@
 
 RTEMS_CPU = arm
 
-CPU_CFLAGS = -mcpu=arm926ej-s -mthumb -mstructure-size-boundary=8
+CPU_CFLAGS = -mstructure-size-boundary=8 -mcpu=arm926ej-s -mfpu=vfp -mfloat-abi=soft -mthumb
 
 CFLAGS_OPTIMIZE_V = -Os -g

diff -u rtems/c/src/lib/libbsp/arm/nds/ChangeLog:1.56 rtems/c/src/lib/libbsp/arm/nds/ChangeLog:1.57
--- rtems/c/src/lib/libbsp/arm/nds/ChangeLog:1.56	Sun Apr 25 21:28:02 2010
+++ rtems/c/src/lib/libbsp/arm/nds/ChangeLog	Fri Apr 30 08:40:13 2010
@@ -1,3 +1,7 @@
+2010-04-30	Sebastian Huber <sebastian.huber at embedded-brains.de>
+
+	* make/custom/nds.cfg: Use VFP floating point model.
+
 2010-04-25	Joel Sherrill <joel.sherrilL at OARcorp.com>
 
 	* console/console.c: Fix warnings.

diff -u rtems/c/src/lib/libbsp/arm/nds/make/custom/nds.cfg:1.2 rtems/c/src/lib/libbsp/arm/nds/make/custom/nds.cfg:1.3
--- rtems/c/src/lib/libbsp/arm/nds/make/custom/nds.cfg:1.2	Wed Oct 21 05:34:46 2009
+++ rtems/c/src/lib/libbsp/arm/nds/make/custom/nds.cfg	Fri Apr 30 08:40:13 2010
@@ -12,7 +12,7 @@
 #  This contains the compiler options necessary to select the CPU model
 #  and (hopefully) optimize for it.
 #
-CPU_CFLAGS = -mcpu=$(RTEMS_CPU_MODEL) -msoft-float -mstructure-size-boundary=8
+CPU_CFLAGS = -mstructure-size-boundary=8 -mcpu=$(RTEMS_CPU_MODEL) -mfpu=vfp -mfloat-abi=soft
 # CPU_CFLAGS += -mthumb-interwork ## -D __THUMB_INTERWORK__ -mthumb
 
 # optimize flag: typically -O2

diff -u rtems/c/src/lib/libbsp/arm/rtl22xx/ChangeLog:1.49 rtems/c/src/lib/libbsp/arm/rtl22xx/ChangeLog:1.50
--- rtems/c/src/lib/libbsp/arm/rtl22xx/ChangeLog:1.49	Fri Apr  9 15:24:57 2010
+++ rtems/c/src/lib/libbsp/arm/rtl22xx/ChangeLog	Fri Apr 30 08:40:13 2010
@@ -1,3 +1,7 @@
+2010-04-30	Sebastian Huber <sebastian.huber at embedded-brains.de>
+
+	* make/custom/rtl22xx.cfg: Use VFP floating point model.
+
 2010-04-09	Thomas Doerfler <Thomas.Doerfler at embedded-brains.de>
 
 	* network/network.c, startup/bspstart.c: make

diff -u rtems/c/src/lib/libbsp/arm/rtl22xx/make/custom/rtl22xx.cfg:1.2 rtems/c/src/lib/libbsp/arm/rtl22xx/make/custom/rtl22xx.cfg:1.3
--- rtems/c/src/lib/libbsp/arm/rtl22xx/make/custom/rtl22xx.cfg:1.2	Wed Oct 21 05:34:48 2009
+++ rtems/c/src/lib/libbsp/arm/rtl22xx/make/custom/rtl22xx.cfg	Fri Apr 30 08:40:13 2010
@@ -12,7 +12,7 @@
 #  This contains the compiler options necessary to select the CPU model
 #  and (hopefully) optimize for it. 
 #
-CPU_CFLAGS = -mcpu=arm7tdmi -mstructure-size-boundary=8 -mapcs-frame
+CPU_CFLAGS = -mstructure-size-boundary=8 -mcpu=arm7tdmi -mfpu=vfp -mfloat-abi=soft -mapcs-frame
 
 # optimize flag: typically -0, could use -O4 or -fast
 # -O4 is ok for RTEMS

diff -u rtems/c/src/lib/libbsp/arm/smdk2410/ChangeLog:1.27 rtems/c/src/lib/libbsp/arm/smdk2410/ChangeLog:1.28
--- rtems/c/src/lib/libbsp/arm/smdk2410/ChangeLog:1.27	Fri Apr  9 15:24:57 2010
+++ rtems/c/src/lib/libbsp/arm/smdk2410/ChangeLog	Fri Apr 30 08:40:13 2010
@@ -1,3 +1,7 @@
+2010-04-30	Sebastian Huber <sebastian.huber at embedded-brains.de>
+
+	* make/custom/smdk2410.cfg: Use VFP floating point model.
+
 2010-04-09	Thomas Doerfler <Thomas.Doerfler at embedded-brains.de>
 
 	* Makefile.am: use common code for s3c24xx

diff -u rtems/c/src/lib/libbsp/arm/smdk2410/make/custom/smdk2410.cfg:1.2 rtems/c/src/lib/libbsp/arm/smdk2410/make/custom/smdk2410.cfg:1.3
--- rtems/c/src/lib/libbsp/arm/smdk2410/make/custom/smdk2410.cfg:1.2	Wed Oct 21 05:34:49 2009
+++ rtems/c/src/lib/libbsp/arm/smdk2410/make/custom/smdk2410.cfg	Fri Apr 30 08:40:13 2010
@@ -11,7 +11,7 @@
 
 #  This contains the compiler options necessary to select the CPU model
 #  and (hopefully) optimize for it.
-CPU_CFLAGS = -mcpu=arm920t -DCPU_S3C2410 -mstructure-size-boundary=32
+CPU_CFLAGS = -mstructure-size-boundary=32 -mcpu=arm920t -mfpu=vfp -mfloat-abi=soft -DCPU_S3C2410
 
 # optimize flag: typically -O2
 CFLAGS_OPTIMIZE_V = -O2 -g


 *sh*:
2010-04-30	Sebastian Huber <sebastian.huber at embedded-brains.de>

	* make/custom/nds.cfg, Makefile.am, dswifi/arm7/makefile: Use VFP
	floating point model.

M   1.58  c/src/lib/libbsp/arm/nds/ChangeLog
M   1.18  c/src/lib/libbsp/arm/nds/Makefile.am
M    1.3  c/src/lib/libbsp/arm/nds/dswifi/arm7/makefile

diff -u rtems/c/src/lib/libbsp/arm/nds/ChangeLog:1.57 rtems/c/src/lib/libbsp/arm/nds/ChangeLog:1.58
--- rtems/c/src/lib/libbsp/arm/nds/ChangeLog:1.57	Fri Apr 30 08:40:13 2010
+++ rtems/c/src/lib/libbsp/arm/nds/ChangeLog	Fri Apr 30 08:41:52 2010
@@ -1,6 +1,7 @@
 2010-04-30	Sebastian Huber <sebastian.huber at embedded-brains.de>
 
-	* make/custom/nds.cfg: Use VFP floating point model.
+	* make/custom/nds.cfg, Makefile.am, dswifi/arm7/makefile: Use VFP
+	floating point model.
 
 2010-04-25	Joel Sherrill <joel.sherrilL at OARcorp.com>
 

diff -u rtems/c/src/lib/libbsp/arm/nds/Makefile.am:1.17 rtems/c/src/lib/libbsp/arm/nds/Makefile.am:1.18
--- rtems/c/src/lib/libbsp/arm/nds/Makefile.am:1.17	Fri Apr  9 15:24:56 2010
+++ rtems/c/src/lib/libbsp/arm/nds/Makefile.am	Fri Apr 30 08:41:52 2010
@@ -187,8 +187,8 @@
 			libnds/source/arm7/touch.c			\
 			libnds/source/arm7/userSettings.c
 libnds7_rel_CPPFLAGS = $(AM_CPPFLAGS) -DARM7 -I$(srcdir)/libnds/include
-libnds7_rel_CFLAGS = -mcpu=arm7tdmi -msoft-float
-libnds7_rel_CCASFLAGS = -mcpu=arm7tdmi -msoft-float
+libnds7_rel_CFLAGS = -mcpu=arm7tdmi -mfpu=vfp -mfloat-abi=soft
+libnds7_rel_CCASFLAGS = -mcpu=arm7tdmi -mfpu=vfp -mfloat-abi=soft
 libnds7_rel_LDFLAGS = $(RTEMS_RELLDFLAGS)
 
 if HAS_NETWORKING
@@ -197,8 +197,8 @@
 dswifi7_rel_SOURCES =  	dswifi/arm7/source/wifi_arm7.c			\
 			dswifi/common/source/spinlock.S
 dswifi7_rel_CPPFLAGS = $(AM_CPPFLAGS) -DARM7 -I$(srcdir)/dswifi/include -I$(srcdir)/libnds/include -I$(srcdir)/dswifi/common/source
-dswifi7_rel_CFLAGS = -mcpu=arm7tdmi -msoft-float
-dswifi7_rel_CCASFLAGS = -mcpu=arm7tdmi -msoft-float
+dswifi7_rel_CFLAGS = -mcpu=arm7tdmi -mfpu=vfp -mfloat-abi=soft
+dswifi7_rel_CCASFLAGS = -mcpu=arm7tdmi -mfpu=vfp -mfloat-abi=soft
 dswifi7_rel_LDFLAGS = $(RTEMS_RELLDFLAGS)
 endif
 
@@ -247,11 +247,11 @@
 EXTRA_DIST = coproc/coproc.S coproc/coproc.c
 if HAS_NETWORKING
 coproc.bin: coproc/coproc.S coproc/coproc.c libnds7.rel dswifi7.rel
-	@CC@ -o coproc.elf -mcpu=arm7tdmi -msoft-float -O2 -DARM7 -I$(srcdir)/libnds/include -I$(srcdir)/dswifi/include -DENABLE_WIFI -T $(srcdir)/coproc/coproc.ld $^ -lc
+	@CC@ -o coproc.elf -mcpu=arm7tdmi -mfpu=vfp -mfloat-abi=soft -O2 -DARM7 -I$(srcdir)/libnds/include -I$(srcdir)/dswifi/include -DENABLE_WIFI -T $(srcdir)/coproc/coproc.ld $^ -lc
 	$(OBJCOPY) -O binary coproc.elf coproc.bin
 else
 coproc.bin: coproc/coproc.S coproc/coproc.c libnds7.rel
-	@CC@ -o coproc.elf -mcpu=arm7tdmi -msoft-float -O2 -DARM7 -I$(srcdir)/libnds/include -T $(srcdir)/coproc/coproc.ld $^ -lc
+	@CC@ -o coproc.elf -mcpu=arm7tdmi -mfpu=vfp -mfloat-abi=soft -O2 -DARM7 -I$(srcdir)/libnds/include -T $(srcdir)/coproc/coproc.ld $^ -lc
 	$(OBJCOPY) -O binary coproc.elf coproc.bin
 endif
 project_lib_DATA += coproc.bin

diff -u rtems/c/src/lib/libbsp/arm/nds/dswifi/arm7/makefile:1.2 rtems/c/src/lib/libbsp/arm/nds/dswifi/arm7/makefile:1.3
--- rtems/c/src/lib/libbsp/arm/nds/dswifi/arm7/makefile:1.2	Tue Aug 19 10:47:14 2008
+++ rtems/c/src/lib/libbsp/arm/nds/dswifi/arm7/makefile	Fri Apr 30 08:41:52 2010
@@ -27,7 +27,7 @@
 ARCH	:=	-mthumb-interwork
 
 CFLAGS	:=	-g -Wall -O2\
-			-mcpu=arm7tdmi -mtune=arm7tdmi -fomit-frame-pointer\
+			-mcpu=arm7tdmi -mtune=arm7tdmi -mfpu=vfp -mfloat-abi=soft -fomit-frame-pointer\
 			-ffast-math \
 			$(ARCH)
 


 *sh*:
2010-04-30	Sebastian Huber <sebastian.huber at embedded-brains.de>

	* make/custom/lpc24xx.inc: Use VFP floating point model.

M   1.48  c/src/lib/libbsp/arm/lpc24xx/ChangeLog
M    1.6  c/src/lib/libbsp/arm/lpc24xx/make/custom/lpc24xx.inc

diff -u rtems/c/src/lib/libbsp/arm/lpc24xx/ChangeLog:1.47 rtems/c/src/lib/libbsp/arm/lpc24xx/ChangeLog:1.48
--- rtems/c/src/lib/libbsp/arm/lpc24xx/ChangeLog:1.47	Fri Apr  9 10:02:39 2010
+++ rtems/c/src/lib/libbsp/arm/lpc24xx/ChangeLog	Fri Apr 30 08:45:33 2010
@@ -1,3 +1,7 @@
+2010-04-30	Sebastian Huber <sebastian.huber at embedded-brains.de>
+
+	* make/custom/lpc24xx.inc: Use VFP floating point model.
+
 2010-04-09	Thomas Doerfler <Thomas.Doerfler at embedded-brains.de>
 
 	* make/custom/lpc24xx.inc: removed over-paranoid warning switches

diff -u rtems/c/src/lib/libbsp/arm/lpc24xx/make/custom/lpc24xx.inc:1.5 rtems/c/src/lib/libbsp/arm/lpc24xx/make/custom/lpc24xx.inc:1.6
--- rtems/c/src/lib/libbsp/arm/lpc24xx/make/custom/lpc24xx.inc:1.5	Fri Apr  9 10:02:39 2010
+++ rtems/c/src/lib/libbsp/arm/lpc24xx/make/custom/lpc24xx.inc	Fri Apr 30 08:45:33 2010
@@ -8,6 +8,6 @@
 
 RTEMS_CPU = arm
 
-CPU_CFLAGS = -mcpu=arm7tdmi-s -mthumb -mstructure-size-boundary=8
+CPU_CFLAGS = -mstructure-size-boundary=8 -mcpu=arm7tdmi-s -mfpu=vfp -mfloat-abi=soft -mthumb
 
 CFLAGS_OPTIMIZE_V = -Os -g


 *sh*:
2010-04-30	Sebastian Huber <sebastian.huber at embedded-brains.de>

	* include/irq-config.h: Removed file.
	* Makefile.am, preinstall.am: Reflect change above.
	* irq/irq.c: Removed superfluous parameter checks.

M   1.49  c/src/lib/libbsp/arm/lpc24xx/ChangeLog
M   1.27  c/src/lib/libbsp/arm/lpc24xx/Makefile.am
R    1.1  c/src/lib/libbsp/arm/lpc24xx/include/irq-config.h
M    1.6  c/src/lib/libbsp/arm/lpc24xx/irq/irq.c
M   1.18  c/src/lib/libbsp/arm/lpc24xx/preinstall.am
M    1.8  c/src/lib/libbsp/arm/lpc32xx/ChangeLog
M    1.4  c/src/lib/libbsp/arm/lpc32xx/Makefile.am
R    1.1  c/src/lib/libbsp/arm/lpc32xx/include/irq-config.h
M    1.4  c/src/lib/libbsp/arm/lpc32xx/irq/irq.c
M    1.4  c/src/lib/libbsp/arm/lpc32xx/preinstall.am

diff -u rtems/c/src/lib/libbsp/arm/lpc24xx/ChangeLog:1.48 rtems/c/src/lib/libbsp/arm/lpc24xx/ChangeLog:1.49
--- rtems/c/src/lib/libbsp/arm/lpc24xx/ChangeLog:1.48	Fri Apr 30 08:45:33 2010
+++ rtems/c/src/lib/libbsp/arm/lpc24xx/ChangeLog	Fri Apr 30 08:48:14 2010
@@ -1,5 +1,11 @@
 2010-04-30	Sebastian Huber <sebastian.huber at embedded-brains.de>
 
+	* include/irq-config.h: Removed file.
+	* Makefile.am, preinstall.am: Reflect change above.
+	* irq/irq.c: Removed superfluous parameter checks.
+
+2010-04-30	Sebastian Huber <sebastian.huber at embedded-brains.de>
+
 	* make/custom/lpc24xx.inc: Use VFP floating point model.
 
 2010-04-09	Thomas Doerfler <Thomas.Doerfler at embedded-brains.de>

diff -u rtems/c/src/lib/libbsp/arm/lpc24xx/Makefile.am:1.26 rtems/c/src/lib/libbsp/arm/lpc24xx/Makefile.am:1.27
--- rtems/c/src/lib/libbsp/arm/lpc24xx/Makefile.am:1.26	Fri Apr  9 07:24:48 2010
+++ rtems/c/src/lib/libbsp/arm/lpc24xx/Makefile.am	Fri Apr 30 08:48:14 2010
@@ -36,7 +36,6 @@
 include_bsp_HEADERS += ../shared/include/linker-symbols.h
 include_bsp_HEADERS += ../shared/include/start.h
 include_bsp_HEADERS += ../shared/lpc/include/lpc-timer.h
-include_bsp_HEADERS += include/irq-config.h
 include_bsp_HEADERS += include/irq.h
 include_bsp_HEADERS += include/lpc24xx.h
 include_bsp_HEADERS += include/system-clocks.h

diff -u rtems/c/src/lib/libbsp/arm/lpc24xx/irq/irq.c:1.5 rtems/c/src/lib/libbsp/arm/lpc24xx/irq/irq.c:1.6
--- rtems/c/src/lib/libbsp/arm/lpc24xx/irq/irq.c:1.5	Fri Apr  9 07:24:48 2010
+++ rtems/c/src/lib/libbsp/arm/lpc24xx/irq/irq.c	Fri Apr 30 08:48:14 2010
@@ -68,18 +68,14 @@
 
 rtems_status_code bsp_interrupt_vector_enable(rtems_vector_number vector)
 {
-  if (lpc24xx_irq_is_valid(vector)) {
-    VICIntEnable = 1U << vector;
-  }
+  VICIntEnable = 1U << vector;
 
   return RTEMS_SUCCESSFUL;
 }
 
 rtems_status_code bsp_interrupt_vector_disable(rtems_vector_number vector)
 {
-  if (lpc24xx_irq_is_valid(vector)) {
-    VICIntEnClear = 1U << vector;
-  }
+  VICIntEnClear = 1U << vector;
 
   return RTEMS_SUCCESSFUL;
 }

diff -u rtems/c/src/lib/libbsp/arm/lpc24xx/preinstall.am:1.17 rtems/c/src/lib/libbsp/arm/lpc24xx/preinstall.am:1.18
--- rtems/c/src/lib/libbsp/arm/lpc24xx/preinstall.am:1.17	Tue Jan 12 09:03:21 2010
+++ rtems/c/src/lib/libbsp/arm/lpc24xx/preinstall.am	Fri Apr 30 08:48:14 2010
@@ -90,10 +90,6 @@
 	$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/lpc-timer.h
 PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/lpc-timer.h
 
-$(PROJECT_INCLUDE)/bsp/irq-config.h: include/irq-config.h $(PROJECT_INCLUDE)/bsp/$(dirstamp)
-	$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/irq-config.h
-PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/irq-config.h
-
 $(PROJECT_INCLUDE)/bsp/irq.h: include/irq.h $(PROJECT_INCLUDE)/bsp/$(dirstamp)
 	$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/irq.h
 PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/irq.h

diff -u rtems/c/src/lib/libbsp/arm/lpc32xx/ChangeLog:1.7 rtems/c/src/lib/libbsp/arm/lpc32xx/ChangeLog:1.8
--- rtems/c/src/lib/libbsp/arm/lpc32xx/ChangeLog:1.7	Fri Apr 30 08:40:13 2010
+++ rtems/c/src/lib/libbsp/arm/lpc32xx/ChangeLog	Fri Apr 30 08:49:15 2010
@@ -1,5 +1,11 @@
 2010-04-30	Sebastian Huber <sebastian.huber at embedded-brains.de>
 
+	* include/irq-config.h: Removed file.
+	* Makefile.am, preinstall.am: Reflect change above.
+	* irq/irq.c: Removed superfluous parameter checks.
+
+2010-04-30	Sebastian Huber <sebastian.huber at embedded-brains.de>
+
 	* make/custom/lpc32xx_phycore.cfg: Use VFP floating point model.
 
 2010-04-09	Sebastian Huber <sebastian.huber at embedded-brains.de>

diff -u rtems/c/src/lib/libbsp/arm/lpc32xx/Makefile.am:1.3 rtems/c/src/lib/libbsp/arm/lpc32xx/Makefile.am:1.4
--- rtems/c/src/lib/libbsp/arm/lpc32xx/Makefile.am:1.3	Fri Apr  9 07:25:21 2010
+++ rtems/c/src/lib/libbsp/arm/lpc32xx/Makefile.am	Fri Apr 30 08:49:15 2010
@@ -38,7 +38,6 @@
 include_bsp_HEADERS += ../shared/include/start.h
 include_bsp_HEADERS += ../shared/lpc/include/lpc-timer.h
 include_bsp_HEADERS += ../shared/lpc/include/lpc-dma.h
-include_bsp_HEADERS += include/irq-config.h
 include_bsp_HEADERS += include/irq.h
 include_bsp_HEADERS += include/mmu.h
 include_bsp_HEADERS += include/lpc32xx.h

diff -u rtems/c/src/lib/libbsp/arm/lpc32xx/irq/irq.c:1.3 rtems/c/src/lib/libbsp/arm/lpc32xx/irq/irq.c:1.4
--- rtems/c/src/lib/libbsp/arm/lpc32xx/irq/irq.c:1.3	Fri Mar 12 02:26:18 2010
+++ rtems/c/src/lib/libbsp/arm/lpc32xx/irq/irq.c	Fri Apr 30 08:49:15 2010
@@ -280,28 +280,24 @@
 
 rtems_status_code bsp_interrupt_vector_enable(rtems_vector_number vector)
 {
-  if (lpc32xx_irq_is_valid(vector)) {
-    rtems_interrupt_level level;
+  rtems_interrupt_level level;
 
-    rtems_interrupt_disable(level);
-    lpc32xx_irq_set_bit_in_register(vector, LPC32XX_IRQ_OFFSET_ER);
-    lpc32xx_irq_set_bit_in_field(vector, &lpc32xx_irq_enable);
-    rtems_interrupt_enable(level);
-  }
+  rtems_interrupt_disable(level);
+  lpc32xx_irq_set_bit_in_register(vector, LPC32XX_IRQ_OFFSET_ER);
+  lpc32xx_irq_set_bit_in_field(vector, &lpc32xx_irq_enable);
+  rtems_interrupt_enable(level);
 
   return RTEMS_SUCCESSFUL;
 }
 
 rtems_status_code bsp_interrupt_vector_disable(rtems_vector_number vector)
 {
-  if (lpc32xx_irq_is_valid(vector)) {
-    rtems_interrupt_level level;
+  rtems_interrupt_level level;
 
-    rtems_interrupt_disable(level);
-    lpc32xx_irq_clear_bit_in_field(vector, &lpc32xx_irq_enable);
-    lpc32xx_irq_clear_bit_in_register(vector, LPC32XX_IRQ_OFFSET_ER);
-    rtems_interrupt_enable(level);
-  }
+  rtems_interrupt_disable(level);
+  lpc32xx_irq_clear_bit_in_field(vector, &lpc32xx_irq_enable);
+  lpc32xx_irq_clear_bit_in_register(vector, LPC32XX_IRQ_OFFSET_ER);
+  rtems_interrupt_enable(level);
 
   return RTEMS_SUCCESSFUL;
 }

diff -u rtems/c/src/lib/libbsp/arm/lpc32xx/preinstall.am:1.3 rtems/c/src/lib/libbsp/arm/lpc32xx/preinstall.am:1.4
--- rtems/c/src/lib/libbsp/arm/lpc32xx/preinstall.am:1.3	Fri Apr  9 07:25:21 2010
+++ rtems/c/src/lib/libbsp/arm/lpc32xx/preinstall.am	Fri Apr 30 08:49:15 2010
@@ -98,10 +98,6 @@
 	$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/lpc-dma.h
 PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/lpc-dma.h
 
-$(PROJECT_INCLUDE)/bsp/irq-config.h: include/irq-config.h $(PROJECT_INCLUDE)/bsp/$(dirstamp)
-	$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/irq-config.h
-PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/irq-config.h
-
 $(PROJECT_INCLUDE)/bsp/irq.h: include/irq.h $(PROJECT_INCLUDE)/bsp/$(dirstamp)
 	$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/irq.h
 PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/irq.h


 *sh*:
2010-04-30	Sebastian Huber <sebastian.huber at embedded-brains.de>

	* Makefile.am, preinstall.am: Added generic interrupt support modules.

M   1.29  c/src/lib/libbsp/arm/smdk2410/ChangeLog
M   1.16  c/src/lib/libbsp/arm/smdk2410/Makefile.am
M    1.4  c/src/lib/libbsp/arm/smdk2410/preinstall.am

diff -u rtems/c/src/lib/libbsp/arm/smdk2410/ChangeLog:1.28 rtems/c/src/lib/libbsp/arm/smdk2410/ChangeLog:1.29
--- rtems/c/src/lib/libbsp/arm/smdk2410/ChangeLog:1.28	Fri Apr 30 08:40:13 2010
+++ rtems/c/src/lib/libbsp/arm/smdk2410/ChangeLog	Fri Apr 30 08:54:07 2010
@@ -1,5 +1,9 @@
 2010-04-30	Sebastian Huber <sebastian.huber at embedded-brains.de>
 
+	* Makefile.am, preinstall.am: Added generic interrupt support modules.
+
+2010-04-30	Sebastian Huber <sebastian.huber at embedded-brains.de>
+
 	* make/custom/smdk2410.cfg: Use VFP floating point model.
 
 2010-04-09	Thomas Doerfler <Thomas.Doerfler at embedded-brains.de>

diff -u rtems/c/src/lib/libbsp/arm/smdk2410/Makefile.am:1.15 rtems/c/src/lib/libbsp/arm/smdk2410/Makefile.am:1.16
--- rtems/c/src/lib/libbsp/arm/smdk2410/Makefile.am:1.15	Fri Apr  9 15:24:57 2010
+++ rtems/c/src/lib/libbsp/arm/smdk2410/Makefile.am	Fri Apr 30 08:54:08 2010
@@ -14,6 +14,8 @@
 include_HEADERS += ../gp32/smc/smc.h
 include_HEADERS += ../../shared/include/tm27.h
 
+include_bsp_HEADERS =
+
 nodist_include_HEADERS = include/bspopts.h
 nodist_include_bsp_HEADERS = ../../shared/include/bootcard.h
 DISTCLEANFILES = include/bspopts.h
@@ -38,6 +40,14 @@
     ../../shared/gnatinstallhandler.c
 # console
 libbsp_a_SOURCES += ../gp32/console/uart.c ../../shared/console.c
+# IRQ
+include_bsp_HEADERS += ../../shared/include/irq-generic.h \
+	../../shared/include/irq-info.h
+libbsp_a_SOURCES += ../../shared/src/irq-generic.c \
+	../../shared/src/irq-legacy.c \
+	../../shared/src/irq-info.c \
+	../../shared/src/irq-shell.c \
+	../../shared/src/irq-server.c
 # abort
 libbsp_a_SOURCES += ../shared/abort/abort.c
 # smc

diff -u rtems/c/src/lib/libbsp/arm/smdk2410/preinstall.am:1.3 rtems/c/src/lib/libbsp/arm/smdk2410/preinstall.am:1.4
--- rtems/c/src/lib/libbsp/arm/smdk2410/preinstall.am:1.3	Thu Sep 25 23:04:51 2008
+++ rtems/c/src/lib/libbsp/arm/smdk2410/preinstall.am	Fri Apr 30 08:54:08 2010
@@ -69,3 +69,11 @@
 	$(INSTALL_DATA) $< $(PROJECT_LIB)/linkcmds
 PREINSTALL_FILES += $(PROJECT_LIB)/linkcmds
 
+$(PROJECT_INCLUDE)/bsp/irq-generic.h: ../../shared/include/irq-generic.h $(PROJECT_INCLUDE)/bsp/$(dirstamp)
+	$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/irq-generic.h
+PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/irq-generic.h
+
+$(PROJECT_INCLUDE)/bsp/irq-info.h: ../../shared/include/irq-info.h $(PROJECT_INCLUDE)/bsp/$(dirstamp)
+	$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/irq-info.h
+PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/irq-info.h
+



--

Generated by Deluxe Loginfo [http://www.codewiz.org/projects/index.html#loginfo] 2.122 by Bernardo Innocenti <bernie at develer.com>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rtems.org/pipermail/vc/attachments/20100430/6c784756/attachment-0001.html>


More information about the vc mailing list