arch/alpha/kernel/err_titan.c
Source file repositories/reference/linux-study-clean/arch/alpha/kernel/err_titan.c
File Facts
- System
- Linux kernel
- Corpus path
arch/alpha/kernel/err_titan.c- Extension
.c- Size
- 23475 bytes
- Lines
- 762
- Domain
- Architecture Layer
- Bucket
- arch/alpha
- 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.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
linux/init.hlinux/pci.hlinux/sched.hasm/io.hasm/core_titan.hasm/hwrpb.hasm/smp.hasm/err_common.hasm/err_ev6.hasm/irq_regs.herr_impl.hproto.h
Detected Declarations
function Copyrightfunction titan_parse_p_serrorfunction titan_parse_p_perrorfunction bridgefunction titan_parse_p_agperrorfunction titan_parse_p_chipfunction titan_process_logout_framefunction titan_machine_checkfunction el_process_regatta_subpacketfunction titan_register_error_handlersfunction privateer_process_680_framefunction privateer_process_logout_framefunction privateer_machine_check
Annotated Snippet
if (print) {
printk("%s** Unknown Error, frame follows\n",
err_print_prefix);
mchk_dump_logout_frame(mchk_header);
}
}
return status;
}
void
privateer_machine_check(unsigned long vector, unsigned long la_ptr)
{
struct el_common *mchk_header = (struct el_common *)la_ptr;
struct el_TITAN_sysdata_mcheck *tmchk =
(struct el_TITAN_sysdata_mcheck *)
(la_ptr + mchk_header->sys_offset);
u64 irqmask;
char *saved_err_prefix = err_print_prefix;
#define PRIVATEER_680_INTERRUPT_MASK (0xE00UL)
#define PRIVATEER_HOTPLUG_INTERRUPT_MASK (0xE00UL)
/*
* Sync the processor.
*/
mb();
draina();
/*
* Only handle system events here.
*/
if (vector != SCB_Q_SYSEVENT)
return titan_machine_check(vector, la_ptr);
/*
* Report the event - System Events should be reported even if no
* error is indicated since the event could indicate the return
* to normal status.
*/
err_print_prefix = KERN_CRIT;
printk("%s*System Event (Vector 0x%x) reported on CPU %d:\n",
err_print_prefix,
(unsigned int)vector, (int)smp_processor_id());
privateer_process_680_frame(mchk_header, 1);
err_print_prefix = saved_err_prefix;
/*
* Convert any pending interrupts which report as 680 machine
* checks to interrupts.
*/
irqmask = tmchk->c_dirx & PRIVATEER_680_INTERRUPT_MASK;
/*
* Dispatch the interrupt(s).
*/
titan_dispatch_irqs(irqmask);
/*
* Release the logout frame.
*/
wrmces(0x7);
mb();
}
Annotation
- Immediate include surface: `linux/init.h`, `linux/pci.h`, `linux/sched.h`, `asm/io.h`, `asm/core_titan.h`, `asm/hwrpb.h`, `asm/smp.h`, `asm/err_common.h`.
- Detected declarations: `function Copyright`, `function titan_parse_p_serror`, `function titan_parse_p_perror`, `function bridge`, `function titan_parse_p_agperror`, `function titan_parse_p_chip`, `function titan_process_logout_frame`, `function titan_machine_check`, `function el_process_regatta_subpacket`, `function titan_register_error_handlers`.
- Atlas domain: Architecture Layer / arch/alpha.
- Implementation status: source implementation candidate.
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.