| /freebsd/sys/contrib/device-tree/Bindings/mailbox/ |
| H A D | xlnx,zynqmp-ipi-mailbox.txt | 1 Xilinx IPI Mailbox Controller 4 The Xilinx IPI(Inter Processor Interrupt) mailbox controller is to manage 5 messaging between two Xilinx Zynq UltraScale+ MPSoC IPI agents. Each IPI 9 | Xilinx ZynqMP IPI Controller | 21 Hardware | | IPI Agent | | IPI Buffers | | 26 | Xilinx IPI Agent Block | 34 IPI agent node: 35 - compatible: Shall be: "xlnx,zynqmp-ipi-mailbox" 39 - xlnx,ipi-id: local Xilinx IPI agent ID 40 - #address-cells: number of address cells of internal IPI mailbox nodes [all …]
|
| H A D | xlnx,zynqmp-ipi-mailbox.yaml | 4 $id: http://devicetree.org/schemas/mailbox/xlnx,zynqmp-ipi-mailbox.yaml# 7 title: Xilinx IPI(Inter Processor Interrupt) mailbox controller 10 The Xilinx IPI(Inter Processor Interrupt) mailbox controller is to manage 11 messaging between two Xilinx Zynq UltraScale+ MPSoC IPI agents. Each IPI 15 | Xilinx ZynqMP IPI Controller | 27 Hardware | | IPI Agent | | IPI Buffers | | 32 | Xilinx IPI Agent Block | 41 - xlnx,zynqmp-ipi [all...] |
| /freebsd/sys/riscv/riscv/ |
| H A D | sbi_ipi.c | 56 u_int ipi) in sbi_ipi_pic_ipi_send() argument 65 KASSERT(isrc == &sc->isrc, ("%s: not the IPI isrc", __func__)); in sbi_ipi_pic_ipi_send() 66 KASSERT(ipi < INTR_IPI_COUNT, in sbi_ipi_pic_ipi_send() 67 ("%s: not a valid IPI: %u", __func__, ipi)); in sbi_ipi_pic_ipi_send() 73 atomic_set_32(&sc->pending_ipis[cpu], 1u << ipi); in sbi_ipi_pic_ipi_send() 81 sbi_ipi_pic_ipi_setup(device_t dev, u_int ipi, struct intr_irqsrc **isrcp) in sbi_ipi_pic_ipi_setup() argument 87 KASSERT(ipi < INTR_IPI_COUNT, in sbi_ipi_pic_ipi_setup() 88 ("%s: not a valid IPI: %u", __func__, ipi)); in sbi_ipi_pic_ipi_setup() 101 u_int cpu, ipi; in sbi_ipi_intr() local 119 ipi = (bit - 1); in sbi_ipi_intr() [all …]
|
| H A D | mp_machdep.c | 122 /* Setup the IPI handlers */ in release_aps() 199 /* enable IPI's, tlb shootdown, freezes etc */ in init_secondary() 494 ipi_all_but_self(u_int ipi) in ipi_all_but_self() argument 501 CTR2(KTR_SMP, "%s: ipi: %x", __func__, ipi); in ipi_all_but_self() 502 intr_ipi_send(other_cpus, ipi); in ipi_all_but_self() 506 ipi_cpu(int cpu, u_int ipi) in ipi_cpu() argument 513 CTR3(KTR_SMP, "%s: cpu: %d, ipi: %x", __func__, cpu, ipi); in ipi_cpu() 514 intr_ipi_send(cpus, ipi); in ipi_cpu() 518 ipi_selected(cpuset_t cpus, u_int ipi) in ipi_selected() argument 520 CTR1(KTR_SMP, "ipi_selected: ipi: %x", ipi); in ipi_selected() [all …]
|
| /freebsd/sys/x86/x86/ |
| H A D | mp_x86.c | 1051 * mode while BSP might still want to send some IPI to us in init_secondary_tail() 1052 * (second startup IPI is ignored on modern hardware etc). in init_secondary_tail() 1116 /* enable IPI's, tlb shootdown, freezes etc */ in init_secondary_tail() 1224 * Init and startup IPI. 1233 * For each IPI, we allow the local APIC ~20us to deliver the in ipi_startup() 1234 * IPI. If that times out, we panic. in ipi_startup() 1238 * first we do an INIT IPI: this INIT IPI might be run, resetting in ipi_startup() 1239 * and running the target CPU. OR this INIT IPI might be latched (P5 in ipi_startup() 1240 * bug), CPU waiting for STARTUP IPI. OR this INIT IPI might be in ipi_startup() 1247 /* Explicitly deassert the INIT IPI. */ in ipi_startup() [all …]
|
| /freebsd/sys/arm/arm/ |
| H A D | mp_machdep.c | 196 /* enable IPI's, tlb shootdown, freezes etc */ in init_secondary() 338 /* Sending IPI */ 340 ipi_all_but_self(u_int ipi) in ipi_all_but_self() argument 346 CTR2(KTR_SMP, "%s: ipi: %x", __func__, ipi); in ipi_all_but_self() 347 intr_ipi_send(other_cpus, ipi); in ipi_all_but_self() 351 ipi_cpu(int cpu, u_int ipi) in ipi_cpu() argument 358 CTR3(KTR_SMP, "%s: cpu: %d, ipi: %x", __func__, cpu, ipi); in ipi_cpu() 359 intr_ipi_send(cpus, ipi); in ipi_cpu() 363 ipi_selected(cpuset_t cpus, u_int ipi) in ipi_selected() argument 366 CTR2(KTR_SMP, "%s: ipi: %x", __func__, ipi); in ipi_selected() [all …]
|
| /freebsd/contrib/llvm-project/llvm/lib/Target/AArch64/ |
| H A D | AArch64PromoteConstant.cpp | 205 /// Transfer the list of dominated uses of IPI to NewPt in InsertPts. 206 /// Append Use to this list and delete the entry of IPI in InsertPts. 209 InsertionPoints::iterator &IPI, in appendAndTransferDominatedUses() argument 212 IPI->second.emplace_back(User, OpNo); in appendAndTransferDominatedUses() 213 // Transfer the dominated uses of IPI to NewPt in appendAndTransferDominatedUses() 216 // value so that we don't have to dereference IPI->second. in appendAndTransferDominatedUses() 217 Instruction *OldInstr = IPI->first; in appendAndTransferDominatedUses() 218 Uses OldUses = std::move(IPI->second); in appendAndTransferDominatedUses() 220 // Erase IPI. in appendAndTransferDominatedUses() 389 for (auto &IPI : InsertPts) { in isDominated() local [all …]
|
| /freebsd/sys/powerpc/include/ |
| H A D | openpicreg.h | 40 /* IPI dispatch command reg */ 41 #define OPENPIC_IPI_DISPATCH(ipi) (0x40 + (ipi) * 0x10) argument 84 /* IPI vector/priority reg */ 85 #define OPENPIC_IPI_VECTOR(ipi) (0x10a0 + (ipi) * 0x10) argument 128 #define OPENPIC_PCPU_IPI_DISPATCH(cpu, ipi) \ argument 129 (OPENPIC_PCPU_BASE(cpu) + OPENPIC_IPI_DISPATCH(ipi))
|
| /freebsd/sys/powerpc/powerpc/ |
| H A D | mp_machdep.c | 341 ipi_send(struct pcpu *pc, int ipi) in ipi_send() argument 344 CTR4(KTR_SMP, "%s: pc=%p, targetcpu=%d, IPI=%d", __func__, in ipi_send() 345 pc, pc->pc_cpuid, ipi); in ipi_send() 347 atomic_set_32(&pc->pc_ipimask, (1 << ipi)); in ipi_send() 354 /* Send an IPI to a set of cpus. */ 356 ipi_selected(cpuset_t cpus, int ipi) in ipi_selected() argument 362 ipi_send(pc, ipi); in ipi_selected() 366 /* Send an IPI to a specific CPU. */ 368 ipi_cpu(int cpu, u_int ipi) in ipi_cpu() argument 371 ipi_send(cpuid_to_pcpu[cpu], ipi); in ipi_cpu() [all …]
|
| H A D | intr_machdep.c | 100 int ipi; member 152 **cookiep, int domain, bool ipi); 255 i->ipi = 0; in intr_lookup() 461 /* Install an IPI handler. */ in powerpc_enable_intr() 470 error = powerpc_setup_intr_int("IPI", in powerpc_enable_intr() 476 printf("unable to setup IPI handler\n"); in powerpc_enable_intr() 520 int domain, bool ipi) in powerpc_setup_intr_int() argument 532 (ipi ? NULL : powerpc_intr_eoi), powerpc_assign_intr_cpu, in powerpc_setup_intr_int() 539 i->ipi = ipi; in powerpc_setup_intr_int() 546 if (strcmp(name, "IPI") != 0) { in powerpc_setup_intr_int() [all …]
|
| /freebsd/contrib/llvm-project/llvm/tools/llvm-pdbutil/ |
| H A D | StreamUtil.cpp | 71 auto Ipi = File.getPDBIpiStream(); in discoverStreamPurposes() 108 Streams[StreamIdx] = stream(StreamPurpose::IPI, "IPI Stream", StreamIdx); in discoverStreamPurposes() 124 else if (Ipi && StreamIdx == Ipi->getTypeHashStreamIndex()) in discoverStreamPurposes() 126 stream(StreamPurpose::IpiHash, "IPI Hash", StreamIdx); in discoverStreamPurposes() 127 else if (Ipi && StreamIdx == Ipi->getTypeHashStreamAuxIndex()) in discoverStreamPurposes() 129 stream(StreamPurpose::Other, "IPI Aux Hash", StreamIdx); in discoverStreamPurposes() 189 if (!Ipi) in discoverStreamPurposes() 72 auto Ipi = File.getPDBIpiStream(); discoverStreamPurposes() local [all...] |
| /freebsd/sys/x86/xen/ |
| H A D | xen_apic.c | 73 #define IPI_TO_IDX(ipi) ((ipi) - APIC_IPI_INTS) argument 182 panic("IPI out of range"); in xen_pv_lapic_ipi_vectored() 212 /*---------------------------- XEN PV IPI Handlers ---------------------------*/ 303 /*----------------------------- XEN PV IPI setup -----------------------------*/ 313 const struct xen_ipi_handler *ipi; in xen_cpu_ipi_init() local 318 for (ipi = xen_ipis, idx = 0; idx < nitems(xen_ipis); ipi++, idx++) { in xen_cpu_ipi_init() 319 if (ipi->filter == NULL) { in xen_cpu_ipi_init() 324 rc = xen_intr_alloc_and_bind_ipi(cpu, ipi->filter, in xen_cpu_ipi_init() 327 panic("Unable to allocate a XEN IPI port"); in xen_cpu_ipi_init() 328 xen_intr_describe(ipi_handle[idx], "%s", ipi->description); in xen_cpu_ipi_init() [all …]
|
| /freebsd/sys/netinet/ |
| H A D | in_pcb.h | 488 #define INP_INFO_WLOCK(ipi) mtx_lock(&(ipi)->ipi_lock) argument 489 #define INP_INFO_WLOCKED(ipi) mtx_owned(&(ipi)->ipi_lock) argument 490 #define INP_INFO_WUNLOCK(ipi) mtx_unlock(&(ipi)->ipi_lock) argument 491 #define INP_INFO_LOCK_ASSERT(ipi) MPASS(SMR_ENTERED((ipi)->ipi_smr) || \ argument 492 mtx_owned(&(ipi)->ipi_lock)) 493 #define INP_INFO_WLOCK_ASSERT(ipi) mtx_assert(&(ipi)->ipi_lock, MA_OWNED) argument 494 #define INP_INFO_WUNLOCK_ASSERT(ipi) \ argument 495 mtx_assert(&(ipi)->ipi_lock, MA_NOTOWNED) 497 #define INP_HASH_WLOCK(ipi) mtx_lock(&(ipi)->ipi_hash_lock) argument 498 #define INP_HASH_WUNLOCK(ipi) mtx_unlock(&(ipi)->ipi_hash_lock) argument [all …]
|
| /freebsd/sys/arm/broadcom/bcm2835/ |
| H A D | bcm2836.c | 161 #define BCM_LINTC_NIPIS 32 /* only mailbox 0 is used for IPI */ 332 bcm_lintc_ipi_write(struct bcm_lintc_softc *sc, cpuset_t cpus, u_int ipi) in bcm_lintc_ipi_write() argument 337 mask = 1 << ipi; in bcm_lintc_ipi_write() 348 u_int ipi; in bcm_lintc_ipi_dispatch() local 353 device_printf(sc->bls_dev, "Spurious ipi detected\n"); in bcm_lintc_ipi_dispatch() 357 for (ipi = 0; mask != 0; mask >>= 1, ipi++) { in bcm_lintc_ipi_dispatch() 361 * Clear an IPI before dispatching to not miss anyone in bcm_lintc_ipi_dispatch() 364 bcm_lintc_write_4(sc, BCM_LINTC_MBOX0_CLR_REG(cpu), 1 << ipi); in bcm_lintc_ipi_dispatch() 370 intr_ipi_dispatch(ipi); in bcm_lintc_ipi_dispatch() 564 u_int ipi) in bcm_lintc_ipi_send() argument [all …]
|
| /freebsd/contrib/netbsd-tests/net/net/ |
| H A D | t_pktinfo.c | 105 struct in_pktinfo *ipi; in receive() local 106 char control[CMSG_SPACE(sizeof(*ipi)) * 2]; in receive() 139 ipi = (void *)CMSG_DATA(cmsg); in receive() 142 m, inet_ntoa(ipi->ipi_addr), ipi->ipi_ifindex); in receive() 145 ATF_REQUIRE_MSG(ipi->ipi_addr.s_addr == htonl(INADDR_LOOPBACK), in receive() 146 "address 0x%x != 0x%x", ipi->ipi_addr.s_addr, in receive()
|
| /freebsd/sys/kern/ |
| H A D | subr_intr.c | 38 * - to support IPI (PPI) enabling on other CPUs if already started. 202 * - mp_maxid + 1 counters for each IPI counters for SMP. in intr_irq_init() 522 * Setup interrupt counters, but not for IPI sources. Those are setup in intr_isrc_register() 1789 /* Virtualization for interrupt source IPI counter increment. */ 1799 * Virtualization for interrupt source IPI counters setup. 1813 * reserved, the IPI counters will never be released. Similarly, we 1830 * Lookup IPI source. 1833 intr_ipi_lookup(u_int ipi) argument 1836 if (ipi >= INTR_IPI_COUNT) 1837 panic("%s: no such IPI %u", __func__, ipi); [all …]
|
| H A D | pic_if.m | 82 null_pic_ipi_send(device_t dev, cpuset_t cpus, u_int ipi) 87 dflt_pic_ipi_setup(device_t dev, u_int ipi, struct intr_irqsrc *isrc) 167 u_int ipi; 172 u_int ipi;
|
| /freebsd/sys/arm64/apple/ |
| H A D | apple_aic.c | 540 uint32_t ipi; in apple_aic_ipi_received() local 548 ipi = ffs(mask) - 1; in apple_aic_ipi_received() 549 mask &= ~(1 << ipi); in apple_aic_ipi_received() 551 intr_ipi_dispatch(ipi); in apple_aic_ipi_received() 570 /* If we get an IPI here, we really goofed. */ in apple_aic_irq() 618 * of IPI handling, so we have to probe around outside of AIC to in apple_aic_fiq() 675 u_int ipi) in apple_aic_ipi_send() argument 685 KASSERT(isrc == &sc->sc_ipi_srcs[ipi].ai_isrc, in apple_aic_ipi_send() 691 atomic_set_32(&sc->sc_ipimasks[cpu], 1 << ipi); in apple_aic_ipi_send() 695 * before we write to the ipi register to avoid the in apple_aic_ipi_send() [all …]
|
| /freebsd/sys/amd64/amd64/ |
| H A D | apic_vector.S | 41 * as well as IPI handlers. 167 * IPI handler for cache and TLB shootdown 177 * Handler for IPIs sent via the per-cpu IPI bitmap. 217 * Executed by a CPU when it receives a RENDEZVOUS IPI from another CPU. 234 * IPI handler whose purpose is to interrupt the CPU with minimum overhead. 238 * This handler is different from other IPI handlers in the following aspects:
|
| /freebsd/contrib/llvm-project/llvm/lib/DebugInfo/PDB/Native/ |
| H A D | PDBFileBuilder.cpp | 78 if (!Ipi) in getIpiBuilder() 79 Ipi = std::make_unique<TpiStreamBuilder>(*Msf, StreamIPI); in getIpiBuilder() 80 return *Ipi; in getIpiBuilder() 135 if (Ipi && Ipi->getRecordCount() > 0) { in finalizeMsfLayout() 171 if (Ipi) { in finalizeMsfLayout() 172 if (auto EC = Ipi->finalizeMsfLayout()) in finalizeMsfLayout() 325 if (Ipi) { in commit() 326 if (auto EC = Ipi->commit(Layout, Buffer)) in commit()
|
| /freebsd/sys/arm/include/ |
| H A D | smp.h | 23 void ipi_all_but_self(u_int ipi); 24 void ipi_cpu(int cpu, u_int ipi); 25 void ipi_selected(cpuset_t cpus, u_int ipi);
|
| /freebsd/sys/contrib/device-tree/Bindings/powerpc/fsl/ |
| H A D | mpic.txt | 71 non-IPI interrupts to a single CPU at a time (EG: Freescale MPIC). 127 2 = MPIC inter-processor interrupt (IPI) 130 the MPIC IPI number. The type-specific 193 * MPIC IPI interrupts. Note the interrupt 196 ipi@410a0 { 197 compatible = "fsl,mpic-ipi";
|
| /freebsd/sys/arm64/arm64/ |
| H A D | mp_machdep.c | 852 /* Sending IPI */ 854 ipi_all_but_self(u_int ipi) in ipi_all_but_self() argument 860 CTR2(KTR_SMP, "%s: ipi: %x", __func__, ipi); in ipi_all_but_self() 861 intr_ipi_send(cpus, ipi); in ipi_all_but_self() 865 ipi_cpu(int cpu, u_int ipi) in ipi_cpu() argument 872 CTR3(KTR_SMP, "%s: cpu: %d, ipi: %x", __func__, cpu, ipi); in ipi_cpu() 873 intr_ipi_send(cpus, ipi); in ipi_cpu() 877 ipi_selected(cpuset_t cpus, u_int ipi) in ipi_selected() argument 880 CTR2(KTR_SMP, "%s: ipi: %x", __func__, ipi); in ipi_selected() 881 intr_ipi_send(cpus, ipi); in ipi_selected()
|
| /freebsd/sys/arm64/include/ |
| H A D | smp.h | 46 void ipi_all_but_self(u_int ipi); 47 void ipi_cpu(int cpu, u_int ipi); 48 void ipi_selected(cpuset_t cpus, u_int ipi);
|
| /freebsd/sys/x86/include/ |
| H A D | x86_smp.h | 76 /* IPI handlers */ 99 void ipi_all_but_self(u_int ipi); 101 void ipi_cpu(int cpu, u_int ipi); 104 void ipi_selected(cpuset_t cpus, u_int ipi);
|