> >> +/**
> >> + * Create a timer pool
> >> + *
> >> + * @param name       Name of the timer pool. The string will be
> copied.
> >> + * @param buf_pool   Buffer pool for allocating timeouts

Maybe a comment also here for the purpose of this pool. Or just remove it, if 
there's no clear usage for it. It can be added later again if needed.


> >> + * @param params     Timer pool parameters. The content will be
> copied.
> >> + *
> >> + * @return Timer pool handle if successful, otherwise
> >> ODP_TIMER_POOL_INVALID
> >> + * and errno set
> >
> > This is the first API to use errno. Errno needs to be changed to
> odp_errno() (with odp_errno_clear(), odp_errno_print(), odp_errno_str()).
> That can be done after merge.
> OK but these functions seem not to exist yet?

Yes, those need to be added soon - so that ODP does not share errno with C 
libraries.


> >> +
> >> +/**
> >> + * Set a timer (absolute time) with a user-provided timeout buffer
> >> + *
> >> + * Set (arm) the timer to expire at specific time. The timeout
> >> + * buffer will be enqueued when the timer expires.
> >> + *
> >> + * Note: any invalid parameters will be treated as programming errors
> and
> >> will
> >> + * cause the application to abort.
> >> + *
> >> + * @param tim      Timer
> >> + * @param abs_tck  Expiration time in absolute timer ticks
> >> + * @param tmo_buf  Reference to a buffer variable that points to
> timeout
> >> buffer
> >> + * or NULL to reuse the existing timeout buffer
> >
> > Tmo_buf parameter usage needs clarification:
> > - Can this be always NULL, meaning that timer should be set with a tmo
> buffer allocated from the pool provided in timer_pool_create call?
> No not in the current design. The idea could be investigated.

OK. Maybe then remove the pool param from pool_create.

> 
> > - Is it also an output param? Timer_reset() writes it with old buffer
> handle value.
> Yes. Should be fixed.
> 
> >
> >
> >> + *
> >> + * @retval ODP_TIMER_SET_SUCCESS Operation succeeded
> >> + * @retval ODP_TIMER_SET_TOOEARLY Operation failed because expiration
> >> tick too
> >> + * early
> >> + * @retval ODP_TIMER_SET_TOOLATE Operation failed because expiration
> tick
> >> too
> >> + * late
> >> + * @retval ODP_TIMER_SET_NOBUF Operation failed because timeout buffer
> >> not
> >> + * specified in call and not present in timer
> >
> > When this actually happens? When trying to reset an expired timer ?
> Yes. Timer has already expired. The application can decide what to do.
> Either allocate a new timeout buffer and retry the set operation or it
> can ignore this situation because it knows the timeout buffer will be
> received shortly. The application decides.

OK. The return codes are a bit long. _SET_ could be dropped without readability 
issues (e.g. ODP_TIMER_SUCCESS).

> >> +/**
> >> + * Check for fresh timeout
> >> + * If the corresponding timer has been reset or cancelled since this
> >> timeout
> >> + * was enqueued, the timeout is stale (not fresh).
> >>   *
> >> - * @return 0 if successful
> >> + * @param tmo Timeout handle
> >> + * @retval 1 Timeout is fresh
> >> + * @retval 0 Timeout is stale
> >>   */
> >> -int odp_timer_cancel_tmo(odp_timer_t timer, odp_timer_tmo_t tmo);
> >> +int /*odp_bool_t*/odp_timeout_fresh(odp_timeout_t tmo);
> >
> > Remove /*odp_bool_t*/
> OK. Or use odp_bool_t instead of int? true -> fresh, false -> stale.
> int as a return type if normally used with 0 for success and <>0 for
> failure.

So far odp_bool_t has not been used in return values. This falls into _is_xxx() 
category and thus would return !0 = true and 0 = false.


-Petri


_______________________________________________
lng-odp mailing list
[email protected]
http://lists.linaro.org/mailman/listinfo/lng-odp

Reply via email to