1 /*
2  * Copyright (c) 2021-2024 Huawei Device Co., Ltd.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  *     http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 
16 #ifndef HILOG_WRAPPER_H
17 #define HILOG_WRAPPER_H
18 
19 #define CONFIG_HILOG
20 #ifdef CONFIG_HILOG
21 #include "hilog/log.h"
22 namespace OHOS {
23 namespace ExternalDeviceManager {
24 
25 #ifdef EDM_LOGF
26 #undef EDM_LOGF
27 #endif
28 
29 #ifdef EDM_LOGE
30 #undef EDM_LOGE
31 #endif
32 
33 #ifdef EDM_LOGW
34 #undef EDM_LOGW
35 #endif
36 
37 #ifdef EDM_LOGI
38 #undef EDM_LOGI
39 #endif
40 
41 #ifdef EDM_LOGD
42 #undef EDM_LOGD
43 #endif
44 
45 // 0xD002550: part:ExternalDeviceManager module:Edm.
46 constexpr unsigned int BASE_EDM_DOMAIN_ID = 0xD002550;
47 
48 enum PkgErrCode {
49     PKG_OK = 0,
50     PKG_FAILURE = -1,
51     PKG_RDB_EXECUTE_FAILTURE = -2,
52     PKG_RDB_NO_INIT = -3,
53     PKG_RDB_EMPTY = -4,
54     PKG_PERMISSION_DENIED = -5,
55     PKG_NOP = -6,
56     PKG_OVERFLOW = -7,
57 };
58 
59 // param of log interface, such as EDM_LOGF.
60 enum UsbMgrSubModule {
61     MODULE_FRAMEWORK = 0,
62     MODULE_SERVICE,
63     MODULE_DEV_MGR,
64     MODULE_PKG_MGR,
65     MODULE_EA_MGR,
66     MODULE_BUS_USB,
67     MODULE_COMMON,
68     MODULE_USB_DDK,
69     EDM_MODULE_TEST,
70     MODULE_HID_DDK,
71     MODULE_BASE_DDK,
72     EDM_MODULE_BUTT,
73 };
74 
75 enum UsbMgrDomainId {
76     EDM_FRAMEWORK_DOMAIN = BASE_EDM_DOMAIN_ID + MODULE_FRAMEWORK,
77     EDM_SERVICE_DOMAIN,
78     EDM_DEV_MGR_DOMAIN,
79     EDM_PKG_MGR_DOMAIN,
80     EDM_DDK_DOMAIN,
81     EDM_BUTT,
82 };
83 
84 
85 static constexpr OHOS::HiviewDFX::HiLogLabel EDM_MGR_LABEL[EDM_MODULE_BUTT] = {
86     { LOG_CORE, EDM_FRAMEWORK_DOMAIN, "EdmFwk" },
87     { LOG_CORE, EDM_SERVICE_DOMAIN, "EdmService" },
88     { LOG_CORE, EDM_DEV_MGR_DOMAIN, "EdmDevMgr" },
89     { LOG_CORE, EDM_PKG_MGR_DOMAIN, "EdmPkgMgr" },
90     { LOG_CORE, EDM_FRAMEWORK_DOMAIN, "EdmEaMgr" },
91     { LOG_CORE, EDM_FRAMEWORK_DOMAIN, "EdmBusUsbMgr" },
92     { LOG_CORE, EDM_FRAMEWORK_DOMAIN, "EdmCommon" },
93     { LOG_CORE, EDM_DDK_DOMAIN, "EdmUsbDdk" },
94     { LOG_CORE, EDM_FRAMEWORK_DOMAIN, "EdmTest" },
95     { LOG_CORE, EDM_DDK_DOMAIN, "EdmHidDdk" },
96     { LOG_CORE, EDM_DDK_DOMAIN, "EdmBaseDdk" },
97 };
98 
99 #ifndef EDM_FILENAME
100 #define EDM_FILENAME (__builtin_strrchr(__FILE__, '/') ? __builtin_strrchr(__FILE__, '/') + 1 : __FILE__)
101 #endif
102 
103 #ifndef EDM_FUNC_FMT
104 #define EDM_FUNC_FMT "[%{public}s(%{public}s:%{public}d)]"
105 #endif
106 
107 #ifndef EDM_FUNC_INFO
108 #define EDM_FUNC_INFO EDM_FILENAME, __FUNCTION__, __LINE__
109 #endif
110 
111 // In order to improve performance, do not check the module range, module should less than EDM_MODULE_BUTT.
112 #define EDM_LOGF(module, fmt, ...) \
113     (void)HILOG_IMPL(LOG_CORE, LOG_FATAL, EDM_MGR_LABEL[module].domain, EDM_MGR_LABEL[module].tag, \
114     EDM_FUNC_FMT fmt, EDM_FUNC_INFO, ##__VA_ARGS__)
115 #define EDM_LOGE(module, fmt, ...) \
116     (void)HILOG_IMPL(LOG_CORE, LOG_ERROR, EDM_MGR_LABEL[module].domain, EDM_MGR_LABEL[module].tag, \
117     EDM_FUNC_FMT fmt, EDM_FUNC_INFO, ##__VA_ARGS__)
118 #define EDM_LOGW(module, fmt, ...) \
119     (void)HILOG_IMPL(LOG_CORE, LOG_WARN, EDM_MGR_LABEL[module].domain, EDM_MGR_LABEL[module].tag, \
120     EDM_FUNC_FMT fmt, EDM_FUNC_INFO, ##__VA_ARGS__)
121 #define EDM_LOGI(module, fmt, ...) \
122     (void)HILOG_IMPL(LOG_CORE, LOG_INFO, EDM_MGR_LABEL[module].domain, EDM_MGR_LABEL[module].tag, \
123     EDM_FUNC_FMT fmt, EDM_FUNC_INFO, ##__VA_ARGS__)
124 #define EDM_LOGD(module, fmt, ...) \
125     (void)HILOG_IMPL(LOG_CORE, LOG_DEBUG, EDM_MGR_LABEL[module].domain, EDM_MGR_LABEL[module].tag, \
126     EDM_FUNC_FMT fmt, EDM_FUNC_INFO, ##__VA_ARGS__)
127 } // namespace ExternalDeviceManager
128 } // namespace OHOS
129 
130 #else
131 
132 #define EDM_LOGF(...)
133 #define EDM_LOGE(...)
134 #define EDM_LOGW(...)
135 #define EDM_LOGI(...)
136 #define EDM_LOGD(...)
137 
138 #endif // CONFIG_HILOG
139 
140 #endif // HILOG_WRAPPER_H
141