1*10465441SEvalZero /* 2*10465441SEvalZero * Copyright (c) 2006-2018, RT-Thread Development Team 3*10465441SEvalZero * 4*10465441SEvalZero * SPDX-License-Identifier: Apache-2.0 5*10465441SEvalZero * 6*10465441SEvalZero * Change Logs: 7*10465441SEvalZero * Date Author Notes 8*10465441SEvalZero * 2015-01-28 Bernard first version 9*10465441SEvalZero */ 10*10465441SEvalZero #include <rtthread.h> 11*10465441SEvalZero #include <yfuns.h> 12*10465441SEvalZero 13*10465441SEvalZero /* 14*10465441SEvalZero * for IAR compiler, we recommand to define _DLIB_THREAD_SUPPORT 15*10465441SEvalZero * as 2 for dlib multi-thread support. 16*10465441SEvalZero */ 17*10465441SEvalZero 18*10465441SEvalZero #if _DLIB_THREAD_SUPPORT 19*10465441SEvalZero typedef void* _Rmtx; _Mtxinit(_Rmtx * m)20*10465441SEvalZerovoid _Mtxinit(_Rmtx *m) 21*10465441SEvalZero { 22*10465441SEvalZero rt_mutex_t mutex; 23*10465441SEvalZero 24*10465441SEvalZero RT_ASSERT(m != RT_NULL); 25*10465441SEvalZero 26*10465441SEvalZero mutex = (rt_mutex_t)m; 27*10465441SEvalZero rt_mutex_init(mutex, "iarMtx", RT_IPC_FLAG_FIFO); 28*10465441SEvalZero } 29*10465441SEvalZero _Mtxdst(_Rmtx * m)30*10465441SEvalZerovoid _Mtxdst(_Rmtx *m) 31*10465441SEvalZero { 32*10465441SEvalZero rt_mutex_t mutex; 33*10465441SEvalZero 34*10465441SEvalZero RT_ASSERT(m != RT_NULL); 35*10465441SEvalZero 36*10465441SEvalZero mutex = (rt_mutex_t)m; 37*10465441SEvalZero rt_mutex_detach(mutex); 38*10465441SEvalZero } 39*10465441SEvalZero _Mtxlock(_Rmtx * m)40*10465441SEvalZerovoid _Mtxlock(_Rmtx *m) 41*10465441SEvalZero { 42*10465441SEvalZero rt_mutex_t mutex; 43*10465441SEvalZero 44*10465441SEvalZero RT_ASSERT(m != RT_NULL); 45*10465441SEvalZero 46*10465441SEvalZero mutex = (rt_mutex_t)m; 47*10465441SEvalZero rt_mutex_take(mutex, RT_WAITING_FOREVER); 48*10465441SEvalZero } 49*10465441SEvalZero _Mtxunlock(_Rmtx * m)50*10465441SEvalZerovoid _Mtxunlock(_Rmtx *m) 51*10465441SEvalZero { 52*10465441SEvalZero rt_mutex_t mutex; 53*10465441SEvalZero 54*10465441SEvalZero RT_ASSERT(m != RT_NULL); 55*10465441SEvalZero 56*10465441SEvalZero mutex = (rt_mutex_t)m; 57*10465441SEvalZero rt_mutex_release(mutex); 58*10465441SEvalZero } 59*10465441SEvalZero #endif 60*10465441SEvalZero 61