DPDK
16.11.11
Main Page
Related Pages
Data Structures
Files
Examples
File List
Globals
lib
librte_eal
common
include
rte_vdev.h
1
/*-
2
* BSD LICENSE
3
*
4
* Copyright(c) 2016 RehiveTech. All rights reserved.
5
*
6
* Redistribution and use in source and binary forms, with or without
7
* modification, are permitted provided that the following conditions
8
* are met:
9
*
10
* * Redistributions of source code must retain the above copyright
11
* notice, this list of conditions and the following disclaimer.
12
* * Redistributions in binary form must reproduce the above copyright
13
* notice, this list of conditions and the following disclaimer in
14
* the documentation and/or other materials provided with the
15
* distribution.
16
* * Neither the name of RehiveTech nor the names of its
17
* contributors may be used to endorse or promote products derived
18
* from this software without specific prior written permission.
19
*
20
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
21
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
22
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
23
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
24
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
25
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
26
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
27
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
28
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
29
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
30
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31
*/
32
33
#ifndef RTE_VDEV_H
34
#define RTE_VDEV_H
35
36
#ifdef __cplusplus
37
extern
"C"
{
38
#endif
39
40
#include <sys/queue.h>
41
#include <
rte_dev.h
>
42
44
TAILQ_HEAD
(vdev_driver_list,
rte_vdev_driver
);
45
49
typedef
int (rte_vdev_probe_t)(
const
char
*name,
const
char
*args);
50
54
typedef
int (rte_vdev_remove_t)(
const
char
*name);
55
59
struct
rte_vdev_driver
{
60
TAILQ_ENTRY
(
rte_vdev_driver
) next;
61
struct
rte_driver
driver
;
62
rte_vdev_probe_t *
probe
;
63
rte_vdev_remove_t *
remove
;
64
};
65
73
void
rte_eal_vdrv_register(
struct
rte_vdev_driver
*driver);
74
82
void
rte_eal_vdrv_unregister(
struct
rte_vdev_driver
*driver);
83
84
#define RTE_PMD_REGISTER_VDEV(nm, vdrv)\
85
RTE_INIT(vdrvinitfn_ ##vdrv);\
86
static const char *vdrvinit_ ## nm ## _alias;\
87
static void vdrvinitfn_ ##vdrv(void)\
88
{\
89
(vdrv).driver.name = RTE_STR(nm);\
90
(vdrv).driver.alias = vdrvinit_ ## nm ## _alias;\
91
rte_eal_vdrv_register(&vdrv);\
92
} \
93
RTE_PMD_EXPORT_NAME(nm, __COUNTER__)
94
95
#define RTE_PMD_REGISTER_ALIAS(nm, alias)\
96
static const char *vdrvinit_ ## nm ## _alias = RTE_STR(alias)
97
98
#ifdef __cplusplus
99
}
100
#endif
101
102
#endif
rte_vdev_driver::probe
rte_vdev_probe_t * probe
Definition:
rte_vdev.h:62
rte_vdev_driver::driver
struct rte_driver driver
Definition:
rte_vdev.h:61
rte_driver
Definition:
rte_dev.h:166
TAILQ_HEAD
TAILQ_HEAD(rte_driver_list, rte_driver)
rte_vdev_driver::TAILQ_ENTRY
TAILQ_ENTRY(rte_vdev_driver) next
rte_dev.h
rte_vdev_driver
Definition:
rte_vdev.h:59
Generated by
1.8.9.1