1b4c4f2016ae47fdd00e26b57d1766cf180d6f51aMike Lockwood/* 2b4c4f2016ae47fdd00e26b57d1766cf180d6f51aMike LockwoodCopyright (c) 2009, QUALCOMM USA, INC. 3b4c4f2016ae47fdd00e26b57d1766cf180d6f51aMike Lockwood 4b4c4f2016ae47fdd00e26b57d1766cf180d6f51aMike LockwoodAll rights reserved. 5b4c4f2016ae47fdd00e26b57d1766cf180d6f51aMike Lockwood 6b4c4f2016ae47fdd00e26b57d1766cf180d6f51aMike LockwoodRedistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 7b4c4f2016ae47fdd00e26b57d1766cf180d6f51aMike Lockwood 8b4c4f2016ae47fdd00e26b57d1766cf180d6f51aMike Lockwood� Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 9b4c4f2016ae47fdd00e26b57d1766cf180d6f51aMike Lockwood 10b4c4f2016ae47fdd00e26b57d1766cf180d6f51aMike Lockwood� Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 11b4c4f2016ae47fdd00e26b57d1766cf180d6f51aMike Lockwood 12b4c4f2016ae47fdd00e26b57d1766cf180d6f51aMike Lockwood� Neither the name of the QUALCOMM USA, INC. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. 13b4c4f2016ae47fdd00e26b57d1766cf180d6f51aMike Lockwood 14b4c4f2016ae47fdd00e26b57d1766cf180d6f51aMike LockwoodTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 15b4c4f2016ae47fdd00e26b57d1766cf180d6f51aMike Lockwood*/ 16b4c4f2016ae47fdd00e26b57d1766cf180d6f51aMike Lockwood 17b4c4f2016ae47fdd00e26b57d1766cf180d6f51aMike Lockwood#ifndef DEBUG_H 18b4c4f2016ae47fdd00e26b57d1766cf180d6f51aMike Lockwood#define DEBUG_H 19b4c4f2016ae47fdd00e26b57d1766cf180d6f51aMike Lockwood 20b4c4f2016ae47fdd00e26b57d1766cf180d6f51aMike Lockwood#include <stdio.h> 21b4c4f2016ae47fdd00e26b57d1766cf180d6f51aMike Lockwood 22b4c4f2016ae47fdd00e26b57d1766cf180d6f51aMike Lockwood#define LOG_TAG "libgps-rpc" 23b4c4f2016ae47fdd00e26b57d1766cf180d6f51aMike Lockwood#include <utils/Log.h> 24b4c4f2016ae47fdd00e26b57d1766cf180d6f51aMike Lockwood 25b4c4f2016ae47fdd00e26b57d1766cf180d6f51aMike Lockwood#define PRINT(x...) do { \ 26b4c4f2016ae47fdd00e26b57d1766cf180d6f51aMike Lockwood fprintf(stdout, "%s(%d) ", __FUNCTION__, __LINE__); \ 27b4c4f2016ae47fdd00e26b57d1766cf180d6f51aMike Lockwood fprintf(stdout, ##x); \ 28f77c85bb51137f5ba854184e5e9194197027438aAjay Dudani LOGD(x); \ 29b4c4f2016ae47fdd00e26b57d1766cf180d6f51aMike Lockwood } while(0) 30b4c4f2016ae47fdd00e26b57d1766cf180d6f51aMike Lockwood 31b4c4f2016ae47fdd00e26b57d1766cf180d6f51aMike Lockwood#ifdef DEBUG 32b4c4f2016ae47fdd00e26b57d1766cf180d6f51aMike Lockwood#define D PRINT 33b4c4f2016ae47fdd00e26b57d1766cf180d6f51aMike Lockwood#else 34b4c4f2016ae47fdd00e26b57d1766cf180d6f51aMike Lockwood#define D(x...) do { } while(0) 35b4c4f2016ae47fdd00e26b57d1766cf180d6f51aMike Lockwood#endif 36b4c4f2016ae47fdd00e26b57d1766cf180d6f51aMike Lockwood 37b4c4f2016ae47fdd00e26b57d1766cf180d6f51aMike Lockwood#ifdef VERBOSE 38b4c4f2016ae47fdd00e26b57d1766cf180d6f51aMike Lockwood#define V PRINT 39b4c4f2016ae47fdd00e26b57d1766cf180d6f51aMike Lockwood#else 40b4c4f2016ae47fdd00e26b57d1766cf180d6f51aMike Lockwood#define V(x...) do { } while(0) 41b4c4f2016ae47fdd00e26b57d1766cf180d6f51aMike Lockwood#endif 42b4c4f2016ae47fdd00e26b57d1766cf180d6f51aMike Lockwood 43b4c4f2016ae47fdd00e26b57d1766cf180d6f51aMike Lockwood#define E(x...) do { \ 44b4c4f2016ae47fdd00e26b57d1766cf180d6f51aMike Lockwood fprintf(stderr, "%s(%d) ", __FUNCTION__, __LINE__); \ 45b4c4f2016ae47fdd00e26b57d1766cf180d6f51aMike Lockwood fprintf(stderr, ##x); \ 46f77c85bb51137f5ba854184e5e9194197027438aAjay Dudani LOGE(x); \ 47b4c4f2016ae47fdd00e26b57d1766cf180d6f51aMike Lockwood } while(0) 48b4c4f2016ae47fdd00e26b57d1766cf180d6f51aMike Lockwood 49b4c4f2016ae47fdd00e26b57d1766cf180d6f51aMike Lockwood#define FAILIF(cond, msg...) do { \ 50b4c4f2016ae47fdd00e26b57d1766cf180d6f51aMike Lockwood if (__builtin_expect (cond, 0)) { \ 51b4c4f2016ae47fdd00e26b57d1766cf180d6f51aMike Lockwood fprintf(stderr, "%s:%s:(%d): ", __FILE__, __FUNCTION__, __LINE__); \ 52b4c4f2016ae47fdd00e26b57d1766cf180d6f51aMike Lockwood fprintf(stderr, ##msg); \ 53f77c85bb51137f5ba854184e5e9194197027438aAjay Dudani LOGE(##msg); \ 54b4c4f2016ae47fdd00e26b57d1766cf180d6f51aMike Lockwood } \ 55b4c4f2016ae47fdd00e26b57d1766cf180d6f51aMike Lockwood } while(0) 56b4c4f2016ae47fdd00e26b57d1766cf180d6f51aMike Lockwood 57b4c4f2016ae47fdd00e26b57d1766cf180d6f51aMike Lockwood#endif/*DEBUG_H*/ 58