45 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			C
		
	
	
	
			
		
		
	
	
			45 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			C
		
	
	
	
| #ifndef _ASM_X86_E820_H
 | |
| #define _ASM_X86_E820_H
 | |
| 
 | |
| #define E820MAX		128	/* number of entries in E820MAP */
 | |
| 
 | |
| #define E820_RAM	1
 | |
| #define E820_RESERVED	2
 | |
| #define E820_ACPI	3
 | |
| #define E820_NVS	4
 | |
| #define E820_UNUSABLE	5
 | |
| #define E820_COUNT	6	/* Number of types */
 | |
| 
 | |
| #ifndef __ASSEMBLY__
 | |
| #include <linux/types.h>
 | |
| 
 | |
| struct e820_entry {
 | |
| 	__u64 addr;	/* start of memory segment */
 | |
| 	__u64 size;	/* size of memory segment */
 | |
| 	__u32 type;	/* type of memory segment */
 | |
| } __attribute__((packed));
 | |
| 
 | |
| #define ISA_START_ADDRESS	0xa0000
 | |
| #define ISA_END_ADDRESS		0x100000
 | |
| 
 | |
| /* Implementation-defined function to install an e820 map */
 | |
| unsigned int install_e820_map(unsigned int max_entries,
 | |
| 			      struct e820_entry *);
 | |
| 
 | |
| /**
 | |
|  * cb_install_e820_map() - Install e820 map provided by coreboot sysinfo
 | |
|  *
 | |
|  * This should be used when booting from coreboot, since in that case the
 | |
|  * memory areas are provided by coreboot in its sysinfo.
 | |
|  *
 | |
|  * @max_entries: Maximum number of entries to write
 | |
|  * @entries: Place to put entires
 | |
|  * @return number of entries written
 | |
|  */
 | |
| unsigned int cb_install_e820_map(unsigned int max_entries,
 | |
| 				 struct e820_entry *entries);
 | |
| 
 | |
| #endif /* __ASSEMBLY__ */
 | |
| 
 | |
| #endif /* _ASM_X86_E820_H */
 |