sys/arm/allwinner/a10/a10_intc.c
218
struct intr_pic *pic;
sys/arm/allwinner/a10/a10_intc.c
235
pic = intr_pic_register(sc->sc_dev, xref);
sys/arm/allwinner/a10/a10_intc.c
236
if (pic == NULL)
sys/arm/annapurna/alpine/alpine_pci_msix.c
293
device_t *pic, struct intr_irqsrc **srcs)
sys/arm/annapurna/alpine/alpine_pci_msix.c
347
*pic = sc->gic_dev;
sys/arm/annapurna/alpine/alpine_pci_msix.c
378
al_msix_alloc_msix(device_t dev, device_t child, device_t *pic,
sys/arm/annapurna/alpine/alpine_pci_msix.c
382
return (al_msix_alloc_msi(dev, child, 1, 1, pic, isrcp));
sys/arm/arm/gic.c
1372
device_t *pic, struct intr_irqsrc **srcs)
sys/arm/arm/gic.c
1383
*pic = dev;
sys/arm/arm/gic.c
1395
arm_gicv2m_alloc_msix(device_t dev, device_t child, device_t *pic,
sys/arm/arm/gic.c
1407
*pic = dev;
sys/arm/broadcom/bcm2835/bcm2836.c
589
struct intr_pic *pic;
sys/arm/broadcom/bcm2835/bcm2836.c
645
pic = intr_pic_register(sc->bls_dev, xref);
sys/arm/broadcom/bcm2835/bcm2836.c
646
if (pic == NULL)
sys/arm/broadcom/bcm2835/bcm2838_pci.c
423
device_t *pic, struct intr_irqsrc **srcs)
sys/arm/broadcom/bcm2835/bcm2838_pci.c
456
*pic = device_get_parent(dev);
sys/arm/mv/mv_ap806_gicp.c
339
device_t *pic, struct intr_irqsrc **srcs)
sys/arm/mv/mv_ap806_sei.c
410
device_t *pic, struct intr_irqsrc **srcs)
sys/arm/nvidia/tegra_pcie.c
741
device_t *pic, struct intr_irqsrc **srcs)
sys/arm/nvidia/tegra_pcie.c
790
*pic = device_get_parent(dev);
sys/arm/ti/aintc.c
212
struct intr_pic *pic;
sys/arm/ti/aintc.c
229
pic = intr_pic_register(sc->sc_dev, xref);
sys/arm/ti/aintc.c
230
if (pic == NULL)
sys/arm64/arm64/gic_v3.c
1659
device_t *pic, struct intr_irqsrc **isrc)
sys/arm64/arm64/gic_v3.c
1670
*pic = dev;
sys/arm64/arm64/gic_v3.c
1682
gic_v3_alloc_msix(device_t dev, device_t child, device_t *pic,
sys/arm64/arm64/gic_v3.c
1694
*pic = dev;
sys/arm64/arm64/gic_v3.c
603
struct intr_pic *pic;
sys/arm64/arm64/gic_v3.c
607
pic = sc->gic_pic;
sys/arm64/arm64/gic_v3.c
628
intr_child_irq_handler(pic, active_irq);
sys/arm64/arm64/gicv3_its.c
1670
device_t *pic, struct intr_irqsrc **srcs)
sys/arm64/arm64/gicv3_its.c
1722
*pic = dev;
sys/arm64/arm64/gicv3_its.c
1762
gicv3_its_alloc_msix(device_t dev, device_t child, device_t *pic,
sys/arm64/arm64/gicv3_its.c
1794
*pic = dev;
sys/dev/xilinx/xlnx_pcib.c
589
device_t *pic, struct intr_irqsrc **srcs)
sys/dev/xilinx/xlnx_pcib.c
633
*pic = device_get_parent(dev);
sys/kern/subr_intr.c
1001
device_get_name(pic->pic_dev)));
sys/kern/subr_intr.c
1002
return (PIC_MAP_INTR(pic->pic_dev, data, isrc));
sys/kern/subr_intr.c
1367
struct intr_pic *pic;
sys/kern/subr_intr.c
1371
pic = pic_create(dev, xref, FLAG_MSI);
sys/kern/subr_intr.c
1372
if (pic == NULL)
sys/kern/subr_intr.c
1375
debugf("PIC %p registered for %s <dev %p, xref %jx>\n", pic,
sys/kern/subr_intr.c
1386
struct intr_pic *pic;
sys/kern/subr_intr.c
1391
pic = pic_lookup(NULL, xref, FLAG_MSI);
sys/kern/subr_intr.c
1392
if (pic == NULL)
sys/kern/subr_intr.c
1395
KASSERT((pic->pic_flags & FLAG_TYPE_MASK) == FLAG_MSI,
sys/kern/subr_intr.c
1397
device_get_name(pic->pic_dev)));
sys/kern/subr_intr.c
1403
err = MSI_IOMMU_INIT(pic->pic_dev, child, &domain);
sys/kern/subr_intr.c
1408
err = MSI_ALLOC_MSI(pic->pic_dev, child, count, maxcount, &pdev, isrc);
sys/kern/subr_intr.c
1420
irqs[i] = intr_map_irq(pic->pic_dev, xref,
sys/kern/subr_intr.c
1433
struct intr_pic *pic;
sys/kern/subr_intr.c
1437
pic = pic_lookup(NULL, xref, FLAG_MSI);
sys/kern/subr_intr.c
1438
if (pic == NULL)
sys/kern/subr_intr.c
1441
KASSERT((pic->pic_flags & FLAG_TYPE_MASK) == FLAG_MSI,
sys/kern/subr_intr.c
1443
device_get_name(pic->pic_dev)));
sys/kern/subr_intr.c
1456
MSI_IOMMU_DEINIT(pic->pic_dev, child);
sys/kern/subr_intr.c
1458
err = MSI_RELEASE_MSI(pic->pic_dev, child, count, isrc);
sys/kern/subr_intr.c
1474
struct intr_pic *pic;
sys/kern/subr_intr.c
1479
pic = pic_lookup(NULL, xref, FLAG_MSI);
sys/kern/subr_intr.c
1480
if (pic == NULL)
sys/kern/subr_intr.c
1483
KASSERT((pic->pic_flags & FLAG_TYPE_MASK) == FLAG_MSI,
sys/kern/subr_intr.c
1485
device_get_name(pic->pic_dev)));
sys/kern/subr_intr.c
1491
err = MSI_IOMMU_INIT(pic->pic_dev, child, &domain);
sys/kern/subr_intr.c
1495
err = MSI_ALLOC_MSIX(pic->pic_dev, child, &pdev, &isrc);
sys/kern/subr_intr.c
1503
*irq = intr_map_irq(pic->pic_dev, xref, (struct intr_map_data *)msi);
sys/kern/subr_intr.c
1511
struct intr_pic *pic;
sys/kern/subr_intr.c
1515
pic = pic_lookup(NULL, xref, FLAG_MSI);
sys/kern/subr_intr.c
1516
if (pic == NULL)
sys/kern/subr_intr.c
1519
KASSERT((pic->pic_flags & FLAG_TYPE_MASK) == FLAG_MSI,
sys/kern/subr_intr.c
1521
device_get_name(pic->pic_dev)));
sys/kern/subr_intr.c
1534
MSI_IOMMU_DEINIT(pic->pic_dev, child);
sys/kern/subr_intr.c
1536
err = MSI_RELEASE_MSIX(pic->pic_dev, child, isrc);
sys/kern/subr_intr.c
1547
struct intr_pic *pic;
sys/kern/subr_intr.c
1550
pic = pic_lookup(NULL, xref, FLAG_MSI);
sys/kern/subr_intr.c
1551
if (pic == NULL)
sys/kern/subr_intr.c
1554
KASSERT((pic->pic_flags & FLAG_TYPE_MASK) == FLAG_MSI,
sys/kern/subr_intr.c
1556
device_get_name(pic->pic_dev)));
sys/kern/subr_intr.c
1562
err = MSI_MAP_MSI(pic->pic_dev, child, isrc, addr, data);
sys/kern/subr_intr.c
763
struct intr_pic *pic;
sys/kern/subr_intr.c
771
SLIST_FOREACH(pic, &pic_list, pic_next) {
sys/kern/subr_intr.c
772
if ((pic->pic_flags & FLAG_TYPE_MASK) !=
sys/kern/subr_intr.c
777
if (xref == pic->pic_xref)
sys/kern/subr_intr.c
778
return (pic);
sys/kern/subr_intr.c
779
} else if (xref == 0 || pic->pic_xref == 0) {
sys/kern/subr_intr.c
780
if (dev == pic->pic_dev)
sys/kern/subr_intr.c
781
return (pic);
sys/kern/subr_intr.c
782
} else if (xref == pic->pic_xref && dev == pic->pic_dev)
sys/kern/subr_intr.c
783
return (pic);
sys/kern/subr_intr.c
794
struct intr_pic *pic;
sys/kern/subr_intr.c
797
pic = pic_lookup_locked(dev, xref, flags);
sys/kern/subr_intr.c
799
return (pic);
sys/kern/subr_intr.c
808
struct intr_pic *pic;
sys/kern/subr_intr.c
811
pic = pic_lookup_locked(dev, xref, flags);
sys/kern/subr_intr.c
812
if (pic != NULL) {
sys/kern/subr_intr.c
814
return (pic);
sys/kern/subr_intr.c
816
pic = malloc(sizeof(*pic), M_INTRNG, M_NOWAIT | M_ZERO);
sys/kern/subr_intr.c
817
if (pic == NULL) {
sys/kern/subr_intr.c
821
pic->pic_xref = xref;
sys/kern/subr_intr.c
822
pic->pic_dev = dev;
sys/kern/subr_intr.c
823
pic->pic_flags = flags;
sys/kern/subr_intr.c
824
mtx_init(&pic->pic_child_lock, "pic child lock", NULL, MTX_SPIN);
sys/kern/subr_intr.c
825
SLIST_INSERT_HEAD(&pic_list, pic, pic_next);
sys/kern/subr_intr.c
828
return (pic);
sys/kern/subr_intr.c
837
struct intr_pic *pic;
sys/kern/subr_intr.c
840
pic = pic_lookup_locked(dev, xref, flags);
sys/kern/subr_intr.c
841
if (pic == NULL) {
sys/kern/subr_intr.c
845
SLIST_REMOVE(&pic_list, pic, intr_pic, pic_next);
sys/kern/subr_intr.c
848
free(pic, M_INTRNG);
sys/kern/subr_intr.c
857
struct intr_pic *pic;
sys/kern/subr_intr.c
861
pic = pic_create(dev, xref, FLAG_PIC);
sys/kern/subr_intr.c
862
if (pic == NULL)
sys/kern/subr_intr.c
865
debugf("PIC %p registered for %s <dev %p, xref %jx>\n", pic,
sys/kern/subr_intr.c
867
return (pic);
sys/kern/subr_intr.c
896
struct intr_pic *pic;
sys/kern/subr_intr.c
899
pic = pic_lookup(dev, xref, FLAG_PIC);
sys/kern/subr_intr.c
900
if (pic == NULL) {
sys/kern/subr_intr.c
905
KASSERT((pic->pic_flags & FLAG_TYPE_MASK) == FLAG_PIC,
sys/kern/subr_intr.c
907
device_get_name(pic->pic_dev)));
sys/kern/subr_intr.c
939
intr_pic_add_handler(device_t parent, struct intr_pic *pic,
sys/kern/subr_intr.c
955
newchild->pc_pic = pic;
sys/kern/subr_intr.c
964
KASSERT(child->pc_pic != pic, ("%s: Adding a child PIC twice",
sys/kern/subr_intr.c
978
struct intr_pic *pic;
sys/kern/subr_intr.c
984
pic = pic_lookup(dev, xref,
sys/kern/subr_intr.c
986
if (pic == NULL)
sys/kern/subr_intr.c
991
KASSERT((pic->pic_flags & FLAG_TYPE_MASK) == FLAG_MSI,
sys/kern/subr_intr.c
993
device_get_name(pic->pic_dev)));
sys/kern/subr_intr.c
999
KASSERT((pic->pic_flags & FLAG_TYPE_MASK) == FLAG_PIC,
sys/powerpc/powerpc/intr_machdep.c
118
static struct pic piclist[MAX_PICS];
sys/powerpc/powerpc/intr_machdep.c
199
if (i != NULL && i->event != NULL && i->pic == root_pic)
sys/powerpc/powerpc/intr_machdep.c
200
PIC_BIND(i->pic, i->intline, i->pi_cpuset, &i->priv);
sys/powerpc/powerpc/intr_machdep.c
246
i->pic = NULL;
sys/powerpc/powerpc/intr_machdep.c
288
struct pic *p;
sys/powerpc/powerpc/intr_machdep.c
302
i->pic = p->dev;
sys/powerpc/powerpc/intr_machdep.c
305
if (i->pic == NULL)
sys/powerpc/powerpc/intr_machdep.c
306
i->pic = root_pic;
sys/powerpc/powerpc/intr_machdep.c
316
PIC_EOI(i->pic, i->intline, i->priv);
sys/powerpc/powerpc/intr_machdep.c
324
PIC_MASK(i->pic, i->intline, i->priv);
sys/powerpc/powerpc/intr_machdep.c
325
PIC_EOI(i->pic, i->intline, i->priv);
sys/powerpc/powerpc/intr_machdep.c
333
PIC_UNMASK(i->pic, i->intline, i->priv);
sys/powerpc/powerpc/intr_machdep.c
347
if (!cold && i->pic != NULL && i->pic == root_pic)
sys/powerpc/powerpc/intr_machdep.c
348
PIC_BIND(i->pic, i->intline, i->pi_cpuset, &i->priv);
sys/powerpc/powerpc/intr_machdep.c
360
struct pic *p;
sys/powerpc/powerpc/intr_machdep.c
487
PIC_TRANSLATE_CODE(i->pic, i->intline, i->fwcode,
sys/powerpc/powerpc/intr_machdep.c
491
PIC_CONFIG(i->pic, i->intline, i->trig, i->pol);
sys/powerpc/powerpc/intr_machdep.c
494
PIC_ENABLE(i->pic, i->intline, vector, &i->priv);
sys/powerpc/powerpc/intr_machdep.c
553
PIC_TRANSLATE_CODE(i->pic, i->intline,
sys/powerpc/powerpc/intr_machdep.c
558
PIC_CONFIG(i->pic, i->intline, i->trig, i->pol);
sys/powerpc/powerpc/intr_machdep.c
560
if (i->pic == root_pic)
sys/powerpc/powerpc/intr_machdep.c
561
PIC_BIND(i->pic, i->intline, i->pi_cpuset, &i->priv);
sys/powerpc/powerpc/intr_machdep.c
564
PIC_ENABLE(i->pic, i->intline, i->vector,
sys/powerpc/powerpc/intr_machdep.c
605
if (!cold && i->pic != NULL) {
sys/powerpc/powerpc/intr_machdep.c
606
PIC_TRANSLATE_CODE(i->pic, i->intline, i->fwcode, &i->trig,
sys/powerpc/powerpc/intr_machdep.c
608
PIC_CONFIG(i->pic, i->intline, i->trig, i->pol);
sys/powerpc/powerpc/intr_machdep.c
626
if (!cold && i->pic != NULL)
sys/powerpc/powerpc/intr_machdep.c
627
PIC_CONFIG(i->pic, i->intline, trig, pol);
sys/powerpc/powerpc/intr_machdep.c
652
PIC_EOI(i->pic, i->intline, i->priv);
sys/powerpc/powerpc/intr_machdep.c
669
PIC_MASK(i->pic, i->intline, i->priv);
sys/powerpc/powerpc/intr_machdep.c
678
if (i == NULL || i->pic == NULL)
sys/powerpc/powerpc/intr_machdep.c
681
PIC_MASK(i->pic, i->intline, i->priv);
sys/powerpc/powerpc/intr_machdep.c
690
if (i == NULL || i->pic == NULL)
sys/powerpc/powerpc/intr_machdep.c
693
PIC_UNMASK(i->pic, i->intline, i->priv);
sys/powerpc/powerpc/intr_machdep.c
94
device_t pic;
sys/riscv/riscv/aplic.c
319
struct intr_pic *pic;
sys/riscv/riscv/aplic.c
433
pic = intr_pic_register(sc->dev, xref);
sys/riscv/riscv/aplic.c
434
if (pic == NULL) {
sys/riscv/riscv/intc.c
155
struct intr_pic *pic;
sys/riscv/riscv/intc.c
180
pic = intr_pic_register(sc->dev, xref);
sys/riscv/riscv/intc.c
181
if (pic == NULL)
sys/riscv/riscv/plic.c
293
struct intr_pic *pic;
sys/riscv/riscv/plic.c
439
pic = intr_pic_register(sc->dev, xref);
sys/riscv/riscv/plic.c
440
if (pic == NULL)
sys/riscv/starfive/jh7110_pcie.c
304
device_t *pic, struct intr_irqsrc **srcs)
sys/riscv/starfive/jh7110_pcie.c
337
*pic = device_get_parent(dev);
sys/riscv/starfive/jh7110_pcie.c
417
jh7110_pcie_msi_alloc_msix(device_t dev, device_t child, device_t *pic,
sys/riscv/starfive/jh7110_pcie.c
420
return (jh7110_pcie_msi_alloc_msi(dev, child, 1, 32, pic, isrcp));
sys/x86/include/intr_machdep.h
107
struct pic *is_pic;
sys/x86/include/intr_machdep.h
149
int intr_register_pic(struct pic *pic);
sys/x86/include/intr_machdep.h
77
void (*pic_register_sources)(struct pic *);
sys/x86/include/intr_machdep.h
85
void (*pic_suspend)(struct pic *);
sys/x86/include/intr_machdep.h
86
void (*pic_resume)(struct pic *, bool suspend_cancelled);
sys/x86/include/intr_machdep.h
91
TAILQ_ENTRY(pic) pics;
sys/x86/isa/atpic.c
122
struct pic at_pic;
sys/x86/isa/atpic.c
138
static void atpic_register_sources(struct pic *pic);
sys/x86/isa/atpic.c
146
static void atpic_resume(struct pic *pic, bool suspend_cancelled);
sys/x86/isa/atpic.c
151
static void i8259_init(struct atpic *pic, int slave);
sys/x86/isa/atpic.c
209
atpic_register_sources(struct pic *pic)
sys/x86/isa/atpic.c
211
struct atpic *ap = (struct atpic *)pic;
sys/x86/isa/atpic.c
334
atpic_resume(struct pic *pic, bool suspend_cancelled)
sys/x86/isa/atpic.c
336
struct atpic *ap = (struct atpic *)pic;
sys/x86/isa/atpic.c
411
i8259_init(struct atpic *pic, int slave)
sys/x86/isa/atpic.c
417
outb(pic->at_ioaddr, ICW1_RESET | ICW1_IC4);
sys/x86/isa/atpic.c
418
imr_addr = pic->at_ioaddr + ICU_IMR_OFFSET;
sys/x86/isa/atpic.c
421
outb(imr_addr, pic->at_intbase);
sys/x86/isa/atpic.c
440
outb(imr_addr, pic->at_imen);
sys/x86/isa/atpic.c
443
outb(pic->at_ioaddr, OCW3_SEL | OCW3_RR);
sys/x86/isa/atpic.c
447
outb(pic->at_ioaddr, OCW2_R | OCW2_SL | OCW2_L1);
sys/x86/x86/intr_machdep.c
108
static int intr_pic_registered(struct pic *pic);
sys/x86/x86/intr_machdep.c
126
intr_pic_registered(struct pic *pic)
sys/x86/x86/intr_machdep.c
128
struct pic *p;
sys/x86/x86/intr_machdep.c
131
if (p == pic)
sys/x86/x86/intr_machdep.c
144
intr_register_pic(struct pic *pic)
sys/x86/x86/intr_machdep.c
149
if (intr_pic_registered(pic))
sys/x86/x86/intr_machdep.c
152
TAILQ_INSERT_TAIL(&pics, pic, pics);
sys/x86/x86/intr_machdep.c
166
struct pic *pic;
sys/x86/x86/intr_machdep.c
205
TAILQ_FOREACH(pic, &pics, pics) {
sys/x86/x86/intr_machdep.c
206
if (pic->pic_register_sources != NULL)
sys/x86/x86/intr_machdep.c
207
pic->pic_register_sources(pic);
sys/x86/x86/intr_machdep.c
382
struct pic *pic;
sys/x86/x86/intr_machdep.c
388
TAILQ_FOREACH(pic, &pics, pics) {
sys/x86/x86/intr_machdep.c
389
if (pic->pic_resume != NULL)
sys/x86/x86/intr_machdep.c
390
pic->pic_resume(pic, suspend_cancelled);
sys/x86/x86/intr_machdep.c
398
struct pic *pic;
sys/x86/x86/intr_machdep.c
401
TAILQ_FOREACH_REVERSE(pic, &pics, pics_head, pics) {
sys/x86/x86/intr_machdep.c
402
if (pic->pic_suspend != NULL)
sys/x86/x86/intr_machdep.c
403
pic->pic_suspend(pic);
sys/x86/x86/intr_machdep.c
89
static TAILQ_HEAD(pics_head, pic) pics;
sys/x86/x86/io_apic.c
115
static void ioapic_register_sources(struct pic *pic);
sys/x86/x86/io_apic.c
125
static void ioapic_resume(struct pic *pic, bool suspend_cancelled);
sys/x86/x86/io_apic.c
131
struct pic ioapic_template = {
sys/x86/x86/io_apic.c
615
ioapic_resume(struct pic *pic, bool suspend_cancelled)
sys/x86/x86/io_apic.c
617
struct ioapic *io = (struct ioapic *)pic;
sys/x86/x86/io_apic.c
704
intpin->io_intsrc.is_pic = (struct pic *)io;
sys/x86/x86/io_apic.c
948
ioapic_register_sources(struct pic *pic)
sys/x86/x86/io_apic.c
95
struct pic io_pic;
sys/x86/x86/io_apic.c
954
io = (struct ioapic *)pic;
sys/x86/x86/local_apic.c
1235
lapic_resume(struct pic *pic, bool suspend_cancelled)
sys/x86/x86/local_apic.c
459
static void lapic_resume(struct pic *pic, bool suspend_cancelled);
sys/x86/x86/local_apic.c
473
struct pic lapic_pic = { .pic_resume = lapic_resume };
sys/x86/x86/msi.c
144
struct pic msi_pic = {
sys/x86/xen/xen_arch_intr.c
234
xen_intr_pic_suspend(struct pic *pic)
sys/x86/xen/xen_arch_intr.c
241
xen_intr_pic_resume(struct pic *pic, bool suspend_cancelled)
sys/x86/xen/xen_arch_intr.c
279
static struct pic xen_intr_pic = {