DPDK
17.05.2
Main Page
Related Pages
Data Structures
Files
Examples
File List
Globals
lib
librte_eal
common
include
rte_bus.h
Go to the documentation of this file.
1
/*-
2
* BSD LICENSE
3
*
4
* Copyright(c) 2016 NXP
5
* All rights reserved.
6
*
7
* Redistribution and use in source and binary forms, with or without
8
* modification, are permitted provided that the following conditions
9
* are met:
10
*
11
* * Redistributions of source code must retain the above copyright
12
* notice, this list of conditions and the following disclaimer.
13
* * Redistributions in binary form must reproduce the above copyright
14
* notice, this list of conditions and the following disclaimer in
15
* the documentation and/or other materials provided with the
16
* distribution.
17
* * Neither the name of NXP nor the names of its
18
* contributors may be used to endorse or promote products derived
19
* from this software without specific prior written permission.
20
*
21
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
22
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
23
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
24
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
25
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
26
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
27
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
28
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
29
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
30
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
31
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
32
*/
33
34
#ifndef _RTE_BUS_H_
35
#define _RTE_BUS_H_
36
46
#ifdef __cplusplus
47
extern
"C"
{
48
#endif
49
50
#include <stdio.h>
51
#include <sys/queue.h>
52
53
#include <
rte_log.h
>
54
#include <
rte_dev.h
>
55
57
TAILQ_HEAD
(rte_bus_list,
rte_bus
);
58
70
typedef
int (*
rte_bus_scan_t
)(void);
71
82
typedef
int (*
rte_bus_probe_t
)(void);
83
87
struct
rte_bus
{
88
TAILQ_ENTRY
(
rte_bus
) next;
89
const
char
*
name
;
90
rte_bus_scan_t
scan
;
91
rte_bus_probe_t
probe
;
92
};
93
101
void
rte_bus_register
(
struct
rte_bus
*bus);
102
110
void
rte_bus_unregister
(
struct
rte_bus
*bus);
111
119
int
rte_bus_scan
(
void
);
120
129
int
rte_bus_probe
(
void
);
130
141
void
rte_bus_dump
(FILE *f);
142
147
#define RTE_REGISTER_BUS(nm, bus) \
148
static void __attribute__((constructor(101), used)) businitfn_ ##nm(void) \
149
{\
150
(bus).name = RTE_STR(nm);\
151
rte_bus_register(&bus); \
152
}
153
154
#ifdef __cplusplus
155
}
156
#endif
157
158
#endif
/* _RTE_BUS_H */
Generated by
1.8.1.2