+ processor->current_pri = thread->sched_pri;
+ processor->current_sfi_class = thread->sfi_class;
+ processor->current_recommended_pset_type = recommended_pset_type(thread);
+ processor->current_perfctl_class = thread_get_perfcontrol_class(thread);
+ processor->current_urgency = thread_get_urgency(thread, NULL, NULL);
+#if DEBUG || DEVELOPMENT
+ processor->current_is_NO_SMT = (thread->sched_flags & TH_SFLAG_NO_SMT) || (thread->task->t_flags & TF_NO_SMT);
+#else
+ processor->current_is_NO_SMT = (thread->sched_flags & TH_SFLAG_NO_SMT);
+#endif
+ processor->current_is_bound = thread->bound_processor != PROCESSOR_NULL;
+}
+
+void
+processor_state_update_explicit(processor_t processor, int pri, sfi_class_id_t sfi_class,
+ pset_cluster_type_t pset_type, perfcontrol_class_t perfctl_class, thread_urgency_t urgency)
+{
+ processor->current_pri = pri;
+ processor->current_sfi_class = sfi_class;
+ processor->current_recommended_pset_type = pset_type;
+ processor->current_perfctl_class = perfctl_class;
+ processor->current_urgency = urgency;