root/arch/x86/include/asm/mach_traps.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


DEFINITIONS

This source file includes following definitions.
  1. default_get_nmi_reason
  2. reassert_nmi

   1 /* SPDX-License-Identifier: GPL-2.0 */
   2 /*
   3  *  Machine specific NMI handling for generic.
   4  *  Split out from traps.c by Osamu Tomita <tomita@cinet.co.jp>
   5  */
   6 #ifndef _ASM_X86_MACH_DEFAULT_MACH_TRAPS_H
   7 #define _ASM_X86_MACH_DEFAULT_MACH_TRAPS_H
   8 
   9 #include <asm/mc146818rtc.h>
  10 
  11 #define NMI_REASON_PORT         0x61
  12 
  13 #define NMI_REASON_SERR         0x80
  14 #define NMI_REASON_IOCHK        0x40
  15 #define NMI_REASON_MASK         (NMI_REASON_SERR | NMI_REASON_IOCHK)
  16 
  17 #define NMI_REASON_CLEAR_SERR   0x04
  18 #define NMI_REASON_CLEAR_IOCHK  0x08
  19 #define NMI_REASON_CLEAR_MASK   0x0f
  20 
  21 static inline unsigned char default_get_nmi_reason(void)
  22 {
  23         return inb(NMI_REASON_PORT);
  24 }
  25 
  26 static inline void reassert_nmi(void)
  27 {
  28         int old_reg = -1;
  29 
  30         if (do_i_have_lock_cmos())
  31                 old_reg = current_lock_cmos_reg();
  32         else
  33                 lock_cmos(0); /* register doesn't matter here */
  34         outb(0x8f, 0x70);
  35         inb(0x71);              /* dummy */
  36         outb(0x0f, 0x70);
  37         inb(0x71);              /* dummy */
  38         if (old_reg >= 0)
  39                 outb(old_reg, 0x70);
  40         else
  41                 unlock_cmos();
  42 }
  43 
  44 #endif /* _ASM_X86_MACH_DEFAULT_MACH_TRAPS_H */

/* [<][>][^][v][top][bottom][index][help] */