patch-2.4.20 linux-2.4.20/include/asm-ppc64/dump.h
Next file: linux-2.4.20/include/asm-ppc64/eeh.h
Previous file: linux-2.4.20/include/asm-ppc64/delay.h
Back to the patch index
Back to the overall index
- Lines: 113
- Date:
Thu Nov 28 15:53:15 2002
- Orig file:
linux-2.4.19/include/asm-ppc64/dump.h
- Orig date:
Wed Dec 31 16:00:00 1969
diff -urN linux-2.4.19/include/asm-ppc64/dump.h linux-2.4.20/include/asm-ppc64/dump.h
@@ -0,0 +1,112 @@
+/*
+ * Kernel header file for Linux crash dumps.
+ *
+ * Created by: Todd Inglett <tinglett@vnet.ibm.com>
+ *
+ * Copyright 2002 International Business Machines
+ *
+ * This code is released under version 2 of the GNU GPL.
+ */
+
+/* This header file holds the architecture specific crash dump header */
+#ifndef _ASM_DUMP_H
+#define _ASM_DUMP_H
+
+/* necessary header files */
+#include <asm/ptrace.h> /* for pt_regs */
+#include <linux/threads.h>
+
+/* definitions */
+#define DUMP_ASM_MAGIC_NUMBER 0xdeaddeadULL /* magic number */
+#define DUMP_ASM_VERSION_NUMBER 0x1 /* version number */
+
+
+/*
+ * Structure: dump_header_asm_t
+ * Function: This is the header for architecture-specific stuff. It
+ * follows right after the dump header.
+ */
+typedef struct _dump_header_asm_s {
+
+ /* the dump magic number -- unique to verify dump is valid */
+ uint64_t dha_magic_number;
+
+ /* the version number of this dump */
+ uint32_t dha_version;
+
+ /* the size of this header (in case we can't read it) */
+ uint32_t dha_header_size;
+
+ /* the dump registers */
+ struct pt_regs dha_regs;
+
+ /* smp specific */
+ uint32_t dha_smp_num_cpus;
+ int dha_dumping_cpu;
+ struct pt_regs dha_smp_regs[NR_CPUS];
+ void * dha_smp_current_task[NR_CPUS];
+ void * dha_stack[NR_CPUS];
+} dump_header_asm_t;
+
+#ifdef __KERNEL__
+static inline void get_current_regs(struct pt_regs *regs)
+{
+ __asm__ __volatile__ (
+ "std 0,0(%0)\n"
+ "std 1,8(%0)\n"
+ "std 2,16(%0)\n"
+ "std 3,24(%0)\n"
+ "std 4,32(%0)\n"
+ "std 5,40(%0)\n"
+ "std 6,48(%0)\n"
+ "std 7,56(%0)\n"
+ "std 8,64(%0)\n"
+ "std 9,72(%0)\n"
+ "std 10,80(%0)\n"
+ "std 11,88(%0)\n"
+ "std 12,96(%0)\n"
+ "std 13,104(%0)\n"
+ "std 14,112(%0)\n"
+ "std 15,120(%0)\n"
+ "std 16,128(%0)\n"
+ "std 17,136(%0)\n"
+ "std 18,144(%0)\n"
+ "std 19,152(%0)\n"
+ "std 20,160(%0)\n"
+ "std 21,168(%0)\n"
+ "std 22,176(%0)\n"
+ "std 23,184(%0)\n"
+ "std 24,192(%0)\n"
+ "std 25,200(%0)\n"
+ "std 26,208(%0)\n"
+ "std 27,216(%0)\n"
+ "std 28,224(%0)\n"
+ "std 29,232(%0)\n"
+ "std 30,240(%0)\n"
+ "std 31,248(%0)\n"
+ "mfmsr 0\n"
+ "std 0, 264(%0)\n"
+ "mfctr 0\n"
+ "std 0, 280(%0)\n"
+ "mflr 0\n"
+ "std 0, 288(%0)\n"
+ "bl 1f\n"
+ "1: mflr 5\n"
+ "std 5, 256(%0)\n"
+ "mtlr 0\n"
+ "mfxer 0\n"
+ "std 0, 296(%0)\n"
+ : : "b" (®s));
+}
+
+extern volatile int dump_in_progress;
+extern dump_header_asm_t dump_header_asm;
+
+#ifdef CONFIG_SMP
+extern void dump_send_ipi(int (*dump_ipi_callback)(struct pt_regs *));
+#else
+#define dump_send_ipi()
+#endif
+#endif /* __KERNEL__ */
+
+#endif /* _ASM_DUMP_H */
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)