arch/x86/include/asm/mach-default/mach_traps.h
changeset 0 aa628870c1d3
equal deleted inserted replaced
-1:000000000000 0:aa628870c1d3
       
     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 */