equal
deleted
inserted
replaced
|
1 /* |
|
2 * Machine specific NMI handling for generic. |
|
3 * Split out from traps.c by Osamu Tomita <tomita@cinet.co.jp> |
|
4 */ |
|
5 #ifndef _ASM_X86_MACH_DEFAULT_MACH_TRAPS_H |
|
6 #define _ASM_X86_MACH_DEFAULT_MACH_TRAPS_H |
|
7 |
|
8 #include <asm/mc146818rtc.h> |
|
9 |
|
10 static inline unsigned char get_nmi_reason(void) |
|
11 { |
|
12 return inb(0x61); |
|
13 } |
|
14 |
|
15 static inline void reassert_nmi(void) |
|
16 { |
|
17 int old_reg = -1; |
|
18 |
|
19 if (do_i_have_lock_cmos()) |
|
20 old_reg = current_lock_cmos_reg(); |
|
21 else |
|
22 lock_cmos(0); /* register doesn't matter here */ |
|
23 outb(0x8f, 0x70); |
|
24 inb(0x71); /* dummy */ |
|
25 outb(0x0f, 0x70); |
|
26 inb(0x71); /* dummy */ |
|
27 if (old_reg >= 0) |
|
28 outb(old_reg, 0x70); |
|
29 else |
|
30 unlock_cmos(); |
|
31 } |
|
32 |
|
33 #endif /* _ASM_X86_MACH_DEFAULT_MACH_TRAPS_H */ |