2008-10-23 05:26:29 +00:00
|
|
|
#ifndef _ASM_X86_E820_H
|
|
|
|
#define _ASM_X86_E820_H
|
2008-05-14 15:15:40 +00:00
|
|
|
|
|
|
|
#ifdef CONFIG_EFI
|
|
|
|
#include <linux/numa.h>
|
|
|
|
#define E820_X_MAX (E820MAX + 3 * MAX_NUMNODES)
|
|
|
|
#else /* ! CONFIG_EFI */
|
|
|
|
#define E820_X_MAX E820MAX
|
|
|
|
#endif
|
2012-12-14 22:37:13 +00:00
|
|
|
#include <uapi/asm/e820.h>
|
2007-10-22 00:56:19 +00:00
|
|
|
#ifndef __ASSEMBLY__
|
2008-06-27 11:12:55 +00:00
|
|
|
/* see comment in arch/x86/kernel/e820.c */
|
2016-09-17 21:39:26 +00:00
|
|
|
extern struct e820map *e820;
|
|
|
|
extern struct e820map *e820_saved;
|
2008-05-11 07:30:15 +00:00
|
|
|
|
2008-07-21 16:49:29 +00:00
|
|
|
extern unsigned long pci_mem_start;
|
2008-05-11 07:30:15 +00:00
|
|
|
extern int e820_any_mapped(u64 start, u64 end, unsigned type);
|
|
|
|
extern int e820_all_mapped(u64 start, u64 end, unsigned type);
|
2008-06-16 01:58:51 +00:00
|
|
|
extern void e820_add_region(u64 start, u64 size, int type);
|
2008-05-11 07:30:15 +00:00
|
|
|
extern void e820_print_map(char *who);
|
2008-05-14 15:15:34 +00:00
|
|
|
extern int
|
2009-03-22 20:43:01 +00:00
|
|
|
sanitize_e820_map(struct e820entry *biosmap, int max_nr_map, u32 *pnr_map);
|
2008-06-16 01:58:51 +00:00
|
|
|
extern u64 e820_update_range(u64 start, u64 size, unsigned old_type,
|
2008-05-11 07:30:15 +00:00
|
|
|
unsigned new_type);
|
2008-06-21 21:48:05 +00:00
|
|
|
extern u64 e820_remove_range(u64 start, u64 size, unsigned old_type,
|
|
|
|
int checktype);
|
2008-05-11 07:30:15 +00:00
|
|
|
extern void update_e820(void);
|
|
|
|
extern void e820_setup_gap(void);
|
2008-06-24 18:48:30 +00:00
|
|
|
extern int e820_search_gap(unsigned long *gapstart, unsigned long *gapsize,
|
2008-06-25 18:02:42 +00:00
|
|
|
unsigned long start_addr, unsigned long long end_addr);
|
2008-06-11 03:33:39 +00:00
|
|
|
struct setup_data;
|
2013-08-13 21:46:41 +00:00
|
|
|
extern void parse_e820_ext(u64 phys_addr, u32 data_len);
|
2008-05-11 07:30:15 +00:00
|
|
|
|
2008-05-21 03:10:58 +00:00
|
|
|
#if defined(CONFIG_X86_64) || \
|
|
|
|
(defined(CONFIG_X86_32) && defined(CONFIG_HIBERNATION))
|
|
|
|
extern void e820_mark_nosave_regions(unsigned long limit_pfn);
|
|
|
|
#else
|
|
|
|
static inline void e820_mark_nosave_regions(unsigned long limit_pfn)
|
|
|
|
{
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
|
2008-07-11 03:38:26 +00:00
|
|
|
extern unsigned long e820_end_of_ram_pfn(void);
|
|
|
|
extern unsigned long e820_end_of_low_ram_pfn(void);
|
2011-07-12 09:15:58 +00:00
|
|
|
extern u64 early_reserve_e820(u64 sizet, u64 align);
|
2010-08-25 20:39:17 +00:00
|
|
|
|
|
|
|
void memblock_x86_fill(void);
|
2010-08-25 20:39:18 +00:00
|
|
|
void memblock_find_dma_reserve(void);
|
|
|
|
|
2008-06-10 19:55:54 +00:00
|
|
|
extern void finish_e820_parsing(void);
|
2008-06-16 20:03:31 +00:00
|
|
|
extern void e820_reserve_resources(void);
|
2008-08-28 20:52:25 +00:00
|
|
|
extern void e820_reserve_resources_late(void);
|
2008-06-17 02:58:28 +00:00
|
|
|
extern void setup_memory_map(void);
|
2008-06-19 00:27:08 +00:00
|
|
|
extern char *default_machine_specific_memory_setup(void);
|
2007-10-22 00:56:19 +00:00
|
|
|
|
2016-09-17 21:39:26 +00:00
|
|
|
extern void e820_reallocate_tables(void);
|
|
|
|
|
2009-12-01 05:33:51 +00:00
|
|
|
/*
|
|
|
|
* Returns true iff the specified range [s,e) is completely contained inside
|
|
|
|
* the ISA region.
|
|
|
|
*/
|
2009-11-23 22:44:39 +00:00
|
|
|
static inline bool is_ISA_range(u64 s, u64 e)
|
|
|
|
{
|
2009-12-01 05:33:51 +00:00
|
|
|
return s >= ISA_START_ADDRESS && e <= ISA_END_ADDRESS;
|
2009-11-23 22:44:39 +00:00
|
|
|
}
|
2008-01-30 12:33:08 +00:00
|
|
|
|
2009-11-23 22:44:39 +00:00
|
|
|
#endif /* __ASSEMBLY__ */
|
2008-06-17 02:58:28 +00:00
|
|
|
#include <linux/ioport.h>
|
|
|
|
|
|
|
|
#define HIGH_MEMORY (1024*1024)
|
2008-10-23 05:26:29 +00:00
|
|
|
#endif /* _ASM_X86_E820_H */
|