diff mbox

[API-NEXT,PATCHv3,03/10] api: schedule: add additional scheduler group APIs

Message ID 1440632493-31734-4-git-send-email-bill.fischofer@linaro.org
State New
Headers show

Commit Message

Bill Fischofer Aug. 26, 2015, 11:41 p.m. UTC
Add the following additional scheduler group APIs:
odp_schedule_group_lookup()
odp_schedule_group_join()
odp_schedule_group_leave()
odp_schedule_group_thrmask()

Signed-off-by: Bill Fischofer <bill.fischofer@linaro.org>
---
 include/odp/api/schedule.h | 57 ++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 57 insertions(+)
diff mbox

Patch

diff --git a/include/odp/api/schedule.h b/include/odp/api/schedule.h
index 7c5955b..9f62bf1 100644
--- a/include/odp/api/schedule.h
+++ b/include/odp/api/schedule.h
@@ -220,6 +220,63 @@  odp_schedule_group_t odp_schedule_group_create(const char *name,
 int odp_schedule_group_destroy(odp_schedule_group_t group);
 
 /**
+ * Look up a schedule group by name
+ *
+ * Return the handle of a schedule group from its name
+ *
+ * @param name   Name of schedule group
+ *
+ * @return Handle of schedule group for specified name
+ * @retval ODP_SCHEDULE_GROUP_INVALID No matching schedule group found
+ */
+odp_schedule_group_t odp_schedule_group_lookup(const char *name);
+
+/**
+ * Join a schedule group
+ *
+ * Join a threadmask to an existing schedule group
+ *
+ * @param group  Schdule group handle
+ * @param mask   Thread mask
+ *
+ * @retval 0 on success
+ * @retval <0 on failure
+ */
+int odp_schedule_group_join(odp_schedule_group_t group,
+			    const odp_thrmask_t *mask);
+
+/**
+ * Leave a schedule group
+ *
+ * Remove a threadmask from an existing schedule group
+ *
+ * @param group  Schedule group handle
+ * @param mask   Thread mask
+ *
+ * @retval 0 on success
+ * @retval <0 on failure
+ *
+ * @note Leaving a schedule group means threads in the specified mask will no
+ * longer receive events from queues belonging to the specified schedule
+ * group. This effect is not instantaneous, however, and events that have been
+ * prestaged may still be presented to the masked threads.
+ */
+int odp_schedule_group_leave(odp_schedule_group_t group,
+			     const odp_thrmask_t *mask);
+
+/**
+ * Get a schedule group's thrmask
+ *
+ * @param      group   Schedule group handle
+ * @param[out] thrmask The current thrmask used for this schedule group
+ *
+ * @retval 0  On success
+ * @retval <0 Invalid group specified
+ */
+int odp_schedule_group_thrmask(odp_schedule_group_t group,
+			       odp_thrmask_t *thrmask);
+
+/**
  * Initialize ordered context lock
  *
  * Initialize an ordered queue context lock. The lock can be associated only