arch/mips/sgi-ip32/ip32-irq.c
Source file repositories/reference/linux-study-clean/arch/mips/sgi-ip32/ip32-irq.c
File Facts
- System
- Linux kernel
- Corpus path
arch/mips/sgi-ip32/ip32-irq.c- Extension
.c- Size
- 12825 bytes
- Lines
- 498
- Domain
- Architecture Layer
- Bucket
- arch/mips
- Inferred role
- Architecture Layer: implementation source
- Status
- source implementation candidate
Why This File Exists
CPU and platform-specific kernel glue: boot entry, traps, syscall entry, interrupts, page tables, context switch, and low-level barriers.
- CPU and platform-specific kernel glue: boot entry, traps, syscall entry, interrupts, page tables, context switch, and low-level barriers.
- Touches IRQ or DMA behavior; this matters for the representative real-device path.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
linux/init.hlinux/kernel_stat.hlinux/types.hlinux/interrupt.hlinux/irq.hlinux/bitops.hlinux/kernel.hlinux/mm.hlinux/random.hlinux/sched.hlinux/sched/debug.hasm/irq_cpu.hasm/mipsregs.hasm/signal.hasm/time.hasm/ip32/crime.hasm/ip32/mace.hasm/ip32/ip32_ints.hip32-common.h
Detected Declarations
function Copyrightfunction flush_mace_busfunction crime_enable_irqfunction crime_disable_irqfunction crime_edge_mask_and_ack_irqfunction enable_macepci_irqfunction disable_macepci_irqfunction enable_maceisa_irqfunction disable_maceisa_irqfunction mask_and_ack_maceisa_irqfunction enable_mace_irqfunction disable_mace_irqfunction ip32_unknown_interruptfunction ip32_irq0function ip32_irq1function ip32_irq2function ip32_irq3function ip32_irq4function ip32_irq5function plat_irq_dispatchfunction arch_init_irq
Annotated Snippet
switch (irq) {
case MACE_VID_IN1_IRQ ... MACE_PCI_BRIDGE_IRQ:
irq_set_chip_and_handler_name(irq,
&ip32_mace_interrupt,
handle_level_irq,
"level");
break;
case MACEPCI_SCSI0_IRQ ... MACEPCI_SHARED2_IRQ:
irq_set_chip_and_handler_name(irq,
&ip32_macepci_interrupt,
handle_level_irq,
"level");
break;
case CRIME_CPUERR_IRQ:
case CRIME_MEMERR_IRQ:
irq_set_chip_and_handler_name(irq,
&crime_level_interrupt,
handle_level_irq,
"level");
break;
case CRIME_GBE0_IRQ ... CRIME_GBE3_IRQ:
case CRIME_RE_EMPTY_E_IRQ ... CRIME_RE_IDLE_E_IRQ:
case CRIME_SOFT0_IRQ ... CRIME_SOFT2_IRQ:
case CRIME_VICE_IRQ:
irq_set_chip_and_handler_name(irq,
&crime_edge_interrupt,
handle_edge_irq,
"edge");
break;
case MACEISA_PARALLEL_IRQ:
case MACEISA_SERIAL1_TDMAPR_IRQ:
case MACEISA_SERIAL2_TDMAPR_IRQ:
irq_set_chip_and_handler_name(irq,
&ip32_maceisa_edge_interrupt,
handle_edge_irq,
"edge");
break;
default:
irq_set_chip_and_handler_name(irq,
&ip32_maceisa_level_interrupt,
handle_level_irq,
"level");
break;
}
}
if (request_irq(CRIME_MEMERR_IRQ, crime_memerr_intr, 0,
"CRIME memory error", NULL))
pr_err("Failed to register CRIME memory error interrupt\n");
if (request_irq(CRIME_CPUERR_IRQ, crime_cpuerr_intr, 0,
"CRIME CPU error", NULL))
pr_err("Failed to register CRIME CPU error interrupt\n");
#define ALLINTS (IE_IRQ0 | IE_IRQ1 | IE_IRQ2 | IE_IRQ3 | IE_IRQ4 | IE_IRQ5)
change_c0_status(ST0_IM, ALLINTS);
}
Annotation
- Immediate include surface: `linux/init.h`, `linux/kernel_stat.h`, `linux/types.h`, `linux/interrupt.h`, `linux/irq.h`, `linux/bitops.h`, `linux/kernel.h`, `linux/mm.h`.
- Detected declarations: `function Copyright`, `function flush_mace_bus`, `function crime_enable_irq`, `function crime_disable_irq`, `function crime_edge_mask_and_ack_irq`, `function enable_macepci_irq`, `function disable_macepci_irq`, `function enable_maceisa_irq`, `function disable_maceisa_irq`, `function mask_and_ack_maceisa_irq`.
- Atlas domain: Architecture Layer / arch/mips.
- Implementation status: source implementation candidate.
- IRQ or DMA behavior appears here, which is relevant to the selected PCIe/NVMe device path.
Implementation Notes
- This generated page is the file-by-file coverage layer; curated subsystem chapters should link here when they synthesize a multi-file control flow.
- Core OS pages should be promoted from atlas-only to deep-reviewed when they explain data structures, invariants, locking, lifecycle, and C implementation snippets.
- Driver-family pages are intentionally pattern-oriented unless they are part of the selected PCIe/NVMe representative device path.