summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarco Pfatschbacher <mpf@cvs.openbsd.org>2006-09-18 21:14:16 +0000
committerMarco Pfatschbacher <mpf@cvs.openbsd.org>2006-09-18 21:14:16 +0000
commit5bacfd41f84d475baea90a4c186a9a54a33899cc (patch)
tree7cb0d63732bc72d5b0163f89e72079f3aae9c2e1
parent383f84579ee5b18c9aa8f8441c5d6b8325a03463 (diff)
boot(8) ``machine memory'' support for > 4G.
Convert parser to strtoll(3) and use 64bit printf. With help from mickey@ i386 and amd64 tests by me, alpha test by mickey@ OK mickey@, miod@, deraadt@
-rw-r--r--sys/arch/i386/stand/boot/conf.c4
-rw-r--r--sys/arch/i386/stand/libkern/Makefile4
-rw-r--r--sys/arch/i386/stand/libsa/Makefile4
-rw-r--r--sys/arch/i386/stand/libsa/cmd_i386.c8
-rw-r--r--sys/arch/i386/stand/libsa/libsa.h6
-rw-r--r--sys/arch/i386/stand/libsa/memprobe.c15
6 files changed, 18 insertions, 23 deletions
diff --git a/sys/arch/i386/stand/boot/conf.c b/sys/arch/i386/stand/boot/conf.c
index 3e234eb0245..7d8233547e1 100644
--- a/sys/arch/i386/stand/boot/conf.c
+++ b/sys/arch/i386/stand/boot/conf.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: conf.c,v 1.32 2005/05/03 13:18:05 tom Exp $ */
+/* $OpenBSD: conf.c,v 1.33 2006/09/18 21:14:15 mpf Exp $ */
/*
* Copyright (c) 1996 Michael Shalayeff
@@ -43,7 +43,7 @@
#include <dev/cons.h>
#include "debug.h"
-const char version[] = "2.10";
+const char version[] = "2.11";
int debug = 1;
diff --git a/sys/arch/i386/stand/libkern/Makefile b/sys/arch/i386/stand/libkern/Makefile
index b27a7b102a6..5492d91d137 100644
--- a/sys/arch/i386/stand/libkern/Makefile
+++ b/sys/arch/i386/stand/libkern/Makefile
@@ -1,4 +1,4 @@
-# $OpenBSD: Makefile,v 1.1 2005/07/30 14:32:46 millert Exp $
+# $OpenBSD: Makefile,v 1.2 2006/09/18 21:14:15 mpf Exp $
.include "${.CURDIR}/../Makefile.inc"
@@ -13,7 +13,7 @@ NOPROFILE=noprofile
NOPIC=nopic
# kern routines
-SRCS+= moddi3.c qdivrem.c strlcpy.c strlcat.c
+SRCS+= divdi3.c moddi3.c qdivrem.c strlcpy.c strlcat.c
all: ${KERNLIB}
diff --git a/sys/arch/i386/stand/libsa/Makefile b/sys/arch/i386/stand/libsa/Makefile
index 9578d20fd19..e43cf52d7cf 100644
--- a/sys/arch/i386/stand/libsa/Makefile
+++ b/sys/arch/i386/stand/libsa/Makefile
@@ -1,4 +1,4 @@
-# $OpenBSD: Makefile,v 1.45 2005/07/30 14:32:46 millert Exp $
+# $OpenBSD: Makefile,v 1.46 2006/09/18 21:14:15 mpf Exp $
.include "${.CURDIR}/../Makefile.inc"
@@ -27,7 +27,7 @@ CLEANFILES+= unixdev.o unixsys.o nullfs.o
# stand routines
SRCS+= alloc.c exit.c getfile.c gets.c globals.c strcmp.c strlen.c \
strncmp.c memcmp.c memcpy.c memset.c printf.c snprintf.c \
- strerror.c strncpy.c strtol.c ctime.c
+ strerror.c strncpy.c strtol.c strtoll.c ctime.c
# io routines
SRCS+= close.c closeall.c dev.c disklabel.c dkcksum.c fstat.c ioctl.c lseek.c \
diff --git a/sys/arch/i386/stand/libsa/cmd_i386.c b/sys/arch/i386/stand/libsa/cmd_i386.c
index 8e10cb50725..790866d40f7 100644
--- a/sys/arch/i386/stand/libsa/cmd_i386.c
+++ b/sys/arch/i386/stand/libsa/cmd_i386.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: cmd_i386.c,v 1.28 2004/03/09 19:12:12 tom Exp $ */
+/* $OpenBSD: cmd_i386.c,v 1.29 2006/09/18 21:14:15 mpf Exp $ */
/*
* Copyright (c) 1997-1999 Michael Shalayeff
@@ -150,13 +150,13 @@ Xmemory(void)
for (i = 1; i < cmd.argc; i++) {
char *p;
- long addr, size;
+ long long addr, size;
p = cmd.argv[i];
- size = strtol(p + 1, &p, 0);
+ size = strtoll(p + 1, &p, 0);
if (*p && *p == '@')
- addr = strtol(p + 1, NULL, 0);
+ addr = strtoll(p + 1, NULL, 0);
else
addr = 0;
if (addr == 0 && (*p != '@' || size == 0)) {
diff --git a/sys/arch/i386/stand/libsa/libsa.h b/sys/arch/i386/stand/libsa/libsa.h
index 6b2666df199..69a02d9c44a 100644
--- a/sys/arch/i386/stand/libsa/libsa.h
+++ b/sys/arch/i386/stand/libsa/libsa.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: libsa.h,v 1.42 2004/08/21 19:09:42 tom Exp $ */
+/* $OpenBSD: libsa.h,v 1.43 2006/09/18 21:14:15 mpf Exp $ */
/*
* Copyright (c) 1996-1999 Michael Shalayeff
@@ -54,8 +54,8 @@ void cdprobe(void);
void apmprobe(void);
void apmfixmem(void);
void dump_biosmem(bios_memmap_t *);
-int mem_add(long, long);
-int mem_delete(long, long);
+int mem_add(long long, long long);
+int mem_delete(long long, long long);
void mem_pass(void);
void devboot(dev_t, char *);
diff --git a/sys/arch/i386/stand/libsa/memprobe.c b/sys/arch/i386/stand/libsa/memprobe.c
index e3c7a39b2bb..ea7708ca4bc 100644
--- a/sys/arch/i386/stand/libsa/memprobe.c
+++ b/sys/arch/i386/stand/libsa/memprobe.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: memprobe.c,v 1.44 2005/05/03 13:18:04 tom Exp $ */
+/* $OpenBSD: memprobe.c,v 1.45 2006/09/18 21:14:15 mpf Exp $ */
/*
* Copyright (c) 1997-1999 Michael Shalayeff
@@ -369,14 +369,9 @@ dump_biosmem(bios_memmap_t *tm)
if (tm == NULL)
tm = bios_memmap;
- /* libsa printf does not handle quad args, so we use long
- * instead. Note, since we're unlikely to support more than
- * 4G of RAM on a x86 box, this not likely to cause a problem.
- * If/when we do, libsa may need to be updated some...
- */
for (p = tm; p->type != BIOS_MAP_END; p++) {
- printf("Region %ld: type %u at 0x%x for %uKB\n",
- (long)(p - tm), p->type, (u_int)p->addr,
+ printf("Region %ld: type %u at 0x%llx for %uKB\n",
+ (long)(p - tm), p->type, p->addr,
(u_int)(p->size / 1024));
if (p->type == BIOS_MAP_FREE)
@@ -388,7 +383,7 @@ dump_biosmem(bios_memmap_t *tm)
}
int
-mem_delete(long sa, long ea)
+mem_delete(long long sa, long long ea)
{
register bios_memmap_t *p;
@@ -425,7 +420,7 @@ mem_delete(long sa, long ea)
}
int
-mem_add(long sa, long ea)
+mem_add(long long sa, long long ea)
{
register bios_memmap_t *p;