diff options
author | Marco Pfatschbacher <mpf@cvs.openbsd.org> | 2006-09-18 21:14:16 +0000 |
---|---|---|
committer | Marco Pfatschbacher <mpf@cvs.openbsd.org> | 2006-09-18 21:14:16 +0000 |
commit | 5bacfd41f84d475baea90a4c186a9a54a33899cc (patch) | |
tree | 7cb0d63732bc72d5b0163f89e72079f3aae9c2e1 | |
parent | 383f84579ee5b18c9aa8f8441c5d6b8325a03463 (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.c | 4 | ||||
-rw-r--r-- | sys/arch/i386/stand/libkern/Makefile | 4 | ||||
-rw-r--r-- | sys/arch/i386/stand/libsa/Makefile | 4 | ||||
-rw-r--r-- | sys/arch/i386/stand/libsa/cmd_i386.c | 8 | ||||
-rw-r--r-- | sys/arch/i386/stand/libsa/libsa.h | 6 | ||||
-rw-r--r-- | sys/arch/i386/stand/libsa/memprobe.c | 15 |
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; |