Signed-off-by: Nikhil Agarwal <nikhil.agar...@linaro.org> --- include/odp/api/spec/schedule.h | 36 +++++++++++++++++++++++++++++++----- 1 file changed, 31 insertions(+), 5 deletions(-)
diff --git a/include/odp/api/spec/schedule.h b/include/odp/api/spec/schedule.h index f8fed17..6e8d759 100644 --- a/include/odp/api/spec/schedule.h +++ b/include/odp/api/spec/schedule.h @@ -118,8 +118,8 @@ odp_event_t odp_schedule(odp_queue_t *from, uint64_t wait); * originate from the same source queue and share the same scheduler * synchronization context. * - * @param from Output parameter for the source queue (where the event was - * dequeued from). Ignored if NULL. + * @param from Output parameter for the source queues array (where the event + * were dequeued from). Ignored if NULL. * @param wait Minimum time to wait for an event. Waits infinitely, if set to * ODP_SCHED_WAIT. Does not wait, if set to ODP_SCHED_NO_WAIT. * Use odp_schedule_wait_time() to convert time to other wait @@ -129,7 +129,7 @@ odp_event_t odp_schedule(odp_queue_t *from, uint64_t wait); * * @return Number of events outputted (0 ... num) */ -int odp_schedule_multi(odp_queue_t *from, uint64_t wait, odp_event_t events[], +int odp_schedule_multi(odp_queue_t from[], uint64_t wait, odp_event_t events[], int num); /** @@ -170,6 +170,17 @@ void odp_schedule_resume(void); void odp_schedule_release_atomic(void); /** + * Release the atomic context associated with the events specified by evnets[]. + * + * This call is similar to odp_schedule_release_atomic call which releases context + * associated with the events defined by events. + * @param events Input event array for which atomic context is to be released + * @param num Number of events + * + */ +void odp_schedule_release_atomic_contexts(odp_event_t events[], num); + +/** * Release the current ordered context * * This call is valid only for source queues with ordered synchronization. It @@ -187,6 +198,17 @@ void odp_schedule_release_atomic(void); void odp_schedule_release_ordered(void); /** + * Release the ordered context associated with the events specified by evnets[]. + * + * This call is similar to odp_schedule_release_ordered call which releases context + * associated with the events defined by events. + * @param events Input event array for which ordered context is to be released + * @param num Number of events + * + */ +void odp_schedule_release_ordered_contexts(odp_event_t events[], num); + +/** * Prefetch events for next schedule call * * Hint the scheduler that application is about to finish processing the current @@ -348,11 +370,13 @@ int odp_schedule_group_info(odp_schedule_group_t group, * allowing order to maintained on a more granular basis. If an ordered lock * is used multiple times in the same ordered context results are undefined. * + * @param source_queue Queue handle from which event is recieved and lock to be + * aquired. * @param lock_index Index of the ordered lock in the current context to be * acquired. Must be in the range 0..odp_queue_lock_count() * - 1 */ -void odp_schedule_order_lock(unsigned lock_index); +void odp_schedule_order_lock(odp_queue_t source_queue, unsigned lock_index); /** * Release ordered context lock @@ -360,12 +384,14 @@ void odp_schedule_order_lock(unsigned lock_index); * This call is valid only when holding an ordered synchronization context. * Release a previously locked ordered context lock. * + * @param source_queue Queue handle from which event is recieved and lock to be + * aquired. * @param lock_index Index of the ordered lock in the current context to be * released. Results are undefined if the caller does not * hold this lock. Must be in the range * 0..odp_queue_lock_count() - 1 */ -void odp_schedule_order_unlock(unsigned lock_index); +void odp_schedule_order_unlock(odp_queue_t source_queue, unsigned lock_index); /** * @} -- 2.9.3