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" 22namespace OHOS { 23namespace 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. 46constexpr unsigned int BASE_EDM_DOMAIN_ID = 0xD002550; 47 48enum 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. 60enum 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 75enum 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 85static 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