DPDK 26.07.0
rte_dev.h
Go to the documentation of this file.
1/* SPDX-License-Identifier: BSD-3-Clause
2 * Copyright(c) 2014 6WIND S.A.
3 */
4
5#ifndef _RTE_DEV_H_
6#define _RTE_DEV_H_
7
16#include <stdio.h>
17
18#include <rte_config.h>
19#include <rte_common.h>
20#include <rte_log.h>
21
22#ifdef __cplusplus
23extern "C" {
24#endif
25
26struct rte_bus;
27struct rte_devargs;
28struct rte_device;
29struct rte_driver;
30
38};
39
40typedef void (*rte_dev_event_cb_fn)(const char *device_name,
41 enum rte_dev_event_type event,
42 void *cb_arg);
43
48 RTE_DEV_ALLOWED,
49 RTE_DEV_BLOCKED,
50};
51
56 uint64_t phys_addr;
57 uint64_t len;
58 void *addr;
59};
60
69const char *
70rte_driver_name(const struct rte_driver *driver);
71
80const struct rte_bus *
81rte_dev_bus(const struct rte_device *dev);
82
91const char *
92rte_dev_bus_info(const struct rte_device *dev);
93
102const struct rte_devargs *
103rte_dev_devargs(const struct rte_device *dev);
104
113const struct rte_driver *
114rte_dev_driver(const struct rte_device *dev);
115
124const char *
125rte_dev_name(const struct rte_device *dev);
126
135int
136rte_dev_numa_node(const struct rte_device *dev);
137
138/*
139 * Internal identifier length
140 * Sufficiently large to allow for UUID or PCI address
141 */
142#define RTE_DEV_NAME_MAX_LEN 64
143
152int rte_dev_is_probed(const struct rte_device *dev);
153
170int rte_eal_hotplug_add(const char *busname, const char *devname,
171 const char *drvargs);
172
184int rte_dev_probe(const char *devargs);
185
199int rte_eal_hotplug_remove(const char *busname, const char *devname);
200
212int rte_dev_remove(struct rte_device *dev);
213
220 const char *dev_str;
221 const char *bus_str;
222 const char *cls_str;
223 struct rte_bus *bus;
224 struct rte_class *cls;
225 struct rte_device *device;
227};
228
257typedef void *(*rte_dev_iterate_t)(const void *start,
258 const char *devstr,
259 const struct rte_dev_iterator *it);
260
281int
282rte_dev_iterator_init(struct rte_dev_iterator *it, const char *str);
283
300struct rte_device *
302
303#define RTE_DEV_FOREACH(dev, devstr, it) \
304 for (rte_dev_iterator_init(it, devstr), \
305 dev = rte_dev_iterator_next(it); \
306 dev != NULL; \
307 dev = rte_dev_iterator_next(it))
308
325int
326rte_dev_event_callback_register(const char *device_name,
327 rte_dev_event_cb_fn cb_fn,
328 void *cb_arg);
329
346int
347rte_dev_event_callback_unregister(const char *device_name,
348 rte_dev_event_cb_fn cb_fn,
349 void *cb_arg);
350
360void
361rte_dev_event_callback_process(const char *device_name,
362 enum rte_dev_event_type event);
363
371int
373
381int
383
391int
393
401int
403
424int
425rte_dev_dma_map(struct rte_device *dev, void *addr, uint64_t iova, size_t len);
426
447int
448rte_dev_dma_unmap(struct rte_device *dev, void *addr, uint64_t iova,
449 size_t len);
450
451#ifdef __cplusplus
452}
453#endif
454
455#endif /* _RTE_DEV_H_ */
int rte_dev_dma_map(struct rte_device *dev, void *addr, uint64_t iova, size_t len)
int rte_dev_event_monitor_start(void)
int rte_dev_event_monitor_stop(void)
struct rte_device * rte_dev_iterator_next(struct rte_dev_iterator *it)
rte_dev_policy
Definition: rte_dev.h:47
int rte_dev_is_probed(const struct rte_device *dev)
int rte_dev_dma_unmap(struct rte_device *dev, void *addr, uint64_t iova, size_t len)
int rte_dev_event_callback_register(const char *device_name, rte_dev_event_cb_fn cb_fn, void *cb_arg)
const struct rte_driver * rte_dev_driver(const struct rte_device *dev)
int rte_dev_iterator_init(struct rte_dev_iterator *it, const char *str)
int rte_dev_probe(const char *devargs)
const char * rte_dev_name(const struct rte_device *dev)
const struct rte_bus * rte_dev_bus(const struct rte_device *dev)
int rte_dev_hotplug_handle_enable(void)
int rte_dev_event_callback_unregister(const char *device_name, rte_dev_event_cb_fn cb_fn, void *cb_arg)
const char * rte_driver_name(const struct rte_driver *driver)
int rte_dev_hotplug_handle_disable(void)
int rte_dev_remove(struct rte_device *dev)
int rte_eal_hotplug_add(const char *busname, const char *devname, const char *drvargs)
int rte_dev_numa_node(const struct rte_device *dev)
const char * rte_dev_bus_info(const struct rte_device *dev)
const struct rte_devargs * rte_dev_devargs(const struct rte_device *dev)
void rte_dev_event_callback_process(const char *device_name, enum rte_dev_event_type event)
rte_dev_event_type
Definition: rte_dev.h:34
@ RTE_DEV_EVENT_ADD
Definition: rte_dev.h:35
@ RTE_DEV_EVENT_REMOVE
Definition: rte_dev.h:36
@ RTE_DEV_EVENT_MAX
Definition: rte_dev.h:37
int rte_eal_hotplug_remove(const char *busname, const char *devname)
const char * bus_str
Definition: rte_dev.h:221
struct rte_class * cls
Definition: rte_dev.h:224
void * class_device
Definition: rte_dev.h:226
struct rte_device * device
Definition: rte_dev.h:225
struct rte_bus * bus
Definition: rte_dev.h:223
const char * cls_str
Definition: rte_dev.h:222
const char * dev_str
Definition: rte_dev.h:220
uint64_t phys_addr
Definition: rte_dev.h:56
uint64_t len
Definition: rte_dev.h:57
void * addr
Definition: rte_dev.h:58