# HG changeset patch # User Michael Spacefalcon # Date 1403488531 0 # Node ID b55882290007839bdf55ba4db382def76b17878b # Parent 57f8e2b747c4307ded7aa947fc28b2ea58ddbc74 os_sem_fl.c: os_FindSuspendingSema() done diff -r 57f8e2b747c4 -r b55882290007 gsm-fw/gpf/osl/os_sem_fl.c --- a/gsm-fw/gpf/osl/os_sem_fl.c Mon Jun 23 01:31:11 2014 +0000 +++ b/gsm-fw/gpf/osl/os_sem_fl.c Mon Jun 23 01:55:31 2014 +0000 @@ -128,3 +128,26 @@ } return(OS_ERROR); } + +GLOBAL unsigned char * +os_FindSuspendingSema(unsigned int *tcb) +{ + USHORT i; + SM_SUSPEND *susp, *susp_loopchk; + + for (i = 1; i <= MaxSemaphores; i++) { + if (!SemTable[i].Name[0]) + continue; + susp = SemTable[i].SemCB.sm_suspension_list; + if (!susp) + continue; + if (susp->sm_suspended_task == (NU_TASK *)tcb) + return(SemTable[i].SemCB.sm_name); + susp = (SM_SUSPEND *)susp->sm_suspend_link.cs_next; + for (susp_loopchk = susp; susp != susp_loopchk; + susp = (SM_SUSPEND *)susp->sm_suspend_link.cs_next) + if (susp->sm_suspended_task == (NU_TASK *)tcb) + return(SemTable[i].SemCB.sm_name); + } + return(0); +}