Ping On 16 October 2014 13:39, Mike Holmes <[email protected]> wrote:
> Unit testing replicates a situation similar to an NFV case where the > workload > is varied without rebooting the HW. > In this use case there have to be hooks for the application to inform the > implementation that HW needs to be released. > > Signed-off-by: Mike Holmes <[email protected]> > --- > platform/linux-generic/include/api/odp_init.h | 68 > +++++++++++++++++++++++++-- > 1 file changed, 65 insertions(+), 3 deletions(-) > > diff --git a/platform/linux-generic/include/api/odp_init.h > b/platform/linux-generic/include/api/odp_init.h > index fab4f6e..002b6a3 100644 > --- a/platform/linux-generic/include/api/odp_init.h > +++ b/platform/linux-generic/include/api/odp_init.h > @@ -8,7 +8,15 @@ > /** > * @file > * > - * ODP initialization > + * ODP initialization. > + * ODP requires a global level init for the process and a local init per > + * thread before the other ODP APIs may be called. > + * - odp_init_global() > + * - odp_init_local() > + * > + * For a graceful termination the matching termination APIs exit > + * - odp_term_global() > + * - odp_term_local() > */ > > #ifndef ODP_INIT_H_ > @@ -48,24 +56,78 @@ typedef struct odp_platform_init_t { > * > * This function must be called once before calling any other ODP API > * functions. > + * > + * @sa odp_term_global() > + * @sa odp_init_local() which is required per thread before use. > + * > * @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 > + * > + * @retval 0 if successful > + * @retval 1 on failure > */ > int odp_init_global(odp_init_t *params, odp_platform_init_t > *platform_params); > > /** > + * Terminate ODP session. > + * > + * This function is the final ODP call made when terminating > + * an ODP application in a controlled way. It cannot handle exceptional > + * circumstances. > + * In general it calls the API modules terminate functions in the reverse > order > + * to that which the module init functions were called during > odp_init_global() > + * > + * @warning The unwinding of HW resources to allow them to be re used > without reseting > + * the device is a complex task that the application is expected to > coordinate. > + * This api may have platform dependant implications. > + * > + * @sa odp_init_global() > + * @sa odp_term_local() which must have been called prior to this. > + * > + * @retval 0 if successful > + * @retval 1 on failure > + */ > +int odp_term_global(void); > + > +/** > * Perform thread local ODP initialization. > * > * All threads must call this function before calling > * any other ODP API functions. > * > - * @return 0 if successful > + * @sa odp_term_local() > + * @sa odp_init_global() which must have been called prior to this. > + * > + * @retval 0 if successful > + * @retval 1 on failure > */ > int odp_init_local(void); > > > +/** > + * Perform thread local ODP termination. > + * > + * This function is the second to final ODP call made when terminating > + * an ODP application in a controlled way. It cannot handle exceptional > + * circumstances. > + * In general it calls the API modules per thread terminate functions in > the > + * reverse order to that which the module init functions were called > during > + * odp_init_local() > + * > + * @sa odp_init_local() > + * @sa odp_term_global() which is the final ODP call before exit of an > application. > + * > + * @warning The unwinding of HW resources to allow them to be re used > without reseting > + * the device is a complex task that the application is expected to > coordinate. > + * All threads must call this function before calling > + * any other ODP API functions. > + * > + * @retval 0 if successful > + * @retval 1 on failure > + */ > +int odp_term_local(void); > + > > #ifdef __cplusplus > } > -- > 1.9.1 > > -- *Mike Holmes* Linaro Sr Technical Manager LNG - ODP
_______________________________________________ lng-odp mailing list [email protected] http://lists.linaro.org/mailman/listinfo/lng-odp
