UINT32 LOS_MuxTrylock(LosMux *mutex)
Try wait to lock a mutex.
UINT32 LOS_MuxInit(LosMux *mutex, const LosMuxAttr *attr)
Init a mutex.
UINT32 LOS_MuxUnlock(LosMux *mutex)
Release a mutex.
UINT32 LOS_MuxDestroy(LosMux *mutex)
Destroy a mutex.
UINT32 LOS_MuxLock(LosMux *mutex, UINT32 timeout)
Wait to lock a mutex.
UINT32 LOS_MuxSetPrioceiling(LosMux *mutex, INT32 prioceiling, INT32 *oldPrioceiling)
设置互斥锁的优先级的上限,老优先级由oldPrioceiling带走
UINT32 LOS_MuxAttrGetProtocol(const LosMuxAttr *attr, INT32 *protocol)
获取互斥锁的类型属性
UINT32 LOS_MuxAttrGetPrioceiling(const LosMuxAttr *attr, INT32 *prioceiling)
获取互斥锁属性优先级
BOOL LOS_MuxIsValid(const LosMux *mutex)
互斥锁是否有效
UINT32 LOS_MuxAttrDestroy(LosMuxAttr *attr)
????? 销毁互斥属 ,这里啥也没干呀
UINT32 LOS_MuxGetPrioceiling(const LosMux *mutex, INT32 *prioceiling)
获取互斥锁的优先级的上限
@ LOS_MUX_ERRORCHECK
进行错误检查,如果一个线程企图对一个已经锁住的mutex进行relock或对未加锁的unlock,将返回一个错误。
@ LOS_MUX_RECURSIVE
递归锁 允许同一线程在互斥量解锁前对该互斥量进行多次加锁。递归互斥量维护锁的计数,在解锁次数和加锁次数不相同的情况下,不会释放锁,别的线程就无法加锁此互斥量。
@ LOS_MUX_NORMAL
非递归锁 只有[0.1]两个状态,不做任何特殊的错误检,不进行deadlock detection(死锁检测)
UINT32 LOS_MuxAttrGetType(const LosMuxAttr *attr, INT32 *outType)
获取互斥锁的类型属性,由outType接走,不送!
UINT32 LOS_MuxAttrInit(LosMuxAttr *attr)
互斥属性初始化
UINT32 LOS_MuxAttrSetProtocol(LosMuxAttr *attr, INT32 protocol)
设置互斥锁属性的协议
@ LOS_MUX_PRIO_PROTECT
详见: OsMuxPendOp 中的注解,详细说明了LOS_MUX_PRIO_PROTECT的含义
@ LOS_MUX_PRIO_NONE
线程的优先级和调度不会受到互斥锁影响,先来后到,普通排队.
UINT32 LOS_MuxAttrSetPrioceiling(LosMuxAttr *attr, INT32 prioceiling)
设置互斥锁属性的优先级的上限
UINT32 LOS_MuxAttrSetType(LosMuxAttr *attr, INT32 type)
设置互斥锁的类型属性