FreeBSD/sys/arm64/arm64/mp_machdep.c
/*
 *  Map IPI into interrupt controller.
 *
 *  Not SMP coherent.
 */
Map IPI into interrupt controller.
Not SMP coherent.
Map IPI into interrupt controller . Not SMP coherent .
static int
ipi_map(struct intr_irqsrc *isrc, u_int ipi)
{
	boolean_t is_percpu;
	int error;
	if (ipi >= INTR_IPI_COUNT)
		panic("%s: no such IPI %u", __func__, ipi);
	KASSERT(intr_irq_root_dev != NULL, ("%s: no root attached", __func__));
	isrc->isrc_type = INTR_ISRCT_NAMESPACE;
	isrc->isrc_nspc_type = INTR_IRQ_NSPC_IPI;
	isrc->isrc_nspc_num = ipi_next_num;
	error = PIC_REGISTER(intr_irq_root_dev, isrc, &is_percpu);
	if (error == 0) {
		isrc->isrc_dev = intr_irq_root_dev;
		ipi_next_num++;
	}
	return (error);
}
static int ipi_map ( struct intr_irqsrc * isrc , u_int ipi ) { boolean_t is_percpu ; int error ; if ( ipi >= INTR_IPI_COUNT ) panic ( " " , __func__ , ipi ) ; KASSERT ( intr_irq_root_dev != NULL , ( " " , __func__ ) ) ; isrc -> isrc_type = INTR_ISRCT_NAMESPACE ; isrc -> isrc_nspc_type = INTR_IRQ_NSPC_IPI ; isrc -> isrc_nspc_num = ipi_next_num ; error = PIC_REGISTER ( intr_irq_root_dev , isrc , & is_percpu ) ; if ( error == 0 ) { isrc -> isrc_dev = intr_irq_root_dev ; ipi_next_num ++ ; } return ( error ) ; }
Map IPI into interrupt controller.
Map IPI into interrupt controller .