- /* setup run-queues */
- simple_lock_init(&pset->runq.lock, ETAP_THREAD_PSET_RUNQ);
- pset->runq.count = 0;
- for (i = 0; i < NRQBM; i++) {
- pset->runq.bitmap[i] = 0;
- }
- setbit(MAXPRI - IDLEPRI, pset->runq.bitmap);
- pset->runq.highq = IDLEPRI;
- for (i = 0; i < NRQS; i++) {
- queue_init(&(pset->runq.queues[i]));
- }
-
- queue_init(&pset->idle_queue);
- pset->idle_count = 0;
- simple_lock_init(&pset->idle_lock, ETAP_THREAD_PSET_IDLE);
- pset->mach_factor = pset->load_average = 0;
- pset->sched_load = 0;
- queue_init(&pset->processors);
- pset->processor_count = 0;
- simple_lock_init(&pset->processors_lock, ETAP_THREAD_PSET);
- queue_init(&pset->tasks);
- pset->task_count = 0;
- queue_init(&pset->threads);
- pset->thread_count = 0;
- pset->ref_count = 1;
- pset->active = FALSE;
- mutex_init(&pset->lock, ETAP_THREAD_PSET);
- pset->pset_self = IP_NULL;
- pset->pset_name_self = IP_NULL;
- pset->max_priority = MAXPRI_STANDARD;
- pset->policies = POLICY_TIMESHARE | POLICY_FIFO | POLICY_RR;
- pset->set_quantum = min_quantum;