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" 22namespace OHOS { 23namespace 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 46struct UsbLable { 47 uint32_t domainId; 48 const char* tag; 49}; 50 51// param of log interface, such as USB_HILOGF. 52enum 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. 66constexpr unsigned int BASE_USB_DOMAIN_ID = 0xD002A00; 67 68enum 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 80static 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