eal: simplify meson build of common directory
[dpdk.git] / lib / librte_eal / common / include / rte_dev.h
index 3cad4bc..a5c35f0 100644 (file)
@@ -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);
 
 /**
@@ -234,7 +230,7 @@ __attribute__((used)) = str
  *   "pci:v8086:d*:sv*:sd*"  all PCI devices supported by this driver
  *                           whose vendor id is 0x8086.
  *
- * The format of the kernel modules list is a parenthesed expression
+ * The format of the kernel modules list is a parenthesized expression
  * containing logical-and (&) and logical-or (|).
  *
  * The device pattern and the kmod expression are separated by a space.
@@ -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_ */