xref: /aosp_15_r20/external/intel-media-driver/cmrtlib/agnostic/share/cm_debug.h (revision ba62d9d3abf0e404f2022b4cd7a85e107f48596f)
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