svn commit: r200704 - in stable/6/sys/boot/pc98: libpc98 loader

Takahashi Yoshihiro nyan at FreeBSD.org
Sat Dec 19 04:39:22 UTC 2009


Author: nyan
Date: Sat Dec 19 04:39:21 2009
New Revision: 200704
URL: http://svn.freebsd.org/changeset/base/200704

Log:
  MFC: r200253 and r200255
  
    Reduce diffs against i386.

Modified:
  stable/6/sys/boot/pc98/libpc98/biosmem.c
  stable/6/sys/boot/pc98/loader/main.c
Directory Properties:
  stable/6/sys/   (props changed)
  stable/6/sys/contrib/pf/   (props changed)
  stable/6/sys/dev/cxgb/   (props changed)

Modified: stable/6/sys/boot/pc98/libpc98/biosmem.c
==============================================================================
--- stable/6/sys/boot/pc98/libpc98/biosmem.c	Sat Dec 19 04:33:10 2009	(r200703)
+++ stable/6/sys/boot/pc98/libpc98/biosmem.c	Sat Dec 19 04:39:21 2009	(r200704)
@@ -34,8 +34,13 @@ __FBSDID("$FreeBSD$");
 #include "libi386.h"
 #include "btxv86.h"
 
-vm_offset_t	memtop, memtop_copyin;
-u_int32_t	bios_basemem, bios_extmem;
+vm_offset_t	memtop, memtop_copyin, high_heap_base;
+uint32_t	bios_basemem, bios_extmem, high_heap_size;
+
+/*
+ * The minimum amount of memory to reserve in bios_extmem for the heap.
+ */
+#define	HEAP_MIN	(3 * 1024 * 1024)
 
 void
 bios_getmem(void)
@@ -48,5 +53,12 @@ bios_getmem(void)
     /* Set memtop to actual top of memory */
     memtop = memtop_copyin = 0x100000 + bios_extmem;
 
+    /*
+     * If we have extended memory, use the last 3MB of 'extended' memory
+     * as a high heap candidate.
+     */
+    if (bios_extmem >= HEAP_MIN) {
+	high_heap_size = HEAP_MIN;
+	high_heap_base = memtop - HEAP_MIN;
+    }
 }    
-

Modified: stable/6/sys/boot/pc98/loader/main.c
==============================================================================
--- stable/6/sys/boot/pc98/loader/main.c	Sat Dec 19 04:33:10 2009	(r200703)
+++ stable/6/sys/boot/pc98/loader/main.c	Sat Dec 19 04:39:21 2009	(r200704)
@@ -96,14 +96,18 @@ main(void)
      */
     bios_getmem();
 
-#ifdef LOADER_BZIP2_SUPPORT
-    heap_top = PTOV(memtop_copyin);
-    memtop_copyin -= 0x300000;
-    heap_bottom = PTOV(memtop_copyin);
-#else
-    heap_top = (void *)bios_basemem;
-    heap_bottom = (void *)end;
+#if defined(LOADER_BZIP2_SUPPORT)
+    if (high_heap_size > 0) {
+	heap_top = PTOV(high_heap_base + high_heap_size);
+	heap_bottom = PTOV(high_heap_base);
+	if (high_heap_base < memtop_copyin)
+	    memtop_copyin = high_heap_base;
+    } else
 #endif
+    {
+	heap_top = (void *)PTOV(bios_basemem);
+	heap_bottom = (void *)end;
+    }
     setheap(heap_bottom, heap_top);
 
     /* 


More information about the svn-src-stable-6 mailing list