1 
2 #include <stdlib.h>
3 #include "aos_jquick_mutex.h"
4 #include "aos/kernel.h"
5 #include "ulog/ulog.h"
6 
7 #define MOD_STR "JQUICK_MUTEX"
8 
jquick_mutex_create()9 JQuick_Mutex jquick_mutex_create()
10 {
11     aos_mutex_t mutex;
12     if (0 != aos_mutex_new(&mutex)) {
13         return NULL;
14     }
15 
16     return (JQuick_Mutex)mutex;
17 }
18 
jquick_mutex_lock(JQuick_Mutex mutex)19 int jquick_mutex_lock(JQuick_Mutex mutex)
20 {
21     if (!mutex) {
22         LOGE(MOD_STR, "JQuick_Mutex: Mutex is NULL\n");
23         return -1;
24     }
25 
26     return aos_mutex_lock((aos_mutex_t *)&mutex, AOS_WAIT_FOREVER);
27 }
28 
jquick_mutex_unlock(JQuick_Mutex mutex)29 int jquick_mutex_unlock(JQuick_Mutex mutex)
30 {
31     if (!mutex) {
32         LOGE(MOD_STR, "JQuick_Mutex: Mutex is NULL\n");
33         return -1;
34     }
35 
36     return aos_mutex_unlock((aos_mutex_t *)&mutex);
37 }
38 
jquick_mutex_destroy(JQuick_Mutex mutex)39 int jquick_mutex_destroy(JQuick_Mutex mutex)
40 {
41     if (!mutex) {
42         LOGE(MOD_STR, "JQuick_Mutex: Mutex is NULL\n");
43         return -1;
44     }
45 
46     aos_mutex_free((aos_mutex_t *)&mutex);
47 
48     return 0;
49 }
50