int dbg_currthread_id(void) { threadref ref; if( dbg_currthread( &ref ) ) return (cyg_uint16)swap32(((unsigned long *)ref)[1]); else return 0; }
static int dbg_thread_syscall_rmt( enum dbg_syscall_ids id, union dbg_thread_syscall_parms * p ) { int ret; CYGARC_HAL_SAVE_GP(); switch (id) { case dbg_null_func : ret = 1 ; /* test the syscall apparatus */ break; #ifdef CYGDBG_KERNEL_DEBUG_GDB_THREAD_SUPPORT case dbg_capabilities_func : ret = dbg_thread_capabilities(p->cap_parms.abilities) ; break ; case dbg_currthread_func : ret = dbg_currthread(p->currthread_parms.ref) ; break ; case dbg_threadlist_func : ret = dbg_threadlist(p->threadlist_parms.startflag, p->threadlist_parms.lastid, p->threadlist_parms.nextthreadid) ; break ; case dbg_threadinfo_func : ret = dbg_threadinfo(p->info_parms.ref, p->info_parms.info ) ; break ; case dbg_getthreadreg_func : ret = dbg_getthreadreg(p->reg_parms.thread, p->reg_parms.regcount, p->reg_parms.registers) ; break ; case dbg_setthreadreg_func : ret = dbg_setthreadreg(p->reg_parms.thread, p->reg_parms.regcount, p->reg_parms.registers) ; break ; case dbg_scheduler_func : ret = dbg_scheduler(p->scheduler_parms.thread, p->scheduler_parms.lock, p->scheduler_parms.mode) ; break ; #endif /* CYGDBG_KERNEL_DEBUG_GDB_THREAD_SUPPORT */ default : ret = 0 ; /* failure due to non-implementation */ } CYGARC_HAL_RESTORE_GP(); return ret; }