2005-04-17 02:20:36 +04:00
/*
* structures and definitions for the int 15 , ax = e820 memory map
* scheme .
*
* In a nutshell , setup . S populates a scratch table in the
* empty_zero_block that contains a list of usable address / size
* duples . setup . c , this information is transferred into the e820map ,
* and in init . c / numa . c , that new information is used to mark pages
* reserved or not .
*/
# ifndef __E820_HEADER
# define __E820_HEADER
# ifndef __ASSEMBLY__
extern unsigned long find_e820_area ( unsigned long start , unsigned long end ,
unsigned size ) ;
extern void add_memory_region ( unsigned long start , unsigned long size ,
int type ) ;
extern void setup_memory_region ( void ) ;
extern void contig_e820_setup ( void ) ;
extern unsigned long e820_end_of_ram ( void ) ;
extern void e820_reserve_resources ( void ) ;
2006-09-26 10:32:46 +04:00
extern void e820_mark_nosave_regions ( void ) ;
2005-04-17 02:20:36 +04:00
extern void e820_print_map ( char * who ) ;
2006-04-07 21:49:24 +04:00
extern int e820_any_mapped ( unsigned long start , unsigned long end , unsigned type ) ;
2006-04-07 21:49:27 +04:00
extern int e820_all_mapped ( unsigned long start , unsigned long end , unsigned type ) ;
2007-02-13 15:26:22 +03:00
extern unsigned long e820_hole_size ( unsigned long start , unsigned long end ) ;
2005-04-17 02:20:36 +04:00
2005-04-17 02:25:12 +04:00
extern void e820_setup_gap ( void ) ;
2006-09-27 12:49:52 +04:00
extern void e820_register_active_regions ( int nid ,
unsigned long start_pfn , unsigned long end_pfn ) ;
2005-04-17 02:20:36 +04:00
2006-09-26 12:52:32 +04:00
extern void finish_e820_parsing ( void ) ;
2005-04-17 02:20:36 +04:00
extern struct e820map e820 ;
2006-05-08 17:17:28 +04:00
extern unsigned ebda_addr , ebda_size ;
2007-02-13 15:26:19 +03:00
extern unsigned long nodemap_addr , nodemap_size ;
2005-04-17 02:20:36 +04:00
# endif /*!__ASSEMBLY__*/
# endif /*__E820_HEADER*/