X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=lib%2Flibrte_eal%2Fcommon%2Finclude%2Frte_dev.h;h=c25e09e3d906aae61612e4e989b39b7a489f73e6;hb=4958ca3a443a33ed49b2601232349037dbb7124f;hp=3cad4bce57bf3deb9e2556941885ee65089b7d8a;hpb=e7d798172f911b1af74f3c54ef67e8bb18b36284;p=dpdk.git diff --git a/lib/librte_eal/common/include/rte_dev.h b/lib/librte_eal/common/include/rte_dev.h index 3cad4bce57..c25e09e3d9 100644 --- a/lib/librte_eal/common/include/rte_dev.h +++ b/lib/librte_eal/common/include/rte_dev.h @@ -111,9 +111,6 @@ struct rte_device { }; /** - * @warning - * @b EXPERIMENTAL: this API may change without prior notice - * * Query status of a device. * * @param dev @@ -121,7 +118,6 @@ struct rte_device { * @return * (int)true if already probed successfully, 0 otherwise. */ -__rte_experimental int rte_dev_is_probed(const struct rte_device *dev); /** @@ -352,7 +348,7 @@ rte_dev_iterator_next(struct rte_dev_iterator *it); * @b EXPERIMENTAL: this API may change without prior notice * * It registers the callback for the specific device. - * Multiple callbacks cal be registered at the same time. + * Multiple callbacks can be registered at the same time. * * @param device_name * The device name, that is the param name of the struct rte_device, @@ -366,7 +362,8 @@ rte_dev_iterator_next(struct rte_dev_iterator *it); * - On success, zero. * - On failure, a negative value. */ -int __rte_experimental +__rte_experimental +int rte_dev_event_callback_register(const char *device_name, rte_dev_event_cb_fn cb_fn, void *cb_arg); @@ -390,7 +387,8 @@ rte_dev_event_callback_register(const char *device_name, * - On success, return the number of callback entities removed. * - On failure, a negative value. */ -int __rte_experimental +__rte_experimental +int rte_dev_event_callback_unregister(const char *device_name, rte_dev_event_cb_fn cb_fn, void *cb_arg); @@ -407,7 +405,8 @@ rte_dev_event_callback_unregister(const char *device_name, * @param event * the device event type. */ -void __rte_experimental +__rte_experimental +void rte_dev_event_callback_process(const char *device_name, enum rte_dev_event_type event); @@ -421,7 +420,8 @@ rte_dev_event_callback_process(const char *device_name, * - On success, zero. * - On failure, a negative value. */ -int __rte_experimental +__rte_experimental +int rte_dev_event_monitor_start(void); /** @@ -434,7 +434,8 @@ rte_dev_event_monitor_start(void); * - On success, zero. * - On failure, a negative value. */ -int __rte_experimental +__rte_experimental +int rte_dev_event_monitor_stop(void); /** @@ -447,7 +448,8 @@ rte_dev_event_monitor_stop(void); * - On success, zero. * - On failure, a negative value. */ -int __rte_experimental +__rte_experimental +int rte_dev_hotplug_handle_enable(void); /** @@ -460,7 +462,57 @@ rte_dev_hotplug_handle_enable(void); * - On success, zero. * - On failure, a negative value. */ -int __rte_experimental +__rte_experimental +int rte_dev_hotplug_handle_disable(void); +/** + * Device level DMA map function. + * After a successful call, the memory segment will be mapped to the + * given device. + * + * @note: Memory must be registered in advance using rte_extmem_* APIs. + * + * @param dev + * Device pointer. + * @param addr + * Virtual address to map. + * @param iova + * IOVA address to map. + * @param len + * Length of the memory segment being mapped. + * + * @return + * 0 if mapping was successful. + * Negative value and rte_errno is set otherwise. + */ +__rte_experimental +int +rte_dev_dma_map(struct rte_device *dev, void *addr, uint64_t iova, size_t len); + +/** + * Device level DMA unmap function. + * After a successful call, the memory segment will no longer be + * accessible by the given device. + * + * @note: Memory must be registered in advance using rte_extmem_* APIs. + * + * @param dev + * Device pointer. + * @param addr + * Virtual address to unmap. + * @param iova + * IOVA address to unmap. + * @param len + * Length of the memory segment being mapped. + * + * @return + * 0 if un-mapping was successful. + * Negative value and rte_errno is set otherwise. + */ +__rte_experimental +int +rte_dev_dma_unmap(struct rte_device *dev, void *addr, uint64_t iova, + size_t len); + #endif /* _RTE_DEV_H_ */