[x86] remove uses of magic macros for boot_params access
authorH. Peter Anvin <hpa@zytor.com>
Tue, 16 Oct 2007 00:13:22 +0000 (17:13 -0700)
committerH. Peter Anvin <hpa@zytor.com>
Wed, 17 Oct 2007 00:38:31 +0000 (17:38 -0700)
Instead of using magic macros for boot_params access, simply use the
boot_params structure.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
20 files changed:
arch/x86/boot/Makefile
arch/x86/kernel/e820_64.c
arch/x86/kernel/early_printk.c
arch/x86/kernel/efi_32.c
arch/x86/kernel/head64.c
arch/x86/kernel/setup64.c
arch/x86/kernel/setup_32.c
arch/x86/kernel/setup_64.c
arch/x86/mach-default/setup.c
arch/x86/mach-visws/setup.c
arch/x86/mach-voyager/setup.c
arch/x86/mm/discontig_32.c
arch/x86/xen/enlighten.c
drivers/lguest/lguest.c
drivers/video/console/vgacon.c
include/asm-x86/Kbuild
include/asm-x86/bootparam.h
include/asm-x86/bootsetup.h [deleted file]
include/asm-x86/setup_32.h
include/asm-x86/setup_64.h

index e8756e5f6b29d271415669fbbe01a6a0e84bd054..89dbf970e058c845e676f8b2be9efc65dcbdfe84 100644 (file)
@@ -39,6 +39,7 @@ setup-y               += printf.o string.o tty.o video.o version.o voyager.o
 setup-y                += video-vga.o
 setup-y                += video-vesa.o
 setup-y                += video-bios.o
+
 targets                += $(setup-y)
 hostprogs-y    := tools/build
 
index 0f4d5e209e9b7b015b1f99d55af809f4b80075bd..e422b8159f694a7fa2c8e3172d8d63f49c1d9c78 100644 (file)
@@ -24,7 +24,7 @@
 #include <asm/page.h>
 #include <asm/e820.h>
 #include <asm/proto.h>
-#include <asm/bootsetup.h>
+#include <asm/setup.h>
 #include <asm/sections.h>
 
 struct e820map e820;
@@ -68,10 +68,15 @@ static inline int bad_addr(unsigned long *addrp, unsigned long size)
 
        /* initrd */ 
 #ifdef CONFIG_BLK_DEV_INITRD
