eal: simplify meson build of common directory
[dpdk.git] / lib / librte_eal / common / include / rte_dev.h
index cd6c187..a5c35f0 100644 (file)
@@ -43,67 +43,15 @@ typedef void (*rte_dev_event_cb_fn)(const char *device_name,
                                        enum rte_dev_event_type event,
                                        void *cb_arg);
 
-__attribute__((format(printf, 2, 0)))
-static inline void
-rte_pmd_debug_trace(const char *func_name, const char *fmt, ...)
-{
-       va_list ap;
-
-       va_start(ap, fmt);
-
-       {
-               char buffer[vsnprintf(NULL, 0, fmt, ap) + 1];
-
-               va_end(ap);
-
-               va_start(ap, fmt);
-               vsnprintf(buffer, sizeof(buffer), fmt, ap);
-               va_end(ap);
-
-               rte_log(RTE_LOG_ERR, RTE_LOGTYPE_PMD, "%s: %s",
-                       func_name, buffer);
-       }
-}
-
-/*
- * Enable RTE_PMD_DEBUG_TRACE() when at least one component relying on the
- * RTE_*_RET() macros defined below is compiled in debug mode.
- */
-#if defined(RTE_LIBRTE_EVENTDEV_DEBUG)
-#define RTE_PMD_DEBUG_TRACE(...) \
-       rte_pmd_debug_trace(__func__, __VA_ARGS__)
-#else
-#define RTE_PMD_DEBUG_TRACE(...) (void)0
-#endif
-
-/* Macros for checking for restricting functions to primary instance only */
-#define RTE_PROC_PRIMARY_OR_ERR_RET(retval) do { \
-       if (rte_eal_process_type() != RTE_PROC_PRIMARY) { \
-               RTE_PMD_DEBUG_TRACE("Cannot run in secondary processes\n"); \
-               return retval; \
-       } \
-} while (0)
-
-#define RTE_PROC_PRIMARY_OR_RET() do { \
-       if (rte_eal_process_type() != RTE_PROC_PRIMARY) { \
-               RTE_PMD_DEBUG_TRACE("Cannot run in secondary processes\n"); \
-               return; \
-       } \
-} while (0)
-
 /* Macros to check for invalid function pointers */
 #define RTE_FUNC_PTR_OR_ERR_RET(func, retval) do { \
-       if ((func) == NULL) { \
-               RTE_PMD_DEBUG_TRACE("Function not supported\n"); \
+       if ((func) == NULL) \
                return retval; \
-       } \
 } while (0)
 
 #define RTE_FUNC_PTR_OR_RET(func) do { \
-       if ((func) == NULL) { \
-               RTE_PMD_DEBUG_TRACE("Function not supported\n"); \
+       if ((func) == NULL) \
                return; \
-       } \
 } while (0)
 
 /**
@@ -163,9 +111,6 @@ struct rte_device {
 };
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice
- *
  * Query status of a device.
  *
  * @param dev
@@ -173,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);
 
 /**
@@ -196,9 +140,6 @@ int rte_eal_hotplug_add(const char *busname, const char *devname,
                        const char *drvargs);
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice
- *
  * Add matching devices.
  *
  * In multi-process, it will request other processes to add the same device.
@@ -209,7 +150,7 @@ int rte_eal_hotplug_add(const char *busname, const char *devname,
  * @return
  *   0 on success, negative on error.
  */
-int __rte_experimental rte_dev_probe(const char *devargs);
+int rte_dev_probe(const char *devargs);
 
 /**
  * Hotplug remove a given device from a specific bus.
@@ -227,9 +168,6 @@ int __rte_experimental rte_dev_probe(const char *devargs);
 int rte_eal_hotplug_remove(const char *busname, const char *devname);
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice
- *
  * Remove one device.
  *
  * In multi-process, it will request other processes to remove the same device.
@@ -240,7 +178,7 @@ int rte_eal_hotplug_remove(const char *busname, const char *devname);
  * @return
  *   0 on success, negative on error.
  */
-int __rte_experimental rte_dev_remove(struct rte_device *dev);
+int rte_dev_remove(struct rte_device *dev);
 
 /**
  * Device comparison function.
@@ -292,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.
@@ -410,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,
@@ -424,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);
@@ -448,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);
@@ -465,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);
 
@@ -479,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);
 
 /**
@@ -492,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);
 
 /**
@@ -505,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);
 
 /**
@@ -518,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_ */