15e7596baSVijay Kumar Srivastava /* SPDX-License-Identifier: BSD-3-Clause 25e7596baSVijay Kumar Srivastava * Copyright(c) 2020-2021 Xilinx, Inc. 35e7596baSVijay Kumar Srivastava */ 45e7596baSVijay Kumar Srivastava 55e7596baSVijay Kumar Srivastava #ifndef _SFC_VDPA_LOG_H_ 65e7596baSVijay Kumar Srivastava #define _SFC_VDPA_LOG_H_ 75e7596baSVijay Kumar Srivastava 85e7596baSVijay Kumar Srivastava /** Generic driver log type */ 95e7596baSVijay Kumar Srivastava extern int sfc_vdpa_logtype_driver; 105e7596baSVijay Kumar Srivastava 115e7596baSVijay Kumar Srivastava /** Log PMD generic message, add a prefix and a line break */ 125e7596baSVijay Kumar Srivastava #define SFC_VDPA_GENERIC_LOG(level, ...) \ 135e7596baSVijay Kumar Srivastava rte_log(RTE_LOG_ ## level, sfc_vdpa_logtype_driver, \ 145e7596baSVijay Kumar Srivastava RTE_FMT("PMD: " RTE_FMT_HEAD(__VA_ARGS__ ,) "\n", \ 155e7596baSVijay Kumar Srivastava RTE_FMT_TAIL(__VA_ARGS__ ,))) 165e7596baSVijay Kumar Srivastava 175e7596baSVijay Kumar Srivastava /** Name prefix for the per-device log type used to report basic information */ 18*df47324bSDavid Marchand #define SFC_VDPA_LOGTYPE_MAIN_STR RTE_STR(RTE_LOG_DEFAULT_LOGTYPE) ".main" 195e7596baSVijay Kumar Srivastava 206dad9a73SVijay Kumar Srivastava /** Device MCDI log type name prefix */ 21*df47324bSDavid Marchand #define SFC_VDPA_LOGTYPE_MCDI_STR RTE_STR(RTE_LOG_DEFAULT_LOGTYPE) ".mcdi" 226dad9a73SVijay Kumar Srivastava 235e7596baSVijay Kumar Srivastava #define SFC_VDPA_LOG_PREFIX_MAX 32 245e7596baSVijay Kumar Srivastava 255e7596baSVijay Kumar Srivastava /* Log PMD message, automatically add prefix and \n */ 265e7596baSVijay Kumar Srivastava #define SFC_VDPA_LOG(sva, level, ...) \ 275e7596baSVijay Kumar Srivastava do { \ 285e7596baSVijay Kumar Srivastava const struct sfc_vdpa_adapter *_sva = (sva); \ 295e7596baSVijay Kumar Srivastava \ 305e7596baSVijay Kumar Srivastava rte_log(RTE_LOG_ ## level, _sva->logtype_main, \ 315e7596baSVijay Kumar Srivastava RTE_FMT("%s" RTE_FMT_HEAD(__VA_ARGS__ ,) "\n", \ 325e7596baSVijay Kumar Srivastava _sva->log_prefix, \ 335e7596baSVijay Kumar Srivastava RTE_FMT_TAIL(__VA_ARGS__ ,))); \ 345e7596baSVijay Kumar Srivastava } while (0) 355e7596baSVijay Kumar Srivastava 365e7596baSVijay Kumar Srivastava #define sfc_vdpa_err(sva, ...) \ 375e7596baSVijay Kumar Srivastava SFC_VDPA_LOG(sva, ERR, __VA_ARGS__) 385e7596baSVijay Kumar Srivastava 395e7596baSVijay Kumar Srivastava #define sfc_vdpa_warn(sva, ...) \ 405e7596baSVijay Kumar Srivastava SFC_VDPA_LOG(sva, WARNING, __VA_ARGS__) 415e7596baSVijay Kumar Srivastava 425e7596baSVijay Kumar Srivastava #define sfc_vdpa_notice(sva, ...) \ 435e7596baSVijay Kumar Srivastava SFC_VDPA_LOG(sva, NOTICE, __VA_ARGS__) 445e7596baSVijay Kumar Srivastava 455e7596baSVijay Kumar Srivastava #define sfc_vdpa_info(sva, ...) \ 465e7596baSVijay Kumar Srivastava SFC_VDPA_LOG(sva, INFO, __VA_ARGS__) 475e7596baSVijay Kumar Srivastava 485e7596baSVijay Kumar Srivastava #define sfc_vdpa_log_init(sva, ...) \ 495e7596baSVijay Kumar Srivastava SFC_VDPA_LOG(sva, INFO, \ 505e7596baSVijay Kumar Srivastava RTE_FMT("%s(): " \ 515e7596baSVijay Kumar Srivastava RTE_FMT_HEAD(__VA_ARGS__ ,), \ 525e7596baSVijay Kumar Srivastava __func__, \ 535e7596baSVijay Kumar Srivastava RTE_FMT_TAIL(__VA_ARGS__ ,))) 545e7596baSVijay Kumar Srivastava 555e7596baSVijay Kumar Srivastava #endif /* _SFC_VDPA_LOG_H_ */ 56