Lines Matching refs:ino_p

235 pcmu_ib_intr_dist(pcmu_ib_t *pib_p, pcmu_ib_ino_info_t *ino_p)
237 uint32_t cpu_id = ino_p->pino_cpuid;
238 pcmu_ib_ino_t ino = ino_p->pino_ino;
298 pcmu_ib_ino_info_t *ino_p;
307 for (ino_p = pib_p->pib_ino_lst; ino_p;
308 ino_p = ino_p->pino_next) {
317 ino_p->pino_established = 0;
325 ino_p->pino_intr_weight = 0;
326 for (i = 0, ih_lst = ino_p->pino_ih_head;
327 i < ino_p->pino_ih_size;
331 ino_p->pino_intr_weight += dweight;
336 for (ino_p = pib_p->pib_ino_lst; ino_p; ino_p = ino_p->pino_next) {
345 if ((weight == ino_p->pino_intr_weight) ||
347 (ino_p->pino_intr_weight >= weight_max))) {
349 ino_p->pino_cpuid = pcmu_intr_dist_cpuid(pib_p, ino_p);
350 ino_p->pino_established = 1;
353 for (i = 0, ih_lst = ino_p->pino_ih_head;
354 i < ino_p->pino_ih_size;
358 ino_p->pino_cpuid, ih_lst->ih_dip, dweight);
362 pcmu_ib_intr_dist(pib_p, ino_p);
428 pcmu_ib_ino_info_t *ino_p = pib_p->pib_ino_lst;
431 for (; ino_p && ino_p->pino_ino != ino_num; ino_p = ino_p->pino_next)
433 return (ino_p);
442 pcmu_ib_ino_info_t *ino_p = kmem_alloc(sizeof (pcmu_ib_ino_info_t),
444 ino_p->pino_ino = ino_num;
445 ino_p->pino_slot_no = PCMU_IB_INO_TO_SLOT(ino_num);
446 ino_p->pino_ib_p = pib_p;
447 ino_p->pino_clr_reg = ib_clear_intr_reg_addr(pib_p, ino_num);
448 ino_p->pino_map_reg = ib_intr_map_reg_addr(pib_p, ino_num);
449 ino_p->pino_unclaimed = 0;
453 * PCMU_IB_INO_INTR_OFF(ino_p->pino_map_reg);
457 ino_p->pino_ih_head = ih_p;
458 ino_p->pino_ih_tail = ih_p;
459 ino_p->pino_ih_start = ih_p;
460 ino_p->pino_ih_size = 1;
462 ino_p->pino_next = pib_p->pib_ino_lst;
463 pib_p->pib_ino_lst = ino_p;
464 return (ino_p);
467 /* the ino_p is retrieved by previous call to pcmu_ib_locate_ino() */
469 pcmu_ib_delete_ino(pcmu_ib_t *pib_p, pcmu_ib_ino_info_t *ino_p)
473 if (list == ino_p) {
476 for (; list->pino_next != ino_p; list = list->pino_next)
478 list->pino_next = ino_p->pino_next;
496 pcmu_ib_ino_add_intr(pcmu_t *pcmu_p, pcmu_ib_ino_info_t *ino_p, ih_t *ih_p)
498 pcmu_ib_ino_t ino = ino_p->pino_ino;
499 pcmu_ib_t *pib_p = ino_p->pino_ib_p;
509 PCMU_IB_INO_INTR_OFF(ino_p->pino_map_reg);
510 *ino_p->pino_map_reg;
523 while ((ino_p->pino_unclaimed <= pcmu_unclaimed_intr_max) &&
549 ih_p->ih_next = ino_p->pino_ih_head;
550 ino_p->pino_ih_tail->ih_next = ih_p;
551 ino_p->pino_ih_tail = ih_p;
553 ino_p->pino_ih_start = ino_p->pino_ih_head;
554 ino_p->pino_ih_size++;
561 if (ino_p->pino_unclaimed > pcmu_unclaimed_intr_max) {
566 ino_p->pino_ino);
567 ino_p->pino_unclaimed = 0;
568 PCMU_IB_INO_INTR_CLEAR(ino_p->pino_clr_reg);
572 PCMU_IB_INO_INTR_ON(ino_p->pino_map_reg);
573 *ino_p->pino_map_reg;
584 pcmu_ib_ino_rem_intr(pcmu_t *pcmu_p, pcmu_ib_ino_info_t *ino_p, ih_t *ih_p)
587 pcmu_ib_ino_t ino = ino_p->pino_ino;
588 ih_t *ih_lst = ino_p->pino_ih_head;
590 PCMU_IB_INO_INTR_STATE_REG(ino_p->pino_ib_p, ino);
595 ASSERT(MUTEX_HELD(&ino_p->pino_ib_p->pib_ino_lst_mutex));
597 PCMU_IB_INO_INTR_OFF(ino_p->pino_map_reg);
598 *ino_p->pino_map_reg;
611 while ((ino_p->pino_unclaimed <= pcmu_unclaimed_intr_max) &&
632 PCMU_IB_INO_INTR_ON(ino_p->pino_map_reg);
633 *ino_p->pino_map_reg;
638 if (ino_p->pino_ih_size == 1) {
641 /* no need to set head/tail as ino_p will be freed */
650 if (ino_p->pino_unclaimed > pcmu_unclaimed_intr_max) {
655 ino_p->pino_ino);
656 ino_p->pino_unclaimed = 0;
657 PCMU_IB_INO_INTR_CLEAR(ino_p->pino_clr_reg);
661 for (i = 0; (i < ino_p->pino_ih_size) && (ih_lst->ih_next != ih_p);
670 if (ino_p->pino_ih_head == ih_p) {
671 ino_p->pino_ih_head = ih_p->ih_next;
673 if (ino_p->pino_ih_tail == ih_p) {
674 ino_p->pino_ih_tail = ih_lst;
676 ino_p->pino_ih_start = ino_p->pino_ih_head;
682 ino_p->pino_ih_size--;
686 PCMU_DBG2(PCMU_DBG_R_INTX, ino_p->pino_ib_p->pib_pcmu_p->pcmu_dip,
687 "ino_p=%x does not have ih_p=%x\n", ino_p, ih_p);
692 pcmu_ib_ino_locate_intr(pcmu_ib_ino_info_t *ino_p,
695 ih_t *ih_lst = ino_p->pino_ih_head;
697 for (i = 0; i < ino_p->pino_ih_size; i++, ih_lst = ih_lst->ih_next) {
729 pcmu_ib_ino_info_t *ino_p;
742 if (ino_p = pcmu_ib_locate_ino(pib_p, PCMU_IB_MONDO_TO_INO(mondo))) {
743 if (ih_p = pcmu_ib_ino_locate_intr(ino_p,