diff packages/hal/i386/pc/current/src/plf_misc.c @ 143:6b5f480c6929 ecos-sw-2000-12-08

Merge from eCos master repository on 2000-12-08-02:09:36-GMT
author jlarmour
date Fri, 08 Dec 2000 03:30:06 +0000
parents 435cced73e2f
children ac086aa3217e
line wrap: on
line diff
--- a/packages/hal/i386/pc/current/src/plf_misc.c
+++ b/packages/hal/i386/pc/current/src/plf_misc.c
@@ -107,6 +107,10 @@ void hal_pc_fpe_dsr(CYG_ADDRWORD vector,
         if (hal_pc_fpe_owner)
         {	/* Then save his state at the bottom of his stack. */
             stack = cyg_thread_get_stack_base(hal_pc_fpe_owner) ;
+#ifdef CYGNUM_KERNEL_THREADS_STACK_CHECK_DATA_SIZE
+            // It might well be zero anyway
+            stack += CYGNUM_KERNEL_THREADS_STACK_CHECK_DATA_SIZE;
+#endif
             p = (cyg_uint32*) stack ;
             stack = (cyg_addrword_t) &(p[1]);
             asm("movl %0, %%eax
@@ -118,6 +122,9 @@ fsave (%%eax)"
         }
         hal_pc_fpe_owner = me ;
         stack = cyg_thread_get_stack_base(hal_pc_fpe_owner) ;
+#ifdef CYGNUM_KERNEL_THREADS_STACK_CHECK_DATA_SIZE
+        stack += CYGNUM_KERNEL_THREADS_STACK_CHECK_DATA_SIZE;
+#endif
         p = (cyg_uint32*) stack ;
         if (p[0] == 0xCAFEBABE)
         {