# HG changeset patch # User Michael Spacefalcon # Date 1403491011 0 # Node ID 03b6377d61db822569f96d3e87f84223bccfede0 # Parent fd1729fd979e81b5ebf381e735babd614c3c7c7e OSL: os_sem_fl.c done diff -r fd1729fd979e -r 03b6377d61db gsm-fw/gpf/osl/os_sem_fl.c --- a/gsm-fw/gpf/osl/os_sem_fl.c Mon Jun 23 02:13:02 2014 +0000 +++ b/gsm-fw/gpf/osl/os_sem_fl.c Mon Jun 23 02:36:51 2014 +0000 @@ -170,3 +170,37 @@ NU_Release_Semaphore(&SemSemCB); return(OS_OK); } + +GLOBAL LONG +os_CreateSemaphore(OS_HANDLE TaskHandle, char *Name, USHORT Count, + OS_HANDLE *SemHandle, OS_HANDLE MemPoolHandle) +{ + USHORT i; + STATUS sts; + + if (os_OpenSemaphore(TaskHandle, Name, SemHandle) == OS_OK) + return(OS_ERROR); + sts = NU_Obtain_Semaphore(&SemSemCB, NU_SUSPEND); + for (i = 1; i <= MaxSemaphores; i++) { + if (SemTable[i].Name[0]) + continue; + if (NU_Create_Semaphore(&SemTable[i].SemCB, Name, Count, + NU_PRIORITY) != NU_SUCCESS) + break; + strncpy(SemTable[i].Name, Name, RESOURCE_NAMELEN); + SemTable[i].Name[RESOURCE_NAMELEN-1] = 0; + *SemHandle = i; + if (sts == NU_SUCCESS) + NU_Release_Semaphore(&SemSemCB); + return(OS_OK); + } + if (sts == NU_SUCCESS) + NU_Release_Semaphore(&SemSemCB); + return(OS_ERROR); +} + +GLOBAL LONG +os_CloseSemaphore(OS_HANDLE TaskHandle, OS_HANDLE SemHandle) +{ + return(OS_OK); +}