1*ba62d9d3SAndroid Build Coastguard Worker /*
2*ba62d9d3SAndroid Build Coastguard Worker * Copyright (c) 2017, Intel Corporation
3*ba62d9d3SAndroid Build Coastguard Worker *
4*ba62d9d3SAndroid Build Coastguard Worker * Permission is hereby granted, free of charge, to any person obtaining a
5*ba62d9d3SAndroid Build Coastguard Worker * copy of this software and associated documentation files (the "Software"),
6*ba62d9d3SAndroid Build Coastguard Worker * to deal in the Software without restriction, including without limitation
7*ba62d9d3SAndroid Build Coastguard Worker * the rights to use, copy, modify, merge, publish, distribute, sublicense,
8*ba62d9d3SAndroid Build Coastguard Worker * and/or sell copies of the Software, and to permit persons to whom the
9*ba62d9d3SAndroid Build Coastguard Worker * Software is furnished to do so, subject to the following conditions:
10*ba62d9d3SAndroid Build Coastguard Worker *
11*ba62d9d3SAndroid Build Coastguard Worker * The above copyright notice and this permission notice shall be included
12*ba62d9d3SAndroid Build Coastguard Worker * in all copies or substantial portions of the Software.
13*ba62d9d3SAndroid Build Coastguard Worker *
14*ba62d9d3SAndroid Build Coastguard Worker * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
15*ba62d9d3SAndroid Build Coastguard Worker * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16*ba62d9d3SAndroid Build Coastguard Worker * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
17*ba62d9d3SAndroid Build Coastguard Worker * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
18*ba62d9d3SAndroid Build Coastguard Worker * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
19*ba62d9d3SAndroid Build Coastguard Worker * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
20*ba62d9d3SAndroid Build Coastguard Worker * OTHER DEALINGS IN THE SOFTWARE.
21*ba62d9d3SAndroid Build Coastguard Worker */
22*ba62d9d3SAndroid Build Coastguard Worker #ifndef CMRTLIB_AGNOSTIC_SHARE_CMDEBUG_H_
23*ba62d9d3SAndroid Build Coastguard Worker #define CMRTLIB_AGNOSTIC_SHARE_CMDEBUG_H_
24*ba62d9d3SAndroid Build Coastguard Worker
25*ba62d9d3SAndroid Build Coastguard Worker #include <cstdio>
26*ba62d9d3SAndroid Build Coastguard Worker #include "cm_def_os.h"
27*ba62d9d3SAndroid Build Coastguard Worker
CmPrintMessage(const char * str,...)28*ba62d9d3SAndroid Build Coastguard Worker inline void CmPrintMessage( const char *str, ... )
29*ba62d9d3SAndroid Build Coastguard Worker {
30*ba62d9d3SAndroid Build Coastguard Worker #ifdef _DEBUG
31*ba62d9d3SAndroid Build Coastguard Worker //iSTD::PrintMessage( str );
32*ba62d9d3SAndroid Build Coastguard Worker #endif
33*ba62d9d3SAndroid Build Coastguard Worker }
34*ba62d9d3SAndroid Build Coastguard Worker
CmAssertMessage(const char * message)35*ba62d9d3SAndroid Build Coastguard Worker inline void CmAssertMessage(const char *message) {
36*ba62d9d3SAndroid Build Coastguard Worker printf("%s\n", message);
37*ba62d9d3SAndroid Build Coastguard Worker CmAssert(0);
38*ba62d9d3SAndroid Build Coastguard Worker return;
39*ba62d9d3SAndroid Build Coastguard Worker }
40*ba62d9d3SAndroid Build Coastguard Worker
41*ba62d9d3SAndroid Build Coastguard Worker #ifdef _DEBUG
42*ba62d9d3SAndroid Build Coastguard Worker #define CmDebugMessage(arg) CmPrintMessage arg
43*ba62d9d3SAndroid Build Coastguard Worker #else
44*ba62d9d3SAndroid Build Coastguard Worker #define CmDebugMessage(arg)
45*ba62d9d3SAndroid Build Coastguard Worker #endif // _DEBUG
46*ba62d9d3SAndroid Build Coastguard Worker
47*ba62d9d3SAndroid Build Coastguard Worker #define CmReleaseMessage(arg) CmPrintMessage arg
48*ba62d9d3SAndroid Build Coastguard Worker
49*ba62d9d3SAndroid Build Coastguard Worker //*-----------------------------------------------------------------------------
50*ba62d9d3SAndroid Build Coastguard Worker //| Macro checks the COM Results
51*ba62d9d3SAndroid Build Coastguard Worker //*-----------------------------------------------------------------------------
52*ba62d9d3SAndroid Build Coastguard Worker #ifndef CHK_RET
53*ba62d9d3SAndroid Build Coastguard Worker #define CHK_RET(stmt) \
54*ba62d9d3SAndroid Build Coastguard Worker { \
55*ba62d9d3SAndroid Build Coastguard Worker result = (stmt); \
56*ba62d9d3SAndroid Build Coastguard Worker if (result != CM_SUCCESS) \
57*ba62d9d3SAndroid Build Coastguard Worker { \
58*ba62d9d3SAndroid Build Coastguard Worker CmPrintMessage("%s: hr check failed\n", __FUNCTION__); \
59*ba62d9d3SAndroid Build Coastguard Worker CmAssert(0); \
60*ba62d9d3SAndroid Build Coastguard Worker goto finish; \
61*ba62d9d3SAndroid Build Coastguard Worker } \
62*ba62d9d3SAndroid Build Coastguard Worker }
63*ba62d9d3SAndroid Build Coastguard Worker #endif // CHK_HR
64*ba62d9d3SAndroid Build Coastguard Worker
65*ba62d9d3SAndroid Build Coastguard Worker #ifndef CHK_NULL
66*ba62d9d3SAndroid Build Coastguard Worker #define CHK_NULL(p) \
67*ba62d9d3SAndroid Build Coastguard Worker { \
68*ba62d9d3SAndroid Build Coastguard Worker if ( (p) == nullptr) \
69*ba62d9d3SAndroid Build Coastguard Worker { \
70*ba62d9d3SAndroid Build Coastguard Worker CmPrintMessage("%s: nullptr check failed\n", __FUNCTION__); \
71*ba62d9d3SAndroid Build Coastguard Worker CmAssert(0); \
72*ba62d9d3SAndroid Build Coastguard Worker result = CM_NULL_POINTER; \
73*ba62d9d3SAndroid Build Coastguard Worker goto finish; \
74*ba62d9d3SAndroid Build Coastguard Worker } \
75*ba62d9d3SAndroid Build Coastguard Worker }
76*ba62d9d3SAndroid Build Coastguard Worker #endif
77*ba62d9d3SAndroid Build Coastguard Worker
78*ba62d9d3SAndroid Build Coastguard Worker #ifndef CHK_NULL_RETURN
79*ba62d9d3SAndroid Build Coastguard Worker #define CHK_NULL_RETURN(p) \
80*ba62d9d3SAndroid Build Coastguard Worker { \
81*ba62d9d3SAndroid Build Coastguard Worker if ( (p) == nullptr) \
82*ba62d9d3SAndroid Build Coastguard Worker { \
83*ba62d9d3SAndroid Build Coastguard Worker CmPrintMessage("%s: nullptr check failed\n", __FUNCTION__); \
84*ba62d9d3SAndroid Build Coastguard Worker CmAssert(0); \
85*ba62d9d3SAndroid Build Coastguard Worker return CM_NULL_POINTER; \
86*ba62d9d3SAndroid Build Coastguard Worker } \
87*ba62d9d3SAndroid Build Coastguard Worker }
88*ba62d9d3SAndroid Build Coastguard Worker #endif
89*ba62d9d3SAndroid Build Coastguard Worker
90*ba62d9d3SAndroid Build Coastguard Worker #ifndef CHK_FAILURE_RETURN
91*ba62d9d3SAndroid Build Coastguard Worker #define CHK_FAILURE_RETURN(ret) \
92*ba62d9d3SAndroid Build Coastguard Worker { \
93*ba62d9d3SAndroid Build Coastguard Worker if ( (ret) != CM_SUCCESS) \
94*ba62d9d3SAndroid Build Coastguard Worker { \
95*ba62d9d3SAndroid Build Coastguard Worker CmPrintMessage("%s:%d: return check failed\n", __FUNCTION__, __LINE__); \
96*ba62d9d3SAndroid Build Coastguard Worker return ret; \
97*ba62d9d3SAndroid Build Coastguard Worker } \
98*ba62d9d3SAndroid Build Coastguard Worker }
99*ba62d9d3SAndroid Build Coastguard Worker #endif
100*ba62d9d3SAndroid Build Coastguard Worker
101*ba62d9d3SAndroid Build Coastguard Worker #endif // #ifndef CMRTLIB_AGNOSTIC_SHARE_CMDEBUG_H_
102