Yes, it was done last week.
I was waiting for DPDK to build so that I can run all the platforms before
submitting, your patch worked for me but I only ran the normal examples not
ipsec and I heard that has an issue still.

On 22 September 2014 05:09, Maxim Uvarov <[email protected]> wrote:

> Mike, can you up this patch?
>
> Maxim.
>
>
> On 09/18/2014 04:09 AM, Savolainen, Petri (NSN - FI/Espoo) wrote:
>
>>
>> Reviewed-by: Petri Savolainen <[email protected]>
>>
>>
>> ... after rebase since keystone implementation has changed. There's now
>> implantation specific init functions since ODP_ERR was replaced with
>> odp_pr_err (which is keystone specific).
>>
>>
>> -Petri
>>
>>
>>
>>  -----Original Message-----
>>> From: [email protected] [mailto:lng-odp-
>>> [email protected]] On Behalf Of ext Mike Holmes
>>> Sent: Friday, September 05, 2014 12:07 AM
>>> To: [email protected]
>>> Subject: [lng-odp] [PATCH v7] Add-global_init-parameters
>>>
>>> Signed-off-by: Mike Holmes <[email protected]>
>>> ---
>>>
>>> v7:
>>> Fix netmap build
>>>
>>>   example/generator/odp_generator.c                  |  2 +-
>>>   example/l2fwd/odp_l2fwd.c                          |  2 +-
>>>   example/odp_example/odp_example.c                  |  2 +-
>>>   example/packet/odp_pktio.c                         |  2 +-
>>>   example/packet_netmap/odp_pktio_netmap.c           |  2 +-
>>>   example/timer/odp_timer_test.c                     |  2 +-
>>>   platform/linux-dpdk/Makefile.am                    |  4 +-
>>>   platform/linux-dpdk/{odp_init.c => odp_platform.c} | 66
>>> +----------------
>>> --
>>>   platform/linux-generic/Makefile.am                 |  1 +
>>>   platform/linux-generic/include/api/odp.h           |  1 +
>>>   platform/linux-generic/include/api/odp_init.h      | 34 +++++++---
>>>   platform/linux-generic/include/odp_internal.h      |  3 +
>>>   platform/linux-generic/odp_init.c                  |  9 ++-
>>>   platform/linux-generic/odp_platform.c              | 14 ++++
>>>   platform/linux-keystone2/Makefile.am               |  4 +-
>>>   .../linux-keystone2/{odp_init.c => odp_platform.c} | 74
>>> ++---------------
>>> -----
>>>   test/api_test/odp_common.c                         |  2 +-
>>>   17 files changed, 73 insertions(+), 151 deletions(-)
>>>   rename platform/linux-dpdk/{odp_init.c => odp_platform.c} (50%)
>>>   create mode 100644 platform/linux-generic/odp_platform.c
>>>   rename platform/linux-keystone2/{odp_init.c => odp_platform.c} (72%)
>>>
>>> diff --git a/example/generator/odp_generator.c
>>> b/example/generator/odp_generator.c
>>> index 65c2034..af3b819 100644
>>> --- a/example/generator/odp_generator.c
>>> +++ b/example/generator/odp_generator.c
>>> @@ -525,7 +525,7 @@ int main(int argc, char *argv[])
>>>         int core_count;
>>>
>>>         /* Init ODP before calling anything else */
>>> -       if (odp_init_global()) {
>>> +       if (odp_init_global(NULL, NULL)) {
>>>                 ODP_ERR("Error: ODP global init failed.\n");
>>>                 exit(EXIT_FAILURE);
>>>         }
>>> diff --git a/example/l2fwd/odp_l2fwd.c b/example/l2fwd/odp_l2fwd.c
>>> index 6a38c1b..df87a9e 100644
>>> --- a/example/l2fwd/odp_l2fwd.c
>>> +++ b/example/l2fwd/odp_l2fwd.c
>>> @@ -323,7 +323,7 @@ int main(int argc, char *argv[])
>>>         odp_pktio_t pktio;
>>>
>>>         /* Init ODP before calling anything else */
>>> -       if (odp_init_global()) {
>>> +       if (odp_init_global(NULL, NULL)) {
>>>                 ODP_ERR("Error: ODP global init failed.\n");
>>>                 exit(EXIT_FAILURE);
>>>         }
>>> diff --git a/example/odp_example/odp_example.c
>>> b/example/odp_example/odp_example.c
>>> index 40d237b..0aa08f7 100644
>>> --- a/example/odp_example/odp_example.c
>>> +++ b/example/odp_example/odp_example.c
>>> @@ -951,7 +951,7 @@ int main(int argc, char *argv[])
>>>
>>>         memset(thread_tbl, 0, sizeof(thread_tbl));
>>>
>>> -       if (odp_init_global()) {
>>> +       if (odp_init_global(NULL, NULL)) {
>>>                 printf("ODP global init failed.\n");
>>>                 return -1;
>>>         }
>>> diff --git a/example/packet/odp_pktio.c b/example/packet/odp_pktio.c
>>> index 88ce575..a349054 100644
>>> --- a/example/packet/odp_pktio.c
>>> +++ b/example/packet/odp_pktio.c
>>> @@ -311,7 +311,7 @@ int main(int argc, char *argv[])
>>>         int core_count;
>>>
>>>         /* Init ODP before calling anything else */
>>> -       if (odp_init_global()) {
>>> +       if (odp_init_global(NULL, NULL)) {
>>>                 ODP_ERR("Error: ODP global init failed.\n");
>>>                 exit(EXIT_FAILURE);
>>>         }
>>> diff --git a/example/packet_netmap/odp_pktio_netmap.c
>>> b/example/packet_netmap/odp_pktio_netmap.c
>>> index 88af2e5..2d6344c 100644
>>> --- a/example/packet_netmap/odp_pktio_netmap.c
>>> +++ b/example/packet_netmap/odp_pktio_netmap.c
>>> @@ -227,7 +227,7 @@ int main(int argc, char *argv[])
>>>         int i;
>>>
>>>         /* Init ODP before calling anything else */
>>> -       if (odp_init_global()) {
>>> +       if (odp_init_global(NULL, NULL)) {
>>>                 ODP_ERR("Error: ODP global init failed.\n");
>>>                 exit(EXIT_FAILURE);
>>>         }
>>> diff --git a/example/timer/odp_timer_test.c
>>> b/example/timer/odp_timer_test.c
>>> index 1061190..7e1c7a0 100644
>>> --- a/example/timer/odp_timer_test.c
>>> +++ b/example/timer/odp_timer_test.c
>>> @@ -256,7 +256,7 @@ int main(int argc, char *argv[])
>>>
>>>         memset(thread_tbl, 0, sizeof(thread_tbl));
>>>
>>> -       if (odp_init_global()) {
>>> +       if (odp_init_global(NULL, NULL)) {
>>>                 printf("ODP global init failed.\n");
>>>                 return -1;
>>>         }
>>> diff --git a/platform/linux-dpdk/Makefile.am b/platform/linux-
>>> dpdk/Makefile.am
>>> index a59435f..98d4ab4 100644
>>> --- a/platform/linux-dpdk/Makefile.am
>>> +++ b/platform/linux-dpdk/Makefile.am
>>> @@ -67,13 +67,15 @@ __LIB__libodp_la_SOURCES = \
>>>                            odp_buffer.c \
>>>                            odp_buffer_pool.c \
>>>                            ../linux-generic/odp_coremask.c \
>>> -                          odp_init.c \
>>> +                          ../linux-generic/odp_init.c \
>>>                            odp_linux.c \
>>>                            odp_packet.c \
>>>                            odp_packet_dpdk.c \
>>>                            ../linux-generic/odp_packet_flags.c \
>>>                            odp_packet_io.c \
>>>                            ../linux-generic/odp_packet_socket.c \
>>> +                          ../linux-generic/odp_crypto.c \
>>> +                          odp_platform.c \
>>>                            odp_queue.c \
>>>                            ../linux-generic/odp_ring.c \
>>>                            ../linux-generic/odp_rwlock.c \
>>> diff --git a/platform/linux-dpdk/odp_init.c b/platform/linux-
>>> dpdk/odp_platform.c
>>> similarity index 50%
>>> rename from platform/linux-dpdk/odp_init.c
>>> rename to platform/linux-dpdk/odp_platform.c
>>> index ecc2066..3162c05 100644
>>> --- a/platform/linux-dpdk/odp_init.c
>>> +++ b/platform/linux-dpdk/odp_platform.c
>>> @@ -1,4 +1,4 @@
>>> -/* Copyright (c) 2013, Linaro Limited
>>> +/* Copyright (c) 2014, Linaro Limited
>>>    * All rights reserved.
>>>    *
>>>    * SPDX-License-Identifier:     BSD-3-Clause
>>> @@ -9,7 +9,7 @@
>>>   #include <odp_debug.h>
>>>   #include <odp_packet_dpdk.h>
>>>
>>> -int odp_init_dpdk(void)
>>> +int odp_init_platform(odp_global_platform_init_t *platform_params
>>> ODP_UNUSED)
>>>   {
>>>         int test_argc = 5;
>>>         char *test_argv[6];
>>> @@ -49,65 +49,3 @@ int odp_init_dpdk(void)
>>>
>>>         return 0;
>>>   }
>>> -
>>> -int odp_init_global(void)
>>> -{
>>> -       odp_thread_init_global();
>>> -
>>> -       odp_system_info_init();
>>> -
>>> -       if (odp_init_dpdk()) {
>>> -               ODP_ERR("ODP dpdk init failed.\n");
>>> -               return -1;
>>> -       }
>>> -
>>> -       if (odp_shm_init_global()) {
>>> -               ODP_ERR("ODP shm init failed.\n");
>>> -               return -1;
>>> -       }
>>> -
>>> -       if (odp_buffer_pool_init_global()) {
>>> -               ODP_ERR("ODP buffer pool init failed.\n");
>>> -               return -1;
>>> -       }
>>> -
>>> -       if (odp_queue_init_global()) {
>>> -               ODP_ERR("ODP queue init failed.\n");
>>> -               return -1;
>>> -       }
>>> -
>>> -       if (odp_schedule_init_global()) {
>>> -               ODP_ERR("ODP schedule init failed.\n");
>>> -               return -1;
>>> -       }
>>> -
>>> -       if (odp_pktio_init_global()) {
>>> -               ODP_ERR("ODP packet io init failed.\n");
>>> -               return -1;
>>> -       }
>>> -
>>> -       if (odp_timer_init_global()) {
>>> -               ODP_ERR("ODP timer init failed.\n");
>>> -               return -1;
>>> -       }
>>> -
>>> -       return 0;
>>> -}
>>> -
>>> -
>>> -int odp_init_local(int thr_id)
>>> -{
>>> -       odp_thread_init_local(thr_id);
>>> -
>>> -       if (odp_pktio_init_local()) {
>>> -               ODP_ERR("ODP packet io local init failed.\n");
>>> -               return -1;
>>> -       }
>>> -
>>> -       if (odp_schedule_init_local()) {
>>> -               ODP_ERR("ODP schedule local init failed.\n");
>>> -               return -1;
>>> -       }
>>> -
>>> -       return 0;
>>> -}
>>> diff --git a/platform/linux-generic/Makefile.am b/platform/linux-
>>> generic/Makefile.am
>>> index 25c82ea..1b4fd13 100644
>>> --- a/platform/linux-generic/Makefile.am
>>> +++ b/platform/linux-generic/Makefile.am
>>> @@ -62,6 +62,7 @@ __LIB__libodp_la_SOURCES = \
>>>                            odp_packet_flags.c \
>>>                            odp_packet_io.c \
>>>                            odp_packet_socket.c \
>>> +                          odp_platform.c \
>>>                            odp_queue.c \
>>>                            odp_ring.c \
>>>                            odp_rwlock.c \
>>> diff --git a/platform/linux-generic/include/api/odp.h b/platform/linux-
>>> generic/include/api/odp.h
>>> index 0ee3faf..99e2ae0 100644
>>> --- a/platform/linux-generic/include/api/odp.h
>>> +++ b/platform/linux-generic/include/api/odp.h
>>> @@ -48,6 +48,7 @@ extern "C" {
>>>   #include <odp_packet.h>
>>>   #include <odp_packet_flags.h>
>>>   #include <odp_packet_io.h>
>>> +#include <odp_crypto.h>
>>>
>>>   #ifdef __cplusplus
>>>   }
>>> diff --git a/platform/linux-generic/include/api/odp_init.h
>>> b/platform/linux-generic/include/api/odp_init.h
>>> index 490324a..f89b7d4 100644
>>> --- a/platform/linux-generic/include/api/odp_init.h
>>> +++ b/platform/linux-generic/include/api/odp_init.h
>>> @@ -22,23 +22,39 @@ extern "C" {
>>>
>>>   #include <odp_std_types.h>
>>>
>>> -
>>> -
>>> +/** ODP initialisation data.
>>> + * Data that is required to initialize the ODP API with the
>>> + * application specific data such as specifying a logging callback, the
>>> log
>>> + * level etc.
>>> + */
>>> +typedef struct odp_init_t {
>>> +} odp_init_t;
>>> +
>>> +/** ODP platform initialization data.
>>> + * @note ODP API does nothing with this data. It is the underlying
>>> + * implementation that requires it and any data passed here is not
>>> portable.
>>> + * It is required that the application takes care of identifying and
>>> + * passing any required platform specific data.
>>> + */
>>> +typedef struct odp_platform_init_t {
>>> +} odp_platform_init_t;
>>>
>>>   /**
>>> - * Perform global ODP initalisation.
>>> - *
>>> - * This function must be called once before calling
>>> - * any other ODP API functions.
>>> + * Perform global ODP initialisation.
>>>    *
>>> + * This function must be called once before calling any other ODP API
>>> + * functions.
>>> + * @param[in] params Those parameters that are interpreted by the ODP
>>> API
>>> + * @param[in] platform_params Those parameters that are passed without
>>> + * interpretation by the ODP API to the implementation.
>>>    * @return 0 if successful
>>>    */
>>> -int odp_init_global(void);
>>> +int odp_init_global(odp_init_t *params,
>>> +                   odp_platform_init_t *platform_params);
>>>
>>>
>>>   /**
>>> - * Perform thread local ODP initalisation.
>>> - *
>>> + * Perform thread local ODP initialisation.
>>>    * All threads must call this function before calling
>>>    * any other ODP API functions.
>>>    * @param thr_id Thread id
>>> diff --git a/platform/linux-generic/include/odp_internal.h
>>> b/platform/linux-generic/include/odp_internal.h
>>> index aa79493..29fb3b5 100644
>>> --- a/platform/linux-generic/include/odp_internal.h
>>> +++ b/platform/linux-generic/include/odp_internal.h
>>> @@ -4,6 +4,7 @@
>>>    * SPDX-License-Identifier:     BSD-3-Clause
>>>    */
>>>
>>> +#include <odp_init.h>
>>>
>>>   /**
>>>    * @file
>>> @@ -42,6 +43,8 @@ int odp_schedule_init_local(void);
>>>   int odp_timer_init_global(void);
>>>   int odp_timer_disarm_all(void);
>>>
>>> +int odp_init_platform(odp_platform_init_t *platform_params);
>>> +
>>>   #ifdef __cplusplus
>>>   }
>>>   #endif
>>> diff --git a/platform/linux-generic/odp_init.c b/platform/linux-
>>> generic/odp_init.c
>>> index 5b7e192..834c3bf 100644
>>> --- a/platform/linux-generic/odp_init.c
>>> +++ b/platform/linux-generic/odp_init.c
>>> @@ -8,13 +8,18 @@
>>>   #include <odp_internal.h>
>>>   #include <odp_debug.h>
>>>
>>> -
>>> -int odp_init_global(void)
>>> +int odp_init_global(odp_init_t *params  ODP_UNUSED,
>>> +                   odp_platform_init_t *platform_params)
>>>   {
>>>         odp_thread_init_global();
>>>
>>>         odp_system_info_init();
>>>
>>> +       if (odp_init_platform(platform_params)) {
>>> +               ODP_ERR("ODP platform init failed.\n");
>>> +               return -1;
>>> +       }
>>> +
>>>         if (odp_shm_init_global()) {
>>>                 ODP_ERR("ODP shm init failed.\n");
>>>                 return -1;
>>> diff --git a/platform/linux-generic/odp_platform.c b/platform/linux-
>>> generic/odp_platform.c
>>> new file mode 100644
>>> index 0000000..679913d
>>> --- /dev/null
>>> +++ b/platform/linux-generic/odp_platform.c
>>> @@ -0,0 +1,14 @@
>>> +/* Copyright (c) 2014, Linaro Limited
>>> + * All rights reserved.
>>> + *
>>> + * SPDX-License-Identifier:     BSD-3-Clause
>>> + */
>>> +
>>> +#include <odp_init.h>
>>> +#include <odp_internal.h>
>>> +#include <odp_debug.h>
>>> +
>>> +int odp_init_platform(odp_platform_init_t *platform_params ODP_UNUSED)
>>> +{
>>> +       return 0;
>>> +}
>>> diff --git a/platform/linux-keystone2/Makefile.am b/platform/linux-
>>> keystone2/Makefile.am
>>> index 027c035..3751be9 100644
>>> --- a/platform/linux-keystone2/Makefile.am
>>> +++ b/platform/linux-keystone2/Makefile.am
>>> @@ -70,13 +70,15 @@ __LIB__libodp_la_SOURCES = \
>>>                            odp_buffer.c \
>>>                            odp_buffer_pool.c \
>>>                            ../linux-generic/odp_coremask.c \
>>> -                          odp_init.c \
>>> +                          ../linux-generic/odp_init.c \
>>>                            ../linux-generic/odp_linux.c \
>>>                            odp_packet.c \
>>>                            ../linux-generic/odp_packet_flags.c \
>>>                            odp_packet_io.c \
>>>                            ../linux-generic/odp_packet_socket.c \
>>> +                          odp_platform.c \
>>>                            odp_queue.c \
>>> +                          ../linux-generic/odp_crypto.c \
>>>                            ../linux-generic/odp_ring.c \
>>>                            ../linux-generic/odp_rwlock.c \
>>>                            ../linux-generic/odp_schedule.c \
>>> diff --git a/platform/linux-keystone2/odp_init.c b/platform/linux-
>>> keystone2/odp_platform.c
>>> similarity index 72%
>>> rename from platform/linux-keystone2/odp_init.c
>>> rename to platform/linux-keystone2/odp_platform.c
>>> index f832551..e966627 100644
>>> --- a/platform/linux-keystone2/odp_init.c
>>> +++ b/platform/linux-keystone2/odp_platform.c
>>> @@ -1,4 +1,4 @@
>>> -/* Copyright (c) 2013, Linaro Limited
>>> +/* Copyright (c) 2014, Linaro Limited
>>>    * All rights reserved.
>>>    *
>>>    * SPDX-License-Identifier:     BSD-3-Clause
>>> @@ -15,17 +15,19 @@
>>>   #include <odp_packet_internal.h>
>>>
>>>   /*
>>> - * Make region_configs[] global, because hw_config is saved in
>>> - * ti_em_rh_init_global() and it references region_configs[].
>>> - */
>>> + *  * Make region_configs[] global, because hw_config is saved in
>>> + *   * ti_em_rh_init_global() and it references region_configs[].
>>> + *    */
>>>   static ti_em_osal_hw_region_config_t region_configs[TI_ODP_REGION_
>>> NUM];
>>>
>>> -static int ti_init_hw_config(void)
>>> +int odp_init_platform(odp_platform_init_t *platform_params ODP_UNUSED)
>>>   {
>>>         ti_em_rh_hw_config_t           hw_config;
>>>         ti_em_osal_hw_region_config_t *reg_config;
>>>         memset(&hw_config, 0, sizeof(ti_em_rh_hw_config_t));
>>>
>>> +       ti_em_osal_core_init_global();
>>> +
>>>         /* Set ODP initialization parameters */
>>>         hw_config.private_free_queue_idx = MY_EM_PRIVATE_FREE_QUEUE_IDX;
>>>         hw_config.hw_queue_base_idx      = MY_EM_SCHED_QUEUE_IDX;
>>> @@ -89,65 +91,3 @@ static int ti_init_hw_config(void)
>>>         return 0;
>>>   }
>>>
>>> -
>>> -int odp_init_global(void)
>>> -{
>>> -       odp_thread_init_global();
>>> -
>>> -       odp_system_info_init();
>>> -
>>> -       ti_em_osal_core_init_global();
>>> -       ti_init_hw_config();
>>> -
>>> -       if (odp_shm_init_global()) {
>>> -               ODP_ERR("ODP shm init failed.\n");
>>> -               return -1;
>>> -       }
>>> -
>>> -       if (odp_buffer_pool_init_global()) {
>>> -               ODP_ERR("ODP buffer pool init failed.\n");
>>> -               return -1;
>>> -       }
>>> -
>>> -       if (odp_queue_init_global()) {
>>> -               ODP_ERR("ODP queue init failed.\n");
>>> -               return -1;
>>> -       }
>>> -
>>> -       if (odp_schedule_init_global()) {
>>> -               ODP_ERR("ODP schedule init failed.\n");
>>> -               return -1;
>>> -       }
>>> -
>>> -       if (odp_pktio_init_global()) {
>>> -               ODP_ERR("ODP packet io init failed.\n");
>>> -               return -1;
>>> -       }
>>> -
>>> -       if (odp_timer_init_global()) {
>>> -               ODP_ERR("ODP timer init failed.\n");
>>> -               return -1;
>>> -       }
>>> -
>>> -       return 0;
>>> -}
>>> -
>>> -
>>> -int odp_init_local(int thr_id)
>>> -{
>>> -       odp_thread_init_local(thr_id);
>>> -
>>> -       ti_em_rh_init_local();
>>> -
>>> -       if (odp_pktio_init_local()) {
>>> -               ODP_ERR("ODP packet io local init failed.\n");
>>> -               return -1;
>>> -       }
>>> -
>>> -       if (odp_schedule_init_local()) {
>>> -               ODP_ERR("ODP schedule local init failed.\n");
>>> -               return -1;
>>> -       }
>>> -
>>> -       return 0;
>>> -}
>>> diff --git a/test/api_test/odp_common.c b/test/api_test/odp_common.c
>>> index b0a6fbc..ed1fc97 100644
>>> --- a/test/api_test/odp_common.c
>>> +++ b/test/api_test/odp_common.c
>>> @@ -56,7 +56,7 @@ int odp_test_global_init(void)
>>>   {
>>>         memset(thread_tbl, 0, sizeof(thread_tbl));
>>>
>>> -       if (odp_init_global()) {
>>> +       if (odp_init_global(NULL, NULL)) {
>>>                 ODP_ERR("ODP global init failed.\n");
>>>                 return -1;
>>>         }
>>> --
>>> 1.9.1
>>>
>>>
>>> _______________________________________________
>>> lng-odp mailing list
>>> [email protected]
>>> http://lists.linaro.org/mailman/listinfo/lng-odp
>>>
>> _______________________________________________
>> lng-odp mailing list
>> [email protected]
>> http://lists.linaro.org/mailman/listinfo/lng-odp
>>
>
>
> _______________________________________________
> lng-odp mailing list
> [email protected]
> http://lists.linaro.org/mailman/listinfo/lng-odp
>



-- 
*Mike Holmes*
Linaro Technical Manager / Lead
LNG - ODP
_______________________________________________
lng-odp mailing list
[email protected]
http://lists.linaro.org/mailman/listinfo/lng-odp

Reply via email to