From 261f99bdac9a995f8b2740b7ae52c8ad81001132 Mon Sep 17 00:00:00 2001 From: Joel Sherrill Date: Thu, 2 Aug 2007 15:00:07 +0000 Subject: 2007-08-02 Joel Sherrill * configure.ac, wrapup/Makefile.am: Remove RDBG. * aclocal/check-rdbg.m4, aclocal/enable-rdbg.m4, librdbg/.cvsignore, librdbg/Makefile.am, librdbg/preinstall.am, librdbg/include/rdbg/rdbg.h, librdbg/include/rdbg/servrpc.h, librdbg/include/rdbg/i386/rdbg_f.h, librdbg/include/rdbg/i386/reg.h, librdbg/include/rdbg/m68k/rdbg_f.h, librdbg/include/rdbg/m68k/reg.h, librdbg/include/rdbg/powerpc/rdbg_f.h, librdbg/include/rdbg/powerpc/reg.h, librdbg/src/_servtgt.c, librdbg/src/awk.svc, librdbg/src/excep.c, librdbg/src/ptrace.c, librdbg/src/rdbg.c, librdbg/src/remdeb.x, librdbg/src/servbkpt.c, librdbg/src/servcon.c, librdbg/src/servrpc.c, librdbg/src/servtgt.c, librdbg/src/servtsp.c, librdbg/src/servutil.c, librdbg/src/i386/excep_f.c, librdbg/src/i386/rdbg_cpu_asm.S, librdbg/src/i386/rdbg_f.c, librdbg/src/i386/any/remdeb.h, librdbg/src/i386/any/remdeb_f.x, librdbg/src/i386/any/remdeb_svc.c, librdbg/src/i386/any/remdeb_xdr.c, librdbg/src/m68k/excep_f.c, librdbg/src/m68k/rdbg_cpu_asm.S, librdbg/src/m68k/rdbg_f.c, librdbg/src/m68k/any/remdeb.h, librdbg/src/m68k/any/remdeb_f.x, librdbg/src/m68k/any/remdeb_svc.c, librdbg/src/m68k/any/remdeb_xdr.c, librdbg/src/powerpc/excep_f.c, librdbg/src/powerpc/rdbg_cpu_asm.S, librdbg/src/powerpc/rdbg_f.c, librdbg/src/powerpc/new_exception_processing/remdeb.h, librdbg/src/powerpc/new_exception_processing/remdeb_f.x, librdbg/src/powerpc/new_exception_processing/remdeb_svc.c, librdbg/src/powerpc/new_exception_processing/remdeb_xdr.c: Removed. --- c/src/librdbg/src/_servtgt.c | 308 ------------------------------------------- 1 file changed, 308 deletions(-) delete mode 100644 c/src/librdbg/src/_servtgt.c (limited to 'c/src/librdbg/src/_servtgt.c') diff --git a/c/src/librdbg/src/_servtgt.c b/c/src/librdbg/src/_servtgt.c deleted file mode 100644 index 06e97b52ac..0000000000 --- a/c/src/librdbg/src/_servtgt.c +++ /dev/null @@ -1,308 +0,0 @@ -/* - ============================================================================ - _SERVTGT - $Id$ - ============================================================================ -*/ - -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include - -#ifdef DDEBUG -#define Ptrace TgtDbgPtrace -#else -#define Ptrace TgtRealPtrace -#endif - -extern int errno; - -rtems_id eventTaskId; -rtems_id serializeSemId; -rtems_id wakeupEventSemId; -rtems_id debugId; - -CPU_Exception_frame Idle_frame; - -/* ----------------------------------------------------------------- - TgtRealPtrace - lowest level ptrace() wrapper - ----------------------------------------------------------------- */ - - int -TgtRealPtrace (int req, PID aid, char *addr, int d, void *addr2) -{ - return ptrace (req, aid, addr, d, addr2); -} - -/* ----------------------------------------------------------------------- - TgtChange() is called when the system stops. - It informs the generic layers must be informed of - that fact. - ----------------------------------------------------------------------- */ - - static int -TgtChange (PID pid, CPU_Exception_frame * ctx, int status) -{ - - if (TgtHandleChildChange (pid, &status, NULL, ctx)) { - TgtNotifyWaitChange (pid, status, -1); - } - - return 0; -} - -/* ----------------------------------------------------------------------- - eventTask - ----------------------------------------------------------------------- */ - - rtems_task -eventTask (rtems_task_argument pid) -{ - Exception_context *ctx; - - DPRINTF (("event task: pid %d\n", pid)); - - /* - * we spend all our time waiting for a semaphore. - * If wait change, we send info - */ - - for (;;) { - DPRINTF (("Event Task: wait event\n")); - rtems_semaphore_obtain (wakeupEventSemId, RTEMS_WAIT, RTEMS_NO_TIMEOUT); - DPRINTF (("Event Task: wake up !!!!!!!!!!!!!\n")); - - errno = 0; - ctx = GetExceptCtx (currentTargetThread); - - CheckForSingleStep (ctx->ctx); - - TgtChange (pid, ctx->ctx, STS_MAKESIG (ExcepToSig (ctx))); - } -} - -/* ------------------------------------------------------------------- - MyThreadIdle - - - This task is used to initiate the exception mechanism: - It calls the enterDebug function with justSaveContext=1 - only to push a first valid context in the list - ---------------------------------------------------------------------*/ - - rtems_task -MyThreadIdle (rtems_task_argument argument) -{ - enterRdbg (); - rtems_task_delete (RTEMS_SELF); -} - -/* ----------------------------------------------------------------------- - TgtAttach - attach to a process that is running without control. - - Notes: - - this function performs a ptrace ATTACH equivalent (attaching to a - process that we do not control now). - ----------------------------------------------------------------------- */ - - Boolean -TgtAttach (int conn_idx, /* client that is requesting */ - PID pid) -{ /* process to attach to */ - rtems_name task_name; - rtems_status_code status; - - errno = 0; - - DPRINTF (("TgtAttach pid=%d\n", pid)); - - Ptrace (RPT_ATTACH, pid, NULL, 0, NULL); - if (errno) - return (False); /* failed */ - - TgtCreateNew (pid, conn_idx, 0, NULL, False); - - connect_rdbg_exception (); - - /* - * Search for and remove debugging tasks / semaphores left over from - * a previous attach without a detach. - */ - - if (rtems_task_ident (rtems_build_name ('E', 'v', 'n', 't'), - RTEMS_SEARCH_ALL_NODES, - &eventTaskId) == RTEMS_SUCCESSFUL) - rtems_task_delete (eventTaskId); - - if (rtems_semaphore_ident (rtems_build_name ('D', 'B', 'G', 's'), - RTEMS_SEARCH_ALL_NODES, - &serializeSemId) == RTEMS_SUCCESSFUL) - rtems_semaphore_delete (serializeSemId); - - if (rtems_semaphore_ident (rtems_build_name ('D', 'B', 'G', 'w'), - RTEMS_SEARCH_ALL_NODES, - &wakeupEventSemId) == RTEMS_SUCCESSFUL) - rtems_semaphore_delete (wakeupEventSemId); - - /* - * Create the attach debugger task - */ - task_name = rtems_build_name ('E', 'v', 'n', 't'); - if ((status = rtems_task_create (task_name, 10, 24576, - RTEMS_INTERRUPT_LEVEL (0), - RTEMS_DEFAULT_ATTRIBUTES | - RTEMS_SYSTEM_TASK, &eventTaskId)) - != RTEMS_SUCCESSFUL) { - printf ("status = %d\n", status); - rtems_panic ("Can't create task.\n"); - } - - status = rtems_task_start (eventTaskId, eventTask, pid); - - status = rtems_semaphore_create (rtems_build_name ('D', 'B', 'G', 's'), - 1, - RTEMS_FIFO | - RTEMS_COUNTING_SEMAPHORE | - RTEMS_NO_INHERIT_PRIORITY | - RTEMS_NO_PRIORITY_CEILING | - RTEMS_LOCAL, 0, &serializeSemId); - if (status != RTEMS_SUCCESSFUL) - rtems_panic ("Can't create serialize semaphore: `%s'\n", - rtems_status_text (status)); - - status = rtems_semaphore_create (rtems_build_name ('D', 'B', 'G', 'w'), - 0, - RTEMS_FIFO | - RTEMS_COUNTING_SEMAPHORE | - RTEMS_NO_INHERIT_PRIORITY | - RTEMS_NO_PRIORITY_CEILING | - RTEMS_LOCAL, 0, &wakeupEventSemId); - if (status != RTEMS_SUCCESSFUL) - rtems_panic ("Can't create wakeup semaphore: `%s'\n", - rtems_status_text (status)); - - /* - * Create the MyThreadIdle task to init Exception mechanism - */ - task_name = rtems_build_name ('R', 'i', 'n', 'i'); - if ((status = rtems_task_create (task_name, 10, 24576, - RTEMS_INTERRUPT_LEVEL (0), - RTEMS_DEFAULT_ATTRIBUTES, &debugId)) - != RTEMS_SUCCESSFUL) { - printf ("status = %d (%s)\n", status, rtems_status_text (status)); - rtems_panic ("Can't create task.\n"); - } - - status = rtems_task_start (debugId, MyThreadIdle, pid); - - return (True); -} - -/* ----------------------------------------------------------------------- - TgtPtrace - handle ptrace requests for server. - ----------------------------------------------------------------------- */ - -int -TgtPtrace (int req, PID pid, char *addr, int data, void *addr2) -{ - if ((req == RPT_SINGLESTEP || req == RPT_CONT) - && addr2) { /* clear then step */ /* addr2 is the old value */ - - int ret; - - errno = 0; - TgtBreakRestoreOrig (pid, addr, addr2); - ret = Ptrace (RPT_SINGLESTEP, pid, addr, data, NULL); /* step over */ - if (ret) { /* error, cannot single-step */ - int pid_idx = FindPidEntry (pid); - TgtBreakCancelStep (&pid_list[pid_idx]); - } - return (ret); /* failed or done */ - } else - return (Ptrace (req, pid, addr, data, addr2)); /* normal call */ -} - -/* ----------------------------------------------------------------- - TgtGetThreadName - get thread name - --------------------------------------------------------------- */ - - int -TgtGetThreadName (PID_LIST * plst, /* Process entry */ - unsigned Id, /* Thread ID */ - char *ThrName) -{ /* Thread name */ - int index; - unsigned name; - - if (Id < _Objects_Information_table[OBJECTS_CLASSIC_API][1]->maximum_id && - Id > _Objects_Information_table[OBJECTS_CLASSIC_API][1]->minimum_id) { - - index = Id - _Objects_Information_table[OBJECTS_CLASSIC_API][1]->minimum_id; - name = - *(unsigned *) (_Objects_Information_table[OBJECTS_CLASSIC_API][1]-> - local_table[1 + index]->name); - ThrName[0] = (char) ((name >> 24) & 0xFF); - ThrName[1] = (char) ((name >> 16) & 0xFF); - ThrName[2] = (char) ((name >> 8) & 0xFF); - ThrName[3] = (char) (name & 0xFF); - ThrName[4] = 0x0; - return 0; - } - - if (Id < _Objects_Information_table[OBJECTS_POSIX_API][1]->maximum_id && - Id > _Objects_Information_table[OBJECTS_POSIX_API][1]->minimum_id) { - - index = - Id - _Objects_Information_table[OBJECTS_POSIX_API][1]->minimum_id; - name = - *(unsigned *) (_Objects_Information_table[OBJECTS_POSIX_API][1]-> - local_table[1 + index]->name); - ThrName[0] = (char) ((name >> 24) & 0xFF); - ThrName[1] = (char) ((name >> 16) & 0xFF); - ThrName[2] = (char) ((name >> 8) & 0xFF); - ThrName[3] = (char) (name & 0xFF); - ThrName[4] = 0x0; - return 0; - } - - return -1; -} - -/* ----------------------------------------------------------------- - TgtThreadList - return all the threads in the system - ----------------------------------------------------------------- */ - - int -TgtThreadList (PID_LIST * plst, /* Process entry */ - unsigned *threads, /* Output buffer */ - unsigned size) -{ /* Output buffer size */ - int curr = 0; - int api; - Objects_Id id, min_id, max_id; - unsigned index; - - for ( api=OBJECTS_CLASSIC_API ; api <= OBJECTS_ITRON_API ; api++ ) { - min_id = _Objects_Information_table[api][1]->minimum_id; - max_id = _Objects_Information_table[api][1]->maximum_id; - id = min_id; - - while (id < max_id) { - index = id - min_id; - if (_Objects_Information_table[api][1]->local_table[1 + index] != NULL) { - threads[curr] = (unsigned) id; - curr++; - } - id++; - } - } - - return curr; -} -- cgit v1.2.3