#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;
}

