1 /* SPDX-License-Identifier: BSD-3-Clause
5 #ifndef __SKELETON_RAWDEV_H__
6 #define __SKELETON_RAWDEV_H__
8 #include <rte_rawdev.h>
10 extern int skeleton_pmd_logtype
;
12 #define SKELETON_PMD_LOG(level, fmt, args...) \
13 rte_log(RTE_LOG_ ## level, skeleton_pmd_logtype, "%s(): " fmt "\n", \
16 #define SKELETON_PMD_FUNC_TRACE() SKELETON_PMD_LOG(DEBUG, ">>")
18 #define SKELETON_PMD_DEBUG(fmt, args...) \
19 SKELETON_PMD_LOG(DEBUG, fmt, ## args)
20 #define SKELETON_PMD_INFO(fmt, args...) \
21 SKELETON_PMD_LOG(INFO, fmt, ## args)
22 #define SKELETON_PMD_ERR(fmt, args...) \
23 SKELETON_PMD_LOG(ERR, fmt, ## args)
24 #define SKELETON_PMD_WARN(fmt, args...) \
25 SKELETON_PMD_LOG(WARNING, fmt, ## args)
26 /* Macros for self test application */
27 #define SKELETON_TEST_INFO SKELETON_PMD_INFO
28 #define SKELETON_TEST_DEBUG SKELETON_PMD_DEBUG
29 #define SKELETON_TEST_ERR SKELETON_PMD_ERR
30 #define SKELETON_TEST_WARN SKELETON_PMD_WARN
32 #define SKELETON_SELFTEST_ARG ("selftest")
34 #define SKELETON_VENDOR_ID 0x10
35 #define SKELETON_DEVICE_ID 0x01
37 #define SKELETON_MAJOR_VER 1
38 #define SKELETON_MINOR_VER 0
39 #define SKELETON_SUB_VER 0
41 #define SKELETON_MAX_QUEUES 1
43 enum skeleton_firmware_state
{
49 enum skeleton_device_state
{
54 enum skeleton_queue_state
{
55 SKELETON_QUEUE_DETACH
,
59 #define SKELETON_QUEUE_DEF_DEPTH 10
60 #define SKELETON_QUEUE_MAX_DEPTH 25
62 struct skeleton_firmware_version_info
{
68 struct skeleton_firmware
{
69 /**< Device firmware information */
70 struct skeleton_firmware_version_info firmware_version
;
72 enum skeleton_firmware_state firmware_state
;
76 #define SKELETON_MAX_ATTRIBUTES 10
77 #define SKELETON_ATTRIBUTE_NAME_MAX 20
79 struct skeleton_rawdev_attributes
{
80 /**< Name of the attribute */
82 /**< Value or reference of value of attribute */
86 /**< Device supports firmware loading/unloading */
87 #define SKELETON_CAPA_FW_LOAD 0x0001
88 /**< Device supports firmware reset */
89 #define SKELETON_CAPA_FW_RESET 0x0002
90 /**< Device support queue based communication */
91 #define SKELETON_CAPA_QUEUES 0x0004
92 /**< Default Capabilities: FW_LOAD, FW_RESET, QUEUES */
93 #define SKELETON_DEFAULT_CAPA 0x7
95 struct skeleton_rawdev_queue
{
100 struct skeleton_rawdev
{
104 /**< One of SKELETON_CAPA_* */
105 uint16_t capabilities
;
106 /**< State of device; linked to firmware state */
107 enum skeleton_device_state device_state
;
108 /**< Firmware configuration */
109 struct skeleton_firmware fw
;
110 /**< Collection of all communication channels - which can be referred
113 struct skeleton_rawdev_queue queues
[SKELETON_MAX_QUEUES
];
114 /**< Global table containing various pre-defined and user-defined
117 struct skeleton_rawdev_attributes attr
[SKELETON_MAX_ATTRIBUTES
];
118 struct rte_device
*device
;
121 struct skeleton_rawdev_conf
{
123 unsigned int capabilities
;
124 enum skeleton_device_state device_state
;
125 enum skeleton_firmware_state firmware_state
;
128 static inline struct skeleton_rawdev
*
129 skeleton_rawdev_get_priv(const struct rte_rawdev
*rawdev
)
131 return rawdev
->dev_private
;
134 int test_rawdev_skeldev(void);
136 #endif /* __SKELETON_RAWDEV_H__ */