1 /* SPDX-License-Identifier: BSD-3-Clause 2 * Copyright(c) 2020-2021 Xilinx, Inc. 3 */ 4 5 #ifndef _SFC_VDPA_LOG_H_ 6 #define _SFC_VDPA_LOG_H_ 7 8 /** Generic driver log type */ 9 extern int sfc_vdpa_logtype_driver; 10 11 /** Log PMD generic message, add a prefix and a line break */ 12 #define SFC_VDPA_GENERIC_LOG(level, ...) \ 13 rte_log(RTE_LOG_ ## level, sfc_vdpa_logtype_driver, \ 14 RTE_FMT("PMD: " RTE_FMT_HEAD(__VA_ARGS__ ,) "\n", \ 15 RTE_FMT_TAIL(__VA_ARGS__ ,))) 16 17 /** Name prefix for the per-device log type used to report basic information */ 18 #define SFC_VDPA_LOGTYPE_MAIN_STR RTE_STR(RTE_LOG_DEFAULT_LOGTYPE) ".main" 19 20 /** Device MCDI log type name prefix */ 21 #define SFC_VDPA_LOGTYPE_MCDI_STR RTE_STR(RTE_LOG_DEFAULT_LOGTYPE) ".mcdi" 22 23 #define SFC_VDPA_LOG_PREFIX_MAX 32 24 25 /* Log PMD message, automatically add prefix and \n */ 26 #define SFC_VDPA_LOG(sva, level, ...) \ 27 do { \ 28 const struct sfc_vdpa_adapter *_sva = (sva); \ 29 \ 30 rte_log(RTE_LOG_ ## level, _sva->logtype_main, \ 31 RTE_FMT("%s" RTE_FMT_HEAD(__VA_ARGS__ ,) "\n", \ 32 _sva->log_prefix, \ 33 RTE_FMT_TAIL(__VA_ARGS__ ,))); \ 34 } while (0) 35 36 #define sfc_vdpa_err(sva, ...) \ 37 SFC_VDPA_LOG(sva, ERR, __VA_ARGS__) 38 39 #define sfc_vdpa_warn(sva, ...) \ 40 SFC_VDPA_LOG(sva, WARNING, __VA_ARGS__) 41 42 #define sfc_vdpa_notice(sva, ...) \ 43 SFC_VDPA_LOG(sva, NOTICE, __VA_ARGS__) 44 45 #define sfc_vdpa_info(sva, ...) \ 46 SFC_VDPA_LOG(sva, INFO, __VA_ARGS__) 47 48 #define sfc_vdpa_log_init(sva, ...) \ 49 SFC_VDPA_LOG(sva, INFO, \ 50 RTE_FMT("%s(): " \ 51 RTE_FMT_HEAD(__VA_ARGS__ ,), \ 52 __func__, \ 53 RTE_FMT_TAIL(__VA_ARGS__ ,))) 54 55 #endif /* _SFC_VDPA_LOG_H_ */ 56