Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 19 Dec 2009 04:39:21 +0000 (UTC)
From:      Takahashi Yoshihiro <nyan@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-6@freebsd.org
Subject:   svn commit: r200704 - in stable/6/sys/boot/pc98: libpc98 loader
Message-ID:  <200912190439.nBJ4dLjc019880@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
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);
 
     /* 



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200912190439.nBJ4dLjc019880>