X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=doc%2Fguides%2Fsample_app_ug%2Fhello_world.rst;h=c4db52c6a16b905e48ffba26f65634f6d43c39c4;hb=34fd4373ce76efd0236e59397c495762c2ec9e64;hp=4d5e41c5cb38627e2464f1ed3203d11d71f234cf;hpb=cb056611a8ed9ab9024f3b91bf26e97255194514;p=dpdk.git diff --git a/doc/guides/sample_app_ug/hello_world.rst b/doc/guides/sample_app_ug/hello_world.rst index 4d5e41c5cb..c4db52c6a1 100644 --- a/doc/guides/sample_app_ug/hello_world.rst +++ b/doc/guides/sample_app_ug/hello_world.rst @@ -1,4 +1,4 @@ -o.. SPDX-License-Identifier: BSD-3-Clause +.. SPDX-License-Identifier: BSD-3-Clause Copyright(c) 2010-2014 Intel Corporation. Hello World Sample Application @@ -21,7 +21,7 @@ To run the example in a linux environment: .. code-block:: console - $ ./build/helloworld -l 0-3 -n 4 + $ .//examples/dpdk-helloworld -l 0-3 -n 4 Refer to *DPDK Getting Started Guide* for general information on running applications and the Environment Abstraction Layer (EAL) options. @@ -37,16 +37,10 @@ EAL Initialization The first task is to initialize the Environment Abstraction Layer (EAL). This is done in the main() function using the following code: -.. code-block:: c - - int - - main(int argc, char **argv) - - { - ret = rte_eal_init(argc, argv); - if (ret < 0) - rte_panic("Cannot init EAL\n"); +.. literalinclude:: ../../../examples/helloworld/main.c + :language: c + :start-after: Initialization of Environment Abstraction Layer (EAL). 8< + :end-before: >8 End of initialization of Environment Abstraction Layer This call finishes the initialization process that was started before main() is called (in case of a Linux environment). The argc and argv arguments are provided to the rte_eal_init() function. @@ -59,36 +53,25 @@ Once the EAL is initialized, the application is ready to launch a function on an In this example, lcore_hello() is called on every available lcore. The following is the definition of the function: -.. code-block:: c - - static int - lcore_hello(__rte_unused void *arg) - { - unsigned lcore_id; - - lcore_id = rte_lcore_id(); - printf("hello from core %u\n", lcore_id); - return 0; - } +.. literalinclude:: ../../../examples/helloworld/main.c + :language: c + :start-after: Launch a function on lcore. 8< + :end-before: >8 End of launching function on lcore. The code that launches the function on each lcore is as follows: -.. code-block:: c - - /* call lcore_hello() on every worker lcore */ - - RTE_LCORE_FOREACH_WORKER(lcore_id) { - rte_eal_remote_launch(lcore_hello, NULL, lcore_id); - } - - /* call it on main lcore too */ - - lcore_hello(NULL); +.. literalinclude:: ../../../examples/helloworld/main.c + :language: c + :start-after: Launches the function on each lcore. 8< + :end-before: >8 End of launching the function on each lcore. + :dedent: 1 The following code is equivalent and simpler: -.. code-block:: c - - rte_eal_mp_remote_launch(lcore_hello, NULL, CALL_MAIN); +.. literalinclude:: ../../../examples/helloworld/main.c + :language: c + :start-after: Simpler equivalent. 8< + :end-before: >8 End of simpler equivalent. + :dedent: 2 Refer to the *DPDK API Reference* for detailed information on the rte_eal_mp_remote_launch() function.