f-stack/dpdk/drivers/bus/vdev/rte_bus_vdev.h

80 lines
1.6 KiB
C

/* SPDX-License-Identifier: BSD-3-Clause
* Copyright(c) 2016 RehiveTech. All rights reserved.
*/
#ifndef RTE_VDEV_H
#define RTE_VDEV_H
/**
* @file
* RTE virtual bus API
*
*/
#ifdef __cplusplus
extern "C" {
#endif
typedef void (*rte_vdev_scan_callback)(void *user_arg);
/**
* Add a callback to be called on vdev scan
* before reading the devargs list.
*
* This function cannot be called in a scan callback
* because of deadlock.
*
* @param callback
* The function to be called which can update the devargs list.
* @param user_arg
* An opaque pointer passed to callback.
* @return
* 0 on success, negative on error
*/
int
rte_vdev_add_custom_scan(rte_vdev_scan_callback callback, void *user_arg);
/**
* Remove a registered scan callback.
*
* This function cannot be called in a scan callback
* because of deadlock.
*
* @param callback
* The registered function to be removed.
* @param user_arg
* The associated opaque pointer or (void*)-1 for any.
* @return
* 0 on success
*/
int
rte_vdev_remove_custom_scan(rte_vdev_scan_callback callback, void *user_arg);
/**
* Initialize a driver specified by name.
*
* @param name
* The pointer to a driver name to be initialized.
* @param args
* The pointer to arguments used by driver initialization.
* @return
* 0 on success, negative on error
*/
int rte_vdev_init(const char *name, const char *args);
/**
* Uninitialize a driver specified by name.
*
* @param name
* The pointer to a driver name to be uninitialized.
* @return
* 0 on success, negative on error
*/
int rte_vdev_uninit(const char *name);
#ifdef __cplusplus
}
#endif
#endif