#include <asm/apic.h>
#include <mach_ipi.h>
-#define MAX_NOTE_BYTES 1024
-typedef u32 note_buf_t[MAX_NOTE_BYTES/4];
note_buf_t crash_notes[NR_CPUS];
#include <asm/nmi.h>
#include <asm/hw_irq.h>
-#define MAX_NOTE_BYTES 1024
-typedef u32 note_buf_t[MAX_NOTE_BYTES/4];
-
note_buf_t crash_notes[NR_CPUS];
void machine_crash_shutdown(void)
/* The native architecture */
#define KEXEC_ARCH KEXEC_ARCH_386
+#define MAX_NOTE_BYTES 1024
+typedef u32 note_buf_t[MAX_NOTE_BYTES/4];
+
+extern note_buf_t crash_notes[];
+
#endif /* _I386_KEXEC_H */
/* The native architecture */
#define KEXEC_ARCH KEXEC_ARCH_X86_64
+#define MAX_NOTE_BYTES 1024
+typedef u32 note_buf_t[MAX_NOTE_BYTES/4];
+
+extern note_buf_t crash_notes[];
+
#endif /* _X86_64_KEXEC_H */
KERNEL_ATTR_RO(hotplug_seqnum);
#endif
+#ifdef CONFIG_KEXEC
+#include <asm/kexec.h>
+
+static ssize_t crash_notes_show(struct subsystem *subsys, char *page)
+{
+ return sprintf(page, "%p\n", (void *)crash_notes);
+}
+KERNEL_ATTR_RO(crash_notes);
+#endif
+
decl_subsys(kernel, NULL, NULL);
EXPORT_SYMBOL_GPL(kernel_subsys);
static struct attribute * kernel_attrs[] = {
#ifdef CONFIG_HOTPLUG
&hotplug_seqnum_attr.attr,
+#endif
+#ifdef CONFIG_KEXEC
+ &crash_notes_attr.attr,
#endif
NULL
};