/****************************************************************************** * * Copyright (C) 2009-2012 Broadcom Corporation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at: * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * ******************************************************************************/ /******************************************************************************* * * Filename: btif_sock_util.h * * Description: Bluetooth socket Interface Helper functions * *******************************************************************************/ #ifndef BTIF_SOCK_UTIL_H #define BTIF_SOCK_UTIL_H #include #include /******************************************************************************* ** Functions ********************************************************************************/ static inline void init_slot_lock( pthread_mutex_t* mutex) { pthread_mutexattr_t attr; pthread_mutexattr_init(&attr); pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE_NP); pthread_mutex_init(mutex, &attr); } static inline void lock_slot(pthread_mutex_t* mutex) { if(mutex->value) pthread_mutex_lock(mutex); else ALOGE("mutex: %p is not initialized", mutex); } static inline void unlock_slot(pthread_mutex_t* mutex) { if(mutex->value) pthread_mutex_unlock(mutex); else ALOGE("mutex: %p is not initialized", mutex); } void dump_bin(const char* title, const char* data, int size); int sock_send_fd(int sock_fd, const uint8_t* buffer, int len, int send_fd); int sock_send_all(int sock_fd, const uint8_t* buf, int len); int sock_recv_all(int sock_fd, uint8_t* buf, int len); #endif