-       if (LOADER_TYPE && INITRD_START && last >= INITRD_START && 
-           addr < INITRD_START+INITRD_SIZE) { 
-               *addrp = PAGE_ALIGN(INITRD_START + INITRD_SIZE);
-               return 1;
+       if (boot_params.hdr.type_of_loader && boot_params.hdr.ramdisk_image) {
+               unsigned long ramdisk_image = boot_params.hdr.ramdisk_image;
+               unsigned long ramdisk_size  = boot_params.hdr.ramdisk_size;
+               unsigned long ramdisk_end   = ramdisk_image+ramdisk_size;
+
+               if (last >= ramdisk_image && addr < ramdisk_end) {
+                       *addrp = PAGE_ALIGN(ramdisk_end);
+                       return 1;
+               }
        } 
 #endif
        /* kernel code */
@@ -594,8 +599,8 @@ void __init setup_memory_region(void)
         * Otherwise fake a memory map; one section from 0k->640k,
         * the next section from 1mb->appropriate_mem_k
         */
-       sanitize_e820_map(E820_MAP, &E820_MAP_NR);
-       if (copy_e820_map(E820_MAP, E820_MAP_NR) < 0)
+       sanitize_e820_map(boot_params.e820_map, &boot_params.e820_entries);
+       if (copy_e820_map(boot_params.e820_map, boot_params.e820_entries) < 0)
                early_panic("Cannot find a valid memory map");
        printk(KERN_INFO "BIOS-provided physical RAM map:\n");
        e820_print_map("BIOS-e820");
index fd9aff3f389011d1a1e3c2cf7a4674325624005d..b7d6c23f28716f1108795d98b69d5572dd53dff0 100644 (file)
@@ -6,15 +6,10 @@
 #include <asm/io.h>
 #include <asm/processor.h>
 #include <asm/fcntl.h>
+#include <asm/setup.h>
 #include <xen/hvc-console.h>
 
 /* Simple VGA output */
-
-#ifdef __i386__
-#include <asm/setup.h>
-#else
-#include <asm/bootsetup.h>
-#endif
 #define VGABASE                (__ISA_IO_base + 0xb8000)
 
 static int max_ypos = 25, max_xpos = 80;
@@ -234,10 +229,10 @@ static int __init setup_early_printk(char *buf)
                early_serial_init(buf);
                early_console = &early_serial_console;
        } else if (!strncmp(buf, "vga", 3)
-                  && SCREEN_INFO.orig_video_isVGA == 1) {
-               max_xpos = SCREEN_INFO.orig_video_cols;
-               max_ypos = SCREEN_INFO.orig_video_lines;
-               current_ypos = SCREEN_INFO.orig_y;
+                  && boot_params.screen_info.orig_video_isVGA == 1) {
+               max_xpos = boot_params.screen_info.orig_video_cols;
+               max_ypos = boot_params.screen_info.orig_video_lines;
+               current_ypos = boot_params.screen_info.orig_y;
                early_console = &early_vga_console;
        } else if (!strncmp(buf, "simnow", 6)) {
                simnow_init(buf + 6);
index 2452c6fbe9927bf34e804ade8e65b2a48b1927b8..b42558c48e9d8d825eb73cd2e0ea37b74c31d517 100644 (file)
@@ -331,11 +331,13 @@ void __init efi_init(void)
        memset(&efi, 0, sizeof(efi) );
        memset(&efi_phys, 0, sizeof(efi_phys));
 
-       efi_phys.systab = EFI_SYSTAB;
-       memmap.phys_map = EFI_MEMMAP;
-       memmap.nr_map = EFI_MEMMAP_SIZE/EFI_MEMDESC_SIZE;
-       memmap.desc_version = EFI_MEMDESC_VERSION;
-       memmap.desc_size = EFI_MEMDESC_SIZE;
+       efi_phys.systab =
+               (efi_system_table_t *)boot_params.efi_info.efi_systab;
+       memmap.phys_map = (void *)boot_params.efi_info.efi_memmap;
+       memmap.nr_map = boot_params.efi_info.efi_memmap_size/
+               boot_params.efi_info.efi_memdesc_size;
+       memmap.desc_version = boot_params.efi_info.efi_memdesc_version;
+       memmap.desc_size = boot_params.efi_info.efi_memdesc_size;
 
        efi.systab = (efi_system_table_t *)
                boot_ioremap((unsigned long) efi_phys.systab,
@@ -446,7 +448,8 @@ void __init efi_init(void)
                printk(KERN_ERR PFX "Could not map the runtime service table!\n");
 
        /* Map the EFI memory map for use until paging_init() */
-       memmap.map = boot_ioremap((unsigned long) EFI_MEMMAP, EFI_MEMMAP_SIZE);
+       memmap.map = boot_ioremap(boot_params.efi_info.efi_memmap,
+                                 boot_params.efi_info.efi_memmap_size);
        if (memmap.map == NULL)
                printk(KERN_ERR PFX "Could not map the EFI memory map!\n");
 
index 8561f626edad129ca13d2d4603cac32a6ed30b96..a7eee0a4751d6b42568aac385c8c9625fa4e3741 100644 (file)
@@ -14,7 +14,6 @@
 #include <asm/processor.h>
 #include <asm/proto.h>
 #include <asm/smp.h>
-#include <asm/bootsetup.h>
 #include <asm/setup.h>
 #include <asm/desc.h>
 #include <asm/pgtable.h>
@@ -36,26 +35,15 @@ static void __init clear_bss(void)
               (unsigned long) __bss_stop - (unsigned long) __bss_start);
 }
 
