1 /* 2 * Copyright (c) 2022 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 POWER_LOG_H 17 #define POWER_LOG_H 18 19 #define CONFIG_HILOG 20 #ifdef CONFIG_HILOG 21 22 #include <stdint.h> 23 24 #include "hilog/log.h" 25 26 namespace OHOS { 27 namespace PowerMgr { 28 29 #ifdef POWER_HILOGF 30 #undef POWER_HILOGF 31 #endif 32 33 #ifdef POWER_HILOGE 34 #undef POWER_HILOGE 35 #endif 36 37 #ifdef POWER_HILOGW 38 #undef POWER_HILOGW 39 #endif 40 41 #ifdef POWER_HILOGI 42 #undef POWER_HILOGI 43 #endif 44 45 #ifdef POWER_HILOGD 46 #undef POWER_HILOGD 47 #endif 48 49 namespace { 50 // Power manager reserved domain id range 51 constexpr unsigned int POWER_DOMAIN_ID_START = 0xD002900; 52 constexpr unsigned int POWER_DOMAIN_ID_END = POWER_DOMAIN_ID_START + 32; 53 constexpr unsigned int TEST_DOMAIN_ID = 0xD000F00; 54 } 55 56 enum PowerManagerLogLabel { 57 // Component labels, you can add if needed 58 COMP_APP = 0, 59 COMP_FWK = 1, 60 COMP_SVC = 2, 61 COMP_HDI = 3, 62 COMP_DRV = 4, 63 COMP_UTILS = 5, 64 // Feature labels, use to mark major features 65 FEATURE_WAKEUP, 66 #ifdef POWER_MANAGER_WAKEUP_ACTION 67 FEATURE_WAKEUP_ACTION, 68 #endif 69 FEATURE_SUSPEND, 70 FEATURE_RUNNING_LOCK, 71 FEATURE_ACTIVITY, 72 FEATURE_POWER_STATE, 73 FEATURE_SCREEN_OFF_PRE, 74 FEATURE_POWER_MODE, 75 FEATURE_SHUTDOWN, 76 FEATURE_INPUT, 77 FEATURE_UTIL, 78 // Test label 79 LABEL_TEST, 80 // The end of labels, max to the domain id range length 32 81 LABEL_END, 82 }; 83 84 enum PowerManagerLogDomain { 85 DOMAIN_APP = POWER_DOMAIN_ID_START + COMP_APP, // 0xD002900 86 DOMAIN_FRAMEWORK, // 0xD002901 87 DOMAIN_SERVICE, // 0xD002902 88 DOMAIN_HDI, // 0xD002903 89 DOMAIN_DRIVER, // 0xD002904 90 DOMAIN_UTILS, // 0xD002905 91 DOMAIN_FEATURE_WAKEUP, 92 #ifdef POWER_MANAGER_WAKEUP_ACTION 93 DOMAIN_FEATURE_WAKEUP_ACTION, 94 #endif 95 DOMAIN_FEATURE_SUSPEND, 96 DOMAIN_FEATURE_RUNNING_LOCK, 97 DOMAIN_FEATURE_ACTIVITY, 98 DOMAIN_FEATURE_POWER_STATE, 99 DOMAIN_FEATURE_SCREEN_OFF_PRE, 100 DOMAIN_FEATURE_POWER_MODE, 101 DOMAIN_FEATURE_SHUTDOWN, 102 DOMAIN_FEATURE_INPUT, 103 DOMAIN_FEATURE_UTIL, 104 DOMAIN_TEST = TEST_DOMAIN_ID, // 0xD000F00 105 DOMAIN_END = POWER_DOMAIN_ID_END, // Max to 0xD002920, keep the sequence and length same as PowerManagerLogLabel 106 }; 107 108 struct PowerManagerLogLabelDomain { 109 uint32_t domainId; 110 const char* tag; 111 }; 112 113 // Keep the sequence and length same as PowerManagerLogDomain 114 static const PowerManagerLogLabelDomain POWER_LABEL[LABEL_END] = { 115 {DOMAIN_APP, "PowerApp"}, 116 {DOMAIN_FRAMEWORK, "PowerFwk"}, 117 {DOMAIN_SERVICE, "PowerSvc"}, 118 {DOMAIN_HDI, "PowerHdi"}, 119 {DOMAIN_DRIVER, "PowerDrv"}, 120 {DOMAIN_UTILS, "PowerUtils"}, 121 {DOMAIN_FEATURE_WAKEUP, "PowerWakeup"}, 122 #ifdef POWER_MANAGER_WAKEUP_ACTION 123 {DOMAIN_FEATURE_WAKEUP_ACTION, "PowerWakeupAction"}, 124 #endif 125 {DOMAIN_FEATURE_SUSPEND, "PowerSuspend"}, 126 {DOMAIN_FEATURE_RUNNING_LOCK, "PowerRunningLock"}, 127 {DOMAIN_FEATURE_ACTIVITY, "PowerActivity"}, 128 {DOMAIN_FEATURE_POWER_STATE, "PowerState"}, 129 {DOMAIN_FEATURE_SCREEN_OFF_PRE, "PowerScreenOffPre"}, 130 {DOMAIN_FEATURE_POWER_MODE, "PowerMode"}, 131 {DOMAIN_FEATURE_SHUTDOWN, "PowerShutdown"}, 132 {DOMAIN_FEATURE_INPUT, "PowerInput"}, 133 {DOMAIN_FEATURE_UTIL, "PowerUtil"}, 134 {DOMAIN_TEST, "PowerTest"}, 135 }; 136 137 #define POWER_HILOGF(domain, ...) \ 138 ((void)HILOG_IMPL(LOG_CORE, LOG_FATAL, POWER_LABEL[domain].domainId, POWER_LABEL[domain].tag, ##__VA_ARGS__)) 139 #define POWER_HILOGE(domain, ...) \ 140 ((void)HILOG_IMPL(LOG_CORE, LOG_ERROR, POWER_LABEL[domain].domainId, POWER_LABEL[domain].tag, ##__VA_ARGS__)) 141 #define POWER_HILOGW(domain, ...) \ 142 ((void)HILOG_IMPL(LOG_CORE, LOG_WARN, POWER_LABEL[domain].domainId, POWER_LABEL[domain].tag, ##__VA_ARGS__)) 143 #define POWER_HILOGI(domain, ...) \ 144 ((void)HILOG_IMPL(LOG_CORE, LOG_INFO, POWER_LABEL[domain].domainId, POWER_LABEL[domain].tag, ##__VA_ARGS__)) 145 #define POWER_HILOGD(domain, ...) \ 146 ((void)HILOG_IMPL(LOG_CORE, LOG_DEBUG, POWER_LABEL[domain].domainId, POWER_LABEL[domain].tag, ##__VA_ARGS__)) 147 148 } // namespace PowerMgr 149 } // namespace OHOS 150 151 #else 152 153 #define POWER_HILOGF(...) 154 #define POWER_HILOGE(...) 155 #define POWER_HILOGW(...) 156 #define POWER_HILOGI(...) 157 #define POWER_HILOGD(...) 158 159 #endif // CONFIG_HILOG 160 161 #endif // POWER_LOG_H 162