#ifndef IL_TYPES_H
#define IL_TYPES_H
#include <stdint.h>
#include "iLPlatform.h"
#if defined(IL_PLATFORM_UNIX)
#include <pthread.h>
#include <semaphore.h>
typedef FILE* iLFile;
typedef pthread_t iLThread;
typedef int32_t iLAtomic32;
typedef int64_t iLAtomic64;
# if 0
typedef pthread_mutex_t iLMutex;
typedef sem_t iLSemaphore;
# else // My Mutex and Semaphores
# include "iLSemaphore.def"
# endif
#elif defined(IL_PLATFORM_WINDOWS)
#include <windows.h>
typedef HANDLE iLFile;
typedef HANDLE iLThread;
typedef volatile int32_t iLAtomic32;
typedef volatile int64_t iLAtomic64;
typedef HANDLE iLMutex;
typedef HANDLE iLSemaphore;
#else
# error "Unsupported platform"
#endif
enum iLResult
{
iLR_OK,
iLR_UnspecifiedFailure
};
typedef iLResult (*iLThreadProc)(void);
#endif // IL_TYPES_H