diff options
Diffstat (limited to '')
-rw-r--r-- | c/src/librdbg/src/excep.c | 146 |
1 files changed, 0 insertions, 146 deletions
diff --git a/c/src/librdbg/src/excep.c b/c/src/librdbg/src/excep.c deleted file mode 100644 index c8ce6d7415..0000000000 --- a/c/src/librdbg/src/excep.c +++ /dev/null @@ -1,146 +0,0 @@ -/* - ************************************************************************** - * - * Component = - * - * Synopsis = rdbgexcep.c - * - * $Id$ - * - ************************************************************************** - */ - -#include <rtems.h> -#include <rtems/error.h> -#include <assert.h> -#include <errno.h> -#include <rdbg/rdbg.h> -#include <rdbg/servrpc.h> - -unsigned int NbExceptCtx; -volatile unsigned int NbSerializedCtx; -Exception_context *FirstCtx = NULL; -Exception_context *LastCtx = NULL; - -CPU_Exception_frame SavedContext; - -/* - * Save an exception context at the end of a list - */ - - int -PushExceptCtx (Objects_Id Id, Objects_Id semId, CPU_Exception_frame * ctx) -{ - - Exception_context *SaveCtx; - - SaveCtx = (Exception_context *) malloc (sizeof (Exception_context)); - if (SaveCtx == NULL) - rtems_panic ("Can't allocate memory to save Exception context"); - - SaveCtx->id = Id; - SaveCtx->ctx = ctx; - SaveCtx->semaphoreId = semId; - SaveCtx->previous = NULL; - SaveCtx->next = NULL; - - if (FirstCtx == NULL) { /* initialization */ - FirstCtx = SaveCtx; - LastCtx = SaveCtx; - NbExceptCtx = 1; - } else { - NbExceptCtx++; - LastCtx->next = SaveCtx; - SaveCtx->previous = LastCtx; - LastCtx = SaveCtx; - } - return 0; -} - -/* - * Save an temporary exception context in a global variable - */ - - int -PushSavedExceptCtx (Objects_Id Id, CPU_Exception_frame * ctx) -{ - memcpy (&(SavedContext), ctx, sizeof (CPU_Exception_frame)); - return 0; -} - -/* - * Remove the context of the specified Id thread. - * If Id = -1, then return the first context - */ - - int -PopExceptCtx (Objects_Id Id) -{ - - Exception_context *ExtractCtx; - - if (FirstCtx == NULL) - return -1; - - if (Id == -1) { - ExtractCtx = LastCtx; - LastCtx = LastCtx->previous; - free (ExtractCtx); - NbExceptCtx--; - return 0; - } - - ExtractCtx = LastCtx; - - while (ExtractCtx->id != Id && ExtractCtx != NULL) { - ExtractCtx = ExtractCtx->previous; - } - - if (ExtractCtx == NULL) - return -1; - - if (ExtractCtx->previous != NULL) - (ExtractCtx->previous)->next = ExtractCtx->next; - - if (ExtractCtx->next != NULL) - (ExtractCtx->next)->previous = ExtractCtx->previous; - - if (ExtractCtx == FirstCtx) - FirstCtx = FirstCtx->next; - else if (ExtractCtx == LastCtx) - LastCtx = LastCtx->previous; - - free (ExtractCtx); - NbExceptCtx--; - return 0; -} - -/* - * Return the context of the specified Id thread. - * If Id = -1, then return the first context. - */ - - Exception_context * -GetExceptCtx (Objects_Id Id) -{ - - Exception_context *ExtractCtx; - - if (FirstCtx == NULL) - return NULL; - - if (Id == -1) { - return LastCtx; - } - - ExtractCtx = LastCtx; - - while (ExtractCtx->id != Id && ExtractCtx != NULL) { - ExtractCtx = ExtractCtx->previous; - } - - if (ExtractCtx == NULL) - return NULL; - - return ExtractCtx; -} |