Module Name: src
Committed By: uwe
Date: Wed Jun 6 22:56:25 UTC 2018
Modified Files:
src/sys/arch/macppc/stand/ofwboot: Locore.c Makefile boot.c
Log Message:
Provide an option to use libsa allocator. Not yet enabled. Same
binary code is generated.
To enable uncomment -DHEAP_VARIABLE and comment out alloc.c in the
makefile.
PR port-macppc/44895
To generate a diff of this commit:
cvs rdiff -u -r1.29 -r1.30 src/sys/arch/macppc/stand/ofwboot/Locore.c
cvs rdiff -u -r1.58 -r1.59 src/sys/arch/macppc/stand/ofwboot/Makefile
cvs rdiff -u -r1.28 -r1.29 src/sys/arch/macppc/stand/ofwboot/boot.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/arch/macppc/stand/ofwboot/Locore.c
diff -u src/sys/arch/macppc/stand/ofwboot/Locore.c:1.29 src/sys/arch/macppc/stand/ofwboot/Locore.c:1.30
--- src/sys/arch/macppc/stand/ofwboot/Locore.c:1.29 Fri Apr 22 18:25:41 2016
+++ src/sys/arch/macppc/stand/ofwboot/Locore.c Wed Jun 6 22:56:25 2018
@@ -1,4 +1,4 @@
-/* $NetBSD: Locore.c,v 1.29 2016/04/22 18:25:41 christos Exp $ */
+/* $NetBSD: Locore.c,v 1.30 2018/06/06 22:56:25 uwe Exp $ */
/*
* Copyright (C) 1995, 1996 Wolfgang Solfrank.
@@ -31,6 +31,7 @@
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
+#include <sys/param.h>
#include <lib/libsa/stand.h>
#include <machine/cpu.h>
@@ -43,6 +44,13 @@ static void startup(void *, int, int (*)
__attribute__((__used__));
static void setup(void);
+#ifdef HEAP_VARIABLE
+#ifndef HEAP_SIZE
+#define HEAP_SIZE 0x20000
+#endif
+char *heapspace;
+#endif
+
static int stack[8192/4 + 4] __attribute__((__used__));
#ifdef XCOFF_GLUE
@@ -621,6 +629,15 @@ setup(void)
OF_getprop(chosen, "stdout", &stdout, sizeof(stdout)) !=
sizeof(stdout))
OF_exit();
+
+#ifdef HEAP_VARIABLE
+ heapspace = OF_claim(0, HEAP_SIZE, NBPG);
+ if (heapspace == (char *)-1) {
+ panic("Failed to allocate heap");
+ }
+
+ setheap(heapspace, heapspace + HEAP_SIZE);
+#endif /* HEAP_VARIABLE */
}
void
Index: src/sys/arch/macppc/stand/ofwboot/Makefile
diff -u src/sys/arch/macppc/stand/ofwboot/Makefile:1.58 src/sys/arch/macppc/stand/ofwboot/Makefile:1.59
--- src/sys/arch/macppc/stand/ofwboot/Makefile:1.58 Thu Apr 20 19:09:29 2017
+++ src/sys/arch/macppc/stand/ofwboot/Makefile Wed Jun 6 22:56:25 2018
@@ -1,10 +1,10 @@
-# $NetBSD: Makefile,v 1.58 2017/04/20 19:09:29 uwe Exp $
+# $NetBSD: Makefile,v 1.59 2018/06/06 22:56:25 uwe Exp $
S= ${.CURDIR}/../../../..
PROG= ofwboot
FILES= ${PROG}.elf ${PROG}.xcf
-SRCS= Locore.c boot.c ofdev.c hfs.c net.c netif_of.c alloc.c
+SRCS= Locore.c boot.c ofdev.c hfs.c net.c netif_of.c
XCOFFXTRA= Xcoffxtra.c
XCOFFXTRAOBJ= Xcoffxtra.o
CFLAGS+= -ffreestanding
@@ -16,6 +16,10 @@ CPPFLAGS+= -D_STANDALONE -DSUPPORT_DHCP
CPPFLAGS+= -DSUPPORT_USTARFS -DHAVE_CHANGEDISK_HOOK
DBG= -Os
+# PR port-macppc/44895
+SRCS+= alloc.c # use ./alloc.c
+#CPPFLAGS+= -DHEAP_VARIABLE # use libsa alloc.c
+
LIBCRT0= # nothing
LIBCRTI= # nothing
LIBCRTBEGIN= # nothing
Index: src/sys/arch/macppc/stand/ofwboot/boot.c
diff -u src/sys/arch/macppc/stand/ofwboot/boot.c:1.28 src/sys/arch/macppc/stand/ofwboot/boot.c:1.29
--- src/sys/arch/macppc/stand/ofwboot/boot.c:1.28 Sat Jun 11 06:32:45 2016
+++ src/sys/arch/macppc/stand/ofwboot/boot.c Wed Jun 6 22:56:25 2018
@@ -1,4 +1,4 @@
-/* $NetBSD: boot.c,v 1.28 2016/06/11 06:32:45 dholland Exp $ */
+/* $NetBSD: boot.c,v 1.29 2018/06/06 22:56:25 uwe Exp $ */
/*-
* Copyright (c) 1997 The NetBSD Foundation, Inc.
@@ -181,7 +181,9 @@ chain(boot_entry_t entry, char *args, vo
extern char end[];
int l;
+#if !defined(HEAP_VARIABLE)
freeall();
+#endif
/*
* Stash pointer to end of symbol table after the argument