Linux 2.6.21.1
[linux/fpc-iii.git] / include / asm-ia64 / kdebug.h
blobaed7142f9e4a520b9df81fe8b906e656a787f96f
1 #ifndef _IA64_KDEBUG_H
2 #define _IA64_KDEBUG_H 1
3 /*
4 * include/asm-ia64/kdebug.h
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, write to the Free Software
18 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
20 * Copyright (C) Intel Corporation, 2005
22 * 2005-Apr Rusty Lynch <rusty.lynch@intel.com> and Anil S Keshavamurthy
23 * <anil.s.keshavamurthy@intel.com> adopted from
24 * include/asm-x86_64/kdebug.h
26 * 2005-Oct Keith Owens <kaos@sgi.com>. Expand notify_die to cover more
27 * events.
29 #include <linux/notifier.h>
31 struct pt_regs;
33 struct die_args {
34 struct pt_regs *regs;
35 const char *str;
36 long err;
37 int trapnr;
38 int signr;
41 extern int register_die_notifier(struct notifier_block *);
42 extern int unregister_die_notifier(struct notifier_block *);
43 extern int register_page_fault_notifier(struct notifier_block *);
44 extern int unregister_page_fault_notifier(struct notifier_block *);
45 extern struct atomic_notifier_head ia64die_chain;
47 enum die_val {
48 DIE_BREAK = 1,
49 DIE_FAULT,
50 DIE_OOPS,
51 DIE_PAGE_FAULT,
52 DIE_MACHINE_HALT,
53 DIE_MACHINE_RESTART,
54 DIE_MCA_MONARCH_ENTER,
55 DIE_MCA_MONARCH_PROCESS,
56 DIE_MCA_MONARCH_LEAVE,
57 DIE_MCA_SLAVE_ENTER,
58 DIE_MCA_SLAVE_PROCESS,
59 DIE_MCA_SLAVE_LEAVE,
60 DIE_MCA_RENDZVOUS_ENTER,
61 DIE_MCA_RENDZVOUS_PROCESS,
62 DIE_MCA_RENDZVOUS_LEAVE,
63 DIE_MCA_NEW_TIMEOUT,
64 DIE_INIT_ENTER,
65 DIE_INIT_MONARCH_ENTER,
66 DIE_INIT_MONARCH_PROCESS,
67 DIE_INIT_MONARCH_LEAVE,
68 DIE_INIT_SLAVE_ENTER,
69 DIE_INIT_SLAVE_PROCESS,
70 DIE_INIT_SLAVE_LEAVE,
71 DIE_KDEBUG_ENTER,
72 DIE_KDEBUG_LEAVE,
73 DIE_KDUMP_ENTER,
74 DIE_KDUMP_LEAVE,
77 static inline int notify_die(enum die_val val, char *str, struct pt_regs *regs,
78 long err, int trap, int sig)
80 struct die_args args = {
81 .regs = regs,
82 .str = str,
83 .err = err,
84 .trapnr = trap,
85 .signr = sig
88 return atomic_notifier_call_chain(&ia64die_chain, val, &args);
91 #endif