49 lines
759 B
C

#include <ucos_ii.h>
#include "sem.h"
#define NULL (void*)0
sem_t *g_sem;
void *smart_sem_create(int cnt)
{
sem_t *ptr = NULL;
ptr = OSSemCreate(cnt);
return ptr;
}
void smart_sem_pend(void *sem)
{
sem_t *lsem = (sem_t*)sem;
unsigned char sem_err;
OSSemPend(lsem,0,&sem_err);
}
int smart_sem_post(void *sem)
{
int ret;
sem_t *lsem = (sem_t*)sem;
ret = OSSemPost(lsem);
return ret;
}
int smart_sem_del(void *sem)
{
int ret = 0;
void* ptr_ret;
sem_t *lsem = (sem_t*)sem;
unsigned char sem_err;
ptr_ret = OSSemDel (lsem,0, &sem_err);
if(ptr_ret == NULL)
{
return 0;
}
else
{
return -1;
}
return ret;
}