#include "DxStd.h" #include void InitializeCriticalSection( CRITICAL_SECTION * cri ) { *cri = ( CRITICAL_SECTION )malloc( sizeof( pthread_mutex_t ) ); if ( *cri ) { pthread_mutex_init( ( pthread_mutex_t * )( *cri ), 0 ); } return; } void DeleteCriticalSection( CRITICAL_SECTION * cri ) { if ( NULL == *cri ) { return; } pthread_mutex_destroy( ( pthread_mutex_t * )( *cri ) ); free( *cri ); *cri = NULL; return; } void EnterCriticalSection( CRITICAL_SECTION * cri ) { if ( NULL == *cri ) { return; } pthread_mutex_lock( ( pthread_mutex_t * )( *cri ) ); return; } void LeaveCriticalSection( CRITICAL_SECTION * cri ) { if ( NULL == *cri ) { return; } pthread_mutex_unlock( ( pthread_mutex_t * )( *cri ) ); return; } HANDLE CreateThread( void *, void *, dx_thread_proc proc, void * params, void *, DWORD * ret ) { pthread_t thread = 0; pthread_create( &thread, 0, proc, params ); return thread; } void WaitForSingleObject( HANDLE thread, int tm ) { pthread_join( thread, NULL ); return; } void Sleep( unsigned int ms ) { usleep( ms * 1000 ); } unsigned int GetTickCount() { unsigned int tm = 0; struct timeval tv = {0}; gettimeofday( &tv, 0 ); tm = tv.tv_sec * 1000 + tv.tv_usec / 1000; return tm; } int memicmp( const char * src, const char * dst, unsigned int len ) { unsigned int index = 0; if ( NULL == src || NULL == dst || 0 == len ) { return -1; } while ( index < len ) { if ( ( src[index] & 0xDF ) != ( dst[index] & 0xDF ) ) { return -1; } index++; } return 0; }