Home | History | Annotate | Download | only in src
      1 /******************************************************************************
      2  *
      3  *  Copyright (C) 2015 Google, Inc.
      4  *
      5  *  Licensed under the Apache License, Version 2.0 (the "License");
      6  *  you may not use this file except in compliance with the License.
      7  *  You may obtain a copy of the License at:
      8  *
      9  *  http://www.apache.org/licenses/LICENSE-2.0
     10  *
     11  *  Unless required by applicable law or agreed to in writing, software
     12  *  distributed under the License is distributed on an "AS IS" BASIS,
     13  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     14  *  See the License for the specific language governing permissions and
     15  *  limitations under the License.
     16  *
     17  ******************************************************************************/
     18 
     19 #define LOG_TAG "bt_osi_mutex"
     20 
     21 #include <pthread.h>
     22 
     23 #include "osi/include/mutex.h"
     24 
     25 static pthread_mutex_t global_lock;
     26 
     27 void mutex_init(void) {
     28   pthread_mutexattr_t attr;
     29   pthread_mutexattr_init(&attr);
     30   pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE_NP);
     31   pthread_mutex_init(&global_lock, &attr);
     32 }
     33 
     34 void mutex_cleanup(void) {
     35   pthread_mutex_destroy(&global_lock);
     36 }
     37 
     38 void mutex_global_lock(void) {
     39   pthread_mutex_lock(&global_lock);
     40 }
     41 
     42 void mutex_global_unlock(void) {
     43   pthread_mutex_unlock(&global_lock);
     44 }
     45