This is the mail archive of the
ecos-discuss@sources.redhat.com
mailing list for the eCos project.
redboot info threads problem
- To: eCos Disuss <ecos-discuss at sourceware dot cygnus dot com>
- Subject: [ECOS] redboot info threads problem
- From: Andrew Lunn <andrew dot lunn at ascom dot ch>
- Date: Thu, 7 Dec 2000 12:04:51 +0100
Hi Folks
Im trying to work out how redboot does its info threads call. I think
i understand whats going. The redboot stub calls into the RAM app
using the virtual vector support. dbg_threadinfo calls
dbg_thread_syscal which jumps through the vector thus
static __inline__ int dbg_thread_syscall(
enum dbg_syscall_ids id)
{
dbg_syscall_func f ; /* double indirect via */
if (0 ==(f = *dbg_syscall_ptr)) return 0 ; /* no pointer to vector */
if (0 == *f) return 0 ; /* vector not initialized */
return (*f)(id,&tcall);
}
What im missing is when is dbg_syscall_ptr initialised? There is a
function to do it, init_threads_syscall, but its not getting
called. This should be called as part of hal_if_init but its not. Its
surrouned by conditional compilations which are evaluating to
false. The conditions are
!defined(CYGPKG_KERNEL) && defined(CYGDBG_HAL_DEBUG_GDB_THREAD_SUPPORT)
I don't have a kernel, this is plain redboot. Looking at ecos.ecc
CYGDBG_HAL_DEBUG_GDB_THREAD_SUPPORT is not active.
# ActiveIf constraint: CYGSEM_HAL_ROM_MONITOR || CYGDBG_KERNEL_DEBUG_GD
B_THREAD_SUPPORT
# CYGSEM_HAL_ROM_MONITOR == 0
# CYGDBG_KERNEL_DEBUG_GDB_THREAD_SUPPORT (unknown) == 0
# --> 0
The redboot.txt shipped with 1.4.4 says to disable
CYGSEM_HAL_ROM_MONITOR. CYGDBG_KERNEL_DEBUG_GDB_THREAD_SUPPORT is
defined in kernel.cdl which since im not using it is not included.
So whats wrong?
Thanks
Andrew