Home | History | Annotate | Download | only in kern

Lines Matching refs:ci

129 mi_cpu_attach(struct cpu_info *ci)
135 if ((ci->ci_index = ncpu) >= maxcpus)
137 kcpuset_set(kcpuset_attached, cpu_index(ci));
142 kcpuset_create(&ci->ci_kcpuset, true);
143 kcpuset_set(ci->ci_kcpuset, cpu_index(ci));
145 TAILQ_INIT(&ci->ci_data.cpu_ld_locks);
146 __cpu_simple_lock_init(&ci->ci_data.cpu_ld_lock);
149 snprintf(ci->ci_data.cpu_name, sizeof(ci->ci_data.cpu_name), "cpu%d",
150 cpu_index(ci));
156 cpu_infos[cpu_index(ci)] = ci;
158 sched_cpuattach(ci);
160 error = create_idle_lwp(ci);
166 if (ci == curcpu())
167 ci->ci_onproc = curlwp;
169 ci->ci_onproc = ci->ci_data.cpu_idlelwp;
171 percpu_init_cpu(ci);
172 softint_init(ci);
173 callout_init_cpu(ci);
174 xc_init_cpu(ci);
175 pool_cache_cpu_init(ci);
176 selsysinit(ci);
177 cache_cpu_init(ci);
178 TAILQ_INIT(&ci->ci_data.cpu_biodone);
197 struct cpu_info *ci;
213 (ci = cpu_lookup(cs->cs_id)) == NULL) {
217 cpu_setintr(ci, cs->cs_intr); /* XXX neglect errors */
218 error = cpu_setstate(ci, cs->cs_online);
227 (ci = cpu_lookup(id)) == NULL) {
231 if ((ci->ci_schedstate.spc_flags & SPCF_OFFLINE) != 0)
235 if ((ci->ci_schedstate.spc_flags & SPCF_NOINTR) != 0)
239 cs->cs_lastmod = (int32_t)ci->ci_schedstate.spc_lastmod;
241 (ci->ci_schedstate.spc_lastmod >> 32);
242 cs->cs_intrcnt = cpu_intr_count(ci) + 1;
243 cs->cs_hwid = ci->ci_cpuid;
248 for (CPU_INFO_FOREACH(cii, ci)) {
252 if (ci == NULL)
255 *(int *)data = cpu_index(ci);
289 struct cpu_info *ci;
302 ci = cpu_infos[idx];
303 KASSERT(ci == NULL || cpu_index(ci) == idx);
304 KASSERTMSG(idx < maxcpus || ci == NULL, "idx %d ci %p", idx, ci);
306 return ci;
310 cpu_xc_offline(struct cpu_info *ci, void *unused)
322 spc = &ci->ci_schedstate;
344 if (l->l_cpu != ci || (l->l_pflag & (LP_BOUND | LP_INTR))) {
387 cpu_xc_online(struct cpu_info *ci, void *unused)
394 spc = &ci->ci_schedstate;
401 cpu_setstate(struct cpu_info *ci, bool online)
410 spc = &ci->ci_schedstate;
438 where = xc_unicast(0, func, ci, NULL, ci);
456 cpu_is_type(struct cpu_info *ci, int wanted)
459 return (ci->ci_schedstate.spc_flags & wanted) == wanted;
463 cpu_is_idle_1stclass(struct cpu_info *ci)
467 return cpu_is_type(ci, wanted);
471 cpu_is_1stclass(struct cpu_info *ci)
475 return cpu_is_type(ci, wanted);
493 cpu_xc_intr(struct cpu_info *ci, void *unused)
498 spc = &ci->ci_schedstate;
505 cpu_xc_nointr(struct cpu_info *ci, void *unused)
510 spc = &ci->ci_schedstate;
517 cpu_setintr(struct cpu_info *ci, bool intr)
526 spc = &ci->ci_schedstate;
535 if (CPU_IS_PRIMARY(ci)) /* XXX kern/45117 */
547 if (ci2 == ci)
556 where = xc_unicast(0, func, ci, NULL, ci);
572 cpu_setintr(struct cpu_info *ci, bool intr)
579 cpu_intr_count(struct cpu_info *ci)