diff mbox

[API-NEXT,PATCHv7,12/13] api: schedule: add odp_schedule_order_sync() routine

Message ID 1438728085-3240-13-git-send-email-bill.fischofer@linaro.org
State New
Headers show

Commit Message

Bill Fischofer Aug. 4, 2015, 10:41 p.m. UTC
Signed-off-by: Bill Fischofer <bill.fischofer@linaro.org>
---
 include/odp/api/schedule.h | 55 +++++++++++++++-------------------------------
 1 file changed, 18 insertions(+), 37 deletions(-)
diff mbox

Patch

diff --git a/include/odp/api/schedule.h b/include/odp/api/schedule.h
index af860c4..54c1397 100644
--- a/include/odp/api/schedule.h
+++ b/include/odp/api/schedule.h
@@ -174,6 +174,24 @@  void odp_schedule_release_atomic(void);
 int odp_schedule_release_ordered(odp_event_t ev);
 
 /**
+ * Ordered event synchronization
+ *
+ * Ordered queues dispatch work in parallel. This routine permits threads to
+ * perform in-order atomic operations within the context of an ordered
+ * flow. Upon return the caller is ordered with respect to other events in
+ * this ordered flow and may perform serial processing in that context.  Once
+ * synchronized, the caller retains order synchronization until the specified
+ * event is subsequently enqueued to another queue or released from ordering
+ * via a call to odp_schedule_release_ordered().
+ *
+ * @param ev   The event whose order is to be locked
+ *
+ * @retval 0   Success.  Order is now locked
+ * @retval <0  Failure.  Specified event is not part of an ordered flow.
+ */
+int odp_schedule_order_sync(odp_event_t ev);
+
+/**
  * Copy order from one event to another
  *
  * This call copies the order associated with an event originating from an
@@ -336,43 +354,6 @@  int odp_schedule_group_leave(odp_schedule_group_t group,
 int odp_schedule_group_count(odp_schedule_group_t group);
 
 /**
- * Initialize ordered context lock
- *
- * Initialize an ordered queue context lock. The lock can be associated only
- * with ordered queues and used only within an ordered synchronization context.
- *
- * @param queue   Ordered queue
- * @param lock    Ordered context lock
- *
- * @retval 0 on success
- * @retval <0 on failure
- */
-int odp_schedule_olock_init(odp_queue_t queue, odp_schedule_olock_t *lock);
-
-/**
- * Acquire ordered context lock
- *
- * This call is valid only when holding an ordered synchronization context. The
- * lock is used to protect a critical section that is executed within an
- * ordered context. Threads enter the critical section in the order determined
- * by the context (source queue). Lock ordering is automatically skipped for
- * threads that release the context instead of calling the lock.
- *
- * @param lock    Ordered context lock
- */
-void odp_schedule_olock_lock(odp_schedule_olock_t *lock);
-
-/**
- * Release ordered context lock
- *
- * This call is valid only when holding an ordered synchronization context.
- * Release a previously locked ordered context lock.
- *
- * @param lock    Ordered context lock
- */
-void odp_schedule_olock_unlock(odp_schedule_olock_t *lock);
-
-/**
  * @}
  */