#include <linux/jiffies.h>
#include <linux/types.h>
#include <linux/init.h>
#include <linux/sched.h>
#include <linux/interrupt.h>
#include <linux/irq.h>
#include <linux/bootmem.h>
#include <linux/acpi.h>
#include <linux/timer.h>
#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/smp.h>
#include <linux/workqueue.h>
#include <linux/cpumask.h>
#include <linux/kdebug.h>
#include <linux/cpu.h>
#include <linux/gfp.h>
#include <asm/delay.h>
#include <asm/machvec.h>
#include <asm/meminit.h>
#include <asm/page.h>
#include <asm/ptrace.h>
#include <asm/sal.h>
#include <asm/mca.h>
#include <asm/kexec.h>
#include <asm/irq.h>
#include <asm/hw_irq.h>
#include <asm/tlb.h>
#include "mca_drv.h"
#include "entry.h"
Go to the source code of this file.
|
#define | IA64_MCA_DEBUG(fmt...) |
|
#define | NOTIFY_INIT(event, regs, arg, spin) |
|
#define | NOTIFY_MCA(event, regs, arg, spin) |
|
#define | MAX_CPE_POLL_INTERVAL (15*60*HZ) /* 15 minutes */ |
|
#define | MIN_CPE_POLL_INTERVAL (2*60*HZ) /* 2 minutes */ |
|
#define | CMC_POLL_INTERVAL (1*60*HZ) /* 1 minute */ |
|
#define | CPE_HISTORY_LENGTH 5 |
|
#define | CMC_HISTORY_LENGTH 5 |
|
#define | mprintk(fmt...) ia64_mca_printk(fmt) |
|
#define | MLOGBUF_SIZE (512+256*NR_CPUS) |
|
#define | MLOGBUF_MSGMAX 256 |
|
#define | BREAK_LOGLEVEL(__console_loglevel) |
|
#define | RESTORE_LOGLEVEL(__console_loglevel) |
|
#define | IA64_MAX_LOGS 2 /* Double-buffering for nested MCAs */ |
|
#define | IA64_MAX_LOG_TYPES 4 /* MCA, INIT, CMC, CPE */ |
|
#define | IA64_LOG_ALLOCATE(it, size) |
|
#define | IA64_LOG_LOCK_INIT(it) spin_lock_init(&ia64_state_log[it].isl_lock) |
|
#define | IA64_LOG_LOCK(it) spin_lock_irqsave(&ia64_state_log[it].isl_lock, s) |
|
#define | IA64_LOG_UNLOCK(it) spin_unlock_irqrestore(&ia64_state_log[it].isl_lock,s) |
|
#define | IA64_LOG_NEXT_INDEX(it) ia64_state_log[it].isl_index |
|
#define | IA64_LOG_CURR_INDEX(it) 1 - ia64_state_log[it].isl_index |
|
#define | IA64_LOG_INDEX_INC(it) |
|
#define | IA64_LOG_INDEX_DEC(it) ia64_state_log[it].isl_index = 1 - ia64_state_log[it].isl_index |
|
#define | IA64_LOG_NEXT_BUFFER(it) (void *)((ia64_state_log[it].isl_log[IA64_LOG_NEXT_INDEX(it)])) |
|
#define | IA64_LOG_CURR_BUFFER(it) (void *)((ia64_state_log[it].isl_log[IA64_LOG_CURR_INDEX(it)])) |
|
#define | IA64_LOG_COUNT(it) ia64_state_log[it].isl_count |
|
|
| DEFINE_PER_CPU (u64, ia64_mca_data) |
|
| DEFINE_PER_CPU (u64, ia64_mca_per_cpu_pte) |
|
| DEFINE_PER_CPU (u64, ia64_mca_pal_pte) |
|
| DEFINE_PER_CPU (u64, ia64_mca_pal_base) |
|
| DEFINE_PER_CPU (u64, ia64_mca_tr_reload) |
|
void | ia64_os_init_dispatch_monarch (void) |
|
void | ia64_os_init_dispatch_slave (void) |
|
void | salinfo_log_wakeup (int type, u8 *buffer, u64 size, int irqsafe) |
|
void | ia64_mca_printk (const char *fmt,...) |
|
| EXPORT_SYMBOL (ia64_mca_printk) |
|
void | ia64_mlogbuf_dump (void) |
|
| EXPORT_SYMBOL (ia64_mlogbuf_dump) |
|
int | search_mca_table (const struct mca_table_entry *first, const struct mca_table_entry *last, unsigned long ip) |
|
int | mca_recover_range (unsigned long addr) |
|
| EXPORT_SYMBOL_GPL (mca_recover_range) |
|
void __cpuinit | ia64_mca_cmc_vector_setup (void) |
|
int | ia64_reg_MCA_extension (int(*fn)(void *, struct ia64_sal_os_state *)) |
|
void | ia64_unreg_MCA_extension (void) |
|
| EXPORT_SYMBOL (ia64_reg_MCA_extension) |
|
| EXPORT_SYMBOL (ia64_unreg_MCA_extension) |
|
void | ia64_mca_handler (struct pt_regs *regs, struct switch_stack *sw, struct ia64_sal_os_state *sos) |
|
void | ia64_init_handler (struct pt_regs *regs, struct switch_stack *sw, struct ia64_sal_os_state *sos) |
|
| __setup ("disable_cpe_poll", ia64_mca_disable_cpe_polling) |
|
void __cpuinit | ia64_mca_cpu_init (void *cpu_data) |
|
void __init | ia64_mca_init (void) |
|
| device_initcall (ia64_mca_late_init) |
|
#define BREAK_LOGLEVEL |
( |
|
__console_loglevel | ) |
|
Value:
if (loglevel_save < 0) \
loglevel_save = __console_loglevel; \
__console_loglevel = 15;
Definition at line 189 of file mca.c.
#define CMC_HISTORY_LENGTH 5 |
#define CMC_POLL_INTERVAL (1*60*HZ) /* 1 minute */ |
#define CPE_HISTORY_LENGTH 5 |
#define IA64_LOG_ALLOCATE |
( |
|
it, |
|
|
|
size |
|
) |
| |
Value:
Definition at line 360 of file mca.c.
#define IA64_LOG_COUNT |
( |
|
it | ) |
ia64_state_log[it].isl_count |
#define IA64_LOG_CURR_INDEX |
( |
|
it | ) |
1 - ia64_state_log[it].isl_index |
#define IA64_LOG_INDEX_DEC |
( |
|
it | ) |
ia64_state_log[it].isl_index = 1 - ia64_state_log[it].isl_index |
#define IA64_LOG_INDEX_INC |
( |
|
it | ) |
|
Value:
ia64_state_log[it].isl_count++;}
Definition at line 370 of file mca.c.
#define IA64_LOG_LOCK_INIT |
( |
|
it | ) |
spin_lock_init(&ia64_state_log[it].isl_lock) |
#define IA64_LOG_NEXT_INDEX |
( |
|
it | ) |
ia64_state_log[it].isl_index |
#define IA64_LOG_UNLOCK |
( |
|
it | ) |
spin_unlock_irqrestore(&ia64_state_log[it].isl_lock,s) |
#define IA64_MAX_LOG_TYPES 4 /* MCA, INIT, CMC, CPE */ |
#define IA64_MAX_LOGS 2 /* Double-buffering for nested MCAs */ |
#define IA64_MCA_DEBUG |
( |
|
fmt... | ) |
|
#define MAX_CPE_POLL_INTERVAL (15*60*HZ) /* 15 minutes */ |
#define MIN_CPE_POLL_INTERVAL (2*60*HZ) /* 2 minutes */ |
#define MLOGBUF_MSGMAX 256 |
#define MLOGBUF_SIZE (512+256*NR_CPUS) |
Value:do { \
== NOTIFY_STOP) && ((spin) == 1)) \
ia64_mca_spin(__func__); \
} while (0)
Definition at line 112 of file mca.c.
Value:do { \
== NOTIFY_STOP) && ((spin) == 1)) \
ia64_mca_spin(__func__); \
} while (0)
Definition at line 119 of file mca.c.
#define RESTORE_LOGLEVEL |
( |
|
__console_loglevel | ) |
|
Value:if (loglevel_save >= 0) { \
__console_loglevel = loglevel_save; \
loglevel_save = -1; \
} \
mlogbuf_finished = 0; \
oops_in_progress = 0;
Definition at line 195 of file mca.c.
__setup |
( |
"disable_cpe_poll" |
, |
|
|
ia64_mca_disable_cpe_polling |
|
|
) |
| |
DEFINE_PER_CPU |
( |
u64 |
, |
|
|
ia64_mca_data |
|
|
) |
| |
DEFINE_PER_CPU |
( |
u64 |
, |
|
|
ia64_mca_per_cpu_pte |
|
|
) |
| |
DEFINE_PER_CPU |
( |
u64 |
, |
|
|
ia64_mca_pal_pte |
|
|
) |
| |
DEFINE_PER_CPU |
( |
u64 |
, |
|
|
ia64_mca_pal_base |
|
|
) |
| |
DEFINE_PER_CPU |
( |
u64 |
, |
|
|
ia64_mca_tr_reload |
|
|
) |
| |
device_initcall |
( |
ia64_mca_late_init |
| ) |
|
void ia64_os_init_dispatch_monarch |
( |
void |
| ) |
|
void ia64_os_init_dispatch_slave |
( |
void |
| ) |
|
int mca_recover_range |
( |
unsigned long |
addr | ) |
|