1d590543dSopenharmony_ci/* 2d590543dSopenharmony_ci * Copyright (c) 2022 Huawei Device Co., Ltd. 3d590543dSopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 4d590543dSopenharmony_ci * you may not use this file except in compliance with the License. 5d590543dSopenharmony_ci * You may obtain a copy of the License at 6d590543dSopenharmony_ci * 7d590543dSopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 8d590543dSopenharmony_ci * 9d590543dSopenharmony_ci * Unless required by applicable law or agreed to in writing, software 10d590543dSopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 11d590543dSopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12d590543dSopenharmony_ci * See the License for the specific language governing permissions and 13d590543dSopenharmony_ci * limitations under the License. 14d590543dSopenharmony_ci */ 15d590543dSopenharmony_ci 16d590543dSopenharmony_ci#ifndef STATS_LOG_H 17d590543dSopenharmony_ci#define STATS_LOG_H 18d590543dSopenharmony_ci 19d590543dSopenharmony_ci#define CONFIG_HILOG 20d590543dSopenharmony_ci#ifdef CONFIG_HILOG 21d590543dSopenharmony_ci 22d590543dSopenharmony_ci#include "hilog/log.h" 23d590543dSopenharmony_ci 24d590543dSopenharmony_cinamespace OHOS { 25d590543dSopenharmony_cinamespace PowerMgr { 26d590543dSopenharmony_ci 27d590543dSopenharmony_ci#ifdef STATS_HILOGF 28d590543dSopenharmony_ci#undef STATS_HILOGF 29d590543dSopenharmony_ci#endif 30d590543dSopenharmony_ci 31d590543dSopenharmony_ci#ifdef STATS_HILOGE 32d590543dSopenharmony_ci#undef STATS_HILOGE 33d590543dSopenharmony_ci#endif 34d590543dSopenharmony_ci 35d590543dSopenharmony_ci#ifdef STATS_HILOGW 36d590543dSopenharmony_ci#undef STATS_HILOGW 37d590543dSopenharmony_ci#endif 38d590543dSopenharmony_ci 39d590543dSopenharmony_ci#ifdef STATS_HILOGI 40d590543dSopenharmony_ci#undef STATS_HILOGI 41d590543dSopenharmony_ci#endif 42d590543dSopenharmony_ci 43d590543dSopenharmony_ci#ifdef STATS_HILOGD 44d590543dSopenharmony_ci#undef STATS_HILOGD 45d590543dSopenharmony_ci#endif 46d590543dSopenharmony_ci 47d590543dSopenharmony_cinamespace { 48d590543dSopenharmony_ci// Battery stats reserved domain id range 49d590543dSopenharmony_ciconstexpr uint32_t STATS_DOMAIN_ID_START = 0xD002960; 50d590543dSopenharmony_ciconstexpr uint32_t STATS_DOMAIN_ID_END = STATS_DOMAIN_ID_START + 32; 51d590543dSopenharmony_ciconstexpr uint32_t TEST_DOMAIN_ID = 0xD000F00; 52d590543dSopenharmony_ci} 53d590543dSopenharmony_ci 54d590543dSopenharmony_cienum BatteryStatsLogLabel { 55d590543dSopenharmony_ci // Component labels, you can add if needed 56d590543dSopenharmony_ci COMP_APP = 0, 57d590543dSopenharmony_ci COMP_FWK = 1, 58d590543dSopenharmony_ci COMP_SVC = 2, 59d590543dSopenharmony_ci COMP_HDI = 3, 60d590543dSopenharmony_ci COMP_DRV = 4, 61d590543dSopenharmony_ci COMP_UTILS = 5, 62d590543dSopenharmony_ci // Test label 63d590543dSopenharmony_ci LABEL_TEST, 64d590543dSopenharmony_ci // The end of labels, max to the domain id range length 32 65d590543dSopenharmony_ci LABEL_END, 66d590543dSopenharmony_ci}; 67d590543dSopenharmony_ci 68d590543dSopenharmony_cienum BatteryStatsLogDomain { 69d590543dSopenharmony_ci DOMAIN_APP = STATS_DOMAIN_ID_START + COMP_APP, // 0xD002960 70d590543dSopenharmony_ci DOMAIN_FRAMEWORK, // 0xD002961 71d590543dSopenharmony_ci DOMAIN_SERVICE, // 0xD002962 72d590543dSopenharmony_ci DOMAIN_HDI, // 0xD002963 73d590543dSopenharmony_ci DOMAIN_DRIVER, // 0xD002964 74d590543dSopenharmony_ci DOMAIN_UTILS, // 0xD002965 75d590543dSopenharmony_ci DOMAIN_TEST = TEST_DOMAIN_ID, // 0xD000F00 76d590543dSopenharmony_ci DOMAIN_END = STATS_DOMAIN_ID_END, // Max to 0xD002980, keep the sequence and length same as BatteryStatsLogLabel 77d590543dSopenharmony_ci}; 78d590543dSopenharmony_ci 79d590543dSopenharmony_cistruct BatteryStatsLogLabelDomain { 80d590543dSopenharmony_ci uint32_t domainId; 81d590543dSopenharmony_ci const char* tag; 82d590543dSopenharmony_ci}; 83d590543dSopenharmony_ci 84d590543dSopenharmony_ci// Keep the sequence and length same as BatteryStatsLogDomain 85d590543dSopenharmony_cistatic const BatteryStatsLogLabelDomain STATS_LABEL[LABEL_END] = { 86d590543dSopenharmony_ci {DOMAIN_APP, "StatsApp"}, 87d590543dSopenharmony_ci {DOMAIN_FRAMEWORK, "StatsFwk"}, 88d590543dSopenharmony_ci {DOMAIN_SERVICE, "StatsSvc"}, 89d590543dSopenharmony_ci {DOMAIN_HDI, "StatsHdi"}, 90d590543dSopenharmony_ci {DOMAIN_DRIVER, "StatsDrv"}, 91d590543dSopenharmony_ci {DOMAIN_UTILS, "StatsUtils"}, 92d590543dSopenharmony_ci {DOMAIN_TEST, "StatsTest"}, 93d590543dSopenharmony_ci}; 94d590543dSopenharmony_ci 95d590543dSopenharmony_ci#define STATS_HILOGF(domain, ...) \ 96d590543dSopenharmony_ci ((void)HILOG_IMPL(LOG_CORE, LOG_FATAL, STATS_LABEL[domain].domainId, STATS_LABEL[domain].tag, ##__VA_ARGS__)) 97d590543dSopenharmony_ci#define STATS_HILOGE(domain, ...) \ 98d590543dSopenharmony_ci ((void)HILOG_IMPL(LOG_CORE, LOG_ERROR, STATS_LABEL[domain].domainId, STATS_LABEL[domain].tag, ##__VA_ARGS__)) 99d590543dSopenharmony_ci#define STATS_HILOGW(domain, ...) \ 100d590543dSopenharmony_ci ((void)HILOG_IMPL(LOG_CORE, LOG_WARN, STATS_LABEL[domain].domainId, STATS_LABEL[domain].tag, ##__VA_ARGS__)) 101d590543dSopenharmony_ci#define STATS_HILOGI(domain, ...) \ 102d590543dSopenharmony_ci ((void)HILOG_IMPL(LOG_CORE, LOG_INFO, STATS_LABEL[domain].domainId, STATS_LABEL[domain].tag, ##__VA_ARGS__)) 103d590543dSopenharmony_ci#define STATS_HILOGD(domain, ...) \ 104d590543dSopenharmony_ci ((void)HILOG_IMPL(LOG_CORE, LOG_DEBUG, STATS_LABEL[domain].domainId, STATS_LABEL[domain].tag, ##__VA_ARGS__)) 105d590543dSopenharmony_ci} // namespace PowerMgr 106d590543dSopenharmony_ci} // namespace OHOS 107d590543dSopenharmony_ci 108d590543dSopenharmony_ci#else 109d590543dSopenharmony_ci 110d590543dSopenharmony_ci#define STATS_HILOGF(...) 111d590543dSopenharmony_ci#define STATS_HILOGE(...) 112d590543dSopenharmony_ci#define STATS_HILOGW(...) 113d590543dSopenharmony_ci#define STATS_HILOGI(...) 114d590543dSopenharmony_ci#define STATS_HILOGD(...) 115d590543dSopenharmony_ci 116d590543dSopenharmony_ci#endif // CONFIG_HILOG 117d590543dSopenharmony_ci 118d590543dSopenharmony_ci#endif // STATS_LOG_H