X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=doc%2Fguides%2Fsample_app_ug%2Fhello_world.rst;h=c4db52c6a16b905e48ffba26f65634f6d43c39c4;hb=6cc51b1293ceac4a77d4bf7ac91a8bbd59e1f78c;hp=72e1e1152c49a9cf65696d5b0b1dd747efd39947;hpb=e0c7c47319576799f5affced83caf776ea4de61b;p=dpdk.git diff --git a/doc/guides/sample_app_ug/hello_world.rst b/doc/guides/sample_app_ug/hello_world.rst index 72e1e1152c..c4db52c6a1 100644 --- a/doc/guides/sample_app_ug/hello_world.rst +++ b/doc/guides/sample_app_ug/hello_world.rst @@ -1,32 +1,5 @@ -.. BSD LICENSE - Copyright(c) 2010-2014 Intel Corporation. All rights reserved. - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - * Neither the name of Intel Corporation nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +.. SPDX-License-Identifier: BSD-3-Clause + Copyright(c) 2010-2014 Intel Corporation. Hello World Sample Application ============================== @@ -37,35 +10,18 @@ The application simply prints an "helloworld" message on every enabled lcore. Compiling the Application ------------------------- -#. Go to the example directory: +To compile the sample application see :doc:`compiling`. - .. code-block:: console - - export RTE_SDK=/path/to/rte_sdk - cd ${RTE_SDK}/examples/helloworld - -#. Set the target (a default target is used if not specified). For example: - - .. code-block:: console - - export RTE_TARGET=x86_64-native-linuxapp-gcc - - See the *DPDK Getting Started* Guide for possible RTE_TARGET values. - -#. Build the application: - - .. code-block:: console - - make +The application is located in the ``helloworld`` sub-directory. Running the Application ----------------------- -To run the example in a linuxapp environment: +To run the example in a linux environment: .. code-block:: console - $ ./build/helloworld -c f -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. @@ -81,18 +37,12 @@ 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 +.. 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 - main(int argc, char **argv) - - { - ret = rte_eal_init(argc, argv); - if (ret < 0) - rte_panic("Cannot init EAL\n"); - -This call finishes the initialization process that was started before main() is called (in case of a Linuxapp environment). +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. The value returned is the number of parsed arguments. @@ -103,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( attribute ((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 slave lcore */ - - RTE_LCORE_FOREACH_SLAVE(lcore_id) { - rte_eal_remote_launch(lcore_hello, NULL, lcore_id); - } - - /* call it on master 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_MASTER); +.. 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.