• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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