/* DMW_Mutex.h cafrii 040303 v1.0 */ #ifndef __DMW_MUTEX_H__ #define __DMW_MUTEX_H__ #include "DHL_OSAL.h" #include "DMW_Status.h" /* added for epg porting : 2009.08.10 foxhunt */ /* VxWorksÀÇ Mutex SemaphoreÀÇ ºÎÀÛ¿ëÀ» ÇØ¼ÒÇϱâ À§Çؼ­ // Binary semaphore¸¦ ÀÌ¿ëÇÏ¿© Mutex¸¦ Èä³»³»´Â ±â´É Á¦°ø. // */ #define MAX_MUTEX_NAME 16 typedef struct DMW_MUTEX_t { DHL_OS_SEMA_ID semId; /* vxWorks OS Semaphore ID. */ DHL_OS_TASK_ID ownerTaskId; /* ÇöÀç ÀÌ Mutex¸¦ lockÇϰí ÀÖ´Â taskÀÇ ID */ int lockCount; /* Mutex lock count. 0À̸é free mutex. */ int initFailCount; /* Mutex »ý¼º ½ÇÆÐ Ƚ¼ö */ BOOL useOsMutex; /* TRUEÀ̸é OS Mutex¸¦ »ç¿ëÇÔ. µðÆúÆ®(FALSE)´Â Binary Sema4¸¦ ÀÌ¿ëÇÑ´Ù. */ /* properties of Mutex */ char name[MAX_MUTEX_NAME]; int flag; /* OS_CreateXXSemaphore flag. OS_SEM_FIFO or OS_SEM_PRIO */ /* µðÆúÆ®(0)Àº OS_SEM_FIFO ÀÓ. */ int traceLevel; /* debug trace level */ /* 0À̸é no trace */ /* UINT32 checkCode; */ } DMW_MUTEX; /* debug util */ extern void DMW_PrintMutex(DMW_MUTEX *pMutex); extern void DMW_SetMutexTraceLevel(DMW_MUTEX *pMutex, int traceLevel); extern DHL_OS_TASK_ID DMW_GetOwnerTaskId(DMW_MUTEX *pMutex); extern STATUS DMW_InitMutex(DMW_MUTEX *pMutex, char *name); extern STATUS DMW_LockMutex(DMW_MUTEX *pMutex); extern STATUS DMW_LockMutexWait(DMW_MUTEX *pMutex, int timeout); extern void DMW_UnlockMutex(DMW_MUTEX *pMutex); extern void DMW_DeleteMutex(DMW_MUTEX *pMutex); extern void DMW_RegisterMutexSymbols(void); #endif /* __DMW_MUTEX_H__ */ /************************************************************************* Revision history: 1.1 2005/03/22 DMW_DeleteMutex add 1.0 2005/03/00 version control start **********************************************************************/