-#define NEW_CL_POINTER         0x228   /* Relative to real mode data */
-#define OLD_CL_MAGIC_ADDR      0x20
-#define OLD_CL_MAGIC            0xA33F
-#define OLD_CL_OFFSET           0x22
-
 static void __init copy_bootdata(char *real_mode_data)
 {
-       unsigned long new_data;
        char * command_line;
 
-       memcpy(x86_boot_params, real_mode_data, BOOT_PARAM_SIZE);
-       new_data = *(u32 *) (x86_boot_params + NEW_CL_POINTER);
-       if (!new_data) {
-               if (OLD_CL_MAGIC != *(u16 *)(real_mode_data + OLD_CL_MAGIC_ADDR)) {
-                       return;
-               }
-               new_data = __pa(real_mode_data) + *(u16 *)(real_mode_data + OLD_CL_OFFSET);
+       memcpy(&boot_params, real_mode_data, sizeof boot_params);
+       if (boot_params.hdr.cmd_line_ptr) {
+               command_line = __va(boot_params.hdr.cmd_line_ptr);
+               memcpy(boot_command_line, command_line, COMMAND_LINE_SIZE);
        }
-       command_line = __va(new_data);
-       memcpy(boot_command_line, command_line, COMMAND_LINE_SIZE);
 }
 
 void __init x86_64_start_kernel(char * real_mode_data)
index 1200aaac403e8f98c20a888c5d7d9455736e0391..ba9188235057b17a6002a10c36493646aa747da8 100644 (file)
@@ -11,7 +11,6 @@
 #include <linux/bootmem.h>
 #include <linux/bitops.h>
 #include <linux/module.h>
-#include <asm/bootsetup.h>
 #include <asm/pda.h>
 #include <asm/pgtable.h>
 #include <asm/processor.h>
@@ -23,8 +22,9 @@
 #include <asm/percpu.h>
 #include <asm/proto.h>
 #include <asm/sections.h>
+#include <asm/setup.h>
 
-char x86_boot_params[BOOT_PARAM_SIZE] __initdata;
+struct boot_params __initdata boot_params;
 
 cpumask_t cpu_initialized __cpuinitdata = CPU_MASK_NONE;
 
index c8e1bc38d421e79b6957100b485dd017a367a4ae..b87a6fd5ba48739b7be30f6cbcb434be8027a5cd 100644 (file)
@@ -137,10 +137,11 @@ EXPORT_SYMBOL(edd);
  */
 static inline void copy_edd(void)
 {
-     memcpy(edd.mbr_signature, EDD_MBR_SIGNATURE, sizeof(edd.mbr_signature));
-     memcpy(edd.edd_info, EDD_BUF, sizeof(edd.edd_info));
-     edd.mbr_signature_nr = EDD_MBR_SIG_NR;
-     edd.edd_info_nr = EDD_NR;
+     memcpy(edd.mbr_signature, boot_params.edd_mbr_sig_buffer,
+           sizeof(edd.mbr_signature));
+     memcpy(edd.edd_info, boot_params.eddbuf, sizeof(edd.edd_info));
+     edd.mbr_signature_nr = boot_params.edd_mbr_sig_buf_entries;
+     edd.edd_info_nr = boot_params.eddbuf_entries;
 }
 #else
 static inline void copy_edd(void)
@@ -434,17 +435,20 @@ void __init setup_bootmem_allocator(void)
 #endif
        numa_kva_reserve();
 #ifdef CONFIG_BLK_DEV_INITRD
-       if (LOADER_TYPE && INITRD_START) {
-               if (INITRD_START + INITRD_SIZE <= (max_low_pfn << PAGE_SHIFT)) {
-                       reserve_bootmem(INITRD_START, INITRD_SIZE);
-                       initrd_start = INITRD_START + PAGE_OFFSET;
-                       initrd_end = initrd_start+INITRD_SIZE;
-               }
-               else {
+       if (boot_params.hdr.type_of_loader && boot_params.hdr.ramdisk_image) {
+               unsigned long ramdisk_image = boot_params.hdr.ramdisk_image;
+               unsigned long ramdisk_size  = boot_params.hdr.ramdisk_size;
+               unsigned long ramdisk_end   = ramdisk_image + ramdisk_size;
+               unsigned long end_of_lowmem = max_low_pfn << PAGE_SHIFT;
+
+               if (ramdisk_end <= end_of_lowmem) {
+                       reserve_bootmem(ramdisk_image, ramdisk_size);
+                       initrd_start = ramdisk_image + PAGE_OFFSET;
+                       initrd_end = initrd_start+ramdisk_size;
+               } else {
                        printk(KERN_ERR "initrd extends beyond end of memory "
-                           "(0x%08lx > 0x%08lx)\ndisabling initrd\n",
-                           INITRD_START + INITRD_SIZE,
-                           max_low_pfn << PAGE_SHIFT);
+                              "(0x%08lx > 0x%08lx)\ndisabling initrd\n",
+                              ramdisk_end, end_of_lowmem);
                        initrd_start = 0;
                }
        }
@@ -512,28 +516,29 @@ void __init setup_arch(char **cmdline_p)
         * the system table is valid.  If not, then initialize normally.
         */
 #ifdef CONFIG_EFI
-       if ((LOADER_TYPE == 0x50) && EFI_SYSTAB)
+       if ((boot_params.hdr.type_of_loader == 0x50) &&
+           boot_params.efi_info.efi_systab)
                efi_enabled = 1;
 #endif
 
-       ROOT_DEV = old_decode_dev(ORIG_ROOT_DEV);
-       screen_info = SCREEN_INFO;
-       edid_info = EDID_INFO;
-       apm_info.bios = APM_BIOS_INFO;
-       ist_info = IST_INFO;
-       saved_videomode = VIDEO_MODE;
-       if( SYS_DESC_TABLE.length != 0 ) {
-               set_mca_bus(SYS_DESC_TABLE.table[3] & 0x2);
-               machine_id = SYS_DESC_TABLE.table[0];
-               machine_submodel_id = SYS_DESC_TABLE.table[1];
-               BIOS_revision = SYS_DESC_TABLE.table[2];
+       ROOT_DEV = old_decode_dev(boot_params.hdr.root_dev);
+       screen_info = boot_params.screen_info;
+       edid_info = boot_params.edid_info;
+       apm_info.bios = boot_params.apm_bios_info;
+       ist_info = boot_params.ist_info;
+       saved_videomode = boot_params.hdr.vid_mode;
+       if( boot_params.sys_desc_table.length != 0 ) {
+               set_mca_bus(boot_params.sys_desc_table.table[3] & 0x2);
+               machine_id = boot_params.sys_desc_table.table[0];
+               machine_submodel_id = boot_params.sys_desc_table.table[1];
+               BIOS_revision = boot_params.sys_desc_table.table[2];
        }
-       bootloader_type = LOADER_TYPE;
+       bootloader_type = boot_params.hdr.type_of_loader;
 
 #ifdef CONFIG_BLK_DEV_RAM
-       rd_image_start = RAMDISK_FLAGS & RAMDISK_IMAGE_START_MASK;
-       rd_prompt = ((RAMDISK_FLAGS & RAMDISK_PROMPT_FLAG) != 0);
-       rd_doload = ((RAMDISK_FLAGS & RAMDISK_LOAD_FLAG) != 0);
+       rd_image_start = boot_params.hdr.ram_size & RAMDISK_IMAGE_START_MASK;
+       rd_prompt = ((boot_params.hdr.ram_size & RAMDISK_PROMPT_FLAG) != 0);
+       rd_doload = ((boot_params.hdr.ram_size & RAMDISK_LOAD_FLAG) != 0);
 #endif
        ARCH_SETUP
        if (efi_enabled)
@@ -545,7 +550,7 @@ void __init setup_arch(char **cmdline_p)
 
        copy_edd();
 
-       if (!MOUNT_ROOT_RDONLY)
+       if (!boot_params.hdr.root_flags)
                root_mountflags &= ~MS_RDONLY;
        init_mm.start_code = (unsigned long) _text;
        init_mm.end_code = (unsigned long) _etext;
index 85b5b6310accd1af4100b73054bcaf345619d086..8159bf0be17aa61bed4b91bd1aa09c84f2814a96 100644 (file)
@@ -52,7 +52,6 @@
 #include <asm/dma.h>
 #include <asm/mpspec.h>
 #include <asm/mmu_context.h>
-#include <asm/bootsetup.h>
 #include <asm/proto.h>
 #include <asm/setup.h>
 #include <asm/mach_apic.h>
@@ -180,10 +179,11 @@ EXPORT_SYMBOL(edd);
  */
 static inline void copy_edd(void)
 {
-     memcpy(edd.mbr_signature, EDD_MBR_SIGNATURE, sizeof(edd.mbr_signature));
-     memcpy(edd.edd_info, EDD_BUF, sizeof(edd.edd_info));
-     edd.mbr_signature_nr = EDD_MBR_SIG_NR;
-     edd.edd_info_nr = EDD_NR;
+     memcpy(edd.mbr_signature, boot_params.edd_mbr_sig_buffer,
+           sizeof(edd.mbr_signature));
+     memcpy(edd.edd_info, boot_params.eddbuf, sizeof(edd.edd_info));
+     edd.mbr_signature_nr = boot_params.edd_mbr_sig_buf_entries;
+     edd.edd_info_nr = boot_params.eddbuf_entries;
 }
 #else
 static inline void copy_edd(void)
@@ -220,21 +220,21 @@ void __init setup_arch(char **cmdline_p)
 {
        printk(KERN_INFO "Command line: %s\n", boot_command_line);
 
-       ROOT_DEV = old_decode_dev(ORIG_ROOT_DEV);
-       screen_info = SCREEN_INFO;
-       edid_info = EDID_INFO;
-       saved_video_mode = SAVED_VIDEO_MODE;
-       bootloader_type = LOADER_TYPE;
+       ROOT_DEV = old_decode_dev(boot_params.hdr.root_dev);
+       screen_info = boot_params.screen_info;
+       edid_info = boot_params.edid_info;
+       saved_video_mode = boot_params.hdr.vid_mode;
+       bootloader_type = boot_params.hdr.type_of_loader;
 
 #ifdef CONFIG_BLK_DEV_RAM
-       rd_image_start = RAMDISK_FLAGS & RAMDISK_IMAGE_START_MASK;
-       rd_prompt = ((RAMDISK_FLAGS & RAMDISK_PROMPT_FLAG) != 0);
-       rd_doload = ((RAMDISK_FLAGS & RAMDISK_LOAD_FLAG) != 0);
+       rd_image_start = boot_params.hdr.ram_size & RAMDISK_IMAGE_START_MASK;
+       rd_prompt = ((boot_params.hdr.ram_size & RAMDISK_PROMPT_FLAG) != 0);
+       rd_doload = ((boot_params.hdr.ram_size & RAMDISK_LOAD_FLAG) != 0);
 #endif
        setup_memory_region();
        copy_edd();
 
-       if (!MOUNT_ROOT_RDONLY)
+       if (!boot_params.hdr.root_flags)
                root_mountflags &= ~MS_RDONLY;
        init_mm.start_code = (unsigned long) &_text;
        init_mm.end_code = (unsigned long) &_etext;
@@ -339,17 +339,20 @@ void __init setup_arch(char **cmdline_p)
         */
        find_smp_config();
 #ifdef CONFIG_BLK_DEV_INITRD
-       if (LOADER_TYPE && INITRD_START) {
-               if (INITRD_START + INITRD_SIZE <= (end_pfn << PAGE_SHIFT)) {
-                       reserve_bootmem_generic(INITRD_START, INITRD_SIZE);
-                       initrd_start = INITRD_START + PAGE_OFFSET;
-                       initrd_end = initrd_start+INITRD_SIZE;
-               }
-               else {
+       if (boot_params.hdr.type_of_loader && boot_params.hdr.ramdisk_image) {
+               unsigned long ramdisk_image = boot_params.hdr.ramdisk_image;
+               unsigned long ramdisk_size  = boot_params.hdr.ramdisk_size;
+               unsigned long ramdisk_end   = ramdisk_image + ramdisk_size;
+               unsigned long end_of_mem    = end_pfn << PAGE_SHIFT;
+
+               if (ramdisk_end <= end_of_mem) {
+                       reserve_bootmem_generic(ramdisk_image, ramdisk_size);
+                       initrd_start = ramdisk_image + PAGE_OFFSET;
+                       initrd_end = initrd_start+ramdisk_size;
+               } else {
                        printk(KERN_ERR "initrd extends beyond end of memory "
-                           "(0x%08lx > 0x%08lx)\ndisabling initrd\n",
-                           (unsigned long)(INITRD_START + INITRD_SIZE),
-                           (unsigned long)(end_pfn << PAGE_SHIFT));
+                              "(0x%08lx > 0x%08lx)\ndisabling initrd\n",
+                              ramdisk_end, end_of_mem);
                        initrd_start = 0;
                }
        }
index 7f635c7a238160bf8aa27c389001942c27575520..1bd82983986d369205a790085216a7af688a686c 100644 (file)
@@ -159,16 +159,18 @@ char * __init machine_specific_memory_setup(void)
         * Otherwise fake a memory map; one section from 0k->640k,
         * the next section from 1mb->appropriate_mem_k
         */
-       sanitize_e820_map(E820_MAP, &E820_MAP_NR);
-       if (copy_e820_map(E820_MAP, E820_MAP_NR) < 0) {
+       sanitize_e820_map(boot_params.e820_map, &boot_params.e820_entries);
+       if (copy_e820_map(boot_params.e820_map, boot_params.e820_entries)
+           < 0) {
                unsigned long mem_size;
 
                /* compare results from other methods and take the greater */
-               if (ALT_MEM_K < EXT_MEM_K) {
-                       mem_size = EXT_MEM_K;
+               if (boot_params.alt_mem_k
+                   < boot_params.screen_info.ext_mem_k) {
+                       mem_size = boot_params.screen_info.ext_mem_k;
                        who = "BIOS-88";
                } else {
-                       mem_size = ALT_MEM_K;
+                       mem_size = boot_params.alt_mem_k;
                        who = "BIOS-e801";
                }
 
index 1f81f10e03a0cd8eed4c8544d3439844eaf770e8..de4c9dbd086fba393bb63ce5d039d67b35e9d005 100644 (file)
@@ -152,7 +152,7 @@ char * __init machine_specific_memory_setup(void)
 {
        long long gfx_mem_size = 8 * MB;
 
-       mem_size = ALT_MEM_K;
+       mem_size = boot_params.alt_mem_k;
 
        if (!mem_size) {
                printk(KERN_WARNING "Bootloader didn't set memory size, upgrade it !\n");
index 2b55694e6400c6af0896153e546d890a430e95df..a0ab4002abcd77d64e10689ba8c01bd8a056eb59 100644 (file)
@@ -83,7 +83,7 @@ char * __init machine_specific_memory_setup(void)
 
                if(inb(catbase) != VOYAGER_DINO) {
                        printk(KERN_ERR "Voyager: Failed to get DINO for L4, setting tom to EXT_MEM_K\n");
-                       tom = (EXT_MEM_K)<<10;
+                       tom = (boot_params.screen_info.ext_mem_k)<<10;
                }
                who = "Voyager-TOM";
                add_memory_region(0, 0x9f000, E820_RAM);
@@ -104,16 +104,18 @@ char * __init machine_specific_memory_setup(void)
         * Otherwise fake a memory map; one section from 0k->640k,
         * the next section from 1mb->appropriate_mem_k
         */
-       sanitize_e820_map(E820_MAP, &E820_MAP_NR);
-       if (copy_e820_map(E820_MAP, E820_MAP_NR) < 0) {
+       sanitize_e820_map(boot_params.e820_map, &boot_params.e820_entries);
+       if (copy_e820_map(boot_params.e820_map, boot_params.e820_entries)
+           < 0) {
                unsigned long mem_size;
 
                /* compare results from other methods and take the greater */
-               if (ALT_MEM_K < EXT_MEM_K) {
-                       mem_size = EXT_MEM_K;
+               if (boot_params.alt_mem_k
+                   < boot_params.screen_info.ext_mem_k) {
+                       mem_size = boot_params.screen_info.ext_mem_k;
                        who = "BIOS-88";
                } else {
-                       mem_size = ALT_MEM_K;
+                       mem_size = boot_params.alt_mem_k;
                        who = "BIOS-e801";
                }
 
index 860e912a3fbb4471ec5b683542b3dfa7c71598d4..b1e45457d4efcfec73caf963ad94dfecfd61d4b7 100644 (file)
@@ -288,8 +288,9 @@ unsigned long __init setup_memory(void)
 
 #ifdef CONFIG_BLK_DEV_INITRD
        /* Numa kva area is below the initrd */
-       if (LOADER_TYPE && INITRD_START)
-               kva_start_pfn = PFN_DOWN(INITRD_START)  - kva_pages;
+       if (boot_params.hdr.type_of_loader && boot_params.hdr.ramdisk_image)
+               kva_start_pfn = PFN_DOWN(boot_params.hdr.ramdisk_image)
+                       - kva_pages;
 #endif
        kva_start_pfn -= kva_start_pfn & (PTRS_PER_PTE-1);
 
index f01bfcd4bdee4c63059ff2a2fd9f8ec4b1b0d1e1..493a083f6886bd4ae797bb6d93911f3236804fd1 100644 (file)
@@ -1137,9 +1137,10 @@ asmlinkage void __init xen_start_kernel(void)
        new_cpu_data.x86_capability[0] = cpuid_edx(1);
 
        /* Poke various useful things into boot_params */
-       LOADER_TYPE = (9 << 4) | 0;
-       INITRD_START = xen_start_info->mod_start ? __pa(xen_start_info->mod_start) : 0;
-       INITRD_SIZE = xen_start_info->mod_len;
+       boot_params.hdr.type_of_loader = (9 << 4) | 0;
+       boot_params.hdr.ramdisk_image = xen_start_info->mod_start
+               ? __pa(xen_start_info->mod_start) : 0;
+       boot_params.hdr.ramdisk_size = xen_start_info->mod_len;
 
        /* Start the world */
        start_kernel();
index ee1c6d05c3d343d4d5f4c3039779eba5d75662ae..4a579c840301fe77539af414e4c4086d97bba5ca 100644 (file)
@@ -893,7 +893,9 @@ static __init char *lguest_memory_setup(void)
 
        /* The Linux bootloader header contains an "e820" memory map: the
         * Launcher populated the first entry with our memory limit. */
-       add_memory_region(E820_MAP->addr, E820_MAP->size, E820_MAP->type);
+       add_memory_region(boot_params.e820_map[0].addr,
+                         boot_params.e820_map[0].size,
+                         boot_params.e820_map[0].type);
 
        /* This string is for the boot messages. */
        return "LGUEST";
index e9afb7ebd566144a53f68552ad6f7f1b5b34bb9f..a5698714d43d0da672ca26153fceaf7af17a739e 100644 (file)
@@ -372,7 +372,7 @@ static const char *vgacon_startup(void)
 #endif
        }
 
-       /* SCREEN_INFO initialized? */
+       /* boot_params.screen_info initialized? */
        if ((ORIG_VIDEO_MODE  == 0) &&
            (ORIG_VIDEO_LINES == 0) &&
            (ORIG_VIDEO_COLS  == 0))
index c5e43cb39874f2201e7defc7bd89c59fe6a1e0d2..80744dbcfafda48952bacc5b19d1c9f136429079 100644 (file)
@@ -1,7 +1,6 @@
 include include/asm-generic/Kbuild.asm
 
 header-y += boot.h
-header-y += bootsetup.h
 header-y += debugreg_32.h
 header-y += debugreg_64.h
 header-y += debugreg.h
index b91b01783e4ba6247b020dde839842f49f22c650..ef67b59dbdb93ea61215628ab615d78d67f5f2d9 100644 (file)
@@ -14,6 +14,9 @@ struct setup_header {
        u16     root_flags;
        u32     syssize;
        u16     ram_size;
+#define RAMDISK_IMAGE_START_MASK       0x07FF
+#define RAMDISK_PROMPT_FLAG            0x8000
+#define RAMDISK_LOAD_FLAG              0x4000
        u16     vid_mode;
        u16     root_dev;
        u16     boot_flag;
diff --git a/include/asm-x86/bootsetup.h b/include/asm-x86/bootsetup.h
deleted file mode 100644 (file)
index 7b1c3ad..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-
-#ifndef _X86_64_BOOTSETUP_H
-#define _X86_64_BOOTSETUP_H 1
-
-#define BOOT_PARAM_SIZE                4096
-extern char x86_boot_params[BOOT_PARAM_SIZE];
-
-/*
- * This is set up by the setup-routine at boot-time
- */
-#define PARAM  ((unsigned char *)x86_boot_params)
-#define SCREEN_INFO (*(struct screen_info *) (PARAM+0))
-#define EXT_MEM_K (*(unsigned short *) (PARAM+2))
-#define ALT_MEM_K (*(unsigned int *) (PARAM+0x1e0))
-#define E820_MAP_NR (*(char*) (PARAM+E820NR))
-#define E820_MAP    ((struct e820entry *) (PARAM+E820MAP))
-#define APM_BIOS_INFO (*(struct apm_bios_info *) (PARAM+0x40))
-#define DRIVE_INFO (*(struct drive_info_struct *) (PARAM+0x80))
-#define SYS_DESC_TABLE (*(struct sys_desc_table_struct*)(PARAM+0xa0))
-#define MOUNT_ROOT_RDONLY (*(unsigned short *) (PARAM+0x1F2))
-#define RAMDISK_FLAGS (*(unsigned short *) (PARAM+0x1F8))
-#define SAVED_VIDEO_MODE (*(unsigned short *) (PARAM+0x1FA))
-#define ORIG_ROOT_DEV (*(unsigned short *) (PARAM+0x1FC))
-#define AUX_DEVICE_INFO (*(unsigned char *) (PARAM+0x1FF))
-#define LOADER_TYPE (*(unsigned char *) (PARAM+0x210))
-#define KERNEL_START (*(unsigned int *) (PARAM+0x214))
-#define INITRD_START (*(unsigned int *) (PARAM+0x218))
-#define INITRD_SIZE (*(unsigned int *) (PARAM+0x21c))
-#define EDID_INFO (*(struct edid_info *) (PARAM+0x140))
-#define EDD_NR     (*(unsigned char *) (PARAM+EDDNR))
-#define EDD_MBR_SIG_NR (*(unsigned char *) (PARAM+EDD_MBR_SIG_NR_BUF))
-#define EDD_MBR_SIGNATURE ((unsigned int *) (PARAM+EDD_MBR_SIG_BUF))
-#define EDD_BUF     ((struct edd_info *) (PARAM+EDDBUF))
-#define COMMAND_LINE boot_command_line
-
-#define RAMDISK_IMAGE_START_MASK       0x07FF
-#define RAMDISK_PROMPT_FLAG            0x8000
-#define RAMDISK_LOAD_FLAG              0x4000  
-
-#endif
index 7862fe858a9ef8e5e92e15e36cc2fcdf31c200d6..7a57ca8a17933edcede20980ec6ef13236d564de 100644 (file)
  */
 extern struct boot_params boot_params;
 
-#define PARAM  ((char *)&boot_params)
-#define SCREEN_INFO (*(struct screen_info *) (PARAM+0))
-#define EXT_MEM_K (*(unsigned short *) (PARAM+2))
-#define ALT_MEM_K (*(unsigned long *) (PARAM+0x1e0))
-#define E820_MAP_NR (*(char*) (PARAM+E820NR))
-#define E820_MAP    ((struct e820entry *) (PARAM+E820MAP))
-#define APM_BIOS_INFO (*(struct apm_bios_info *) (PARAM+0x40))
-#define IST_INFO   (*(struct ist_info *) (PARAM+0x60))
-#define SYS_DESC_TABLE (*(struct sys_desc_table *)(PARAM+0xa0))
-#define EFI_SYSTAB ((efi_system_table_t *) *((unsigned long *)(PARAM+0x1c4)))
-#define EFI_MEMDESC_SIZE (*((unsigned long *) (PARAM+0x1c8)))
-#define EFI_MEMDESC_VERSION (*((unsigned long *) (PARAM+0x1cc)))
-#define EFI_MEMMAP ((void *) *((unsigned long *)(PARAM+0x1d0)))
-#define EFI_MEMMAP_SIZE (*((unsigned long *) (PARAM+0x1d4)))
-#define MOUNT_ROOT_RDONLY (*(unsigned short *) (PARAM+0x1F2))
-#define RAMDISK_FLAGS (*(unsigned short *) (PARAM+0x1F8))
-#define VIDEO_MODE (*(unsigned short *) (PARAM+0x1FA))
-#define ORIG_ROOT_DEV (*(unsigned short *) (PARAM+0x1FC))
-#define AUX_DEVICE_INFO (*(unsigned char *) (PARAM+0x1FF))
-#define LOADER_TYPE (*(unsigned char *) (PARAM+0x210))
-#define KERNEL_START (*(unsigned long *) (PARAM+0x214))
-#define INITRD_START (*(unsigned long *) (PARAM+0x218))
-#define INITRD_SIZE (*(unsigned long *) (PARAM+0x21c))
-#define EDID_INFO   (*(struct edid_info *) (PARAM+0x140))
-#define EDD_NR     (*(unsigned char *) (PARAM+EDDNR))
-#define EDD_MBR_SIG_NR (*(unsigned char *) (PARAM+EDD_MBR_SIG_NR_BUF))
-#define EDD_MBR_SIGNATURE ((unsigned int *) (PARAM+EDD_MBR_SIG_BUF))
-#define EDD_BUF     ((struct edd_info *) (PARAM+EDDBUF))
-
 /*
  * Do NOT EVER look at the BIOS memory size location.
  * It does not work on many machines.
index eaeff73d6c10d07d91c818a182b2d7a5f08d48f1..a04aadcccf67f3a877ff96b74a542d9f63afacbd 100644 (file)
@@ -3,4 +3,17 @@
 
 #define COMMAND_LINE_SIZE      2048
 
+#ifdef __KERNEL__
+
+#ifndef __ASSEMBLY__
+#include <asm/bootparam.h>
+
+/*
+ * This is set up by the setup-routine at boot-time
+ */
+extern struct boot_params boot_params;
+
+#endif /* not __ASSEMBLY__ */
+#endif /* __KERNEL__ */
+
 #endif