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