Branch data Line data Source code
1 : : /* SPDX-License-Identifier: GPL-2.0 */ 2 : : #ifndef _ASM_X86_BIOS_EBDA_H 3 : : #define _ASM_X86_BIOS_EBDA_H 4 : : 5 : : #include <asm/io.h> 6 : : 7 : : /* 8 : : * Returns physical address of EBDA. Returns 0 if there is no EBDA. 9 : : */ 10 : 11 : static inline unsigned int get_bios_ebda(void) 11 : : { 12 : : /* 13 : : * There is a real-mode segmented pointer pointing to the 14 : : * 4K EBDA area at 0x40E. 15 : : */ 16 [ - + ]: 11 : unsigned int address = *(unsigned short *)phys_to_virt(0x40E); 17 : 11 : address <<= 4; 18 [ - + ]: 11 : return address; /* 0 means none */ 19 : : } 20 : : 21 : : void reserve_bios_regions(void); 22 : : 23 : : #ifdef CONFIG_X86_CHECK_BIOS_CORRUPTION 24 : : /* 25 : : * This is obviously not a great place for this, but we want to be 26 : : * able to scatter it around anywhere in the kernel. 27 : : */ 28 : : void check_for_bios_corruption(void); 29 : : void start_periodic_check_for_corruption(void); 30 : : #else 31 : : static inline void check_for_bios_corruption(void) 32 : : { 33 : : } 34 : : 35 : : static inline void start_periodic_check_for_corruption(void) 36 : : { 37 : : } 38 : : #endif 39 : : 40 : : #endif /* _ASM_X86_BIOS_EBDA_H */