#ifndef IL_SEMAPHORE_H
#define IL_SEMAPHORE_H


#include "iLTypes.h"


static inline iLResult iLMutex_Create(iLMutex* a_mutex);
static inline iLResult iLMutex_Lock(iLMutex* a_mutex);
static inline iLResult iLMutex_Unlock(iLMutex* a_mutex);

static inline iLResult iLSemaphore_Create(iLSemaphore* a_sem, uint32_t a_initCount, uint32_t a_maxCount);
static inline iLResult iLSemaphore_Wait(iLSemaphore* a_sem);
static inline iLResult iLSemaphore_Signal(iLSemaphore* a_sem, uint32_t a_count);


#include "iLSemaphore.inl"


#endif // IL_SEMAPHORE_H

