--- Gnu-Mach/i386/i386at/model_dep.c 2020/09/02 04:49:21 1.1.1.5 +++ Gnu-Mach/i386/i386at/model_dep.c 2020/09/02 04:51:29 1.1.1.6 @@ -77,6 +77,10 @@ #include #endif /* MACH_XEN */ +#if ENABLE_IMMEDIATE_CONSOLE +#include "immc.h" +#endif /* ENABLE_IMMEDIATE_CONSOLE */ + /* Location of the kernel's symbol table. Both of these are 0 if none is available. */ #if MACH_KDB @@ -97,6 +101,8 @@ static unsigned elf_shdr_shndx; #define kern_sym_end 0 #endif /* MACH_KDB */ +#define RESERVED_BIOS 0x10000 + /* These indicate the total extent of physical memory addresses we're using. They are page-aligned. */ vm_offset_t phys_first_addr = 0; @@ -127,7 +133,7 @@ char *kernel_cmdline = ""; It is not necessarily page-aligned. */ static vm_offset_t avail_next #ifndef MACH_HYP - = 0x1000 /* XX end of BIOS data area */ + = RESERVED_BIOS /* XX end of BIOS data area */ #endif /* MACH_HYP */ ; @@ -137,6 +143,7 @@ static vm_size_t avail_remaining; extern char version[]; +/* If set, reboot the system on ctrl-alt-delete. */ boolean_t rebootflag = FALSE; /* exported to kdintr */ /* XX interrupt stack pointer and highwater mark, for locore.S. */ @@ -349,7 +356,7 @@ mem_size_init(void) #else /* MACH_HYP */ avail_remaining = phys_last_addr - (0x100000 - (boot_info.mem_lower * 0x400) - - 0x1000); + - RESERVED_BIOS); #endif /* MACH_HYP */ } @@ -540,6 +547,10 @@ i386at_init(void) */ void c_boot_entry(vm_offset_t bi) { +#if ENABLE_IMMEDIATE_CONSOLE + romputc = immc_romputc; +#endif /* ENABLE_IMMEDIATE_CONSOLE */ + /* Stash the boot_image_info pointer. */ boot_info = *(typeof(boot_info)*)phystokv(bi); int cpu_type; @@ -746,7 +757,7 @@ init_alloc_aligned(vm_size_t size, vm_of of free pages, so it should not have been allocated to any other use in early initialization before the Linux driver glue initialization needs to allocate low memory. */ - avail_next = 0x1000; + avail_next = RESERVED_BIOS; wrapped = 1; } }