Home | History | Annotate | Download | only in kern

Lines Matching defs:xc

357 	xc_state_t *xc;
369 xc = &xc_high_pri;
372 xc = &xc_low_pri;
377 if (atomic_load_acquire(&xc->xc_donep) >= where) {
383 mutex_enter(&xc->xc_lock);
384 while (xc->xc_donep < where) {
385 cv_wait(&xc->xc_busy, &xc->xc_lock);
387 mutex_exit(&xc->xc_lock);
398 xc_state_t *xc = &xc_low_pri;
402 mutex_enter(&xc->xc_lock);
403 while (xc->xc_headp != xc->xc_donep) {
404 cv_wait(&xc->xc_busy, &xc->xc_lock);
406 xc->xc_arg1 = arg1;
407 xc->xc_arg2 = arg2;
408 xc->xc_func = func;
414 xc->xc_headp += 1;
420 xc->xc_headp += 1;
424 KASSERT(xc->xc_donep < xc->xc_headp);
425 where = xc->xc_headp;
426 mutex_exit(&xc->xc_lock);
442 xc_state_t *xc = &xc_low_pri;
450 mutex_enter(&xc->xc_lock);
453 if (xc->xc_headp == xc->xc_donep) {
454 cv_broadcast(&xc->xc_busy);
456 cv_wait(&ci->ci_data.cpu_xcall, &xc->xc_lock);
460 func = xc->xc_func;
461 arg1 = xc->xc_arg1;
462 arg2 = xc->xc_arg2;
463 mutex_exit(&xc->xc_lock);
471 mutex_enter(&xc->xc_lock);
473 atomic_store_release(&xc->xc_donep, xc->xc_donep + 1);
475 xc->xc_donep++;
489 xc_state_t *xc = & xc_high_pri;
491 KASSERT(xc->xc_ipl < __arraycount(xc_sihs));
492 KASSERT(xc_sihs[xc->xc_ipl] != NULL);
495 softint_schedule(xc_sihs[xc->xc_ipl]);
506 xc_state_t *xc = &xc_high_pri;
511 xc->xc_func);
516 func = xc->xc_func;
517 arg1 = xc->xc_arg1;
518 arg2 = xc->xc_arg2;
527 mutex_enter(&xc->xc_lock);
528 KASSERT(xc->xc_donep < xc->xc_headp);
530 atomic_store_release(&xc->xc_donep, xc->xc_donep + 1);
532 xc->xc_donep++;
534 if (xc->xc_donep == xc->xc_headp) {
535 cv_broadcast(&xc->xc_busy);
537 mutex_exit(&xc->xc_lock);
549 xc_state_t *xc = &xc_high_pri;
552 mutex_enter(&xc->xc_lock);
553 while (xc->xc_headp != xc->xc_donep) {
554 cv_wait(&xc->xc_busy, &xc->xc_lock);
556 xc->xc_func = func;
557 xc->xc_arg1 = arg1;
558 xc->xc_arg2 = arg2;
559 xc->xc_headp += (ci ? 1 : ncpu);
560 xc->xc_ipl = ipl;
561 where = xc->xc_headp;
562 mutex_exit(&xc->xc_lock);