Lines Matching refs:si
147 struct softint *si;
161 si = sip->sip_parent;
163 func = si->si_func;
164 funarg = si->si_arg;
165 mpsafe = si->si_flags & SI_MPSAFE;
169 if (si->si_flags & SI_KILLME) {
170 softint_disestablish(si);
202 struct softint *si;
219 si = sip->sip_parent;
220 cidx = sip - si->si_entry;
227 softint_schedule(si);
341 struct softint *si;
346 si = malloc(sizeof(*si), M_TEMP, M_WAITOK);
347 si->si_func = func;
348 si->si_arg = arg;
349 si->si_flags = flags & SOFTINT_MPSAFE ? SI_MPSAFE : 0;
350 si->si_level = level;
351 KASSERT(si->si_level < SOFTINT_COUNT);
352 si->si_entry = malloc(sizeof(*si->si_entry) * ncpu_final,
355 sip = &si->si_entry[i];
356 sip->sip_parent = si;
360 return si;
364 sitosip(struct softint *si, struct cpu_info *ci)
367 return &si->si_entry[ci->ci_index];
378 struct softint *si = arg;
380 struct softint_percpu *sip = sitosip(si, ci);
385 si->si_func(si->si_arg);
388 TAILQ_INSERT_TAIL(&si_lvl[si->si_level].si_pending,
407 struct softint *si = arg;
415 softint_schedule(si);
423 sip = sitosip(si, ci_tgt);
441 struct softint *si = cook;
447 sip = &si->si_entry[i];
449 si->si_flags |= SI_KILLME;
453 free(si->si_entry, M_TEMP);
454 free(si, M_TEMP);