diff options
Diffstat (limited to '')
-rw-r--r-- | c/src/librdbg/src/excep.c | 98 |
1 files changed, 54 insertions, 44 deletions
diff --git a/c/src/librdbg/src/excep.c b/c/src/librdbg/src/excep.c index d3183e24e2..c8ce6d7415 100644 --- a/c/src/librdbg/src/excep.c +++ b/c/src/librdbg/src/excep.c @@ -24,30 +24,32 @@ Exception_context *LastCtx = NULL; CPU_Exception_frame SavedContext; +/* + * Save an exception context at the end of a list + */ -/********* Save an exception context at the end of a list *****/ - -int PushExceptCtx ( Objects_Id Id, Objects_Id semId, CPU_Exception_frame *ctx ) { + int +PushExceptCtx (Objects_Id Id, Objects_Id semId, CPU_Exception_frame * ctx) +{ Exception_context *SaveCtx; - SaveCtx = (Exception_context *)malloc(sizeof(Exception_context)); + SaveCtx = (Exception_context *) malloc (sizeof (Exception_context)); if (SaveCtx == NULL) - rtems_panic("Can't allocate memory to save Exception context"); - + 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 */ + + if (FirstCtx == NULL) { /* initialization */ FirstCtx = SaveCtx; - LastCtx = SaveCtx; + LastCtx = SaveCtx; NbExceptCtx = 1; - } - else { - NbExceptCtx ++; + } else { + NbExceptCtx++; LastCtx->next = SaveCtx; SaveCtx->previous = LastCtx; LastCtx = SaveCtx; @@ -55,36 +57,41 @@ int PushExceptCtx ( Objects_Id Id, Objects_Id semId, CPU_Exception_frame *ctx ) return 0; } -/********* Save an temporary exception context in a ******/ -/********* global variable ******/ - -int PushSavedExceptCtx ( Objects_Id Id, CPU_Exception_frame *ctx ) { +/* + * Save an temporary exception context in a global variable + */ - memcpy (&(SavedContext), ctx, sizeof(CPU_Exception_frame)); + 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 + */ -/****** Remove the context of the specified Id thread *********/ -/****** If Id = -1, then return the first context *********/ + int +PopExceptCtx (Objects_Id Id) +{ + Exception_context *ExtractCtx; -int PopExceptCtx ( Objects_Id Id ) { + if (FirstCtx == NULL) + return -1; - Exception_context *ExtractCtx; - - if (FirstCtx == NULL) return -1; - - if (Id == -1) { + if (Id == -1) { ExtractCtx = LastCtx; LastCtx = LastCtx->previous; - free(ExtractCtx); - NbExceptCtx --; + free (ExtractCtx); + NbExceptCtx--; return 0; } - + ExtractCtx = LastCtx; - + while (ExtractCtx->id != Id && ExtractCtx != NULL) { ExtractCtx = ExtractCtx->previous; } @@ -92,37 +99,40 @@ int PopExceptCtx ( Objects_Id Id ) { if (ExtractCtx == NULL) return -1; - if ( ExtractCtx->previous != NULL) + if (ExtractCtx->previous != NULL) (ExtractCtx->previous)->next = ExtractCtx->next; - if ( ExtractCtx->next != NULL) + if (ExtractCtx->next != NULL) (ExtractCtx->next)->previous = ExtractCtx->previous; if (ExtractCtx == FirstCtx) FirstCtx = FirstCtx->next; - else - if (ExtractCtx == LastCtx) + else if (ExtractCtx == LastCtx) LastCtx = LastCtx->previous; - - free(ExtractCtx); - NbExceptCtx --; + + free (ExtractCtx); + NbExceptCtx--; return 0; } - -/****** Return the context of the specified Id thread *********/ -/****** If Id = -1, then return the first context *********/ +/* + * Return the context of the specified Id thread. + * If Id = -1, then return the first context. + */ -Exception_context *GetExceptCtx ( Objects_Id Id ) { + Exception_context * +GetExceptCtx (Objects_Id Id) +{ Exception_context *ExtractCtx; - if (FirstCtx == NULL) return NULL; - - if (Id == -1) { + if (FirstCtx == NULL) + return NULL; + + if (Id == -1) { return LastCtx; } - + ExtractCtx = LastCtx; while (ExtractCtx->id != Id && ExtractCtx != NULL) { |