13d0407baSopenharmony_ci/* 23d0407baSopenharmony_ci * Copyright (c) 2021 Huawei Device Co., Ltd. 33d0407baSopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 43d0407baSopenharmony_ci * you may not use this file except in compliance with the License. 53d0407baSopenharmony_ci * You may obtain a copy of the License at 63d0407baSopenharmony_ci * 73d0407baSopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 83d0407baSopenharmony_ci * 93d0407baSopenharmony_ci * Unless required by applicable law or agreed to in writing, software 103d0407baSopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 113d0407baSopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 123d0407baSopenharmony_ci * See the License for the specific language governing permissions and 133d0407baSopenharmony_ci * limitations under the License. 143d0407baSopenharmony_ci */ 153d0407baSopenharmony_ci 163d0407baSopenharmony_ci#ifndef DISP_COMMON_H 173d0407baSopenharmony_ci#define DISP_COMMON_H 183d0407baSopenharmony_ci#include <string.h> 193d0407baSopenharmony_ci#include <stdint.h> 203d0407baSopenharmony_ci#include "hilog/log.h" 213d0407baSopenharmony_ci#include "stdio.h" 223d0407baSopenharmony_ci#ifdef HDF_LOG_TAG 233d0407baSopenharmony_ci#undef HDF_LOG_TAG 243d0407baSopenharmony_ci#endif 253d0407baSopenharmony_ci 263d0407baSopenharmony_ci#if defined(__cplusplus) 273d0407baSopenharmony_ciextern "C" { 283d0407baSopenharmony_ci#endif 293d0407baSopenharmony_ci 303d0407baSopenharmony_ci#undef LOG_TAG 313d0407baSopenharmony_ci#undef LOG_DOMAIN 323d0407baSopenharmony_ci#define LOG_TAG "DISP" 333d0407baSopenharmony_ci#define LOG_DOMAIN 0xD001400 343d0407baSopenharmony_ci 353d0407baSopenharmony_ci#ifndef DISPLAY_UNUSED 363d0407baSopenharmony_ci#define DISPLAY_UNUSED(x) (void)(x) 373d0407baSopenharmony_ci#endif 383d0407baSopenharmony_ci 393d0407baSopenharmony_ci#define FILENAME (strrchr(__FILE__, '/') ? (strrchr(__FILE__, '/') + 1) : __FILE__) 403d0407baSopenharmony_ci 413d0407baSopenharmony_ci#ifndef DISPLAY_DEBUGLOG_SWITCH 423d0407baSopenharmony_ci#define DISPLAY_DEBUGLOG_SWITCH 0 433d0407baSopenharmony_ci#endif 443d0407baSopenharmony_ci#ifndef DISPLAY_DEBUGLOG 453d0407baSopenharmony_ci#define DISPLAY_DEBUGLOG(format, ...) \ 463d0407baSopenharmony_ci do { \ 473d0407baSopenharmony_ci if (DISPLAY_DEBUGLOG_SWITCH) { \ 483d0407baSopenharmony_ci HILOG_DEBUG(LOG_CORE, "[%{public}s@%{public}s:%{public}d] " format "\n", __FUNCTION__, FILENAME, __LINE__, \ 493d0407baSopenharmony_ci ##__VA_ARGS__); \ 503d0407baSopenharmony_ci } \ 513d0407baSopenharmony_ci } while (0) 523d0407baSopenharmony_ci#endif 533d0407baSopenharmony_ci 543d0407baSopenharmony_ci#ifndef DISPLAY_LOGI 553d0407baSopenharmony_ci#define DISPLAY_LOGI(format, ...) \ 563d0407baSopenharmony_ci do { \ 573d0407baSopenharmony_ci HILOG_INFO(LOG_CORE, "[%{public}s@%{public}s:%{public}d] " format "\n", __FUNCTION__, FILENAME, __LINE__, \ 583d0407baSopenharmony_ci ##__VA_ARGS__); \ 593d0407baSopenharmony_ci } while (0) 603d0407baSopenharmony_ci#endif 613d0407baSopenharmony_ci 623d0407baSopenharmony_ci#ifndef DISPLAY_LOGW 633d0407baSopenharmony_ci#define DISPLAY_LOGW(format, ...) \ 643d0407baSopenharmony_ci do { \ 653d0407baSopenharmony_ci HILOG_WARN(LOG_CORE, "[%{public}s@%{public}s:%{public}d] " format "\n", __FUNCTION__, FILENAME, __LINE__, \ 663d0407baSopenharmony_ci ##__VA_ARGS__); \ 673d0407baSopenharmony_ci } while (0) 683d0407baSopenharmony_ci#endif 693d0407baSopenharmony_ci 703d0407baSopenharmony_ci#ifndef DISPLAY_LOGE 713d0407baSopenharmony_ci#define DISPLAY_LOGE(format, ...) \ 723d0407baSopenharmony_ci do { \ 733d0407baSopenharmony_ci HILOG_ERROR(LOG_CORE, \ 743d0407baSopenharmony_ci "\033[0;32;31m" \ 753d0407baSopenharmony_ci "[%{public}s@%{public}s:%{public}d] " format "\033[m" \ 763d0407baSopenharmony_ci "\n", \ 773d0407baSopenharmony_ci __FUNCTION__, FILENAME, __LINE__, ##__VA_ARGS__); \ 783d0407baSopenharmony_ci } while (0) 793d0407baSopenharmony_ci#endif 803d0407baSopenharmony_ci 813d0407baSopenharmony_ci#ifndef CHECK_NULLPOINTER_RETURN_VALUE 823d0407baSopenharmony_ci#define CHECK_NULLPOINTER_RETURN_VALUE(pointer, ret) \ 833d0407baSopenharmony_ci do { \ 843d0407baSopenharmony_ci if ((pointer) == NULL) { \ 853d0407baSopenharmony_ci DISPLAY_LOGE("pointer is null and return ret\n"); \ 863d0407baSopenharmony_ci return (ret); \ 873d0407baSopenharmony_ci } \ 883d0407baSopenharmony_ci } while (0) 893d0407baSopenharmony_ci#endif 903d0407baSopenharmony_ci 913d0407baSopenharmony_ci#ifndef CHECK_NULLPOINTER_RETURN 923d0407baSopenharmony_ci#define CHECK_NULLPOINTER_RETURN(pointer) \ 933d0407baSopenharmony_ci do { \ 943d0407baSopenharmony_ci if ((pointer) == NULL) { \ 953d0407baSopenharmony_ci DISPLAY_LOGE("pointer is null and return\n"); \ 963d0407baSopenharmony_ci return; \ 973d0407baSopenharmony_ci } \ 983d0407baSopenharmony_ci } while (0) 993d0407baSopenharmony_ci#endif 1003d0407baSopenharmony_ci 1013d0407baSopenharmony_ci#ifndef DISPLAY_CHK_RETURN 1023d0407baSopenharmony_ci#define DISPLAY_CHK_RETURN(val, ret, ...) \ 1033d0407baSopenharmony_ci do { \ 1043d0407baSopenharmony_ci if (val) { \ 1053d0407baSopenharmony_ci __VA_ARGS__; \ 1063d0407baSopenharmony_ci return (ret); \ 1073d0407baSopenharmony_ci } \ 1083d0407baSopenharmony_ci } while (0) 1093d0407baSopenharmony_ci#endif 1103d0407baSopenharmony_ci 1113d0407baSopenharmony_ci#ifndef DISPLAY_CHK_RETURN_NOT_VALUE 1123d0407baSopenharmony_ci#define DISPLAY_CHK_RETURN_NOT_VALUE(val, ret, ...) \ 1133d0407baSopenharmony_ci do { \ 1143d0407baSopenharmony_ci if (val) { \ 1153d0407baSopenharmony_ci __VA_ARGS__; \ 1163d0407baSopenharmony_ci return; \ 1173d0407baSopenharmony_ci } \ 1183d0407baSopenharmony_ci } while (0) 1193d0407baSopenharmony_ci#endif 1203d0407baSopenharmony_ci 1213d0407baSopenharmony_ci#ifdef __cplusplus 1223d0407baSopenharmony_ci} 1233d0407baSopenharmony_ci#endif 1243d0407baSopenharmony_ci 1253d0407baSopenharmony_ci#endif /* DISP_COMMON_H */ 126