parlib: Add __uth_sync_swap and __uth_sync_is_empty
[akaros.git] / user / parlib / include / parlib / uthread.h
index 8ce3e20..6b54c4a 100644 (file)
@@ -95,6 +95,8 @@ void __uth_sync_destroy(uth_sync_t *sync);
 void __uth_sync_enqueue(struct uthread *uth, uth_sync_t *sync);
 struct uthread *__uth_sync_get_next(uth_sync_t *sync);
 bool __uth_sync_get_uth(uth_sync_t *sync, struct uthread *uth);
+void __uth_sync_swap(uth_sync_t *a, uth_sync_t *b);
+bool __uth_sync_is_empty(uth_sync_t *sync);
 
 /* 2L-Scheduler operations.  Examples in pthread.c. */
 struct schedule_ops {
@@ -114,6 +116,8 @@ struct schedule_ops {
        void (*sync_enqueue)(struct uthread *, uth_sync_t *);
        struct uthread *(*sync_get_next)(uth_sync_t *);
        bool (*sync_get_uth)(uth_sync_t *, struct uthread *);
+       void (*sync_swap)(uth_sync_t *, uth_sync_t *);
+       bool (*sync_is_empty)(uth_sync_t *);
        void (*preempt_pending)(void);
 };
 extern struct schedule_ops *sched_ops;