From: "Steven J. Hill" <sjhill@realitydiluted.com>
To: linux-mips@linux-mips.org
Subject: [PATCH] Proposed NMI handling interface...
Date: Tue, 07 Oct 2003 16:21:20 -0400 [thread overview]
Message-ID: <3F832040.7070606@realitydiluted.com> (raw)
[-- Attachment #1: Type: text/plain, Size: 285 bytes --]
Greetings.
I wanted to propose an NMI handling interface. I have attached
the header file and patches to 'arch/mips/kernel/traps.c'. The
user need only specify the offset address for the NMI vector
code and then they can also specify their own desired NMI
function. Comments?
-Steve
[-- Attachment #2: nmi.h --]
[-- Type: text/x-chdr, Size: 1672 bytes --]
/*
* linux/include/asm-mips/nmi.h
*
* NMI interface definitions
*
* Copyright (C) 2003 TimeSys Corp.
* S. James Hill (James.Hill@timesys.com)
* (sjhill@realitydiluted.com)
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
* Free Software Foundation; either version 2 of the License, or (at your
* option) any later version.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
* NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#ifndef _ASM_NMI_H
#define _ASM_NMI_H
/*
* NMI vector address offset.
*/
extern unsigned long nmi_addr;
/*
* User-defined NMI function.
*/
extern void (*nmi_user_handler)(struct pt_regs *regs);
#endif
[-- Attachment #3: traps.c.diff --]
[-- Type: text/plain, Size: 838 bytes --]
--- traps.c.orig Tue Oct 7 15:08:43 2003
+++ traps.c Tue Oct 7 15:10:28 2003
@@ -64,6 +66,11 @@
void (*board_be_init)(void);
int (*board_be_handler)(struct pt_regs *regs, int is_fixup);
+#ifdef CONFIG_NMI
+unsigned long nmi_addr = 0;
+void (*nmi_user_handler)(struct pt_regs *regs);
+#endif
+
int kstack_depth_to_print = 24;
/*
@@ -841,6 +1095,8 @@
*/
void nmi_exception_handler(struct pt_regs *regs)
{
+ if (nmi_user_handler)
+ nmi_user_handler(regs);
printk("NMI taken!!!!\n");
die("NMI", regs);
while(1) ;
@@ -1009,6 +1265,14 @@
restore_fp_context = fpu_emulator_restore_context;
}
+#ifdef CONFIG_NMI
+ {
+ extern char except_vec_nmi;
+
+ memcpy((void *)(KSEG0 + nmi_addr), &except_vec_nmi, 0x8);
+ }
+#endif
+
flush_icache_range(KSEG0, KSEG0 + 0x400);
atomic_inc(&init_mm.mm_count); /* XXX UP? */
next reply other threads:[~2003-10-07 20:21 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-10-07 20:21 Steven J. Hill [this message]
2003-10-08 9:05 ` [PATCH] Proposed NMI handling interface Maciej W. Rozycki
2003-10-08 16:06 ` Ralf Baechle
2003-10-09 12:55 ` Thomas Horsten
2003-10-09 12:55 ` Thomas Horsten
2003-10-09 16:03 ` Brian Murphy
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=3F832040.7070606@realitydiluted.com \
--to=sjhill@realitydiluted.com \
--cc=linux-mips@linux-mips.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.