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 HILOG_WRAPPER_H 17 #define HILOG_WRAPPER_H 18 19 #define CONFIG_HILOG 20 #ifdef CONFIG_HILOG 21 #include "hilog/log.h" 22 namespace OHOS { 23 namespace USB { 24 #define USBFILENAME (__builtin_strrchr(__FILE__, '/') ? __builtin_strrchr(__FILE__, '/') + 1 : __FILE__) 25 26 #ifdef USB_HILOGF 27 #undef USB_HILOGF 28 #endif 29 30 #ifdef USB_HILOGE 31 #undef USB_HILOGE 32 #endif 33 34 #ifdef USB_HILOGW 35 #undef USB_HILOGW 36 #endif 37 38 #ifdef USB_HILOGI 39 #undef USB_HILOGI 40 #endif 41 42 #ifdef USB_HILOGD 43 #undef USB_HILOGD 44 #endif 45 46 struct UsbLable { 47 uint32_t domainId; 48 const char* tag; 49 }; 50 51 // param of log interface, such as USB_HILOGF. 52 enum UsbMgrSubModule { 53 MODULE_INNERKIT = 0, 54 MODULE_SERVICE, 55 MODULE_USB_INNERKIT, // below used by usb service 56 MODULE_USB_SERVICE, 57 MODULE_USBD, 58 MODULE_COMMON, 59 MODULE_JS_NAPI, 60 MODULE_JAVAKIT, // java kit used, define to avoid repeat used domain 61 MODULE_JNI, 62 USBMGR_MODULE_BUTT, 63 }; 64 65 // 0xD002900: subsystem:Usb module:Usb, reserved 8 bit. 66 constexpr unsigned int BASE_USB_DOMAIN_ID = 0xD002A00; 67 68 enum UsbMgrDomainId { 69 USBMGR_INNERKIT_DOMAIN = BASE_USB_DOMAIN_ID + MODULE_INNERKIT + 1, 70 USBMGR_SERVICE_DOMAIN, //0xD002A02 71 USB_INNERKIT_DOMAIN, //0xD002A03 72 USB_SERVICE_DOMAIN, //0xD002A04 73 USBD_DOMAIN, //0xD002A05 74 COMMON_DOMAIN, //0xD002A06 75 USB_JS_NAPI, //0xD002A07 76 USBMGR_JAVAKIT_DOMAIN, 77 USB_BUTT, 78 }; 79 80 static const UsbLable USB_MGR_LABEL[USBMGR_MODULE_BUTT] = { 81 {USBMGR_INNERKIT_DOMAIN, "UsbMgrClient"}, 82 {USBMGR_SERVICE_DOMAIN, "UsbMgrService"}, 83 {USB_INNERKIT_DOMAIN, "UsbSrvClient"}, 84 {USB_SERVICE_DOMAIN, "UsbService"}, 85 {USBD_DOMAIN, "Usbd"}, 86 {COMMON_DOMAIN, "UsbMgrCommon"}, 87 {USB_JS_NAPI, "UsbMgrJSNAPI"}, 88 {USBMGR_JAVAKIT_DOMAIN, "UsbMgrJavaService"}, 89 {USBMGR_INNERKIT_DOMAIN, "UsbMgrJni"}, 90 }; 91 92 // In order to improve performance, do not check the module range, module should less than USBMGR_MODULE_BUTT. 93 #define USB_HILOGF(module, ...) \ 94 ((void)HILOG_IMPL(LOG_CORE, LOG_FATAL, USB_MGR_LABEL[module].domainId, USB_MGR_LABEL[module].tag, ##__VA_ARGS__)) 95 #define USB_HILOGE(module, ...) \ 96 ((void)HILOG_IMPL(LOG_CORE, LOG_ERROR, USB_MGR_LABEL[module].domainId, USB_MGR_LABEL[module].tag, ##__VA_ARGS__)) 97 #define USB_HILOGW(module, ...) \ 98 ((void)HILOG_IMPL(LOG_CORE, LOG_WARN, USB_MGR_LABEL[module].domainId, USB_MGR_LABEL[module].tag, ##__VA_ARGS__)) 99 #define USB_HILOGI(module, ...) \ 100 ((void)HILOG_IMPL(LOG_CORE, LOG_INFO, USB_MGR_LABEL[module].domainId, USB_MGR_LABEL[module].tag, ##__VA_ARGS__)) 101 #define USB_HILOGD(module, ...) \ 102 ((void)HILOG_IMPL(LOG_CORE, LOG_DEBUG, USB_MGR_LABEL[module].domainId, USB_MGR_LABEL[module].tag, ##__VA_ARGS__)) 103 } // namespace USB 104 } // namespace OHOS 105 106 #else 107 108 #define USB_HILOGF(...) 109 #define USB_HILOGE(...) 110 #define USB_HILOGW(...) 111 #define USB_HILOGI(...) 112 #define USB_HILOGD(...) 113 114 #endif // CONFIG_HILOG 115 116 #endif // HILOG_WRAPPER_H 117