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 POWERMGR_HILOG_WRAPPER_H 17 #define POWERMGR_HILOG_WRAPPER_H 18 19 #define CONFIG_HILOG 20 #ifdef CONFIG_HILOG 21 #include "hilog/log.h" 22 namespace OHOS { 23 namespace PowerMgr { 24 #define __FILENAME__ (__builtin_strrchr(__FILE__, '/') ? __builtin_strrchr(__FILE__, '/') + 1 : __FILE__) 25 #define __FORMATED(fmt, ...) "[%{public}s] %{public}s# " fmt, __FILENAME__, __FUNCTION__, ##__VA_ARGS__ 26 27 #ifdef POWER_HILOGF 28 #undef POWER_HILOGF 29 #endif 30 31 #ifdef POWER_HILOGE 32 #undef POWER_HILOGE 33 #endif 34 35 #ifdef POWER_HILOGW 36 #undef POWER_HILOGW 37 #endif 38 39 #ifdef POWER_HILOGI 40 #undef POWER_HILOGI 41 #endif 42 43 #ifdef POWER_HILOGD 44 #undef POWER_HILOGD 45 #endif 46 47 // param of log interface, such as POWER_HILOGF. 48 enum PowerMgrSubModule { 49 MODULE_INNERKIT = 0, 50 MODULE_SERVICE, 51 MODULE_JAVAKIT, // java kit, defined to avoid repeated use of domain. 52 MODULE_JNI, 53 MODULE_BATT_INNERKIT, // below used by battery service 54 MODULE_BATT_SERVICE, 55 MODULE_BATTERYD, 56 MODULE_COMMON, // used both by battery and powermgr 57 MODULE_JS_NAPI, 58 POWERMGR_MODULE_BUTT, 59 }; 60 61 // 0xD002900: subsystem:PowerMgr module:PowerManager, 8 bits reserved. 62 static constexpr unsigned int BASE_POWERMGR_DOMAIN_ID = 0xD002900; 63 64 enum PowerMgrDomainId { 65 POWERMGR_INNERKIT_DOMAIN = BASE_POWERMGR_DOMAIN_ID + MODULE_INNERKIT, 66 POWERMGR_SERVICE_DOMAIN, 67 POWERMGR_JAVAKIT_DOMAIN, 68 BATT_INNERKIT_DOMAIN, 69 BATT_SERVICE_DOMAIN, 70 BATTERYD_DOMAIN, 71 COMMON_DOMAIN, 72 POWERMGR_JS_NAPI, 73 POWERMGR_BUTT, 74 }; 75 76 static constexpr OHOS::HiviewDFX::HiLogLabel POWER_MGR_LABEL[POWERMGR_MODULE_BUTT] = { 77 {LOG_CORE, POWERMGR_INNERKIT_DOMAIN, "PowerMgrClient"}, 78 {LOG_CORE, POWERMGR_SERVICE_DOMAIN, "PowerMgrService"}, 79 {LOG_CORE, POWERMGR_JAVAKIT_DOMAIN, "PowerMgrJavaService"}, 80 {LOG_CORE, POWERMGR_INNERKIT_DOMAIN, "PowerMgrJni"}, 81 {LOG_CORE, BATT_INNERKIT_DOMAIN, "BatterySrvClient"}, 82 {LOG_CORE, BATT_SERVICE_DOMAIN, "BatteryService"}, 83 {LOG_CORE, BATTERYD_DOMAIN, "Batteryd"}, 84 {LOG_CORE, COMMON_DOMAIN, "PowerMgrCommon"}, 85 {LOG_CORE, POWERMGR_JS_NAPI, "PowerMgrJSNAPI"}, 86 }; 87 88 // In order to improve performance, do not check the module range. 89 // Besides, make sure module is less than POWERMGR_MODULE_BUTT. 90 #define POWER_HILOGF(module, ...) (void)OHOS::HiviewDFX::HiLog::Fatal(POWER_MGR_LABEL[module], __FORMATED(__VA_ARGS__)) 91 #define POWER_HILOGE(module, ...) (void)OHOS::HiviewDFX::HiLog::Error(POWER_MGR_LABEL[module], __FORMATED(__VA_ARGS__)) 92 #define POWER_HILOGW(module, ...) (void)OHOS::HiviewDFX::HiLog::Warn(POWER_MGR_LABEL[module], __FORMATED(__VA_ARGS__)) 93 #define POWER_HILOGI(module, ...) (void)OHOS::HiviewDFX::HiLog::Info(POWER_MGR_LABEL[module], __FORMATED(__VA_ARGS__)) 94 #define POWER_HILOGD(module, ...) (void)OHOS::HiviewDFX::HiLog::Debug(POWER_MGR_LABEL[module], __FORMATED(__VA_ARGS__)) 95 96 } // namespace PowerMgr 97 } // namespace OHOS 98 99 #else 100 101 #define POWER_HILOGF(...) 102 #define POWER_HILOGE(...) 103 #define POWER_HILOGW(...) 104 #define POWER_HILOGI(...) 105 #define POWER_HILOGD(...) 106 107 #endif // CONFIG_HILOG 108 109 #endif // POWERMGR_HILOG_WRAPPER_H 110