1 /*
2  * Copyright (c) 2021 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 struct EdmLable {
46     uint32_t domainId;
47     const char* tag;
48 };
49 
50 // param of log interface, such as EDM_LOGF.
51 enum UsbMgrSubModule {
52     MODULE_FRAMEWORK = 0,
53     MODULE_SERVICE,
54     MODULE_DEV_MGR,
55     MODULE_PKG_MGR,
56     MODULE_EA_MGR,
57     MODULE_BUS_USB,
58     MODULE_COMMON,
59     MODULE_USB_DDK,
60     EDM_MODULE_TEST,
61     MODULE_HID_DDK,
62     MODULE_BASE_DDK,
63     EDM_MODULE_BUTT,
64 };
65 
66 // 0xD002550: part:ExternalDeviceManager module:Edm.
67 constexpr unsigned int BASE_EDM_DOMAIN_ID = 0xD002550;
68 
69 enum UsbMgrDomainId {
70     EDM_FRAMEWORK_DOMAIN = BASE_EDM_DOMAIN_ID + MODULE_FRAMEWORK,
71     EDM_SERVICE_DOMAIN,
72     EDM_DEV_MGR_DOMAIN,
73     EDM_PKG_MGR_DOMAIN,
74     EDM_EA_MGR_DOMAIN,
75     EDM_BUS_USB_DOMAIN,
76     EDM_COMMON_DOMAIN,
77     EDM_USB_DDK_DOMAIN,
78     EDM_TEST,
79     EDM_HID_DDK_DOMAIN,
80     EDM_BASE_DDK_DOMAIN,
81     EDM_BUTT,
82 };
83 
84 enum PkgErrCode {
85     PKG_OK = 0,
86     PKG_FAILURE = -1,
87     PKG_RDB_EXECUTE_FAILTURE = -2,
88     PKG_RDB_NO_INIT = -3,
89     PKG_RDB_EMPTY = -4,
90     PKG_PERMISSION_DENIED = -5,
91     PKG_NOP = -6,
92     PKG_OVERFLOW = -7,
93 };
94 
95 static const EdmLable EDM_MGR_LABEL[EDM_MODULE_BUTT] = {
96     {EDM_FRAMEWORK_DOMAIN, "EdmFwk"      },
97     {EDM_SERVICE_DOMAIN,   "EdmService"  },
98     {EDM_DEV_MGR_DOMAIN,   "EdmDevMgr"   },
99     {EDM_PKG_MGR_DOMAIN,   "EdmPkgMgr"   },
100     {EDM_EA_MGR_DOMAIN,    "EdmEaMgr"    },
101     {EDM_BUS_USB_DOMAIN,   "EdmBusUsbMgr"},
102     {EDM_COMMON_DOMAIN,    "EdmCommon"   },
103     {EDM_USB_DDK_DOMAIN,   "EdmUsbDdk"   },
104     {EDM_TEST,             "EdmTest"     },
105     {EDM_HID_DDK_DOMAIN,   "EdmHidDdk"   },
106     {EDM_BASE_DDK_DOMAIN,  "EdmBaseDdk"  },
107 };
108 
109 // In order to improve performance, do not check the module range, module should less than EDM_MODULE_BUTT.
110 #define EDM_LOGF(module, ...) \
111     ((void)HILOG_IMPL(LOG_CORE, LOG_FATAL, EDM_MGR_LABEL[module].domainId, EDM_MGR_LABEL[module].tag, ##__VA_ARGS__))
112 #define EDM_LOGE(module, ...) \
113     ((void)HILOG_IMPL(LOG_CORE, LOG_ERROR, EDM_MGR_LABEL[module].domainId, EDM_MGR_LABEL[module].tag, ##__VA_ARGS__))
114 #define EDM_LOGW(module, ...) \
115     ((void)HILOG_IMPL(LOG_CORE, LOG_WARN, EDM_MGR_LABEL[module].domainId, EDM_MGR_LABEL[module].tag, ##__VA_ARGS__))
116 #define EDM_LOGI(module, ...) \
117     ((void)HILOG_IMPL(LOG_CORE, LOG_INFO, EDM_MGR_LABEL[module].domainId, EDM_MGR_LABEL[module].tag, ##__VA_ARGS__))
118 #define EDM_LOGD(module, ...) \
119     ((void)HILOG_IMPL(LOG_CORE, LOG_DEBUG, EDM_MGR_LABEL[module].domainId, EDM_MGR_LABEL[module].tag, ##__VA_ARGS__))
120 } // namespace ExternalDeviceManager
121 } // namespace OHOS
122 
123 #else
124 
125 #define EDM_LOGF(...)
126 #define EDM_LOGE(...)
127 #define EDM_LOGW(...)
128 #define EDM_LOGI(...)
129 #define EDM_LOGD(...)
130 
131 #endif // CONFIG_HILOG
132 
133 #endif // HILOG_WRAPPER_H
134