
E820_X_MAX is defined in a somewhat messy fashion: - there's a pretty pointless looking #ifndef __KERNEL__ define that makes no sense in the non-UAPI header anymore, - part of it is defined in api.h, which is not for type definitions, - plus it's defined in two headers and the main explanation is in the header where we don't have the real definition. So move it into a single place in e820/types.h and get rid of the !__KERNEL__ case altogether. Drop the smaller comment - the larger one explains it just fine. Note that the zeropage does not use E820_X_MAX, it uses the legacy 128 entries definition. No change in functionality. Cc: Alex Thorlton <athorlton@sgi.com> Cc: Andy Lutomirski <luto@kernel.org> Cc: Borislav Petkov <bp@alien8.de> Cc: Brian Gerst <brgerst@gmail.com> Cc: Dan Williams <dan.j.williams@intel.com> Cc: Denys Vlasenko <dvlasenk@redhat.com> Cc: H. Peter Anvin <hpa@zytor.com> Cc: Huang, Ying <ying.huang@intel.com> Cc: Josh Poimboeuf <jpoimboe@redhat.com> Cc: Juergen Gross <jgross@suse.com> Cc: Linus Torvalds <torvalds@linux-foundation.org> Cc: Paul Jackson <pj@sgi.com> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Rafael J. Wysocki <rjw@sisk.pl> Cc: Tejun Heo <tj@kernel.org> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: Wei Yang <richard.weiyang@gmail.com> Cc: Yinghai Lu <yinghai@kernel.org> Cc: linux-kernel@vger.kernel.org Signed-off-by: Ingo Molnar <mingo@kernel.org>
65 lines
1.9 KiB
C
65 lines
1.9 KiB
C
#ifndef _ASM_E820_API_H
|
|
#define _ASM_E820_API_H
|
|
|
|
#include <asm/e820/types.h>
|
|
|
|
#ifndef __ASSEMBLY__
|
|
/* see comment in arch/x86/kernel/e820.c */
|
|
extern struct e820map *e820;
|
|
extern struct e820map *e820_saved;
|
|
|
|
extern unsigned long pci_mem_start;
|
|
extern int e820_any_mapped(u64 start, u64 end, unsigned type);
|
|
extern int e820_all_mapped(u64 start, u64 end, unsigned type);
|
|
extern void e820_add_region(u64 start, u64 size, int type);
|
|
extern void e820_print_map(char *who);
|
|
extern int
|
|
sanitize_e820_map(struct e820entry *biosmap, int max_nr_map, u32 *pnr_map);
|
|
extern u64 e820_update_range(u64 start, u64 size, unsigned old_type,
|
|
unsigned new_type);
|
|
extern u64 e820_remove_range(u64 start, u64 size, unsigned old_type,
|
|
int checktype);
|
|
extern void update_e820(void);
|
|
extern void e820_setup_gap(void);
|
|
struct setup_data;
|
|
extern void parse_e820_ext(u64 phys_addr, u32 data_len);
|
|
|
|
#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
|
|
|
|
extern unsigned long e820_end_of_ram_pfn(void);
|
|
extern unsigned long e820_end_of_low_ram_pfn(void);
|
|
extern u64 early_reserve_e820(u64 sizet, u64 align);
|
|
|
|
void memblock_x86_fill(void);
|
|
void memblock_find_dma_reserve(void);
|
|
|
|
extern void finish_e820_parsing(void);
|
|
extern void e820_reserve_resources(void);
|
|
extern void e820_reserve_resources_late(void);
|
|
extern void setup_memory_map(void);
|
|
extern char *default_machine_specific_memory_setup(void);
|
|
|
|
extern void e820_reallocate_tables(void);
|
|
|
|
/*
|
|
* Returns true iff the specified range [s,e) is completely contained inside
|
|
* the ISA region.
|
|
*/
|
|
static inline bool is_ISA_range(u64 s, u64 e)
|
|
{
|
|
return s >= ISA_START_ADDRESS && e <= ISA_END_ADDRESS;
|
|
}
|
|
|
|
#endif /* __ASSEMBLY__ */
|
|
#include <linux/ioport.h>
|
|
|
|
#define HIGH_MEMORY (1024*1024)
|
|
#endif /* _ASM_E820_API_H */
|