vdpa/sfc: introduce Xilinx vDPA driver
[dpdk.git] / drivers / vdpa / sfc / sfc_vdpa_log.h
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 /** Common log type name prefix */
12 #define SFC_VDPA_LOGTYPE_PREFIX "pmd.vdpa.sfc."
13
14 /** Log PMD generic message, add a prefix and a line break */
15 #define SFC_VDPA_GENERIC_LOG(level, ...) \
16         rte_log(RTE_LOG_ ## level, sfc_vdpa_logtype_driver,             \
17                 RTE_FMT("PMD: " RTE_FMT_HEAD(__VA_ARGS__ ,) "\n",       \
18                         RTE_FMT_TAIL(__VA_ARGS__ ,)))
19
20 /** Name prefix for the per-device log type used to report basic information */
21 #define SFC_VDPA_LOGTYPE_MAIN_STR       SFC_VDPA_LOGTYPE_PREFIX "main"
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_ */