OpenCores
URL https://opencores.org/ocsvn/or1k/or1k/trunk

Subversion Repositories or1k

[/] [or1k/] [trunk/] [linux/] [linux-2.4/] [include/] [asm-ppc64/] [dump.h] - Blame information for rev 1275

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 1275 phoenix
/*
2
 * Kernel header file for Linux crash dumps.
3
 *
4
 * Created by: Todd Inglett <tinglett@vnet.ibm.com>
5
 *
6
 * Copyright 2002 International Business Machines
7
 *
8
 * This code is released under version 2 of the GNU GPL.
9
 */
10
 
11
/* This header file holds the architecture specific crash dump header */
12
#ifndef _ASM_DUMP_H
13
#define _ASM_DUMP_H
14
 
15
/* necessary header files */
16
#include <asm/ptrace.h>                          /* for pt_regs             */
17
#include <linux/threads.h>
18
 
19
/* definitions */
20
#define DUMP_ASM_MAGIC_NUMBER     0xdeaddeadULL  /* magic number            */
21
#define DUMP_ASM_VERSION_NUMBER   0x1            /* version number          */
22
 
23
 
24
/*
25
 * Structure: dump_header_asm_t
26
 *  Function: This is the header for architecture-specific stuff.  It
27
 *            follows right after the dump header.
28
 */
29
typedef struct _dump_header_asm_s {
30
 
31
        /* the dump magic number -- unique to verify dump is valid */
32
        uint64_t             dha_magic_number;
33
 
34
        /* the version number of this dump */
35
        uint32_t             dha_version;
36
 
37
        /* the size of this header (in case we can't read it) */
38
        uint32_t             dha_header_size;
39
 
40
        /* the dump registers */
41
        struct pt_regs       dha_regs;
42
 
43
        /* smp specific */
44
        uint32_t             dha_smp_num_cpus;
45
        int                  dha_dumping_cpu;
46
        struct pt_regs       dha_smp_regs[NR_CPUS];
47
        void *               dha_smp_current_task[NR_CPUS];
48
        void *               dha_stack[NR_CPUS];
49
} dump_header_asm_t;
50
 
51
#ifdef __KERNEL__
52
static inline void get_current_regs(struct pt_regs *regs)
53
{
54
        __asm__ __volatile__ (
55
                "std    0,0(%0)\n"
56
                "std    1,8(%0)\n"
57
                "std    2,16(%0)\n"
58
                "std    3,24(%0)\n"
59
                "std    4,32(%0)\n"
60
                "std    5,40(%0)\n"
61
                "std    6,48(%0)\n"
62
                "std    7,56(%0)\n"
63
                "std    8,64(%0)\n"
64
                "std    9,72(%0)\n"
65
                "std    10,80(%0)\n"
66
                "std    11,88(%0)\n"
67
                "std    12,96(%0)\n"
68
                "std    13,104(%0)\n"
69
                "std    14,112(%0)\n"
70
                "std    15,120(%0)\n"
71
                "std    16,128(%0)\n"
72
                "std    17,136(%0)\n"
73
                "std    18,144(%0)\n"
74
                "std    19,152(%0)\n"
75
                "std    20,160(%0)\n"
76
                "std    21,168(%0)\n"
77
                "std    22,176(%0)\n"
78
                "std    23,184(%0)\n"
79
                "std    24,192(%0)\n"
80
                "std    25,200(%0)\n"
81
                "std    26,208(%0)\n"
82
                "std    27,216(%0)\n"
83
                "std    28,224(%0)\n"
84
                "std    29,232(%0)\n"
85
                "std    30,240(%0)\n"
86
                "std    31,248(%0)\n"
87
                "mfmsr  0\n"
88
                "std    0, 264(%0)\n"
89
                "mfctr  0\n"
90
                "std    0, 280(%0)\n"
91
                "mflr   0\n"
92
                "std    0, 288(%0)\n"
93
                "bl     1f\n"
94
        "1:      mflr   5\n"
95
                "std    5, 256(%0)\n"
96
                "mtlr   0\n"
97
                "mfxer  0\n"
98
                "std    0, 296(%0)\n"
99
                              : : "b" (&regs));
100
}
101
 
102
extern volatile int dump_in_progress;
103
extern dump_header_asm_t dump_header_asm;
104
 
105
#ifdef CONFIG_SMP
106
extern void dump_send_ipi(int (*dump_ipi_callback)(struct pt_regs *));
107
#else
108
#define dump_send_ipi()
109
#endif
110
#endif /* __KERNEL__ */
111
 
112
#endif /* _ASM_DUMP_H */

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.