mirror of https://github.com/F-Stack/f-stack.git
80 lines
1.6 KiB
C
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
|