/*
 * windows.h
 *
 *  Created on: Sep 17, 2012
 *      Author: maiello
 */

#ifndef WINDOWS_H_
#define WINDOWS_H_

#define TRUE 1
#define FALSE 0

#include <string.h>
#include <stdlib.h>
#include <pthread.h>
#include <semaphore.h>


typedef pthread_t HANDLE;
typedef void * LPSECURITY_ATTRIBUTES;
typedef void * LPCTSTR;

typedef bool BOOL;

typedef unsigned int DWORD;

typedef unsigned int SIZE_T;

typedef void * LPTHREAD_START_ROUTINE;
typedef void * LPVOID;

typedef unsigned int * LPDWORD;

#define CREATE_SUSPENDED 1

#define WINAPI

HANDLE CreateEvent(
  LPSECURITY_ATTRIBUTES lpEventAttributes,
  BOOL bManualReset,
  BOOL bInitialState,
  LPCTSTR lpName
);



HANDLE CreateThread(
  LPSECURITY_ATTRIBUTES lpThreadAttributes,     // SD
  SIZE_T dwStackSize,                           // initial stack size
  LPTHREAD_START_ROUTINE lpStartAddress,        // thread function
  LPVOID lpParameter,                           // thread argument
  DWORD dwCreationFlags,                        // creation option
  LPDWORD lpThreadId                            // thread identifier
);


DWORD ResumeThread(
  HANDLE hThread
);


BOOL GetExitCodeThread(
  HANDLE hThread,
  LPDWORD lpExitCode
);


DWORD WaitForSingleObject(
  HANDLE hHandle,
  DWORD dwMilliseconds
);



#endif /* WINDOWS_H_ */
