Ingo Molnar | 66441bd | 2017-01-27 10:27:10 +0100 | [diff] [blame] | 1 | #ifndef _ASM_E820_API_H |
| 2 | #define _ASM_E820_API_H |
Paul Jackson | 028b785 | 2008-05-14 08:15:40 -0700 | [diff] [blame] | 3 | |
Ingo Molnar | 70a9d81 | 2017-01-27 09:58:02 +0100 | [diff] [blame] | 4 | #include <asm/e820/types.h> |
Alex Thorlton | 9d2f86c | 2016-12-05 11:49:13 -0600 | [diff] [blame] | 5 | |
Ingo Molnar | 61a5010 | 2017-01-27 13:54:38 +0100 | [diff] [blame] | 6 | extern struct e820_table *e820_table; |
Ingo Molnar | 544a0f4 | 2017-01-28 10:07:49 +0100 | [diff] [blame] | 7 | extern struct e820_table *e820_table_firmware; |
Yinghai Lu | b79cd8f | 2008-05-11 00:30:15 -0700 | [diff] [blame] | 8 | |
Jaswinder Singh | a7b7511 | 2008-07-21 22:19:29 +0530 | [diff] [blame] | 9 | extern unsigned long pci_mem_start; |
Ingo Molnar | 0f85650 | 2017-01-27 12:43:49 +0100 | [diff] [blame] | 10 | |
Ingo Molnar | 81b3e09 | 2017-01-28 22:34:55 +0100 | [diff] [blame] | 11 | extern bool e820__mapped_any(u64 start, u64 end, enum e820_type type); |
| 12 | extern bool e820__mapped_all(u64 start, u64 end, enum e820_type type); |
Ingo Molnar | ab6bc04 | 2017-01-28 14:19:36 +0100 | [diff] [blame] | 13 | |
Ingo Molnar | 6afc03b | 2017-01-28 16:52:34 +0100 | [diff] [blame] | 14 | extern void e820__range_add (u64 start, u64 size, enum e820_type type); |
| 15 | extern u64 e820__range_update(u64 start, u64 size, enum e820_type old_type, enum e820_type new_type); |
Ingo Molnar | 81b3e09 | 2017-01-28 22:34:55 +0100 | [diff] [blame] | 16 | extern u64 e820__range_remove(u64 start, u64 size, enum e820_type old_type, bool check_type); |
Ingo Molnar | ab6bc04 | 2017-01-28 14:19:36 +0100 | [diff] [blame] | 17 | |
Ingo Molnar | be0c3f0 | 2017-01-28 14:24:02 +0100 | [diff] [blame] | 18 | extern void e820__print_table(char *who); |
Ingo Molnar | f9748fa | 2017-01-28 18:00:35 +0100 | [diff] [blame] | 19 | extern int e820__update_table(struct e820_table *table); |
Ingo Molnar | 6464d29 | 2017-01-28 14:03:04 +0100 | [diff] [blame] | 20 | extern void e820__update_table_print(void); |
Ingo Molnar | 2504be7 | 2017-01-28 14:28:09 +0100 | [diff] [blame] | 21 | |
Ingo Molnar | 0c6fc11 | 2017-01-28 22:52:16 +0100 | [diff] [blame] | 22 | extern unsigned long e820__end_of_ram_pfn(void); |
| 23 | extern unsigned long e820__end_of_low_ram_pfn(void); |
Ingo Molnar | 2504be7 | 2017-01-28 14:28:09 +0100 | [diff] [blame] | 24 | |
Ingo Molnar | 1a12703 | 2017-01-28 22:27:28 +0100 | [diff] [blame] | 25 | extern u64 e820__memblock_alloc_reserved(u64 size, u64 align); |
Ingo Molnar | 4918e22 | 2017-01-28 11:37:42 +0100 | [diff] [blame] | 26 | extern void e820__memblock_setup(void); |
Ingo Molnar | 2504be7 | 2017-01-28 14:28:09 +0100 | [diff] [blame] | 27 | |
Ingo Molnar | 1a12703 | 2017-01-28 22:27:28 +0100 | [diff] [blame] | 28 | extern void e820__reserve_setup_data(void); |
Ingo Molnar | 9641bda | 2017-01-28 13:37:17 +0100 | [diff] [blame] | 29 | extern void e820__finish_early_params(void); |
Ingo Molnar | 1506c8d | 2017-01-28 22:41:14 +0100 | [diff] [blame] | 30 | extern void e820__reserve_resources(void); |
| 31 | extern void e820__reserve_resources_late(void); |
Ingo Molnar | 2504be7 | 2017-01-28 14:28:09 +0100 | [diff] [blame] | 32 | |
Ingo Molnar | 103e206 | 2017-01-28 09:58:49 +0100 | [diff] [blame] | 33 | extern void e820__memory_setup(void); |
Ingo Molnar | 2504be7 | 2017-01-28 14:28:09 +0100 | [diff] [blame] | 34 | extern void e820__memory_setup_extended(u64 phys_addr, u32 data_len); |
Ingo Molnar | 103e206 | 2017-01-28 09:58:49 +0100 | [diff] [blame] | 35 | extern char *e820__memory_setup_default(void); |
Ingo Molnar | 2504be7 | 2017-01-28 14:28:09 +0100 | [diff] [blame] | 36 | extern void e820__setup_pci_gap(void); |
| 37 | |
Ingo Molnar | 0c6fc11 | 2017-01-28 22:52:16 +0100 | [diff] [blame] | 38 | extern void e820__reallocate_tables(void); |
Ingo Molnar | 090d717 | 2017-01-28 22:44:12 +0100 | [diff] [blame] | 39 | extern void e820__register_nosave_regions(unsigned long limit_pfn); |
Ingo Molnar | 0f85650 | 2017-01-27 12:43:49 +0100 | [diff] [blame] | 40 | |
H. Peter Anvin | ccef086 | 2009-11-30 21:33:51 -0800 | [diff] [blame] | 41 | /* |
Ingo Molnar | 0f85650 | 2017-01-27 12:43:49 +0100 | [diff] [blame] | 42 | * Returns true iff the specified range [start,end) is completely contained inside |
H. Peter Anvin | ccef086 | 2009-11-30 21:33:51 -0800 | [diff] [blame] | 43 | * the ISA region. |
| 44 | */ |
Ingo Molnar | 0f85650 | 2017-01-27 12:43:49 +0100 | [diff] [blame] | 45 | static inline bool is_ISA_range(u64 start, u64 end) |
H. Peter Anvin | 65f116f | 2009-11-23 14:44:39 -0800 | [diff] [blame] | 46 | { |
Ingo Molnar | 0f85650 | 2017-01-27 12:43:49 +0100 | [diff] [blame] | 47 | return start >= ISA_START_ADDRESS && end <= ISA_END_ADDRESS; |
H. Peter Anvin | 65f116f | 2009-11-23 14:44:39 -0800 | [diff] [blame] | 48 | } |
| 49 | |
Ingo Molnar | 66441bd | 2017-01-27 10:27:10 +0100 | [diff] [blame] | 50 | #endif /* _ASM_E820_API_H */ |