On 27-Jun-19 11:40 AM, Bruce Richardson wrote:
Add in the "info_get" function to the driver, to allow us to query the
device. This allows us to have the unit test pick up the presence of
supported hardware or not.

Signed-off-by: Bruce Richardson <bruce.richard...@intel.com>

---

V2: Test case is placed in driver self-test routine
---
  app/test/test_rawdev.c             | 11 ++++++++++
  doc/guides/rawdevs/ioat_rawdev.rst | 34 ++++++++++++++++++++++++++++++
  drivers/raw/ioat/ioat_rawdev.c     | 11 ++++++++++
  drivers/raw/ioat/rte_ioat_rawdev.h | 11 ++++++++++
  4 files changed, 67 insertions(+)

diff --git a/app/test/test_rawdev.c b/app/test/test_rawdev.c
index 88549fb61..4db762b4c 100644
--- a/app/test/test_rawdev.c
+++ b/app/test/test_rawdev.c
@@ -29,6 +29,17 @@ REGISTER_TEST_COMMAND(rawdev_autotest, 
test_rawdev_selftest_skeleton);
  static int
  test_rawdev_selftest_ioat(void)
  {
+       const int count = rte_rawdev_count();
+       int i;
+
+       for (i = 0; i < count; i++) {
+               struct rte_rawdev_info info = { .dev_private = NULL };
+               if (rte_rawdev_info_get(i, &info) == 0 &&
+                               strstr(info.driver_name, "ioat") != NULL)
+                       return 0;

TEST_SUCCESS? Also, didn't "ioat" have a macro for its name?

+       }
+
+       printf("No IOAT rawdev found, skipping tests\n");
        return TEST_SKIPPED;
  }
diff --git a/doc/guides/rawdevs/ioat_rawdev.rst b/doc/guides/rawdevs/ioat_rawdev.rst
index 4b7fe8a8f..0ce984490 100644
--- a/doc/guides/rawdevs/ioat_rawdev.rst
+++ b/doc/guides/rawdevs/ioat_rawdev.rst
@@ -83,3 +83,37 @@ parameters need to be passed to create or initialize the 
device.
  Once probed successfully, the device will appear as a ``rawdev``, that is a
  "raw device type" inside DPDK, and can be accessed using APIs from the
  ``rte_rawdev`` library.
+
+Using IOAT Rawdev Devices
+--------------------------
+
+To use the devices from an application, the rawdev API can be used, along
+with definitions taken from the device-specific header file
+``rte_ioat_rawdev.h``. This header is needed to get the definition of
+structure parameters used by some of the rawdev APIs for IOAT rawdev
+devices, as well as providing key functions for using the device for memory
+copies.
+
+Getting Device Information
+~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Basic information about each rawdev device can be got using the

According to certain unreliable sources [1], usage of "can be got" has not been used since the end of 19th century. I didn't think you were *that* old, Bruce!

+``rte_rawdev_info_get()`` API. For most applications, this API will be
+needed to verify that the rawdev in question is of the expected type. For
+example, the following code in ``test_ioat_rawdev.c`` is used to identify
+the IOAT rawdev device for use for the tests:
+
+.. code-block:: C
+
+        for (i = 0; i < count && !found; i++) {
+                struct rte_rawdev_info info = { .dev_private = NULL };
+                found = (rte_rawdev_info_get(i, &info) == 0 &&
+                                strcmp(info.driver_name,
+                                                IOAT_PMD_RAWDEV_NAME_STR) == 
0);
+        }

The code here doesn't match the actual implementation in the autotest.

--
Thanks,
Anatoly

Reply via email to