]> git.saurik.com Git - apple/xnu.git/blobdiff - bsd/pthread/workqueue_internal.h
xnu-7195.101.1.tar.gz
[apple/xnu.git] / bsd / pthread / workqueue_internal.h
index f7ed3080cf87e61f04b076e7611386a88675a9b7..7d277572a89c2bd551d372fa2ae3787b7efbc5a5 100644 (file)
@@ -172,7 +172,7 @@ __options_decl(workq_tr_flags_t, uint8_t, {
 
 typedef struct workq_threadreq_s {
        union {
-               struct priority_queue_entry tr_entry;
+               struct priority_queue_entry_sched tr_entry;
                thread_t tr_thread;
        };
        uint16_t           tr_count;
@@ -245,9 +245,9 @@ struct workqueue {
        struct workq_uthread_head wq_thnewlist;
        struct workq_uthread_head wq_thidlelist;
 
-       struct priority_queue wq_overcommit_queue;
-       struct priority_queue wq_constrained_queue;
-       struct priority_queue wq_special_queue;
+       struct priority_queue_sched_max wq_overcommit_queue;
+       struct priority_queue_sched_max wq_constrained_queue;
+       struct priority_queue_sched_max wq_special_queue;
        workq_threadreq_t wq_event_manager_threadreq;
 };
 
@@ -295,12 +295,13 @@ void workq_kern_threadreq_unlock(struct proc *p);
 
 void workq_kern_threadreq_redrive(struct proc *p, workq_kern_threadreq_flags_t flags);
 
+// This enum matches _pthread_set_flags in libpthread's qos_private.h
 enum workq_set_self_flags {
-       WORKQ_SET_SELF_QOS_FLAG = 0x1,
-       WORKQ_SET_SELF_VOUCHER_FLAG = 0x2,
-       WORKQ_SET_SELF_FIXEDPRIORITY_FLAG = 0x4,
-       WORKQ_SET_SELF_TIMESHARE_FLAG = 0x8,
-       WORKQ_SET_SELF_WQ_KEVENT_UNBIND = 0x10,
+       WORKQ_SET_SELF_QOS_FLAG             = 0x01,
+       WORKQ_SET_SELF_VOUCHER_FLAG         = 0x02,
+       WORKQ_SET_SELF_FIXEDPRIORITY_FLAG   = 0x04,
+       WORKQ_SET_SELF_TIMESHARE_FLAG       = 0x08,
+       WORKQ_SET_SELF_WQ_KEVENT_UNBIND     = 0x10,
 };
 
 void workq_proc_suspended(struct proc *p);