pcsc-lite 1.5.5
|
00001 /* 00002 * MUSCLE SmartCard Development ( http://www.linuxnet.com ) 00003 * 00004 * Copyright (C) 2000-2004 00005 * David Corcoran <corcoran@linuxnet.com> 00006 * Damien Sauveron <damien.sauveron@labri.fr> 00007 * Ludovic Rousseau <ludovic.rousseau@free.fr> 00008 * 00009 * $Id: thread_generic.h 3334 2009-03-02 14:56:38Z rousseau $ 00010 */ 00011 00017 #ifndef __thread_generic_h__ 00018 #define __thread_generic_h__ 00019 00020 #include <pthread.h> 00021 #include <wintypes.h> 00022 00023 #ifdef __cplusplus 00024 extern "C" 00025 { 00026 #endif 00027 00028 #define PCSCLITE_THREAD_T pthread_t 00029 #define PCSCLITE_MUTEX pthread_mutex_t 00030 #define PCSCLITE_MUTEX_T pthread_mutex_t* 00031 #define PCSCLITE_THREAD_FUNCTION(f) void *(*f)(void *) 00032 00033 /* thread attributes */ 00034 #define THREAD_ATTR_DEFAULT 0 00035 #define THREAD_ATTR_DETACHED 1 00036 00037 int SYS_MutexInit(PCSCLITE_MUTEX_T); 00038 int SYS_MutexDestroy(PCSCLITE_MUTEX_T); 00039 int SYS_MutexLock(PCSCLITE_MUTEX_T); 00040 int SYS_MutexTryLock(PCSCLITE_MUTEX_T); 00041 int SYS_MutexUnLock(PCSCLITE_MUTEX_T); 00042 int SYS_ThreadCreate(PCSCLITE_THREAD_T *, int, PCSCLITE_THREAD_FUNCTION( ), 00043 /*@null@*/ LPVOID); 00044 int SYS_ThreadCancel(PCSCLITE_THREAD_T); 00045 int SYS_ThreadDetach(PCSCLITE_THREAD_T); 00046 int SYS_ThreadJoin(PCSCLITE_THREAD_T, /*@null@*/ LPVOID*); 00047 int SYS_ThreadExit(/*@null@*/ LPVOID); 00048 PCSCLITE_THREAD_T SYS_ThreadSelf(void); 00049 int SYS_ThreadEqual(PCSCLITE_THREAD_T *, PCSCLITE_THREAD_T *); 00050 int SYS_ThreadSetCancelType(int, int *); 00051 00052 #ifdef __cplusplus 00053 } 00054 #endif 00055 00056 #endif /* __thread_generic_h__ */