LCOV - code coverage report
Current view: top level - arch/x86/include/asm - mach_traps.h (source / functions) Hit Total Coverage
Test: landlock.info Lines: 0 2 0.0 %
Date: 2021-04-22 12:43:58 Functions: 0 1 0.0 %

          Line data    Source code
       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           0 : static inline unsigned char default_get_nmi_reason(void)
      22             : {
      23           0 :         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 */

Generated by: LCOV version 1.14