![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
Quick and dirty CoOS + LWIP ( Webserver )
Diff: CoOS/kernel/OsMutex.h
- Revision:
- 0:94897d537b31
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/CoOS/kernel/OsMutex.h Sat Sep 10 22:41:10 2011 +0000 @@ -0,0 +1,57 @@ +/** + ******************************************************************************* + * @file OsMutex.h + * @version V1.1.4 + * @date 2011.04.20 + * @brief Mutex management header file + * @details This file including some defines and declare related to mutex + * management. + ******************************************************************************* + * @copy + * + * INTERNAL FILE,DON'T PUBLIC. + * + * <h2><center>© COPYRIGHT 2009 CooCox </center></h2> + ******************************************************************************* + */ + + +#ifndef _MUTEX_H +#define _MUTEX_H + +#include <coocox.h> + +#if CFG_MUTEX_EN > 0 + +/*---------------------------- Resource status -------------------------------*/ +#define MUTEX_FREE 0 /*!< Mutex is free */ +#define MUTEX_OCCUPY 1 /*!< Mutex is occupy */ +#define WAITING_MUTEX 0x80 + +/** + * @struct Mutex mutex.h + * @brief Mutex control block + * @details This struct is use to mutex management. + */ +typedef struct Mutex +{ + U8 originalPrio; /*!< Mutex priority. */ + U8 mutexFlag; /*!< Mutex flag. */ + OS_TID taskID; /*!< Task ID. */ + OS_TID hipriTaskID; /*!< Mutex ID. */ + P_OSTCB waittingList; /*!< waitting the Mutex. */ +}MUTEX,*P_MUTEX; + + +/*---------------------------- Variable declare ------------------------------*/ +/*!< Table use to save mutex control block. */ +extern MUTEX MutexTbl[CFG_MAX_MUTEX]; +extern OS_MutexID MutexFreeID; /*!< A pointer to next vliad resource ID. */ + + +/*---------------------------- Function declare ------------------------------*/ +extern void RemoveMutexList(P_OSTCB ptcb); + +#endif /* CFG_MUTEX_EN */ + +#endif /* _MUTEX_H */