diff mbox

[dpdk-dev,PATCHv8,6/6] doc: Add prog_guide section documenting pmdinfo script

Message ID 1466189185-21952-7-git-send-email-nhorman@tuxdriver.com (mailing list archive)
State Accepted, archived
Delegated to: Thomas Monjalon
Headers show

Commit Message

Neil Horman June 17, 2016, 6:46 p.m. UTC
Information on pmdinfogen may be useful to 3rd party driver developers.
Include documentation on what it does

Signed-off-by: Neil Horman <nhorman@tuxdriver.com>
Acked-by: Panu Matilainen <pmatilai@redhat.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
CC: Bruce Richardson <bruce.richardson@intel.com>
CC: Thomas Monjalon <thomas.monjalon@6wind.com>
CC: Stephen Hemminger <stephen@networkplumber.org>
CC: Panu Matilainen <pmatilai@redhat.com>
 doc/guides/prog_guide/dev_kit_build_system.rst | 43 ++++++++++++++++++++++++--
 1 file changed, 41 insertions(+), 2 deletions(-)
diff mbox


diff --git a/doc/guides/prog_guide/dev_kit_build_system.rst b/doc/guides/prog_guide/dev_kit_build_system.rst
index 3e89eae..1dc1388 100644
--- a/doc/guides/prog_guide/dev_kit_build_system.rst
+++ b/doc/guides/prog_guide/dev_kit_build_system.rst
@@ -70,7 +70,7 @@  Each build directory contains include files, libraries, and applications:
     ~/DEV/DPDK$ ls i686-native-linuxapp-gcc
-    app build hostapp include kmod lib Makefile
+    app build buildtools include kmod lib Makefile
     ~/DEV/DPDK$ ls i686-native-linuxapp-gcc/app/
@@ -264,7 +264,7 @@  These Makefiles generate a binary application.
 *   rte.extapp.mk: External application
-*   rte.hostapp.mk: Host application in the development kit framework
+*   rte.hostapp.mk: prerequisite tool to build dpdk
@@ -304,6 +304,45 @@  Misc
 *   rte.subdir.mk: Build several directories in the development kit framework.
+.. _Internally_Generated_Build_Tools:
+Internally Generated Build Tools
+``pmdinfogen`` scans an object (.o) file for various well known symbol names.  These
+well known symbol names are defined by various macros and used to export
+important information about hardware support and usage for pmd files.  For
+instance the macro:
+.. code-block:: c
+    PMD_REGISTER_DRIVER(drv, name)
+Creates the following symbol:
+.. code-block:: c
+   static char this_pmd_name0[] __attribute__((used)) = "<name>";
+Which pmdinfogen scans for.  Using this information other relevant bits of data
+can be exported from the object file and used to produce a hardware support
+description, that pmdinfogen then encodes into a json formatted string in the
+following format:
+.. code-block:: C
+   static char <name_pmd_string>="PMD_INFO_STRING=\"{'name' : '<name>', ...}\"";
+These strings can then be searched for by external tools to determine the
+hardware support of a given library or application.
 .. _Useful_Variables_Provided_by_the_Build_System:
 Useful Variables Provided by the Build System