changeset 1158:10a36d0fd6f3

* src/drv_api.c: Added definition of cyg_interrupt_post_dsr() for use in those HALs that need it. * include/hal_arbiter.h (hal_call_isr): Removed ifdef on CYGFUN_HAL_COMMON_KERNEL_SUPPORT around test and call to cyg_interrupt_post_dsr().
author nickg
date Wed, 06 Aug 2003 17:32:30 +0000
parents aacbd943879a
children 46ec92b4d31c
files packages/hal/common/current/ChangeLog packages/hal/common/current/include/hal_arbiter.h packages/hal/common/current/src/drv_api.c
diffstat 3 files changed, 18 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/packages/hal/common/current/ChangeLog
+++ b/packages/hal/common/current/ChangeLog
@@ -1,3 +1,12 @@
+2003-08-06  Bob Koninckx <bob.koninckx@mech.kuleuven.ac.be>
+
+	* src/drv_api.c: Added definition of cyg_interrupt_post_dsr() for
+	use in those HALs that need it.
+
+	* include/hal_arbiter.h (hal_call_isr): Removed ifdef on
+	CYGFUN_HAL_COMMON_KERNEL_SUPPORT around test and call to
+	cyg_interrupt_post_dsr().
+
 2003-07-21  Nick Garnett  <nickg@balti.calivar.com>
 
 	* doc/hal.sgml: Reorganized description of clock and timer related
--- a/packages/hal/common/current/include/hal_arbiter.h
+++ b/packages/hal/common/current/include/hal_arbiter.h
@@ -106,11 +106,9 @@ hal_call_isr (cyg_uint32 vector)
 
     isr_ret = (*isr) (vector, data);
 
-#ifdef CYGFUN_HAL_COMMON_KERNEL_SUPPORT
     if (isr_ret & CYG_ISR_CALL_DSR) {
         cyg_interrupt_post_dsr (hal_interrupt_objects[vector]);
     }
-#endif
 
     return isr_ret & ~CYG_ISR_CALL_DSR;
 }
--- a/packages/hal/common/current/src/drv_api.c
+++ b/packages/hal/common/current/src/drv_api.c
@@ -143,6 +143,15 @@ cyg_interrupt_call_pending_DSRs(void)
     call_dsrs();
 }
 
+//--------------------------------------------------------------------------
+// This is called from springboard ISRs in some HALs.
+
+externC void
+cyg_interrupt_post_dsr(CYG_ADDRWORD data)
+{
+  cyg_interrupt * intr = (cyg_interrupt *)data;
+  post_dsr(intr);
+}
 
 //--------------------------------------------------------------------------
 // Interrupt end function called from HAL VSR to tidy up. This is where