1 #ifndef SYS_INFO_H 2 #define SYS_INFO_H 3 4 /* Information collected from firmware/bootloader */ 5 6 struct sys_info { 7 /* Values passed by bootloader */ 8 unsigned long boot_type; 9 unsigned long boot_data; 10 unsigned long boot_arg; 11 12 const char *firmware; /* "PCBIOS", "LinuxBIOS", etc. */ 13 const char *command_line; /* command line given to us */ 14 15 /* memory map */ 16 int n_memranges; 17 struct memrange { 18 unsigned long long base; 19 unsigned long long size; 20 } *memrange; 21 unsigned long *dict_start; 22 unsigned long *dict_end; 23 cell dict_limit; 24 ucell *dict_last; 25 }; 26 27 extern void *elf_boot_notes; 28 extern struct sys_info sys_info; 29 30 void collect_elfboot_info(struct sys_info *info); 31 void collect_linuxbios_info(struct sys_info *info); 32 33 /* Our name and version. I want to see single instance of these in the image */ 34 extern const char *program_name, *program_version; 35 36 #define LOADER_NOT_SUPPORT 0xbadf11e 37 38 #endif /* SYS_INFO_H */ 39