arch/alpha/kernel/err_marvel.c
Source file repositories/reference/linux-study-clean/arch/alpha/kernel/err_marvel.c
File Facts
- System
- Linux kernel
- Corpus path
arch/alpha/kernel/err_marvel.c- Extension
.c- Size
- 37524 bytes
- Lines
- 1162
- 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.
- 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/pci.hlinux/sched.hasm/io.hasm/console.hasm/core_marvel.hasm/hwrpb.hasm/smp.hasm/err_common.hasm/err_ev7.herr_impl.hproto.h
Detected Declarations
function Copyrightfunction marvel_process_680_framefunction marvel_print_err_cycfunction marvel_print_po7_crrct_symfunction marvel_print_po7_uncrr_symfunction marvel_print_po7_ugbge_symfunction marvel_print_po7_err_sumfunction marvel_print_pox_tlb_errfunction marvel_print_pox_spl_cmpltfunction marvel_print_pox_trans_sumfunction marvel_print_pox_errfunction marvel_find_io7_with_errorfunction marvel_process_io_errorfunction marvel_process_logout_framefunction marvel_machine_checkfunction marvel_register_error_handlers
Annotated Snippet
// SPDX-License-Identifier: GPL-2.0
/*
* linux/arch/alpha/kernel/err_marvel.c
*
* Copyright (C) 2001 Jeff Wiedemeier (Compaq Computer Corporation)
*
*/
#include <linux/init.h>
#include <linux/pci.h>
#include <linux/sched.h>
#include <asm/io.h>
#include <asm/console.h>
#include <asm/core_marvel.h>
#include <asm/hwrpb.h>
#include <asm/smp.h>
#include <asm/err_common.h>
#include <asm/err_ev7.h>
#include "err_impl.h"
#include "proto.h"
static void
marvel_print_680_frame(struct ev7_lf_subpackets *lf_subpackets)
{
#ifdef CONFIG_VERBOSE_MCHECK
struct ev7_pal_environmental_subpacket *env;
struct { int type; char *name; } ev_packets[] = {
{ EL_TYPE__PAL__ENV__AMBIENT_TEMPERATURE,
"Ambient Temperature" },
{ EL_TYPE__PAL__ENV__AIRMOVER_FAN,
"AirMover / Fan" },
{ EL_TYPE__PAL__ENV__VOLTAGE,
"Voltage" },
{ EL_TYPE__PAL__ENV__INTRUSION,
"Intrusion" },
{ EL_TYPE__PAL__ENV__POWER_SUPPLY,
"Power Supply" },
{ EL_TYPE__PAL__ENV__LAN,
"LAN" },
{ EL_TYPE__PAL__ENV__HOT_PLUG,
"Hot Plug" },
{ 0, NULL }
};
int i;
for (i = 0; ev_packets[i].type != 0; i++) {
env = lf_subpackets->env[ev7_lf_env_index(ev_packets[i].type)];
if (!env)
continue;
printk("%s**%s event (cabinet %d, drawer %d)\n",
err_print_prefix,
ev_packets[i].name,
env->cabinet,
env->drawer);
printk("%s Module Type: 0x%x - Unit ID 0x%x - "
"Condition 0x%x\n",
err_print_prefix,
env->module_type,
env->unit_id,
env->condition);
}
#endif /* CONFIG_VERBOSE_MCHECK */
}
static int
marvel_process_680_frame(struct ev7_lf_subpackets *lf_subpackets, int print)
{
int status = MCHK_DISPOSITION_UNKNOWN_ERROR;
int i;
for (i = ev7_lf_env_index(EL_TYPE__PAL__ENV__AMBIENT_TEMPERATURE);
i <= ev7_lf_env_index(EL_TYPE__PAL__ENV__HOT_PLUG);
i++) {
if (lf_subpackets->env[i])
status = MCHK_DISPOSITION_REPORT;
}
if (print)
marvel_print_680_frame(lf_subpackets);
return status;
}
#ifdef CONFIG_VERBOSE_MCHECK
static void
marvel_print_err_cyc(u64 err_cyc)
Annotation
- Immediate include surface: `linux/init.h`, `linux/pci.h`, `linux/sched.h`, `asm/io.h`, `asm/console.h`, `asm/core_marvel.h`, `asm/hwrpb.h`, `asm/smp.h`.
- Detected declarations: `function Copyright`, `function marvel_process_680_frame`, `function marvel_print_err_cyc`, `function marvel_print_po7_crrct_sym`, `function marvel_print_po7_uncrr_sym`, `function marvel_print_po7_ugbge_sym`, `function marvel_print_po7_err_sum`, `function marvel_print_pox_tlb_err`, `function marvel_print_pox_spl_cmplt`, `function marvel_print_pox_trans_sum`.
- Atlas domain: Architecture Layer / arch/alpha.
- 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.