diff packages/kernel/current/src/debug/dbg-thread-demux.c @ 2:443894e2e912 ecos-v1_2_1-release

Block commit of eCos version 1.2.1
author jlarmour
date Tue, 11 May 1999 12:24:34 +0000
parents 3111d98ba7b3
children d376b777e2ce
line wrap: on
line diff
--- a/packages/kernel/current/src/debug/dbg-thread-demux.c
+++ b/packages/kernel/current/src/debug/dbg-thread-demux.c
@@ -22,7 +22,7 @@
 // September 30, 1998.
 // 
 // The Initial Developer of the Original Code is Cygnus.  Portions created
-// by Cygnus are Copyright (C) 1998 Cygnus Solutions.  All Rights Reserved.
+// by Cygnus are Copyright (C) 1998,1999 Cygnus Solutions.  All Rights Reserved.
 // -------------------------------------------
 //
 //####COPYRIGHTEND####
@@ -66,17 +66,21 @@
 
 // -------------------------------------------------------------------------
 
+#include <pkgconf/system.h>             // for CYGPKG... and STARTUP
+
 #include <pkgconf/kernel.h>
 
+#include <cyg/infra/cyg_type.h>
+
 #include "cyg/hal/dbg-threads-api.h"
 #include "dbg-thread-syscall.h" 
 
 // -------------------------------------------------------------------------
 
 static int dbg_thread_syscall_rmt(
-		       enum dbg_syscall_ids id,
-		       union dbg_thread_syscall_parms * p
-		       )
+                       enum dbg_syscall_ids id,
+                       union dbg_thread_syscall_parms * p
+                       )
 {
   switch (id)
     {
@@ -91,23 +95,28 @@ static int dbg_thread_syscall_rmt(
       break ;
     case dbg_threadlist_func :
       return dbg_threadlist(p->threadlist_parms.startflag,
-			    p->threadlist_parms.lastid,
-			    p->threadlist_parms.nextthreadid) ;
+                            p->threadlist_parms.lastid,
+                            p->threadlist_parms.nextthreadid) ;
       break ;
     case dbg_threadinfo_func :
       return dbg_threadinfo(p->info_parms.ref,
-			    p->info_parms.info
-			    ) ;
+                            p->info_parms.info
+                            ) ;
       break ;
     case dbg_getthreadreg_func :
       return dbg_getthreadreg(p->reg_parms.thread,
-			      p->reg_parms.regcount,
-			      p->reg_parms.registers) ;
+                              p->reg_parms.regcount,
+                              p->reg_parms.registers) ;
       break ;
     case dbg_setthreadreg_func :
       return dbg_setthreadreg(p->reg_parms.thread,
-			      p->reg_parms.regcount,
-			      p->reg_parms.registers) ;
+                              p->reg_parms.regcount,
+                              p->reg_parms.registers) ;
+      break ;
+    case dbg_scheduler_func :
+      return dbg_scheduler(p->scheduler_parms.thread,
+                           p->scheduler_parms.lock,
+                           p->scheduler_parms.mode) ;
       break ;
 #endif /* CYGDBG_KERNEL_DEBUG_GDB_THREAD_SUPPORT */      
     default :
@@ -121,9 +130,9 @@ static int dbg_thread_syscall_rmt(
 
 #ifdef CYG_HAL_TX39
 static int dbg_thread_syscall_rmt_1(
-		       enum dbg_syscall_ids id,
-		       union dbg_thread_syscall_parms * p
-		       )
+                       enum dbg_syscall_ids id,
+                       union dbg_thread_syscall_parms * p
+                       )
 {
 
   register long gp_save;
@@ -145,15 +154,37 @@ static int dbg_thread_syscall_rmt_1(
 
 // -------------------------------------------------------------------------
 
+#define DBG_SYSCALL_THREAD_VEC_NUM 15
+
+#ifdef CYGDBG_KERNEL_DEBUG_GDB_THREAD_SUPPORT
+
+#ifdef CYG_HAL_SPARCLITE_SLEB
+# include <cyg/hal/hal_cygm.h>
+# ifdef CYG_HAL_USE_ROM_MONITOR_CYGMON
+// then we support talking to CygMon...
+#  undef DBG_SYSCALL_THREAD_VEC_NUM
+#  define DBG_SYSCALL_THREAD_VEC_NUM BSP_VEC_MT_DEBUG
+# endif
+// otherwise this code is wrong for SPARClite but also not used.
+#endif
+
+#endif
+
 void patch_dbg_syscalls(void * vector)
 {
    dbg_syscall_func * f ;
    f = vector ;
+
+#ifdef CYGDBG_KERNEL_DEBUG_GDB_THREAD_SUPPORT
+
 #ifdef CYG_HAL_TX39
-   *f = dbg_thread_syscall_rmt_1 ;
+   f[DBG_SYSCALL_THREAD_VEC_NUM] = dbg_thread_syscall_rmt_1 ;
 #else   
-   *f = dbg_thread_syscall_rmt ;
-#endif   
+   f[DBG_SYSCALL_THREAD_VEC_NUM] = dbg_thread_syscall_rmt ;
+#endif
+
+#endif
+
 }
 
 // -------------------------------------------------------------------------