diff options
| author | eeh <eeh@NetBSD.org> | 1998-08-13 02:10:37 +0000 |
|---|---|---|
| committer | eeh <eeh@NetBSD.org> | 1998-08-13 02:10:37 +0000 |
| commit | a2dd74ed791b6de71af4e5878486b5613375cb4e (patch) | |
| tree | aa2625388cc5681096b3c307d42be0f08b784f07 /sys | |
| parent | c987d231462ae4d94029c65fe37a562d67fdf4ee (diff) | |
Merge paddr_t changes into the main branch.
Diffstat (limited to 'sys')
174 files changed, 2365 insertions, 1981 deletions
diff --git a/sys/arch/alpha/include/types.h b/sys/arch/alpha/include/types.h index c9f9c222cf4..d23efe52f1a 100644 --- a/sys/arch/alpha/include/types.h +++ b/sys/arch/alpha/include/types.h @@ -1,4 +1,4 @@ -/* $NetBSD: types.h,v 1.10 1998/06/14 20:09:22 kleink Exp $ */ +/* $NetBSD: types.h,v 1.11 1998/08/13 02:10:37 eeh Exp $ */ /*- * Copyright (c) 1990, 1993 @@ -46,9 +46,17 @@ typedef struct label_t { } label_t; #endif +/* NB: This should probably be if defined(_KERNEL) */ +#if !defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE) typedef unsigned long vm_offset_t; typedef unsigned long vm_size_t; +typedef vm_offset_t paddr_t; +typedef vm_size_t psize_t; +typedef vm_offset_t vaddr_t; +typedef vm_size_t vsize_t; +#endif + /* * Basic integral types. Omit the typedef if * not possible for a machine/compiler combination. diff --git a/sys/arch/alpha/isa/isapnp_machdep.c b/sys/arch/alpha/isa/isapnp_machdep.c index 73b2011202a..9dc8a93d659 100644 --- a/sys/arch/alpha/isa/isapnp_machdep.c +++ b/sys/arch/alpha/isa/isapnp_machdep.c @@ -1,4 +1,4 @@ -/* $NetBSD: isapnp_machdep.c,v 1.1 1998/07/31 04:38:04 thorpej Exp $ */ +/* $NetBSD: isapnp_machdep.c,v 1.2 1998/08/13 02:10:37 eeh Exp $ */ /*- * Copyright (c) 1996, 1997, 1998 The NetBSD Foundation, Inc. diff --git a/sys/arch/alpha/isa/isapnp_machdep.h b/sys/arch/alpha/isa/isapnp_machdep.h index 92ec746af48..cf54d0971f7 100644 --- a/sys/arch/alpha/isa/isapnp_machdep.h +++ b/sys/arch/alpha/isa/isapnp_machdep.h @@ -1,4 +1,4 @@ -/* $NetBSD: isapnp_machdep.h,v 1.1 1998/07/31 04:38:04 thorpej Exp $ */ +/* $NetBSD: isapnp_machdep.h,v 1.2 1998/08/13 02:10:37 eeh Exp $ */ /*- * Copyright (c) 1996, 1997 The NetBSD Foundation, Inc. diff --git a/sys/arch/arm32/include/types.h b/sys/arch/arm32/include/types.h index 8d047c53031..cf5929da3aa 100644 --- a/sys/arch/arm32/include/types.h +++ b/sys/arch/arm32/include/types.h @@ -1,4 +1,4 @@ -/* $NetBSD: types.h,v 1.6 1998/06/14 20:09:22 kleink Exp $ */ +/* $NetBSD: types.h,v 1.7 1998/08/13 02:10:37 eeh Exp $ */ /* * Copyright (c) 1990 The Regents of the University of California. @@ -46,9 +46,17 @@ typedef struct label_t { /* Used by setjmp & longjmp */ } label_t; #endif +/* NB: This should probably be if defined(_KERNEL) */ +#if !defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE) typedef unsigned long vm_offset_t; typedef unsigned long vm_size_t; +typedef vm_offset_t paddr_t; +typedef vm_size_t psize_t; +typedef vm_offset_t vaddr_t; +typedef vm_size_t vsize_t; +#endif + /* * Basic integral types. Omit the typedef if * not possible for a machine/compiler combination. diff --git a/sys/arch/arm32/isa/isapnp_machdep.c b/sys/arch/arm32/isa/isapnp_machdep.c index 5591cad8d94..5f589fc09b2 100644 --- a/sys/arch/arm32/isa/isapnp_machdep.c +++ b/sys/arch/arm32/isa/isapnp_machdep.c @@ -1,4 +1,4 @@ -/* $NetBSD: isapnp_machdep.c,v 1.1 1998/07/31 04:48:42 thorpej Exp $ */ +/* $NetBSD: isapnp_machdep.c,v 1.2 1998/08/13 02:10:37 eeh Exp $ */ /*- * Copyright (c) 1996, 1997 The NetBSD Foundation, Inc. diff --git a/sys/arch/arm32/isa/isapnp_machdep.h b/sys/arch/arm32/isa/isapnp_machdep.h index 3cddc626b5f..ed413f89054 100644 --- a/sys/arch/arm32/isa/isapnp_machdep.h +++ b/sys/arch/arm32/isa/isapnp_machdep.h @@ -1,4 +1,4 @@ -/* $NetBSD: isapnp_machdep.h,v 1.1 1998/07/31 04:48:42 thorpej Exp $ */ +/* $NetBSD: isapnp_machdep.h,v 1.2 1998/08/13 02:10:38 eeh Exp $ */ /*- * Copyright (c) 1996, 1997 The NetBSD Foundation, Inc. diff --git a/sys/arch/bebox/isa/isapnp_machdep.c b/sys/arch/bebox/isa/isapnp_machdep.c index d58288dcb94..f519fa9ee79 100644 --- a/sys/arch/bebox/isa/isapnp_machdep.c +++ b/sys/arch/bebox/isa/isapnp_machdep.c @@ -1,4 +1,4 @@ -/* $NetBSD: isapnp_machdep.c,v 1.1 1998/07/31 04:54:38 thorpej Exp $ */ +/* $NetBSD: isapnp_machdep.c,v 1.2 1998/08/13 02:10:38 eeh Exp $ */ /*- * Copyright (c) 1996, 1997 The NetBSD Foundation, Inc. diff --git a/sys/arch/bebox/isa/isapnp_machdep.h b/sys/arch/bebox/isa/isapnp_machdep.h index 987b7bbb40f..ed413f89054 100644 --- a/sys/arch/bebox/isa/isapnp_machdep.h +++ b/sys/arch/bebox/isa/isapnp_machdep.h @@ -1,4 +1,4 @@ -/* $NetBSD: isapnp_machdep.h,v 1.1 1998/07/31 04:54:38 thorpej Exp $ */ +/* $NetBSD: isapnp_machdep.h,v 1.2 1998/08/13 02:10:38 eeh Exp $ */ /*- * Copyright (c) 1996, 1997 The NetBSD Foundation, Inc. diff --git a/sys/arch/bebox/isa/wd.c b/sys/arch/bebox/isa/wd.c index 63285f4f1cf..1d3a152984c 100644 --- a/sys/arch/bebox/isa/wd.c +++ b/sys/arch/bebox/isa/wd.c @@ -1,4 +1,4 @@ -/* $NetBSD: wd.c,v 1.4 1998/01/12 18:18:10 thorpej Exp $ */ +/* $NetBSD: wd.c,v 1.5 1998/08/13 02:10:38 eeh Exp $ */ /* * Copyright (c) 1994, 1995 Charles M. Hannum. All rights reserved. diff --git a/sys/arch/i386/include/types.h b/sys/arch/i386/include/types.h index cdeeed7a289..f4ff5ba790a 100644 --- a/sys/arch/i386/include/types.h +++ b/sys/arch/i386/include/types.h @@ -1,4 +1,4 @@ -/* $NetBSD: types.h,v 1.17 1998/06/14 20:09:23 kleink Exp $ */ +/* $NetBSD: types.h,v 1.18 1998/08/13 02:10:38 eeh Exp $ */ /*- * Copyright (c) 1990 The Regents of the University of California. @@ -46,9 +46,17 @@ typedef struct label_t { } label_t; #endif +/* NB: This should probably be if defined(_KERNEL) */ +#if !defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE) typedef unsigned long vm_offset_t; typedef unsigned long vm_size_t; +typedef vm_offset_t paddr_t; +typedef vm_size_t psize_t; +typedef vm_offset_t vaddr_t; +typedef vm_size_t vsize_t; +#endif + /* * Basic integral types. Omit the typedef if * not possible for a machine/compiler combination. diff --git a/sys/arch/m68k/include/types.h b/sys/arch/m68k/include/types.h index 7bd70d56deb..b049e48e403 100644 --- a/sys/arch/m68k/include/types.h +++ b/sys/arch/m68k/include/types.h @@ -1,4 +1,4 @@ -/* $NetBSD: types.h,v 1.11 1998/06/14 20:09:23 kleink Exp $ */ +/* $NetBSD: types.h,v 1.12 1998/08/13 02:10:38 eeh Exp $ */ /*- * Copyright (c) 1990 The Regents of the University of California. @@ -45,9 +45,17 @@ typedef struct label_t { /* consistent with HP-UX */ } label_t; #endif +/* NB: This should probably be if defined(_KERNEL) */ +#if !defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE) typedef unsigned long vm_offset_t; typedef unsigned long vm_size_t; +typedef vm_offset_t paddr_t; +typedef vm_size_t psize_t; +typedef vm_offset_t vaddr_t; +typedef vm_size_t vsize_t; +#endif + /* * Basic integral types. Omit the typedef if * not possible for a machine/compiler combination. diff --git a/sys/arch/mips/include/types.h b/sys/arch/mips/include/types.h index f762704f3f7..afee10c8b98 100644 --- a/sys/arch/mips/include/types.h +++ b/sys/arch/mips/include/types.h @@ -1,4 +1,4 @@ -/* $NetBSD: types.h,v 1.15 1998/06/14 20:09:23 kleink Exp $ */ +/* $NetBSD: types.h,v 1.16 1998/08/13 02:10:39 eeh Exp $ */ /*- * Copyright (c) 1992, 1993 @@ -49,9 +49,17 @@ typedef struct label_t { } label_t; #endif +/* NB: This should probably be if defined(_KERNEL) */ +#if !defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE) typedef unsigned long vm_offset_t; typedef unsigned long vm_size_t; +typedef vm_offset_t paddr_t; +typedef vm_size_t psize_t; +typedef vm_offset_t vaddr_t; +typedef vm_size_t vsize_t; +#endif + /* * Basic integral types. Omit the typedef if * not possible for a machine/compiler combination. diff --git a/sys/arch/pc532/include/types.h b/sys/arch/pc532/include/types.h index 625efe97dd8..97b23993cc9 100644 --- a/sys/arch/pc532/include/types.h +++ b/sys/arch/pc532/include/types.h @@ -1,4 +1,4 @@ -/* $NetBSD: types.h,v 1.19 1998/06/14 20:09:23 kleink Exp $ */ +/* $NetBSD: types.h,v 1.20 1998/08/13 02:10:39 eeh Exp $ */ /*- * Copyright (c) 1990 The Regents of the University of California. @@ -46,9 +46,17 @@ typedef struct label_t { } label_t; #endif +/* NB: This should probably be if defined(_KERNEL) */ +#if !defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE) typedef unsigned long vm_offset_t; typedef unsigned long vm_size_t; +typedef vm_offset_t paddr_t; +typedef vm_size_t psize_t; +typedef vm_offset_t vaddr_t; +typedef vm_size_t vsize_t; +#endif + /* * Basic integral types. Omit the typedef if * not possible for a machine/compiler combination. diff --git a/sys/arch/powerpc/include/types.h b/sys/arch/powerpc/include/types.h index 56bb965a9d0..c81af95cc15 100644 --- a/sys/arch/powerpc/include/types.h +++ b/sys/arch/powerpc/include/types.h @@ -1,4 +1,4 @@ -/* $NetBSD: types.h,v 1.7 1998/06/14 20:09:23 kleink Exp $ */ +/* $NetBSD: types.h,v 1.8 1998/08/13 02:10:39 eeh Exp $ */ /*- * Copyright (C) 1995 Wolfgang Solfrank. @@ -42,9 +42,17 @@ typedef struct label_t { } label_t; #endif +/* NB: This should probably be if defined(_KERNEL) */ +#if !defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE) typedef unsigned long vm_offset_t; typedef unsigned long vm_size_t; +typedef vm_offset_t paddr_t; +typedef vm_size_t psize_t; +typedef vm_offset_t vaddr_t; +typedef vm_size_t vsize_t; +#endif + /* * Basic integral types. Omit the typedef if * not possible for a machine/compiler combination. diff --git a/sys/arch/sparc/dev/isp_sbus.c b/sys/arch/sparc/dev/isp_sbus.c index 3a08682fd91..652f75858f5 100644 --- a/sys/arch/sparc/dev/isp_sbus.c +++ b/sys/arch/sparc/dev/isp_sbus.c @@ -1,5 +1,6 @@ -/* $NetBSD: isp_sbus.c,v 1.17 1998/08/12 00:03:55 mjacob Exp $ */ -/* $Id: isp_sbus.c,v 1.17 1998/08/12 00:03:55 mjacob Exp $ */ +/* $NetBSD: isp_sbus.c,v 1.18 1998/08/13 02:10:39 eeh Exp $ */ +/* $Id: isp_sbus.c,v 1.18 1998/08/13 02:10:39 eeh Exp $ */ + /* * SBus specific probe and attach routines for Qlogic ISP SCSI adapters. * diff --git a/sys/arch/sparc/include/types.h b/sys/arch/sparc/include/types.h index a9644f12c10..1761617145a 100644 --- a/sys/arch/sparc/include/types.h +++ b/sys/arch/sparc/include/types.h @@ -1,4 +1,4 @@ -/* $NetBSD: types.h,v 1.13 1998/06/14 20:09:23 kleink Exp $ */ +/* $NetBSD: types.h,v 1.14 1998/08/13 02:10:39 eeh Exp $ */ /* * Copyright (c) 1992, 1993 @@ -55,9 +55,17 @@ typedef struct label_t { } label_t; #endif +/* NB: This should probably be if defined(_KERNEL) */ +#if !defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE) typedef unsigned long vm_offset_t; typedef unsigned long vm_size_t; +typedef vm_offset_t paddr_t; +typedef vm_size_t psize_t; +typedef vm_offset_t vaddr_t; +typedef vm_size_t vsize_t; +#endif + /* * Basic integral types. Omit the typedef if * not possible for a machine/compiler combination. diff --git a/sys/arch/sparc64/Makefile b/sys/arch/sparc64/Makefile index 155091a4e1d..51f68f34ad4 100644 --- a/sys/arch/sparc64/Makefile +++ b/sys/arch/sparc64/Makefile @@ -1,4 +1,4 @@ -# $NetBSD: Makefile,v 1.1.1.1 1998/06/20 04:58:50 eeh Exp $ +# $NetBSD: Makefile,v 1.2 1998/08/13 02:10:40 eeh Exp $ # Makefile for sparc64 tags file and boot blocks @@ -22,6 +22,6 @@ links: cd $$i && rm -f tags; ln -s ../tags tags; done -SUBDIR= stand +SUBDIR= include stand .include <bsd.subdir.mk> diff --git a/sys/arch/sparc64/conf/Makefile.sparc64 b/sys/arch/sparc64/conf/Makefile.sparc64 index d3af32cac74..42cb7538827 100644 --- a/sys/arch/sparc64/conf/Makefile.sparc64 +++ b/sys/arch/sparc64/conf/Makefile.sparc64 @@ -1,4 +1,4 @@ -# $NetBSD: Makefile.sparc64,v 1.2 1998/07/30 13:34:09 mrg Exp $ +# $NetBSD: Makefile.sparc64,v 1.3 1998/08/13 02:10:40 eeh Exp $ # Makefile for NetBSD # @@ -38,7 +38,7 @@ INCLUDES= -I. -I$S/arch -I$S -nostdinc CPPFLAGS= ${INCLUDES} ${IDENT} ${PARAM} -D_KERNEL -U__SVR4 -U__svr4__ CWARNFLAGS= -Wimplicit -Wreturn-type -Wunused -Wswitch -Wcomment -Wtrigraphs -Wchar-subscripts -Wuninitialized -Wparentheses -Wstrict-prototypes -Wmissing-prototypes -D__NetBSD__ #CWARNFLAGS= -Werror -Wall -Wstrict-prototypes -Wmissing-prototypes -CFLAGS= ${DEBUG} ${CWARNFLAGS} -O2 -Wa,-Av9a +CFLAGS= ${DEBUG} ${CWARNFLAGS} -O2 -Wa,-Av9a -mno-fpu AFLAGS= -x assembler-with-cpp -Wa,-Av9a -traditional-cpp -D_LOCORE LINKFLAGS= -N -p -Ttext f8000000 -e start >lderr #STRIPFLAGS= -d diff --git a/sys/arch/sparc64/conf/NONPLUS b/sys/arch/sparc64/conf/NONPLUS index 3ada7ab512d..44d30b2d209 100644 --- a/sys/arch/sparc64/conf/NONPLUS +++ b/sys/arch/sparc64/conf/NONPLUS @@ -1,4 +1,4 @@ -# $NetBSD: NONPLUS,v 1.4 1998/07/28 04:48:04 eeh Exp $ +# $NetBSD: NONPLUS,v 1.5 1998/08/13 02:10:40 eeh Exp $ include "arch/sparc64/conf/std.sparc64" @@ -36,6 +36,7 @@ options UVM # UVM VM options UVM_PAGE_TRKOWN options UVMHIST #options UVMHIST_PRINT +#options PMAP_NEW # new pmap interface; requires UVM ## System call tracing (see ktrace(1)). options KTRACE @@ -94,7 +95,7 @@ options DEBUG ## Enable printing of spl() transisions -- really slow ## -options SPLDEBUG +#options SPLDEBUG ## Make SCSI error messages more verbose when explaining their meanings. options SCSIVERBOSE diff --git a/sys/arch/sparc64/dev/bt_subr.c b/sys/arch/sparc64/dev/bt_subr.c index a5ab7c86f6f..f00619d2569 100644 --- a/sys/arch/sparc64/dev/bt_subr.c +++ b/sys/arch/sparc64/dev/bt_subr.c @@ -1,4 +1,4 @@ -/* $NetBSD: bt_subr.c,v 1.1.1.1 1998/06/20 04:58:50 eeh Exp $ */ +/* $NetBSD: bt_subr.c,v 1.2 1998/08/13 02:10:40 eeh Exp $ */ /* * Copyright (c) 1993 @@ -101,8 +101,9 @@ bt_putcmap(p, cm, cmsize) register u_int i, start, count; register u_char *cp; - start = fuword(&p->index); - count = fuword(&p->count); + /* Apparently the ioctl interface does a copyin of this structure for us. */ + start = p->index; + count = p->count; if (start >= cmsize || start + count > cmsize) return (EINVAL); #if defined(UVM) diff --git a/sys/arch/sparc64/dev/bwtwo.c b/sys/arch/sparc64/dev/bwtwo.c index b3e2915c0a4..94f9b53a155 100644 --- a/sys/arch/sparc64/dev/bwtwo.c +++ b/sys/arch/sparc64/dev/bwtwo.c @@ -1,4 +1,4 @@ -/* $NetBSD: bwtwo.c,v 1.1.1.1 1998/06/20 04:58:50 eeh Exp $ */ +/* $NetBSD: bwtwo.c,v 1.2 1998/08/13 02:10:40 eeh Exp $ */ /* * Copyright (c) 1996 Jason R. Thorpe. All rights reserved. diff --git a/sys/arch/sparc64/dev/cgeight.c b/sys/arch/sparc64/dev/cgeight.c index 30e88649e9c..0da0badbe68 100644 --- a/sys/arch/sparc64/dev/cgeight.c +++ b/sys/arch/sparc64/dev/cgeight.c @@ -1,4 +1,4 @@ -/* $NetBSD: cgeight.c,v 1.1.1.1 1998/06/20 04:58:50 eeh Exp $ */ +/* $NetBSD: cgeight.c,v 1.2 1998/08/13 02:10:40 eeh Exp $ */ /* * Copyright (c) 1996 Jason R. Thorpe. All rights reserved. diff --git a/sys/arch/sparc64/dev/cgfour.c b/sys/arch/sparc64/dev/cgfour.c index 31a7380bfb0..5fc69f287fd 100644 --- a/sys/arch/sparc64/dev/cgfour.c +++ b/sys/arch/sparc64/dev/cgfour.c @@ -1,4 +1,4 @@ -/* $NetBSD: cgfour.c,v 1.1.1.1 1998/06/20 04:58:50 eeh Exp $ */ +/* $NetBSD: cgfour.c,v 1.2 1998/08/13 02:10:41 eeh Exp $ */ /* * Copyright (c) 1996 Jason R. Thorpe. All rights reserved. diff --git a/sys/arch/sparc64/dev/cgfourteen.c b/sys/arch/sparc64/dev/cgfourteen.c index 27092f3f395..b4256c96dc9 100644 --- a/sys/arch/sparc64/dev/cgfourteen.c +++ b/sys/arch/sparc64/dev/cgfourteen.c @@ -1,4 +1,4 @@ -/* $NetBSD: cgfourteen.c,v 1.1.1.1 1998/06/20 04:58:50 eeh Exp $ */ +/* $NetBSD: cgfourteen.c,v 1.2 1998/08/13 02:10:41 eeh Exp $ */ /* * Copyright (c) 1996 diff --git a/sys/arch/sparc64/dev/cgsix.c b/sys/arch/sparc64/dev/cgsix.c index ed7d965b5ba..e718dc8231b 100644 --- a/sys/arch/sparc64/dev/cgsix.c +++ b/sys/arch/sparc64/dev/cgsix.c @@ -1,4 +1,4 @@ -/* $NetBSD: cgsix.c,v 1.1.1.1 1998/06/20 04:58:50 eeh Exp $ */ +/* $NetBSD: cgsix.c,v 1.2 1998/08/13 02:10:41 eeh Exp $ */ /*- * Copyright (c) 1998 The NetBSD Foundation, Inc. @@ -374,8 +374,8 @@ cgsixioctl(dev, cmd, data, flags, p) cc->cc_size = p->size; count = p->size.y * 32 / NBBY; bzero((caddr_t)cc->cc_bits, sizeof cc->cc_bits); - bcopy(p->mask, (caddr_t)cc->cc_bits[0], count); - bcopy(p->image, (caddr_t)cc->cc_bits[1], count); + copyin(p->mask, (caddr_t)cc->cc_bits[0], count); + copyin(p->image, (caddr_t)cc->cc_bits[1], count); cg6_loadcursor(sc); } break; @@ -631,7 +631,6 @@ cgsixmmap(dev, off, prot) sc->sc_paddr+u+mo->mo_physoff, BUS_SPACE_MAP_LINEAR, &bh)) return (-1); - return ((int)bh); } } diff --git a/sys/arch/sparc64/dev/cgthree.c b/sys/arch/sparc64/dev/cgthree.c index 89ef46f44cf..ba52bd532e9 100644 --- a/sys/arch/sparc64/dev/cgthree.c +++ b/sys/arch/sparc64/dev/cgthree.c @@ -1,4 +1,4 @@ -/* $NetBSD: cgthree.c,v 1.1.1.1 1998/06/20 04:58:51 eeh Exp $ */ +/* $NetBSD: cgthree.c,v 1.2 1998/08/13 02:10:41 eeh Exp $ */ /* * Copyright (c) 1992, 1993 diff --git a/sys/arch/sparc64/dev/cgtwo.c b/sys/arch/sparc64/dev/cgtwo.c index 37719ab6d82..3d15231b5a0 100644 --- a/sys/arch/sparc64/dev/cgtwo.c +++ b/sys/arch/sparc64/dev/cgtwo.c @@ -1,4 +1,4 @@ -/* $NetBSD: cgtwo.c,v 1.1.1.1 1998/06/20 04:58:51 eeh Exp $ */ +/* $NetBSD: cgtwo.c,v 1.2 1998/08/13 02:10:41 eeh Exp $ */ /* * Copyright (c) 1992, 1993 diff --git a/sys/arch/sparc64/dev/dma.c b/sys/arch/sparc64/dev/dma.c index 25d6c2c9e35..4fc39a727bf 100644 --- a/sys/arch/sparc64/dev/dma.c +++ b/sys/arch/sparc64/dev/dma.c @@ -1,4 +1,4 @@ -/* $NetBSD: dma.c,v 1.2 1998/07/07 03:05:02 eeh Exp $ */ +/* $NetBSD: dma.c,v 1.3 1998/08/13 02:10:41 eeh Exp $ */ /* * Copyright (c) 1994 Paul Kranenburg. All rights reserved. * Copyright (c) 1994 Peter Galbavy. All rights reserved. @@ -167,8 +167,8 @@ dmaattach_sbus(parent, self, aux) sc->sc_dmatag = sa->sa_dmatag; /* Map registers */ - if (sa->sa_promvaddr != 0) - sc->sc_regs = (struct dma_regs *)sa->sa_promvaddr; + if (sa->sa_promvaddrs != 0) + sc->sc_regs = (struct dma_regs *)sa->sa_promvaddrs[0]; else { if (sbus_bus_map(sa->sa_bustag, sa->sa_slot, @@ -247,6 +247,7 @@ dmaattach_sbus(parent, self, aux) sbus_setup_attach_args((struct sbus_softc *)parent, sbt, sc->sc_dmatag, node, bp, &sa); (void) config_found(&sc->sc_dev, (void *)&sa, dmaprint); + sbus_destroy_attach_args(&sa); } } @@ -513,10 +514,10 @@ dma_setup(sc, addr, len, datain, dmasize) if (bus_dmamap_load(sc->sc_dmatag, sc->sc_dmamap, *sc->sc_dmaaddr, sc->sc_dmasize, NULL /* This should already be mapped into the kernel */, - BUS_DMA_NOWAIT|BUS_DMA_WRITE|BUS_DMA_CACHE) + BUS_DMA_NOWAIT) || (sc->sc_dmamap->dm_segs[0].ds_addr == NULL)) panic("dma: cannot allocate DVMA address"); - DMADDR(sc) = sc->sc_dvmakaddr = sc->sc_dmamap->dm_segs[0].ds_addr; + DMADDR(sc) = sc->sc_dvmakaddr = (caddr_t)sc->sc_dmamap->dm_segs[0].ds_addr; #endif } else { DMADDR(sc) = *sc->sc_dmaaddr; @@ -658,8 +659,8 @@ espdmaintr(arg) #ifndef BUS_DMA if (sc->sc_dvmakaddr) - dvma_mapout((vm_offset_t)sc->sc_dvmakaddr, - (vm_offset_t)sc->sc_dvmaaddr, sc->sc_dmasize); + dvma_mapout((vaddr_t)sc->sc_dvmakaddr, + (vaddr_t)sc->sc_dvmaaddr, sc->sc_dmasize); #else if (sc->sc_dvmakaddr) bus_dmamap_unload(sc->sc_dmatag, sc->sc_dmamap); diff --git a/sys/arch/sparc64/dev/esp.c b/sys/arch/sparc64/dev/esp.c index 2bb8220620e..20308f67e00 100644 --- a/sys/arch/sparc64/dev/esp.c +++ b/sys/arch/sparc64/dev/esp.c @@ -1,4 +1,4 @@ -/* $NetBSD: esp.c,v 1.2 1998/07/07 03:05:02 eeh Exp $ */ +/* $NetBSD: esp.c,v 1.3 1998/08/13 02:10:41 eeh Exp $ */ /*- * Copyright (c) 1997 The NetBSD Foundation, Inc. @@ -330,8 +330,8 @@ espattach_dma(parent, self, aux) * Map my registers in, if they aren't already in virtual * address space. */ - if (sa->sa_promvaddr) - esc->sc_reg = (volatile u_char *) sa->sa_promvaddr; + if (sa->sa_npromvaddrs) + esc->sc_reg = (volatile u_char *) sa->sa_promvaddrs[0]; else { bus_space_handle_t bh; if (sbus_bus_map(sa->sa_bustag, sa->sa_slot, diff --git a/sys/arch/sparc64/dev/fb.c b/sys/arch/sparc64/dev/fb.c index 12567baef43..195a121a13a 100644 --- a/sys/arch/sparc64/dev/fb.c +++ b/sys/arch/sparc64/dev/fb.c @@ -1,4 +1,4 @@ -/* $NetBSD: fb.c,v 1.1.1.1 1998/06/20 04:58:51 eeh Exp $ */ +/* $NetBSD: fb.c,v 1.2 1998/08/13 02:10:42 eeh Exp $ */ /* * Copyright (c) 1992, 1993 @@ -194,7 +194,7 @@ fbmmap(dev, off, prot) int (*map)__P((dev_t, int, int)) = devfb->fb_driver->fbd_mmap; if (map == NULL) - return (-1); + return (-1LL); return (map(dev, off, prot)); } diff --git a/sys/arch/sparc64/dev/if_ie.c b/sys/arch/sparc64/dev/if_ie.c index 17c8075ee36..51e9e4d661a 100644 --- a/sys/arch/sparc64/dev/if_ie.c +++ b/sys/arch/sparc64/dev/if_ie.c @@ -1,4 +1,4 @@ -/* $NetBSD: if_ie.c,v 1.3 1998/07/05 06:49:08 jonathan Exp $ */ +/* $NetBSD: if_ie.c,v 1.4 1998/08/13 02:10:42 eeh Exp $ */ /*- * Copyright (c) 1993, 1994, 1995 Charles Hannum. @@ -520,7 +520,7 @@ ieattach(parent, self, aux) case BUS_OBIO: { volatile struct ieob *ieo; - vm_offset_t pa; + paddr_t pa; sc->hard_type = IE_OBIO; sc->reset_586 = ie_obreset; @@ -537,8 +537,8 @@ ieattach(parent, self, aux) * XXX */ - ie_map = vm_map_create(pmap_kernel(), (vm_offset_t)IEOB_ADBASE, - (vm_offset_t)IEOB_ADBASE + sc->sc_msize, 1); + ie_map = vm_map_create(pmap_kernel(), (vaddr_t)IEOB_ADBASE, + (vaddr_t)IEOB_ADBASE + sc->sc_msize, 1); if (ie_map == NULL) panic("ie_map"); sc->sc_maddr = (caddr_t) kmem_alloc(ie_map, sc->sc_msize); if (sc->sc_maddr == NULL) panic("ie kmem_alloc"); @@ -562,10 +562,10 @@ ieattach(parent, self, aux) * to IEOB_ADBASE to be safe. */ - pa = pmap_extract(pmap_kernel(), (vm_offset_t)sc->sc_maddr); + pa = pmap_extract(pmap_kernel(), (vaddr_t)sc->sc_maddr); if (pa == 0) panic("ie pmap_extract"); pmap_enter(pmap_kernel(), trunc_page(IEOB_ADBASE+IE_SCP_ADDR), - (vm_offset_t)pa | PMAP_NC /*| PMAP_IOC*/, + (paddr_t)pa | PMAP_NC /*| PMAP_IOC*/, VM_PROT_READ | VM_PROT_WRITE, 1); sc->scp = (volatile struct ie_sys_conf_ptr *) diff --git a/sys/arch/sparc64/dev/if_le.c b/sys/arch/sparc64/dev/if_le.c index 3a3b5d739ec..4465809d46b 100644 --- a/sys/arch/sparc64/dev/if_le.c +++ b/sys/arch/sparc64/dev/if_le.c @@ -1,4 +1,4 @@ -/* $NetBSD: if_le.c,v 1.3 1998/07/21 17:36:04 drochner Exp $ */ +/* $NetBSD: if_le.c,v 1.4 1998/08/13 02:10:42 eeh Exp $ */ /*- * Copyright (c) 1997 The NetBSD Foundation, Inc. @@ -102,10 +102,11 @@ #include <machine/autoconf.h> #include <machine/cpu.h> -#include <sparc64/dev/sbusvar.h> +#include <dev/sbus/sbusvar.h> #include <sparc64/dev/dmareg.h> #include <sparc64/dev/dmavar.h> -#include <sparc64/dev/lebuffervar.h> + +#include <dev/sbus/lebuffervar.h> #include <dev/ic/lancereg.h> #include <dev/ic/lancevar.h> @@ -180,9 +181,11 @@ struct cfattach le_ca = { sizeof(struct le_softc), lematch_byname, leattach_ledma }; +#if 0 struct cfattach le_lebuffer_ca = { sizeof(struct le_softc), lematch_byname, leattach_lebuffer }; +#endif struct cfattach le_obio_ca = { sizeof(struct le_softc), lematch_obio, leattach_obio @@ -578,6 +581,7 @@ leattach_ledma(parent, self, aux) #endif } +#if 0 void leattach_lebuffer(parent, self, aux) struct device *parent, *self; @@ -622,6 +626,7 @@ leattach_lebuffer(parent, self, aux) leattach(lesc, sa->sa_pri); } +#endif void leattach_obio(parent, self, aux) @@ -678,7 +683,7 @@ leattach(lesc, pri) } error = bus_dmamem_map(lesc->sc_dmatag, &seg, rseg, MEMSIZE, (caddr_t *)&sc->sc_mem, - BUS_DMA_NOWAIT|BUS_DMA_COHERENT|BUS_DMA_WRITE|BUS_DMA_CACHE); + BUS_DMA_NOWAIT|BUS_DMA_COHERENT); if (error) { printf("if_le: DMA buffer map error %d\n", error); return; diff --git a/sys/arch/sparc64/dev/isp_sbus.c b/sys/arch/sparc64/dev/isp_sbus.c index 50fe5208c9e..4810f98fcf9 100644 --- a/sys/arch/sparc64/dev/isp_sbus.c +++ b/sys/arch/sparc64/dev/isp_sbus.c @@ -1,4 +1,4 @@ -/* $NetBSD: isp_sbus.c,v 1.1.1.1 1998/06/20 04:58:51 eeh Exp $ */ +/* $NetBSD: isp_sbus.c,v 1.2 1998/08/13 02:10:42 eeh Exp $ */ /* * SBus specific probe and attach routines for Qlogic ISP SCSI adapters. @@ -81,7 +81,7 @@ struct isp_sbussoftc { volatile u_char *sbus_reg; int sbus_node; int sbus_pri; - vm_offset_t sbus_kdma_allocs[RQUEST_QUEUE_LEN]; + vaddr_t sbus_kdma_allocs[RQUEST_QUEUE_LEN]; }; @@ -260,7 +260,7 @@ isp_sbus_dmasetup(isp, xs, rq, iptrp, optr) u_int8_t optr; { struct isp_sbussoftc *sbc = (struct isp_sbussoftc *) isp; - vm_offset_t kdvma; + vaddr_t kdvma; int dosleep = (xs->flags & SCSI_NOSLEEP) != 0; if (xs->datalen == 0) { @@ -275,16 +275,16 @@ isp_sbus_dmasetup(isp, xs, rq, iptrp, optr) /* NOTREACHED */ } if (CPU_ISSUN4M) { - kdvma = (vm_offset_t) + kdvma = (vaddr_t) kdvma_mapin((caddr_t)xs->data, xs->datalen, dosleep); - if (kdvma == (vm_offset_t) 0) { + if (kdvma == (vaddr_t) 0) { return (1); } } else { - kdvma = (vm_offset_t) xs->data; + kdvma = (vaddr_t) xs->data; } - if (sbc->sbus_kdma_allocs[rq->req_handle] != (vm_offset_t) 0) { + if (sbc->sbus_kdma_allocs[rq->req_handle] != (vaddr_t) 0) { panic("%s: kdma handle already allocated\n", isp->isp_name); /* NOTREACHED */ } @@ -307,7 +307,7 @@ isp_sbus_dmateardown(isp, xs, handle) u_int32_t handle; { struct isp_sbussoftc *sbc = (struct isp_sbussoftc *) isp; - vm_offset_t kdvma; + vaddr_t kdvma; if (xs->flags & SCSI_DATA_IN) { cpuinfo.cache_flush(xs->data, xs->datalen - xs->resid); @@ -318,13 +318,13 @@ isp_sbus_dmateardown(isp, xs, handle) isp->isp_name, handle); /* NOTREACHED */ } - if (sbc->sbus_kdma_allocs[handle] == (vm_offset_t) 0) { + if (sbc->sbus_kdma_allocs[handle] == (vaddr_t) 0) { panic("%s: kdma handle not already allocated\n", isp->isp_name); /* NOTREACHED */ } kdvma = sbc->sbus_kdma_allocs[handle]; - sbc->sbus_kdma_allocs[handle] = (vm_offset_t) 0; + sbc->sbus_kdma_allocs[handle] = (vaddr_t) 0; if (CPU_ISSUN4M) { - dvma_mapout(kdvma, (vm_offset_t) xs->data, xs->datalen); + dvma_mapout(kdvma, (vaddr_t) xs->data, xs->datalen); } } diff --git a/sys/arch/sparc64/dev/sbus.c b/sys/arch/sparc64/dev/sbus.c index 6381212cb4b..54501b2a11d 100644 --- a/sys/arch/sparc64/dev/sbus.c +++ b/sys/arch/sparc64/dev/sbus.c @@ -1,4 +1,4 @@ -/* $NetBSD: sbus.c,v 1.2 1998/07/07 03:05:02 eeh Exp $ */ +/* $NetBSD: sbus.c,v 1.3 1998/08/13 02:10:42 eeh Exp $ */ /*- * Copyright (c) 1998 The NetBSD Foundation, Inc. @@ -114,7 +114,8 @@ int sbus_flush __P((struct sbus_softc *)); static bus_space_tag_t sbus_alloc_bustag __P((struct sbus_softc *)); static bus_dma_tag_t sbus_alloc_dmatag __P((struct sbus_softc *)); -static int sbus_get_intr __P((struct sbus_softc *, int, int *)); +static int sbus_get_intr __P((struct sbus_softc *, int, + struct sbus_intr **, int *)); static int sbus_bus_mmap __P((bus_space_tag_t, bus_type_t, bus_addr_t, int, bus_space_handle_t *)); static int _sbus_bus_map __P(( @@ -123,7 +124,7 @@ static int _sbus_bus_map __P(( bus_addr_t, /*offset*/ bus_size_t, /*size*/ int, /*flags*/ - vm_offset_t, /*preferred virtual address */ + vaddr_t, /*preferred virtual address */ bus_space_handle_t *)); static void *sbus_intr_establish __P(( bus_space_tag_t, @@ -147,8 +148,8 @@ extern struct cfdriver sbus_cd; /* * DVMA routines */ -void sbus_enter __P((struct sbus_softc *, vm_offset_t, int64_t, int)); -void sbus_remove __P((struct sbus_softc *, vm_offset_t, int)); +void sbus_enter __P((struct sbus_softc *, vaddr_t, int64_t, int)); +void sbus_remove __P((struct sbus_softc *, vaddr_t, int)); int sbus_dmamap_load __P((bus_dma_tag_t, bus_dmamap_t, void *, bus_size_t, struct proc *, int)); void sbus_dmamap_unload __P((bus_dma_tag_t, bus_dmamap_t)); @@ -204,14 +205,15 @@ sbus_print(args, busname) const char *busname; { struct sbus_attach_args *sa = args; + int i; if (busname) printf("%s at %s", sa->sa_name, busname); printf(" slot %d offset 0x%x", sa->sa_slot, sa->sa_offset); - if (sa->sa_pri) { - int level = sa->sa_pri; + for (i=0; i<sa->sa_nintr; i++) { + struct sbus_intr *sbi = &sa->sa_intr[i]; - printf(" vector %x ipl %d", (int)INTVEC(level), (int)INTLEV(level)); + printf(" vector %x ipl %d", (int)sbi->sbi_vec, (int)INTLEV(sbi->sbi_pri)); } return (UNCONF); } @@ -315,7 +317,7 @@ sbus_attach(parent, self, aux) */ { extern int64_t *iotsb; - extern vm_offset_t iotsbp; + extern paddr_t iotsbp; extern int iotsbsize; sc->sc_tsbsize = iotsbsize; @@ -342,7 +344,7 @@ sbus_attach(parent, self, aux) tsb = sc->sc_sysio->sys_iommu.iommu_tsb; printf("iommu cr=%x:%x tsb=%x:%x\n", (long)(cr>>32), (long)cr, (long)(tsb>>32), (long)tsb); printf("sysio base %p phys %p TSB base %p phys %p", - (long)sc->sc_sysio, (long)pmap_extract(pmap_kernel(), (vm_offset_t)sc->sc_sysio), + (long)sc->sc_sysio, (long)pmap_extract(pmap_kernel(), (vaddr_t)sc->sc_sysio), (long)sc->sc_tsb, (long)sc->sc_ptsb); delay(1000000); /* 1 s */ } @@ -351,7 +353,7 @@ sbus_attach(parent, self, aux) /* * Initialize streaming buffer. */ - sc->sc_flushpa = pmap_extract(pmap_kernel(), &sc->sc_flush); + sc->sc_flushpa = pmap_extract(pmap_kernel(), (vaddr_t)&sc->sc_flush); #if 0 sc->sc_sysio->sys_strbuf.strbuf_ctl = STRBUF_EN; /* Enable diagnostics mode? */ #else @@ -374,6 +376,7 @@ sbus_attach(parent, self, aux) continue; } (void) config_found(&sc->sc_dev, (void *)&sa, sbus_print); + sbus_destroy_attach_args(&sa); } } @@ -386,40 +389,72 @@ sbus_setup_attach_args(sc, bustag, dmatag, node, bp, sa) struct bootpath *bp; struct sbus_attach_args *sa; { - struct sbus_reg romreg; - int base; + /*struct sbus_reg sbusreg;*/ + /*int base;*/ int error; + int n; bzero(sa, sizeof(struct sbus_attach_args)); - sa->sa_name = getpropstring(node, "name"); + error = getpropA(node, "name", 1, &n, (void **)&sa->sa_name); + if (error != 0) + return (error); + sa->sa_name[n] = '\0'; + sa->sa_bustag = bustag; sa->sa_dmatag = dmatag; sa->sa_node = node; sa->sa_bp = bp; - if ((error = getprop_reg1(node, &romreg)) != 0) - return (error); - - /* We pass only the first "reg" property */ - base = (int)romreg.rr_paddr; - if (SBUS_ABS(base)) { - sa->sa_slot = SBUS_ABS_TO_SLOT(base); - sa->sa_offset = SBUS_ABS_TO_OFFSET(base); - } else { - sa->sa_slot = romreg.rr_iospace; - sa->sa_offset = base; + error = getpropA(node, "reg", sizeof(struct sbus_reg), + &sa->sa_nreg, (void **)&sa->sa_reg); + if (error != 0) { + char buf[32]; + if (error != ENOENT || + !node_has_property(node, "device_type") || + strcmp(getpropstringA(node, "device_type", buf), + "hierarchical") != 0) + return (error); + } + for (n = 0; n < sa->sa_nreg; n++) { + /* Convert to relative addressing, if necessary */ + u_int32_t base = sa->sa_reg[n].sbr_offset; + if (SBUS_ABS(base)) { + sa->sa_reg[n].sbr_slot = SBUS_ABS_TO_SLOT(base); + sa->sa_reg[n].sbr_offset = SBUS_ABS_TO_OFFSET(base); + } } - sa->sa_size = romreg.rr_len; - if ((error = sbus_get_intr(sc, node, &sa->sa_pri)) != 0) + if ((error = sbus_get_intr(sc, node, &sa->sa_intr, &sa->sa_nintr)) != 0) return (error); - if ((error = getprop_address1(node, &sa->sa_promvaddr)) != 0) + error = getpropA(node, "address", sizeof(u_int32_t), + &sa->sa_npromvaddrs, (void **)&sa->sa_promvaddrs); + if (error != 0 && error != ENOENT) return (error); return (0); } +void +sbus_destroy_attach_args(sa) + struct sbus_attach_args *sa; +{ + if (sa->sa_name != NULL) + free(sa->sa_name, M_DEVBUF); + + if (sa->sa_nreg != 0) + free(sa->sa_reg, M_DEVBUF); + + if (sa->sa_intr) + free(sa->sa_intr, M_DEVBUF); + + if (sa->sa_promvaddrs) + free(sa->sa_promvaddrs, M_DEVBUF); + + bzero(sa, sizeof(struct sbus_attach_args));/*DEBUG*/ +} + + int _sbus_bus_map(t, btype, offset, size, flags, vaddr, hp) bus_space_tag_t t; @@ -427,7 +462,7 @@ _sbus_bus_map(t, btype, offset, size, flags, vaddr, hp) bus_addr_t offset; bus_size_t size; int flags; - vm_offset_t vaddr; + vaddr_t vaddr; bus_space_handle_t *hp; { struct sbus_softc *sc = t->cookie; @@ -557,7 +592,7 @@ sbusreset(sbus) void sbus_enter(sc, va, pa, flags) struct sbus_softc *sc; - vm_offset_t va; + vaddr_t va; int64_t pa; int flags; { @@ -568,7 +603,7 @@ sbus_enter(sc, va, pa, flags) panic("sbus_enter: va 0x%x not in DVMA space",va); #endif - tte = MAKEIOTTE(pa, flags&BUS_DMA_WRITE, flags&BUS_DMA_CACHE, + tte = MAKEIOTTE(pa, !(flags&BUS_DMA_NOWRITE), !(flags&BUS_DMA_NOCACHE), !(flags&BUS_DMA_COHERENT)); /* Is the streamcache flush really needed? */ @@ -601,7 +636,7 @@ sbus_enter(sc, va, pa, flags) void sbus_remove(sc, va, len) struct sbus_softc *sc; - vm_offset_t va; + vaddr_t va; int len; { @@ -696,35 +731,52 @@ sbus_flush(sc) * Get interrupt attributes for an Sbus device. */ int -sbus_get_intr(sc, node, ip) +sbus_get_intr(sc, node, ipp, np) struct sbus_softc *sc; int node; - int *ip; + struct sbus_intr **ipp; + int *np; { - struct sbus_intr *rip; int *ipl; - int n; + int i, n, error; char buf[32]; /* * The `interrupts' property contains the Sbus interrupt level. */ ipl = NULL; - if (getpropA(node, "interrupts", sizeof(int), &n, (void **)&ipl) == 0) { + if (getpropA(node, "interrupts", sizeof(int), np, (void **)&ipl) == 0) { + /* Change format to an `struct sbus_intr' array */ + struct sbus_intr *ip; + int pri = 0; + ip = malloc(*np * sizeof(struct sbus_intr), M_DEVBUF, M_NOWAIT); + if (ip == NULL) + return (ENOMEM); /* Now things get ugly. We need to take this value which is * the interrupt vector number and encode the IPL into it * somehow. Luckily, the interrupt vector has lots of free * space and we can easily stuff the IPL in there for a while. */ getpropstringA(node, "device_type", buf); - for (n=0; intrmap[n].in_class; n++) { - if (strcmp(intrmap[n].in_class, buf) == 0) { - ipl[0] |= INTLEVENCODE(intrmap[n].in_lev); + for (i=0; intrmap[i].in_class; i++) { + if (strcmp(intrmap[i].in_class, buf) == 0) { + pri = INTLEVENCODE(intrmap[i].in_lev); break; } } - *ip = ipl[0]; + for (n = 0; n < *np; n++) { + /* + * We encode vector and priority into sbi_pri so we + * can pass them as a unit. This will go away if + * sbus_establish ever takes an sbus_intr instead + * of an integer level. + * Stuff the real vector in sbi_vec. + */ + ip[n].sbi_pri = pri|ipl[n]; + ip[n].sbi_vec = ipl[n]; + } free(ipl, M_DEVBUF); + *ipp = ip; return (0); } @@ -734,25 +786,27 @@ sbus_get_intr(sc, node, ip) /* * Fall back on `intr' property. */ - rip = NULL; - switch (getpropA(node, "intr", sizeof(*rip), &n, (void **)&rip)) { + *ipp = NULL; + error = getpropA(node, "intr", sizeof(struct sbus_intr), + np, (void **)ipp); + switch (error) { case 0: - getpropstringA(node, "device_type", buf); - for (n=0; intrmap[n].in_class; n++) { - if (strcmp(intrmap[n].in_class, buf) == 0) { - rip[0].int_pri |= INTLEVENCODE(intrmap[n].in_lev); - break; - } + for (n = *np; n-- > 0;) { + /* + * Move the interrupt vector into place. + * We could remap the level, but the SBUS priorities + * are probably good enough. + */ + (*ipp)[n].sbi_vec = (*ipp)[n].sbi_pri; + (*ipp)[n].sbi_pri |= INTLEVENCODE((*ipp)[n].sbi_pri); } - *ip = rip[0].int_pri; - free(rip, M_DEVBUF); - return (0); + break; case ENOENT: - *ip = 0; - return (0); + error = 0; + break; } - return (-1); + return (error); } @@ -918,8 +972,8 @@ sbus_dmamap_load(t, map, buf, buflen, p, flags) { int err; bus_size_t sgsize; - vm_offset_t curaddr; - vm_offset_t dvmaddr, vaddr = (vm_offset_t)buf; + paddr_t curaddr; + vaddr_t dvmaddr, vaddr = (vaddr_t)buf; pmap_t pmap; struct sbus_softc *sc = (struct sbus_softc *)t->_cookie; @@ -944,7 +998,7 @@ sbus_dmamap_load(t, map, buf, buflen, p, flags) /* * Get the physical address for this page. */ - if ((curaddr = (bus_addr_t)pmap_extract(pmap, (vm_offset_t)vaddr)) == NULL) { + if ((curaddr = (bus_addr_t)pmap_extract(pmap, (vaddr_t)vaddr)) == NULL) { bus_dmamap_unload(t, map); return (-1); } @@ -975,7 +1029,7 @@ sbus_dmamap_unload(t, map) bus_dma_tag_t t; bus_dmamap_t map; { - vm_offset_t addr; + vaddr_t addr; int len; struct sbus_softc *sc = (struct sbus_softc *)t->_cookie; @@ -1004,7 +1058,7 @@ sbus_dmamap_sync(t, map, offset, len, ops) int ops; { struct sbus_softc *sc = (struct sbus_softc *)t->_cookie; - vm_offset_t va = map->dm_segs[0].ds_addr + offset; + vaddr_t va = map->dm_segs[0].ds_addr + offset; /* @@ -1059,7 +1113,7 @@ sbus_dmamem_alloc(t, size, alignment, boundary, segs, nsegs, rsegs, flags) int *rsegs; int flags; { - vm_offset_t curaddr; + paddr_t curaddr; bus_addr_t dvmaddr; vm_page_t m; struct pglist *mlist; @@ -1092,7 +1146,7 @@ sbus_dmamem_free(t, segs, nsegs) bus_dma_segment_t *segs; int nsegs; { - vm_offset_t addr; + vaddr_t addr; int len; int n; struct sbus_softc *sc = (struct sbus_softc *)t->_cookie; @@ -1120,17 +1174,17 @@ sbus_dmamem_map(t, segs, nsegs, size, kvap, flags) int flags; { vm_page_t m; - vm_offset_t va; + vaddr_t va; bus_addr_t addr; struct pglist *mlist; struct sbus_softc *sc = (struct sbus_softc *)t->_cookie; - int r, cbit; + int cbit; int rval; /* * First have the parent driver allocate some address space in DVMA space. */ - if (rval = bus_dmamem_map(t->_parent, segs, nsegs, size, kvap, flags)) + if ((rval = bus_dmamem_map(t->_parent, segs, nsegs, size, kvap, flags))) return (rval); /* @@ -1139,12 +1193,12 @@ sbus_dmamem_map(t, segs, nsegs, size, kvap, flags) cbit = 0; if (flags & BUS_DMA_COHERENT) /* Disable vcache */ cbit |= PMAP_NVC; - if (flags & BUS_DMA_CACHE) /* sideffects */ + if (flags & BUS_DMA_NOCACHE) /* sideffects */ cbit |= PMAP_NC; /* * Now take this and map it both into the CPU and into the IOMMU. */ - va = (vm_offset_t)*kvap; + va = (vaddr_t)*kvap; mlist = segs[0]._ds_mlist; for (m = mlist->tqh_first; m != NULL; m = m->pageq.tqe_next) { @@ -1180,6 +1234,6 @@ sbus_dmamem_unmap(t, kva, size) #endif size = round_page(size); - sbus_remove(sc, kva, size); + sbus_remove(sc, (vaddr_t)kva, size); bus_dmamem_unmap(t->_parent, kva, size); } diff --git a/sys/arch/sparc64/dev/sbusreg.h b/sys/arch/sparc64/dev/sbusreg.h index 2cfce185b15..eaf84d9ea7d 100644 --- a/sys/arch/sparc64/dev/sbusreg.h +++ b/sys/arch/sparc64/dev/sbusreg.h @@ -1,4 +1,4 @@ -/* $NetBSD: sbusreg.h,v 1.1.1.1 1998/06/20 04:58:51 eeh Exp $ */ +/* $NetBSD: sbusreg.h,v 1.2 1998/08/13 02:10:42 eeh Exp $ */ /* * Copyright (c) 1992, 1993 @@ -254,10 +254,10 @@ struct sysioreg { #define MAKEIOTTE(pa,w,c,s) (((pa)&IOTTE_PAMASK)|((w)?IOTTE_W:0)|((c)?IOTTE_C:0)|((s)?IOTTE_STREAM:0)|(IOTTE_V|IOTTE_8K)) #if 0 /* This version generates a pointer to a int64_t */ -#define IOTSBSLOT(va,sz) ((((((vm_offset_t)(va))-(0xff800000<<(sz))))>>(13-3))&(~7)) +#define IOTSBSLOT(va,sz) ((((((vaddr_t)(va))-(0xff800000<<(sz))))>>(13-3))&(~7)) #else /* Here we just try to create an array index */ -#define IOTSBSLOT(va,sz) ((((((vm_offset_t)(va))-(0xff800000<<(sz))))>>(13))) +#define IOTSBSLOT(va,sz) ((((((vaddr_t)(va))-(0xff800000<<(sz))))>>(13))) #endif /* @@ -277,3 +277,4 @@ struct sysioreg { #define INTVEC(x) ((x)&INTMAP_INR) #define INTSLOT(x) (((x)>>3)&0x7) #define INTPRI(x) ((x)&0x7) + diff --git a/sys/arch/sparc64/dev/sbusvar.h b/sys/arch/sparc64/dev/sbusvar.h index 6b2b9dc2cb0..3d78836d860 100644 --- a/sys/arch/sparc64/dev/sbusvar.h +++ b/sys/arch/sparc64/dev/sbusvar.h @@ -1,4 +1,4 @@ -/* $NetBSD: sbusvar.h,v 1.1.1.1 1998/06/20 04:58:51 eeh Exp $ */ +/* $NetBSD: sbusvar.h,v 1.2 1998/08/13 02:10:43 eeh Exp $ */ /*- * Copyright (c) 1998 The NetBSD Foundation, Inc. @@ -80,8 +80,8 @@ * @(#)sbusvar.h 8.1 (Berkeley) 6/11/93 */ -#ifndef _SBUS_VAR_H -#define _SBUS_VAR_H +#ifndef _SBUS_VAR_H_ +#define _SBUS_VAR_H_ /* * Most devices are configured according to information kept in @@ -92,17 +92,27 @@ * fake name ("mainbus"). */ +/* + * S-bus variables. + */ +struct sbusdev { + struct device *sd_dev; /* backpointer to generic */ + struct sbusdev *sd_bchain; /* forward link in bus chain */ + void (*sd_reset) __P((struct device *)); +}; + + /* Device register space description */ struct sbus_reg { - u_int32_t rr_iospace; /* register space (obio, etc) */ - u_int32_t rr_paddr; /* register physical address */ - u_int32_t rr_len; /* register length */ + u_int32_t sbr_slot; + u_int32_t sbr_offset; + u_int32_t sbr_size; }; /* Interrupt information */ struct sbus_intr { - u_int32_t int_pri; /* priority (IPL) */ - u_int32_t int_vec; /* vector (always 0?) */ + u_int32_t sbi_pri; /* priority (IPL) */ + u_int32_t sbi_vec; /* vector (always 0?) */ }; /* Address translation accross busses */ @@ -115,12 +125,29 @@ struct sbus_range { /* Only used on v3 PROMs */ }; /* - * S-bus variables. + * Sbus driver attach arguments. */ -struct sbusdev { - struct device *sd_dev; /* backpointer to generic */ - struct sbusdev *sd_bchain; /* forward link in bus chain */ - void (*sd_reset) __P((struct device *)); +struct sbus_attach_args { + int sa_placeholder; /* for obio attach args sharing */ + bus_space_tag_t sa_bustag; + bus_dma_tag_t sa_dmatag; + char *sa_name; /* PROM node name */ + int sa_node; /* PROM handle */ + struct sbus_reg *sa_reg; /* Sbus register space for device */ + int sa_nreg; /* Number of Sbus register spaces */ +#define sa_slot sa_reg[0].sbr_slot +#define sa_offset sa_reg[0].sbr_offset +#define sa_size sa_reg[0].sbr_size + + struct sbus_intr *sa_intr; /* Sbus interrupts for device */ + int sa_nintr; /* Number of interrupts */ +#define sa_pri sa_intr[0].sbi_pri + + void **sa_promvaddrs;/* PROM-supplied virtual addresses */ + int sa_npromvaddrs; /* Number of PROM VAs */ +#define sa_promvaddr sa_promvaddrs[0] + + struct bootpath *sa_bp; /* used for locating boot device */ }; /* variables per Sbus */ @@ -141,7 +168,7 @@ struct sbus_softc { u_int sc_dvmabase; int64_t *sc_tsb; /* TSB vaddr */ int sc_tsbsize; - vm_offset_t sc_ptsb; /* TSB physaddr */ + paddr_t sc_ptsb; /* TSB physaddr */ int sc_hasiocache; int sc_ign; /* Interrupt group number for this sysio */ @@ -149,22 +176,6 @@ struct sbus_softc { int64_t sc_flush; }; -/* - * Sbus driver attach arguments. - */ -struct sbus_attach_args { - bus_space_tag_t sa_bustag; - bus_dma_tag_t sa_dmatag; - char *sa_name; /* PROM node name */ - int sa_node; /* PROM handle */ - int sa_slot; /* Sbus slot number */ - int sa_offset; /* Sbus slot offset */ - int sa_size; /* Sbus space size */ - int sa_pri; /* priority (IPL) */ - void *sa_promvaddr; /* PROM virtual address, if any */ - struct bootpath *sa_bp; /* used for locating boot device */ -}; - /* sbus_attach() is also used from obio.c */ #if 0 void sbus_attach __P((struct sbus_softc *, char *, int, struct bootpath *, @@ -182,8 +193,9 @@ int sbus_setup_attach_args __P(( int, /*node*/ struct bootpath *, struct sbus_attach_args *)); +void sbus_destroy_attach_args __P((struct sbus_attach_args *)); #define sbus_bus_map(t, b, a, s, f, v, hp) \ bus_space_map2(t, b, a, s, f, v, hp) -#endif /* _SBUS_VAR_H */ +#endif /* _SBUS_VAR_H_ */ diff --git a/sys/arch/sparc64/dev/si.c b/sys/arch/sparc64/dev/si.c index 679636e5b2d..d2864d25a26 100644 --- a/sys/arch/sparc64/dev/si.c +++ b/sys/arch/sparc64/dev/si.c @@ -1,4 +1,4 @@ -/* $NetBSD: si.c,v 1.2 1998/07/04 22:18:41 jonathan Exp $ */ +/* $NetBSD: si.c,v 1.3 1998/08/13 02:10:43 eeh Exp $ */ /*- * Copyright (c) 1996 The NetBSD Foundation, Inc. @@ -721,8 +721,8 @@ si_dma_free(ncr_sc) /* XXX - Should separate allocation and mapping. */ /* Give back the DVMA space. */ - dvma_mapout((vm_offset_t)dh->dh_dvma, - (vm_offset_t)dh->dh_addr, dh->dh_maplen); + dvma_mapout((vaddr_t)dh->dh_dvma, + (vaddr_t)dh->dh_addr, dh->dh_maplen); dh->dh_dvma = 0; dh->dh_flags = 0; diff --git a/sys/arch/sparc64/dev/upa.c b/sys/arch/sparc64/dev/upa.c index a3e6d0c308c..29d39e86b22 100644 --- a/sys/arch/sparc64/dev/upa.c +++ b/sys/arch/sparc64/dev/upa.c @@ -1,4 +1,4 @@ -/* $NetBSD: upa.c,v 1.1.1.1 1998/06/20 04:58:51 eeh Exp $ */ +/* $NetBSD: upa.c,v 1.2 1998/08/13 02:10:43 eeh Exp $ */ /*- * Copyright (c) 1998 The NetBSD Foundation, Inc. @@ -113,7 +113,7 @@ static int _upa_bus_map __P(( bus_addr_t, /*offset*/ bus_size_t, /*size*/ int, /*flags*/ - vm_offset_t, /*preferred virtual address */ + vaddr_t, /*preferred virtual address */ bus_space_handle_t *)); static void *upa_intr_establish __P(( bus_space_tag_t, @@ -512,7 +512,7 @@ _upa_bus_map(t, btype, offset, size, flags, vaddr, hp) bus_addr_t offset; bus_size_t size; int flags; - vm_offset_t vaddr; + vaddr_t vaddr; bus_space_handle_t *hp; { struct upa_softc *sc = t->cookie; @@ -636,8 +636,8 @@ upareset(upa) */ void upa_enter(va, pa) - vm_offset_t va; - int64_t pa; + vaddr_t va; + paddr_t pa; { struct upa_softc *sc = upa_sc; int64_t tte; @@ -671,7 +671,7 @@ upa_enter(va, pa) */ void upa_remove(va, len) - register vm_offset_t va; + register vaddr_t va; register u_int len; { register struct upa_softc *sc = upa_sc; diff --git a/sys/arch/sparc64/dev/xd.c b/sys/arch/sparc64/dev/xd.c index 430db9625b5..95f32c7c695 100644 --- a/sys/arch/sparc64/dev/xd.c +++ b/sys/arch/sparc64/dev/xd.c @@ -1,4 +1,4 @@ -/* $NetBSD: xd.c,v 1.2 1998/06/20 06:01:11 mrg Exp $ */ +/* $NetBSD: xd.c,v 1.3 1998/08/13 02:10:43 eeh Exp $ */ /* * @@ -36,7 +36,7 @@ * x d . c x y l o g i c s 7 5 3 / 7 0 5 3 v m e / s m d d r i v e r * * author: Chuck Cranor <chuck@ccrc.wustl.edu> - * id: $NetBSD: xd.c,v 1.2 1998/06/20 06:01:11 mrg Exp $ + * id: $NetBSD: xd.c,v 1.3 1998/08/13 02:10:43 eeh Exp $ * started: 27-Feb-95 * references: [1] Xylogics Model 753 User's Manual * part number: 166-753-001, Revision B, May 21, 1988. @@ -1733,8 +1733,8 @@ xdc_reset(xdcsc, quiet, blastmode, error, xdsc) iorq->buf->b_resid = iorq->sectcnt * XDFM_BPS; dvma_mapout( - (vm_offset_t)iorq->dbufbase, - (vm_offset_t)iorq->buf->b_un.b_addr, + (vaddr_t)iorq->dbufbase, + (vaddr_t)iorq->buf->b_un.b_addr, iorq->buf->b_bcount); disk_unbusy(&xdcsc->reqs[lcv].xd->sc_dk, (xdcsc->reqs[lcv].buf->b_bcount - @@ -1939,8 +1939,8 @@ xdc_remove_iorq(xdcsc) } else { bp->b_resid = 0; /* done */ } - dvma_mapout((vm_offset_t) iorq->dbufbase, - (vm_offset_t) bp->b_un.b_addr, + dvma_mapout((vaddr_t) iorq->dbufbase, + (vaddr_t) bp->b_un.b_addr, bp->b_bcount); disk_unbusy(&iorq->xd->sc_dk, (bp->b_bcount - bp->b_resid)); diff --git a/sys/arch/sparc64/dev/xy.c b/sys/arch/sparc64/dev/xy.c index 6da6218b67f..3d62ef37c1b 100644 --- a/sys/arch/sparc64/dev/xy.c +++ b/sys/arch/sparc64/dev/xy.c @@ -1,4 +1,4 @@ -/* $NetBSD: xy.c,v 1.2 1998/06/20 06:01:12 mrg Exp $ */ +/* $NetBSD: xy.c,v 1.3 1998/08/13 02:10:43 eeh Exp $ */ /* * @@ -36,7 +36,7 @@ * x y . c x y l o g i c s 4 5 0 / 4 5 1 s m d d r i v e r * * author: Chuck Cranor <chuck@ccrc.wustl.edu> - * id: $NetBSD: xy.c,v 1.2 1998/06/20 06:01:12 mrg Exp $ + * id: $NetBSD: xy.c,v 1.3 1998/08/13 02:10:43 eeh Exp $ * started: 14-Sep-95 * references: [1] Xylogics Model 753 User's Manual * part number: 166-753-001, Revision B, May 21, 1988. @@ -1638,8 +1638,8 @@ xyc_reset(xycsc, quiet, blastmode, error, xysc) iorq->buf->b_error = EIO; iorq->buf->b_flags |= B_ERROR; iorq->buf->b_resid = iorq->sectcnt * XYFM_BPS; - dvma_mapout((vm_offset_t)iorq->dbufbase, - (vm_offset_t)iorq->buf->b_un.b_addr, + dvma_mapout((vaddr_t)iorq->dbufbase, + (vaddr_t)iorq->buf->b_un.b_addr, iorq->buf->b_bcount); iorq->xy->xyq.b_actf = iorq->buf->b_actf; disk_unbusy(&xycsc->reqs[lcv].xy->sc_dk, @@ -1816,8 +1816,8 @@ xyc_remove_iorq(xycsc) } else { bp->b_resid = 0; /* done */ } - dvma_mapout((vm_offset_t) iorq->dbufbase, - (vm_offset_t) bp->b_un.b_addr, + dvma_mapout((vaddr_t) iorq->dbufbase, + (vaddr_t) bp->b_un.b_addr, bp->b_bcount); iorq->xy->xyq.b_actf = bp->b_actf; disk_unbusy(&iorq->xy->sc_dk, diff --git a/sys/arch/sparc64/dev/zs.c b/sys/arch/sparc64/dev/zs.c index f24638c5d9c..097076c100f 100644 --- a/sys/arch/sparc64/dev/zs.c +++ b/sys/arch/sparc64/dev/zs.c @@ -1,4 +1,4 @@ -/* $NetBSD: zs.c,v 1.2 1998/07/04 22:18:41 jonathan Exp $ */ +/* $NetBSD: zs.c,v 1.3 1998/08/13 02:10:43 eeh Exp $ */ /*- * Copyright (c) 1996 The NetBSD Foundation, Inc. @@ -947,7 +947,7 @@ consinit() struct consdev *cn; int channel, zs_unit, zstty_unit; int inSource, outSink; - register int node,fd; + register int node; char buffer[128]; register char *cp; extern int fbnode; @@ -1035,7 +1035,9 @@ setup_output: outSink = PROMDEV_TTYA + (cp[1] - 'a'); else outSink = -1; } +#if 0 setup_console: +#endif if (inSource != outSink) { printf("cninit: mismatched PROM output selector\n"); diff --git a/sys/arch/sparc64/include/asm.h b/sys/arch/sparc64/include/asm.h index 9d659440f2a..bb17c5911ca 100644 --- a/sys/arch/sparc64/include/asm.h +++ b/sys/arch/sparc64/include/asm.h @@ -1,4 +1,4 @@ -/* $NetBSD: asm.h,v 1.2 1998/07/07 03:05:03 eeh Exp $ */ +/* $NetBSD: asm.h,v 1.3 1998/08/13 02:10:44 eeh Exp $ */ /* * Copyright (c) 1994 Allen Briggs @@ -98,7 +98,7 @@ #define ENTRY(name) _ENTRY(_C_LABEL(name)); _PROF_PROLOGUE #define ASENTRY(name) _ENTRY(_ASM_LABEL(name)); _PROF_PROLOGUE -#define FUNC(name) ASENTRY(name) +#define FUNC(name) ENTRY(name) #define ASMSTR .asciz diff --git a/sys/arch/sparc64/include/autoconf.h b/sys/arch/sparc64/include/autoconf.h index d8be3ebbd6c..d4b25bfde6b 100644 --- a/sys/arch/sparc64/include/autoconf.h +++ b/sys/arch/sparc64/include/autoconf.h @@ -1,4 +1,4 @@ -/* $NetBSD: autoconf.h,v 1.1.1.1 1998/06/20 04:58:51 eeh Exp $ */ +/* $NetBSD: autoconf.h,v 1.2 1998/08/13 02:10:44 eeh Exp $ */ /*- * Copyright (c) 1997, 1998 The NetBSD Foundation, Inc. @@ -137,7 +137,7 @@ union obio_attach_args { }; #define obio_bus_map(t, a, o, s, f, v, hp) \ - bus_space_map2(t, 0, (long)(a) + o, s, f, (vm_offset_t)v, hp) + bus_space_map2(t, 0, (long)(a) + o, s, f, (vaddr_t)v, hp) /* obio specific bus flag */ #define OBIO_BUS_MAP_USE_ROM BUS_SPACE_MAP_BUS1 @@ -229,6 +229,8 @@ void bootstrap __P((int)); int firstchild __P((int)); int nextsibling __P((int)); void callrom __P((void)); +void romboot __P((char *)); +void romhalt __P((void)); struct device *getdevunit __P((char *, int)); void *findzs __P((int)); int romgetcursoraddr __P((int **, int **)); diff --git a/sys/arch/sparc64/include/bus.h b/sys/arch/sparc64/include/bus.h index 42bd28fe2af..f7c9713a537 100644 --- a/sys/arch/sparc64/include/bus.h +++ b/sys/arch/sparc64/include/bus.h @@ -1,4 +1,4 @@ -/* $NetBSD: bus.h,v 1.2 1998/07/07 03:05:03 eeh Exp $ */ +/* $NetBSD: bus.h,v 1.3 1998/08/13 02:10:44 eeh Exp $ */ /*- * Copyright (c) 1996, 1997, 1998 The NetBSD Foundation, Inc. @@ -84,14 +84,14 @@ #define SBUS_BUS_SPACE ASI_PHYS_NON_CACHED #define PCI_CONFIG_BUS_SPACE ASI_PHYS_NON_CACHED_LITTLE #define PCI_IO_BUS_SPACE ASI_PHYS_NON_CACHED_LITTLE -#define PCI_MEMORY_BUS_SPACE ASI_PHYS_NON_CACHED_LITTLE +#define PCI_MEMORY_BUS_SPACE ASI_PHYS_CACHED_LITTLE /* For backwards compatibility */ #define SPARC_BUS_SPACE UPA_BUS_SPACE /* * Bus address and size types */ -typedef u_long bus_space_handle_t; +typedef u_int64_t bus_space_handle_t; typedef u_long bus_type_t; typedef u_int64_t bus_addr_t; typedef u_int64_t bus_size_t; @@ -112,7 +112,7 @@ struct sparc_bus_space_tag { bus_addr_t, bus_size_t, int, /*flags*/ - vm_offset_t, /*preferred vaddr*/ + vaddr_t, /*preferred vaddr*/ bus_space_handle_t *)); int (*sparc_bus_unmap) __P(( bus_space_tag_t, @@ -182,7 +182,7 @@ static int bus_space_map2 __P(( bus_addr_t, bus_size_t, int, /*flags*/ - vm_offset_t, /*preferred vaddr*/ + vaddr_t, /*preferred vaddr*/ bus_space_handle_t *)); static int bus_space_unmap __P(( bus_space_tag_t, @@ -238,7 +238,7 @@ bus_space_map2(t, bt, a, s, f, v, hp) bus_addr_t a; bus_size_t s; int f; - vm_offset_t v; + vaddr_t v; bus_space_handle_t *hp; { _BS_CALL(t, sparc_bus_map)(t, bt, a, s, f, v, hp); @@ -533,8 +533,8 @@ int bus_space_probe __P(( #define BUS_DMA_NOWAIT 0x01 /* not safe to sleep */ #define BUS_DMA_ALLOCNOW 0x02 /* perform resource allocation now */ #define BUS_DMA_COHERENT 0x04 /* hint: map memory DMA coherent */ -#define BUS_DMA_WRITE 0x08 /* I suppose the following two should default on */ -#define BUS_DMA_CACHE 0x10 +#define BUS_DMA_NOWRITE 0x08 /* I suppose the following two should default on */ +#define BUS_DMA_NOCACHE 0x10 #define BUS_DMA_BUS2 0x20 #define BUS_DMA_BUS3 0x40 #define BUS_DMA_BUS4 0x80 @@ -695,7 +695,7 @@ int _bus_dmamem_mmap __P((bus_dma_tag_t tag, bus_dma_segment_t *segs, int _bus_dmamem_alloc_range __P((bus_dma_tag_t tag, bus_size_t size, bus_size_t alignment, bus_size_t boundary, bus_dma_segment_t *segs, int nsegs, int *rsegs, int flags, - vm_offset_t low, vm_offset_t high)); + vaddr_t low, vaddr_t high)); #endif /* _SPARC_BUS_DMA_PRIVATE */ #endif /* _SPARC_BUS_H_ */ diff --git a/sys/arch/sparc64/include/db_machdep.h b/sys/arch/sparc64/include/db_machdep.h index 6da4680aebc..13196c3bf35 100644 --- a/sys/arch/sparc64/include/db_machdep.h +++ b/sys/arch/sparc64/include/db_machdep.h @@ -1,4 +1,4 @@ -/* $NetBSD: db_machdep.h,v 1.1.1.1 1998/06/20 04:58:51 eeh Exp $ */ +/* $NetBSD: db_machdep.h,v 1.2 1998/08/13 02:10:44 eeh Exp $ */ /* * Mach Operating System @@ -42,7 +42,7 @@ /* end of mangling */ -typedef vm_offset_t db_addr_t; /* address - unsigned */ +typedef vaddr_t db_addr_t; /* address - unsigned */ typedef long db_expr_t; /* expression - signed */ #if 1 diff --git a/sys/arch/sparc64/include/fbvar.h b/sys/arch/sparc64/include/fbvar.h index ea3a5fc305d..715df089146 100644 --- a/sys/arch/sparc64/include/fbvar.h +++ b/sys/arch/sparc64/include/fbvar.h @@ -1,4 +1,4 @@ -/* $NetBSD: fbvar.h,v 1.1.1.1 1998/06/20 04:58:51 eeh Exp $ */ +/* $NetBSD: fbvar.h,v 1.2 1998/08/13 02:10:44 eeh Exp $ */ /* * Copyright (c) 1992, 1993 diff --git a/sys/arch/sparc64/include/kcore.h b/sys/arch/sparc64/include/kcore.h index 87467ab335a..bff01fc23f4 100644 --- a/sys/arch/sparc64/include/kcore.h +++ b/sys/arch/sparc64/include/kcore.h @@ -1,4 +1,4 @@ -/* $NetBSD: kcore.h,v 1.2 1998/07/07 03:05:03 eeh Exp $ */ +/* $NetBSD: kcore.h,v 1.3 1998/08/13 02:10:44 eeh Exp $ */ /*- * Copyright (c) 1996 The NetBSD Foundation, Inc. @@ -58,5 +58,5 @@ typedef struct cpu_kcore_hdr { u_long pmegoffset; /* start of pmeg array (relative */ /* to the start of this header) */ /* SPARC64 stuff */ - int64_t kphys; /* Physical address of 4MB locked TLB */ + paddr_t kphys; /* Physical address of 4MB locked TLB */ } cpu_kcore_hdr_t; diff --git a/sys/arch/sparc64/include/openfirm.h b/sys/arch/sparc64/include/openfirm.h index fe834a1b950..66b1eb798c5 100644 --- a/sys/arch/sparc64/include/openfirm.h +++ b/sys/arch/sparc64/include/openfirm.h @@ -1,4 +1,4 @@ -/* $NetBSD: openfirm.h,v 1.2 1998/07/07 03:05:03 eeh Exp $ */ +/* $NetBSD: openfirm.h,v 1.3 1998/08/13 02:10:44 eeh Exp $ */ /* * Copyright (C) 1995, 1996 Wolfgang Solfrank. @@ -42,4 +42,4 @@ int OF_getproplen __P((int handle, char* prop)); int OF_stdin __P((void)); int OF_stdout __P((void)); -void OF_poweroff __P((void)); +void OF_poweroff __P((void)) __attribute__((__noreturn__)); diff --git a/sys/arch/sparc64/include/param.h b/sys/arch/sparc64/include/param.h index 664d996c4a9..4a9b9f03add 100644 --- a/sys/arch/sparc64/include/param.h +++ b/sys/arch/sparc64/include/param.h @@ -1,4 +1,4 @@ -/* $NetBSD: param.h,v 1.2 1998/06/20 12:27:21 mrg Exp $ */ +/* $NetBSD: param.h,v 1.3 1998/08/13 02:10:44 eeh Exp $ */ /* * Copyright (c) 1992, 1993 @@ -166,8 +166,8 @@ extern int nbpg, pgofset, pgshift; */ #ifdef _KERNEL #ifndef _LOCORE -extern vm_offset_t dvma_base; -extern vm_offset_t dvma_end; +extern vaddr_t dvma_base; +extern vaddr_t dvma_end; extern struct map *dvmamap; /* * The dvma resource map is defined in page units, which are numbered 1 to N. diff --git a/sys/arch/sparc64/include/pmap.h b/sys/arch/sparc64/include/pmap.h index 3961466b950..5da7e44c9bb 100644 --- a/sys/arch/sparc64/include/pmap.h +++ b/sys/arch/sparc64/include/pmap.h @@ -1,4 +1,4 @@ -/* $NetBSD: pmap.h,v 1.2 1998/07/07 03:05:03 eeh Exp $ */ +/* $NetBSD: pmap.h,v 1.3 1998/08/13 02:10:45 eeh Exp $ */ /*- * Copyright (C) 1995, 1996 Wolfgang Solfrank. @@ -96,7 +96,7 @@ extern struct page_size_map page_size_map[]; struct pmap { int pm_ctx; /* Current context */ int pm_refs; /* ref count */ - vm_offset_t pm_physaddr; /* physical address of pm_segs */ + paddr_t pm_physaddr; /* physical address of pm_segs */ union sun4u_data* pm_segs[STSZ]; }; @@ -112,6 +112,7 @@ struct prom_map { #define PMAP_NC 1 /* Set the E bit in the page */ #define PMAP_NVC 2 /* Don't enable the virtual cache */ +#define PMAP_LITTLE 3 /* Map in little endian mode */ /* If these bits are different in va's to the same PA then there is an aliasing in the d$ */ #define VA_ALIAS_MASK (1<<14) @@ -128,33 +129,29 @@ typedef struct pmap *pmap_t; extern struct pmap kernel_pmap_; #define pmap_kernel() (&kernel_pmap_) -void pmap_clear_modify __P((vm_offset_t pa)); -void pmap_clear_reference __P((vm_offset_t pa)); -int pmap_is_modified __P((vm_offset_t pa)); -int pmap_is_referenced __P((vm_offset_t pa)); int pmap_count_res __P((pmap_t pmap)); -/* int pmap_change_wiring __P((pmap_t pm, vm_offset_t va, boolean_t wired)); */ +/* int pmap_change_wiring __P((pmap_t pm, vaddr_t va, boolean_t wired)); */ #define pmap_resident_count(pm) pmap_count_res((pm)) -#define pmap_phys_address(x) (x) +#define pmap_phys_address(x) ((((paddr_t)(x))<<PGSHIFT)|PMAP_NC) void pmap_bootstrap __P((u_int kernelstart, u_int kernelend, u_int numctx)); /* This needs to be implemented when we get a kernel map */ -void pmap_changeprot __P((pmap_t pmap, vm_offset_t start, vm_prot_t prot, int size)); +void pmap_changeprot __P((pmap_t pmap, vaddr_t start, vm_prot_t prot, int size)); /* SPARC specific? */ void pmap_redzone __P((void)); int pmap_dumpsize __P((void)); int pmap_dumpmmu __P((int (*)__P((dev_t, daddr_t, caddr_t, size_t)), daddr_t)); -int pmap_pa_exists __P((vm_offset_t)); +int pmap_pa_exists __P((paddr_t)); struct user; void switchexit __P((vm_map_t, struct user *, int)); /* SPARC64 specific */ int ctx_alloc __P((struct pmap*)); void ctx_free __P((struct pmap*)); -void pmap_enter_phys __P((pmap_t, vm_offset_t, u_int64_t, u_int64_t, vm_prot_t, boolean_t)); +void pmap_enter_phys __P((pmap_t, vaddr_t, u_int64_t, u_int64_t, vm_prot_t, boolean_t)); #endif /* _KERNEL */ diff --git a/sys/arch/sparc64/include/pte.h b/sys/arch/sparc64/include/pte.h index 70fdeb9d79a..bd5d482e9b5 100644 --- a/sys/arch/sparc64/include/pte.h +++ b/sys/arch/sparc64/include/pte.h @@ -1,4 +1,4 @@ -/* $NetBSD: pte.h,v 1.1.1.1 1998/06/20 04:58:52 eeh Exp $ */ +/* $NetBSD: pte.h,v 1.2 1998/08/13 02:10:45 eeh Exp $ */ /* * Copyright (c) 1996 @@ -137,7 +137,7 @@ struct sun4u_tte { typedef struct sun4u_tte pte_t; /* Assembly routine to flush a mapping */ -extern void tlb_flush_pte __P((vm_offset_t addr, int ctx)); +extern void tlb_flush_pte __P((vaddr_t addr, int ctx)); extern void tlb_flush_ctx __P((int ctx)); #endif /* _LOCORE */ diff --git a/sys/arch/sparc64/include/sparc64.h b/sys/arch/sparc64/include/sparc64.h index 6ab5e536865..2aa2cdc5a02 100644 --- a/sys/arch/sparc64/include/sparc64.h +++ b/sys/arch/sparc64/include/sparc64.h @@ -1,4 +1,4 @@ -/* $NetBSD: sparc64.h,v 1.1.1.1 1998/06/20 04:58:52 eeh Exp $ */ +/* $NetBSD: sparc64.h,v 1.2 1998/08/13 02:10:45 eeh Exp $ */ /* * Copyright (C) 1996 Wolfgang Solfrank. @@ -38,16 +38,16 @@ struct mem_region { u_int64_t size; }; -int prom_set_trap_table __P((vm_offset_t tba)); -u_int64_t prom_vtop __P((vm_offset_t vaddr)); -u_int64_t prom_claim_virt __P((vm_offset_t vaddr, int len)); -u_int64_t prom_alloc_virt __P((int len, int align)); -int prom_free_virt __P((vm_offset_t vaddr, int len)); -int prom_unmap_virt __P((vm_offset_t vaddr, int len)); -int prom_map_phys __P((u_int64_t paddr, off_t size, vm_offset_t vaddr, int mode)); +int prom_set_trap_table __P((vaddr_t tba)); +u_int64_t prom_vtop __P((vaddr_t vaddr)); +vaddr_t prom_claim_virt __P((vaddr_t vaddr, int len)); +vaddr_t prom_alloc_virt __P((int len, int align)); +int prom_free_virt __P((vaddr_t vaddr, int len)); +int prom_unmap_virt __P((vaddr_t vaddr, int len)); +int prom_map_phys __P((u_int64_t paddr, off_t size, vaddr_t vaddr, int mode)); u_int64_t prom_alloc_phys __P((int len, int align)); -u_int64_t prom_claim_phys __P((vm_offset_t phys, int len)); -int prom_free_phys __P((vm_offset_t paddr, int len)); +u_int64_t prom_claim_phys __P((paddr_t phys, int len)); +int prom_free_phys __P((paddr_t paddr, int len)); u_int64_t prom_get_msgbuf __P((int len, int align)); /* diff --git a/sys/arch/sparc64/include/types.h b/sys/arch/sparc64/include/types.h index 4cd14e16a61..2b517201551 100644 --- a/sys/arch/sparc64/include/types.h +++ b/sys/arch/sparc64/include/types.h @@ -1,4 +1,4 @@ -/* $NetBSD: types.h,v 1.2 1998/06/20 16:52:53 kleink Exp $ */ +/* $NetBSD: types.h,v 1.3 1998/08/13 02:10:45 eeh Exp $ */ /* * Copyright (c) 1992, 1993 @@ -59,8 +59,13 @@ typedef struct label_t { } label_t; #endif -typedef unsigned long vm_offset_t; -typedef unsigned long vm_size_t; +/* NB: This should probably be if defined(_KERNEL) */ +#if !defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE) +typedef unsigned long vaddr_t; +typedef vaddr_t vsize_t; +typedef unsigned long long paddr_t; +typedef paddr_t psize_t; +#endif /* * Basic integral types. Omit the typedef if diff --git a/sys/arch/sparc64/include/vmparam.h b/sys/arch/sparc64/include/vmparam.h index f3294378390..8dbf85fd6e3 100644 --- a/sys/arch/sparc64/include/vmparam.h +++ b/sys/arch/sparc64/include/vmparam.h @@ -1,4 +1,4 @@ -/* $NetBSD: vmparam.h,v 1.3 1998/07/08 04:43:21 thorpej Exp $ */ +/* $NetBSD: vmparam.h,v 1.4 1998/08/13 02:10:45 eeh Exp $ */ /* * Copyright (c) 1992, 1993 @@ -121,11 +121,11 @@ * IO space virtual base, which must be the same as VM_MAX_KERNEL_ADDRESS: * tread with care. */ -#define VM_MIN_ADDRESS ((vm_offset_t)0) -#define VM_MAX_ADDRESS ((vm_offset_t)KERNBASE) -#define VM_MAXUSER_ADDRESS ((vm_offset_t)KERNBASE) -#define VM_MIN_KERNEL_ADDRESS ((vm_offset_t)KERNBASE) -#define VM_MAX_KERNEL_ADDRESS ((vm_offset_t)0xfe000000) +#define VM_MIN_ADDRESS ((vaddr_t)0) +#define VM_MAX_ADDRESS ((vaddr_t)KERNBASE) +#define VM_MAXUSER_ADDRESS ((vaddr_t)KERNBASE) +#define VM_MIN_KERNEL_ADDRESS ((vaddr_t)KERNBASE) +#define VM_MAX_KERNEL_ADDRESS ((vaddr_t)0xfe000000) /* virtual sizes (bytes) for various kernel submaps */ #define VM_MBUF_SIZE (NMBCLUSTERS*MCLBYTES) @@ -151,6 +151,6 @@ struct pmap_physseg { #if defined (_KERNEL) && !defined(_LOCORE) struct vm_map; -vm_offset_t dvma_mapin __P((struct vm_map *, vm_offset_t, int, int)); -void dvma_mapout __P((vm_offset_t, vm_offset_t, int)); +vaddr_t dvma_mapin __P((struct vm_map *, vaddr_t, int, int)); +void dvma_mapout __P((vaddr_t, vaddr_t, int)); #endif diff --git a/sys/arch/sparc64/sparc64/autoconf.c b/sys/arch/sparc64/sparc64/autoconf.c index 7995c0bea99..07df13f3c60 100644 --- a/sys/arch/sparc64/sparc64/autoconf.c +++ b/sys/arch/sparc64/sparc64/autoconf.c @@ -1,4 +1,4 @@ -/* $NetBSD: autoconf.c,v 1.2 1998/07/04 22:18:41 jonathan Exp $ */ +/* $NetBSD: autoconf.c,v 1.3 1998/08/13 02:10:45 eeh Exp $ */ /* * Copyright (c) 1996 @@ -795,7 +795,6 @@ extern struct sparc_bus_space_tag mainbus_space_tag; */ for (node = node0; node; node = nextsibling(node)) { const char *cp; - struct sbus_reg romreg; if (node_has_property(node, "device_type") && strcmp(getpropstringA(node, "device_type", namebuf), @@ -1019,7 +1018,7 @@ getprop_intr1(node, ip) int *ip; { int error, n; - struct sbus_intr *rip = NULL; + struct sbus_intr *sip = NULL; int *interrupts; char buf[32]; @@ -1045,7 +1044,7 @@ getprop_intr1(node, ip) * this. Need to get to the vector. */ error = getpropA(node, "intr", sizeof(struct sbus_intr), - &n, (void **)&rip); + &n, (void **)&sip); if (error != 0) { if (error == ENOENT) { *ip = 0; @@ -1054,8 +1053,8 @@ getprop_intr1(node, ip) return (error); } - *ip = rip[0].int_pri; - free(rip, M_DEVBUF); + *ip = sip[0].sbi_pri; + free(sip, M_DEVBUF); return (0); } diff --git a/sys/arch/sparc64/sparc64/clock.c b/sys/arch/sparc64/sparc64/clock.c index daf805e52ef..c049ee41280 100644 --- a/sys/arch/sparc64/sparc64/clock.c +++ b/sys/arch/sparc64/sparc64/clock.c @@ -1,4 +1,4 @@ -/* $NetBSD: clock.c,v 1.1.1.1 1998/06/20 04:58:52 eeh Exp $ */ +/* $NetBSD: clock.c,v 1.2 1998/08/13 02:10:45 eeh Exp $ */ /* * Copyright (c) 1992, 1993 @@ -164,9 +164,9 @@ clockmatch(parent, cf, aux) struct cfdata *cf; void *aux; { - struct mainbus_attach_args *ma = aux; + struct sbus_attach_args *sa = aux; - return (strcmp("eeprom", ma->ma_name) == 0); + return (strcmp("eeprom", sa->sa_name) == 0); } static struct clockreg * @@ -176,7 +176,7 @@ clock_map(bh, model) { struct clockreg *cl; - pmap_changeprot(pmap_kernel(), (vm_offset_t)bh, VM_PROT_READ, 1); + pmap_changeprot(pmap_kernel(), (vaddr_t)bh, VM_PROT_READ, 1); cl = (struct clockreg *)((int)bh + CLK_MK48T08_OFF); return (cl); @@ -208,7 +208,7 @@ clockattach(parent, self, aux) * the MK48T08 is 8K, and the MK48T59 is supposed to be identical to it */ sz = 8192; - printf(": %s (eeprom)\n", model); + printf(": %s (eeprom)", model); /* * We ignore any existing virtual address as we need to map @@ -244,6 +244,7 @@ clockattach(parent, self, aux) h |= idp->id_hostid[1] << 8; h |= idp->id_hostid[2]; hostid = h; + printf(" hostid %x\n", hostid); clockreg = cl; } @@ -296,12 +297,10 @@ timerattach(parent, self, aux) /* Get address property */ if (getpropA(ma->ma_node, "address", sizeof(*va), &nreg, (void **)&va) == 0) { -printf("timerattach: using PROM mappings\n"); timerreg_4u.t_timer = (struct timer_4u *)(int)va[0]; timerreg_4u.t_clrintr = (int64_t *)(int)va[1]; timerreg_4u.t_mapintr = (int64_t *)(int)va[2]; } else { -printf("timerattach: using new mappings\n"); /* Map the system timer -- Not an SBUS device */ if (bus_space_map2(ma->ma_bustag, 0, ur[0].ur_paddr, @@ -320,11 +319,6 @@ printf("timerattach: using new mappings\n"); (TIMERREG_VA + (((int)ur[2].ur_paddr)&PGOFSET)); } - -#ifdef DEBUG - printf("timerattach: timer=%x clrintr=%x mapintr=%x\n", - timerreg_4u.t_timer, timerreg_4u.t_clrintr, timerreg_4u.t_mapintr); -#endif cnt = &(timerreg_4u.t_timer[0].t_count); lim = &(timerreg_4u.t_timer[0].t_limit); @@ -333,6 +327,7 @@ printf("timerattach: using new mappings\n"); intr_establish(10, &level10); level14.ih_number = ma->ma_interrupts[1]; intr_establish(14, &level14); + printf(" irq vectors %x and %x\n", level10.ih_number, level14.ih_number); timerok = 1; @@ -401,7 +396,7 @@ clk_wenable(onoff) splx(s); if (prot) pmap_changeprot(pmap_kernel(), - (vm_offset_t)clockreg & ~(NBPG-1), + (vaddr_t)clockreg & ~(NBPG-1), prot, 1); } @@ -520,14 +515,6 @@ clockintr(cap) extern int cnrom __P((void)); extern int rom_console_input; #endif -#ifdef NOTDEF_DEBUG - static int deadman = 0; - - if (deadman++ > 100) { - deadman = 0; - Debugger(); - } -#endif /* * Protect the clearing of the clock interrupt. If we don't diff --git a/sys/arch/sparc64/sparc64/db_disasm.c b/sys/arch/sparc64/sparc64/db_disasm.c index 7b7f68f82aa..fa1aa6479b1 100644 --- a/sys/arch/sparc64/sparc64/db_disasm.c +++ b/sys/arch/sparc64/sparc64/db_disasm.c @@ -1,4 +1,4 @@ -/* $NetBSD: db_disasm.c,v 1.1.1.1 1998/06/20 04:58:52 eeh Exp $ */ +/* $NetBSD: db_disasm.c,v 1.2 1998/08/13 02:10:46 eeh Exp $ */ /* * Copyright (c) 1994 David S. Miller, davem@nadzieja.rutgers.edu @@ -796,7 +796,7 @@ struct sparc_insn sparc_i[] = { db_addr_t db_disasm(loc, altfmt) - vm_offset_t loc; + vaddr_t loc; boolean_t altfmt; { struct sparc_insn* i_ptr = (struct sparc_insn *)&sparc_i; diff --git a/sys/arch/sparc64/sparc64/db_interface.c b/sys/arch/sparc64/sparc64/db_interface.c index e8ebb5cb30d..82fef7f45f7 100644 --- a/sys/arch/sparc64/sparc64/db_interface.c +++ b/sys/arch/sparc64/sparc64/db_interface.c @@ -1,4 +1,4 @@ -/* $NetBSD: db_interface.c,v 1.2 1998/07/04 22:18:42 jonathan Exp $ */ +/* $NetBSD: db_interface.c,v 1.3 1998/08/13 02:10:46 eeh Exp $ */ /* * Mach Operating System @@ -181,7 +181,8 @@ kdb_trap(type, tf) ddb_regs.ddb_tf = *tf; /* We should do a proper copyin and xlate 64-bit stack frames, but... */ - if (tf->tf_tstate & TSTATE_PRIV) { +/* if (tf->tf_tstate & TSTATE_PRIV) { */ + if ((unsigned)tf->tf_out[6] > (unsigned)KERNBASE) { ddb_regs.ddb_fr = *(struct frame *)tf->tf_out[6]; } else { copyin(tf->tf_out[6], &ddb_regs.ddb_fr, sizeof(struct frame)); @@ -221,7 +222,7 @@ kdb_trap(type, tf) */ void db_read_bytes(addr, size, data) - vm_offset_t addr; + vaddr_t addr; register size_t size; register char *data; { @@ -242,7 +243,7 @@ db_read_bytes(addr, size, data) */ void db_write_bytes(addr, size, data) - vm_offset_t addr; + vaddr_t addr; register size_t size; register char *data; { @@ -299,7 +300,7 @@ db_dump_dtlb(addr, have_addr, count, modif) print_dtlb(); } -int64_t pseg_get __P((struct pmap *, vm_offset_t)); +int64_t pseg_get __P((struct pmap *, vaddr_t)); void db_pmap_kernel(addr, have_addr, count, modif) @@ -321,7 +322,7 @@ db_pmap_kernel(addr, have_addr, count, modif) if (have_addr) { /* lookup an entry for this VA */ - if (data = pseg_get(&kernel_pmap_, (vm_offset_t)addr)) { + if (data = pseg_get(&kernel_pmap_, (vaddr_t)addr)) { db_printf("pmap_kernel(%p)->pm_segs[%x][%x]=>%x:%x\n", addr, va_to_seg(addr), va_to_pte(addr), (int)(data>>32), diff --git a/sys/arch/sparc64/sparc64/db_trace.c b/sys/arch/sparc64/sparc64/db_trace.c index 625669867f8..38d3f6ee825 100644 --- a/sys/arch/sparc64/sparc64/db_trace.c +++ b/sys/arch/sparc64/sparc64/db_trace.c @@ -1,4 +1,4 @@ -/* $NetBSD: db_trace.c,v 1.1.1.1 1998/06/20 04:58:52 eeh Exp $ */ +/* $NetBSD: db_trace.c,v 1.2 1998/08/13 02:10:46 eeh Exp $ */ /* * Mach Operating System @@ -40,7 +40,7 @@ void db_dump_stack __P((db_expr_t, int, db_expr_t, char *)); void db_dump_trap __P((db_expr_t, int, db_expr_t, char *)); void db_print_window __P((u_int64_t)); -#define INKERNEL(va) (((vm_offset_t)(va)) >= USRSTACK) /* Not really true, y'know */ +#define INKERNEL(va) (((vaddr_t)(va)) >= USRSTACK) /* Not really true, y'know */ void db_stack_trace_cmd(addr, have_addr, count, modif) @@ -220,7 +220,7 @@ db_dump_stack(addr, have_addr, count, modif) db_printf("Window %x ", i); db_print_window(frame - BIAS); if (!INKERNEL(((struct frame64 *)(frame)))) - frame = fuword(((vm_offset_t)&((struct frame64 *)frame)->fr_fp)+4); + frame = fuword(((vaddr_t)&((struct frame64 *)frame)->fr_fp)+4); else frame = ((struct frame64 *)frame)->fr_fp; } else { diff --git a/sys/arch/sparc64/sparc64/genassym.c b/sys/arch/sparc64/sparc64/genassym.c index eb798ea994b..1d3b2ac64b7 100644 --- a/sys/arch/sparc64/sparc64/genassym.c +++ b/sys/arch/sparc64/sparc64/genassym.c @@ -1,4 +1,4 @@ -/* $NetBSD: genassym.c,v 1.2 1998/07/07 03:05:04 eeh Exp $ */ +/* $NetBSD: genassym.c,v 1.3 1998/08/13 02:10:46 eeh Exp $ */ /* * Copyright (c) 1992, 1993 @@ -113,6 +113,7 @@ main() /* general constants */ def("BSD", BSD); def("USRSTACK", USRSTACK); + def("PADDRT", sizeof(paddr_t)); /* proc fields and values */ off("P_ADDR", struct proc, p_addr); diff --git a/sys/arch/sparc64/sparc64/genassym.cf b/sys/arch/sparc64/sparc64/genassym.cf index a4ef28b47af..b93ecbc0c59 100644 --- a/sys/arch/sparc64/sparc64/genassym.cf +++ b/sys/arch/sparc64/sparc64/genassym.cf @@ -1,4 +1,4 @@ -# $NetBSD: genassym.cf,v 1.2 1998/07/17 02:33:13 eeh Exp $ +# $NetBSD: genassym.cf,v 1.3 1998/08/13 02:10:46 eeh Exp $ # # Copyright (c) 1997 Christos Zoulas. All rights reserved. @@ -81,6 +81,7 @@ include <sparc64/dev/fdvar.h> # general constants define BSD BSD define USRSTACK USRSTACK +define PADDRT sizeof(paddr_t) # proc fields and values define P_ADDR offsetof(struct proc, p_addr) diff --git a/sys/arch/sparc64/sparc64/intr.c b/sys/arch/sparc64/sparc64/intr.c index ab57bf9f595..586f5ae6cec 100644 --- a/sys/arch/sparc64/sparc64/intr.c +++ b/sys/arch/sparc64/sparc64/intr.c @@ -1,4 +1,4 @@ -/* $NetBSD: intr.c,v 1.6 1998/07/07 03:05:04 eeh Exp $ */ +/* $NetBSD: intr.c,v 1.7 1998/08/13 02:10:46 eeh Exp $ */ /* * Copyright (c) 1992, 1993 @@ -333,12 +333,12 @@ intr_fasttrap(level, vec) I_MOVi(I_L3, level), I_BA(0, displ), I_RDPSR(I_L0)); #endif /* kernel text is write protected -- let us in for a moment */ - pmap_changeprot(pmap_kernel(), (vm_offset_t)tv, + pmap_changeprot(pmap_kernel(), (vaddr_t)tv, VM_PROT_READ|VM_PROT_WRITE, 1); tv->tv_instr[0] = I_SETHI(I_L3, hi22); /* sethi %hi(vec),%l3 */ tv->tv_instr[1] = I_JMPLri(I_G0, I_L3, lo10);/* jmpl %l3+%lo(vec),%g0 */ tv->tv_instr[2] = I_RDPSR(I_L0); /* mov %psr, %l0 */ - pmap_changeprot(pmap_kernel(), (vm_offset_t)tv, VM_PROT_READ, 1); + pmap_changeprot(pmap_kernel(), (vaddr_t)tv, VM_PROT_READ, 1); fastvec |= 1 << level; splx(s); } diff --git a/sys/arch/sparc64/sparc64/kgdb_stub.c b/sys/arch/sparc64/sparc64/kgdb_stub.c index 024137bc8a5..893983b2012 100644 --- a/sys/arch/sparc64/sparc64/kgdb_stub.c +++ b/sys/arch/sparc64/sparc64/kgdb_stub.c @@ -1,4 +1,4 @@ -/* $NetBSD: kgdb_stub.c,v 1.1.1.1 1998/06/20 04:58:52 eeh Exp $ */ +/* $NetBSD: kgdb_stub.c,v 1.2 1998/08/13 02:10:46 eeh Exp $ */ /* * Copyright (c) 1992, 1993 @@ -84,9 +84,9 @@ int kgdb_active = 0; /* remote debugging active if != 0 */ int kgdb_debug_panic = 0; /* != 0 waits for remote on panic */ #if defined(SUN4M) -#define getpte4m(va) lda(((vm_offset_t)va & 0xFFFFF000) | \ +#define getpte4m(va) lda(((vaddr_t)va & 0xFFFFF000) | \ ASI_SRMMUFP_L3, ASI_SRMMUFP) -void setpte4m __P((vm_offset_t, int)); +void setpte4m __P((vaddr_t, int)); #endif #define getpte4(va) lda(va, ASI_PTE) @@ -672,7 +672,7 @@ kdb_mkwrite(addr, len) for (; len > 0; len -= NBPG, addr += NBPG) #if defined(SUN4M) if (CPU_ISSUN4M) - setpte4m((vm_offset_t)addr, + setpte4m((vaddr_t)addr, getpte4m(addr) | PPROT_WRITE); else #endif diff --git a/sys/arch/sparc64/sparc64/locore.s b/sys/arch/sparc64/sparc64/locore.s index 08fc171a25d..22d26642f60 100644 --- a/sys/arch/sparc64/sparc64/locore.s +++ b/sys/arch/sparc64/sparc64/locore.s @@ -54,6 +54,7 @@ #define TRAPSTATS #undef TRAPS_USE_IG #undef LOCKED_PCB +#define HWREF #include "opt_ddb.h" #include "opt_uvm.h" @@ -732,7 +733,11 @@ ufast_DMMU_protection: ! 06c = fast data access MMU protection inc %g6 ! DEBUG stw %g6, [%g7] ! DEBUG 0: ! DEBUG +#ifdef HWREF ba,a,pt %xcc, dmmu_write_fault +#else + ba,a,pt %xcc, winfault +#endif nop TA32 UTRAP(0x070) ! Implementation dependent traps @@ -971,7 +976,11 @@ kfast_DMMU_protection: ! 06c = fast data access MMU protection inc %g6 ! DEBUG stw %g6, [%g7] ! DEBUG 0: ! DEBUG +#ifdef HWREF ba,a,pt %xcc, dmmu_write_fault +#else + ba,a,pt %xcc, winfault +#endif nop TA32 UTRAP(0x070) ! Implementation dependent traps @@ -1253,7 +1262,7 @@ traceit: mov %g0, %g5 brz,pn %g6, 2f andncc %g3, (TRACESIZ-1), %g0 - ldsw [%g6+P_PID], %g5 +! ldsw [%g6+P_PID], %g5 ! Load PID 2: set _C_LABEL(cpcb), %g6 ! Load up nsaved @@ -1910,11 +1919,19 @@ dmmu_write_fault: btst TTE_REAL_W|TTE_W, %g4 ! Is it a ref fault? bz,pn %xcc, winfix ! No -- really fault or %g4, TTE_MODIFY|TTE_ACCESS|TTE_W, %g4 ! Update the modified bit - ldxa [%g0] ASI_DMMU_8KPTR, %g2 ! Load DMMU 8K TSB pointer + + /* Need to check for and handle large pages. */ + srlx %g4, 61, %g5 ! Isolate the size bits + andcc %g5, 0x3, %g5 ! 8K? + bnz,pn %icc, winfix ! We punt to the pmap code since we can't handle policy + + ldxa [%g0] ASI_DMMU_8KPTR, %g2 ! Load DMMU 8K TSB pointer ldxa [%g0] ASI_DMMU, %g1 ! Hard coded for unified 8K TSB Load DMMU tag target register stxa %g4, [%g6] ASI_PHYS_CACHED ! and write it out stx %g1, [%g2] ! Update TSB entry tag stx %g4, [%g2+8] ! Update TSB entry data + + set trapbase, %g6 ! debug stx %g1, [%g6+0x40] ! debug set 0x88, %g5 ! debug @@ -1985,6 +2002,7 @@ data_miss: #if DEBUG /* Make sure we don't try to replace a kernel translation */ /* This should not be necessary */ + brnz,pt %g6, Ludata_miss ! If user context continue miss sethi %hi(KERNBASE), %g5 ! Don't need %lo set 0x0400000, %g6 ! 4MB sub %g3, %g5, %g5 @@ -2156,6 +2174,7 @@ winfixfill: inc %g7 stw %g7, [%g4] #endif + wrpr %g2, %g0, %tl ! Restore trap level -- we need to reuse it set return_from_trap, %g4 set CTX_PRIMARY, %g7 wrpr %g4, 0, %tpc @@ -2212,7 +2231,7 @@ winfixspill: mov %g0, %g5 brz,pn %g6, 2f andncc %g3, (TRACESIZ-1), %g0 - ldsw [%g6+P_PID], %g5 +! ldsw [%g6+P_PID], %g5 ! Load PID 2: movnz %icc, %g0, %g3 @@ -2531,7 +2550,7 @@ winfixsave: mov %g0, %g5 brz,pn %g6, 2f andncc %g3, (TRACESIZ-1), %g0 - ldsw [%g6+P_PID], %g5 +! ldsw [%g6+P_PID], %g5 ! Load PID 2: movnz %icc, %g0, %g3 @@ -2792,6 +2811,7 @@ instr_miss: #if 1 /* Make sure we don't try to replace a kernel translation */ /* This should not be necessary */ + brnz,pt %g6, Lutext_miss ! If user context continue miss sethi %hi(KERNBASE), %g5 ! Don't need %lo set 0x0400000, %g6 ! 4MB sub %g3, %g5, %g5 @@ -4182,7 +4202,7 @@ return_from_trap: ldx [%g6 + CCFSZ + TF_PC], %g2 ldx [%g6 + CCFSZ + TF_NPC], %g3 -#ifdef DEBUG +#ifdef NOTDEF_DEBUG ldub [%g6 + CCFSZ + TF_PIL], %g5 ! restore %pil wrpr %g5, %pil ! DEBUG #endif @@ -4229,7 +4249,7 @@ rft_kernel: mov %g0, %g5 brz,pn %g6, 2f andncc %g3, (TRACESIZ-1), %g0 - ldsw [%g6+P_PID], %g5 +! ldsw [%g6+P_PID], %g5 ! Load PID 2: set _C_LABEL(cpcb), %g6 ! Load up nsaved @@ -4281,6 +4301,7 @@ rft_user: ! sethi %hi(_C_LABEL(want_ast)), %g7 ! (done above) lduw [%g7 + %lo(_C_LABEL(want_ast))], %g7! want AST trap? /* This is probably necessary */ + wrpr %g0, 1, %tl ! Sometimes we get here w/TL=0 (How?) wrpr %g3, 0, %tnpc wrpr %g2, 0, %tpc wrpr %g1, 0, %tstate @@ -4332,12 +4353,11 @@ rft_user: 2: #endif - #ifdef TRAPWIN /* * First: blast away our caches */ - call _C_LABEL(blast_vcache) +! call _C_LABEL(blast_vcache) ! Clear any possible cache conflict /* * NB: only need to do this after a cache miss */ @@ -4573,7 +4593,7 @@ badregs: mov %g0, %g5 brz,pn %g6, 2f andncc %g3, (TRACESIZ-1), %g0 - ldsw [%g6+P_PID], %g5 +! ldsw [%g6+P_PID], %g5 ! Load PID 2: set _C_LABEL(cpcb), %g6 ! Load up nsaved @@ -4923,7 +4943,7 @@ dostart: * Set supervisor mode, interrupt level >= 13, traps enabled */ wrpr %g0, 13, %pil - wrpr %g0, PSTATE_INTR, %pstate + wrpr %g0, PSTATE_INTR|PSTATE_PEF, %pstate #ifdef DDB /* * First, check for DDB arguments. A pointer to an argument @@ -5354,8 +5374,8 @@ _C_LABEL(openfirmware): ld [%l7+%lo(romp)], %o4 ! v9 stack, just load the addr and callit save %sp, -CC64FSZ, %sp rdpr %pil, %i2 - wrpr %g0, 15, %pil -#if 1 + wrpr %g0, PIL_IMP, %pil +#if 0 !!! !!! Since prom addresses overlap user addresses !!! we need to clear out the dcache on the way @@ -5384,7 +5404,7 @@ _C_LABEL(openfirmware): mov %l5, %g5 mov %l6, %g6 mov %l7, %g7 -#if 1 +#if 0 !!! !!! Since prom addresses overlap user addresses !!! we need to clear out the dcache on the way @@ -5406,7 +5426,7 @@ _C_LABEL(openfirmware): mov %o5, %o7 #endif save %sp, -CC64FSZ, %sp ! Get a new 64-bit stack frame -#if 1 +#if 0 call _C_LABEL(blast_vcache) nop #endif @@ -5420,16 +5440,16 @@ _C_LABEL(openfirmware): mov %g1, %l1 mov %g2, %l2 mov %g3, %l3 - wrpr %g0, 12, %pil + wrpr %g0, PIL_IMP, %pil mov %g4, %l4 mov %g5, %l5 mov %g6, %l6 mov %g7, %l7 jmpl %o1, %o7 - wrpr %g0, PSTATE_PROM, %pstate ! Enable 64-bit addresses for the prom + wrpr %g0, PSTATE_PROM|PSTATE_IE, %pstate ! Enable 64-bit addresses for the prom wrpr %l0, 0, %pstate wrpr %i2, 0, %pil -#if 1 +#if 0 call _C_LABEL(blast_vcache) nop #endif @@ -5444,7 +5464,7 @@ _C_LABEL(openfirmware): restore %o0, %g0, %o0 /* - * tlb_flush_pte(vm_offset_t va, int ctx) + * tlb_flush_pte(vaddr_t va, int ctx) * * Flush tte from both IMMU and DMMU. * @@ -5471,7 +5491,7 @@ _C_LABEL(tlb_flush_pte): mov %i1, %o1 andn %i0, 0xfff, %o3 or %o3, 0x010, %o3 - call printf + call db_printf mov %i0, %o2 restore set KERNBASE, %o4 @@ -7180,7 +7200,7 @@ Lsw_havectx: mov %g0, %o5 brz,pn %o0, 2f andncc %o3, (TRACESIZ-1), %g0 - ldsw [%o0+P_PID], %o5 +! ldsw [%o0+P_PID], %o5 ! Load PID 2: movnz %icc, %g0, %o3 @@ -7563,6 +7583,14 @@ ENTRY(_remque) * to sync the I$. */ ENTRY(pmap_zero_page) + !! + !! If we have 64-bit physical addresses (and we do now) + !! we need to move the pointer from %o0:%o1 to %o0 + !! +#if PADDRT == 8 + sllx %o0, 32, %o0 + or %o0, %o1, %o0 +#endif #ifdef DEBUG set pmapdebug, %o4 ld [%o4], %o4 @@ -7622,6 +7650,17 @@ ENTRY(pmap_zero_page) * pmap_zero_page. */ ENTRY(pmap_copy_page) + !! + !! If we have 64-bit physical addresses (and we do now) + !! we need to move the pointer from %o0:%o1 to %o0 and + !! %o2:%o3 to %o1 + !! +#if PADDRT == 8 + sllx %o0, 32, %o0 + or %o0, %o1, %o0 + sllx %o2, 32, %o1 + or %o3, %o1, %o1 +#endif #ifdef DEBUG set pmapdebug, %o4 ld [%o4], %o4 @@ -7757,7 +7796,7 @@ ENTRY(pmap_copy_page) #endif /* - * extern int64_t pseg_get(struct pmap* %o0, vm_offset_t addr %o1); + * extern int64_t pseg_get(struct pmap* %o0, vaddr_t addr %o1); * * Return TTE at addr in pmap. Uses physical addressing only. * pmap->pm_physaddr must by the physical address of pm_segs @@ -7765,7 +7804,11 @@ ENTRY(pmap_copy_page) */ ENTRY(pseg_get) ! flushw ! Make sure we don't have stack probs & lose hibits of %o +#if PADDRT == 8 + ldx [%o0 + PM_PHYS], %o0 ! pmap->pm_segs +#else lduw [%o0 + PM_PHYS], %o0 ! pmap->pm_segs +#endif srlx %o1, 32, %o2 brnz,pn %o2, 1f ! >32 bits? not here srlx %o1, STSHIFT-2, %o3 @@ -7788,7 +7831,7 @@ ENTRY(pseg_get) clr %o0 /* - * extern void pseg_set(struct pmap* %o0, vm_offset_t addr %o1, int64_t tte %o2:%o3); + * extern void pseg_set(struct pmap* %o0, vaddr_t addr %o1, int64_t tte %o2:%o3); * * Set a pseg entry to a particular TTE value. Returns 0 on success, else the pointer * to the empty pseg entry. Allocate a page, put the phys addr in the returned location, @@ -7797,8 +7840,11 @@ ENTRY(pseg_get) */ ENTRY(pseg_set) flushw ! Make sure we don't have stack probs & lose hibits of %o - +#if PADDRT == 8 + ldx [%o0 + PM_PHYS], %o4 ! pmap->pm_segs +#else lduw [%o0 + PM_PHYS], %o4 ! pmap->pm_segs +#endif #ifdef DEBUG mov %o0, %g1 ! DEBUG #endif diff --git a/sys/arch/sparc64/sparc64/machdep.c b/sys/arch/sparc64/sparc64/machdep.c index 7468892d904..7b2f9a413cb 100644 --- a/sys/arch/sparc64/sparc64/machdep.c +++ b/sys/arch/sparc64/sparc64/machdep.c @@ -1,4 +1,4 @@ -/* $NetBSD: machdep.c,v 1.3 1998/07/07 03:05:04 eeh Exp $ */ +/* $NetBSD: machdep.c,v 1.4 1998/08/13 02:10:47 eeh Exp $ */ /*- * Copyright (c) 1996, 1997, 1998 The NetBSD Foundation, Inc. @@ -130,8 +130,7 @@ #include <machine/frame.h> #include <machine/cpu.h> #include <machine/pmap.h> -#include <machine/oldmon.h> -#include <machine/bsd_openprom.h> +#include <machine/openfirm.h> #include <machine/sparc64.h> #include <sparc64/sparc64/asm.h> @@ -147,7 +146,7 @@ vm_map_t phys_map = NULL; #else vm_map_t buffer_map; #endif -extern vm_offset_t avail_end; +extern vaddr_t avail_end; /* * Declare these as initialized data so we can patch them. @@ -178,7 +177,7 @@ int safepri = 0; * dvmamap is used to manage DVMA memory. Note: this coincides with * the memory range in `phys_map' (which is mostly a place-holder). */ -vm_offset_t dvma_base, dvma_end; +vaddr_t dvma_base, dvma_end; struct map *dvmamap; static int ndvmamap; /* # of entries in dvmamap */ @@ -193,15 +192,13 @@ void cpu_startup() { register unsigned i; - register caddr_t v; - register int sz; int base, residual; #ifdef DEBUG extern int pmapdebug; int opmapdebug = pmapdebug; #endif - vm_offset_t minaddr, maxaddr; - vm_size_t size; + vaddr_t minaddr, maxaddr; + vsize_t size; extern struct user *proc0paddr; #ifdef DEBUG @@ -220,27 +217,6 @@ cpu_startup() #endif printf("real mem = %d\n", ctob(physmem)); -#if 0 - /* - * This is now handled in pmap_bootstrap - */ - /* - * Find out how much space we need, allocate it, - * and then give everything true virtual addresses. - */ - sz = (int)allocsys((caddr_t)0); - -#if defined(UVM) - if ((v = (caddr_t)uvm_km_alloc(kernel_map, round_page(sz))) == 0) - panic("startup: no room for tables"); -#else - if ((v = (caddr_t)kmem_alloc(kernel_map, round_page(sz))) == 0) - panic("startup: no room for tables"); -#endif - - if (allocsys(v) - v != sz) - panic("startup: table size inconsistency"); -#endif #if defined(UVM) /* * allocate virtual and physical memory for the buffers. @@ -248,13 +224,13 @@ cpu_startup() size = MAXBSIZE * nbuf; /* # bytes for buffers */ /* allocate VM for buffers... area is not managed by VM system */ - if (uvm_map(kernel_map, (vm_offset_t *) &buffers, round_page(size), + if (uvm_map(kernel_map, (vaddr_t *) &buffers, round_page(size), NULL, UVM_UNKNOWN_OFFSET, UVM_MAPFLAG(UVM_PROT_NONE, UVM_PROT_NONE, UVM_INH_NONE, UVM_ADV_NORMAL, 0)) != KERN_SUCCESS) panic("cpu_startup: cannot allocate VM for buffers"); - minaddr = (vm_offset_t) buffers; + minaddr = (vaddr_t) buffers; if ((bufpages / nbuf) >= btoc(MAXBSIZE)) { bufpages = btoc(MAXBSIZE) * nbuf; /* do not overallocate RAM */ } @@ -263,8 +239,8 @@ cpu_startup() /* now allocate RAM for buffers */ for (i = 0 ; i < nbuf ; i++) { - vm_offset_t curbuf; - vm_size_t curbufsize; + vaddr_t curbuf; + vsize_t curbufsize; struct vm_page *pg; /* @@ -273,7 +249,7 @@ cpu_startup() * for the first "residual" buffers, and then we allocate * "base" pages for the rest. */ - curbuf = (vm_offset_t) buffers + (i * MAXBSIZE); + curbuf = (vaddr_t) buffers + (i * MAXBSIZE); curbufsize = CLBYTES * ((i < residual) ? (base+1) : base); while (curbufsize) { @@ -294,11 +270,11 @@ cpu_startup() */ size = MAXBSIZE * nbuf; - buffer_map = kmem_suballoc(kernel_map, (vm_offset_t *)&buffers, + buffer_map = kmem_suballoc(kernel_map, (vaddr_t *)&buffers, &maxaddr, size, TRUE); - minaddr = (vm_offset_t)buffers; - if (vm_map_find(buffer_map, vm_object_allocate(size), (vm_offset_t)0, + minaddr = (vaddr_t)buffers; + if (vm_map_find(buffer_map, vm_object_allocate(size), (vaddr_t)0, &minaddr, size, FALSE) != KERN_SUCCESS) panic("startup: cannot allocate buffers"); @@ -311,8 +287,8 @@ cpu_startup() } for (i = 0; i < nbuf; i++) { - vm_size_t curbufsize; - vm_offset_t curbuf; + vsize_t curbufsize; + vaddr_t curbuf; /* * First <residual> buffers get (base+1) physical pages @@ -321,7 +297,7 @@ cpu_startup() * The rest of each buffer occupies virtual space, * but has no physical memory allocated for it. */ - curbuf = (vm_offset_t)buffers + i * MAXBSIZE; + curbuf = (vaddr_t)buffers + i * MAXBSIZE; curbufsize = CLBYTES * (i < residual ? base+1 : base); vm_map_pageable(buffer_map, curbuf, curbuf+curbufsize, FALSE); vm_map_simplify(buffer_map, curbuf); @@ -373,10 +349,10 @@ cpu_startup() * Finally, allocate mbuf cluster submap. */ #if defined(UVM) - mb_map = uvm_km_suballoc(kernel_map, (vm_offset_t *)&mbutl, &maxaddr, + mb_map = uvm_km_suballoc(kernel_map, (vaddr_t *)&mbutl, &maxaddr, VM_MBUF_SIZE, FALSE, FALSE, NULL); #else - mb_map = kmem_suballoc(kernel_map, (vm_offset_t *)&mbutl, &maxaddr, + mb_map = kmem_suballoc(kernel_map, (vaddr_t *)&mbutl, &maxaddr, VM_MBUF_SIZE, FALSE); #endif /* @@ -506,7 +482,6 @@ setregs(p, pack, stack) register struct trapframe *tf = p->p_md.md_tf; register struct fpstate *fs; register int64_t tstate; - register struct rwindow32 *rp; #if 0 /* Make sure our D$ is not polluted w/bad data */ @@ -542,7 +517,6 @@ setregs(p, pack, stack) tf->tf_global[1] = (int)PS_STRINGS; tf->tf_pc = pack->ep_entry & ~3; tf->tf_npc = tf->tf_pc + 4; -#if 1 /* XXXX Needs to support 64-bit frames */ stack -= sizeof(struct rwindow32); tf->tf_out[6] = stack; @@ -554,12 +528,6 @@ setregs(p, pack, stack) printf("setregs: setting tf %x sp %x\n", tf, stack); } #endif -#else - stack -= sizeof(union rwindow); - *rp = *(struct rwindow32 *)tf->tf_out[6]; - tf->tf_in[6] = stack; - rp->rw_in[6] = stack; -#endif } #ifdef DEBUG @@ -782,7 +750,9 @@ sys_sigreturn(p, v, retval) struct sigcontext sc; register struct trapframe *tf; struct rwindow32 *rwstack, *kstack; +#ifndef TRAPWIN int i; +#endif /* First ensure consistent stack state (see sendsig). */ write_user_windows(); @@ -973,6 +943,7 @@ haltsys: } else str[0] = 0; romboot(str); + panic("cpu_reboot -- failed"); /*NOTREACHED*/ } @@ -1011,14 +982,14 @@ cpu_dumpconf() } #define BYTES_PER_DUMP (32 * 1024) /* must be a multiple of pagesize */ -static vm_offset_t dumpspace; +static vaddr_t dumpspace; caddr_t reserve_dumppages(p) caddr_t p; { - dumpspace = (vm_offset_t)p; + dumpspace = (vaddr_t)p; return (p + BYTES_PER_DUMP); } @@ -1129,6 +1100,7 @@ dumpsys() } } +void trapdump __P((struct trapframe*)); /* * dump out a trapframe. */ @@ -1193,10 +1165,10 @@ mapdev(phys, virt, offset, size) register struct rom_reg *phys; register int offset, virt, size; { - register vm_offset_t v; + register vaddr_t v; register u_int64_t pa; register void *ret; - static vm_offset_t iobase; + static vaddr_t iobase; if (iobase == NULL) iobase = IODEV_BASE; @@ -1386,9 +1358,18 @@ dvmamap_free (addr, size) bus_size_t size; { int s, pn, npf; + vaddr_t a = addr; + u_int sz = size; - npf = btoc(size); - pn = vtorc(addr); + npf = btoc(sz); + pn = vtorc(a); +#ifdef DEBUG + if (npf <= 0 || pn <= 0) { + printf("dvmamap_free: npf=%d pn=%p a=%p sz=%d\n"); + Debugger(); + return; + } +#endif s = splimp(); rmfree(dvmamap, npf, pn); wakeup(dvmamap); @@ -1441,7 +1422,7 @@ _bus_dmamap_create(t, size, nsegments, maxsegsz, boundary, flags, dmamp) map->_dm_segcnt = nsegments; map->_dm_maxsegsz = maxsegsz; map->_dm_boundary = boundary; - map->_dm_flags = flags & ~(BUS_DMA_WAITOK|BUS_DMA_NOWAIT|BUS_DMA_COHERENT|BUS_DMA_WRITE|BUS_DMA_CACHE); + map->_dm_flags = flags & ~(BUS_DMA_WAITOK|BUS_DMA_NOWAIT|BUS_DMA_COHERENT|BUS_DMA_NOWRITE|BUS_DMA_NOCACHE); map->dm_mapsize = 0; /* no valid mappings */ map->dm_nsegs = 0; @@ -1477,7 +1458,7 @@ _bus_dmamap_load(t, map, buf, buflen, p, flags) { bus_size_t sgsize; bus_addr_t dvmaddr; - vm_offset_t vaddr = (vm_offset_t)buf; + vaddr_t vaddr = (vaddr_t)buf; /* * Make sure that on error condition we return "no valid mappings". @@ -1516,7 +1497,7 @@ _bus_dmamap_load(t, map, buf, buflen, p, flags) */ map->dm_mapsize = buflen; map->dm_nsegs = 1; - map->dm_segs[0].ds_addr = dvmaddr + (vaddr&PGOFSET); + map->dm_segs[0].ds_addr = dvmaddr + (vaddr & PGOFSET); map->dm_segs[0].ds_len = sgsize; /* Mapping is bus dependent */ @@ -1577,23 +1558,23 @@ _bus_dmamap_unload(t, map) bus_dma_tag_t t; bus_dmamap_t map; { - bus_addr_t addr; - bus_size_t len; + bus_addr_t dvmaddr; + bus_size_t sgsize; if (map->dm_nsegs != 1) panic("_bus_dmamap_unload: nsegs = %d", map->dm_nsegs); - addr = map->dm_segs[0].ds_addr; - len = map->dm_segs[0].ds_len; - - /* Unmapping is bus dependent */ - dvmamap_free(addr, len); + dvmaddr = (map->dm_segs[0].ds_addr & ~PGOFSET); + sgsize = map->dm_segs[0].ds_len; /* Mark the mappings as invalid. */ map->dm_mapsize = 0; map->dm_nsegs = 0; - cache_flush((caddr_t)addr, len); + /* Unmapping is bus dependent */ + dvmamap_free(dvmaddr, sgsize); + + cache_flush((caddr_t)dvmaddr, (u_int) sgsize); } /* @@ -1636,7 +1617,7 @@ _bus_dmamap_sync(t, map, offset, len, ops) } } -extern vm_offset_t vm_first_phys, vm_num_phys; +extern paddr_t vm_first_phys, vm_num_phys; /* * Common function for DMA-safe memory allocation. May be called * by bus-specific DMA memory allocation functions. @@ -1650,10 +1631,8 @@ _bus_dmamem_alloc(t, size, alignment, boundary, segs, nsegs, rsegs, flags) int *rsegs; int flags; { - vm_offset_t curaddr; - vm_offset_t low, high; + vaddr_t low, high; bus_addr_t dvmaddr; - vm_page_t m; struct pglist *mlist; int error; @@ -1752,9 +1731,7 @@ _bus_dmamem_map(t, segs, nsegs, size, kvap, flags) caddr_t *kvap; int flags; { - vm_page_t m; - vm_offset_t va, sva; - bus_addr_t addr; + vaddr_t va, sva; struct pglist *mlist; int r, cbit; size_t oversize; @@ -1765,7 +1742,12 @@ _bus_dmamem_map(t, segs, nsegs, size, kvap, flags) panic("_bus_dmamem_map: nsegs = %d", nsegs); cbit = PMAP_NC; +#if 0 + /* This went away with dvma_mapin. We may need it later */ align = dvma_cachealign ? dvma_cachealign : PAGE_SIZE; +#else + align = PAGE_SIZE; +#endif size = round_page(size); @@ -1779,7 +1761,7 @@ _bus_dmamem_map(t, segs, nsegs, size, kvap, flags) UVM_MAPFLAG(UVM_PROT_NONE, UVM_PROT_NONE, UVM_INH_NONE, UVM_ADV_NORMAL, 0)); #else - r = vm_map_find(kernel_map, NULL, (vm_offset_t)0, &sva, oversize, TRUE); + r = vm_map_find(kernel_map, NULL, (vaddr_t)0, &sva, oversize, TRUE); #endif if (r != KERN_SUCCESS) return (ENOMEM); @@ -1845,12 +1827,12 @@ _bus_dmamem_unmap(t, kva, size) size = round_page(size); #if defined(UVM) - uvm_unmap(kernel_map, (vm_offset_t)kva, (vm_offset_t)kva + size, 0); + uvm_unmap(kernel_map, (vaddr_t)kva, (vaddr_t)kva + size, 0); #else - vm_map_remove(kernel_map, (vm_offset_t)kva, (vm_offset_t)kva + size); + vm_map_remove(kernel_map, (vaddr_t)kva, (vaddr_t)kva + size); #endif #if 0 - kmem_free(kernel_map, (vm_offset_t)kva, size); + kmem_free(kernel_map, (vaddr_t)kva, size); #endif } @@ -1893,7 +1875,7 @@ struct sparc_bus_dma_tag mainbus_dma_tag = { * Base bus space handlers. */ static int sparc_bus_map __P(( bus_space_tag_t, bus_type_t, bus_addr_t, - bus_size_t, int, vm_offset_t, + bus_size_t, int, vaddr_t, bus_space_handle_t *)); static int sparc_bus_unmap __P((bus_space_tag_t, bus_space_handle_t, bus_size_t)); @@ -1912,13 +1894,12 @@ sparc_bus_map(t, iospace, addr, size, flags, vaddr, hp) bus_type_t iospace; bus_addr_t addr; bus_size_t size; - vm_offset_t vaddr; + vaddr_t vaddr; bus_space_handle_t *hp; { - vm_offset_t v; + vaddr_t v; u_int64_t pa; - unsigned int pmtype; -static vm_offset_t iobase; +static vaddr_t iobase; if (iobase == NULL) @@ -1969,8 +1950,8 @@ sparc_bus_unmap(t, bh, size) bus_size_t size; bus_space_handle_t bh; { - vm_offset_t va = trunc_page((vm_offset_t)bh); - vm_offset_t endva = va + round_page(size); + vaddr_t va = trunc_page((vaddr_t)bh); + vaddr_t endva = va + round_page(size); pmap_remove(pmap_kernel(), va, endva); return (0); @@ -1984,13 +1965,17 @@ sparc_bus_mmap(t, iospace, paddr, flags, hp) int flags; bus_space_handle_t *hp; { - *hp = (bus_space_handle_t)(paddr | PMAP_IOENC(iospace) | PMAP_NC); + *hp = (bus_space_handle_t)(paddr>>PGSHIFT); +#if 0 + printf("sparc_bus_mmap: encoding pa %x:%x as %x:%x becomes %x:%x\n", + (int)(paddr>>32), (int)(paddr), (int)((*hp)>>32), (int)*hp, + (int)(pmap_phys_address(*hp)>>32), (int)(pmap_phys_address(*hp))); +#endif return (0); } /* - * Establish a temporary bus mapping for device probing. - */ + * Establish a temporary bus mapping for device probing. */ int bus_space_probe(tag, btype, paddr, size, offset, flags, callback, arg) bus_space_tag_t tag; @@ -2028,7 +2013,6 @@ sparc_mainbus_intr_establish(t, level, flags, handler, arg) { struct intrhand *ih; -printf("Warning: direct call to sparc_mainbus_intr_establish for level %x\n", level); ih = (struct intrhand *) malloc(sizeof(struct intrhand), M_DEVBUF, M_NOWAIT); if (ih == NULL) diff --git a/sys/arch/sparc64/sparc64/mem.c b/sys/arch/sparc64/sparc64/mem.c index 0d578098f2f..62d7163f91c 100644 --- a/sys/arch/sparc64/sparc64/mem.c +++ b/sys/arch/sparc64/sparc64/mem.c @@ -1,4 +1,4 @@ -/* $NetBSD: mem.c,v 1.2 1998/07/07 03:05:05 eeh Exp $ */ +/* $NetBSD: mem.c,v 1.3 1998/08/13 02:10:47 eeh Exp $ */ /* * Copyright (c) 1988 University of Utah. @@ -62,8 +62,8 @@ #include <vm/vm.h> -extern vm_offset_t prom_vstart; -extern vm_offset_t prom_vend; +extern vaddr_t prom_vstart; +extern vaddr_t prom_vend; caddr_t zeropage; /*ARGSUSED*/ @@ -95,7 +95,7 @@ mmrw(dev, uio, flags) struct uio *uio; int flags; { - register vm_offset_t o, v; + register vaddr_t o, v; register int c; register struct iovec *iov; int error = 0; @@ -132,14 +132,14 @@ mmrw(dev, uio, flags) error = EFAULT; goto unlock; } - pmap_enter(pmap_kernel(), (vm_offset_t)vmmap, + pmap_enter(pmap_kernel(), (vaddr_t)vmmap, trunc_page(v), uio->uio_rw == UIO_READ ? VM_PROT_READ : VM_PROT_WRITE, TRUE); o = uio->uio_offset & PGOFSET; c = min(uio->uio_resid, (int)(NBPG - o)); error = uiomove((caddr_t)vmmap + o, c, uio); - pmap_remove(pmap_kernel(), (vm_offset_t)vmmap, - (vm_offset_t)vmmap + NBPG); + pmap_remove(pmap_kernel(), (vaddr_t)vmmap, + (vaddr_t)vmmap + NBPG); break; #else /* On v9 we can just use the physical ASI and not bother w/mapin & mapout */ diff --git a/sys/arch/sparc64/sparc64/ofw_machdep.c b/sys/arch/sparc64/sparc64/ofw_machdep.c index ea18fa83bd4..fe49a373aa8 100644 --- a/sys/arch/sparc64/sparc64/ofw_machdep.c +++ b/sys/arch/sparc64/sparc64/ofw_machdep.c @@ -1,4 +1,4 @@ -/* $NetBSD: ofw_machdep.c,v 1.1.1.1 1998/06/20 04:58:52 eeh Exp $ */ +/* $NetBSD: ofw_machdep.c,v 1.2 1998/08/13 02:10:47 eeh Exp $ */ /* * Copyright (C) 1996 Wolfgang Solfrank. @@ -102,18 +102,18 @@ get_memory_handle() { */ int prom_set_trap_table(tba) -vm_offset_t tba; +vaddr_t tba; { static struct { int pad0; char *name; int64_t nargs; int64_t nreturns; - int pad1; vm_offset_t tba; + u_int64_t tba; } args = { 0,"SUNW,set-trap-table", 1, 0, - 0, NULL + NULL }; args.tba = tba; @@ -127,7 +127,7 @@ vm_offset_t tba; */ u_int64_t prom_vtop(vaddr) -vm_offset_t vaddr; +vaddr_t vaddr; { static struct { int pad0; char *name; @@ -135,7 +135,7 @@ vm_offset_t vaddr; int64_t nreturns; int pad1; char *method; int pad2; int ihandle; - int pad3; vm_offset_t vaddr; + u_int64_t vaddr; int64_t status; int64_t retaddr; int64_t mode; @@ -177,9 +177,9 @@ vm_offset_t vaddr; * * Only works while the prom is actively mapping us. */ -u_int64_t +vaddr_t prom_claim_virt(vaddr, len) -vm_offset_t vaddr; +vaddr_t vaddr; int len; { static struct { @@ -190,7 +190,7 @@ int len; int pad2; int ihandle; u_int64_t align; u_int64_t len; - int pad3; vm_offset_t vaddr; + u_int64_t vaddr; int64_t status; int64_t retaddr; } args = { @@ -201,7 +201,7 @@ int len; 0, 0, 0, 0, - 0, NULL, + NULL, 0, 0 }; @@ -223,7 +223,7 @@ int len; * * Only works while the prom is actively mapping us. */ -u_int64_t +vaddr_t prom_alloc_virt(len, align) int len; int align; @@ -270,7 +270,7 @@ int align; */ int prom_free_virt(vaddr, len) -vm_offset_t vaddr; +vaddr_t vaddr; int len; { static struct { @@ -280,7 +280,7 @@ int len; int pad1; char *method; int pad2; int ihandle; u_int64_t len; - int pad3; vm_offset_t vaddr; + u_int64_t vaddr; } args = { 0,"call-method", 4, @@ -288,7 +288,7 @@ int len; 0,"release", 0, 0, 0, - 0, NULL + NULL }; if (mmuh == -1 && ((mmuh = get_mmu_handle()) == -1)) { @@ -309,7 +309,7 @@ int len; */ int prom_unmap_virt(vaddr, len) -vm_offset_t vaddr; +vaddr_t vaddr; int len; { static struct { @@ -319,7 +319,7 @@ int len; int pad1; char *method; int pad2; int ihandle; u_int64_t len; - int pad3; vm_offset_t vaddr; + u_int64_t vaddr; } args = { 0,"call-method", 4, @@ -327,7 +327,7 @@ int len; 0,"unmap", 0, 0, 0, - 0, NULL + NULL }; if (mmuh == -1 && ((mmuh = get_mmu_handle()) == -1)) { @@ -349,7 +349,7 @@ int prom_map_phys(paddr, size, vaddr, mode) u_int64_t paddr; off_t size; -vm_offset_t vaddr; +vaddr_t vaddr; int mode; { int phys_hi, phys_lo; @@ -361,9 +361,9 @@ int mode; int pad2; int ihandle; int64_t mode; u_int64_t size; - int pad3; vm_offset_t vaddr; - int pad4; vm_offset_t paddr_hi; - int pad6; vm_offset_t paddr_lo; + u_int64_t vaddr; + int pad4; int paddr_hi; + int pad6; int paddr_lo; int64_t status; int64_t retaddr; } args = { @@ -454,7 +454,7 @@ int align; */ u_int64_t prom_claim_phys(phys, len) -vm_offset_t phys; +paddr_t phys; int len; { static struct { @@ -465,8 +465,8 @@ int len; int pad2; int ihandle; u_int64_t align; u_int64_t len; - int pad4; void* phys_hi; - int pad5; void* phys_lo; + int pad4; u_int32_t phys_hi; + int pad5; u_int32_t phys_lo; int64_t status; int64_t res; u_int64_t rphys_hi; @@ -503,7 +503,7 @@ int len; */ int prom_free_phys(phys, len) -vm_offset_t phys; +paddr_t phys; int len; { static struct { @@ -513,8 +513,8 @@ int len; int pad1; char *method; int pad2; int ihandle; u_int64_t len; - int pad4; void* phys_hi; - int pad5; void* phys_lo; + int pad4; u_int32_t phys_hi; + int pad5; u_int32_t phys_lo; } args = { 0,"call-method", 5, @@ -556,8 +556,8 @@ int align; u_int64_t len; int pad3; char *id; int64_t status; - int pad4; void *phys_hi; - int pad5; void *phys_lo; + int pad4; u_int32_t phys_hi; + int pad5; u_int32_t phys_lo; } args = { 0,"call-method", 5, @@ -571,6 +571,7 @@ int align; 0, 0, 0, 0 }; + u_int64_t addr; if (memh == -1 && ((memh = get_memory_handle()) == -1)) { prom_printf("prom_get_msgbuf: cannot get memh\r\n"); @@ -582,19 +583,19 @@ int align; if (OF_test("test-method") == 0) { if (OF_test_method(memh, "SUNW,retain") != 0) { if (openfirmware(&args) == 0 && args.status == 0) { - return args.phys_lo; + return (((u_int64_t)args.phys_hi<<32)|args.phys_lo); } else prom_printf("prom_get_msgbuf: SUNW,retain failed\r\n"); } else prom_printf("prom_get_msgbuf: test-method failed\r\n"); } else prom_printf("prom_get_msgbuf: test failed\r\n"); /* Allocate random memory */ - args.phys_lo = prom_claim_phys(0x2000, len); - prom_printf("prom_get_msgbuf: allocated new buf at %08x\r\n", args.phys_lo); - if( !args.phys_lo ) { + addr = prom_claim_phys(0x2000, len); + prom_printf("prom_get_msgbuf: allocated new buf at %08x\r\n", (int)addr); + if( !addr ) { prom_printf("prom_get_msgbuf: cannot get allocate physmem\r\n"); return -1LL; } - prom_printf("prom_get_msgbuf: claiming new buf at %08x\r\n", args.phys_lo); - return args.phys_lo; /* Kluge till we go 64-bit */ + prom_printf("prom_get_msgbuf: claiming new buf at %08x\r\n", (int)addr); + return addr; /* Kluge till we go 64-bit */ } /* diff --git a/sys/arch/sparc64/sparc64/openfirm.c b/sys/arch/sparc64/sparc64/openfirm.c index cb91133b2ec..60a7bf60593 100644 --- a/sys/arch/sparc64/sparc64/openfirm.c +++ b/sys/arch/sparc64/sparc64/openfirm.c @@ -1,4 +1,4 @@ -/* $NetBSD: openfirm.c,v 1.2 1998/07/07 03:05:05 eeh Exp $ */ +/* $NetBSD: openfirm.c,v 1.3 1998/08/13 02:10:47 eeh Exp $ */ /* * Copyright (C) 1995, 1996 Wolfgang Solfrank. @@ -328,13 +328,13 @@ OF_call_method(method, ihandle, nargs, nreturns, va_alist) args.method = method; args.ihandle = ihandle; va_start(ap, nreturns); - for (ip = args.args_n_results + (n = nargs); --n >= 0;) + for (ip = (int*)(args.args_n_results + (n = nargs)); --n >= 0;) *--ip = va_arg(ap, int); if (openfirmware(&args) == -1) return -1; if (args.args_n_results[nargs]) return args.args_n_results[nargs]; - for (ip = args.args_n_results + nargs + (n = args.nreturns); --n > 0;) + for (ip = (int*)(args.args_n_results + nargs + (n = args.nreturns)); --n > 0;) *va_arg(ap, int *) = *--ip; va_end(ap); return 0; @@ -374,7 +374,7 @@ OF_call_method_1(method, ihandle, nargs, va_alist) args.method = method; args.ihandle = ihandle; va_start(ap, nargs); - for (ip = args.args_n_results + (n = nargs); --n >= 0;) + for (ip = (int*)(args.args_n_results + (n = nargs)); --n >= 0;) *--ip = va_arg(ap, int); va_end(ap); if (openfirmware(&args) == -1) @@ -613,6 +613,7 @@ OF_boot(bootspec) panic("OF_boot"); args.bootspec = bootspec; openfirmware(&args); + panic("OF_boot failed"); } void @@ -645,6 +646,7 @@ OF_exit() }; openfirmware(&args); + panic("OF_exit failed"); } void @@ -661,6 +663,7 @@ OF_poweroff() }; openfirmware(&args); + panic("OF_poweroff failed"); } void diff --git a/sys/arch/sparc64/sparc64/pmap.c b/sys/arch/sparc64/sparc64/pmap.c index d4b15b272cf..3eaa097f896 100644 --- a/sys/arch/sparc64/sparc64/pmap.c +++ b/sys/arch/sparc64/sparc64/pmap.c @@ -1,6 +1,8 @@ -/* $NetBSD: pmap.c,v 1.3 1998/07/08 04:43:21 thorpej Exp $ */ +/* $NetBSD: pmap.c,v 1.4 1998/08/13 02:10:47 eeh Exp $ */ /* #define NO_VCACHE /* Don't forget the locked TLB in dostart */ -#define HWREF +#define HWREF +/* #define BOOT_DEBUG */ +/* #define BOOT1_DEBUG */ /* #define printf db_printf */ /* * @@ -68,7 +70,7 @@ * larger page sizes that cause aliasing. */ struct page_size_map page_size_map[] = { -#ifdef NOTDEF_DEBUG +#ifdef DEBUG { 0, TLB_8K&0 }, /* Disable large pages */ #endif { (4*1024*1024-1) & ~(8*1024-1), TLB_4M&0 }, @@ -78,11 +80,11 @@ struct page_size_map page_size_map[] = { { 0, TLB_8K&0 } }; -extern int64_t asmptechk __P((union sun4u_data* pseg[], vm_offset_t addr)); /* DEBUG XXXXX */ +extern int64_t asmptechk __P((union sun4u_data* pseg[], int addr)); /* DEBUG XXXXX */ /* These routines are in assembly to allow access thru physical mappings */ -extern int64_t pseg_get __P((struct pmap*, vm_offset_t addr)); -extern int64_t** pseg_set __P((struct pmap*, vm_offset_t addr, int64_t tte)); +extern int64_t pseg_get __P((struct pmap*, int addr)); +extern int64_t** pseg_set __P((struct pmap*, int addr, int64_t tte)); extern vm_page_t vm_page_alloc1 __P((void)); extern void vm_page_free1 __P((vm_page_t)); @@ -106,14 +108,15 @@ extern void vm_page_free1 __P((vm_page_t)); typedef struct pv_entry { struct pv_entry *pv_next; /* next pv_entry */ struct pmap *pv_pmap; /* pmap where mapping lies */ - vm_offset_t pv_va; /* virtual address for mapping */ + vaddr_t pv_va; /* virtual address for mapping */ } *pv_entry_t; /* PV flags encoded in the low bits of the VA of the first pv_entry */ #define PV_ALIAS 0x1LL #define PV_REF 0x2LL #define PV_MOD 0x4LL #define PV_NVC 0x8LL -#define PV_MASK (0x0fLL) +#define PV_WE 0x10LL /* Debug -- track if this page was ever writable */ +#define PV_MASK (0x01fLL) #define PV_VAMASK (~(NBPG-1)) #if 0 #define PV_MATCH(pv,va) (((pv)->pv_va) == (va)) @@ -124,17 +127,12 @@ typedef struct pv_entry { #endif pv_entry_t pv_table; /* array of entries, one per page */ -#ifdef ATTR -#define PMAP_ATTR_MOD 0x01 /* page has been modified */ -#define PMAP_ATTR_REF 0x02 /* page has been referenced */ -char *pmap_attributes; -#endif -extern void pmap_remove_pv __P((struct pmap *pm, vm_offset_t va, vm_offset_t endva)); +extern void pmap_remove_pv __P((struct pmap *pm, vaddr_t va, paddr_t pa)); /* * First and last managed physical addresses. XXX only used for dumping the system. */ -vm_offset_t vm_first_phys, vm_num_phys; +paddr_t vm_first_phys, vm_num_phys; u_int64_t first_phys_addr; #define pa_index(pa) atop((pa) - first_phys_addr) @@ -154,7 +152,7 @@ int tsbsize; /* tsbents = 512 * 2^^tsbsize */ * And here's the IOMMU TSB stuff, also allocated in pmap_bootstrap. */ int64_t *iotsb; -vm_offset_t iotsbp; +paddr_t iotsbp; int iotsbsize; /* tsbents = 1024 * 2 ^^ tsbsize */ #define IOTSBENTS (1024<<iotsbsize) #define IOTSBSIZE (IOTSBENTS * 8) @@ -175,16 +173,16 @@ caddr_t vmmap; /* one reserved MI vpage for /dev/mem */ struct mem_region *mem, *avail, *orig; int memsize; -static int memh=0, vmemh=0, mmuh=0; /* Handles to OBP devices */ +static int memh=0, vmemh=0; /* Handles to OBP devices */ static int pmap_initialized; -vm_offset_t avail_start, avail_end; /* These are used by ps & family */ +int avail_start, avail_end; /* These are used by ps & family */ -static int ptelookup_pa __P((vm_offset_t pa)); /* sun4u */ -static int ptelookup_va __P((vm_offset_t va)); /* sun4u */ +static int ptelookup_va __P((vaddr_t va)); /* sun4u */ static void tsb_enter __P((int ctx, int64_t va, int64_t data)); static void pmap_pinit __P((struct pmap *)); +static void pmap_release __P((pmap_t)); struct pmap_stats { int ps_unlink_pvfirst; /* # of pv_unlinks on head */ @@ -221,6 +219,7 @@ struct { int calls; int removes; int flushes; + int tflushes; /* TLB flushes */ int pidflushes; /* HW pid stolen */ int pvfirst; int pvsearch; @@ -316,13 +315,13 @@ pmap_bootstrap(kernelstart, kernelend, maxctx) int msgbufsiz; int pcnt; u_int s, sz, i, j; - unsigned int phys_msgbuf_lo, phys_msgbuf_hi; + u_int64_t phys_msgbuf; u_int firstaddr, newkp, ksize; - unsigned int *src, *dest, *newkv; + unsigned int *newkv; int opmapdebug = pmapdebug; pmapdebug = 0; -#ifdef NOTDEF_DEBUG +#ifdef BOOT_DEBUG prom_printf("Entered pmap_bootstrap.\r\n"); #endif /* @@ -349,7 +348,7 @@ pmap_bootstrap(kernelstart, kernelend, maxctx) OF_exit(); } -#ifdef NOTDEF_DEBUG +#ifdef BOOT_DEBUG /* print out mem list */ prom_printf("Available virutal memory:\r\n"); for (mp = memlist; mp->size; mp++) { @@ -362,29 +361,24 @@ pmap_bootstrap(kernelstart, kernelend, maxctx) /* * Get hold or the message buffer. */ - msgbufp = (struct msgbuf *)MSGBUF_VA; + msgbufp = (struct kern_msgbuf *)MSGBUF_VA; msgbufsiz = NBPG /* round_page(sizeof(struct msgbuf)) */; -#ifdef NOTDEF_DEBUG +#ifdef BOOT_DEBUG prom_printf("Trying to allocate msgbuf at %x, size %x\r\n", (int)msgbufp, (int)msgbufsiz); #endif - if( (int)msgbufp != (phys_msgbuf_hi = prom_claim_virt((int)msgbufp, msgbufsiz) ) ) - prom_printf("cannot get msgbuf VA, msgbufp=%x, phys_msgbuf_hi=%x\r\n", - msgbufp, phys_msgbuf_hi); - phys_msgbuf_lo = prom_get_msgbuf(msgbufsiz, MMU_PAGE_ALIGN); -#ifdef NOTDEF_DEBUG + if( (int)msgbufp != (int)(phys_msgbuf = prom_claim_virt((int)msgbufp, msgbufsiz) ) ) + prom_printf("cannot get msgbuf VA, msgbufp=%x, phys_msgbuf=%x\r\n", + msgbufp, (int)phys_msgbuf); + phys_msgbuf = prom_get_msgbuf(msgbufsiz, MMU_PAGE_ALIGN); +#ifdef BOOT_DEBUG prom_printf("We should have the memory at %08x, let's map it in\r\n", - phys_msgbuf_lo); + phys_msgbuf); #endif -#ifdef INT_IS_64_BITS - if( prom_map_phys(((u_int64_t)phys_msgbuf_hi<<32)|phys_msgbuf_lo, - msgbufsiz, (vm_offset_t)msgbufp, -1/* sunos does this */) != 0) -#else - if( prom_map_phys(phys_msgbuf_lo, msgbufsiz, (vm_offset_t)msgbufp, + if( prom_map_phys(phys_msgbuf, msgbufsiz, (vaddr_t)msgbufp, -1/* sunos does this */) != 0) -#endif prom_printf("Failed to map msgbuf\r\n"); -#ifdef NOTDEF_DEBUG +#ifdef BOOT_DEBUG else prom_printf("msgbuf mapped at %x\r\n", msgbufp); #endif @@ -395,7 +389,7 @@ pmap_bootstrap(kernelstart, kernelend, maxctx) * Record kernel mapping -- we will map this with a permanent 4MB * TLB entry when we initialize the CPU later. */ -#ifdef NOTDEF_DEBUG +#ifdef BOOT_DEBUG prom_printf("translating kernelstart %x\r\n", kernelstart); #endif ksegv = kernelstart; @@ -415,7 +409,7 @@ pmap_bootstrap(kernelstart, kernelend, maxctx) } if( mp1->start < kernelstart ) prom_printf("Kernel at end of vmem???\r\n"); -#ifdef DEF_DEBUG +#ifdef BOOT1_DEBUG prom_printf("The kernel is mapped at %x %x, next free seg: %x %x, %x %x\r\n", (int)(ksegp>>32), (int)ksegp, (int)(mp1->start>>32), (int)mp1->start, @@ -430,7 +424,7 @@ pmap_bootstrap(kernelstart, kernelend, maxctx) #define valloc(name, type, num) (name) = (type *)firstaddr; firstaddr += (num) #else #define valloc(name, type, num) (name) = (type *)firstaddr; firstaddr = \ - (vm_offset_t)((name)+(num)) + (vaddr_t)((name)+(num)) #endif #define MEG (1<<20) /* 1MB */ @@ -443,49 +437,45 @@ pmap_bootstrap(kernelstart, kernelend, maxctx) ksize = round_page(mp1->start - kernelstart); if (ksegp & (4*MEG-1)) { -#ifdef DEF_DEBUG +#ifdef BOOT1_DEBUG prom_printf("Allocating new %x kernel at 4MB boundary\r\n", ksize); #endif if( (newkp = prom_alloc_phys(ksize, 4*MEG)) == 0 ) { prom_printf("Cannot allocate new kernel\r\n"); OF_exit(); } -#ifdef DEF_DEBUG +#ifdef BOOT1_DEBUG prom_printf("Allocating new va for buffer at %x\r\n", newkp); #endif - if( (newkv = (int*)prom_alloc_virt(ksize, 8)) == -1) { + if( (newkv = (u_int*)prom_alloc_virt(ksize, 8)) == (u_int*)-1) { prom_printf("Cannot allocate new kernel va\r\n"); OF_exit(); } -#ifdef DEF_DEBUG +#ifdef BOOT1_DEBUG prom_printf("Mapping in buffer %x at %x\r\n", newkp, newkv); #endif - prom_map_phys(newkp, 4*MEG, (vm_offset_t)newkv, -1); -#ifdef DEF_DEBUG + prom_map_phys(newkp, 4*MEG, (vaddr_t)newkv, -1); +#ifdef BOOT1_DEBUG prom_printf("Copying kernel..."); #endif bzero(newkv, 4*MEG); - bcopy(kernelstart, (void *)newkv, kernelend - kernelstart); -#if 0 - for(src = (unsigned int*)kernelstart, dest = newkv; src < (unsigned int*)kernelend; - *dest++ = *src++); -#endif -#ifdef DEF_DEBUG + bcopy((void *)kernelstart, (void *)newkv, kernelend - kernelstart); +#ifdef BOOT1_DEBUG prom_printf("done. Swapping maps..unmap new\r\n"); #endif - prom_unmap_virt((vm_offset_t)newkv, 4*MEG); -#ifdef NOTDEF_DEBUG + prom_unmap_virt((vaddr_t)newkv, 4*MEG); +#ifdef BOOT_DEBUG prom_printf("remap old "); #endif prom_map_phys(newkp, 4*MEG, kernelstart, -1); /* we will map in 4MB, more than we allocated, to allow further allocation */ -#ifdef DEF_DEBUG +#ifdef BOOT1_DEBUG prom_printf("free old\r\n"); #endif prom_free_phys(ksegp, ksize); ksegp = newkp; -#ifdef DEF_DEBUG +#ifdef BOOT1_DEBUG prom_printf("pmap_bootstrap: firstaddr is %x virt (%x phys) avail for kernel\r\n", firstaddr, prom_vtop(firstaddr)); #endif @@ -499,7 +489,7 @@ pmap_bootstrap(kernelstart, kernelend, maxctx) /* * Find out how much RAM we have installed. */ -#ifdef NOTDEF_DEBUG +#ifdef BOOT_DEBUG prom_printf("pmap_bootstrap: getting phys installed\r\n"); #endif if ((memh = OF_finddevice("/memory")) == -1) { @@ -514,7 +504,7 @@ pmap_bootstrap(kernelstart, kernelend, maxctx) OF_exit(); } -#ifdef DEF_DEBUG +#ifdef BOOT1_DEBUG /* print out mem list */ prom_printf("Installed physical memory:\r\n"); for (mp = mem; mp->size; mp++) { @@ -527,7 +517,7 @@ pmap_bootstrap(kernelstart, kernelend, maxctx) for (mp = mem; mp->size; mp++) physmem += btoc(mp->size); -#ifdef DEF_DEBUG +#ifdef BOOT1_DEBUG prom_printf(" result %x or %d pages\r\n", physmem, physmem); #endif /* @@ -549,7 +539,7 @@ pmap_bootstrap(kernelstart, kernelend, maxctx) OF_exit(); } -#ifdef DEF_DEBUG +#ifdef BOOT1_DEBUG /* print out mem list */ prom_printf("Available physical memory:\r\n"); for (mp = orig; mp->size; mp++) { @@ -576,7 +566,7 @@ pmap_bootstrap(kernelstart, kernelend, maxctx) OF_exit(); } prom_map_size = sz / sizeof(struct prom_map); -#ifdef NOTDEF_DEBUG +#ifdef BOOT_DEBUG /* print out mem list */ prom_printf("Prom xlations:\r\n"); for (i=0; i<prom_map_size; i++) { @@ -607,7 +597,7 @@ pmap_bootstrap(kernelstart, kernelend, maxctx) } } } -#ifdef NOTDEF_DEBUG +#ifdef BOOT_DEBUG /* print out mem list */ prom_printf("Prom xlations:\r\n"); for (i=0; i<prom_map_size; i++) { @@ -615,7 +605,6 @@ pmap_bootstrap(kernelstart, kernelend, maxctx) (int)(prom_map[i].vstart>>32), (int)prom_map[i].vstart, (int)(prom_map[i].vsize>>32), (int)prom_map[i].vsize, (int)(prom_map[i].tte>>32), (int)prom_map[i].tte); - for( j=14000000; j>0; j--); /* delay loop 1sec@140MHz */ } prom_printf("End of prom xlations\r\n"); #endif @@ -639,10 +628,10 @@ pmap_bootstrap(kernelstart, kernelend, maxctx) */ sz = (int)allocsys((caddr_t)0); -#ifdef DEF_DEBUG +#ifdef BOOT1_DEBUG prom_printf("allocsys needs %08x bytes RAM...", sz); #endif - valloc(v, caddr_t, sz); + valloc(v, void, sz); if (allocsys(v) - v != sz) { prom_printf("startup: table size inconsistency"); @@ -650,7 +639,7 @@ pmap_bootstrap(kernelstart, kernelend, maxctx) } /* Need to zero this out or we have problems w/swbufs and physio hangs */ bzero(v, sz); -#ifdef DEF_DEBUG +#ifdef BOOT1_DEBUG prom_printf("got it\r\n"); #endif } @@ -660,7 +649,7 @@ pmap_bootstrap(kernelstart, kernelend, maxctx) * * We will use the left over space to flesh out the kernel pmap. */ -#ifdef DEF_DEBUG +#ifdef BOOT1_DEBUG prom_printf("firstaddr before TSB=%08x\r\n", firstaddr); #endif i = (firstaddr + NBPG - 1) & ~(NBPG-1); /* First, page align */ @@ -671,13 +660,13 @@ pmap_bootstrap(kernelstart, kernelend, maxctx) panic("TSB alloc\n"); OF_exit(); } -#ifdef NOTDEF_DEBUG +#ifdef BOOT_DEBUG prom_printf("frobbed i, firstaddr before TSB=%08x, %08x\r\n", i, firstaddr); #endif valloc(tsb, pte_t, TSBSIZE); bzero(tsb, TSBSIZE); -#ifdef DEF_DEBUG +#ifdef BOOT1_DEBUG prom_printf("firstaddr after TSB=%08x\r\n", firstaddr); prom_printf("TSB allocated at %08x size %08x\r\n", tsb, TSBSIZE); #endif @@ -686,7 +675,7 @@ pmap_bootstrap(kernelstart, kernelend, maxctx) */ iotsbsize = 0; /* We will only allocate an 8K TSB now */ valloc(iotsb, int64_t, IOTSBSIZE); - iotsbp = ((vm_offset_t)iotsb) - kernelstart + ksegp; + iotsbp = ((vaddr_t)iotsb) - kernelstart + ksegp; bzero(iotsb, IOTSBSIZE); /* Invalidate all entries */ @@ -694,19 +683,12 @@ pmap_bootstrap(kernelstart, kernelend, maxctx) first_phys_addr = mem->start; valloc(pv_table, struct pv_entry, sizeof(struct pv_entry)*physmem); bzero((caddr_t)pv_table, sizeof(struct pv_entry)*physmem); -#ifdef DEF_DEBUG +#ifdef BOOT1_DEBUG prom_printf("Allocating pv_table at %x,%x\r\n", pv_table, sizeof(struct pv_entry)*physmem); #endif -#ifdef ATTR - valloc(pmap_attributes, char, physmem); - bzero((caddr_t)pmap_attributes, physmem); -#ifdef DEF_DEBUG - prom_printf("Allocating pmap_attributes at %x,%x\r\n", pmap_attributes, physmem); -#endif -#endif -#ifdef DEF_DEBUG +#ifdef BOOT1_DEBUG prom_printf("firstaddr after pmap=%08x\r\n", firstaddr); #endif @@ -718,13 +700,13 @@ pmap_bootstrap(kernelstart, kernelend, maxctx) * And convert from virtual to physical addresses. */ -#ifdef NOTDEF_DEBUG +#ifdef BOOT_DEBUG prom_printf("kernel virtual size %08x - %08x\r\n", kernelstart, firstaddr); #endif kernelstart = kernelstart & ~PGOFSET; kernelend = firstaddr; kernelend = (kernelend + PGOFSET) & ~PGOFSET; -#ifdef DEF_DEBUG +#ifdef BOOT1_DEBUG prom_printf("kernel virtual size %08x - %08x\r\n", kernelstart, kernelend); #endif ksegend = kernelend; @@ -742,7 +724,7 @@ pmap_bootstrap(kernelstart, kernelend, maxctx) /* DEBUG -- don't allow these pages to be used. */ kernelend = (kernelstart + 4*MEG); #endif -#ifdef DEF_DEBUG +#ifdef BOOT1_DEBUG /* print out mem list */ prom_printf("Available %x physical memory before cleanup:\r\n", avail); for (mp = avail; mp->size; mp++) { @@ -829,7 +811,6 @@ pmap_bootstrap(kernelstart, kernelend, maxctx) mp1->start = s; mp1->size = sz; } -#if 1 #if defined(MACHINE_NEW_NONCONTIG) /* * In future we should be able to specify both allocated @@ -850,10 +831,9 @@ pmap_bootstrap(kernelstart, kernelend, maxctx) atop(mp->size)); #endif #endif -#endif } -#ifdef NOTDEF_DEBUG +#ifdef BOOT_DEBUG /* Throw away page zero if we have it. */ if (avail->start == 0) { avail->start += NBPG; @@ -876,35 +856,31 @@ pmap_bootstrap(kernelstart, kernelend, maxctx) /* * finish filling out kernel pmap. */ - pmap_kernel()->pm_physaddr = ((vm_offset_t)(pmap_kernel()->pm_segs)) - ksegv + ksegp; + pmap_kernel()->pm_physaddr = ((vaddr_t)(pmap_kernel()->pm_segs)) - ksegv + ksegp; ctxbusy[0] = (int)pmap_kernel()->pm_physaddr; /* mark kernel context as busy */ -#ifdef NOTDEF_DEBUG +#ifdef BOOT_DEBUG prom_printf("pmap_kernel()->pm_physaddr = %p\r\n", pmap_kernel()->pm_physaddr); #endif /* * Tell pmap about our mesgbuf -- Hope this works already */ -#ifdef NOTDEF_DEBUG +#ifdef BOOT_DEBUG prom_printf("Calling consinit()\r\n"); consinit(); prom_printf("Inserting mesgbuf into pmap_kernel()\r\n"); #endif -#if 0 - prom_map_phys(phys_msgbuf_lo, NBPG, msgbufp, -1); - pmap_enter(pmap_kernel(), (vm_offset_t)msgbufp, phys_msgbuf_lo, VM_PROT_WRITE, 1); -#else /* it's not safe to call pmap_enter so we need to do this ourselves */ { pte_t tte; int64_t** ptr; - vm_offset_t va = (vm_offset_t)msgbufp; + vaddr_t va = (vaddr_t)msgbufp; - prom_map_phys(phys_msgbuf_lo, NBPG, (vm_offset_t)msgbufp, -1); + prom_map_phys(phys_msgbuf, NBPG, (vaddr_t)msgbufp, -1); #ifdef NO_VCACHE tte.data.data = TSB_DATA(0 /* global */, TLB_8K, - phys_msgbuf_lo, + phys_msgbuf, 1 /* priv */, 1 /* Write */, 1 /* Cacheable */, @@ -913,7 +889,7 @@ pmap_bootstrap(kernelstart, kernelend, maxctx) #else tte.data.data = TSB_DATA(0 /* global */, TLB_8K, - phys_msgbuf_lo, + phys_msgbuf, 1 /* priv */, 1 /* Write */, 1 /* Cacheable */, @@ -923,10 +899,18 @@ pmap_bootstrap(kernelstart, kernelend, maxctx) while((ptr = pseg_set(pmap_kernel(), va, tte.data.data)) != NULL) { - vm_offset_t newp; + paddr_t newp; pmap_get_page(&newp); pmap_zero_page(newp); *ptr = (int64_t*)newp; +#ifdef DEBUG + enter_stats.ptpneeded ++; +#endif +#ifdef BOOT1_DEBUG + prom_printf("pset_set: ptr %x newp %x:%x *ptr %x\r\n", + (int)ptr, (int)(newp>>32), (int)newp, (int)*ptr); + {int i; for (i=0; i<140000000; i++) ;} +#endif } /* @@ -943,18 +927,20 @@ pmap_bootstrap(kernelstart, kernelend, maxctx) tte.data.data |= TLB_L|TLB_NFO; while((ptr = pseg_set(pmap_kernel(), va, tte.data.data)) != NULL) { - vm_offset_t newp; + paddr_t newp; pmap_get_page(&newp); pmap_zero_page(newp); *ptr = (int64_t*)newp; +#ifdef DEBUG + enter_stats.ptpneeded ++; +#endif } } -#endif -#ifdef DEF_DEBUG +#ifdef BOOT1_DEBUG prom_printf("Done inserting mesgbuf into pmap_kernel()\r\n"); #endif -#ifdef DEF_DEBUG +#ifdef BOOT1_DEBUG prom_printf("Inserting PROM mappings into pmap_kernel()\r\n"); #endif @@ -983,18 +969,21 @@ pmap_bootstrap(kernelstart, kernelend, maxctx) while((ptr = pseg_set(pmap_kernel(), prom_map[i].vstart+j, (prom_map[i].tte+j)|page_size_map[k].code)) != NULL) { - vm_offset_t newp; + paddr_t newp; pmap_get_page(&newp); pmap_zero_page(newp); *ptr = (int64_t*)newp; +#ifdef DEBUG + enter_stats.ptpneeded ++; +#endif } #else prom_printf("i=%d j=%d\r\n", i, j); - pmap_enter_phys(pmap_kernel(), (vm_offset_t)prom_map[i].vstart+j, + pmap_enter_phys(pmap_kernel(), (vaddr_t)prom_map[i].vstart+j, (prom_map[i].tte&TLB_PA_MASK)+j, TLB_8K, VM_PROT_WRITE, 1); #endif } -#ifdef DEF_DEBUG +#ifdef BOOT1_DEBUG prom_printf("Done inserting PROM mappings into pmap_kernel()\r\n"); #endif @@ -1006,30 +995,6 @@ pmap_bootstrap(kernelstart, kernelend, maxctx) avail_start = nextavail; for (mp = avail; mp->size; mp++) avail_end = mp->start+mp->size; - -#if 0 -#if defined(MACHINE_NEW_NONCONTIG) - for (mp = avail; mp->size; mp++) { - /* - * In future we should be able to specify both allocated - * and free. - */ -#if defined(UVM) - uvm_page_physload( - atop(mp->start), - atop(mp->size), - atop(mp->start), - atop(mp->size)); -#else - vm_page_physload( - atop(mp->start), - atop(mp->size), - atop(mp->start), - atop(mp->size)); -#endif - } -#endif -#endif pmapdebug = opmapdebug; } @@ -1052,15 +1017,16 @@ pmap_init() vm_num_phys = avail_end - avail_start; } +#if !defined(MACHINE_NEW_NONCONTIG) /* * Return the index of the given page in terms of pmap_next_page() calls. */ int pmap_page_index(pa) - vm_offset_t pa; + paddr_t pa; { struct mem_region *mp; - vm_size_t pre; + psize_t pre; pa &= ~PGOFSET; for (pre = 0, mp = avail; mp->size; mp++) { @@ -1071,25 +1037,27 @@ pmap_page_index(pa) } return -1; } +#endif /* * How much virtual space is available to the kernel? */ void pmap_virtual_space(start, end) - vm_offset_t *start, *end; + vaddr_t *start, *end; { /* * Reserve one segment for kernel virtual memory */ vmmap = (caddr_t)(ksegv + 4*MEG); /* Start after our locked TLB entry */ - *start = (vm_offset_t)(vmmap + NBPG); + *start = (vaddr_t)(vmmap + NBPG); *end = VM_MAX_KERNEL_ADDRESS; #ifdef NOTDEF_DEBUG prom_printf("pmap_virtual_space: %x-%x\r\n", *start, *end); #endif } +#ifdef MACHINE_NONCONTIG /* * Return the number of possible page indices returned * from pmap_page_index for any page provided by pmap_next_page. @@ -1107,7 +1075,7 @@ pmap_free_pages() */ int pmap_next_page(paddr) - vm_offset_t *paddr; + paddr_t *paddr; { static int lastidx = -1; @@ -1136,13 +1104,19 @@ pmap_next_page(paddr) #endif return TRUE; } +#endif /* * Create and return a physical map. */ +#if defined(PMAP_NEW) +struct pmap * +pmap_create() +#else struct pmap * pmap_create(size) - vm_size_t size; + vsize_t size; +#endif { struct pmap *pm; @@ -1150,7 +1124,7 @@ pmap_create(size) bzero((caddr_t)pm, sizeof *pm); #ifdef DEBUG if (pmapdebug & PDB_CREATE) - printf("pmap_create(%x): created %p\n", size, pm); + printf("pmap_create(): created %p\n", pm); #endif pmap_pinit(pm); return pm; @@ -1172,7 +1146,7 @@ pmap_pinit(pm) if(pm != pmap_kernel()) { for(i=0; i<STSZ; i++) pm->pm_segs[i] = NULL; - pm->pm_physaddr = pmap_extract(pmap_kernel(), (vm_offset_t)&pm->pm_segs); + pm->pm_physaddr = pmap_extract(pmap_kernel(), (vaddr_t)&pm->pm_segs); if (!pm->pm_physaddr) panic("pmap_pinit"); ctx_alloc(pm); } @@ -1235,7 +1209,7 @@ pmap_release(pm) pmap_remove_pv(pm, (i<<STSHIFT)|(j<<PTSHIFT), data&TLB_PA_MASK); } - vm_page_free1((vm_page_t)PHYS_TO_VM_PAGE(pm->pm_segs[i])); + vm_page_free1((vm_page_t)PHYS_TO_VM_PAGE((paddr_t)pm->pm_segs[i])); pm->pm_segs[i] = NULL; } #ifdef NOTDEF_DEBUG @@ -1266,8 +1240,8 @@ pmap_release(pm) void pmap_copy(dst_pmap, src_pmap, dst_addr, len, src_addr) struct pmap *dst_pmap, *src_pmap; - vm_offset_t dst_addr, src_addr; - vm_size_t len; + vaddr_t dst_addr, src_addr; + vsize_t len; { #ifdef DEBUG if (pmapdebug&PDB_CREATE) @@ -1312,7 +1286,7 @@ pmap_collect(pm) } if (!n) { /* Free the damn thing */ - vm_page_free1((vm_page_t)PHYS_TO_VM_PAGE(pm->pm_segs[i])); + vm_page_free1((vm_page_t)PHYS_TO_VM_PAGE((paddr_t)pm->pm_segs[i])); pm->pm_segs[i] = NULL; } } @@ -1328,7 +1302,7 @@ pmap_collect(pm) void pmap_pageable(pm, start, end, pageable) struct pmap *pm; - vm_offset_t start, end; + vaddr_t start, end; int pageable; { } @@ -1343,7 +1317,7 @@ pmap_pageable(pm, start, end, pageable) */ void pmap_zero_page(pa) - vm_offset_t pa; + paddr_t pa; { /* * We don't need to worry about flushing caches @@ -1362,7 +1336,7 @@ pmap_zero_page(pa) */ void pmap_copy_page(src, dst) - vm_offset_t src, dst; + paddr_t src, dst; { bcopy((caddr_t)src, (caddr_t)dst, NBPG); } @@ -1411,16 +1385,228 @@ pmap_deactivate(p) void pmap_enter(pm, va, pa, prot, wired) struct pmap *pm; - vm_offset_t va, pa; + vaddr_t va; + paddr_t pa; vm_prot_t prot; int wired; { register u_int64_t phys; - phys = (pa&0x0ffffffffLL); + phys = pa; /* Call 64-bit clean version of pmap_enter */ - return pmap_enter_phys(pm, va, phys, TLB_8K, prot, wired); + pmap_enter_phys(pm, va, phys, TLB_8K, prot, wired); +} + +#if defined(PMAP_NEW) +/* Different interfaces to pmap_enter_phys */ + +/* + * pmap_kenter_pa: [ INTERFACE ] + * + * Enter a va -> pa mapping into the kernel pmap without any + * physical->virtual tracking. + * + * Note: no locking is necessary in this function. + */ +void +pmap_kenter_pa(va, pa, prot) + vaddr_t va; + paddr_t pa; + vm_prot_t prot; +{ + pte_t tte; + int64_t** pptr; + struct pmap *pm = pmap_kernel(); + int i; + + /* + * Construct the TTE. + */ +#ifdef DEBUG + enter_stats.unmanaged ++; +#endif +#ifdef DEBUG + if (pa & (PMAP_NVC|PMAP_NC)) + enter_stats.ci ++; +#endif + tte.tag.tag = TSB_TAG(0,pm->pm_ctx,va); + tte.data.data = TSB_DATA(0, TLB_8K, pa, pm == pmap_kernel(), + (VM_PROT_WRITE & prot), + (!(pa & PMAP_NC)), pa & (PMAP_NVC), 1); + if (VM_PROT_WRITE & prot) tte.data.data |= TLB_REAL_W; /* HWREF -- XXXX */ + tte.data.data |= TLB_TSB_LOCK; /* wired */ + ASSERT((tte.data.data & TLB_NFO) == 0); + while ((pptr = pseg_set(pm, va, tte.data.data)) != NULL) { + paddr_t pg; +#if defined(UVM) + if (pmap_initialized || !uvm_page_physget(&pg)) { +#else + if (pmap_initialized || !pmap_next_page(&pg)) { +#endif + vm_page_t page; +#ifdef NOTDEF_DEBUG + printf("pmap_kenter_pa: need to alloc page\n"); +#endif + while ((page = vm_page_alloc1()) == NULL) { + /* + * Let the pager run a bit--however this may deadlock + */ +#ifdef NOTDEF_DEBUG + printf("pmap_kenter_pa: calling uvm_wait()\n"); +#endif +#if defined(UVM) + uvm_wait("pmap_kenter_pa"); +#else + VM_WAIT; +#endif + } + *pptr = (int64_t*)VM_PAGE_TO_PHYS(page); + } else + *pptr = (int64_t*)pg; + pmap_zero_page((paddr_t)*pptr); +#ifdef DEBUG + enter_stats.ptpneeded ++; +#endif + } + i = ptelookup_va(va); +#ifdef DEBUG + if( pmapdebug & PDB_ENTER ) + prom_printf("pmap_kenter: va=%08x tag=%x:%08x data=%08x:%08x tsb[%d]=%08x\r\n", va, + (int)(tte.tag.tag>>32), (int)tte.tag.tag, + (int)(tte.data.data>>32), (int)tte.data.data, + i, &tsb[i]); + if( pmapdebug & PDB_MMU_STEAL && tsb[i].data.data ) { + prom_printf("pmap_kenter: evicting entry tag=%x:%08x data=%08x:%08x tsb[%d]=%08x\r\n", + (int)(tsb[i].tag.tag>>32), (int)tsb[i].tag.tag, + (int)(tsb[i].data.data>>32), (int)tsb[i].data.data, + i, &tsb[i]); + prom_printf("with va=%08x tag=%x:%08x data=%08x:%08x tsb[%d]=%08x\r\n", va, + (int)(tte.tag.tag>>32), (int)tte.tag.tag, + (int)(tte.data.data>>32), (int)tte.data.data, + i, &tsb[i]); + } +#endif + tsb_enter(pm->pm_ctx, va, tte.data.data); + ASSERT((tsb[i].data.data & TLB_NFO) == 0); +#if 1 +#if 0 + /* this is correct */ + dcache_flush_page(va); +#else + /* Go totally crazy */ + blast_vcache(); +#endif +#endif + +} + +/* + * pmap_kenter_pgs: [ INTERFACE ] + * + * Enter a va -> pa mapping for the array of vm_page's into the + * kernel pmap without any physical->virtual tracking, starting + * at address va, for npgs pages. + * + * Note: no locking is necessary in this function. + */ +void +pmap_kenter_pgs(va, pgs, npgs) + vaddr_t va; + struct vm_page **pgs; + int npgs; +{ + register u_int64_t phys; + int i; + + for (i = 0; i < npgs; i++) { + phys = VM_PAGE_TO_PHYS(pgs[i]); + + /* Eventually we can try to optimize this w/large pages */ + pmap_kenter_pa(va, phys, VM_PROT_READ|VM_PROT_WRITE); + va += NBPG; + } +} + +/* + * pmap_kremove: [ INTERFACE ] + * + * Remove a mapping entered with pmap_kenter_pa() or pmap_kenter_pgs() + * starting at va, for size bytes (assumed to be page rounded). + */ +void +pmap_kremove(va, size) + vaddr_t va; + vsize_t size; +{ + struct pmap *pm = pmap_kernel(); + int64_t data; + int i, flush = 0; + + while (size >= NBPG) { + /* + * Is this part of the permanent 4MB mapping? + */ +#ifdef DIAGNOSTIC + if( pm == pmap_kernel() && va >= ksegv && va < ksegv+4*MEG ) + panic("pmap_remove: va=%08x in locked TLB\r\n", va); +#endif + if ((data = pseg_get(pm, va))<0) { + paddr_t entry; + + flush |= 1; + entry = (data&TLB_PA_MASK); + /* We need to flip the valid bit and clear the access statistics. */ + if (pseg_set(pm, va, 0LL)) { + printf("pmap_remove: gotten pseg empty!\n"); + Debugger(); + /* panic? */ + } +#ifdef DEBUG + if (pmapdebug & PDB_REMOVE) + printf(" clearing seg %x pte %x\n", va_to_seg(va), va_to_pte(va)); + remove_stats.removes ++; +#endif + + i = ptelookup_va(va); + if (tsb[i].tag.tag > 0 + && tsb[i].tag.tag == TSB_TAG(0,pm->pm_ctx,va)) + { + /* + * Invalidate the TSB + * + * While we can invalidate it by clearing the + * valid bit: + * + * ptp->data.data_v = 0; + * + * it's faster to do store 1 doubleword. + */ +#ifdef DEBUG + if (pmapdebug & PDB_REMOVE) + printf(" clearing TSB [%d]\n", i); +#endif + tsb[i].data.data = 0LL; + ASSERT((tsb[i].data.data & TLB_NFO) == 0); + /* Flush the TLB */ + } +#ifdef DEBUG + remove_stats.tflushes ++; +#endif + /* Here we assume nothing can get into the TLB unless it has a PTE */ + tlb_flush_pte(va, pm->pm_ctx); + } + + va += NBPG; + size -= NBPG; + } + if (flush) { +#ifdef DEBUG + remove_stats.flushes ++; +#endif + blast_vcache(); + } } +#endif /* PMAP_NEW */ /* * Insert physical page at pa into the given pmap at virtual address va. @@ -1429,7 +1615,7 @@ pmap_enter(pm, va, pa, prot, wired) void pmap_enter_phys(pm, va, pa, size, prot, wired) struct pmap *pm; - vm_offset_t va; + vaddr_t va; u_int64_t pa; u_int64_t size; vm_prot_t prot; @@ -1466,50 +1652,49 @@ pmap_enter_phys(pm, va, pa, size, prot, wired) prom_printf("pmap_enter: va=%08x 64-bit pa=%x:%08x seg=%08x pte=%08x\r\n", va, (int)(pa>>32), (int)pa, va_to_seg(va), va_to_pte(va)); #endif -#if 0 - /* This seems to segv */ - if (pm==pmap_kernel() && (mem = PHYS_TO_VM_PAGE(pa))) { - /* - * Don't bother to trap on kernel writes, - * just record page as dirty. - */ - mem->flags &= ~PG_CLEAN; - } -#endif /* * Construct the TTE. */ if (IS_VM_PHYSADDR(pa)) { pv = pa_to_pvh(pa); aliased = (pv->pv_va&(PV_ALIAS|PV_NVC)); + if ((tte.data.data = pseg_get(pm, va))<0 && + ((tte.data.data^pa)&TLB_PA_MASK)) { + vaddr_t entry; + + /* different mapping for this page exists -- remove it. */ + entry = (tte.data.data&TLB_PA_MASK); + pmap_remove_pv(pm, va, entry); + } +#ifndef HWREF + /* If we don't have the traphandler do it set the ref/mod bits now */ + pv->pv_va |= PV_REF; + if (VM_PROT_WRITE & prot) + pv->pv_va |= PV_MOD; +#endif +#ifdef DEBUG + enter_stats.managed ++; +#endif } else { +#ifdef DEBUG + enter_stats.unmanaged ++; +#endif aliased = 0; } if (pa & PMAP_NVC) aliased = 1; - if ((tte.data.data = pseg_get(pm, va))<0 && - ((tte.data.data^pa)&TLB_PA_MASK)) { - vm_offset_t entry; - - /* different mapping for this page exists -- remove it. */ - entry = (tte.data.data&TLB_PA_MASK); - pmap_remove_pv(pm, va, entry); - } #ifdef NO_VCACHE aliased = 1; /* Disable D$ */ #endif +#ifdef DEBUG + enter_stats.ci ++; +#endif tte.tag.tag = TSB_TAG(0,pm->pm_ctx,va); -#if 0 -#ifdef HWREF +#ifndef HWREF tte.data.data = TSB_DATA(0, size, pa, pm == pmap_kernel(), (VM_PROT_WRITE & prot), (!(pa & PMAP_NC)),aliased,1); if (VM_PROT_WRITE & prot) tte.data.data |= TLB_REAL_W; /* HWREF -- XXXX */ #else - tte.data.data = TSB_DATA(0, size, pa, pm == pmap_kernel(), - (VM_PROT_WRITE & prot), - (!(pa & PMAP_NC)),aliased,1); -#endif -#else /* Force dmmu_write_fault to be executed */ tte.data.data = TSB_DATA(0, size, pa, pm == pmap_kernel(), 0/*(VM_PROT_WRITE & prot)*/, @@ -1519,51 +1704,39 @@ pmap_enter_phys(pm, va, pa, size, prot, wired) if (wired) tte.data.data |= TLB_TSB_LOCK; ASSERT((tte.data.data & TLB_NFO) == 0); while ((pptr = pseg_set(pm, va, tte.data.data)) != NULL) { + paddr_t pg; #if defined(UVM) - if (pmap_initialized || !uvm_page_physget((vm_offset_t*)pptr)) { + if (pmap_initialized || !uvm_page_physget(&pg)) { #else - if (pmap_initialized || !pmap_next_page((vm_offset_t*)pptr)) { + if (pmap_initialized || !pmap_next_page(&pg)) { #endif vm_page_t page; +#ifdef NOTDEF_DEBUG + printf("pmap_enter_phys: need to alloc page\n"); +#endif while ((page = vm_page_alloc1()) == NULL) { -#if 1 /* * Let the pager run a bit--however this may deadlock */ +#ifdef NOTDEF_DEBUG + printf("pmap_enter_phys: calling uvm_wait()\n"); +#endif #if defined(UVM) uvm_wait("pmap_enter_phys"); #else VM_WAIT; #endif -#else - /* - * We can't allocate a page to hold the - * mapping so just put it in the TSB and return. - */ - goto tsbinsert; -#endif } *pptr = (int64_t*)VM_PAGE_TO_PHYS(page); - } - pmap_zero_page((vm_offset_t)*pptr); + } else + *pptr = (int64_t*)pg; + pmap_zero_page((paddr_t)*pptr); +#ifdef DEBUG + enter_stats.ptpneeded ++; +#endif } if (pv) { -#if 0 - /* Don't touch the attributes now -- leave that to the trap handler */ -#ifdef ATTR - /* Munch on attributes */ - pmap_attributes[atop(pa)] |= - ((prot&VM_PROT_WRITE)? - PMAP_ATTR_MOD|PMAP_ATTR_REF: - PMAP_ATTR_REF); -#ifdef DEBUG - if (pmapdebug) - printf("pmap_enter_phys: Setting pa=%x attr=%x\n", - pa, pmap_attributes[atop(pa)]); -#endif -#endif -#endif /* * Enter the pmap and virtual address into the * physical to virtual map table. @@ -1590,6 +1763,10 @@ pmap_enter_phys(pm, va, pa, size, prot, wired) pv->pv_pmap = pm; pv->pv_next = NULL; } else { +#ifdef DEBUG + enter_stats.secondpv++; +#endif + /* * There is at least one other VA mapping this page. * Place this entry after the header. @@ -1643,8 +1820,8 @@ pmap_enter_phys(pm, va, pa, size, prot, wired) pv->pv_va|=(pa & PMAP_NVC)?PV_NVC:PV_ALIAS; #ifdef DEBUG if (pmapdebug & PDB_ALIAS) - printf("pmap_enter_phys: aliased page %p\n", - pa); + printf("pmap_enter_phys: aliased page %p:%p\n", + (int)(pa>>32), (int)pa); #endif for (npv = pv; npv; npv = npv->pv_next) if (npv->pv_pmap == pm) { @@ -1675,7 +1852,6 @@ pmap_enter_phys(pm, va, pa, size, prot, wired) } splx(s); } -tsbinsert: i = ptelookup_va(va); #ifdef DEBUG if( pmapdebug & PDB_ENTER ) @@ -1696,7 +1872,7 @@ tsbinsert: #endif tsb_enter(pm->pm_ctx, va, tte.data.data); ASSERT((tsb[i].data.data & TLB_NFO) == 0); -#if 0 +#if 1 #if 0 /* this is correct */ dcache_flush_page(va); @@ -1719,9 +1895,9 @@ tsbinsert: void pmap_remove(pm, va, endva) struct pmap *pm; - vm_offset_t va, endva; + vaddr_t va, endva; { - int i; + int i, flush=0; int64_t data; /* @@ -1732,6 +1908,7 @@ pmap_remove(pm, va, endva) #ifdef DEBUG if (pmapdebug & PDB_REMOVE) printf("pmap_remove(pm=%x, va=%x, pa=%x):", pm, va, endva); + remove_stats.calls ++; #endif /* Now do the real work */ @@ -1739,21 +1916,19 @@ pmap_remove(pm, va, endva) /* * Is this part of the permanent 4MB mapping? */ - if( pm == pmap_kernel() && va >= ksegv && va < ksegv+4*MEG ) { - prom_printf("pmap_remove: va=%08x in locked TLB\r\n", va); - OF_enter(); - return; - } +#ifdef DIAGNOSTIC + if( pm == pmap_kernel() && va >= ksegv && va < ksegv+4*MEG ) + panic("pmap_remove: va=%08x in locked TLB\r\n", va); +#endif if ((data = pseg_get(pm, va))<0) { - vm_offset_t entry; + paddr_t entry; + flush |= 1; /* First remove it from the pv_table */ entry = (data&TLB_PA_MASK); - pmap_remove_pv(pm, va, entry); -#ifdef ATTR - pmap_attributes[atop(entry)] = 0; -#endif + if (IS_VM_PHYSADDR(entry)) + pmap_remove_pv(pm, va, entry); /* We need to flip the valid bit and clear the access statistics. */ if (pseg_set(pm, va, 0LL)) { @@ -1764,45 +1939,55 @@ pmap_remove(pm, va, endva) #ifdef DEBUG if (pmapdebug & PDB_REMOVE) printf(" clearing seg %x pte %x\n", va_to_seg(va), va_to_pte(va)); + remove_stats.removes ++; #endif - } - i = ptelookup_va(va); - if (tsb[i].tag.tag > 0 - && tsb[i].tag.tag == TSB_TAG(0,pm->pm_ctx,va)) - { - /* - * Invalidate the TSB - * - * While we can invalidate it by clearing the - * valid bit: - * - * ptp->data.data_v = 0; - * - * it's faster to do store 1 doubleword. - */ + i = ptelookup_va(va); + if (tsb[i].tag.tag > 0 + && tsb[i].tag.tag == TSB_TAG(0,pm->pm_ctx,va)) + { + /* + * Invalidate the TSB + * + * While we can invalidate it by clearing the + * valid bit: + * + * ptp->data.data_v = 0; + * + * it's faster to do store 1 doubleword. + */ #ifdef DEBUG - if (pmapdebug & PDB_REMOVE) - printf(" clearing TSB [%d]\n", i); + if (pmapdebug & PDB_REMOVE) + printf(" clearing TSB [%d]\n", i); #endif - tsb[i].data.data = 0LL; - ASSERT((tsb[i].data.data & TLB_NFO) == 0); - /* Flush the TLB */ - } + tsb[i].data.data = 0LL; + ASSERT((tsb[i].data.data & TLB_NFO) == 0); + /* Flush the TLB */ + } #ifdef NOTDEF_DEBUG - else if (pmapdebug & PDB_REMOVE) { - printf("TSB[%d] has ctx %d va %x: ", - i, - TSB_TAG_CTX(tsb[i].tag.tag), - (int)(TSB_TAG_VA(tsb[i].tag.tag)|(i<<13))); - printf("%08x:%08x %08x:%08x\n", - (int)(tsb[i].tag.tag>>32), (int)tsb[i].tag.tag, - (int)(tsb[i].data.data>>32), (int)tsb[i].data.data); - } + else if (pmapdebug & PDB_REMOVE) { + printf("TSB[%d] has ctx %d va %x: ", + i, + TSB_TAG_CTX(tsb[i].tag.tag), + (int)(TSB_TAG_VA(tsb[i].tag.tag)|(i<<13))); + printf("%08x:%08x %08x:%08x\n", + (int)(tsb[i].tag.tag>>32), (int)tsb[i].tag.tag, + (int)(tsb[i].data.data>>32), (int)tsb[i].data.data); + } +#endif +#ifdef DEBUG + remove_stats.tflushes ++; #endif - tlb_flush_pte(va, pm->pm_ctx); + /* Here we assume nothing can get into the TLB unless it has a PTE */ + tlb_flush_pte(va, pm->pm_ctx); + } va += NBPG; } - blast_vcache(); + if (flush) { +#ifdef DEBUG + remove_stats.flushes ++; +#endif + blast_vcache(); + } #ifdef DEBUG if (pmapdebug & PDB_REMOVE) printf("\n"); @@ -1816,11 +2001,11 @@ pmap_remove(pm, va, endva) void pmap_protect(pm, sva, eva, prot) struct pmap *pm; - vm_offset_t sva, eva; + vaddr_t sva, eva; vm_prot_t prot; { int i; - vm_offset_t pa; + paddr_t pa; int64_t data; if (prot & VM_PROT_WRITE) @@ -1846,25 +2031,6 @@ pmap_protect(pm, sva, eva, prot) if (pmapdebug & PDB_CHANGEPROT) printf("pmap_protect: va %p\n", sva); #endif -#ifndef HWREF - i = ptelookup_va(sva); - if (tsb[i].tag.tag > 0 - && tsb[i].tag.tag == TSB_TAG(0,pm->pm_ctx,sva)) - { - int s; - - /* - * We could remove the splimp if we read and wrote the - * the data field atomically. - */ - s = splimp(); - tsb[i].data.data &= ~TLB_W; - ASSERT((tsb[i].data.data & TLB_NFO) == 0); - splx(s); - /* Flush the TLB */ - } - tlb_flush_pte(sva, pm->pm_ctx); -#else if (((data = pseg_get(pm, sva))&TLB_V) /*&& ((data&TLB_TSB_LOCK) == 0)*/) { pa = data&TLB_PA_MASK; #ifdef DEBUG @@ -1896,7 +2062,6 @@ pmap_protect(pm, sva, eva, prot) } tlb_flush_pte(sva, pm->pm_ctx); } -#endif sva += NBPG; } pv_check(); @@ -1907,16 +2072,16 @@ pmap_protect(pm, sva, eva, prot) * with the given map/virtual_address pair. * GRR, the vm code knows; we should not have to do this! */ -vm_offset_t +paddr_t pmap_extract(pm, va) register struct pmap *pm; - vm_offset_t va; + vaddr_t va; { - vm_offset_t pa; + paddr_t pa; if( pm == pmap_kernel() && va >= ksegv && va < ksegv+4*MEG ) { /* Need to deal w/locked TLB entry specially. */ - pa = (vm_offset_t) (ksegp - ksegv + va); + pa = (paddr_t) (ksegp - ksegv + va); #ifdef DEBUG if (pmapdebug & PDB_EXTRACT) { printf("pmap_extract: va=%x pa=%x\n", va, pa); @@ -1936,12 +2101,15 @@ pmap_extract(pm, va) return pa; } +#if 0 +/* This appears to be no longer used. */ /* * Map physical addresses into kernel VM. -- used by device drivers */ -vm_offset_t +vaddr_t pmap_map(va, pa, endpa, prot) - register vm_offset_t va, pa, endpa; + register vaddr_t va; + retister paddr_t pa, endpa; register int prot; { register int pgsize = PAGE_SIZE; @@ -1965,18 +2133,19 @@ pmap_map(va, pa, endpa, prot) } return (va); } +#endif /* * Really change page protections -- used by device drivers */ void pmap_changeprot(pm, start, prot, size) pmap_t pm; -vm_offset_t start; +vaddr_t start; vm_prot_t prot; int size; { int i, s; - vm_offset_t sva, eva; + vaddr_t sva, eva; int64_t data, set, clr; if (prot == VM_PROT_NONE) { @@ -1985,7 +2154,11 @@ int size; } if (prot & VM_PROT_WRITE) { +#ifdef HWREF set = TLB_REAL_W/*|TLB_W|TLB_MODIFY*/; +#else + set = TLB_REAL_W|TLB_W|TLB_MODIFY; +#endif clr = 0LL; } else { set = 0LL; @@ -2010,29 +2183,6 @@ int size; #endif /* First flush the TSB */ i = ptelookup_va(sva); -#ifndef HWREF - if (tsb[i].tag.tag > 0 - && tsb[i].tag.tag == TSB_TAG(0,pm->pm_ctx,sva)) - { - /* - * We could remove the splimp if we read and wrote the - * the data field atomically. - */ - s = splimp(); -#if 0 - tsb[i].data.f.data_w = ((VM_PROT_WRITE & prot) != 0); - tsb[i].data.f.data_exec = ((VM_PROT_EXECUTE & prot) != 0); - tsb[i].data.f.data_onlyexec = (VM_PROT_EXECUTE == prot); -#else - if((VM_PROT_WRITE & prot) != 0) - tsb[i].data.data |= (TLB_W|TLB_REAL_W); - ASSERT((tsb[i].data.data & TLB_NFO) == 0); -#endif - splx(s); - /* Flush the TLB */ - } - tlb_flush_pte(sva, pm->pm_ctx); -#else /* HWREF */ /* Then update the page table */ s = splimp(); if (pm->pm_segs[va_to_seg(sva)]) { @@ -2052,7 +2202,6 @@ int size; && tsb[i].tag.tag == TSB_TAG(0,pm->pm_ctx,sva)) tsb[i].tag.tag = tsb[i].data.data = 0LL; splx(s); -#endif /* HWREF */ sva += NBPG; } pv_check(); @@ -2094,7 +2243,7 @@ pmap_dumpmmu(dump, blkno) cpu_kcore_hdr_t *kcpup; phys_ram_seg_t memseg; register int error = 0; - register int i, memsegoffset, segmapoffset, pmegoffset; + register int i, memsegoffset, segmapoffset; int buffer[dbtob(1) / sizeof(int)]; int *bp, *ep; @@ -2128,7 +2277,7 @@ pmap_dumpmmu(dump, blkno) kcpup = (cpu_kcore_hdr_t *)((int)bp + ALIGN(sizeof(kcore_seg_t))); kcpup->cputype = CPU_SUN4U; kcpup->kernbase = KERNBASE; - kcpup->kphys = ksegp; + kcpup->kphys = (paddr_t)ksegp; kcpup->nmemseg = memsize; kcpup->memsegoffset = memsegoffset = ALIGN(sizeof(cpu_kcore_hdr_t)); kcpup->nsegmap = STSZ; @@ -2149,7 +2298,6 @@ pmap_dumpmmu(dump, blkno) EXPEDITE(&kernel_pmap_.pm_segs[0], sizeof(kernel_pmap_.pm_segs)); -out: if (bp != buffer) error = (*dump)(dumpdev, blkno++, (caddr_t)buffer, dbtob(1)); @@ -2160,7 +2308,7 @@ out: * Determine (non)existance of physical page */ int pmap_pa_exists(pa) -vm_offset_t pa; +paddr_t pa; { register struct mem_region *mp; @@ -2171,6 +2319,7 @@ vm_offset_t pa; return 0; } +#if 0 /* * Lookup an entry in TSB -- returns NULL if not mapped. * @@ -2180,7 +2329,7 @@ vm_offset_t pa; */ int ptelookup_pa(pa) - vm_offset_t pa; + paddr_t pa; { register int i; @@ -2190,6 +2339,7 @@ ptelookup_pa(pa) return i; return -1; } +#endif /* * Lookup the appropriate TSB entry. @@ -2241,12 +2391,12 @@ int64 GenerateTSBPointer( */ int ptelookup_va(va) - vm_offset_t va; + vaddr_t va; { int tsbptr; #define TSBBASEMASK (0xffffffffffffe000LL<<tsbsize) - tsbptr = (((vm_offset_t)tsb & TSBBASEMASK) + tsbptr = (((vaddr_t)tsb & TSBBASEMASK) | (((va >> 9) & 0xfffffffffffffff0LL) & ~TSBBASEMASK )); return ((struct sun4u_tte*)tsbptr) - tsb; } @@ -2274,10 +2424,20 @@ int64_t data; splx(s); } +#if defined(PMAP_NEW) +boolean_t +pmap_clear_modify(pg) + struct vm_page *pg; +#else void pmap_clear_modify(pa) - vm_offset_t pa; + paddr_t pa; +#endif { +#if defined(PMAP_NEW) + paddr_t pa = PMAP_PGARG(pg); + int changed = 0; +#endif int i, s; register pv_entry_t pv; @@ -2288,24 +2448,33 @@ pmap_clear_modify(pa) if (!IS_VM_PHYSADDR(pa)) { pv_check(); - return; + return 0; } -#ifdef ATTR - pmap_attributes[atop(pa)] &= ~PMAP_ATTR_MOD; -#endif /* Clear all mappings */ s = splimp(); pv = pa_to_pvh(pa); +#ifdef DEBUG + if (pv->pv_va & PV_MOD) + pv->pv_va |= PV_WE; /* Remember this was modified */ +#endif +#if defined(PMAP_NEW) + if (pv->pv_va & PV_MOD) + changed |= 1; +#endif pv->pv_va &= ~(PV_MOD); -#ifdef HWREF if (pv->pv_pmap != NULL) for (; pv; pv = pv->pv_next) { int64_t data; - + + /* First clear the mod bit in the PTE and make it R/O */ ASSERT(pv->pv_pmap->pm_segs[va_to_seg(pv->pv_va&PV_VAMASK)]); data = pseg_get(pv->pv_pmap, pv->pv_va&PV_VAMASK); /* Need to both clear the modify and write bits */ +#if defined(PMAP_NEW) + if (data & (TLB_MODIFY|TLB_W)) + changed |= 1; +#endif data &= ~(TLB_MODIFY|TLB_W); ASSERT((data & TLB_NFO) == 0); if (pseg_set(pv->pv_pmap, pv->pv_va&PV_VAMASK, data)) { @@ -2317,34 +2486,36 @@ pmap_clear_modify(pa) if (tsb[i].tag.tag == TSB_TAG(0, pv->pv_pmap->pm_ctx, pv->pv_va&PV_VAMASK)) tsb[i].data.data = 0LL; tlb_flush_pte(pv->pv_va&PV_VAMASK, pv->pv_pmap->pm_ctx); - } -#else - if((i = ptelookup_pa(pa)) == -1) { - splx(s); - pv_check(); - return; /* Not currently mapped */ - } - /* - * First modify bits in TSB. - */ - -#if 1 - tsb[i].data.data &= ~(TLB_MODIFY|TLB_W); - ASSERT((tsb[i].data.data & TLB_NFO) == 0); - /* Load the H/W */ - tlb_flush_pte(TSBVA(i),TSB_TAG_CTX(tsb[i].tag.tag)); -#endif + /* Then clear the mod bit in the pv */ +#if defined(PMAP_NEW) + if (pv->pv_va & PV_MOD) + changed |= 1; #endif + pv->pv_va &= ~(PV_MOD); + } splx(s); pv_check(); +#if defined(PMAP_NEW) + return (changed); +#endif } +#if defined(PMAP_NEW) +boolean_t +pmap_clear_reference(pg) + struct vm_page* pg; +#else void pmap_clear_reference(pa) - vm_offset_t pa; + paddr_t pa; +#endif { +#if defined(PMAP_NEW) + paddr_t pa = PMAP_PGARG(pg); + int changed = 0; +#endif int i, s; register pv_entry_t pv; @@ -2354,22 +2525,26 @@ pmap_clear_reference(pa) #endif if (!IS_VM_PHYSADDR(pa)) { pv_check(); - return; + return 0; } -#ifdef ATTR - pmap_attributes[atop(pa)] &= ~PMAP_ATTR_REF; -#endif /* Clear all references */ s = splimp(); pv = pa_to_pvh(pa); +#if defined(PMAP_NEW) + if (pv->pv_va & PV_REF) + changed |= 1; +#endif pv->pv_va &= ~(PV_REF); -#ifdef HWREF if (pv->pv_pmap != NULL) for (; pv; pv = pv->pv_next) { int64_t data; ASSERT(pv->pv_pmap->pm_segs[va_to_seg(pv->pv_va&PV_VAMASK)]); data = pseg_get(pv->pv_pmap, pv->pv_va&PV_VAMASK); +#if defined(PMAP_NEW) + if (data & TLB_ACCESS) + changed |= 1; +#endif data &= ~TLB_ACCESS; #ifdef DEBUG if (pmapdebug & PDB_CHANGEPROT) @@ -2385,73 +2560,65 @@ pmap_clear_reference(pa) i = ptelookup_va(pv->pv_va&PV_VAMASK); if (tsb[i].tag.tag == TSB_TAG(0,pv->pv_pmap->pm_ctx,pv->pv_va&PV_VAMASK)) tsb[i].data.data = 0LL; +#if defined(PMAP_NEW) + if (pv->pv_va & PV_REF) + changed |= 1; +#endif + pv->pv_va &= ~(PV_REF); tlb_flush_pte(pv->pv_va&PV_VAMASK, pv->pv_pmap->pm_ctx); } + /* Stupid here will take a cache hit even on unmapped pages 8^( */ blast_vcache(); -#else - - if((i = ptelookup_pa(pa)) == -1) { - splx(s); - pv_check(); - return; /* Not currently mapped */ - } - /* - * First modify bits in TSB. - */ - -#if 1 - tsb[i].data.data &= ~(TLB_ACCESS|TLB_V); - ASSERT((tsb[i].data.data & TLB_NFO) == 0); - /* Load the H/W */ - tlb_flush_pte(TSBVA(i),TSB_TAG_CTX(tsb[i].tag.tag)); -#endif -#endif splx(s); pv_check(); +#if defined(PMAP_NEW) + return (changed); +#endif } -int pmap_is_modified(pa) - vm_offset_t pa; +#if defined(PMAP_NEW) +boolean_t +pmap_is_modified(pg) + struct vm_page* pg; +#else +boolean_t +pmap_is_modified(pa) + paddr_t pa; +#endif { +#if defined(PMAP_NEW) + paddr_t pa = PMAP_PGARG(pg); +#endif int i, s; - register pv_entry_t pv; + register pv_entry_t pv, npv; if (!IS_VM_PHYSADDR(pa)) { pv_check(); return 0; } -#ifdef ATTR - i = (pmap_attributes[atop(pa)] & PMAP_ATTR_MOD); -#else /* Check if any mapping has been modified */ s = splimp(); pv = pa_to_pvh(pa); #ifdef HWREF i = (pv->pv_va&PV_MOD); if (pv->pv_pmap != NULL) - for (; i == 0 && pv && pv->pv_pmap; pv = pv->pv_next) { + for (npv = pv; i == 0 && npv && npv->pv_pmap; npv = npv->pv_next) { int64_t data; - ASSERT(pv->pv_pmap->pm_segs[va_to_seg(pv->pv_va&PV_VAMASK)]); - data = pseg_get(pv->pv_pmap, pv->pv_va&PV_VAMASK); + ASSERT(npv->pv_pmap->pm_segs[va_to_seg(npv->pv_va&PV_VAMASK)]); + data = pseg_get(npv->pv_pmap, npv->pv_va&PV_VAMASK); i = i || (data & (TLB_MODIFY|TLB_W)); } /* Save modify info */ if (i) pv->pv_va |= PV_MOD; +#ifdef DEBUG + if (i) pv->pv_va |= PV_WE; +#endif #else i = (pv->pv_va&PV_MOD); #endif splx(s); -#if 0 - if((i = ptelookup_pa(pa)) == -1) { - pv_check(); - return 0; /* Not currently mapped */ - } - i = tsb[i].data.f.data_modified; -#endif - -#endif #ifdef DEBUG if (pmapdebug & (PDB_CHANGEPROT|PDB_REF)) { printf("pmap_is_modified(%p) = %d\n", pa, i); @@ -2462,29 +2629,36 @@ int pmap_is_modified(pa) return (i); } -int pmap_is_referenced(pa) - vm_offset_t pa; +#if defined(PMAP_NEW) +boolean_t +pmap_is_referenced(pg) + struct vm_page* pg; +#else +boolean_t +pmap_is_referenced(pa) + paddr_t pa; +#endif { +#if defined(PMAP_NEW) + paddr_t pa = PMAP_PGARG(pg); +#endif int i, s; - register pv_entry_t pv; + register pv_entry_t pv, npv; if (!IS_VM_PHYSADDR(pa)) return 0; -#ifdef ATTR - i = (pmap_attributes[atop(pa)] & PMAP_ATTR_REF); -#else /* Check if any mapping has been referenced */ s = splimp(); pv = pa_to_pvh(pa); #ifdef HWREF i = (pv->pv_va&PV_REF); if (pv->pv_pmap != NULL) - for (; pv; pv = pv->pv_next) { + for (npv = pv; npv; npv = npv->pv_next) { int64_t data; - ASSERT(pv->pv_pmap->pm_segs[va_to_seg(pv->pv_va&PV_VAMASK)]); - data = pseg_get(pv->pv_pmap, pv->pv_va&PV_VAMASK); + ASSERT(npv->pv_pmap->pm_segs[va_to_seg(npv->pv_va&PV_VAMASK)]); + data = pseg_get(npv->pv_pmap, npv->pv_va&PV_VAMASK); i = i || (data & TLB_ACCESS); } if (i) pv->pv_va |= PV_REF; @@ -2493,12 +2667,6 @@ int pmap_is_referenced(pa) #endif splx(s); -#if 0 - if((i = ptelookup_pa(pa)) == -1) - return 0; /* Not currently mapped */ - i = tsb[i].data.f.data_accessed; -#endif -#endif #ifdef DEBUG if (pmapdebug & (PDB_CHANGEPROT|PDB_REF)) { printf("pmap_is_referenced(%p) = %d\n", pa, i); @@ -2521,7 +2689,7 @@ int pmap_is_referenced(pa) void pmap_change_wiring(pmap, va, wired) register pmap_t pmap; - vm_offset_t va; + vaddr_t va; boolean_t wired; { int64_t data; @@ -2567,13 +2735,23 @@ pmap_change_wiring(pmap, va, wired) * * Never enable writing as it will break COW */ + +#if defined(PMAP_NEW) +void +pmap_page_protect(pg, prot) + struct vm_page* pg; + vm_prot_t prot; +#else void pmap_page_protect(pa, prot) - vm_offset_t pa; + paddr_t pa; vm_prot_t prot; +#endif { +#if defined(PMAP_NEW) + paddr_t pa = PMAP_PGARG(pg); +#endif register pv_entry_t pv; - register pte_t *ptp; register int i, s; long long clear, set; int64_t data = 0LL; @@ -2802,8 +2980,11 @@ ctx_alloc(pm) } while (ctxbusy[++cnum] != NULL && cnum != next); if (cnum==0) cnum++; /* Never steal ctx 0 */ if (ctxbusy[cnum]) { +#ifdef DEBUG /* We should identify this pmap and clear it */ printf("Warning: stealing context %d\n", cnum); + remove_stats.pidflushes ++; +#endif /* We gotta steal this context */ tlb_flush_ctx(cnum); } @@ -2858,7 +3039,8 @@ ctx_free(pm) void pmap_remove_pv(pmap, va, pa) pmap_t pmap; - vm_offset_t va, pa; + vaddr_t va; + paddr_t pa; { register pv_entry_t pv, npv, opv; int64_t data = 0LL; @@ -2900,17 +3082,25 @@ pmap_remove_pv(pmap, va, pa) pv->pv_next = NULL; pv->pv_va &= PV_MASK; /* Only save ref/mod bits */ } -#ifdef NOT_DEBUG +#ifdef DEBUG remove_stats.pvfirst++; #endif } else { for (npv = pv->pv_next; npv; pv = npv, npv = npv->pv_next) { -#ifdef NOT_DEBUG +#ifdef DEBUG remove_stats.pvsearch++; #endif if (pmap == npv->pv_pmap && PV_MATCH(npv,va)) goto fnd; } +#if defined(PMAP_NEW) + + /* + * Sometimes UVM gets confused and calls pmap_remove() instead + * of pmap_kremove() + */ + return; +#endif #ifdef DIAGNOSTIC printf("pmap_remove_pv(%x, %x, %x) not found\n", pmap, va, pa); @@ -3155,7 +3345,6 @@ db_dump_pv(addr, have_addr, count, modif) char *modif; { struct pv_entry *pv; - int i; if (!have_addr) { db_printf("Need addr for pv\n"); diff --git a/sys/arch/sparc64/sparc64/timerreg.h b/sys/arch/sparc64/sparc64/timerreg.h index 92ae309f53c..02740ee5cea 100644 --- a/sys/arch/sparc64/sparc64/timerreg.h +++ b/sys/arch/sparc64/sparc64/timerreg.h @@ -1,4 +1,4 @@ -/* $NetBSD: timerreg.h,v 1.1.1.1 1998/06/20 04:58:52 eeh Exp $ */ +/* $NetBSD: timerreg.h,v 1.2 1998/08/13 02:10:48 eeh Exp $ */ /* * Copyright (c) 1992, 1993 @@ -126,7 +126,6 @@ struct timerreg_4u { struct timer_4u* t_timer; /* There are two of them */ volatile int64_t* t_clrintr; /* There are two of these, too. */ volatile int64_t* t_mapintr; /* Same here. */ - vm_offset_t t_base; /* timer base address */ }; struct counter_4m { /* counter that interrupts at ipl 14 */ diff --git a/sys/arch/sparc64/sparc64/trap.c b/sys/arch/sparc64/sparc64/trap.c index becf4414a9b..4c36fa2976e 100644 --- a/sys/arch/sparc64/sparc64/trap.c +++ b/sys/arch/sparc64/sparc64/trap.c @@ -1,4 +1,4 @@ -/* $NetBSD: trap.c,v 1.5 1998/07/07 03:05:05 eeh Exp $ */ +/* $NetBSD: trap.c,v 1.6 1998/08/13 02:10:48 eeh Exp $ */ /* * Copyright (c) 1996 @@ -155,7 +155,7 @@ int rwindow_debug = RW_64|RW_ERR; #define TDB_STOPCALL 0x200 #define TDB_STOPCPIO 0x400 #define TDB_SYSTOP 0x800 -int trapdebug = TDB_STOPSIG; +int trapdebug = 0; /* #define __inline */ #endif @@ -716,7 +716,7 @@ badtrap: * If we're busy doing copyin/copyout continue */ if (p->p_addr && p->p_addr->u_pcb.pcb_onfault) { - tf->tf_pc = p->p_addr->u_pcb.pcb_onfault; + tf->tf_pc = (vaddr_t)p->p_addr->u_pcb.pcb_onfault; tf->tf_npc = tf->tf_pc + 4; break; } @@ -754,7 +754,7 @@ badtrap: fpproc = NULL; /* tf->tf_psr &= ~PSR_EF; */ /* share_fpu will do this */ if (p->p_md.md_fpstate->fs_qsize == 0) { - p->p_md.md_fpstate->fs_queue[0].fq_instr = fuword(pc); + p->p_md.md_fpstate->fs_queue[0].fq_instr = fuword((caddr_t)pc); p->p_md.md_fpstate->fs_qsize = 1; fpu_cleanup(p, p->p_md.md_fpstate); ADVANCE; @@ -840,7 +840,9 @@ rwindow_save(p) register struct rwindow64 *rw = &pcb->pcb_rw[0]; register u_int64_t rwdest; register int i, j; +#ifndef TRAPWIN register struct trapframe *tf = p->p_md.md_tf; +#endif /* Make sure our D$ is not polluted w/bad data */ blast_vcache(); @@ -863,8 +865,10 @@ rwindow_save(p) printf("window %d at %x:%x\n", i, rwdest); #endif if (rwdest & 1) { +#ifndef TRAPWIN struct rwindow64 *rwstack; /* 64-bit window */ +#endif #ifdef DEBUG if (rwindow_debug&RW_64) { printf("rwindow_save: 64-bit tf to %p-BIAS or %p\n", @@ -951,8 +955,6 @@ kill_user_windows(p) p->p_addr->u_pcb.pcb_nsaved = 0; } -static int tfaultaddr = (int) 0xdeadbeef; - #ifdef DEBUG int dfdebug = 0; #endif @@ -968,7 +970,7 @@ data_access_fault(type, addr, pc, tf) register u_int64_t tstate; register struct proc *p; register struct vmspace *vm; - register vm_offset_t va; + register vaddr_t va; register int rv; vm_prot_t ftype; int onfault; @@ -1073,7 +1075,7 @@ data_access_fault(type, addr, pc, tf) #ifdef DEBUG if (trapdebug&(TDB_ADDFLT|TDB_FOLLOW)) printf("data_access_fault: kernel vm_fault(%x, %x, %x, 0) sez %x -- success\n", - kernel_map, (vm_offset_t)va, ftype, rv); + kernel_map, (vaddr_t)va, ftype, rv); #endif return; } @@ -1081,14 +1083,14 @@ data_access_fault(type, addr, pc, tf) #ifdef DEBUG if (trapdebug&(TDB_ADDFLT|TDB_FOLLOW)) printf("data_access_fault: kernel vm_fault(%x, %x, %x, 0) sez %x -- success\n", - kernel_map, (vm_offset_t)va, ftype, rv); + kernel_map, (vaddr_t)va, ftype, rv); #endif return; } #ifdef DEBUG if (trapdebug&(TDB_ADDFLT|TDB_FOLLOW)) printf("data_access_fault: kernel vm_fault(%x, %x, %x, 0) sez %x -- failure\n", - kernel_map, (vm_offset_t)va, ftype, rv); + kernel_map, (vaddr_t)va, ftype, rv); #endif goto kfault; } @@ -1097,12 +1099,12 @@ data_access_fault(type, addr, pc, tf) vm = p->p_vmspace; /* alas! must call the horrible vm code */ - rv = vm_fault(&vm->vm_map, (vm_offset_t)va, ftype, FALSE); + rv = vm_fault(&vm->vm_map, (vaddr_t)va, ftype, FALSE); #ifdef DEBUG if (trapdebug&(TDB_ADDFLT|TDB_FOLLOW)) printf("data_access_fault: user vm_fault(%x, %x, %x, FALSE) sez %x\n", - &vm->vm_map, (vm_offset_t)va, ftype, rv); + &vm->vm_map, (vaddr_t)va, ftype, rv); #endif /* * If this was a stack access we keep track of the maximum @@ -1125,7 +1127,6 @@ data_access_fault(type, addr, pc, tf) * address. Any other page fault in kernel, die; if user * fault, deliver SIGSEGV. */ -fault: if (tstate & (PSTATE_PRIV<<TSTATE_PSTATE_SHIFT)) { kfault: onfault = p->p_addr ? @@ -1158,7 +1159,6 @@ kfault: #endif trapsignal(p, SIGSEGV, (u_int)addr); } -out: if ((tstate & TSTATE_PRIV) == 0) { userret(p, pc, sticks); share_fpu(p, tf); @@ -1170,7 +1170,7 @@ out: print_trapframe(tf); } if (trapdebug&(TDB_ADDFLT|TDB_FOLLOW)) { - extern void* return_from_trap(); + extern void* return_from_trap __P((void)); if ((void*)tf->tf_pc == (void*)return_from_trap) { printf("Returning from stack datafault\n"); } @@ -1191,7 +1191,7 @@ data_access_error(type, sfva, sfsr, afva, afsr, tf) register u_int64_t tstate; register struct proc *p; register struct vmspace *vm; - register vm_offset_t va; + register vaddr_t va; register int rv; vm_prot_t ftype; int onfault; @@ -1236,7 +1236,6 @@ data_access_error(type, sfva, sfsr, afva, afsr, tf) cnt.v_trap++; #endif if ((p = curproc) == NULL) /* safety check */ -/* if ((p = masterpaddr) == NULL) /* safety check */ p = &proc0; sticks = p->p_sticks; @@ -1262,8 +1261,13 @@ data_access_error(type, sfva, sfsr, afva, afsr, tf) #else printf("data memory error type %x sfsr=%p sfva=%p afsr=%p afva=%p tf=%p\n", type, sfsr, sfva, afsr, afva, tf); - DEBUGGER(type, tf); - panic("trap: memory error"); + if (tstate & (PSTATE_PRIV<<TSTATE_PSTATE_SHIFT)) { + /* User fault -- Berr */ + trapsignal(p, SIGBUS, (u_int)sfva); + } else { + DEBUGGER(type, tf); + panic("trap: memory error"); + } #endif } @@ -1357,7 +1361,7 @@ data_access_error(type, sfva, sfsr, afva, afsr, tf) if (trapdebug&(TDB_ADDFLT|TDB_FOLLOW)) printf("data_access_error: calling vm_fault\n"); #endif - rv = vm_fault(&vm->vm_map, (vm_offset_t)va, ftype, FALSE); + rv = vm_fault(&vm->vm_map, (vaddr_t)va, ftype, FALSE); /* * If this was a stack access we keep track of the maximum @@ -1434,7 +1438,7 @@ text_access_fault(type, pc, tf) register u_int64_t tstate; register struct proc *p; register struct vmspace *vm; - register vm_offset_t va; + register vaddr_t va; register int rv; vm_prot_t ftype; u_quad_t sticks; @@ -1471,7 +1475,6 @@ text_access_fault(type, pc, tf) cnt.v_trap++; #endif if ((p = curproc) == NULL) /* safety check */ -/* if ((p = masterpaddr) == NULL) /* safety check */ p = &proc0; sticks = p->p_sticks; @@ -1493,12 +1496,12 @@ text_access_fault(type, pc, tf) vm = p->p_vmspace; /* alas! must call the horrible vm code */ - rv = vm_fault(&vm->vm_map, (vm_offset_t)va, ftype, FALSE); + rv = vm_fault(&vm->vm_map, (vaddr_t)va, ftype, FALSE); #ifdef DEBUG if (trapdebug&(TDB_TXTFLT|TDB_FOLLOW)) printf("text_access_fault: vm_fault(%x, %x, %x, FALSE) sez %x\n", - &vm->vm_map, (vm_offset_t)va, ftype, rv); + &vm->vm_map, (vaddr_t)va, ftype, rv); #endif /* * If this was a stack access we keep track of the maximum @@ -1538,7 +1541,6 @@ text_access_fault(type, pc, tf) #endif trapsignal(p, SIGSEGV, (u_int)pc); } -out: if ((tstate & TSTATE_PRIV) == 0) { userret(p, pc, sticks); share_fpu(p, tf); @@ -1567,7 +1569,7 @@ text_access_error(type, pc, sfsr, afva, afsr, tf) register int64_t tstate; register struct proc *p; register struct vmspace *vm; - register vm_offset_t va; + register vaddr_t va; register int rv; vm_prot_t ftype; u_quad_t sticks; @@ -1610,7 +1612,6 @@ text_access_error(type, pc, sfsr, afva, afsr, tf) cnt.v_trap++; #endif if ((p = curproc) == NULL) /* safety check */ -/* if ((p = masterpaddr) == NULL) /* safety check */ p = &proc0; sticks = p->p_sticks; @@ -1666,7 +1667,7 @@ text_access_error(type, pc, sfsr, afva, afsr, tf) vm = p->p_vmspace; /* alas! must call the horrible vm code */ - rv = vm_fault(&vm->vm_map, (vm_offset_t)va, ftype, FALSE); + rv = vm_fault(&vm->vm_map, (vaddr_t)va, ftype, FALSE); /* * If this was a stack access we keep track of the maximum diff --git a/sys/arch/sparc64/sparc64/vm_machdep.c b/sys/arch/sparc64/sparc64/vm_machdep.c index 7519088eca6..00ecdaa05f4 100644 --- a/sys/arch/sparc64/sparc64/vm_machdep.c +++ b/sys/arch/sparc64/sparc64/vm_machdep.c @@ -1,4 +1,4 @@ -/* $NetBSD: vm_machdep.c,v 1.3 1998/07/28 18:34:57 thorpej Exp $ */ +/* $NetBSD: vm_machdep.c,v 1.4 1998/08/13 02:10:48 eeh Exp $ */ /* * Copyright (c) 1996 @@ -73,8 +73,8 @@ /* XXX These are in sbusvar.h, but including that would be problematical */ struct sbus_softc *sbus0; -void sbus_enter __P((struct sbus_softc *, vm_offset_t va, int64_t pa, int flags)); -void sbus_remove __P((struct sbus_softc *, vm_offset_t va, int len)); +void sbus_enter __P((struct sbus_softc *, vaddr_t va, int64_t pa, int flags)); +void sbus_remove __P((struct sbus_softc *, vaddr_t va, int len)); /* * Move pages from one kernel virtual address to another. @@ -84,7 +84,7 @@ pagemove(from, to, size) register caddr_t from, to; size_t size; { - register vm_offset_t pa; + register paddr_t pa; if (size & CLOFSET || (int)from & CLOFSET || (int)to & CLOFSET) panic("pagemove 1"); @@ -92,13 +92,13 @@ pagemove(from, to, size) cache_flush((caddr_t)from, size); #endif while (size > 0) { - pa = pmap_extract(pmap_kernel(), (vm_offset_t)from); + pa = pmap_extract(pmap_kernel(), (vaddr_t)from); if (pa == 0) panic("pagemove 2"); pmap_remove(pmap_kernel(), - (vm_offset_t)from, (vm_offset_t)from + PAGE_SIZE); + (vaddr_t)from, (vaddr_t)from + PAGE_SIZE); pmap_enter(pmap_kernel(), - (vm_offset_t)to, pa, VM_PROT_READ|VM_PROT_WRITE, 1); + (vaddr_t)to, pa, VM_PROT_READ|VM_PROT_WRITE, 1); from += PAGE_SIZE; to += PAGE_SIZE; size -= PAGE_SIZE; @@ -108,6 +108,8 @@ pagemove(from, to, size) #endif } +/* Prove that these functions are deprecated completely */ +#if 0 /* * Wrapper for dvma_mapin() in kernel space, * so drivers need not include VM goo to get at kernel_map. @@ -117,7 +119,7 @@ kdvma_mapin(va, len, canwait) caddr_t va; int len, canwait; { - return ((caddr_t)dvma_mapin(kernel_map, (vm_offset_t)va, len, canwait)); + return ((caddr_t)dvma_mapin(kernel_map, (vaddr_t)va, len, canwait)); } caddr_t @@ -126,18 +128,18 @@ dvma_malloc(len, kaddr, flags) void *kaddr; int flags; { - vm_offset_t kva; - vm_offset_t dva; + vaddr_t kva; + vaddr_t dva; #if defined(SUN4M) extern int has_iocache; #endif len = round_page(len); - kva = (vm_offset_t)malloc(len, M_DEVBUF, flags); + kva = (vaddr_t)malloc(len, M_DEVBUF, flags); if (kva == NULL) return (NULL); - *(vm_offset_t *)kaddr = kva; + *(vaddr_t *)kaddr = kva; dva = dvma_mapin(kernel_map, kva, len, (flags & M_NOWAIT) ? 0 : 1); if (dva == NULL) { free((void *)kva, M_DEVBUF); @@ -152,9 +154,9 @@ dvma_free(dva, len, kaddr) size_t len; void *kaddr; { - vm_offset_t kva = *(vm_offset_t *)kaddr; + vaddr_t kva = *(vaddr_t *)kaddr; - dvma_mapout((vm_offset_t)dva, kva, round_page(len)); + dvma_mapout((vaddr_t)dva, kva, round_page(len)); free((void *)kva, M_DEVBUF); } @@ -164,17 +166,17 @@ u_long dvma_cachealign = 0; * Map a range [va, va+len] of wired virtual addresses in the given map * to a kernel address in DVMA space. */ -vm_offset_t +vaddr_t dvma_mapin(map, va, len, canwait) struct vm_map *map; - vm_offset_t va; + vaddr_t va; int len, canwait; { - vm_offset_t kva, tva; + vaddr_t kva, tva; register int npf, s; - register vm_offset_t pa; + register paddr_t pa; long off, pn; - vm_offset_t ova; + vaddr_t ova; int olen; ova = va; @@ -245,7 +247,7 @@ dvma_mapin(map, va, len, canwait) pa = trunc_page(pa); /* Standard RAM is cached non-coherent writeable */ - sbus_enter(sbus0, tva, pa, BUS_DMA_WRITE|BUS_DMA_CACHE); + sbus_enter(sbus0, tva, pa, BUS_DMA_WAITOK); tva += PAGE_SIZE; va += PAGE_SIZE; @@ -265,7 +267,7 @@ dvma_mapin(map, va, len, canwait) */ void dvma_mapout(kva, va, len) - vm_offset_t kva, va; + vaddr_t kva, va; int len; { register int s, off; @@ -287,6 +289,7 @@ dvma_mapout(kva, va, len) cache_flush((caddr_t)va, len); } +#endif /* * Map an IO request into kernel virtual address space. @@ -294,13 +297,13 @@ dvma_mapout(kva, va, len) void vmapbuf(bp, len) struct buf *bp; - vm_size_t len; + vsize_t len; { struct pmap *upmap, *kpmap; - vm_offset_t uva; /* User VA (map from) */ - vm_offset_t kva; /* Kernel VA (new to) */ - vm_offset_t pa; /* physical address */ - vm_size_t off; + vaddr_t uva; /* User VA (map from) */ + vaddr_t kva; /* Kernel VA (new to) */ + paddr_t pa; /* physical address */ + vsize_t off; if ((bp->b_flags & B_PHYS) == 0) panic("vmapbuf"); @@ -311,7 +314,7 @@ vmapbuf(bp, len) */ bp->b_saveaddr = bp->b_data; uva = trunc_page(bp->b_data); - off = (vm_offset_t)bp->b_data - uva; + off = (vaddr_t)bp->b_data - uva; len = round_page(off + len); #if defined(UVM) kva = uvm_km_valloc_wait(kernel_map, len); @@ -350,16 +353,16 @@ vmapbuf(bp, len) void vunmapbuf(bp, len) struct buf *bp; - vm_size_t len; + vsize_t len; { - vm_offset_t kva; - vm_size_t off; + vaddr_t kva; + vsize_t off; if ((bp->b_flags & B_PHYS) == 0) panic("vunmapbuf"); kva = trunc_page(bp->b_data); - off = (vm_offset_t)bp->b_data - kva; + off = (vaddr_t)bp->b_data - kva; len = round_page(off + len); /* This will call pmap_remove() for us. */ @@ -402,7 +405,7 @@ cpu_fork(p1, p2) register struct pcb *opcb = &p1->p_addr->u_pcb; register struct pcb *npcb = &p2->p_addr->u_pcb; register struct trapframe *tf2; - register struct rwindow32 *rp, *orp; + register struct rwindow32 *rp; /* * Save all user registers to p1's stack or, in the case of @@ -528,7 +531,7 @@ cpu_set_kpc(p, pc) void (*pc) __P((struct proc *)); { struct pcb *pcb; - struct rwindow32 *rp, *orp; + struct rwindow32 *rp; #if 0 /* Make sure our D$ is not polluted w/bad data */ diff --git a/sys/arch/sparc64/stand/ofwboot/Locore.c b/sys/arch/sparc64/stand/ofwboot/Locore.c index 2cb5398fa3e..223f2aad4c3 100644 --- a/sys/arch/sparc64/stand/ofwboot/Locore.c +++ b/sys/arch/sparc64/stand/ofwboot/Locore.c @@ -1,4 +1,4 @@ -/* $NetBSD: Locore.c,v 1.1.1.1 1998/06/20 04:58:53 eeh Exp $ */ +/* $NetBSD: Locore.c,v 1.2 1998/08/13 02:10:48 eeh Exp $ */ /* * Copyright (C) 1995, 1996 Wolfgang Solfrank. @@ -36,14 +36,14 @@ #include <machine/cpu.h> -vm_offset_t OF_claim_virt __P((vm_offset_t vaddr, int len)); -vm_offset_t OF_alloc_virt __P((int len, int align)); -int OF_free_virt __P((vm_offset_t vaddr, int len)); -int OF_unmap_virt __P((vm_offset_t vaddr, int len)); -int OF_map_phys __P((u_int64_t paddr, off_t size, vm_offset_t vaddr, int mode)); +vaddr_t OF_claim_virt __P((vaddr_t vaddr, int len)); +vaddr_t OF_alloc_virt __P((int len, int align)); +int OF_free_virt __P((vaddr_t vaddr, int len)); +int OF_unmap_virt __P((vaddr_t vaddr, int len)); +int OF_map_phys __P((u_int64_t paddr, off_t size, vaddr_t vaddr, int mode)); u_int64_t OF_alloc_phys __P((int len, int align)); -u_int64_t OF_claim_phys __P((vm_offset_t phys, int len)); -int OF_free_phys __P((vm_offset_t paddr, int len)); +u_int64_t OF_claim_phys __P((paddr_t phys, int len)); +int OF_free_phys __P((paddr_t paddr, int len)); extern int openfirmware(void *); @@ -450,9 +450,9 @@ setup() * * Only works while the prom is actively mapping us. */ -vm_offset_t +vaddr_t OF_claim_virt(vaddr, len) -vm_offset_t vaddr; +vaddr_t vaddr; int len; { static struct { @@ -463,7 +463,7 @@ int len; int pad2; int ihandle; u_int64_t align; u_int64_t len; - int pad3; vm_offset_t vaddr; + int pad3; vaddr_t vaddr; int64_t status; int64_t retaddr; } args = { @@ -498,7 +498,7 @@ int len; * * Only works while the prom is actively mapping us. */ -vm_offset_t +vaddr_t OF_alloc_virt(len, align) int len; int align; @@ -537,7 +537,7 @@ int align; args.len = len; if(openfirmware(&args) != 0) return -1LL; - return (vm_offset_t)args.retaddr; /* Kluge till we go 64-bit */ + return (vaddr_t)args.retaddr; /* Kluge till we go 64-bit */ } /* @@ -547,7 +547,7 @@ int align; */ int OF_free_virt(vaddr, len) -vm_offset_t vaddr; +vaddr_t vaddr; int len; { static struct { @@ -557,7 +557,7 @@ int len; int pad1; char *method; int pad2; int ihandle; u_int64_t len; - int pad3; vm_offset_t vaddr; + int pad3; vaddr_t vaddr; } args = { 0,"call-method", 4, @@ -588,7 +588,7 @@ int len; */ int OF_unmap_virt(vaddr, len) -vm_offset_t vaddr; +vaddr_t vaddr; int len; { static struct { @@ -598,7 +598,7 @@ int len; int pad1; char *method; int pad2; int ihandle; u_int64_t len; - int pad3; vm_offset_t vaddr; + int pad3; vaddr_t vaddr; } args = { 0,"call-method", 4, @@ -630,7 +630,7 @@ int OF_map_phys(paddr, size, vaddr, mode) u_int64_t paddr; off_t size; -vm_offset_t vaddr; +vaddr_t vaddr; int mode; { int phys_hi, phys_lo; @@ -642,9 +642,9 @@ int mode; int pad2; int ihandle; int64_t mode; u_int64_t size; - int pad3; vm_offset_t vaddr; - int pad4; vm_offset_t paddr_hi; - int pad6; vm_offset_t paddr_lo; + int pad3; vaddr_t vaddr; + paddr_t paddr_hi; + paddr_t paddr_lo; int64_t status; int64_t retaddr; } args = { @@ -739,7 +739,7 @@ int align; */ u_int64_t OF_claim_phys(phys, len) -vm_offset_t phys; +paddr_t phys; int len; { static struct { @@ -790,7 +790,7 @@ int len; */ int OF_free_phys(phys, len) -vm_offset_t phys; +paddr_t phys; int len; { static struct { diff --git a/sys/arch/sparc64/stand/ofwboot/Makefile b/sys/arch/sparc64/stand/ofwboot/Makefile index 4d00c66a83f..330f842639c 100644 --- a/sys/arch/sparc64/stand/ofwboot/Makefile +++ b/sys/arch/sparc64/stand/ofwboot/Makefile @@ -1,4 +1,4 @@ -# $NetBSD: Makefile,v 1.1.1.1 1998/06/20 04:58:53 eeh Exp $ +# $NetBSD: Makefile,v 1.2 1998/08/13 02:10:48 eeh Exp $ CURDIR= ${.CURDIR} S= ${CURDIR}/../../../.. @@ -14,7 +14,7 @@ PROG= ofwboot SRCS= srt0.s Locore.c boot.c ofdev.c alloc.c #net.c netif_of.c .PATH: ${S}/arch/sparc64/sparc64 #SRCS+= ofwmagic.S -CFLAGS+= -DDEBUG -DNETIF_DEBUG +CFLAGS+= -DDEBUG -DNETIF_DEBUG -D__ELF__ -nostdinc NOMAN= STRIPFLAG= BINMODE= 444 diff --git a/sys/arch/sparc64/stand/ofwboot/ofdev.c b/sys/arch/sparc64/stand/ofwboot/ofdev.c index 0849268d22a..94801c87e39 100644 --- a/sys/arch/sparc64/stand/ofwboot/ofdev.c +++ b/sys/arch/sparc64/stand/ofwboot/ofdev.c @@ -1,4 +1,4 @@ -/* $NetBSD: ofdev.c,v 1.1.1.1 1998/06/20 04:58:53 eeh Exp $ */ +/* $NetBSD: ofdev.c,v 1.2 1998/08/13 02:10:49 eeh Exp $ */ /* * Copyright (C) 1995, 1996 Wolfgang Solfrank. @@ -46,7 +46,7 @@ #include <lib/libsa/nfs.h> #endif -#include <machine/sun_disklabel.h> +#include <dev/sun/disklabel.h> #include <sparc64/stand/ofwboot/ofdev.h> extern char bootdev[]; diff --git a/sys/arch/vax/include/types.h b/sys/arch/vax/include/types.h index f4461fbab67..678856829d3 100644 --- a/sys/arch/vax/include/types.h +++ b/sys/arch/vax/include/types.h @@ -1,4 +1,4 @@ -/* $NetBSD: types.h,v 1.13 1998/06/14 20:09:23 kleink Exp $ */ +/* $NetBSD: types.h,v 1.14 1998/08/13 02:10:49 eeh Exp $ */ /*- * Copyright (c) 1990 The Regents of the University of California. @@ -46,9 +46,17 @@ typedef struct label_t { } label_t; #endif +/* NB: This should probably be if defined(_KERNEL) */ +#if !defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE) typedef unsigned long vm_offset_t; typedef unsigned long vm_size_t; +typedef vm_offset_t paddr_t; +typedef vm_size_t psize_t; +typedef vm_offset_t vaddr_t; +typedef vm_size_t vsize_t; +#endif + /* * Basic integral types. Omit the typedef if * not possible for a machine/compiler combination. diff --git a/sys/compat/svr4/svr4_misc.c b/sys/compat/svr4/svr4_misc.c index af2ff98c58e..a9a3db0894c 100644 --- a/sys/compat/svr4/svr4_misc.c +++ b/sys/compat/svr4/svr4_misc.c @@ -1,4 +1,4 @@ -/* $NetBSD: svr4_misc.c,v 1.62 1998/08/09 20:37:55 perry Exp $ */ +/* $NetBSD: svr4_misc.c,v 1.63 1998/08/13 02:10:49 eeh Exp $ */ /* * Copyright (c) 1994 Christos Zoulas @@ -803,11 +803,11 @@ svr4_sys_break(p, v, retval) { struct svr4_sys_break_args *uap = v; register struct vmspace *vm = p->p_vmspace; - vm_offset_t new, old; + vaddr_t new, old; int rv; register int diff; - old = (vm_offset_t) vm->vm_daddr; + old = (vaddr_t) vm->vm_daddr; new = round_page(SCARG(uap, nsize)); diff = new - old; diff --git a/sys/compat/ultrix/ultrix_misc.c b/sys/compat/ultrix/ultrix_misc.c index c1e7d72bd7c..94c008aeb9e 100644 --- a/sys/compat/ultrix/ultrix_misc.c +++ b/sys/compat/ultrix/ultrix_misc.c @@ -1,4 +1,4 @@ -/* $NetBSD: ultrix_misc.c,v 1.41 1998/08/09 20:37:56 perry Exp $ */ +/* $NetBSD: ultrix_misc.c,v 1.42 1998/08/13 02:10:49 eeh Exp $ */ /* * Copyright (c) 1995, 1997 Jonathan Stone (hereinafter referred to as the author) @@ -83,7 +83,7 @@ #include <sys/cdefs.h> /* RCS ID & Copyright macro defns */ -__KERNEL_RCSID(0, "$NetBSD: ultrix_misc.c,v 1.41 1998/08/09 20:37:56 perry Exp $"); +__KERNEL_RCSID(0, "$NetBSD: ultrix_misc.c,v 1.42 1998/08/13 02:10:49 eeh Exp $"); /* * SunOS compatibility module. @@ -577,7 +577,7 @@ ultrix_sys_cacheflush(p, v, retval) syscallarg(int) nbytes; syscallarg(int) flag; } */ *uap = v; - register vm_offset_t va = (vm_offset_t)SCARG(uap, addr); + register vaddr_t va = (vaddr_t)SCARG(uap, addr); register int nbytes = SCARG(uap, nbytes); register int whichcache = SCARG(uap, whichcache); @@ -596,7 +596,7 @@ ultrix_sys_cachectl(p, v, retval) syscallarg(int) nbytes; syscallarg(int) cacheop; } */ *uap = v; - register vm_offset_t va = (vm_offset_t)SCARG(uap, addr); + register vaddr_t va = (vaddr_t)SCARG(uap, addr); register int nbytes = SCARG(uap, nbytes); register int cacheop = SCARG(uap, cacheop); diff --git a/sys/ddb/db_aout.c b/sys/ddb/db_aout.c index 73b952a558e..a6a9596fba8 100644 --- a/sys/ddb/db_aout.c +++ b/sys/ddb/db_aout.c @@ -1,4 +1,4 @@ -/* $NetBSD: db_aout.c,v 1.19 1998/06/09 01:57:46 tv Exp $ */ +/* $NetBSD: db_aout.c,v 1.20 1998/08/13 02:10:50 eeh Exp $ */ /* * Mach Operating System @@ -110,7 +110,7 @@ X_db_sym_init(symsize, vsymtab, vesymtab, name) estrtab = strtab + slen; #define round_to_size(x) \ - (((vm_offset_t)(x) + sizeof(vm_size_t) - 1) & ~(sizeof(vm_size_t) - 1)) + (((vaddr_t)(x) + sizeof(vsize_t) - 1) & ~(sizeof(vsize_t) - 1)) if (round_to_size(estrtab) != round_to_size(vesymtab)) { printf("[ %s symbol table not valid ]\n", name); diff --git a/sys/ddb/db_break.c b/sys/ddb/db_break.c index 22f59d7100f..370a5e19bf5 100644 --- a/sys/ddb/db_break.c +++ b/sys/ddb/db_break.c @@ -1,4 +1,4 @@ -/* $NetBSD: db_break.c,v 1.8 1998/04/03 19:45:12 pk Exp $ */ +/* $NetBSD: db_break.c,v 1.9 1998/08/13 02:10:50 eeh Exp $ */ /* * Mach Operating System @@ -296,7 +296,7 @@ db_map_current(map) vm_map_t db_map_addr(addr) - vm_offset_t addr; + vaddr_t addr; { #if 0 thread_t thread; diff --git a/sys/ddb/db_break.h b/sys/ddb/db_break.h index 7495ce655ed..289325c1f0e 100644 --- a/sys/ddb/db_break.h +++ b/sys/ddb/db_break.h @@ -1,4 +1,4 @@ -/* $NetBSD: db_break.h,v 1.10 1998/04/03 19:45:12 pk Exp $ */ +/* $NetBSD: db_break.h,v 1.11 1998/08/13 02:10:50 eeh Exp $ */ /* * Mach Operating System @@ -63,6 +63,6 @@ void db_breakpoint_cmd __P((db_expr_t, int, db_expr_t, char *)); void db_listbreak_cmd __P((db_expr_t, int, db_expr_t, char *)); boolean_t db_map_equal __P((vm_map_t, vm_map_t)); boolean_t db_map_current __P((vm_map_t)); -vm_map_t db_map_addr __P((vm_offset_t)); +vm_map_t db_map_addr __P((vaddr_t)); #endif /* _DDB_DB_BREAK_H_ */ diff --git a/sys/ddb/db_elf.c b/sys/ddb/db_elf.c index d5c79ec73d2..ea35493d6f6 100644 --- a/sys/ddb/db_elf.c +++ b/sys/ddb/db_elf.c @@ -1,4 +1,4 @@ -/* $NetBSD: db_elf.c,v 1.5 1998/08/09 20:36:58 perry Exp $ */ +/* $NetBSD: db_elf.c,v 1.6 1998/08/13 02:10:50 eeh Exp $ */ /*- * Copyright (c) 1997 The NetBSD Foundation, Inc. @@ -265,9 +265,12 @@ X_db_search_symbol(symtab, off, strategy, diffp) for (symp = symtab_start; symp < symtab_end; symp++) { if (symp->st_name == 0) continue; +#if 0 + /* This prevents me from seeing anythin in locore.s -- eeh */ if (ELF_SYM_TYPE(symp->st_info) != Elf_estt_object && ELF_SYM_TYPE(symp->st_info) != Elf_estt_func) continue; +#endif if (off >= symp->st_value) { if ((off - symp->st_value) < diff) { diff --git a/sys/ddb/db_watch.c b/sys/ddb/db_watch.c index 487795008c1..0c8b364860d 100644 --- a/sys/ddb/db_watch.c +++ b/sys/ddb/db_watch.c @@ -1,4 +1,4 @@ -/* $NetBSD: db_watch.c,v 1.9 1996/03/30 22:30:12 christos Exp $ */ +/* $NetBSD: db_watch.c,v 1.10 1998/08/13 02:10:50 eeh Exp $ */ /* * Mach Operating System @@ -87,7 +87,7 @@ void db_set_watchpoint(map, addr, size) vm_map_t map; db_addr_t addr; - vm_size_t size; + vsize_t size; { register db_watchpoint_t watch; @@ -189,11 +189,11 @@ db_watchpoint_cmd(addr, have_addr, count, modif) db_expr_t count; char * modif; { - vm_size_t size; + vsize_t size; db_expr_t value; if (db_expression(&value)) - size = (vm_size_t) value; + size = (vsize_t) value; else size = 4; db_skip_to_eol(); diff --git a/sys/ddb/db_watch.h b/sys/ddb/db_watch.h index 1a4d70cf77d..f9be5636a2c 100644 --- a/sys/ddb/db_watch.h +++ b/sys/ddb/db_watch.h @@ -1,4 +1,4 @@ -/* $NetBSD: db_watch.h,v 1.9 1996/02/05 01:57:24 christos Exp $ */ +/* $NetBSD: db_watch.h,v 1.10 1998/08/13 02:10:50 eeh Exp $ */ /* * Mach Operating System @@ -44,7 +44,7 @@ typedef struct db_watchpoint { db_watchpoint_t db_watchpoint_alloc __P((void)); void db_watchpoint_free __P((db_watchpoint_t)); -void db_set_watchpoint __P((vm_map_t, db_addr_t, vm_size_t)); +void db_set_watchpoint __P((vm_map_t, db_addr_t, vsize_t)); void db_delete_watchpoint __P((vm_map_t, db_addr_t)); void db_list_watchpoints __P((void)); void db_deletewatch_cmd __P((db_expr_t, int, db_expr_t, char *)); diff --git a/sys/ddb/db_xxx.c b/sys/ddb/db_xxx.c index f2a3e21d725..c8d6823d7ac 100644 --- a/sys/ddb/db_xxx.c +++ b/sys/ddb/db_xxx.c @@ -1,4 +1,4 @@ -/* $NetBSD: db_xxx.c,v 1.3 1998/01/31 04:14:48 ross Exp $ */ +/* $NetBSD: db_xxx.c,v 1.4 1998/08/13 02:10:50 eeh Exp $ */ /* * Copyright (c) 1982, 1986, 1989, 1991, 1993 @@ -174,7 +174,7 @@ db_show_all_procs(addr, haddr, count, modif) } if(p->p_wchan && p->p_wmesg) { db_printf(" %-12s", p->p_wmesg); - db_printsym((db_addr_t)p->p_wchan, + db_printsym((db_expr_t)p->p_wchan, DB_STGY_XTRN); } db_printf("\n"); @@ -211,7 +211,7 @@ db_show_callout(addr, haddr, count, modif) if (t > 0) cum += t; - db_find_sym_and_offset((db_addr_t)p1->c_func, &name, &offset); + db_find_sym_and_offset((db_expr_t)p1->c_func, &name, &offset); if (name == NULL) name = "?"; diff --git a/sys/dev/ic/aic7xxx.c b/sys/dev/ic/aic7xxx.c index 0fa43a90880..b7425e1d721 100644 --- a/sys/dev/ic/aic7xxx.c +++ b/sys/dev/ic/aic7xxx.c @@ -1,4 +1,4 @@ -/* $NetBSD: aic7xxx.c,v 1.29 1998/04/16 07:12:43 leo Exp $ */ +/* $NetBSD: aic7xxx.c,v 1.30 1998/08/13 02:10:51 eeh Exp $ */ /* * Generic driver for the aic7xxx based adaptec SCSI controllers @@ -166,9 +166,9 @@ #endif #ifdef alpha /* XXX */ /* XXX XXX NEED REAL DMA MAPPING SUPPORT XXX XXX */ -extern vm_offset_t alpha_XXX_dmamap(vm_offset_t); +extern paddr_t alpha_XXX_dmamap(vaddr_t); #undef vtophys -#define vtophys(va) alpha_XXX_dmamap((vm_offset_t) va) +#define vtophys(va) alpha_XXX_dmamap((vaddr_t) va) #endif /* alpha */ #endif /* defined(__NetBSD__) */ diff --git a/sys/dev/ic/midway.c b/sys/dev/ic/midway.c index 77d75b75d51..2d193835979 100644 --- a/sys/dev/ic/midway.c +++ b/sys/dev/ic/midway.c @@ -1,4 +1,4 @@ -/* $NetBSD: midway.c,v 1.34 1998/08/08 23:51:40 mycroft Exp $ */ +/* $NetBSD: midway.c,v 1.35 1998/08/13 02:10:51 eeh Exp $ */ /* (sync'd to midway.c 1.68) */ /* @@ -159,7 +159,7 @@ #if defined(__alpha__) /* XXX XXX NEED REAL DMA MAPPING SUPPORT XXX XXX */ #undef vtophys -#define vtophys(va) alpha_XXX_dmamap((vm_offset_t)(va)) +#define vtophys(va) alpha_XXX_dmamap((vaddr_t)(va)) #endif #elif defined(__FreeBSD__) #include <machine/cpufunc.h> /* for rdtsc proto for clock.h below */ diff --git a/sys/dev/ic/pdqvar.h b/sys/dev/ic/pdqvar.h index 8760eccd7a6..c3cacdb457d 100644 --- a/sys/dev/ic/pdqvar.h +++ b/sys/dev/ic/pdqvar.h @@ -1,4 +1,4 @@ -/* $NetBSD: pdqvar.h,v 1.21 1998/05/27 01:17:53 matt Exp $ */ +/* $NetBSD: pdqvar.h,v 1.22 1998/08/13 02:10:51 eeh Exp $ */ /*- * Copyright (c) 1995, 1996 Matt Thomas <matt@3am-software.com> @@ -95,7 +95,7 @@ enum _pdq_type_t { #endif #if !defined(PDQ_BUS_DMA) #if defined(__NetBSD__) && defined(__alpha__) -#define PDQ_OS_VA_TO_BUSPA(pdq, p) (alpha_XXX_dmamap((vm_offset_t)p)) +#define PDQ_OS_VA_TO_BUSPA(pdq, p) (alpha_XXX_dmamap((vaddr_t)p)) #else #define PDQ_OS_VA_TO_BUSPA(pdq, p) vtophys(p) #endif @@ -104,15 +104,15 @@ enum _pdq_type_t { #define PDQ_OS_MEMFREE(p, n) free((void *) p, M_DEVBUF) #ifdef __FreeBSD__ #define PDQ_OS_MEMALLOC_CONTIG(n) vm_page_alloc_contig(n, 0, 0xffffffff, PAGE_SIZE) -#define PDQ_OS_MEMFREE_CONTIG(p, n) kmem_free(kernel_map, (vm_offset_t) p, n) +#define PDQ_OS_MEMFREE_CONTIG(p, n) kmem_free(kernel_map, (vaddr_t) p, n) #else #if !defined(PDQ_BUS_DMA) #if defined(UVM) #define PDQ_OS_MEMALLOC_CONTIG(n) uvm_km_alloc(kernel_map, round_page(n)) -#define PDQ_OS_MEMFREE_CONTIG(p, n) uvm_km_free(kernel_map, (vm_offset_t) p, n) +#define PDQ_OS_MEMFREE_CONTIG(p, n) uvm_km_free(kernel_map, (vaddr_t) p, n) #else #define PDQ_OS_MEMALLOC_CONTIG(n) kmem_alloc(kernel_map, round_page(n)) -#define PDQ_OS_MEMFREE_CONTIG(p, n) kmem_free(kernel_map, (vm_offset_t) p, n) +#define PDQ_OS_MEMFREE_CONTIG(p, n) kmem_free(kernel_map, (vaddr_t) p, n) #endif #endif #endif /* __FreeBSD__ */ diff --git a/sys/dev/ic/vga.c b/sys/dev/ic/vga.c index 5f4d0cba101..d34871dcfe3 100644 --- a/sys/dev/ic/vga.c +++ b/sys/dev/ic/vga.c @@ -1,4 +1,4 @@ -/* $NetBSD: vga.c,v 1.8 1998/07/24 16:20:14 drochner Exp $ */ +/* $NetBSD: vga.c,v 1.9 1998/08/13 02:10:52 eeh Exp $ */ /* * Copyright (c) 1995, 1996 Carnegie-Mellon University. diff --git a/sys/dev/isa/files.isa b/sys/dev/isa/files.isa index 3abb9f03dd4..69418ac567d 100644 --- a/sys/dev/isa/files.isa +++ b/sys/dev/isa/files.isa @@ -1,4 +1,4 @@ -# $NetBSD: files.isa,v 1.69 1998/08/12 18:16:36 augustss Exp $ +# $NetBSD: files.isa,v 1.70 1998/08/13 02:10:52 eeh Exp $ # # Config file and device description for machine-independent ISA code. # Included by ports that need it. Requires that the SCSI files be @@ -314,6 +314,10 @@ device aria: audio, mulaw, auconv attach aria at isa file dev/isa/aria.c aria needs-flag +# ESS Technology ES1887/ES888 +device ess: audio, isadma, mulaw, auconv +file dev/isa/ess.c ess needs-flag + # # PlanetConnect satellite receiver driver. # diff --git a/sys/dev/isa/pcdisplay.c b/sys/dev/isa/pcdisplay.c index 0a957c32062..d93bd504f62 100644 --- a/sys/dev/isa/pcdisplay.c +++ b/sys/dev/isa/pcdisplay.c @@ -1,4 +1,4 @@ -/* $NetBSD: pcdisplay.c,v 1.4 1998/07/24 16:22:51 drochner Exp $ */ +/* $NetBSD: pcdisplay.c,v 1.5 1998/08/13 02:10:52 eeh Exp $ */ /* * Copyright (c) 1998 diff --git a/sys/dev/md.c b/sys/dev/md.c index a08e12b644f..0cb7429d047 100644 --- a/sys/dev/md.c +++ b/sys/dev/md.c @@ -1,4 +1,4 @@ -/* $NetBSD: md.c,v 1.16 1998/02/10 14:09:18 mrg Exp $ */ +/* $NetBSD: md.c,v 1.17 1998/08/13 02:10:50 eeh Exp $ */ /* * Copyright (c) 1995 Gordon W. Ross, Leo Weppelman. @@ -438,8 +438,8 @@ md_ioctl_kalloc(sc, umd, proc) struct md_conf *umd; struct proc *proc; { - vm_offset_t addr; - vm_size_t size; + vaddr_t addr; + vsize_t size; /* Sanity check the size. */ size = umd->md_size; @@ -470,14 +470,14 @@ md_ioctl_server(sc, umd, proc) struct md_conf *umd; struct proc *proc; { - vm_offset_t end; + vaddr_t end; int error; /* Sanity check addr, size. */ - end = (vm_offset_t) (umd->md_addr + umd->md_size); + end = (vaddr_t) (umd->md_addr + umd->md_size); if ((end >= VM_MAXUSER_ADDRESS) || - (end < ((vm_offset_t) umd->md_addr)) ) + (end < ((vaddr_t) umd->md_addr)) ) return EINVAL; /* This unit is now configured. */ diff --git a/sys/dev/ofisa/ess_ofisa.c b/sys/dev/ofisa/ess_ofisa.c index 0f054e4c15d..2f72f8a6951 100644 --- a/sys/dev/ofisa/ess_ofisa.c +++ b/sys/dev/ofisa/ess_ofisa.c @@ -1,4 +1,4 @@ -/* $NetBSD: ess_ofisa.c,v 1.3 1998/07/31 15:17:18 augustss Exp $ */ +/* $NetBSD: ess_ofisa.c,v 1.4 1998/08/13 02:10:52 eeh Exp $ */ /*- * Copyright (c) 1998 The NetBSD Foundation, Inc. diff --git a/sys/dev/pci/if_de.c b/sys/dev/pci/if_de.c index c9885517c43..dea21ad6ade 100644 --- a/sys/dev/pci/if_de.c +++ b/sys/dev/pci/if_de.c @@ -1,4 +1,4 @@ -/* $NetBSD: if_de.c,v 1.72 1998/07/05 06:49:14 jonathan Exp $ */ +/* $NetBSD: if_de.c,v 1.73 1998/08/13 02:10:53 eeh Exp $ */ /*- * Copyright (c) 1994-1997 Matt Thomas (matt@3am-software.com) @@ -5466,7 +5466,7 @@ tulip_pci_attach( int retval, idx; u_int32_t revinfo, cfdainfo, id; #if !defined(TULIP_IOMAPPED) && defined(__FreeBSD__) - vm_offset_t pa_csrs; + vaddr_t pa_csrs; #endif unsigned csroffset = TULIP_PCI_CSROFFSET; unsigned csrsize = TULIP_PCI_CSRSIZE; @@ -5603,7 +5603,7 @@ tulip_pci_attach( #if defined(TULIP_IOMAPPED) retval = pci_map_port(config_id, PCI_CBIO, &csr_base); #else - retval = pci_map_mem(config_id, PCI_CBMA, (vm_offset_t *) &csr_base, &pa_csrs); + retval = pci_map_mem(config_id, PCI_CBMA, (vaddr_t *) &csr_base, &pa_csrs); #endif if (!retval) { free((caddr_t) sc, M_DEVBUF); @@ -5617,7 +5617,7 @@ tulip_pci_attach( #if defined(TULIP_IOMAPPED) csr_base = ia->ia_iobase; #else - csr_base = (vm_offset_t) mapphys((vm_offset_t) ia->ia_maddr, ia->ia_msize); + csr_base = (vaddr_t) mapphys((vaddr_t) ia->ia_maddr, ia->ia_msize); #endif #endif /* __bsdi__ */ diff --git a/sys/dev/pci/if_devar.h b/sys/dev/pci/if_devar.h index eaa9e7a65c1..6e9fbc779c0 100644 --- a/sys/dev/pci/if_devar.h +++ b/sys/dev/pci/if_devar.h @@ -1,4 +1,4 @@ -/* $NetBSD: if_devar.h,v 1.27 1998/05/25 22:13:28 mark Exp $ */ +/* $NetBSD: if_devar.h,v 1.28 1998/08/13 02:10:53 eeh Exp $ */ /*- * Copyright (c) 1994-1997 Matt Thomas (matt@3am-software.com) @@ -998,7 +998,7 @@ extern struct cfdriver de_cd; #if !defined(TULIP_BUS_DMA) || defined(TULIP_BUS_DMA_NORX) || defined(TULIP_BUS_DMA_NOTX) #if defined(__alpha__) /* XXX XXX NEED REAL DMA MAPPING SUPPORT XXX XXX */ -#define TULIP_KVATOPHYS(sc, va) alpha_XXX_dmamap((vm_offset_t)(va)) +#define TULIP_KVATOPHYS(sc, va) alpha_XXX_dmamap((vaddr_t)(va)) #endif #endif #endif /* __NetBSD__ */ diff --git a/sys/dev/pci/if_fpa.c b/sys/dev/pci/if_fpa.c index b71188a2456..ad38b371c60 100644 --- a/sys/dev/pci/if_fpa.c +++ b/sys/dev/pci/if_fpa.c @@ -1,4 +1,4 @@ -/* $NetBSD: if_fpa.c,v 1.27 1998/07/05 00:51:23 jonathan Exp $ */ +/* $NetBSD: if_fpa.c,v 1.28 1998/08/13 02:10:53 eeh Exp $ */ /*- * Copyright (c) 1995, 1996 Matt Thomas <matt@3am-software.com> @@ -192,7 +192,8 @@ pdq_pci_attach( int unit) { pdq_softc_t *sc; - vm_offset_t va_csrs, pa_csrs; + vaddr_t va_csrs; + paddr_t pa_csrs; pdq_uint32_t data; if (unit == NFPA) { @@ -360,7 +361,7 @@ pdq_pci_attach( sc->sc_if.if_unit = sc->sc_dev.dv_unit; sc->sc_if.if_name = "fpa"; sc->sc_if.if_flags = 0; - sc->sc_membase = (pdq_bus_memaddr_t) mapphys((vm_offset_t)ia->ia_maddr, ia->ia_msize); + sc->sc_membase = (pdq_bus_memaddr_t) mapphys((vaddr_t)ia->ia_maddr, ia->ia_msize); sc->sc_pdq = pdq_initialize(PDQ_BUS_PCI, sc->sc_membase, sc->sc_if.if_name, sc->sc_if.if_unit, diff --git a/sys/dev/pci/if_tl.c b/sys/dev/pci/if_tl.c index 9f4dc17cc87..8e6fbfac114 100644 --- a/sys/dev/pci/if_tl.c +++ b/sys/dev/pci/if_tl.c @@ -1,4 +1,4 @@ -/* $NetBSD: if_tl.c,v 1.15 1998/08/11 00:09:26 thorpej Exp $ */ +/* $NetBSD: if_tl.c,v 1.16 1998/08/13 02:10:54 eeh Exp $ */ /* * Copyright (c) 1997 Manuel Bouyer. All rights reserved. @@ -1219,7 +1219,7 @@ tbdinit: break; size += m->m_len; Tx->hw_list.seg[segment].data_addr = - vtophys(mtod(m, vm_offset_t)); + vtophys(mtod(m, vaddr_t)); Tx->hw_list.seg[segment].data_count = m->m_len; segment++; } diff --git a/sys/dev/pci/ncr.c b/sys/dev/pci/ncr.c index 8b55b6a1f6d..5977052ff19 100644 --- a/sys/dev/pci/ncr.c +++ b/sys/dev/pci/ncr.c @@ -1,4 +1,4 @@ -/* $NetBSD: ncr.c,v 1.69 1998/08/10 13:10:33 ross Exp $ */ +/* $NetBSD: ncr.c,v 1.70 1998/08/13 02:10:54 eeh Exp $ */ /************************************************************************** ** @@ -248,7 +248,7 @@ #if defined(__NetBSD__) && defined(__alpha__) /* XXX XXX NEED REAL DMA MAPPING SUPPORT XXX XXX */ #undef vtophys -#define vtophys(va) alpha_XXX_dmamap((vm_offset_t)(va)) +#define vtophys(va) alpha_XXX_dmamap((vaddr_t)(va)) #endif /*========================================================== @@ -1094,11 +1094,11 @@ struct ncb { ** of the 53c810 chip. */ #ifndef __NetBSD__ - vm_offset_t vaddr; - vm_offset_t paddr; + vaddr_t vaddr; + paddr_t paddr; - vm_offset_t vaddr2; - vm_offset_t paddr2; + vaddr_t vaddr2; + paddr_t paddr2; #else bus_addr_t paddr; @@ -1397,8 +1397,8 @@ static void ncb_profile (ncb_p np, ccb_p cp); static void ncr_script_copy_and_bind (ncb_p np, ncrcmd *src, ncrcmd *dst, int len); static void ncr_script_fill (struct script * scr, struct scripth *scrh); -static int ncr_scatter (struct dsb* phys, vm_offset_t vaddr, - vm_size_t datalen); +static int ncr_scatter (struct dsb* phys, vaddr_t vaddr, + vsize_t datalen); static void ncr_setmaxtags (tcb_p tp, u_long usrtags); static void ncr_getsync (ncb_p np, u_char sfac, u_char *fakp, u_char *scntl3p); @@ -1434,7 +1434,7 @@ static void ncr_attach (pcici_t tag, int unit); #if 0 static char ident[] = - "\n$NetBSD: ncr.c,v 1.69 1998/08/10 13:10:33 ross Exp $\n"; + "\n$NetBSD: ncr.c,v 1.70 1998/08/13 02:10:54 eeh Exp $\n"; #endif static const u_long ncr_version = NCR_VERSION * 11 @@ -4603,8 +4603,8 @@ static INT32 ncr_start (struct scsipi_xfer * xp) **---------------------------------------------------- */ - segments = ncr_scatter (&cp->phys, (vm_offset_t) xp->data, - (vm_size_t) xp->datalen); + segments = ncr_scatter (&cp->phys, (vaddr_t) xp->data, + (vsize_t) xp->datalen); if (segments < 0) { xp->error = XS_DRIVER_STUFFUP; @@ -7350,7 +7350,7 @@ static void ncr_opennings (ncb_p np, lcb_p lp, struct scsipi_xfer * xp) */ static int ncr_scatter - (struct dsb* phys, vm_offset_t vaddr, vm_size_t datalen) + (struct dsb* phys, vaddr_t vaddr, vsize_t datalen) { u_long paddr, pnext; diff --git a/sys/dev/pci/tga.c b/sys/dev/pci/tga.c index 529db67edd2..aa88ac8cb41 100644 --- a/sys/dev/pci/tga.c +++ b/sys/dev/pci/tga.c @@ -1,4 +1,4 @@ -/* $NetBSD: tga.c,v 1.6 1998/06/26 21:07:03 drochner Exp $ */ +/* $NetBSD: tga.c,v 1.7 1998/08/13 02:10:54 eeh Exp $ */ /* * Copyright (c) 1995, 1996 Carnegie-Mellon University. diff --git a/sys/dev/pci/tgavar.h b/sys/dev/pci/tgavar.h index 9b0bdd8eebb..ab687764229 100644 --- a/sys/dev/pci/tgavar.h +++ b/sys/dev/pci/tgavar.h @@ -1,4 +1,4 @@ -/* $NetBSD: tgavar.h,v 1.1 1998/04/15 20:16:34 drochner Exp $ */ +/* $NetBSD: tgavar.h,v 1.2 1998/08/13 02:10:55 eeh Exp $ */ /* * Copyright (c) 1995, 1996 Carnegie-Mellon University. @@ -63,16 +63,16 @@ struct tga_conf { const struct tga_ramdac_conf *tgac_ramdac; /* the RAMDAC type; see above */ int tgac_phys_depth; /* physical frame buffer depth */ - vm_size_t tgac_cspace_size; /* core space size */ - vm_size_t tgac_vvbr_units; /* what '1' in the VVBR means */ + vsize_t tgac_cspace_size; /* core space size */ + vsize_t tgac_vvbr_units; /* what '1' in the VVBR means */ int tgac_ndbuf; /* number of display buffers */ - vm_offset_t tgac_dbuf[2]; /* display buffer offsets/addresses */ - vm_size_t tgac_dbufsz[2]; /* display buffer sizes */ + vaddr_t tgac_dbuf[2]; /* display buffer offsets/addresses */ + vsize_t tgac_dbufsz[2]; /* display buffer sizes */ int tgac_nbbuf; /* number of display buffers */ - vm_offset_t tgac_bbuf[2]; /* back buffer offsets/addresses */ - vm_size_t tgac_bbufsz[2]; /* back buffer sizes */ + vaddr_t tgac_bbuf[2]; /* back buffer offsets/addresses */ + vsize_t tgac_bbufsz[2]; /* back buffer sizes */ }; struct tga_devconfig { @@ -87,14 +87,14 @@ struct tga_devconfig { int dc_tga_type; /* the device type; see below */ const struct tga_conf *dc_tgaconf; /* device buffer configuration */ - vm_offset_t dc_vaddr; /* memory space virtual base address */ - vm_offset_t dc_paddr; /* memory space physical base address */ + vaddr_t dc_vaddr; /* memory space virtual base address */ + paddr_t dc_paddr; /* memory space physical base address */ int dc_wid; /* width of frame buffer */ int dc_ht; /* height of frame buffer */ int dc_rowbytes; /* bytes in a FB scan line */ - vm_offset_t dc_videobase; /* base of flat frame buffer */ + vaddr_t dc_videobase; /* base of flat frame buffer */ struct raster dc_raster; /* raster description */ struct rcons dc_rcons; /* raster blitter control info */ diff --git a/sys/dev/pcmcia/pcmcia.c b/sys/dev/pcmcia/pcmcia.c index ba6f9b274d3..faa56c95747 100644 --- a/sys/dev/pcmcia/pcmcia.c +++ b/sys/dev/pcmcia/pcmcia.c @@ -1,4 +1,4 @@ -/* $NetBSD: pcmcia.c,v 1.8 1998/06/09 07:32:57 thorpej Exp $ */ +/* $NetBSD: pcmcia.c,v 1.9 1998/08/13 02:10:55 eeh Exp $ */ #define PCMCIADEBUG @@ -775,7 +775,7 @@ pcmcia_card_intr(arg) printf("%s: intr flags=%x fct=%d physaddr=%lx cor=%02x csr=%02x pin=%02x", sc->dev.dv_xname, pf->pf_flags, pf->number, pmap_extract(pmap_kernel(), - (vm_offset_t) pf->pf_ccrh) + pf->pf_ccr_offset, + (vaddr_t) pf->pf_ccrh) + pf->pf_ccr_offset, pcmcia_ccr_read(pf, PCMCIA_CCR_OPTION), pcmcia_ccr_read(pf, PCMCIA_CCR_STATUS), pcmcia_ccr_read(pf, PCMCIA_CCR_PIN)); diff --git a/sys/dev/sbus/sbusvar.h b/sys/dev/sbus/sbusvar.h index b653cc6657a..1ce75e432be 100644 --- a/sys/dev/sbus/sbusvar.h +++ b/sys/dev/sbus/sbusvar.h @@ -1,4 +1,4 @@ -/* $NetBSD: sbusvar.h,v 1.2 1998/07/29 18:30:20 pk Exp $ */ +/* $NetBSD: sbusvar.h,v 1.3 1998/08/13 02:10:55 eeh Exp $ */ /*- * Copyright (c) 1998 The NetBSD Foundation, Inc. @@ -132,9 +132,9 @@ struct sbus_softc { struct sbus_range *sc_range; int sc_nrange; int sc_burst; /* burst transfer sizes supported */ + /* machdep stuff follows here */ int *sc_intr2ipl; /* Interrupt level translation */ int *sc_intr_compat; /* `intr' property to sbus compat */ - /* machdep stuff follows here */ }; #endif diff --git a/sys/dev/tc/asc.c b/sys/dev/tc/asc.c index cb5b59d442a..0bc02df72ad 100644 --- a/sys/dev/tc/asc.c +++ b/sys/dev/tc/asc.c @@ -1,4 +1,4 @@ -/* $NetBSD: asc.c,v 1.46 1998/05/08 15:39:01 mhitch Exp $ */ +/* $NetBSD: asc.c,v 1.47 1998/08/13 02:10:56 eeh Exp $ */ /*- * Copyright (c) 1992, 1993 @@ -1413,7 +1413,7 @@ asc_end(asc, status, ss, ir) ss->byte2 = sc_link->lun << 5; ss->length = sizeof(struct scsipi_sense_data); state->cmdlen = sizeof(*ss); - state->buf = (vm_offset_t)&scsicmd->sense; + state->buf = (vaddr_t)&scsicmd->sense; state->buflen = sizeof(struct scsipi_sense_data); state->flags |= CHECK_SENSE; MachFlushDCache(state->buf, state->buflen); diff --git a/sys/dev/tc/asc_ioasic.c b/sys/dev/tc/asc_ioasic.c index f9f1d5a6200..4c867c689a9 100644 --- a/sys/dev/tc/asc_ioasic.c +++ b/sys/dev/tc/asc_ioasic.c @@ -1,4 +1,4 @@ -/* $NetBSD: asc_ioasic.c,v 1.13 1998/05/27 04:30:07 thorpej Exp $ */ +/* $NetBSD: asc_ioasic.c,v 1.14 1998/08/13 02:10:56 eeh Exp $ */ /* * Copyright 1996 The Board of Trustees of The Leland Stanford @@ -37,7 +37,7 @@ #include <pmax/pmax/pmaxtype.h> extern int pmax_boardtype; -extern vm_offset_t kvtophys __P((vm_offset_t)); +extern paddr_t kvtophys __P((vaddr_t)); extern tc_addr_t ioasic_base; /* XXX */ @@ -185,16 +185,16 @@ asic_dma_start(asc, state, cp, flag, len, off) /* If R4K, writeback and invalidate the buffer */ if (CPUISMIPS3) - mips3_HitFlushDCache((vm_offset_t)cp, len); + mips3_HitFlushDCache((vaddr_t)cp, len); /* Get physical address of buffer start, no next phys addr */ - phys = (u_int)kvtophys((vm_offset_t)cp); + phys = (u_int)kvtophys((vaddr_t)cp); nphys = -1; /* Compute 2nd DMA pointer only if next page is part of this I/O */ if ((NBPG - (phys & (NBPG - 1))) < len) { cp = (caddr_t)mips_trunc_page(cp + NBPG); - nphys = (u_int)kvtophys((vm_offset_t)cp); + nphys = (u_int)kvtophys((vaddr_t)cp); } /* If not R4K, need to invalidate cache lines for both physical segments */ @@ -217,7 +217,7 @@ asic_dma_start(asc, state, cp, flag, len, off) #ifdef MIPS3 /* If R4K, need to writeback the bounce buffer */ if (CPUISMIPS3) - mips3_HitFlushDCache((vm_offset_t)cp, len); + mips3_HitFlushDCache((vaddr_t)cp, len); #endif /* MIPS3 */ phys = MIPS_KSEG0_TO_PHYS(cp); cp = (caddr_t)mips_trunc_page(cp + NBPG); diff --git a/sys/dev/wscons/wsdisplayvar.h b/sys/dev/wscons/wsdisplayvar.h index dabdf074c53..63bbb3b23cf 100644 --- a/sys/dev/wscons/wsdisplayvar.h +++ b/sys/dev/wscons/wsdisplayvar.h @@ -1,4 +1,4 @@ -/* $NetBSD: wsdisplayvar.h,v 1.6 1998/07/28 22:01:24 augustss Exp $ */ +/* $NetBSD: wsdisplayvar.h,v 1.7 1998/08/13 02:10:56 eeh Exp $ */ /* * Copyright (c) 1996, 1997 Christopher G. Demetriou. All rights reserved. diff --git a/sys/kern/init_main.c b/sys/kern/init_main.c index 0f6c6261394..7b590210eeb 100644 --- a/sys/kern/init_main.c +++ b/sys/kern/init_main.c @@ -1,4 +1,4 @@ -/* $NetBSD: init_main.c,v 1.129 1998/08/04 04:03:11 perry Exp $ */ +/* $NetBSD: init_main.c,v 1.130 1998/08/13 02:10:56 eeh Exp $ */ /* * Copyright (c) 1995 Christopher G. Demetriou. All rights reserved. @@ -460,7 +460,7 @@ static void start_init(p) struct proc *p; { - vm_offset_t addr; + vaddr_t addr; struct sys_execve_args /* { syscallarg(const char *) path; syscallarg(char * const *) argp; @@ -497,7 +497,7 @@ start_init(p) != KERN_SUCCESS) panic("init: couldn't allocate argument space"); #else - if (vm_allocate(&p->p_vmspace->vm_map, &addr, (vm_size_t)PAGE_SIZE, + if (vm_allocate(&p->p_vmspace->vm_map, &addr, (vsize_t)PAGE_SIZE, FALSE) != 0) panic("init: couldn't allocate argument space"); #endif diff --git a/sys/kern/kern_exec.c b/sys/kern/kern_exec.c index c3bac84c958..4764a57785e 100644 --- a/sys/kern/kern_exec.c +++ b/sys/kern/kern_exec.c @@ -1,4 +1,4 @@ -/* $NetBSD: kern_exec.c,v 1.94 1998/08/04 04:03:12 perry Exp $ */ +/* $NetBSD: kern_exec.c,v 1.95 1998/08/13 02:10:57 eeh Exp $ */ /*- * Copyright (C) 1993, 1994, 1996 Christopher G. Demetriou @@ -277,7 +277,7 @@ sys_execve(p, v, retval) argp = (char *) kmem_alloc_wait(exec_map, NCARGS); #endif #ifdef DIAGNOSTIC - if (argp == (vm_offset_t) 0) + if (argp == (vaddr_t) 0) panic("execve: argp == NULL"); #endif dp = argp; @@ -470,9 +470,9 @@ sys_execve(p, v, retval) p->p_cred->p_svgid = p->p_ucred->cr_gid; #if defined(UVM) - uvm_km_free_wakeup(exec_map, (vm_offset_t) argp, NCARGS); + uvm_km_free_wakeup(exec_map, (vaddr_t) argp, NCARGS); #else - kmem_free_wakeup(exec_map, (vm_offset_t) argp, NCARGS); + kmem_free_wakeup(exec_map, (vaddr_t) argp, NCARGS); #endif FREE(nid.ni_cnd.cn_pnbuf, M_NAMEI); @@ -508,9 +508,9 @@ bad: vrele(pack.ep_vp); FREE(nid.ni_cnd.cn_pnbuf, M_NAMEI); #if defined(UVM) - uvm_km_free_wakeup(exec_map, (vm_offset_t) argp, NCARGS); + uvm_km_free_wakeup(exec_map, (vaddr_t) argp, NCARGS); #else - kmem_free_wakeup(exec_map, (vm_offset_t) argp, NCARGS); + kmem_free_wakeup(exec_map, (vaddr_t) argp, NCARGS); #endif freehdr: @@ -536,9 +536,9 @@ exec_abort: VOP_CLOSE(pack.ep_vp, FREAD, cred, p); vrele(pack.ep_vp); #if defined(UVM) - uvm_km_free_wakeup(exec_map, (vm_offset_t) argp, NCARGS); + uvm_km_free_wakeup(exec_map, (vaddr_t) argp, NCARGS); #else - kmem_free_wakeup(exec_map, (vm_offset_t) argp, NCARGS); + kmem_free_wakeup(exec_map, (vaddr_t) argp, NCARGS); #endif FREE(pack.ep_hdr, M_EXEC); exit1(p, W_EXITCODE(0, SIGABRT)); diff --git a/sys/kern/kern_fork.c b/sys/kern/kern_fork.c index c0abf3a1a40..f5be2ede907 100644 --- a/sys/kern/kern_fork.c +++ b/sys/kern/kern_fork.c @@ -1,4 +1,4 @@ -/* $NetBSD: kern_fork.c,v 1.45 1998/08/04 04:03:12 perry Exp $ */ +/* $NetBSD: kern_fork.c,v 1.46 1998/08/13 02:10:57 eeh Exp $ */ /* * Copyright (c) 1982, 1986, 1989, 1991, 1993 @@ -122,7 +122,7 @@ fork1(p1, flags, retval, rnewprocp) register uid_t uid; struct proc *newproc; int count; - vm_offset_t uaddr; + vaddr_t uaddr; static int nextpid, pidchecked = 0; /* diff --git a/sys/kern/kern_malloc.c b/sys/kern/kern_malloc.c index a2e6a2018a0..434178440dc 100644 --- a/sys/kern/kern_malloc.c +++ b/sys/kern/kern_malloc.c @@ -1,4 +1,4 @@ -/* $NetBSD: kern_malloc.c,v 1.34 1998/08/04 04:03:13 perry Exp $ */ +/* $NetBSD: kern_malloc.c,v 1.35 1998/08/13 02:10:57 eeh Exp $ */ /* * Copyright 1996 Christopher G. Demetriou. All rights reserved. @@ -239,10 +239,10 @@ malloc(size, type, flags) npg = clrnd(btoc(allocsize)); #if defined(UVM) va = (caddr_t) uvm_km_kmemalloc(kmem_map, uvmexp.kmem_object, - (vm_size_t)ctob(npg), + (vsize_t)ctob(npg), (flags & M_NOWAIT) ? UVM_KMF_NOWAIT : 0); #else - va = (caddr_t) kmem_malloc(kmem_map, (vm_size_t)ctob(npg), + va = (caddr_t) kmem_malloc(kmem_map, (vsize_t)ctob(npg), !(flags & M_NOWAIT)); #endif if (va == NULL) { @@ -317,7 +317,7 @@ malloc(size, type, flags) #if defined(UVM) if (kbp->kb_next) { int rv; - vm_offset_t addr = (vm_offset_t)kbp->kb_next; + vaddr_t addr = (vaddr_t)kbp->kb_next; vm_map_lock_read(kmem_map); rv = uvm_map_checkprot(kmem_map, addr, @@ -456,9 +456,9 @@ free(addr, type) #endif /* DIAGNOSTIC */ if (size > MAXALLOCSAVE) { #if defined(UVM) - uvm_km_free(kmem_map, (vm_offset_t)addr, ctob(kup->ku_pagecnt)); + uvm_km_free(kmem_map, (vaddr_t)addr, ctob(kup->ku_pagecnt)); #else - kmem_free(kmem_map, (vm_offset_t)addr, ctob(kup->ku_pagecnt)); + kmem_free(kmem_map, (vaddr_t)addr, ctob(kup->ku_pagecnt)); #endif #ifdef KMEMSTATS size = kup->ku_pagecnt << PGSHIFT; @@ -637,15 +637,15 @@ kmeminit() npg = VM_KMEM_SIZE/ NBPG; #if defined(UVM) kmemusage = (struct kmemusage *) uvm_km_zalloc(kernel_map, - (vm_size_t)(npg * sizeof(struct kmemusage))); - kmem_map = uvm_km_suballoc(kernel_map, (vm_offset_t *)&kmembase, - (vm_offset_t *)&kmemlimit, (vm_size_t)(npg * NBPG), + (vsize_t)(npg * sizeof(struct kmemusage))); + kmem_map = uvm_km_suballoc(kernel_map, (vaddr_t *)&kmembase, + (vaddr_t *)&kmemlimit, (vsize_t)(npg * NBPG), FALSE, FALSE, &kmem_map_store); #else kmemusage = (struct kmemusage *) kmem_alloc(kernel_map, - (vm_size_t)(npg * sizeof(struct kmemusage))); - kmem_map = kmem_suballoc(kernel_map, (vm_offset_t *)&kmembase, - (vm_offset_t *)&kmemlimit, (vm_size_t)(npg * NBPG), FALSE); + (vsize_t)(npg * sizeof(struct kmemusage))); + kmem_map = kmem_suballoc(kernel_map, (vaddr_t *)&kmembase, + (vaddr_t *)&kmemlimit, (vsize_t)(npg * NBPG), FALSE); #endif #ifdef KMEMSTATS for (indx = 0; indx < MINBUCKET + 16; indx++) { diff --git a/sys/kern/kern_resource.c b/sys/kern/kern_resource.c index 16d3bb7dd63..4970b94980e 100644 --- a/sys/kern/kern_resource.c +++ b/sys/kern/kern_resource.c @@ -1,4 +1,4 @@ -/* $NetBSD: kern_resource.c,v 1.47 1998/08/04 04:03:13 perry Exp $ */ +/* $NetBSD: kern_resource.c,v 1.48 1998/08/13 02:10:57 eeh Exp $ */ /*- * Copyright (c) 1982, 1986, 1991, 1993 @@ -285,8 +285,8 @@ dosetrlimit(p, which, limp) */ limp->rlim_cur = round_page(limp->rlim_cur); if (limp->rlim_cur != alimp->rlim_cur) { - vm_offset_t addr; - vm_size_t size; + vaddr_t addr; + vsize_t size; vm_prot_t prot; if (limp->rlim_cur > alimp->rlim_cur) { diff --git a/sys/kern/kgdb_stub.c b/sys/kern/kgdb_stub.c index e38752092bf..f084c7e3373 100644 --- a/sys/kern/kgdb_stub.c +++ b/sys/kern/kgdb_stub.c @@ -1,4 +1,4 @@ -/* $NetBSD: kgdb_stub.c,v 1.4 1997/09/10 19:39:05 pk Exp $ */ +/* $NetBSD: kgdb_stub.c,v 1.5 1998/08/13 02:10:57 eeh Exp $ */ /* * Copyright (c) 1990, 1993 @@ -77,7 +77,7 @@ static int digit2i __P((u_char)); static u_char i2digit __P((int)); static void mem2hex __P((void *, void *, int)); static u_char *hex2mem __P((void *, u_char *, int)); -static vm_offset_t hex2i __P((u_char **)); +static vaddr_t hex2i __P((u_char **)); static int (*kgdb_getc) __P((void *)); static void (*kgdb_putc) __P((void *, int)); @@ -199,12 +199,12 @@ hex2mem(vdst, src, maxlen) * This returns a pointer to the character following * the last valid hex digit. */ -static vm_offset_t +static vaddr_t hex2i(srcp) u_char **srcp; { char *src = *srcp; - vm_offset_t r = 0; + vaddr_t r = 0; int nibble; while ((nibble = digit2i(*src)) >= 0) { @@ -324,7 +324,7 @@ kgdb_trap(type, regs) db_regs_t *regs; { label_t jmpbuf; - vm_offset_t addr; + vaddr_t addr; size_t len; u_char *p; diff --git a/sys/kern/subr_pool.c b/sys/kern/subr_pool.c index ac42aa5922c..4978218980a 100644 --- a/sys/kern/subr_pool.c +++ b/sys/kern/subr_pool.c @@ -1,4 +1,4 @@ -/* $NetBSD: subr_pool.c,v 1.9 1998/08/04 04:03:15 perry Exp $ */ +/* $NetBSD: subr_pool.c,v 1.10 1998/08/13 02:10:58 eeh Exp $ */ /*- * Copyright (c) 1997 The NetBSD Foundation, Inc. @@ -846,9 +846,9 @@ pool_page_free(v, sz, mtype) { #if defined(UVM) - uvm_km_free_poolpage((vm_offset_t)v); + uvm_km_free_poolpage((vaddr_t)v); #else - kmem_free_poolpage((vm_offset_t)v); + kmem_free_poolpage((vaddr_t)v); #endif } diff --git a/sys/kern/sysv_shm.c b/sys/kern/sysv_shm.c index 4e53f738c53..4e6127f3c55 100644 --- a/sys/kern/sysv_shm.c +++ b/sys/kern/sysv_shm.c @@ -1,4 +1,4 @@ -/* $NetBSD: sysv_shm.c,v 1.46 1998/08/04 04:03:16 perry Exp $ */ +/* $NetBSD: sysv_shm.c,v 1.47 1998/08/13 02:10:58 eeh Exp $ */ /* * Copyright (c) 1994 Adam Glass and Charles Hannum. All rights reserved. @@ -86,7 +86,7 @@ struct shm_handle { }; struct shmmap_state { - vm_offset_t va; + vaddr_t va; int shmid; }; @@ -198,7 +198,7 @@ sys_shmdt(p, v, retval) for (i = 0; i < shminfo.shmseg; i++, shmmap_s++) if (shmmap_s->shmid != -1 && - shmmap_s->va == (vm_offset_t)SCARG(uap, shmaddr)) + shmmap_s->va == (vaddr_t)SCARG(uap, shmaddr)) break; if (i == shminfo.shmseg) return EINVAL; @@ -221,9 +221,9 @@ sys_shmat(p, v, retval) struct shmid_ds *shmseg; struct shmmap_state *shmmap_s = NULL; struct shm_handle *shm_handle; - vm_offset_t attach_va; + vaddr_t attach_va; vm_prot_t prot; - vm_size_t size; + vsize_t size; int rv; shmmap_s = (struct shmmap_state *)p->p_vmspace->vm_shm; @@ -257,9 +257,9 @@ sys_shmat(p, v, retval) flags |= MAP_FIXED; if (SCARG(uap, shmflg) & SHM_RND) attach_va = - (vm_offset_t)SCARG(uap, shmaddr) & ~(SHMLBA-1); - else if (((vm_offset_t)SCARG(uap, shmaddr) & (SHMLBA-1)) == 0) - attach_va = (vm_offset_t)SCARG(uap, shmaddr); + (vaddr_t)SCARG(uap, shmaddr) & ~(SHMLBA-1); + else if (((vaddr_t)SCARG(uap, shmaddr) & (SHMLBA-1)) == 0) + attach_va = (vaddr_t)SCARG(uap, shmaddr); else return EINVAL; } else { diff --git a/sys/kern/vfs_bio.c b/sys/kern/vfs_bio.c index 4afbab8b5e0..dbbaad9c28a 100644 --- a/sys/kern/vfs_bio.c +++ b/sys/kern/vfs_bio.c @@ -1,4 +1,4 @@ -/* $NetBSD: vfs_bio.c,v 1.55 1998/08/04 04:03:18 perry Exp $ */ +/* $NetBSD: vfs_bio.c,v 1.56 1998/08/13 02:10:58 eeh Exp $ */ /*- * Copyright (c) 1994 Christopher G. Demetriou @@ -638,7 +638,7 @@ allocbuf(bp, size) int size; { struct buf *nbp; - vm_size_t desired_size; + vsize_t desired_size; int s; desired_size = roundup(size, CLBYTES); diff --git a/sys/miscfs/procfs/procfs_mem.c b/sys/miscfs/procfs/procfs_mem.c index 59aec2ca529..e3565cc3dc4 100644 --- a/sys/miscfs/procfs/procfs_mem.c +++ b/sys/miscfs/procfs/procfs_mem.c @@ -1,4 +1,4 @@ -/* $NetBSD: procfs_mem.c,v 1.18 1998/02/10 14:10:35 mrg Exp $ */ +/* $NetBSD: procfs_mem.c,v 1.19 1998/08/13 02:10:58 eeh Exp $ */ /* * Copyright (c) 1993 Jan-Simon Pendry @@ -84,19 +84,19 @@ procfs_rwmem(p, uio) do { vm_map_t map, tmap; vm_object_t object; - vm_offset_t kva; - vm_offset_t uva; + vaddr_t kva; + vaddr_t uva; int page_offset; /* offset into page */ - vm_offset_t pageno; /* page number */ + vaddr_t pageno; /* page number */ vm_map_entry_t out_entry; vm_prot_t out_prot; vm_page_t m; boolean_t wired, single_use; - vm_offset_t off; + vaddr_t off; u_int len; int fix_prot; - uva = (vm_offset_t) uio->uio_offset; + uva = (vaddr_t) uio->uio_offset; if (uva > VM_MAXUSER_ADDRESS) { error = 0; break; @@ -312,7 +312,7 @@ procfs_findtextvp(p) { int error; vm_object_t object; - vm_offset_t pageno; /* page number */ + vaddr_t pageno; /* page number */ /* find a vnode pager for the user address space */ @@ -323,7 +323,7 @@ procfs_findtextvp(p) vm_map_entry_t out_entry; vm_prot_t out_prot; boolean_t wired, single_use; - vm_offset_t off; + vaddr_t off; map = &p->p_vmspace->vm_map; error = vm_map_lookup(&map, pageno, diff --git a/sys/sys/kgdb.h b/sys/sys/kgdb.h index c6ca03d7a2e..dac06b37d61 100644 --- a/sys/sys/kgdb.h +++ b/sys/sys/kgdb.h @@ -1,4 +1,4 @@ -/* $NetBSD: kgdb.h,v 1.3 1998/04/03 19:34:24 pk Exp $ */ +/* $NetBSD: kgdb.h,v 1.4 1998/08/13 02:10:59 eeh Exp $ */ /* * Copyright (c) 1992, 1993 @@ -96,7 +96,7 @@ int kgdb_trap __P((int, db_regs_t *)); * Machine dependent functions needed by kgdb_stub.c */ int kgdb_signal __P((int)); -int kgdb_acc __P((vm_offset_t, size_t)); +int kgdb_acc __P((vaddr_t, size_t)); void kgdb_getregs __P((db_regs_t *, kgdb_reg_t *)); void kgdb_setregs __P((db_regs_t *, kgdb_reg_t *)); diff --git a/sys/sys/types.h b/sys/sys/types.h index d78e3a45a30..ffa0bd46bd5 100644 --- a/sys/sys/types.h +++ b/sys/sys/types.h @@ -1,4 +1,4 @@ -/* $NetBSD: types.h,v 1.35 1998/08/09 20:58:14 perry Exp $ */ +/* $NetBSD: types.h,v 1.36 1998/08/13 02:10:59 eeh Exp $ */ /*- * Copyright (c) 1982, 1986, 1991, 1993, 1994 @@ -116,6 +116,7 @@ typedef _BSD_CLOCK_T_ clock_t; #ifdef _BSD_SIZE_T_ typedef _BSD_SIZE_T_ size_t; +#define _SIZE_T #undef _BSD_SIZE_T_ #endif diff --git a/sys/uvm/uvm.h b/sys/uvm/uvm.h index f1978b31d5a..b2a63ccbd96 100644 --- a/sys/uvm/uvm.h +++ b/sys/uvm/uvm.h @@ -1,4 +1,4 @@ -/* $NetBSD: uvm.h,v 1.10 1998/07/08 04:28:27 thorpej Exp $ */ +/* $NetBSD: uvm.h,v 1.11 1998/08/13 02:10:59 eeh Exp $ */ /* * XXXCDC: "ROUGH DRAFT" QUALITY UVM PRE-RELEASE FILE! @@ -108,8 +108,8 @@ struct uvm { struct uvm_aiohead aio_done; /* done async i/o reqs */ /* pager VM area bounds */ - vm_offset_t pager_sva; /* start of pager VA area */ - vm_offset_t pager_eva; /* end of pager VA area */ + vaddr_t pager_sva; /* start of pager VA area */ + vaddr_t pager_eva; /* end of pager VA area */ /* kernel object: to support anonymous pageable kernel memory */ struct uvm_object *kernel_object; diff --git a/sys/uvm/uvm_amap.c b/sys/uvm/uvm_amap.c index fc48f8fefa6..9522a2cfd2c 100644 --- a/sys/uvm/uvm_amap.c +++ b/sys/uvm/uvm_amap.c @@ -1,4 +1,4 @@ -/* $NetBSD: uvm_amap.c,v 1.11 1998/08/09 22:36:37 perry Exp $ */ +/* $NetBSD: uvm_amap.c,v 1.12 1998/08/13 02:10:59 eeh Exp $ */ /* * XXXCDC: "ROUGH DRAFT" QUALITY UVM PRE-RELEASE FILE! @@ -190,7 +190,7 @@ amap_alloc1(slots, padslots, waitf) struct vm_amap * amap_alloc(sz, padsz, waitf) - vm_offset_t sz, padsz; + vaddr_t sz, padsz; int waitf; { struct vm_amap *amap; @@ -250,7 +250,7 @@ amap_free(amap) void amap_extend(entry, addsize) vm_map_entry_t entry; - vm_size_t addsize; + vsize_t addsize; { struct vm_amap *amap = entry->aref.ar_amap; int slotoff = entry->aref.ar_slotoff; @@ -535,11 +535,11 @@ amap_copy(map, entry, waitf, canchunk, startva, endva) vm_map_entry_t entry; int waitf; boolean_t canchunk; - vm_offset_t startva, endva; + vaddr_t startva, endva; { struct vm_amap *amap, *srcamap; int slots, lcv; - vm_offset_t chunksize; + vaddr_t chunksize; UVMHIST_FUNC("amap_copy"); UVMHIST_CALLED(maphist); UVMHIST_LOG(maphist, " (map=%p, entry=%p, waitf=%d)", map, entry, waitf, 0); @@ -821,7 +821,7 @@ ReStart: void amap_splitref(origref, splitref, offset) struct vm_aref *origref, *splitref; - vm_offset_t offset; + vaddr_t offset; { int leftslots; UVMHIST_FUNC("amap_splitref"); UVMHIST_CALLED(maphist); @@ -891,7 +891,7 @@ void amap_pp_adjref(amap, curslot, bytelen, adjval) struct vm_amap *amap; int curslot; - vm_size_t bytelen; + vsize_t bytelen; int adjval; { int slots, stopslot, *ppref, lcv; diff --git a/sys/uvm/uvm_amap.h b/sys/uvm/uvm_amap.h index e540aeb2a1a..cc9481d55e6 100644 --- a/sys/uvm/uvm_amap.h +++ b/sys/uvm/uvm_amap.h @@ -1,4 +1,4 @@ -/* $NetBSD: uvm_amap.h,v 1.6 1998/03/09 00:58:56 mrg Exp $ */ +/* $NetBSD: uvm_amap.h,v 1.7 1998/08/13 02:10:59 eeh Exp $ */ /* * XXXCDC: "ROUGH DRAFT" QUALITY UVM PRE-RELEASE FILE! @@ -106,25 +106,25 @@ * prototypes: the following prototypes define the interface to amaps */ -AMAP_INLINE vm_offset_t amap_add __P((struct vm_aref *, vm_offset_t, +AMAP_INLINE vaddr_t amap_add __P((struct vm_aref *, vaddr_t, struct vm_anon *, int)); -struct vm_amap *amap_alloc __P((vm_offset_t, vm_offset_t, int)); +struct vm_amap *amap_alloc __P((vaddr_t, vaddr_t, int)); void amap_copy __P((vm_map_t, vm_map_entry_t, int, boolean_t, - vm_offset_t, vm_offset_t)); + vaddr_t, vaddr_t)); void amap_cow_now __P((vm_map_t, vm_map_entry_t)); -void amap_extend __P((vm_map_entry_t, vm_size_t)); +void amap_extend __P((vm_map_entry_t, vsize_t)); void amap_free __P((struct vm_amap *)); -AMAP_INLINE struct vm_anon *amap_lookup __P((struct vm_aref *, vm_offset_t)); -AMAP_INLINE void amap_lookups __P((struct vm_aref *, vm_offset_t, +AMAP_INLINE struct vm_anon *amap_lookup __P((struct vm_aref *, vaddr_t)); +AMAP_INLINE void amap_lookups __P((struct vm_aref *, vaddr_t, struct vm_anon **, int)); #ifdef VM_AMAP_PPREF -void amap_pp_adjref __P((struct vm_amap *, int, vm_size_t, int)); +void amap_pp_adjref __P((struct vm_amap *, int, vsize_t, int)); void amap_pp_establish __P((struct vm_amap *)); #endif AMAP_INLINE void amap_ref __P((vm_map_entry_t, int)); void amap_share_protect __P((vm_map_entry_t, vm_prot_t)); -void amap_splitref __P((struct vm_aref *, struct vm_aref *, vm_offset_t)); -AMAP_INLINE void amap_unadd __P((struct vm_amap *, vm_offset_t)); +void amap_splitref __P((struct vm_aref *, struct vm_aref *, vaddr_t)); +AMAP_INLINE void amap_unadd __P((struct vm_amap *, vaddr_t)); AMAP_INLINE void amap_unref __P((vm_map_entry_t, int)); void amap_wipeout __P((struct vm_amap *)); #ifdef VM_AMAP_PPREF diff --git a/sys/uvm/uvm_amap_i.h b/sys/uvm/uvm_amap_i.h index 7e93ba3e4f1..5d490f86b14 100644 --- a/sys/uvm/uvm_amap_i.h +++ b/sys/uvm/uvm_amap_i.h @@ -1,4 +1,4 @@ -/* $NetBSD: uvm_amap_i.h,v 1.7 1998/08/09 22:36:37 perry Exp $ */ +/* $NetBSD: uvm_amap_i.h,v 1.8 1998/08/13 02:10:59 eeh Exp $ */ /* * XXXCDC: "ROUGH DRAFT" QUALITY UVM PRE-RELEASE FILE! @@ -61,7 +61,7 @@ AMAP_INLINE struct vm_anon * amap_lookup(aref, offset) struct vm_aref *aref; - vm_offset_t offset; + vaddr_t offset; { int slot; struct vm_amap *amap = aref->ar_amap; @@ -86,7 +86,7 @@ amap_lookup(aref, offset) AMAP_INLINE void amap_lookups(aref, offset, anons, npages) struct vm_aref *aref; - vm_offset_t offset; + vaddr_t offset; struct vm_anon **anons; int npages; { @@ -117,10 +117,10 @@ amap_lookups(aref, offset, anons, npages) * pmap_page_protect on the anon's page. * => returns an "offset" which is meaningful to amap_unadd(). */ -AMAP_INLINE vm_offset_t +AMAP_INLINE vaddr_t amap_add(aref, offset, anon, replace) struct vm_aref *aref; - vm_offset_t offset; + vaddr_t offset; struct vm_anon *anon; int replace; { @@ -171,7 +171,7 @@ amap_add(aref, offset, anon, replace) AMAP_INLINE void amap_unadd(amap, slot) struct vm_amap *amap; - vm_offset_t slot; + vaddr_t slot; { int ptr; UVMHIST_FUNC("amap_unadd"); UVMHIST_CALLED(maphist); diff --git a/sys/uvm/uvm_aobj.c b/sys/uvm/uvm_aobj.c index 9c052515fad..f0e259abb5b 100644 --- a/sys/uvm/uvm_aobj.c +++ b/sys/uvm/uvm_aobj.c @@ -1,4 +1,4 @@ -/* $NetBSD: uvm_aobj.c,v 1.9 1998/08/09 22:36:38 perry Exp $ */ +/* $NetBSD: uvm_aobj.c,v 1.10 1998/08/13 02:11:00 eeh Exp $ */ /* * XXXCDC: "ROUGH DRAFT" QUALITY UVM PRE-RELEASE FILE! @@ -126,7 +126,7 @@ struct uao_swhash_elt { LIST_ENTRY(uao_swhash_elt) list; /* the hash list */ - vm_offset_t tag; /* our 'tag' */ + vaddr_t tag; /* our 'tag' */ int count; /* our number of active slots */ int slots[UAO_SWHASH_CLUSTER_SIZE]; /* the slots */ }; @@ -148,7 +148,7 @@ LIST_HEAD(uao_swhash, uao_swhash_elt); struct uvm_aobj { struct uvm_object u_obj; /* has: lock, pgops, memq, #pages, #refs */ - vm_size_t u_pages; /* number of pages in entire object */ + vsize_t u_pages; /* number of pages in entire object */ int u_flags; /* the flags (see uvm_aobj.h) */ int *u_swslots; /* array of offset->swapslot mappings */ /* @@ -168,12 +168,12 @@ static void uao_init __P((void)); static struct uao_swhash_elt *uao_find_swhash_elt __P((struct uvm_aobj *, int, boolean_t)); static int uao_find_swslot __P((struct uvm_aobj *, - vm_offset_t)); + vaddr_t)); static boolean_t uao_flush __P((struct uvm_object *, - vm_offset_t, vm_offset_t, + vaddr_t, vaddr_t, int)); static void uao_free __P((struct uvm_aobj *)); -static int uao_get __P((struct uvm_object *, vm_offset_t, +static int uao_get __P((struct uvm_object *, vaddr_t, vm_page_t *, int *, int, vm_prot_t, int, int)); static boolean_t uao_releasepg __P((struct vm_page *, @@ -273,7 +273,7 @@ uao_find_swhash_elt(aobj, pageidx, create) __inline static int uao_find_swslot(aobj, pageidx) struct uvm_aobj *aobj; - vm_offset_t pageidx; + vaddr_t pageidx; { /* @@ -450,7 +450,7 @@ uao_free(aobj) */ struct uvm_object * uao_create(size, flags) - vm_size_t size; + vsize_t size; int flags; { static struct uvm_aobj kernel_object_store; /* home of kernel_object */ @@ -665,7 +665,7 @@ uao_detach(uobj) boolean_t uao_flush(uobj, start, end, flags) struct uvm_object *uobj; - vm_offset_t start, end; + vaddr_t start, end; int flags; { @@ -702,14 +702,14 @@ uao_flush(uobj, start, end, flags) static int uao_get(uobj, offset, pps, npagesp, centeridx, access_type, advice, flags) struct uvm_object *uobj; - vm_offset_t offset; + vaddr_t offset; struct vm_page **pps; int *npagesp; int centeridx, advice, flags; vm_prot_t access_type; { struct uvm_aobj *aobj = (struct uvm_aobj *)uobj; - vm_offset_t current_offset; + vaddr_t current_offset; vm_page_t ptmp; int lcv, gotpages, maxpages, swslot, rv; boolean_t done; diff --git a/sys/uvm/uvm_device.c b/sys/uvm/uvm_device.c index a4033a056ef..26b214227c5 100644 --- a/sys/uvm/uvm_device.c +++ b/sys/uvm/uvm_device.c @@ -1,4 +1,4 @@ -/* $NetBSD: uvm_device.c,v 1.8 1998/05/05 20:51:05 kleink Exp $ */ +/* $NetBSD: uvm_device.c,v 1.9 1998/08/13 02:11:00 eeh Exp $ */ /* * XXXCDC: "ROUGH DRAFT" QUALITY UVM PRE-RELEASE FILE! @@ -77,12 +77,12 @@ static void udv_init __P((void)); struct uvm_object *udv_attach __P((void *, vm_prot_t)); static void udv_reference __P((struct uvm_object *)); static void udv_detach __P((struct uvm_object *)); -static int udv_fault __P((struct uvm_faultinfo *, vm_offset_t, +static int udv_fault __P((struct uvm_faultinfo *, vaddr_t, vm_page_t *, int, int, vm_fault_t, vm_prot_t, int)); -static boolean_t udv_flush __P((struct uvm_object *, vm_offset_t, - vm_offset_t, int)); -static int udv_asyncget __P((struct uvm_object *, vm_offset_t, +static boolean_t udv_flush __P((struct uvm_object *, vaddr_t, + vaddr_t, int)); +static int udv_asyncget __P((struct uvm_object *, vaddr_t, int)); static int udv_put __P((struct uvm_object *, vm_page_t *, int, boolean_t)); @@ -365,7 +365,7 @@ udv_detach(uobj) static boolean_t udv_flush(uobj, start, stop, flags) struct uvm_object *uobj; - vm_offset_t start, stop; + vaddr_t start, stop; int flags; { @@ -391,7 +391,7 @@ static boolean_t udv_flush(uobj, start, stop, flags) static int udv_fault(ufi, vaddr, pps, npages, centeridx, fault_type, access_type, flags) struct uvm_faultinfo *ufi; - vm_offset_t vaddr; + vaddr_t vaddr; vm_page_t *pps; int npages, centeridx, flags; vm_fault_t fault_type; @@ -400,7 +400,8 @@ udv_fault(ufi, vaddr, pps, npages, centeridx, fault_type, access_type, flags) struct vm_map_entry *entry = ufi->entry; struct uvm_object *uobj = entry->object.uvm_obj; struct uvm_device *udv = (struct uvm_device *)uobj; - vm_offset_t curr_offset, curr_va, paddr; + vaddr_t curr_offset, curr_va; + paddr_t paddr; int lcv, retval; dev_t device; int (*mapfn) __P((dev_t, int, int)); @@ -461,15 +462,13 @@ udv_fault(ufi, vaddr, pps, npages, centeridx, fault_type, access_type, flags) paddr = pmap_phys_address((*mapfn)(device, (int)curr_offset, access_type)); - if (paddr == -1) { retval = VM_PAGER_ERROR; break; } - UVMHIST_LOG(maphist, " MAPPING: device: pm=0x%x, va=0x%x, pa=0x%x, at=%d", - ufi->orig_map->pmap, curr_va, paddr, access_type); + ufi->orig_map->pmap, curr_va, (int)paddr, access_type); pmap_enter(ufi->orig_map->pmap, curr_va, paddr, access_type, 0); } @@ -488,7 +487,7 @@ udv_fault(ufi, vaddr, pps, npages, centeridx, fault_type, access_type, flags) static int udv_asyncget(uobj, offset, npages) struct uvm_object *uobj; - vm_offset_t offset; + vaddr_t offset; int npages; { diff --git a/sys/uvm/uvm_extern.h b/sys/uvm/uvm_extern.h index d95c2330b4f..2756d634759 100644 --- a/sys/uvm/uvm_extern.h +++ b/sys/uvm/uvm_extern.h @@ -1,4 +1,4 @@ -/* $NetBSD: uvm_extern.h,v 1.18 1998/08/01 01:39:03 thorpej Exp $ */ +/* $NetBSD: uvm_extern.h,v 1.19 1998/08/13 02:11:00 eeh Exp $ */ /* * XXXCDC: "ROUGH DRAFT" QUALITY UVM PRE-RELEASE FILE! @@ -116,7 +116,7 @@ ((MAXPROT << 8)|(PROT)|(INH)|((ADVICE) << 12)|(FLAGS)) /* magic offset value */ -#define UVM_UNKNOWN_OFFSET ((vm_offset_t) -1) +#define UVM_UNKNOWN_OFFSET ((vaddr_t) -1) /* offset not known(obj) or don't care(!obj) */ /* @@ -260,12 +260,12 @@ typedef unsigned int uvm_flag_t; typedef int vm_fault_t; /* uvm_aobj.c */ -struct uvm_object *uao_create __P((vm_size_t, int)); +struct uvm_object *uao_create __P((vsize_t, int)); void uao_detach __P((struct uvm_object *)); void uao_reference __P((struct uvm_object *)); /* uvm_fault.c */ -int uvm_fault __P((vm_map_t, vm_offset_t, +int uvm_fault __P((vm_map_t, vaddr_t, vm_fault_t, vm_prot_t)); /* handle a page fault */ @@ -291,38 +291,38 @@ void uvm_init __P((void)); int uvm_io __P((vm_map_t, struct uio *)); /* uvm_km.c */ -vm_offset_t uvm_km_alloc1 __P((vm_map_t, vm_size_t, boolean_t)); -void uvm_km_free __P((vm_map_t, vm_offset_t, vm_size_t)); -void uvm_km_free_wakeup __P((vm_map_t, vm_offset_t, - vm_size_t)); -vm_offset_t uvm_km_kmemalloc __P((vm_map_t, struct uvm_object *, - vm_size_t, int)); -struct vm_map *uvm_km_suballoc __P((vm_map_t, vm_offset_t *, - vm_offset_t *, vm_size_t, boolean_t, +vaddr_t uvm_km_alloc1 __P((vm_map_t, vsize_t, boolean_t)); +void uvm_km_free __P((vm_map_t, vaddr_t, vsize_t)); +void uvm_km_free_wakeup __P((vm_map_t, vaddr_t, + vsize_t)); +vaddr_t uvm_km_kmemalloc __P((vm_map_t, struct uvm_object *, + vsize_t, int)); +struct vm_map *uvm_km_suballoc __P((vm_map_t, vaddr_t *, + vaddr_t *, vsize_t, boolean_t, boolean_t, vm_map_t)); -vm_offset_t uvm_km_valloc __P((vm_map_t, vm_size_t)); -vm_offset_t uvm_km_valloc_wait __P((vm_map_t, vm_size_t)); -vm_offset_t uvm_km_alloc_poolpage1 __P((vm_map_t, +vaddr_t uvm_km_valloc __P((vm_map_t, vsize_t)); +vaddr_t uvm_km_valloc_wait __P((vm_map_t, vsize_t)); +vaddr_t uvm_km_alloc_poolpage1 __P((vm_map_t, struct uvm_object *)); -void uvm_km_free_poolpage1 __P((vm_map_t, vm_offset_t)); +void uvm_km_free_poolpage1 __P((vm_map_t, vaddr_t)); #define uvm_km_alloc_poolpage() uvm_km_alloc_poolpage1(kmem_map, \ uvmexp.kmem_object) #define uvm_km_free_poolpage(addr) uvm_km_free_poolpage1(kmem_map, (addr)) /* uvm_map.c */ -int uvm_map __P((vm_map_t, vm_offset_t *, vm_size_t, - struct uvm_object *, vm_offset_t, uvm_flag_t)); -int uvm_map_pageable __P((vm_map_t, vm_offset_t, - vm_offset_t, boolean_t)); -boolean_t uvm_map_checkprot __P((vm_map_t, vm_offset_t, - vm_offset_t, vm_prot_t)); -int uvm_map_protect __P((vm_map_t, vm_offset_t, - vm_offset_t, vm_prot_t, boolean_t)); -struct vmspace *uvmspace_alloc __P((vm_offset_t, vm_offset_t, +int uvm_map __P((vm_map_t, vaddr_t *, vsize_t, + struct uvm_object *, vaddr_t, uvm_flag_t)); +int uvm_map_pageable __P((vm_map_t, vaddr_t, + vaddr_t, boolean_t)); +boolean_t uvm_map_checkprot __P((vm_map_t, vaddr_t, + vaddr_t, vm_prot_t)); +int uvm_map_protect __P((vm_map_t, vaddr_t, + vaddr_t, vm_prot_t, boolean_t)); +struct vmspace *uvmspace_alloc __P((vaddr_t, vaddr_t, boolean_t)); void uvmspace_init __P((struct vmspace *, struct pmap *, - vm_offset_t, vm_offset_t, boolean_t)); + vaddr_t, vaddr_t, boolean_t)); void uvmspace_exec __P((struct proc *)); struct vmspace *uvmspace_fork __P((struct vmspace *)); void uvmspace_free __P((struct vmspace *)); @@ -336,27 +336,28 @@ int uvm_sysctl __P((int *, u_int, void *, size_t *, void *, size_t, struct proc *)); /* uvm_mmap.c */ -int uvm_mmap __P((vm_map_t, vm_offset_t *, vm_size_t, +int uvm_mmap __P((vm_map_t, vaddr_t *, vsize_t, vm_prot_t, vm_prot_t, int, - caddr_t, vm_offset_t)); + caddr_t, vaddr_t)); /* uvm_page.c */ struct vm_page *uvm_pagealloc_strat __P((struct uvm_object *, - vm_offset_t, struct vm_anon *, int, int)); + vaddr_t, struct vm_anon *, int, int)); #define uvm_pagealloc(obj, off, anon) \ uvm_pagealloc_strat((obj), (off), (anon), UVM_PGA_STRAT_NORMAL, 0) void uvm_pagerealloc __P((struct vm_page *, - struct uvm_object *, vm_offset_t)); -void uvm_page_physload __P((vm_offset_t, vm_offset_t, - vm_offset_t, vm_offset_t, int)); + struct uvm_object *, vaddr_t)); +/* Actually, uvm_page_physload takes PF#s which need their own type */ +void uvm_page_physload __P((vaddr_t, vaddr_t, + vaddr_t, vaddr_t, int)); void uvm_setpagesize __P((void)); /* uvm_pdaemon.c */ void uvm_pageout __P((void)); /* uvm_pglist.c */ -int uvm_pglistalloc __P((vm_size_t, vm_offset_t, - vm_offset_t, vm_offset_t, vm_offset_t, +int uvm_pglistalloc __P((psize_t, paddr_t, + paddr_t, paddr_t, paddr_t, struct pglist *, int, int)); void uvm_pglistfree __P((struct pglist *)); @@ -366,10 +367,10 @@ void uvm_swap_init __P((void)); /* uvm_unix.c */ int uvm_coredump __P((struct proc *, struct vnode *, struct ucred *, struct core *)); -int uvm_grow __P((struct proc *, vm_offset_t)); +int uvm_grow __P((struct proc *, vaddr_t)); /* uvm_user.c */ -int uvm_deallocate __P((vm_map_t, vm_offset_t, vm_size_t)); +int uvm_deallocate __P((vm_map_t, vaddr_t, vsize_t)); /* uvm_vnode.c */ void uvm_vnp_setsize __P((struct vnode *, u_quad_t)); @@ -380,3 +381,4 @@ boolean_t uvm_vnp_uncache __P((struct vnode *)); struct uvm_object *uvn_attach __P((void *, vm_prot_t)); #endif /* _UVM_UVM_EXTERN_H_ */ + diff --git a/sys/uvm/uvm_fault.c b/sys/uvm/uvm_fault.c index c2bb01308f3..82d8fdcf126 100644 --- a/sys/uvm/uvm_fault.c +++ b/sys/uvm/uvm_fault.c @@ -1,4 +1,4 @@ -/* $NetBSD: uvm_fault.c,v 1.11 1998/06/02 20:51:24 mark Exp $ */ +/* $NetBSD: uvm_fault.c,v 1.12 1998/08/13 02:11:00 eeh Exp $ */ /* * XXXCDC: "ROUGH DRAFT" QUALITY UVM PRE-RELEASE FILE! @@ -550,7 +550,7 @@ int uvmfault_anonget(ufi, amap, anon) int uvm_fault(orig_map, vaddr, fault_type, access_type) vm_map_t orig_map; - vm_offset_t vaddr; + vaddr_t vaddr; vm_fault_t fault_type; vm_prot_t access_type; { @@ -558,7 +558,8 @@ uvm_fault(orig_map, vaddr, fault_type, access_type) vm_prot_t enter_prot; boolean_t wired, narrow, promote, locked, shadowed; int npages, nback, nforw, centeridx, result, lcv, gotpages; - vm_offset_t orig_startva, startva, objaddr, currva, pa, offset; + vaddr_t orig_startva, startva, objaddr, currva, offset; + paddr_t pa; struct vm_amap *amap; struct uvm_object *uobj; struct vm_anon *anons_store[UVM_MAXRANGE], **anons, *anon, *oanon; @@ -1667,9 +1668,9 @@ Case2: int uvm_fault_wire(map, start, end) vm_map_t map; - vm_offset_t start, end; + vaddr_t start, end; { - vm_offset_t va; + vaddr_t va; pmap_t pmap; int rv; @@ -1710,9 +1711,10 @@ uvm_fault_wire(map, start, end) void uvm_fault_unwire(pmap, start, end) struct pmap *pmap; - vm_offset_t start, end; + vaddr_t start, end; { - vm_offset_t va, pa; + vaddr_t va; + paddr_t pa; struct vm_page *pg; /* @@ -1728,7 +1730,7 @@ uvm_fault_unwire(pmap, start, end) pa = pmap_extract(pmap, va); /* XXX: assumes PA 0 cannot be in map */ - if (pa == (vm_offset_t) 0) { + if (pa == (paddr_t) 0) { panic("uvm_fault_unwire: unwiring non-wired memory"); } pmap_change_wiring(pmap, va, FALSE); /* tell the pmap */ diff --git a/sys/uvm/uvm_fault.h b/sys/uvm/uvm_fault.h index 2f65a9ba05e..ce9e11f8325 100644 --- a/sys/uvm/uvm_fault.h +++ b/sys/uvm/uvm_fault.h @@ -1,4 +1,4 @@ -/* $NetBSD: uvm_fault.h,v 1.5 1998/03/09 00:58:56 mrg Exp $ */ +/* $NetBSD: uvm_fault.h,v 1.6 1998/08/13 02:11:00 eeh Exp $ */ /* * XXXCDC: "ROUGH DRAFT" QUALITY UVM PRE-RELEASE FILE! @@ -61,15 +61,15 @@ struct uvm_faultinfo { vm_map_t orig_map; /* original map (IN) */ - vm_offset_t orig_rvaddr; /* original rounded VA (IN) */ - vm_size_t orig_size; /* original size of interest (IN) */ - vm_offset_t rvaddr; /* rounded virtual address */ + vaddr_t orig_rvaddr; /* original rounded VA (IN) */ + vsize_t orig_size; /* original size of interest (IN) */ + vaddr_t rvaddr; /* rounded virtual address */ vm_map_t parent_map; /* parent map */ unsigned int parentv; /* parent map version number */ vm_map_t map; /* map */ unsigned int mapv; /* map version number */ vm_map_entry_t entry; /* map entry of rvaddr */ - vm_size_t size; /* size of interest */ + vsize_t size; /* size of interest */ }; /* @@ -85,7 +85,7 @@ static void uvmfault_unlockall __P((struct uvm_faultinfo *, struct vm_amap *, struct uvm_object *, struct vm_anon *)); static void uvmfault_unlockmaps __P((struct uvm_faultinfo *, boolean_t)); -int uvm_fault_wire __P((vm_map_t, vm_offset_t, vm_offset_t)); -void uvm_fault_unwire __P((struct pmap *, vm_offset_t, vm_offset_t)); +int uvm_fault_wire __P((vm_map_t, vaddr_t, vaddr_t)); +void uvm_fault_unwire __P((struct pmap *, vaddr_t, vaddr_t)); #endif /* _UVM_UVM_FAULT_H_ */ diff --git a/sys/uvm/uvm_glue.c b/sys/uvm/uvm_glue.c index 6eb29e3daa2..094bb0accb0 100644 --- a/sys/uvm/uvm_glue.c +++ b/sys/uvm/uvm_glue.c @@ -1,4 +1,4 @@ -/* $NetBSD: uvm_glue.c,v 1.12 1998/08/09 22:36:38 perry Exp $ */ +/* $NetBSD: uvm_glue.c,v 1.13 1998/08/13 02:11:00 eeh Exp $ */ /* * XXXCDC: "ROUGH DRAFT" QUALITY UVM PRE-RELEASE FILE! @@ -124,7 +124,7 @@ uvm_kernacc(addr, len, rw) int rw; { boolean_t rv; - vm_offset_t saddr, eaddr; + vaddr_t saddr, eaddr; vm_prot_t prot = rw == B_READ ? VM_PROT_READ : VM_PROT_WRITE; saddr = trunc_page(addr); @@ -142,8 +142,8 @@ uvm_kernacc(addr, len, rw) * or worse, inconsistencies at the pmap level. We only worry * about the buffer cache for now. */ - if (!readbuffers && rv && (eaddr > (vm_offset_t)buffers && - saddr < (vm_offset_t)buffers + MAXBSIZE * nbuf)) + if (!readbuffers && rv && (eaddr > (vaddr_t)buffers && + saddr < (vaddr_t)buffers + MAXBSIZE * nbuf)) rv = FALSE; return(rv); } @@ -168,9 +168,9 @@ uvm_useracc(addr, len, rw) * XXX - specially disallow access to user page tables - they are * in the map. This is here until i386 & pc532 pmaps are fixed... */ - if ((vm_offset_t) addr >= VM_MAXUSER_ADDRESS - || (vm_offset_t) addr + len > VM_MAXUSER_ADDRESS - || (vm_offset_t) addr + len <= (vm_offset_t) addr) + if ((vaddr_t) addr >= VM_MAXUSER_ADDRESS + || (vaddr_t) addr + len > VM_MAXUSER_ADDRESS + || (vaddr_t) addr + len <= (vaddr_t) addr) return (FALSE); #endif @@ -199,7 +199,8 @@ uvm_chgkprot(addr, len, rw) int rw; { vm_prot_t prot; - vm_offset_t pa, sva, eva; + paddr_t pa; + vaddr_t sva, eva; prot = rw == B_READ ? VM_PROT_READ : VM_PROT_READ|VM_PROT_WRITE; eva = round_page(addr + len); @@ -284,8 +285,8 @@ uvm_fork(p1, p2, shared) * P_INMEM bit rather than in the vm_map_entry's wired count * to prevent kernel_map fragmentation. */ - rv = uvm_fault_wire(kernel_map, (vm_offset_t)up, - (vm_offset_t)up + USPACE); + rv = uvm_fault_wire(kernel_map, (vaddr_t)up, + (vaddr_t)up + USPACE); if (rv != KERN_SUCCESS) panic("uvm_fork: uvm_fault_wire failed: %d", rv); @@ -352,10 +353,10 @@ void uvm_swapin(p) struct proc *p; { - vm_offset_t addr; + vaddr_t addr; int s; - addr = (vm_offset_t)p->p_addr; + addr = (vaddr_t)p->p_addr; /* make P_INMEM true */ uvm_fault_wire(kernel_map, addr, addr + USPACE); @@ -552,7 +553,7 @@ static void uvm_swapout(p) register struct proc *p; { - vm_offset_t addr; + vaddr_t addr; int s; #ifdef DEBUG @@ -571,7 +572,7 @@ uvm_swapout(p) /* * Unwire the to-be-swapped process's user struct and kernel stack. */ - addr = (vm_offset_t)p->p_addr; + addr = (vaddr_t)p->p_addr; uvm_fault_unwire(kernel_map->pmap, addr, addr + USPACE); /* !P_INMEM */ pmap_collect(vm_map_pmap(&p->p_vmspace->vm_map)); diff --git a/sys/uvm/uvm_init.c b/sys/uvm/uvm_init.c index 30d9a75dd19..117ab3e5786 100644 --- a/sys/uvm/uvm_init.c +++ b/sys/uvm/uvm_init.c @@ -1,4 +1,4 @@ -/* $NetBSD: uvm_init.c,v 1.8 1998/08/09 22:36:38 perry Exp $ */ +/* $NetBSD: uvm_init.c,v 1.9 1998/08/13 02:11:00 eeh Exp $ */ /* * XXXCDC: "ROUGH DRAFT" QUALITY UVM PRE-RELEASE FILE! @@ -79,7 +79,7 @@ struct uvmexp uvmexp; /* decl */ void uvm_init() { - vm_offset_t kvm_start, kvm_end; + vaddr_t kvm_start, kvm_end; /* * step 0: ensure that the hardware set the page size diff --git a/sys/uvm/uvm_io.c b/sys/uvm/uvm_io.c index 71fe3160612..28ec51852e1 100644 --- a/sys/uvm/uvm_io.c +++ b/sys/uvm/uvm_io.c @@ -1,4 +1,4 @@ -/* $NetBSD: uvm_io.c,v 1.5 1998/05/05 20:51:05 kleink Exp $ */ +/* $NetBSD: uvm_io.c,v 1.6 1998/08/13 02:11:00 eeh Exp $ */ /* * XXXCDC: "ROUGH DRAFT" QUALITY UVM PRE-RELEASE FILE! @@ -71,8 +71,8 @@ uvm_io(map, uio) vm_map_t map; struct uio *uio; { - vm_offset_t baseva, endva, pageoffset, kva; - vm_size_t chunksz, togo, sz; + vaddr_t baseva, endva, pageoffset, kva; + vsize_t chunksz, togo, sz; vm_map_entry_t dead_entries; int error; @@ -86,7 +86,7 @@ uvm_io(map, uio) return(0); togo = uio->uio_resid; - baseva = (vm_offset_t) uio->uio_offset; + baseva = (vaddr_t) uio->uio_offset; endva = baseva + (togo - 1); if (endva < baseva) /* wrap around? */ diff --git a/sys/uvm/uvm_km.c b/sys/uvm/uvm_km.c index cac54235b8d..a1cb6902eb1 100644 --- a/sys/uvm/uvm_km.c +++ b/sys/uvm/uvm_km.c @@ -1,4 +1,4 @@ -/* $NetBSD: uvm_km.c,v 1.13 1998/08/09 22:36:38 perry Exp $ */ +/* $NetBSD: uvm_km.c,v 1.14 1998/08/13 02:11:01 eeh Exp $ */ /* * XXXCDC: "ROUGH DRAFT" QUALITY UVM PRE-RELEASE FILE! @@ -167,7 +167,7 @@ vm_map_t kernel_map = NULL; * local functions */ -static int uvm_km_get __P((struct uvm_object *, vm_offset_t, +static int uvm_km_get __P((struct uvm_object *, vaddr_t, vm_page_t *, int *, int, vm_prot_t, int, int)); /* * local data structues @@ -201,13 +201,13 @@ static struct uvm_pagerops km_pager = { static int uvm_km_get(uobj, offset, pps, npagesp, centeridx, access_type, advice, flags) struct uvm_object *uobj; - vm_offset_t offset; + vaddr_t offset; struct vm_page **pps; int *npagesp; int centeridx, advice, flags; vm_prot_t access_type; { - vm_offset_t current_offset; + vaddr_t current_offset; vm_page_t ptmp; int lcv, gotpages, maxpages; boolean_t done; @@ -417,9 +417,9 @@ uvm_km_get(uobj, offset, pps, npagesp, centeridx, access_type, advice, flags) void uvm_km_init(start, end) - vm_offset_t start, end; + vaddr_t start, end; { - vm_offset_t base = VM_MIN_KERNEL_ADDRESS; + vaddr_t base = VM_MIN_KERNEL_ADDRESS; /* * first, init kernel memory objects. @@ -479,8 +479,8 @@ uvm_km_init(start, end) struct vm_map * uvm_km_suballoc(map, min, max, size, pageable, fixed, submap) struct vm_map *map; - vm_offset_t *min, *max; /* OUT, OUT */ - vm_size_t size; + vaddr_t *min, *max; /* OUT, OUT */ + vsize_t size; boolean_t pageable; boolean_t fixed; struct vm_map *submap; @@ -541,11 +541,11 @@ uvm_km_suballoc(map, min, max, size, pageable, fixed, submap) void uvm_km_pgremove(uobj, start, end) struct uvm_object *uobj; - vm_offset_t start, end; + vaddr_t start, end; { boolean_t by_list, is_aobj; struct vm_page *pp, *ppnext; - vm_offset_t curoff; + vaddr_t curoff; UVMHIST_FUNC("uvm_km_pgremove"); UVMHIST_CALLED(maphist); simple_lock(&uobj->vmobjlock); /* lock object */ @@ -650,15 +650,15 @@ loop_by_list: * lock the map */ -vm_offset_t +vaddr_t uvm_km_kmemalloc(map, obj, size, flags) vm_map_t map; struct uvm_object *obj; - vm_size_t size; + vsize_t size; int flags; { - vm_offset_t kva, loopva; - vm_offset_t offset; + vaddr_t kva, loopva; + vaddr_t offset; struct vm_page *pg; UVMHIST_FUNC("uvm_km_kmemalloc"); UVMHIST_CALLED(maphist); @@ -763,8 +763,8 @@ uvm_km_kmemalloc(map, obj, size, flags) void uvm_km_free(map, addr, size) vm_map_t map; - vm_offset_t addr; - vm_size_t size; + vaddr_t addr; + vsize_t size; { uvm_unmap(map, trunc_page(addr), round_page(addr+size), 1); @@ -780,8 +780,8 @@ uvm_km_free(map, addr, size) void uvm_km_free_wakeup(map, addr, size) vm_map_t map; - vm_offset_t addr; - vm_size_t size; + vaddr_t addr; + vsize_t size; { vm_map_entry_t dead_entries; @@ -801,13 +801,13 @@ uvm_km_free_wakeup(map, addr, size) * => we can sleep if needed */ -vm_offset_t +vaddr_t uvm_km_alloc1(map, size, zeroit) vm_map_t map; - vm_size_t size; + vsize_t size; boolean_t zeroit; { - vm_offset_t kva, loopva, offset; + vaddr_t kva, loopva, offset; struct vm_page *pg; UVMHIST_FUNC("uvm_km_alloc1"); UVMHIST_CALLED(maphist); @@ -903,12 +903,12 @@ uvm_km_alloc1(map, size, zeroit) * => memory is not allocated until fault time */ -vm_offset_t +vaddr_t uvm_km_valloc(map, size) vm_map_t map; - vm_size_t size; + vsize_t size; { - vm_offset_t kva; + vaddr_t kva; UVMHIST_FUNC("uvm_km_valloc"); UVMHIST_CALLED(maphist); UVMHIST_LOG(maphist, "(map=0x%x, size=0x%x)", map, size, 0,0); @@ -944,12 +944,12 @@ uvm_km_valloc(map, size) * is larger than map (in which case we return 0) */ -vm_offset_t +vaddr_t uvm_km_valloc_wait(map, size) vm_map_t map; - vm_size_t size; + vsize_t size; { - vm_offset_t kva; + vaddr_t kva; UVMHIST_FUNC("uvm_km_valloc_wait"); UVMHIST_CALLED(maphist); UVMHIST_LOG(maphist, "(map=0x%x, size=0x%x)", map, size, 0,0); @@ -1002,14 +1002,14 @@ uvm_km_valloc_wait(map, size) */ /* ARGSUSED */ -vm_offset_t +vaddr_t uvm_km_alloc_poolpage1(map, obj) vm_map_t map; struct uvm_object *obj; { #if defined(PMAP_MAP_POOLPAGE) struct vm_page *pg; - vm_offset_t va; + vaddr_t va; pg = uvm_pagealloc(NULL, 0, NULL); if (pg == NULL) @@ -1019,7 +1019,7 @@ uvm_km_alloc_poolpage1(map, obj) uvm_pagefree(pg); return (va); #else - vm_offset_t va; + vaddr_t va; int s; s = splimp(); @@ -1039,10 +1039,10 @@ uvm_km_alloc_poolpage1(map, obj) void uvm_km_free_poolpage1(map, addr) vm_map_t map; - vm_offset_t addr; + vaddr_t addr; { #if defined(PMAP_UNMAP_POOLPAGE) - vm_offset_t pa; + paddr_t pa; pa = PMAP_UNMAP_POOLPAGE(addr); uvm_pagefree(PHYS_TO_VM_PAGE(pa)); diff --git a/sys/uvm/uvm_km.h b/sys/uvm/uvm_km.h index 8b5eb15f841..ba941255020 100644 --- a/sys/uvm/uvm_km.h +++ b/sys/uvm/uvm_km.h @@ -1,4 +1,4 @@ -/* $NetBSD: uvm_km.h,v 1.5 1998/02/10 14:12:15 mrg Exp $ */ +/* $NetBSD: uvm_km.h,v 1.6 1998/08/13 02:11:01 eeh Exp $ */ /* * XXXCDC: "ROUGH DRAFT" QUALITY UVM PRE-RELEASE FILE! @@ -49,7 +49,7 @@ * prototypes */ -void uvm_km_init __P((vm_offset_t, vm_offset_t)); -void uvm_km_pgremove __P((struct uvm_object *, vm_offset_t, vm_offset_t)); +void uvm_km_init __P((vaddr_t, vaddr_t)); +void uvm_km_pgremove __P((struct uvm_object *, vaddr_t, vaddr_t)); #endif /* _UVM_UVM_KM_H_ */ diff --git a/sys/uvm/uvm_loan.c b/sys/uvm/uvm_loan.c index cdbdecf83e5..e815e4d6de3 100644 --- a/sys/uvm/uvm_loan.c +++ b/sys/uvm/uvm_loan.c @@ -1,4 +1,4 @@ -/* $NetBSD: uvm_loan.c,v 1.8 1998/05/05 20:51:06 kleink Exp $ */ +/* $NetBSD: uvm_loan.c,v 1.9 1998/08/13 02:11:01 eeh Exp $ */ /* * XXXCDC: "ROUGH DRAFT" QUALITY UVM PRE-RELEASE FILE! @@ -111,7 +111,7 @@ static int uvm_loananon __P((struct uvm_faultinfo *, void ***, int, struct vm_anon *)); static int uvm_loanentry __P((struct uvm_faultinfo *, void ***, int)); static int uvm_loanuobj __P((struct uvm_faultinfo *, void ***, - int, vm_offset_t)); + int, vaddr_t)); static int uvm_loanzero __P((struct uvm_faultinfo *, void ***, int)); /* @@ -134,8 +134,8 @@ uvm_loanentry(ufi, output, flags) void ***output; int flags; { - vm_offset_t curaddr = ufi->rvaddr; - vm_size_t togo = ufi->size; + vaddr_t curaddr = ufi->rvaddr; + vsize_t togo = ufi->size; struct vm_aref *aref = &ufi->entry->aref; struct uvm_object *uobj = ufi->entry->object.uvm_obj; struct vm_anon *anon; @@ -215,8 +215,8 @@ uvm_loanentry(ufi, output, flags) int uvm_loan(map, start, len, result, flags) struct vm_map *map; - vm_offset_t start; - vm_size_t len; + vaddr_t start; + vsize_t len; void **result; int flags; { @@ -403,7 +403,7 @@ uvm_loanuobj(ufi, output, flags, va) struct uvm_faultinfo *ufi; void ***output; int flags; - vm_offset_t va; + vaddr_t va; { struct vm_amap *amap = ufi->entry->aref.ar_amap; struct uvm_object *uobj = ufi->entry->object.uvm_obj; diff --git a/sys/uvm/uvm_loan.h b/sys/uvm/uvm_loan.h index e678d86c99b..af99b357cf5 100644 --- a/sys/uvm/uvm_loan.h +++ b/sys/uvm/uvm_loan.h @@ -1,4 +1,4 @@ -/* $NetBSD: uvm_loan.h,v 1.4 1998/02/10 02:34:44 perry Exp $ */ +/* $NetBSD: uvm_loan.h,v 1.5 1998/08/13 02:11:01 eeh Exp $ */ /* * XXXCDC: "ROUGH DRAFT" QUALITY UVM PRE-RELEASE FILE! @@ -52,7 +52,7 @@ * loan prototypes */ -int uvm_loan __P((struct vm_map *, vm_offset_t, vm_size_t, void **, int)); +int uvm_loan __P((struct vm_map *, vaddr_t, vsize_t, void **, int)); void uvm_unloananon __P((struct vm_anon **, int)); void uvm_unloanpage __P((struct vm_page **, int)); diff --git a/sys/uvm/uvm_map.c b/sys/uvm/uvm_map.c index 36dd5a6770c..b550e7af70d 100644 --- a/sys/uvm/uvm_map.c +++ b/sys/uvm/uvm_map.c @@ -1,4 +1,4 @@ -/* $NetBSD: uvm_map.c,v 1.23 1998/08/09 22:36:38 perry Exp $ */ +/* $NetBSD: uvm_map.c,v 1.24 1998/08/13 02:11:01 eeh Exp $ */ /* * XXXCDC: "ROUGH DRAFT" QUALITY UVM PRE-RELEASE FILE! @@ -327,11 +327,11 @@ void uvm_map_clip_start(map, entry, start) register vm_map_t map; register vm_map_entry_t entry; -register vm_offset_t start; +register vaddr_t start; { register vm_map_entry_t new_entry; - vm_offset_t new_adj; + vaddr_t new_adj; /* uvm_map_simplify_entry(map, entry); */ /* XXX */ @@ -380,10 +380,10 @@ void uvm_map_clip_end(map, entry, end) vm_map_t map; vm_map_entry_t entry; - vm_offset_t end; + vaddr_t end; { vm_map_entry_t new_entry; - vm_offset_t new_adj; /* #bytes we move start forward */ + vaddr_t new_adj; /* #bytes we move start forward */ /* * Create a new entry and insert it @@ -441,10 +441,10 @@ uvm_map_clip_end(map, entry, end) int uvm_map(map, startp, size, uobj, uoffset, flags) vm_map_t map; - vm_offset_t *startp; /* IN/OUT */ - vm_size_t size; + vaddr_t *startp; /* IN/OUT */ + vsize_t size; struct uvm_object *uobj; - vm_offset_t uoffset; + vaddr_t uoffset; uvm_flag_t flags; { vm_map_entry_t prev_entry, new_entry; @@ -488,7 +488,7 @@ uvm_map(map, startp, size, uobj, uoffset, flags) #if defined(PMAP_GROWKERNEL) /* hack */ { /* locked by kernel_map lock */ - static vm_offset_t maxkaddr = 0; + static vaddr_t maxkaddr = 0; /* * hack: grow kernel PTPs in advance. @@ -639,7 +639,7 @@ step3: * to_add: for BSS we overallocate a little since we * are likely to extend */ - vm_offset_t to_add = (flags & UVM_FLAG_AMAPPAD) ? + vaddr_t to_add = (flags & UVM_FLAG_AMAPPAD) ? UVM_AMAP_CHUNK * PAGE_SIZE : 0; struct vm_amap *amap = amap_alloc(size, to_add, M_WAITOK); new_entry->aref.ar_slotoff = 0; @@ -676,7 +676,7 @@ step3: boolean_t uvm_map_lookup_entry(map, address, entry) register vm_map_t map; - register vm_offset_t address; + register vaddr_t address; vm_map_entry_t *entry; /* OUT */ { register vm_map_entry_t cur; @@ -772,15 +772,15 @@ uvm_map_lookup_entry(map, address, entry) vm_map_entry_t uvm_map_findspace(map, hint, length, result, uobj, uoffset, fixed) vm_map_t map; - vm_offset_t hint; - vm_size_t length; - vm_offset_t *result; /* OUT */ + vaddr_t hint; + vsize_t length; + vaddr_t *result; /* OUT */ struct uvm_object *uobj; - vm_offset_t uoffset; + vaddr_t uoffset; boolean_t fixed; { vm_map_entry_t entry, next, tmp; - vm_offset_t end; + vaddr_t end; UVMHIST_FUNC("uvm_map_findspace"); UVMHIST_CALLED(maphist); @@ -883,13 +883,13 @@ uvm_map_findspace(map, hint, length, result, uobj, uoffset, fixed) int uvm_unmap_remove(map, start, end, mainonly, entry_list) vm_map_t map; - vm_offset_t start,end; + vaddr_t start,end; boolean_t mainonly; vm_map_entry_t *entry_list; /* OUT */ { int result, refs; vm_map_entry_t entry, first_entry, next; - vm_offset_t len; + vaddr_t len; boolean_t already_removed; struct uvm_object *uobj; UVMHIST_FUNC("uvm_unmap_remove"); @@ -1199,9 +1199,9 @@ uvm_unmap_detach(first_entry, amap_unref_flags) int uvm_map_reserve(map, size, offset, raddr) vm_map_t map; - vm_size_t size; - vm_offset_t offset; /* hint for pmap_prefer */ - vm_offset_t *raddr; /* OUT: reserved VA */ + vsize_t size; + vaddr_t offset; /* hint for pmap_prefer */ + vaddr_t *raddr; /* OUT: reserved VA */ { UVMHIST_FUNC("uvm_map_reserve"); UVMHIST_CALLED(maphist); @@ -1241,7 +1241,7 @@ uvm_map_reserve(map, size, offset, raddr) int uvm_map_replace(map, start, end, newents, nnewents) struct vm_map *map; - vm_offset_t start, end; + vaddr_t start, end; vm_map_entry_t newents; int nnewents; { @@ -1273,7 +1273,7 @@ uvm_map_replace(map, start, end, newents, nnewents) { vm_map_entry_t tmpent = newents; int nent = 0; - vm_offset_t cur = start; + vaddr_t cur = start; while (tmpent) { nent++; @@ -1360,15 +1360,15 @@ uvm_map_replace(map, start, end, newents, nnewents) int uvm_map_extract(srcmap, start, len, dstmap, dstaddrp, flags) vm_map_t srcmap, dstmap; - vm_offset_t start, *dstaddrp; - vm_size_t len; + vaddr_t start, *dstaddrp; + vsize_t len; int flags; { - vm_offset_t dstaddr, end, newend, oldoffset, fudge, orig_fudge, + vaddr_t dstaddr, end, newend, oldoffset, fudge, orig_fudge, oldstart; vm_map_entry_t chain, endchain, entry, orig_entry, newentry, deadentry; vm_map_entry_t oldentry; - vm_size_t elen; + vsize_t elen; int nchain, error, copy_ok; UVMHIST_FUNC("uvm_map_extract"); UVMHIST_CALLED(maphist); UVMHIST_LOG(maphist,"(srcmap=0x%x,start=0x%x, len=0x%x", srcmap, start, @@ -1699,7 +1699,7 @@ bad2: /* src already unlocked */ int uvm_map_submap(map, start, end, submap) vm_map_t map, submap; - vm_offset_t start, end; + vaddr_t start, end; { vm_map_entry_t entry; int result; @@ -1754,7 +1754,7 @@ uvm_map_submap(map, start, end, submap) int uvm_map_protect(map, start, end, new_prot, set_max) vm_map_t map; - vm_offset_t start, end; + vaddr_t start, end; vm_prot_t new_prot; boolean_t set_max; { @@ -1814,7 +1814,7 @@ uvm_map_protect(map, start, end, new_prot, set_max) !UVM_ET_ISSUBMAP(current)) { /* share map? gotta go down a level */ vm_map_entry_t share_entry; - vm_offset_t share_end; + vaddr_t share_end; /* * note: a share map has its own address @@ -1901,8 +1901,8 @@ uvm_map_protect(map, start, end, new_prot, set_max) int uvm_map_inherit(map, start, end, new_inheritance) vm_map_t map; - vm_offset_t start; - vm_offset_t end; + vaddr_t start; + vaddr_t end; vm_inherit_t new_inheritance; { vm_map_entry_t entry, temp_entry; @@ -1956,11 +1956,11 @@ uvm_map_inherit(map, start, end, new_inheritance) int uvm_map_pageable(map, start, end, new_pageable) vm_map_t map; - vm_offset_t start, end; + vaddr_t start, end; boolean_t new_pageable; { vm_map_entry_t entry, start_entry; - vm_offset_t failed = 0; + vaddr_t failed = 0; int rv; UVMHIST_FUNC("uvm_map_pageable"); UVMHIST_CALLED(maphist); UVMHIST_LOG(maphist,"(map=0x%x,start=0x%x,end=0x%x,new_pageable=0x%x)", @@ -2200,14 +2200,14 @@ uvm_map_pageable(map, start, end, new_pageable) int uvm_map_clean(map, start, end, flags) vm_map_t map; - vm_offset_t start, end; + vaddr_t start, end; int flags; { vm_map_entry_t current; vm_map_entry_t entry; - vm_size_t size; + vsize_t size; struct uvm_object *object; - vm_offset_t offset; + vaddr_t offset; UVMHIST_FUNC("uvm_map_clean"); UVMHIST_CALLED(maphist); UVMHIST_LOG(maphist,"(map=0x%x,start=0x%x,end=0x%x,flags=0x%x)", map, start, end, flags); @@ -2250,7 +2250,7 @@ uvm_map_clean(map, start, end, flags) if (UVM_ET_ISMAP(current)) { /* share map? */ register vm_map_t smap; vm_map_entry_t tentry; - vm_size_t tsize; + vsize_t tsize; smap = current->object.share_map; vm_map_lock_read(smap); @@ -2300,7 +2300,7 @@ uvm_map_clean(map, start, end, flags) boolean_t uvm_map_checkprot(map, start, end, protection) vm_map_t map; - vm_offset_t start, end; + vaddr_t start, end; vm_prot_t protection; { vm_map_entry_t entry; @@ -2350,7 +2350,7 @@ uvm_map_checkprot(map, start, end, protection) */ struct vmspace * uvmspace_alloc(min, max, pageable) - vm_offset_t min, max; + vaddr_t min, max; int pageable; { struct vmspace *vm; @@ -2372,7 +2372,7 @@ void uvmspace_init(vm, pmap, min, max, pageable) struct vmspace *vm; struct pmap *pmap; - vm_offset_t min, max; + vaddr_t min, max; boolean_t pageable; { UVMHIST_FUNC("uvmspace_init"); UVMHIST_CALLED(maphist); @@ -2502,7 +2502,7 @@ uvmspace_exec(p) * XXXCDC: this should go away once all pmaps are fixed */ { - vm_offset_t addr = VM_MAXUSER_ADDRESS; + vaddr_t addr = VM_MAXUSER_ADDRESS; if (uvm_map(&nvm->vm_map, &addr, VM_MAX_ADDRESS - addr, NULL, UVM_UNKNOWN_OFFSET, UVM_MAPFLAG(UVM_PROT_ALL, UVM_PROT_ALL, UVM_INH_NONE, UVM_ADV_NORMAL, @@ -2895,7 +2895,7 @@ uvmspace_fork(vm1) * XXXCDC: this should go away once all pmaps are fixed */ { - vm_offset_t addr = VM_MAXUSER_ADDRESS; + vaddr_t addr = VM_MAXUSER_ADDRESS; if (uvm_map(new_map, &addr, VM_MAX_ADDRESS - addr, NULL, UVM_UNKNOWN_OFFSET, UVM_MAPFLAG(UVM_PROT_ALL, UVM_PROT_ALL, UVM_INH_NONE, UVM_ADV_NORMAL, @@ -2942,7 +2942,7 @@ uvm_map_sharemapcopy(main_map, main_entry, new_map) { vm_map_t share_map = main_entry->object.share_map; vm_map_entry_t share_entry, new_entry; - vm_offset_t shend = main_entry->offset + + vaddr_t shend = main_entry->offset + (main_entry->end - main_entry->start); int refs; @@ -3215,7 +3215,7 @@ uvm_page_printit(pg, full, pr) (*pr)("PAGE %p:\n", pg); (*pr)(" flags=0x%x, pqflags=0x%x, vers=%d, wire_count=%d, pa=0x%lx\n", - pg->flags, pg->pqflags, pg->version, pg->wire_count, pg->phys_addr); + pg->flags, pg->pqflags, pg->version, pg->wire_count, (long)pg->phys_addr); (*pr)(" uobject=%p, uanon=%p, offset=0x%lx loan_count=%d\n", pg->uobject, pg->uanon, pg->offset, pg->loan_count); #if defined(UVM_PAGE_TRKOWN) diff --git a/sys/uvm/uvm_map.h b/sys/uvm/uvm_map.h index 0d57cb2ab18..6f7731be4aa 100644 --- a/sys/uvm/uvm_map.h +++ b/sys/uvm/uvm_map.h @@ -1,4 +1,4 @@ -/* $NetBSD: uvm_map.h,v 1.6 1998/02/10 14:12:20 mrg Exp $ */ +/* $NetBSD: uvm_map.h,v 1.7 1998/08/13 02:11:01 eeh Exp $ */ /* * XXXCDC: "ROUGH DRAFT" QUALITY UVM PRE-RELEASE FILE! @@ -127,40 +127,40 @@ MAP_INLINE void uvm_map_deallocate __P((vm_map_t)); -int uvm_map_clean __P((vm_map_t, vm_offset_t, vm_offset_t, int)); +int uvm_map_clean __P((vm_map_t, vaddr_t, vaddr_t, int)); void uvm_map_clip_start __P((vm_map_t, - vm_map_entry_t, vm_offset_t)); + vm_map_entry_t, vaddr_t)); void uvm_map_clip_end __P((vm_map_t, vm_map_entry_t, - vm_offset_t)); + vaddr_t)); MAP_INLINE -vm_map_t uvm_map_create __P((pmap_t, vm_offset_t, - vm_offset_t, boolean_t)); -int uvm_map_extract __P((vm_map_t, vm_offset_t, vm_size_t, - vm_map_t, vm_offset_t *, int)); -vm_map_entry_t uvm_map_findspace __P((vm_map_t, vm_offset_t, vm_size_t, - vm_offset_t *, struct uvm_object *, vm_offset_t, +vm_map_t uvm_map_create __P((pmap_t, vaddr_t, + vaddr_t, boolean_t)); +int uvm_map_extract __P((vm_map_t, vaddr_t, vsize_t, + vm_map_t, vaddr_t *, int)); +vm_map_entry_t uvm_map_findspace __P((vm_map_t, vaddr_t, vsize_t, + vaddr_t *, struct uvm_object *, vaddr_t, boolean_t)); -int uvm_map_inherit __P((vm_map_t, vm_offset_t, vm_offset_t, +int uvm_map_inherit __P((vm_map_t, vaddr_t, vaddr_t, vm_inherit_t)); void uvm_map_init __P((void)); -boolean_t uvm_map_lookup_entry __P((vm_map_t, vm_offset_t, +boolean_t uvm_map_lookup_entry __P((vm_map_t, vaddr_t, vm_map_entry_t *)); MAP_INLINE void uvm_map_reference __P((vm_map_t)); -int uvm_map_replace __P((vm_map_t, vm_offset_t, vm_offset_t, +int uvm_map_replace __P((vm_map_t, vaddr_t, vaddr_t, vm_map_entry_t, int)); -int uvm_map_reserve __P((vm_map_t, vm_size_t, vm_offset_t, - vm_offset_t *)); -void uvm_map_setup __P((vm_map_t, vm_offset_t, - vm_offset_t, boolean_t)); +int uvm_map_reserve __P((vm_map_t, vsize_t, vaddr_t, + vaddr_t *)); +void uvm_map_setup __P((vm_map_t, vaddr_t, + vaddr_t, boolean_t)); void uvm_map_sharemapcopy __P((vm_map_t, vm_map_entry_t, vm_map_t)); -int uvm_map_submap __P((vm_map_t, vm_offset_t, - vm_offset_t, vm_map_t)); +int uvm_map_submap __P((vm_map_t, vaddr_t, + vaddr_t, vm_map_t)); MAP_INLINE -int uvm_unmap __P((vm_map_t, vm_offset_t, vm_offset_t, boolean_t)); +int uvm_unmap __P((vm_map_t, vaddr_t, vaddr_t, boolean_t)); void uvm_unmap_detach __P((vm_map_entry_t,int)); -int uvm_unmap_remove __P((vm_map_t, vm_offset_t, vm_offset_t, +int uvm_unmap_remove __P((vm_map_t, vaddr_t, vaddr_t, boolean_t, vm_map_entry_t *)); struct vmspace *uvmspace_fork __P((struct vmspace *)); diff --git a/sys/uvm/uvm_map_i.h b/sys/uvm/uvm_map_i.h index eb133b55027..e76bdd53e62 100644 --- a/sys/uvm/uvm_map_i.h +++ b/sys/uvm/uvm_map_i.h @@ -1,4 +1,4 @@ -/* $NetBSD: uvm_map_i.h,v 1.6 1998/03/09 00:58:57 mrg Exp $ */ +/* $NetBSD: uvm_map_i.h,v 1.7 1998/08/13 02:11:02 eeh Exp $ */ /* * XXXCDC: "ROUGH DRAFT" QUALITY UVM PRE-RELEASE FILE! @@ -92,7 +92,7 @@ MAP_INLINE vm_map_t uvm_map_create(pmap, min, max, pageable) pmap_t pmap; - vm_offset_t min, max; + vaddr_t min, max; boolean_t pageable; { vm_map_t result; @@ -112,7 +112,7 @@ uvm_map_create(pmap, min, max, pageable) MAP_INLINE void uvm_map_setup(map, min, max, pageable) vm_map_t map; - vm_offset_t min, max; + vaddr_t min, max; boolean_t pageable; { @@ -151,7 +151,7 @@ uvm_map_setup(map, min, max, pageable) MAP_INLINE int uvm_unmap(map, start, end, mainonly) vm_map_t map; - vm_offset_t start,end; + vaddr_t start,end; boolean_t mainonly; { int result; diff --git a/sys/uvm/uvm_mmap.c b/sys/uvm/uvm_mmap.c index f3697247ebd..f88cd29817f 100644 --- a/sys/uvm/uvm_mmap.c +++ b/sys/uvm/uvm_mmap.c @@ -1,4 +1,4 @@ -/* $NetBSD: uvm_mmap.c,v 1.11 1998/07/07 23:22:13 thorpej Exp $ */ +/* $NetBSD: uvm_mmap.c,v 1.12 1998/08/13 02:11:02 eeh Exp $ */ /* * XXXCDC: "ROUGH DRAFT" QUALITY UVM PRE-RELEASE FILE! @@ -211,13 +211,13 @@ sys_mmap(p, v, retval) syscallarg(long) pad; syscallarg(off_t) pos; } */ *uap = v; - vm_offset_t addr; + vaddr_t addr; struct vattr va; off_t pos; - vm_size_t size, pageoff; + vsize_t size, pageoff; vm_prot_t prot, maxprot; int flags, fd; - vm_offset_t vm_min_address = VM_MIN_ADDRESS; + vaddr_t vm_min_address = VM_MIN_ADDRESS; register struct filedesc *fdp = p->p_fd; register struct file *fp; struct vnode *vp; @@ -228,18 +228,18 @@ sys_mmap(p, v, retval) * first, extract syscall args from the uap. */ - addr = (vm_offset_t) SCARG(uap, addr); - size = (vm_size_t) SCARG(uap, len); + addr = (vaddr_t) SCARG(uap, addr); + size = (vsize_t) SCARG(uap, len); prot = SCARG(uap, prot) & VM_PROT_ALL; flags = SCARG(uap, flags); fd = SCARG(uap, fd); pos = SCARG(uap, pos); /* - * make sure that the newsize fits within a vm_offset_t + * make sure that the newsize fits within a vaddr_t * XXX: need to revise addressing data types */ - if (pos + size > (vm_offset_t)-PAGE_SIZE) { + if (pos + size > (vaddr_t)-PAGE_SIZE) { #ifdef DEBUG printf("mmap: pos=%qx, size=%x too big\n", pos, (int)size); #endif @@ -253,7 +253,7 @@ sys_mmap(p, v, retval) pageoff = (pos & PAGE_MASK); pos -= pageoff; size += pageoff; /* add offset */ - size = (vm_size_t) round_page(size); /* round up */ + size = (vsize_t) round_page(size); /* round up */ if ((ssize_t) size < 0) return (EINVAL); /* don't allow wrap */ @@ -427,8 +427,8 @@ sys___msync13(p, v, retval) syscallarg(size_t) len; syscallarg(int) flags; } */ *uap = v; - vm_offset_t addr; - vm_size_t size, pageoff; + vaddr_t addr; + vsize_t size, pageoff; vm_map_t map; int rv, flags, uvmflags; @@ -436,8 +436,8 @@ sys___msync13(p, v, retval) * extract syscall args from the uap */ - addr = (vm_offset_t)SCARG(uap, addr); - size = (vm_size_t)SCARG(uap, len); + addr = (vaddr_t)SCARG(uap, addr); + size = (vsize_t)SCARG(uap, len); flags = SCARG(uap, flags); /* sanity check flags */ @@ -455,7 +455,7 @@ sys___msync13(p, v, retval) pageoff = (addr & PAGE_MASK); addr -= pageoff; size += pageoff; - size = (vm_size_t) round_page(size); + size = (vsize_t) round_page(size); /* disallow wrap-around. */ if (addr + size < addr) @@ -537,18 +537,18 @@ sys_munmap(p, v, retval) syscallarg(caddr_t) addr; syscallarg(size_t) len; } */ *uap = v; - vm_offset_t addr; - vm_size_t size, pageoff; + vaddr_t addr; + vsize_t size, pageoff; vm_map_t map; - vm_offset_t vm_min_address = VM_MIN_ADDRESS; + vaddr_t vm_min_address = VM_MIN_ADDRESS; struct vm_map_entry *dead_entries; /* * get syscall args... */ - addr = (vm_offset_t) SCARG(uap, addr); - size = (vm_size_t) SCARG(uap, len); + addr = (vaddr_t) SCARG(uap, addr); + size = (vsize_t) SCARG(uap, len); /* * align the address to a page boundary, and adjust the size accordingly @@ -557,7 +557,7 @@ sys_munmap(p, v, retval) pageoff = (addr & PAGE_MASK); addr -= pageoff; size += pageoff; - size = (vm_size_t) round_page(size); + size = (vsize_t) round_page(size); if ((int)size < 0) return (EINVAL); @@ -617,8 +617,8 @@ sys_mprotect(p, v, retval) syscallarg(int) len; syscallarg(int) prot; } */ *uap = v; - vm_offset_t addr; - vm_size_t size, pageoff; + vaddr_t addr; + vsize_t size, pageoff; vm_prot_t prot; int rv; @@ -626,8 +626,8 @@ sys_mprotect(p, v, retval) * extract syscall args from uap */ - addr = (vm_offset_t)SCARG(uap, addr); - size = (vm_size_t)SCARG(uap, len); + addr = (vaddr_t)SCARG(uap, addr); + size = (vsize_t)SCARG(uap, len); prot = SCARG(uap, prot) & VM_PROT_ALL; /* @@ -636,7 +636,7 @@ sys_mprotect(p, v, retval) pageoff = (addr & PAGE_MASK); addr -= pageoff; size += pageoff; - size = (vm_size_t) round_page(size); + size = (vsize_t) round_page(size); if ((int)size < 0) return (EINVAL); @@ -669,12 +669,12 @@ sys_minherit(p, v, retval) syscallarg(int) len; syscallarg(int) inherit; } */ *uap = v; - vm_offset_t addr; - vm_size_t size, pageoff; + vaddr_t addr; + vsize_t size, pageoff; register vm_inherit_t inherit; - addr = (vm_offset_t)SCARG(uap, addr); - size = (vm_size_t)SCARG(uap, len); + addr = (vaddr_t)SCARG(uap, addr); + size = (vsize_t)SCARG(uap, len); inherit = SCARG(uap, inherit); /* * align the address to a page boundary, and adjust the size accordingly @@ -683,7 +683,7 @@ sys_minherit(p, v, retval) pageoff = (addr & PAGE_MASK); addr -= pageoff; size += pageoff; - size = (vm_size_t) round_page(size); + size = (vsize_t) round_page(size); if ((int)size < 0) return (EINVAL); @@ -712,15 +712,15 @@ sys_mlock(p, v, retval) syscallarg(const void *) addr; syscallarg(size_t) len; } */ *uap = v; - vm_offset_t addr; - vm_size_t size, pageoff; + vaddr_t addr; + vsize_t size, pageoff; int error; /* * extract syscall args from uap */ - addr = (vm_offset_t)SCARG(uap, addr); - size = (vm_size_t)SCARG(uap, len); + addr = (vaddr_t)SCARG(uap, addr); + size = (vsize_t)SCARG(uap, len); /* * align the address to a page boundary and adjust the size accordingly @@ -728,7 +728,7 @@ sys_mlock(p, v, retval) pageoff = (addr & PAGE_MASK); addr -= pageoff; size += pageoff; - size = (vm_size_t) round_page(size); + size = (vsize_t) round_page(size); /* disallow wrap-around. */ if (addr + (int)size < addr) @@ -764,16 +764,16 @@ sys_munlock(p, v, retval) syscallarg(const void *) addr; syscallarg(size_t) len; } */ *uap = v; - vm_offset_t addr; - vm_size_t size, pageoff; + vaddr_t addr; + vsize_t size, pageoff; int error; /* * extract syscall args from uap */ - addr = (vm_offset_t)SCARG(uap, addr); - size = (vm_size_t)SCARG(uap, len); + addr = (vaddr_t)SCARG(uap, addr); + size = (vsize_t)SCARG(uap, len); /* * align the address to a page boundary, and adjust the size accordingly @@ -781,7 +781,7 @@ sys_munlock(p, v, retval) pageoff = (addr & PAGE_MASK); addr -= pageoff; size += pageoff; - size = (vm_size_t) round_page(size); + size = (vsize_t) round_page(size); /* disallow wrap-around. */ if (addr + (int)size < addr) @@ -808,12 +808,12 @@ sys_munlock(p, v, retval) int uvm_mmap(map, addr, size, prot, maxprot, flags, handle, foff) vm_map_t map; - vm_offset_t *addr; - vm_size_t size; + vaddr_t *addr; + vsize_t size; vm_prot_t prot, maxprot; int flags; caddr_t handle; /* XXX: VNODE? */ - vm_offset_t foff; + vaddr_t foff; { struct uvm_object *uobj; struct vnode *vp; diff --git a/sys/uvm/uvm_page.c b/sys/uvm/uvm_page.c index 1845dc78fb5..bd9df1b8222 100644 --- a/sys/uvm/uvm_page.c +++ b/sys/uvm/uvm_page.c @@ -1,4 +1,4 @@ -/* $NetBSD: uvm_page.c,v 1.13 1998/08/09 22:36:39 perry Exp $ */ +/* $NetBSD: uvm_page.c,v 1.14 1998/08/13 02:11:02 eeh Exp $ */ /* * XXXCDC: "ROUGH DRAFT" QUALITY UVM PRE-RELEASE FILE! @@ -109,8 +109,8 @@ int vm_nphysseg = 0; /* XXXCDC: uvm.nphysseg */ * and pmap_startup here also uses them internally. */ -static vm_offset_t virtual_space_start; -static vm_offset_t virtual_space_end; +static vaddr_t virtual_space_start; +static vaddr_t virtual_space_end; /* * we use a hash table with only one bucket during bootup. we will @@ -212,18 +212,17 @@ uvm_pageremove(pg) void uvm_page_init(kvm_startp, kvm_endp) - vm_offset_t *kvm_startp, *kvm_endp; + vaddr_t *kvm_startp, *kvm_endp; { int freepages, pagecount; vm_page_t pagearray; int lcv, n, i; - vm_offset_t paddr; + paddr_t paddr; /* * step 1: init the page queues and page queue locks */ - for (lcv = 0; lcv < VM_NFREELIST; lcv++) TAILQ_INIT(&uvm.page_free[lcv]); TAILQ_INIT(&uvm.page_active); @@ -370,12 +369,12 @@ uvm_setpagesize() * uvm_pageboot_alloc: steal memory from physmem for bootstrapping */ -vm_offset_t +vaddr_t uvm_pageboot_alloc(size) - vm_size_t size; + vsize_t size; { #if defined(PMAP_STEAL_MEMORY) - vm_offset_t addr; + vaddr_t addr; /* * defer bootstrap allocation to MD code (it may want to allocate @@ -390,7 +389,8 @@ uvm_pageboot_alloc(size) #else /* !PMAP_STEAL_MEMORY */ - vm_offset_t addr, vaddr, paddr; + vaddr_t addr, vaddr; + paddr_t paddr; /* round to page size */ size = round_page(size); @@ -434,7 +434,6 @@ uvm_pageboot_alloc(size) #endif } - return(addr); #endif /* PMAP_STEAL_MEMORY */ } @@ -452,7 +451,7 @@ uvm_pageboot_alloc(size) boolean_t uvm_page_physget(paddrp) - vm_offset_t *paddrp; + paddr_t *paddrp; { int lcv, x; @@ -550,10 +549,11 @@ uvm_page_physget(paddrp) void uvm_page_physload(start, end, avail_start, avail_end, free_list) - vm_offset_t start, end, avail_start, avail_end; + vaddr_t start, end, avail_start, avail_end; int free_list; { - int preload, lcv, npages; + int preload, lcv; + psize_t npages; struct vm_page *pgs; struct vm_physseg *ps; @@ -592,7 +592,7 @@ uvm_page_physload(start, end, avail_start, avail_end, free_list) panic("vm_page_physload: tried to add RAM after vm_mem_init"); #else /* XXXCDC: need some sort of lockout for this case */ - vm_offset_t paddr; + paddr_t paddr; npages = end - start; /* # of pages */ MALLOC(pgs, struct vm_page *, sizeof(struct vm_page) * npages, M_VMPAGE, M_NOWAIT); @@ -815,7 +815,7 @@ uvm_page_physdump() struct vm_page * uvm_pagealloc_strat(obj, off, anon, strat, free_list) struct uvm_object *obj; - vm_offset_t off; + vaddr_t off; struct vm_anon *anon; int strat, free_list; { @@ -941,7 +941,7 @@ void uvm_pagerealloc(pg, newobj, newoff) struct vm_page *pg; struct uvm_object *newobj; - vm_offset_t newoff; + vaddr_t newoff; { /* * remove it from the old object diff --git a/sys/uvm/uvm_page.h b/sys/uvm/uvm_page.h index 0768b8fbea3..dd40fc5bee1 100644 --- a/sys/uvm/uvm_page.h +++ b/sys/uvm/uvm_page.h @@ -1,4 +1,4 @@ -/* $NetBSD: uvm_page.h,v 1.9 1998/07/08 04:28:28 thorpej Exp $ */ +/* $NetBSD: uvm_page.h,v 1.10 1998/08/13 02:11:02 eeh Exp $ */ /* * XXXCDC: "ROUGH DRAFT" QUALITY UVM PRE-RELEASE FILE! @@ -103,22 +103,22 @@ * prototypes: the following prototypes define the interface to pages */ -void uvm_page_init __P((vm_offset_t *, vm_offset_t *)); +void uvm_page_init __P((vaddr_t *, vaddr_t *)); #if defined(UVM_PAGE_TRKOWN) void uvm_page_own __P((struct vm_page *, char *)); #endif #if !defined(PMAP_STEAL_MEMORY) -boolean_t uvm_page_physget __P((vm_offset_t *)); +boolean_t uvm_page_physget __P((paddr_t *)); #endif void uvm_page_rehash __P((void)); PAGE_INLINE void uvm_pageactivate __P((struct vm_page *)); -vm_offset_t uvm_pageboot_alloc __P((vm_size_t)); +vaddr_t uvm_pageboot_alloc __P((vsize_t)); PAGE_INLINE void uvm_pagecopy __P((struct vm_page *, struct vm_page *)); PAGE_INLINE void uvm_pagedeactivate __P((struct vm_page *)); void uvm_pagefree __P((struct vm_page *)); PAGE_INLINE struct vm_page *uvm_pagelookup - __P((struct uvm_object *, vm_offset_t)); + __P((struct uvm_object *, vaddr_t)); void uvm_pageremove __P((struct vm_page *)); /* uvm_pagerename: not needed */ PAGE_INLINE void uvm_pageunwire __P((struct vm_page *)); diff --git a/sys/uvm/uvm_page_i.h b/sys/uvm/uvm_page_i.h index ebe80c9dcdb..5a5671a3f4e 100644 --- a/sys/uvm/uvm_page_i.h +++ b/sys/uvm/uvm_page_i.h @@ -1,4 +1,4 @@ -/* $NetBSD: uvm_page_i.h,v 1.7 1998/07/08 04:28:28 thorpej Exp $ */ +/* $NetBSD: uvm_page_i.h,v 1.8 1998/08/13 02:11:02 eeh Exp $ */ /* * XXXCDC: "ROUGH DRAFT" QUALITY UVM PRE-RELEASE FILE! @@ -93,7 +93,7 @@ struct vm_page * uvm_pagelookup(obj, off) struct uvm_object *obj; - vm_offset_t off; + vaddr_t off; { struct vm_page *pg; struct pglist *buck; diff --git a/sys/uvm/uvm_pager.c b/sys/uvm/uvm_pager.c index bc8d292ab30..af44e6874f1 100644 --- a/sys/uvm/uvm_pager.c +++ b/sys/uvm/uvm_pager.c @@ -1,4 +1,4 @@ -/* $NetBSD: uvm_pager.c,v 1.8 1998/05/05 20:51:07 kleink Exp $ */ +/* $NetBSD: uvm_pager.c,v 1.9 1998/08/13 02:11:02 eeh Exp $ */ /* * XXXCDC: "ROUGH DRAFT" QUALITY UVM PRE-RELEASE FILE! @@ -120,18 +120,18 @@ uvm_pager_init() * map and then use pmap_enter() to put the mappings in by hand. */ -vm_offset_t +vaddr_t uvm_pagermapin(pps, npages, aiop, waitf) struct vm_page **pps; int npages; struct uvm_aiodesc **aiop; /* OUT */ int waitf; { - vm_size_t size; - vm_offset_t kva; + vsize_t size; + vaddr_t kva; struct uvm_aiodesc *aio; #if !defined(PMAP_NEW) - vm_offset_t cva; + vaddr_t cva; struct vm_page *pp; #endif UVMHIST_FUNC("uvm_pagermapin"); UVMHIST_CALLED(maphist); @@ -205,10 +205,10 @@ ReStart: void uvm_pagermapout(kva, npages) - vm_offset_t kva; + vaddr_t kva; int npages; { - vm_size_t size = npages * PAGE_SIZE; + vsize_t size = npages * PAGE_SIZE; vm_map_entry_t entries; UVMHIST_FUNC("uvm_pagermapout"); UVMHIST_CALLED(maphist); @@ -260,10 +260,10 @@ uvm_mk_pcluster(uobj, pps, npages, center, flags, mlo, mhi) struct uvm_object *uobj; /* IN */ struct vm_page **pps, *center; /* IN/OUT, IN */ int *npages, flags; /* IN/OUT, IN */ - vm_offset_t mlo, mhi; /* IN (if !PGO_ALLPAGES) */ + vaddr_t mlo, mhi; /* IN (if !PGO_ALLPAGES) */ { struct vm_page **ppsp, *pclust; - vm_offset_t lo, hi, curoff; + vaddr_t lo, hi, curoff; int center_idx, forward; UVMHIST_FUNC("uvm_mk_pcluster"); UVMHIST_CALLED(maphist); @@ -385,7 +385,7 @@ uvm_shareprot(entry, prot) { struct uvm_object *uobj = entry->object.uvm_obj; struct vm_page *pp; - vm_offset_t start, stop; + vaddr_t start, stop; UVMHIST_FUNC("uvm_shareprot"); UVMHIST_CALLED(maphist); if (UVM_ET_ISMAP(entry)) @@ -451,7 +451,7 @@ uvm_pager_put(uobj, pg, ppsp_ptr, npages, flags, start, stop) struct vm_page *pg, ***ppsp_ptr;/* IN, IN/OUT */ int *npages; /* IN/OUT */ int flags; /* IN */ - vm_offset_t start, stop; /* IN, IN */ + vaddr_t start, stop; /* IN, IN */ { int result; daddr_t swblk; diff --git a/sys/uvm/uvm_pager.h b/sys/uvm/uvm_pager.h index 938ed9fb2ac..f48082e4b44 100644 --- a/sys/uvm/uvm_pager.h +++ b/sys/uvm/uvm_pager.h @@ -1,4 +1,4 @@ -/* $NetBSD: uvm_pager.h,v 1.6 1998/03/09 00:58:58 mrg Exp $ */ +/* $NetBSD: uvm_pager.h,v 1.7 1998/08/13 02:11:03 eeh Exp $ */ /* * XXXCDC: "ROUGH DRAFT" QUALITY UVM PRE-RELEASE FILE! @@ -54,7 +54,7 @@ TAILQ_HEAD(uvm_aiohead, uvm_aiodesc); struct uvm_aiodesc { void (*aiodone) __P((struct uvm_aiodesc *)); /* aio done function */ - vm_offset_t kva; /* KVA of mapped page(s) */ + vaddr_t kva; /* KVA of mapped page(s) */ int npages; /* # of pages in I/O req */ void *pd_ptr; /* pager-dependent pointer */ TAILQ_ENTRY(uvm_aiodesc) aioq; /* linked list of aio's */ @@ -73,27 +73,27 @@ struct uvm_pagerops { void (*pgo_detach) /* drop reference to obj */ __P((struct uvm_object *)); int (*pgo_fault) /* special nonstd fault fn */ - __P((struct uvm_faultinfo *, vm_offset_t, + __P((struct uvm_faultinfo *, vaddr_t, vm_page_t *, int, int, vm_fault_t, vm_prot_t, int)); boolean_t (*pgo_flush) /* flush pages out of obj */ - __P((struct uvm_object *, vm_offset_t, - vm_offset_t, int)); + __P((struct uvm_object *, vaddr_t, + vaddr_t, int)); int (*pgo_get) /* get/read page */ - __P((struct uvm_object *, vm_offset_t, + __P((struct uvm_object *, vaddr_t, vm_page_t *, int *, int, vm_prot_t, int, int)); int (*pgo_asyncget) /* start async get */ - __P((struct uvm_object *, vm_offset_t, int)); + __P((struct uvm_object *, vaddr_t, int)); int (*pgo_put) /* put/write page */ __P((struct uvm_object *, vm_page_t *, int, boolean_t)); void (*pgo_cluster) /* return range of cluster */ - __P((struct uvm_object *, vm_offset_t, vm_offset_t *, - vm_offset_t *)); + __P((struct uvm_object *, vaddr_t, vaddr_t *, + vaddr_t *)); struct vm_page ** (*pgo_mk_pcluster) /* make "put" cluster */ __P((struct uvm_object *, struct vm_page **, - int *, struct vm_page *, int, vm_offset_t, - vm_offset_t)); + int *, struct vm_page *, int, vaddr_t, + vaddr_t)); void (*pgo_shareprot) /* share protect */ __P((vm_map_entry_t, vm_prot_t)); void (*pgo_aiodone) /* async iodone */ @@ -142,16 +142,16 @@ void uvm_pager_dropcluster __P((struct uvm_object *, void uvm_pager_init __P((void)); int uvm_pager_put __P((struct uvm_object *, struct vm_page *, struct vm_page ***, int *, int, - vm_offset_t, vm_offset_t)); + vaddr_t, vaddr_t)); -PAGER_INLINE struct vm_page *uvm_pageratop __P((vm_offset_t)); +PAGER_INLINE struct vm_page *uvm_pageratop __P((vaddr_t)); -vm_offset_t uvm_pagermapin __P((struct vm_page **, int, +vaddr_t uvm_pagermapin __P((struct vm_page **, int, struct uvm_aiodesc **, int)); -void uvm_pagermapout __P((vm_offset_t, int)); +void uvm_pagermapout __P((vaddr_t, int)); struct vm_page **uvm_mk_pcluster __P((struct uvm_object *, struct vm_page **, int *, struct vm_page *, int, - vm_offset_t, vm_offset_t)); + vaddr_t, vaddr_t)); void uvm_shareprot __P((vm_map_entry_t, vm_prot_t)); diff --git a/sys/uvm/uvm_pager_i.h b/sys/uvm/uvm_pager_i.h index 750f274a086..7e8e8675df7 100644 --- a/sys/uvm/uvm_pager_i.h +++ b/sys/uvm/uvm_pager_i.h @@ -1,4 +1,4 @@ -/* $NetBSD: uvm_pager_i.h,v 1.5 1998/03/09 00:58:59 mrg Exp $ */ +/* $NetBSD: uvm_pager_i.h,v 1.6 1998/08/13 02:11:03 eeh Exp $ */ /* * XXXCDC: "ROUGH DRAFT" QUALITY UVM PRE-RELEASE FILE! @@ -58,9 +58,9 @@ PAGER_INLINE struct vm_page * uvm_pageratop(kva) - vm_offset_t kva; + vaddr_t kva; { - vm_offset_t pa; + paddr_t pa; pa = pmap_extract(pmap_kernel(), kva); if (pa == 0) diff --git a/sys/uvm/uvm_pdaemon.c b/sys/uvm/uvm_pdaemon.c index d3e2cff7105..b6e8d545156 100644 --- a/sys/uvm/uvm_pdaemon.c +++ b/sys/uvm/uvm_pdaemon.c @@ -1,4 +1,4 @@ -/* $NetBSD: uvm_pdaemon.c,v 1.9 1998/07/23 20:36:09 pk Exp $ */ +/* $NetBSD: uvm_pdaemon.c,v 1.10 1998/08/13 02:11:03 eeh Exp $ */ /* * XXXCDC: "ROUGH DRAFT" QUALITY UVM PRE-RELEASE FILE! @@ -326,7 +326,7 @@ uvmpd_scan_inactive(pglst) int swslot, oldslot; struct vm_anon *anon; boolean_t swap_backed; - vm_offset_t start; + vaddr_t start; UVMHIST_FUNC("uvmpd_scan_inactive"); UVMHIST_CALLED(pdhist); /* @@ -633,7 +633,7 @@ uvmpd_scan_inactive(pglst) npages = swcpages; ppsp = swpps; /* for swap-backed pages only */ - start = (vm_offset_t) swslot; + start = (vaddr_t) swslot; /* if this is final pageout we could have a few * extra swap blocks */ diff --git a/sys/uvm/uvm_pglist.c b/sys/uvm/uvm_pglist.c index e9c661ff3e8..d7fe645ebeb 100644 --- a/sys/uvm/uvm_pglist.c +++ b/sys/uvm/uvm_pglist.c @@ -1,4 +1,4 @@ -/* $NetBSD: uvm_pglist.c,v 1.5 1998/07/08 04:28:28 thorpej Exp $ */ +/* $NetBSD: uvm_pglist.c,v 1.6 1998/08/13 02:11:03 eeh Exp $ */ #define VM_PAGE_ALLOC_MEMORY_STATS @@ -92,12 +92,12 @@ u_long uvm_pglistalloc_npages; int uvm_pglistalloc(size, low, high, alignment, boundary, rlist, nsegs, waitok) - vm_size_t size; - vm_offset_t low, high, alignment, boundary; + psize_t size; + paddr_t low, high, alignment, boundary; struct pglist *rlist; int nsegs, waitok; { - vm_offset_t try, idxpa, lastidxpa; + paddr_t try, idxpa, lastidxpa; int psi; struct vm_page *pgs; int s, tryidx, idx, end, error, free_list; diff --git a/sys/uvm/uvm_swap.c b/sys/uvm/uvm_swap.c index 7a515adeb4e..22c4538ba44 100644 --- a/sys/uvm/uvm_swap.c +++ b/sys/uvm/uvm_swap.c @@ -1,4 +1,4 @@ -/* $NetBSD: uvm_swap.c,v 1.14 1998/08/09 22:36:39 perry Exp $ */ +/* $NetBSD: uvm_swap.c,v 1.15 1998/08/13 02:11:03 eeh Exp $ */ /* * Copyright (c) 1995, 1996, 1997 Matthew R. Green @@ -1680,7 +1680,7 @@ uvm_swap_io(pps, startslot, npages, flags) daddr_t startblk; struct swapbuf *sbp; struct buf *bp; - vm_offset_t kva; + vaddr_t kva; int result, s, waitf, pflag; UVMHIST_FUNC("uvm_swap_io"); UVMHIST_CALLED(pdhist); @@ -1858,7 +1858,7 @@ uvm_swap_aiodone(aio) /* XXX it does with GCC */ struct vm_page *pps[MAXBSIZE/PAGE_SIZE]; int lcv, s; - vm_offset_t addr; + vaddr_t addr; UVMHIST_FUNC("uvm_swap_aiodone"); UVMHIST_CALLED(pdhist); UVMHIST_LOG(pdhist, "done with aio %p", aio, 0, 0, 0); diff --git a/sys/uvm/uvm_unix.c b/sys/uvm/uvm_unix.c index d77ac2fd21d..37e59e6a719 100644 --- a/sys/uvm/uvm_unix.c +++ b/sys/uvm/uvm_unix.c @@ -1,4 +1,4 @@ -/* $NetBSD: uvm_unix.c,v 1.5 1998/07/28 18:24:49 thorpej Exp $ */ +/* $NetBSD: uvm_unix.c,v 1.6 1998/08/13 02:11:03 eeh Exp $ */ /* * XXXCDC: "ROUGH DRAFT" QUALITY UVM PRE-RELEASE FILE! @@ -81,11 +81,11 @@ sys_obreak(p, v, retval) syscallarg(char *) nsize; } */ *uap = v; register struct vmspace *vm = p->p_vmspace; - vm_offset_t new, old; + vaddr_t new, old; int rv; register int diff; - old = (vm_offset_t)vm->vm_daddr; + old = (vaddr_t)vm->vm_daddr; new = round_page(SCARG(uap, nsize)); if ((int)(new - old) > p->p_rlimit[RLIMIT_DATA].rlim_cur) return(ENOMEM); @@ -131,7 +131,7 @@ sys_obreak(p, v, retval) int uvm_grow(p, sp) struct proc *p; - vm_offset_t sp; + vaddr_t sp; { register struct vmspace *vm = p->p_vmspace; register int si; @@ -139,7 +139,7 @@ uvm_grow(p, sp) /* * For user defined stacks (from sendsig). */ - if (sp < (vm_offset_t)vm->vm_maxsaddr) + if (sp < (vaddr_t)vm->vm_maxsaddr) return (0); /* @@ -192,7 +192,7 @@ uvm_coredump(p, vp, cred, chdr) register struct vmspace *vm = p->p_vmspace; register vm_map_t map = &vm->vm_map; register vm_map_entry_t entry; - vm_offset_t start, end; + vaddr_t start, end; struct coreseg cseg; off_t offset; int flag, error = 0; @@ -235,7 +235,7 @@ uvm_coredump(p, vp, cred, chdr) if (end > VM_MAXUSER_ADDRESS) end = VM_MAXUSER_ADDRESS; - if (start >= (vm_offset_t)vm->vm_maxsaddr) { + if (start >= (vaddr_t)vm->vm_maxsaddr) { flag = CORE_STACK; start = trunc_page(USRSTACK - ctob(vm->vm_ssize)); if (start >= end) diff --git a/sys/uvm/uvm_user.c b/sys/uvm/uvm_user.c index 622e5a98433..2dad56e9cdb 100644 --- a/sys/uvm/uvm_user.c +++ b/sys/uvm/uvm_user.c @@ -1,4 +1,4 @@ -/* $NetBSD: uvm_user.c,v 1.4 1998/03/09 00:58:59 mrg Exp $ */ +/* $NetBSD: uvm_user.c,v 1.5 1998/08/13 02:11:03 eeh Exp $ */ /* * XXXCDC: "ROUGH DRAFT" QUALITY UVM PRE-RELEASE FILE! @@ -57,14 +57,14 @@ int uvm_deallocate(map, start, size) vm_map_t map; - vm_offset_t start; - vm_size_t size; + vaddr_t start; + vsize_t size; { if (map == NULL) panic("uvm_deallocate with null map"); - if (size == (vm_offset_t) 0) + if (size == (vaddr_t) 0) return (KERN_SUCCESS); return(uvm_unmap(map, trunc_page(start), round_page(start+size), 0)); diff --git a/sys/uvm/uvm_vnode.c b/sys/uvm/uvm_vnode.c index 40ffe6362c6..abb26d8347a 100644 --- a/sys/uvm/uvm_vnode.c +++ b/sys/uvm/uvm_vnode.c @@ -1,4 +1,4 @@ -/* $NetBSD: uvm_vnode.c,v 1.14 1998/08/09 22:36:39 perry Exp $ */ +/* $NetBSD: uvm_vnode.c,v 1.15 1998/08/13 02:11:04 eeh Exp $ */ /* * XXXCDC: "ROUGH DRAFT" QUALITY UVM PRE-RELEASE FILE! @@ -94,15 +94,15 @@ lock_data_t uvn_sync_lock; /* locks sync operation */ * functions */ -static int uvn_asyncget __P((struct uvm_object *, vm_offset_t, +static int uvn_asyncget __P((struct uvm_object *, vaddr_t, int)); struct uvm_object *uvn_attach __P((void *, vm_prot_t)); -static void uvn_cluster __P((struct uvm_object *, vm_offset_t, - vm_offset_t *, vm_offset_t *)); +static void uvn_cluster __P((struct uvm_object *, vaddr_t, + vaddr_t *, vaddr_t *)); static void uvn_detach __P((struct uvm_object *)); -static boolean_t uvn_flush __P((struct uvm_object *, vm_offset_t, - vm_offset_t, int)); -static int uvn_get __P((struct uvm_object *, vm_offset_t, +static boolean_t uvn_flush __P((struct uvm_object *, vaddr_t, + vaddr_t, int)); +static int uvn_get __P((struct uvm_object *, vaddr_t, vm_page_t *, int *, int, vm_prot_t, int, int)); static void uvn_init __P((void)); @@ -289,16 +289,16 @@ uvn_attach(arg, accessprot) } /* - * make sure that the newsize fits within a vm_offset_t + * make sure that the newsize fits within a vaddr_t * XXX: need to revise addressing data types */ if (vp->v_type == VBLK) printf("used_vnode_size = %qu\n", used_vnode_size); - if (used_vnode_size > (vm_offset_t) -PAGE_SIZE) { + if (used_vnode_size > (vaddr_t) -PAGE_SIZE) { #ifdef DEBUG printf("uvn_attach: vn %p size truncated %qx->%x\n", vp, used_vnode_size, -PAGE_SIZE); #endif - used_vnode_size = (vm_offset_t) -PAGE_SIZE; + used_vnode_size = (vaddr_t) -PAGE_SIZE; } /* @@ -836,7 +836,7 @@ uvn_releasepg(pg, nextpgp) static boolean_t uvn_flush(uobj, start, stop, flags) struct uvm_object *uobj; - vm_offset_t start, stop; + vaddr_t start, stop; int flags; { struct uvm_vnode *uvn = (struct uvm_vnode *) uobj; @@ -844,7 +844,7 @@ uvn_flush(uobj, start, stop, flags) struct vm_page *pps[MAXBSIZE/PAGE_SIZE], **ppsp; int npages, result, lcv; boolean_t retval, need_iosync, by_list, needs_clean; - vm_offset_t curoff; + vaddr_t curoff; u_short pp_version; UVMHIST_FUNC("uvn_flush"); UVMHIST_CALLED(maphist); @@ -1265,8 +1265,8 @@ ReTry: static void uvn_cluster(uobj, offset, loffset, hoffset) struct uvm_object *uobj; - vm_offset_t offset; - vm_offset_t *loffset, *hoffset; /* OUT */ + vaddr_t offset; + vaddr_t *loffset, *hoffset; /* OUT */ { struct uvm_vnode *uvn = (struct uvm_vnode *) uobj; *loffset = offset; @@ -1325,13 +1325,13 @@ uvn_put(uobj, pps, npages, flags) static int uvn_get(uobj, offset, pps, npagesp, centeridx, access_type, advice, flags) struct uvm_object *uobj; - vm_offset_t offset; + vaddr_t offset; struct vm_page **pps; /* IN/OUT */ int *npagesp; /* IN (OUT if PGO_LOCKED) */ int centeridx, advice, flags; vm_prot_t access_type; { - vm_offset_t current_offset; + vaddr_t current_offset; struct vm_page *ptmp; int lcv, result, gotpages; boolean_t done; @@ -1572,7 +1572,7 @@ uvn_get(uobj, offset, pps, npagesp, centeridx, access_type, advice, flags) static int uvn_asyncget(uobj, offset, npages) struct uvm_object *uobj; - vm_offset_t offset; + vaddr_t offset; int npages; { @@ -1602,7 +1602,7 @@ uvn_io(uvn, pps, npages, flags, rw) struct vnode *vn; struct uio uio; struct iovec iov; - vm_offset_t kva, file_offset; + vaddr_t kva, file_offset; int waitf, result, got, wanted; UVMHIST_FUNC("uvn_io"); UVMHIST_CALLED(maphist); @@ -1912,16 +1912,16 @@ uvm_vnp_setsize(vp, newsize) if (uvn->u_flags & UVM_VNODE_VALID) { /* - * make sure that the newsize fits within a vm_offset_t + * make sure that the newsize fits within a vaddr_t * XXX: need to revise addressing data types */ - if (newsize > (vm_offset_t) -PAGE_SIZE) { + if (newsize > (vaddr_t) -PAGE_SIZE) { #ifdef DEBUG printf("uvm_vnp_setsize: vn %p size truncated " - "%qx->%lx\n", vp, newsize, (vm_offset_t)-PAGE_SIZE); + "%qx->%lx\n", vp, newsize, (vaddr_t)-PAGE_SIZE); #endif - newsize = (vm_offset_t)-PAGE_SIZE; + newsize = (vaddr_t)-PAGE_SIZE; } /* @@ -1930,10 +1930,10 @@ uvm_vnp_setsize(vp, newsize) */ if (uvn->u_size > newsize) { - (void)uvn_flush(&uvn->u_obj, (vm_offset_t) newsize, + (void)uvn_flush(&uvn->u_obj, (vaddr_t) newsize, uvn->u_size, PGO_FREE); } - uvn->u_size = (vm_offset_t)newsize; + uvn->u_size = (vaddr_t)newsize; } simple_unlock(&uvn->u_obj.vmobjlock); diff --git a/sys/uvm/uvm_vnode.h b/sys/uvm/uvm_vnode.h index 1342f100442..edd4f7b698a 100644 --- a/sys/uvm/uvm_vnode.h +++ b/sys/uvm/uvm_vnode.h @@ -1,4 +1,4 @@ -/* $NetBSD: uvm_vnode.h,v 1.5 1998/03/09 00:59:00 mrg Exp $ */ +/* $NetBSD: uvm_vnode.h,v 1.6 1998/08/13 02:11:04 eeh Exp $ */ /* * XXXCDC: "ROUGH DRAFT" QUALITY UVM PRE-RELEASE FILE! @@ -57,7 +57,7 @@ struct uvm_vnode { struct uvm_object u_obj; /* the actual VM object */ int u_flags; /* flags */ int u_nio; /* number of running I/O requests */ - vm_size_t u_size; /* size of object */ + vsize_t u_size; /* size of object */ /* the following entry is locked by uvn_wl_lock */ LIST_ENTRY(uvm_vnode) u_wlist; /* list of writeable vnode objects */ diff --git a/sys/vm/device_pager.c b/sys/vm/device_pager.c index c88a8ef8b28..3fc2d8e388b 100644 --- a/sys/vm/device_pager.c +++ b/sys/vm/device_pager.c @@ -1,4 +1,4 @@ -/* $NetBSD: device_pager.c,v 1.25 1998/06/10 22:41:03 tv Exp $ */ +/* $NetBSD: device_pager.c,v 1.26 1998/08/13 02:11:04 eeh Exp $ */ /* * Copyright (c) 1990 University of Utah. @@ -68,15 +68,15 @@ int dpagerdebug = 0; #endif static vm_pager_t dev_pager_alloc - __P((caddr_t, vm_size_t, vm_prot_t, vm_offset_t)); + __P((caddr_t, vsize_t, vm_prot_t, vaddr_t)); static void dev_pager_dealloc __P((vm_pager_t)); static int dev_pager_getpage __P((vm_pager_t, vm_page_t *, int, boolean_t)); -static boolean_t dev_pager_haspage __P((vm_pager_t, vm_offset_t)); +static boolean_t dev_pager_haspage __P((vm_pager_t, vaddr_t)); static void dev_pager_init __P((void)); static int dev_pager_putpage __P((vm_pager_t, vm_page_t *, int, boolean_t)); -static vm_page_t dev_pager_getfake __P((vm_offset_t)); +static vm_page_t dev_pager_getfake __P((vaddr_t)); static void dev_pager_putfake __P((vm_page_t)); struct pagerops devicepagerops = { @@ -103,9 +103,9 @@ dev_pager_init() static vm_pager_t dev_pager_alloc(handle, size, prot, foff) caddr_t handle; - vm_size_t size; + vsize_t size; vm_prot_t prot; - vm_offset_t foff; + vaddr_t foff; { dev_t dev; vm_pager_t pager; @@ -182,7 +182,7 @@ top: */ object = devp->devp_object = vm_object_allocate(0); vm_object_enter(object, pager); - vm_object_setpager(object, pager, (vm_offset_t)0, FALSE); + vm_object_setpager(object, pager, (vaddr_t)0, FALSE); /* * Finally, put it on the managed list so other can find it. * First we re-lookup in case someone else beat us to this @@ -260,7 +260,7 @@ dev_pager_getpage(pager, mlist, npages, sync) boolean_t sync; { register vm_object_t object; - vm_offset_t offset, paddr; + vaddr_t offset, paddr; vm_page_t page; dev_t dev; int (*mapfunc) __P((dev_t, int, int)), prot; @@ -332,7 +332,7 @@ dev_pager_putpage(pager, mlist, npages, sync) static boolean_t dev_pager_haspage(pager, offset) vm_pager_t pager; - vm_offset_t offset; + vaddr_t offset; { #ifdef DEBUG if (dpagerdebug & DDB_FOLLOW) @@ -343,7 +343,7 @@ dev_pager_haspage(pager, offset) static vm_page_t dev_pager_getfake(paddr) - vm_offset_t paddr; + vaddr_t paddr; { vm_page_t m; int i; diff --git a/sys/vm/pmap.h b/sys/vm/pmap.h index af452ceb8da..e6d57b561ce 100644 --- a/sys/vm/pmap.h +++ b/sys/vm/pmap.h @@ -1,4 +1,4 @@ -/* $NetBSD: pmap.h,v 1.26 1998/05/19 19:00:11 thorpej Exp $ */ +/* $NetBSD: pmap.h,v 1.27 1998/08/13 02:11:04 eeh Exp $ */ /* * Copyright (c) 1991, 1993 @@ -118,7 +118,7 @@ __BEGIN_DECLS void *pmap_bootstrap_alloc __P((int)); void pmap_activate __P((struct proc *)); void pmap_deactivate __P((struct proc *)); -void pmap_change_wiring __P((pmap_t, vm_offset_t, boolean_t)); +void pmap_change_wiring __P((pmap_t, vaddr_t, boolean_t)); #if defined(PMAP_NEW) #if !defined(pmap_clear_modify) @@ -128,37 +128,37 @@ boolean_t pmap_clear_modify __P((struct vm_page *)); boolean_t pmap_clear_reference __P((struct vm_page *)); #endif #else /* PMAP_NEW */ -void pmap_clear_modify __P((vm_offset_t pa)); -void pmap_clear_reference __P((vm_offset_t pa)); +void pmap_clear_modify __P((paddr_t pa)); +void pmap_clear_reference __P((paddr_t pa)); #endif /* PMAP_NEW */ void pmap_collect __P((pmap_t)); void pmap_copy __P((pmap_t, - pmap_t, vm_offset_t, vm_size_t, vm_offset_t)); -void pmap_copy_page __P((vm_offset_t, vm_offset_t)); + pmap_t, vaddr_t, vsize_t, vaddr_t)); +void pmap_copy_page __P((paddr_t, paddr_t)); #if defined(PMAP_NEW) struct pmap *pmap_create __P((void)); #else -pmap_t pmap_create __P((vm_size_t)); +pmap_t pmap_create __P((vsize_t)); #endif void pmap_destroy __P((pmap_t)); void pmap_enter __P((pmap_t, - vm_offset_t, vm_offset_t, vm_prot_t, boolean_t)); -vm_offset_t pmap_extract __P((pmap_t, vm_offset_t)); + vaddr_t, paddr_t, vm_prot_t, boolean_t)); +paddr_t pmap_extract __P((pmap_t, vaddr_t)); #if defined(PMAP_NEW) && defined(PMAP_GROWKERNEL) -void pmap_growkernel __P((vm_offset_t)); +void pmap_growkernel __P((vaddr_t)); #endif #if !defined(MACHINE_NONCONTIG) && !defined(MACHINE_NEW_NONCONTIG) -void pmap_init __P((vm_offset_t, vm_offset_t)); +void pmap_init __P((paddr_t, paddr_t)); #else void pmap_init __P((void)); #endif #if defined(PMAP_NEW) -void pmap_kenter_pa __P((vm_offset_t, vm_offset_t, vm_prot_t)); -void pmap_kenter_pgs __P((vm_offset_t, struct vm_page **, int)); -void pmap_kremove __P((vm_offset_t, vm_size_t)); +void pmap_kenter_pa __P((vaddr_t, paddr_t, vm_prot_t)); +void pmap_kenter_pgs __P((vaddr_t, struct vm_page **, int)); +void pmap_kremove __P((vaddr_t, vsize_t)); #if !defined(pmap_is_modified) boolean_t pmap_is_modified __P((struct vm_page *)); #endif @@ -166,44 +166,44 @@ boolean_t pmap_is_modified __P((struct vm_page *)); boolean_t pmap_is_referenced __P((struct vm_page *)); #endif #else /* PMAP_NEW */ -boolean_t pmap_is_modified __P((vm_offset_t pa)); -boolean_t pmap_is_referenced __P((vm_offset_t pa)); +boolean_t pmap_is_modified __P((paddr_t pa)); +boolean_t pmap_is_referenced __P((paddr_t pa)); #endif /* PMAP_NEW */ #if !defined(MACHINE_NEW_NONCONTIG) #ifndef pmap_page_index -int pmap_page_index __P((vm_offset_t)); +int pmap_page_index __P((paddr_t)); #endif #endif /* ! MACHINE_NEW_NONCONTIG */ #if defined(PMAP_NEW) void pmap_page_protect __P((struct vm_page *, vm_prot_t)); #else -void pmap_page_protect __P((vm_offset_t, vm_prot_t)); +void pmap_page_protect __P((paddr_t, vm_prot_t)); #endif void pmap_pageable __P((pmap_t, - vm_offset_t, vm_offset_t, boolean_t)); + vaddr_t, vaddr_t, boolean_t)); #if !defined(pmap_phys_address) -vm_offset_t pmap_phys_address __P((int)); +paddr_t pmap_phys_address __P((int)); #endif void pmap_protect __P((pmap_t, - vm_offset_t, vm_offset_t, vm_prot_t)); + vaddr_t, vaddr_t, vm_prot_t)); void pmap_reference __P((pmap_t)); -void pmap_remove __P((pmap_t, vm_offset_t, vm_offset_t)); +void pmap_remove __P((pmap_t, vaddr_t, vaddr_t)); void pmap_update __P((void)); -void pmap_zero_page __P((vm_offset_t)); +void pmap_zero_page __P((paddr_t)); #ifdef MACHINE_NONCONTIG u_int pmap_free_pages __P((void)); -boolean_t pmap_next_page __P((vm_offset_t *)); +boolean_t pmap_next_page __P((paddr_t *)); #endif #if defined(MACHINE_NONCONTIG) || defined(MACHINE_NEW_NONCONTIG) #if defined(PMAP_STEAL_MEMORY) -vm_offset_t pmap_steal_memory __P((vm_size_t, vm_offset_t *, - vm_offset_t *)); +vaddr_t pmap_steal_memory __P((vsize_t, paddr_t *, + paddr_t *)); #else -void pmap_virtual_space __P((vm_offset_t *, vm_offset_t *)); +void pmap_virtual_space __P((vaddr_t *, vaddr_t *)); #endif #endif __END_DECLS diff --git a/sys/vm/swap_pager.c b/sys/vm/swap_pager.c index d8d9143c3d5..eec8340c13c 100644 --- a/sys/vm/swap_pager.c +++ b/sys/vm/swap_pager.c @@ -1,4 +1,4 @@ -/* $NetBSD: swap_pager.c,v 1.35 1998/08/09 21:58:52 perry Exp $ */ +/* $NetBSD: swap_pager.c,v 1.36 1998/08/13 02:11:04 eeh Exp $ */ /* * Copyright (c) 1990 University of Utah. @@ -95,7 +95,7 @@ struct swpagerclean { int spc_flags; struct buf *spc_bp; sw_pager_t spc_swp; - vm_offset_t spc_kva; + vaddr_t spc_kva; vm_page_t spc_m; int spc_npages; } swcleanlist[NPENDINGIO]; @@ -108,7 +108,7 @@ typedef struct swpagerclean *swp_clean_t; #define SPC_ERROR 0x04 struct swtab { - vm_size_t st_osize; /* size of object (bytes) */ + vsize_t st_osize; /* size of object (bytes) */ int st_bsize; /* vs. size of swap block (DEV_BSIZE units) */ #ifdef DEBUG u_long st_inuse; /* number in this range in use */ @@ -133,22 +133,22 @@ extern struct buf bswlist; /* import from vm_swap.c */ static void swap_pager_init __P((void)); static vm_pager_t swap_pager_alloc - __P((caddr_t, vm_size_t, vm_prot_t, vm_offset_t)); + __P((caddr_t, vsize_t, vm_prot_t, vaddr_t)); static void swap_pager_clean __P((int)); #ifdef DEBUG static void swap_pager_clean_check __P((vm_page_t *, int, int)); #endif static void swap_pager_cluster - __P((vm_pager_t, vm_offset_t, - vm_offset_t *, vm_offset_t *)); + __P((vm_pager_t, vaddr_t, + vaddr_t *, vaddr_t *)); static void swap_pager_dealloc __P((vm_pager_t)); static int swap_pager_remove - __P((vm_pager_t, vm_offset_t, vm_offset_t)); -static vm_offset_t swap_pager_next __P((vm_pager_t, vm_offset_t)); + __P((vm_pager_t, vaddr_t, vaddr_t)); +static vaddr_t swap_pager_next __P((vm_pager_t, vaddr_t)); static int swap_pager_count __P((vm_pager_t)); static int swap_pager_getpage __P((vm_pager_t, vm_page_t *, int, boolean_t)); -static boolean_t swap_pager_haspage __P((vm_pager_t, vm_offset_t)); +static boolean_t swap_pager_haspage __P((vm_pager_t, vaddr_t)); static int swap_pager_io __P((sw_pager_t, vm_page_t *, int, int)); static void swap_pager_iodone __P((struct buf *)); static int swap_pager_putpage @@ -221,7 +221,7 @@ swap_pager_init() swtab[i].st_osize = 0; break; } - swtab[i].st_osize = (vm_size_t) (MAXDADDRS * dbtob(bsize)); + swtab[i].st_osize = (vsize_t) (MAXDADDRS * dbtob(bsize)); #ifdef DEBUG if (swpagerdebug & SDB_INIT) printf("swpg_init: ix %d, size %lx, bsize %x\n", @@ -239,9 +239,9 @@ swap_pager_init() static vm_pager_t swap_pager_alloc(handle, size, prot, foff) caddr_t handle; - register vm_size_t size; + register vsize_t size; vm_prot_t prot; - vm_offset_t foff; + vaddr_t foff; { register vm_pager_t pager; register sw_pager_t swp; @@ -474,7 +474,7 @@ swap_pager_putpage(pager, mlist, npages, sync) static boolean_t swap_pager_haspage(pager, offset) vm_pager_t pager; - vm_offset_t offset; + vaddr_t offset; { register sw_pager_t swp; register sw_blk_t swb; @@ -512,13 +512,13 @@ swap_pager_haspage(pager, offset) static void swap_pager_cluster(pager, offset, loffset, hoffset) vm_pager_t pager; - vm_offset_t offset; - vm_offset_t *loffset; - vm_offset_t *hoffset; + vaddr_t offset; + vaddr_t *loffset; + vaddr_t *hoffset; { sw_pager_t swp; register int bsize; - vm_offset_t loff, hoff; + vaddr_t loff, hoff; #ifdef DEBUG if (swpagerdebug & (SDB_FOLLOW|SDB_CLUSTER)) @@ -566,7 +566,7 @@ swap_pager_io(swp, mlist, npages, flags) int ix; u_int mask; boolean_t rv; - vm_offset_t kva, off; + vaddr_t kva, off; swp_clean_t spc; vm_page_t m; @@ -1046,7 +1046,7 @@ swap_pager_iodone(bp) static int swap_pager_remove(pager, from, to) vm_pager_t pager; - vm_offset_t from, to; + vaddr_t from, to; { sw_pager_t swp; sw_blk_t swb; @@ -1155,10 +1155,10 @@ swap_pager_remove(pager, from, to) * space (which by definition is larger than any page's * offset). */ -static vm_offset_t +static vaddr_t swap_pager_next(pager, offset) vm_pager_t pager; - vm_offset_t offset; + vaddr_t offset; { sw_pager_t swp; sw_blk_t swb; diff --git a/sys/vm/swap_pager.h b/sys/vm/swap_pager.h index 0ace4a1280a..3770c91a93c 100644 --- a/sys/vm/swap_pager.h +++ b/sys/vm/swap_pager.h @@ -1,4 +1,4 @@ -/* $NetBSD: swap_pager.h,v 1.7 1997/01/03 18:03:19 mrg Exp $ */ +/* $NetBSD: swap_pager.h,v 1.8 1998/08/13 02:11:05 eeh Exp $ */ /* * Copyright (c) 1990 University of Utah. @@ -77,7 +77,7 @@ typedef struct swblock *sw_blk_t; * Swap pager private data. */ struct swpager { - vm_size_t sw_osize; /* size of object we are backing (bytes) */ + vsize_t sw_osize; /* size of object we are backing (bytes) */ int sw_bsize; /* size of swap blocks (DEV_BSIZE units) */ int sw_nblocks;/* number of blocks in list (sw_blk_t units) */ sw_blk_t sw_blocks; /* pointer to list of swap blocks */ diff --git a/sys/vm/vm_extern.h b/sys/vm/vm_extern.h index 1784c99acf2..2e6cf8e934c 100644 --- a/sys/vm/vm_extern.h +++ b/sys/vm/vm_extern.h @@ -1,4 +1,4 @@ -/* $NetBSD: vm_extern.h,v 1.39 1998/07/31 20:46:36 thorpej Exp $ */ +/* $NetBSD: vm_extern.h,v 1.40 1998/08/13 02:11:05 eeh Exp $ */ /*- * Copyright (c) 1992, 1993 @@ -69,7 +69,7 @@ int sstk __P((struct proc *, void *, int *)); void assert_wait __P((void *, boolean_t)); #if !defined(UVM) -int grow __P((struct proc *, vm_offset_t)); +int grow __P((struct proc *, vaddr_t)); #endif void iprintf __P((void (*)(const char *, ...), const char *, ...)); #if !defined(UVM) @@ -77,17 +77,17 @@ int kernacc __P((caddr_t, size_t, int)); #endif int kinfo_loadavg __P((int, char *, int *, int, int *)); int kinfo_meter __P((int, caddr_t, int *, int, int *)); -vm_offset_t kmem_alloc __P((vm_map_t, vm_size_t)); -vm_offset_t kmem_alloc_pageable __P((vm_map_t, vm_size_t)); -vm_offset_t kmem_alloc_wait __P((vm_map_t, vm_size_t)); -void kmem_free __P((vm_map_t, vm_offset_t, vm_size_t)); -void kmem_free_wakeup __P((vm_map_t, vm_offset_t, vm_size_t)); -void kmem_init __P((vm_offset_t, vm_offset_t)); -vm_offset_t kmem_malloc __P((vm_map_t, vm_size_t, boolean_t)); -vm_map_t kmem_suballoc __P((vm_map_t, vm_offset_t *, vm_offset_t *, - vm_size_t, boolean_t)); -vm_offset_t kmem_alloc_poolpage1 __P((vm_map_t)); -void kmem_free_poolpage1 __P((vm_map_t, vm_offset_t)); +vaddr_t kmem_alloc __P((vm_map_t, vsize_t)); +vaddr_t kmem_alloc_pageable __P((vm_map_t, vsize_t)); +vaddr_t kmem_alloc_wait __P((vm_map_t, vsize_t)); +void kmem_free __P((vm_map_t, vaddr_t, vsize_t)); +void kmem_free_wakeup __P((vm_map_t, vaddr_t, vsize_t)); +void kmem_init __P((vaddr_t, vaddr_t)); +vaddr_t kmem_malloc __P((vm_map_t, vsize_t, boolean_t)); +vm_map_t kmem_suballoc __P((vm_map_t, vaddr_t *, vaddr_t *, + vsize_t, boolean_t)); +vaddr_t kmem_alloc_poolpage1 __P((vm_map_t)); +void kmem_free_poolpage1 __P((vm_map_t, vaddr_t)); #define kmem_alloc_poolpage() kmem_alloc_poolpage1(kmem_map) #define kmem_free_poolpage(addr) kmem_free_poolpage1(kmem_map, (addr)) @@ -125,45 +125,45 @@ void thread_sleep_msg __P((void *, simple_lock_t, #define thread_wakeup wakeup #if !defined(UVM) int useracc __P((caddr_t, size_t, int)); -int vm_allocate __P((vm_map_t, vm_offset_t *, vm_size_t, +int vm_allocate __P((vm_map_t, vaddr_t *, vsize_t, boolean_t)); -int vm_allocate_with_pager __P((vm_map_t, vm_offset_t *, - vm_size_t, boolean_t, vm_pager_t, vm_offset_t, boolean_t)); +int vm_allocate_with_pager __P((vm_map_t, vaddr_t *, + vsize_t, boolean_t, vm_pager_t, vaddr_t, boolean_t)); int vm_coredump __P((struct proc *, struct vnode *, struct ucred *, struct core *)); -int vm_deallocate __P((vm_map_t, vm_offset_t, vm_size_t)); +int vm_deallocate __P((vm_map_t, vaddr_t, vsize_t)); #endif -int vm_fault __P((vm_map_t, vm_offset_t, vm_prot_t, boolean_t)); +int vm_fault __P((vm_map_t, vaddr_t, vm_prot_t, boolean_t)); void vm_fault_copy_entry __P((vm_map_t, vm_map_t, vm_map_entry_t, vm_map_entry_t)); -void vm_fault_unwire __P((vm_map_t, vm_offset_t, vm_offset_t)); -int vm_fault_wire __P((vm_map_t, vm_offset_t, vm_offset_t)); +void vm_fault_unwire __P((vm_map_t, vaddr_t, vaddr_t)); +int vm_fault_wire __P((vm_map_t, vaddr_t, vaddr_t)); #if !defined(UVM) void vm_fork __P((struct proc *, struct proc *, boolean_t)); #endif int vm_inherit __P((vm_map_t, - vm_offset_t, vm_size_t, vm_inherit_t)); + vaddr_t, vsize_t, vm_inherit_t)); #if !defined(UVM) void vm_init_limits __P((struct proc *)); #endif void vm_mem_init __P((void)); #if !defined(UVM) -int vm_mmap __P((vm_map_t, vm_offset_t *, vm_size_t, - vm_prot_t, vm_prot_t, int, caddr_t, vm_offset_t)); +int vm_mmap __P((vm_map_t, vaddr_t *, vsize_t, + vm_prot_t, vm_prot_t, int, caddr_t, vaddr_t)); #endif int vm_protect __P((vm_map_t, - vm_offset_t, vm_size_t, boolean_t, vm_prot_t)); + vaddr_t, vsize_t, boolean_t, vm_prot_t)); void vm_set_page_size __P((void)); int vm_sysctl __P((int *, u_int, void *, size_t *, void *, size_t, struct proc *)); void vmmeter __P((void)); #if !defined(UVM) -struct vmspace *vmspace_alloc __P((vm_offset_t, vm_offset_t, boolean_t)); +struct vmspace *vmspace_alloc __P((vaddr_t, vaddr_t, boolean_t)); struct vmspace *vmspace_fork __P((struct vmspace *)); void vmspace_exec __P((struct proc *)); void vmspace_free __P((struct vmspace *)); void vmspace_init __P((struct vmspace *, struct pmap *, - vm_offset_t, vm_offset_t, boolean_t)); + vaddr_t, vaddr_t, boolean_t)); void vmspace_share __P((struct proc *, struct proc *)); void vmspace_unshare __P((struct proc *)); #endif @@ -178,8 +178,8 @@ void vsunlock __P((struct proc *, caddr_t, size_t)); #endif /* Machine dependent portion */ -void vmapbuf __P((struct buf *, vm_size_t)); -void vunmapbuf __P((struct buf *, vm_size_t)); +void vmapbuf __P((struct buf *, vsize_t)); +void vunmapbuf __P((struct buf *, vsize_t)); void pagemove __P((caddr_t, caddr_t, size_t)); void cpu_fork __P((struct proc *, struct proc *)); #ifndef cpu_swapin diff --git a/sys/vm/vm_fault.c b/sys/vm/vm_fault.c index 535f4beee52..6c7ace89e85 100644 --- a/sys/vm/vm_fault.c +++ b/sys/vm/vm_fault.c @@ -1,4 +1,4 @@ -/* $NetBSD: vm_fault.c,v 1.24 1998/03/26 21:41:16 chuck Exp $ */ +/* $NetBSD: vm_fault.c,v 1.25 1998/08/13 02:11:05 eeh Exp $ */ /* * Copyright (c) 1991, 1993 @@ -98,15 +98,15 @@ int vm_fault(map, vaddr, fault_type, change_wiring) vm_map_t map; - vm_offset_t vaddr; + vaddr_t vaddr; vm_prot_t fault_type; boolean_t change_wiring; { vm_object_t first_object; - vm_offset_t first_offset; + vaddr_t first_offset; vm_map_entry_t entry; register vm_object_t object; - register vm_offset_t offset; + register vaddr_t offset; register vm_page_t m; vm_page_t first_m; vm_prot_t prot; @@ -542,7 +542,7 @@ vm_fault(map, vaddr, fault_type, change_wiring) RetryCopy: if (first_object->copy != NULL) { vm_object_t copy_object = first_object->copy; - vm_offset_t copy_offset; + vaddr_t copy_offset; vm_page_t copy_m; /* @@ -737,7 +737,7 @@ vm_fault(map, vaddr, fault_type, change_wiring) if (!lookup_still_valid) { vm_object_t retry_object; - vm_offset_t retry_offset; + vaddr_t retry_offset; vm_prot_t retry_prot; /* @@ -860,9 +860,9 @@ vm_fault(map, vaddr, fault_type, change_wiring) int vm_fault_wire(map, start, end) vm_map_t map; - vm_offset_t start, end; + vaddr_t start, end; { - register vm_offset_t va; + register vaddr_t va; register pmap_t pmap; int rv; @@ -901,10 +901,11 @@ vm_fault_wire(map, start, end) void vm_fault_unwire(map, start, end) vm_map_t map; - vm_offset_t start, end; + vaddr_t start, end; { - register vm_offset_t va, pa; + register vaddr_t va; + register paddr_t pa; register pmap_t pmap; pmap = vm_map_pmap(map); @@ -918,7 +919,7 @@ vm_fault_unwire(map, start, end) for (va = start; va < end; va += PAGE_SIZE) { pa = pmap_extract(pmap, va); - if (pa == (vm_offset_t) 0) { + if (pa == (paddr_t) 0) { panic("unwire: page not in pmap"); } #ifdef DIAGNOSTIC @@ -961,10 +962,10 @@ vm_fault_copy_entry(dst_map, src_map, dst_entry, src_entry) vm_object_t dst_object; vm_object_t src_object; - vm_offset_t dst_offset; - vm_offset_t src_offset; + vaddr_t dst_offset; + vaddr_t src_offset; vm_prot_t prot; - vm_offset_t vaddr; + vaddr_t vaddr; vm_page_t dst_m; vm_page_t src_m; @@ -981,7 +982,7 @@ vm_fault_copy_entry(dst_map, src_map, dst_entry, src_entry) * directly.) */ dst_object = vm_object_allocate( - (vm_size_t) (dst_entry->end - dst_entry->start)); + (vsize_t) (dst_entry->end - dst_entry->start)); dst_entry->object.vm_object = dst_object; dst_entry->offset = 0; diff --git a/sys/vm/vm_glue.c b/sys/vm/vm_glue.c index b07af4fe751..9cac376d0ac 100644 --- a/sys/vm/vm_glue.c +++ b/sys/vm/vm_glue.c @@ -1,4 +1,4 @@ -/* $NetBSD: vm_glue.c,v 1.76 1998/08/09 21:58:52 perry Exp $ */ +/* $NetBSD: vm_glue.c,v 1.77 1998/08/13 02:11:05 eeh Exp $ */ /* * Copyright (c) 1991, 1993 @@ -90,7 +90,7 @@ kernacc(addr, len, rw) int rw; { boolean_t rv; - vm_offset_t saddr, eaddr; + vaddr_t saddr, eaddr; vm_prot_t prot = rw == B_READ ? VM_PROT_READ : VM_PROT_WRITE; saddr = trunc_page(addr); @@ -105,8 +105,8 @@ kernacc(addr, len, rw) * or worse, inconsistencies at the pmap level. We only worry * about the buffer cache for now. */ - if (!readbuffers && rv && (eaddr > (vm_offset_t)buffers && - saddr < (vm_offset_t)buffers + MAXBSIZE * nbuf)) + if (!readbuffers && rv && (eaddr > (vaddr_t)buffers && + saddr < (vaddr_t)buffers + MAXBSIZE * nbuf)) rv = FALSE; return(rv == TRUE); } @@ -125,9 +125,9 @@ useracc(addr, len, rw) * XXX - specially disallow access to user page tables - they are * in the map. This is here until i386 & pc532 pmaps are fixed... */ - if ((vm_offset_t) addr >= VM_MAXUSER_ADDRESS - || (vm_offset_t) addr + len > VM_MAXUSER_ADDRESS - || (vm_offset_t) addr + len <= (vm_offset_t) addr) + if ((vaddr_t) addr >= VM_MAXUSER_ADDRESS + || (vaddr_t) addr + len > VM_MAXUSER_ADDRESS + || (vaddr_t) addr + len <= (vaddr_t) addr) return (FALSE); #endif @@ -156,7 +156,8 @@ chgkprot(addr, len, rw) int rw; { vm_prot_t prot; - vm_offset_t pa, sva, eva; + vaddr_t pa; + vaddr_t sva, eva; prot = rw == B_READ ? VM_PROT_READ : VM_PROT_READ|VM_PROT_WRITE; eva = round_page(addr + len); @@ -225,8 +226,8 @@ vm_fork(p1, p2, shared) * Wire down the U-area for the process, which contains the PCB * and the kernel stack. */ - vm_map_pageable(kernel_map, (vm_offset_t)up, - (vm_offset_t)up + USPACE, FALSE); + vm_map_pageable(kernel_map, (vaddr_t)up, + (vaddr_t)up + USPACE, FALSE); /* * p_stats and p_sigacts currently point at fields @@ -293,10 +294,10 @@ void swapin(p) struct proc *p; { - vm_offset_t addr; + vaddr_t addr; int s; - addr = (vm_offset_t)p->p_addr; + addr = (vaddr_t)p->p_addr; vm_map_pageable(kernel_map, addr, addr + USPACE, FALSE); /* * Some architectures need to be notified when the @@ -466,7 +467,7 @@ void swapout(p) register struct proc *p; { - vm_offset_t addr; + vaddr_t addr; int s; #ifdef DEBUG @@ -485,7 +486,7 @@ swapout(p) /* * Unwire the to-be-swapped process's user struct and kernel stack. */ - addr = (vm_offset_t)p->p_addr; + addr = (vaddr_t)p->p_addr; vm_map_pageable(kernel_map, addr, addr + USPACE, TRUE); pmap_collect(vm_map_pmap(&p->p_vmspace->vm_map)); diff --git a/sys/vm/vm_init.c b/sys/vm/vm_init.c index c4a7298143a..3b1829867e6 100644 --- a/sys/vm/vm_init.c +++ b/sys/vm/vm_init.c @@ -1,4 +1,4 @@ -/* $NetBSD: vm_init.c,v 1.11 1998/01/09 06:00:50 thorpej Exp $ */ +/* $NetBSD: vm_init.c,v 1.12 1998/08/13 02:11:05 eeh Exp $ */ /* * Copyright (c) 1991, 1993 @@ -85,10 +85,10 @@ void vm_mem_init() { #if !defined(MACHINE_NONCONTIG) && !defined(MACHINE_NEW_NONCONTIG) - extern vm_offset_t avail_start, avail_end; - extern vm_offset_t virtual_avail, virtual_end; + extern paddr_t avail_start, avail_end; + extern vaddr_t virtual_avail, virtual_end; #else - vm_offset_t start, end; + vaddr_t start, end; #endif /* diff --git a/sys/vm/vm_kern.c b/sys/vm/vm_kern.c index 15058cc511d..35c7b857d6f 100644 --- a/sys/vm/vm_kern.c +++ b/sys/vm/vm_kern.c @@ -1,4 +1,4 @@ -/* $NetBSD: vm_kern.c,v 1.27 1998/07/31 20:46:36 thorpej Exp $ */ +/* $NetBSD: vm_kern.c,v 1.28 1998/08/13 02:11:05 eeh Exp $ */ /* * Copyright (c) 1991, 1993 @@ -83,12 +83,12 @@ * Allocate pageable memory to the kernel's address map. * map must be "kernel_map" below. */ -vm_offset_t +vaddr_t kmem_alloc_pageable(map, size) vm_map_t map; - register vm_size_t size; + register vsize_t size; { - vm_offset_t addr; + vaddr_t addr; register int result; #if 0 @@ -99,7 +99,7 @@ kmem_alloc_pageable(map, size) size = round_page(size); addr = vm_map_min(map); - result = vm_map_find(map, NULL, (vm_offset_t) 0, + result = vm_map_find(map, NULL, (vaddr_t) 0, &addr, size, TRUE); if (result != KERN_SUCCESS) { return(0); @@ -112,15 +112,15 @@ kmem_alloc_pageable(map, size) * Allocate wired-down memory in the kernel's address map * or a submap. */ -vm_offset_t +vaddr_t kmem_alloc(map, size) register vm_map_t map; - register vm_size_t size; + register vsize_t size; { - vm_offset_t addr; - register vm_offset_t offset; + vaddr_t addr; + register vaddr_t offset; extern vm_object_t kernel_object; - vm_offset_t i; + vaddr_t i; size = round_page(size); @@ -187,7 +187,7 @@ kmem_alloc(map, size) * And finally, mark the data as non-pageable. */ - (void) vm_map_pageable(map, (vm_offset_t) addr, addr + size, FALSE); + (void) vm_map_pageable(map, (vaddr_t) addr, addr + size, FALSE); /* * Try to coalesce the map @@ -208,8 +208,8 @@ kmem_alloc(map, size) void kmem_free(map, addr, size) vm_map_t map; - register vm_offset_t addr; - vm_size_t size; + register vaddr_t addr; + vsize_t size; { (void) vm_map_remove(map, trunc_page(addr), round_page(addr + size)); } @@ -230,8 +230,8 @@ kmem_free(map, addr, size) vm_map_t kmem_suballoc(parent, min, max, size, pageable) register vm_map_t parent; - vm_offset_t *min, *max; - register vm_size_t size; + vaddr_t *min, *max; + register vsize_t size; boolean_t pageable; { register int ret; @@ -239,8 +239,8 @@ kmem_suballoc(parent, min, max, size, pageable) size = round_page(size); - *min = (vm_offset_t) vm_map_min(parent); - ret = vm_map_find(parent, NULL, (vm_offset_t) 0, + *min = (vaddr_t) vm_map_min(parent); + ret = vm_map_find(parent, NULL, (vaddr_t) 0, min, size, TRUE); if (ret != KERN_SUCCESS) { printf("kmem_suballoc: bad status return of %d.\n", ret); @@ -272,15 +272,15 @@ kmem_suballoc(parent, min, max, size, pageable) * We don't worry about expanding the map (adding entries) since entries * for wired maps are statically allocated. */ -vm_offset_t +vaddr_t kmem_malloc(map, size, canwait) register vm_map_t map; - register vm_size_t size; + register vsize_t size; boolean_t canwait; { - register vm_offset_t offset, i; + register vaddr_t offset, i; vm_map_entry_t entry; - vm_offset_t addr; + vaddr_t addr; vm_page_t m; extern vm_object_t kmem_object; @@ -318,7 +318,7 @@ kmem_malloc(map, size, canwait) */ if (canwait) { vm_map_unlock(map); - (void) vm_map_pageable(map, (vm_offset_t) addr, addr + size, + (void) vm_map_pageable(map, (vaddr_t) addr, addr + size, FALSE); vm_map_simplify(map, addr); return(addr); @@ -392,12 +392,12 @@ kmem_malloc(map, size, canwait) * has no room, the caller sleeps waiting for more memory in the submap. * */ -vm_offset_t +vaddr_t kmem_alloc_wait(map, size) vm_map_t map; - vm_size_t size; + vsize_t size; { - vm_offset_t addr; + vaddr_t addr; size = round_page(size); @@ -418,7 +418,7 @@ kmem_alloc_wait(map, size) vm_map_unlock(map); thread_block("mKmwait"); } - vm_map_insert(map, NULL, (vm_offset_t)0, addr, addr + size); + vm_map_insert(map, NULL, (vaddr_t)0, addr, addr + size); vm_map_unlock(map); return (addr); } @@ -432,8 +432,8 @@ kmem_alloc_wait(map, size) void kmem_free_wakeup(map, addr, size) vm_map_t map; - vm_offset_t addr; - vm_size_t size; + vaddr_t addr; + vsize_t size; { vm_map_lock(map); (void) vm_map_delete(map, trunc_page(addr), round_page(addr + size)); @@ -454,13 +454,13 @@ kmem_free_wakeup(map, addr, size) * kmem_alloc(), as we may be using a direct-mapping for the page. */ /* ARGSUSED */ -vm_offset_t +vaddr_t kmem_alloc_poolpage1(map) vm_map_t map; { #if defined(PMAP_MAP_POOLPAGE) - vm_page_t pg; - vm_offset_t va; + vm_page_t pg + vaddr_t va; pg = vm_page_alloc1(); if (pg == NULL) @@ -470,7 +470,7 @@ kmem_alloc_poolpage1(map) vm_page_free1(pg); return (va); #else - vm_offset_t va; + vaddr_t va; int s; s = splimp(); @@ -489,10 +489,10 @@ kmem_alloc_poolpage1(map) void kmem_free_poolpage1(map, addr) vm_map_t map; - vm_offset_t addr; + vaddr_t addr; { #if defined(PMAP_UNMAP_POOLPAGE) - vm_offset_t pa; + paddr_t pa; pa = PMAP_UNMAP_POOLPAGE(addr); vm_page_free1(PHYS_TO_VM_PAGE(pa)); @@ -513,7 +513,7 @@ kmem_free_poolpage1(map, addr) */ void kmem_init(start, end) - vm_offset_t start, end; + vaddr_t start, end; { register vm_map_t m; @@ -521,8 +521,9 @@ kmem_init(start, end) vm_map_lock(m); /* N.B.: cannot use kgdb to debug, starting with this assignment ... */ kernel_map = m; - (void) vm_map_insert(m, NULL, (vm_offset_t)0, + (void) vm_map_insert(m, NULL, (vaddr_t)0, VM_MIN_KERNEL_ADDRESS, start); /* ... and ending with the completion of the above `insert' */ vm_map_unlock(m); } + diff --git a/sys/vm/vm_map.c b/sys/vm/vm_map.c index ecc3f37cf96..b2d6978bc0d 100644 --- a/sys/vm/vm_map.c +++ b/sys/vm/vm_map.c @@ -1,4 +1,4 @@ -/* $NetBSD: vm_map.c,v 1.38 1998/08/09 21:58:53 perry Exp $ */ +/* $NetBSD: vm_map.c,v 1.39 1998/08/13 02:11:07 eeh Exp $ */ /* * Copyright (c) 1991, 1993 @@ -142,18 +142,18 @@ #if defined(MACHINE_NEW_NONCONTIG) u_int8_t kentry_data_store[MAX_KMAP*sizeof(struct vm_map) + MAX_KMAPENT*sizeof(struct vm_map_entry)]; -vm_offset_t kentry_data = (vm_offset_t) kentry_data_store; -vm_size_t kentry_data_size = sizeof(kentry_data_store); +vaddr_t kentry_data = (vaddr_t) kentry_data_store; +vsize_t kentry_data_size = sizeof(kentry_data_store); #else /* NUKE NUKE NUKE */ -vm_offset_t kentry_data; -vm_size_t kentry_data_size; +vaddr_t kentry_data; +vsize_t kentry_data_size; #endif vm_map_entry_t kentry_free; vm_map_t kmap_free; -static void _vm_map_clip_end __P((vm_map_t, vm_map_entry_t, vm_offset_t)); -static void _vm_map_clip_start __P((vm_map_t, vm_map_entry_t, vm_offset_t)); +static void _vm_map_clip_end __P((vm_map_t, vm_map_entry_t, vaddr_t)); +static void _vm_map_clip_start __P((vm_map_t, vm_map_entry_t, vaddr_t)); void vm_map_startup() @@ -200,7 +200,7 @@ vm_map_startup() */ struct vmspace * vmspace_alloc(min, max, pageable) - vm_offset_t min, max; + vaddr_t min, max; int pageable; { register struct vmspace *vm; @@ -219,7 +219,7 @@ void vmspace_init(vm, pmap, min, max, pageable) struct vmspace *vm; struct pmap *pmap; - vm_offset_t min, max; + vaddr_t min, max; boolean_t pageable; { @@ -313,7 +313,7 @@ vmspace_exec(p) map->entries_pageable); #if defined(i386) || defined(pc532) /* XXX XXX XXX */ /* Allocate page table space. */ - { vm_offset_t addr = VM_MAXUSER_ADDRESS; + { vaddr_t addr = VM_MAXUSER_ADDRESS; (void) vm_allocate(&nvm->vm_map, &addr, VM_MAX_ADDRESS - addr, FALSE); (void) vm_map_inherit(&nvm->vm_map, addr, VM_MAX_ADDRESS, @@ -360,7 +360,7 @@ vmspace_free(vm) vm_map_t vm_map_create(pmap, min, max, pageable) pmap_t pmap; - vm_offset_t min, max; + vaddr_t min, max; boolean_t pageable; { register vm_map_t result; @@ -388,7 +388,7 @@ vm_map_create(pmap, min, max, pageable) void vm_map_init(map, min, max, pageable) register struct vm_map *map; - vm_offset_t min, max; + vaddr_t min, max; boolean_t pageable; { map->header.next = map->header.prev = &map->header; @@ -556,9 +556,9 @@ int vm_map_insert(map, object, offset, start, end) vm_map_t map; vm_object_t object; - vm_offset_t offset; - vm_offset_t start; - vm_offset_t end; + vaddr_t offset; + vaddr_t start; + vaddr_t end; { register vm_map_entry_t new_entry; register vm_map_entry_t prev_entry; @@ -611,10 +611,10 @@ vm_map_insert(map, object, offset, start, end) if (vm_object_coalesce(prev_entry->object.vm_object, NULL, prev_entry->offset, - (vm_offset_t) 0, - (vm_size_t)(prev_entry->end + (vaddr_t) 0, + (vsize_t)(prev_entry->end - prev_entry->start), - (vm_size_t)(end - prev_entry->end))) { + (vsize_t)(end - prev_entry->end))) { /* * Coalesced the two objects - can extend * the previous map entry to include the @@ -691,7 +691,7 @@ vm_map_insert(map, object, offset, start, end) boolean_t vm_map_lookup_entry(map, address, entry) register vm_map_t map; - register vm_offset_t address; + register vaddr_t address; vm_map_entry_t *entry; /* OUT */ { register vm_map_entry_t cur; @@ -767,12 +767,12 @@ vm_map_lookup_entry(map, address, entry) int vm_map_findspace(map, start, length, addr) register vm_map_t map; - register vm_offset_t start; - vm_size_t length; - vm_offset_t *addr; + register vaddr_t start; + vsize_t length; + vaddr_t *addr; { register vm_map_entry_t entry, next; - register vm_offset_t end; + register vaddr_t end; if (start < map->min_offset) start = map->min_offset; @@ -828,12 +828,12 @@ int vm_map_find(map, object, offset, addr, length, find_space) vm_map_t map; vm_object_t object; - vm_offset_t offset; - vm_offset_t *addr; /* IN/OUT */ - vm_size_t length; + vaddr_t offset; + vaddr_t *addr; /* IN/OUT */ + vsize_t length; boolean_t find_space; { - register vm_offset_t start; + register vaddr_t start; int result; start = *addr; @@ -936,7 +936,7 @@ static void _vm_map_clip_start(map, entry, start) register vm_map_t map; register vm_map_entry_t entry; - register vm_offset_t start; + register vaddr_t start; { register vm_map_entry_t new_entry; @@ -991,7 +991,7 @@ static void _vm_map_clip_end(map, entry, end) register vm_map_t map; register vm_map_entry_t entry; - register vm_offset_t end; + register vaddr_t end; { register vm_map_entry_t new_entry; @@ -1051,8 +1051,8 @@ _vm_map_clip_end(map, entry, end) int vm_map_submap(map, start, end, submap) register vm_map_t map; - register vm_offset_t start; - register vm_offset_t end; + register vaddr_t start; + register vaddr_t end; vm_map_t submap; { vm_map_entry_t entry; @@ -1095,8 +1095,8 @@ vm_map_submap(map, start, end, submap) int vm_map_protect(map, start, end, new_prot, set_max) register vm_map_t map; - register vm_offset_t start; - register vm_offset_t end; + register vaddr_t start; + register vaddr_t end; register vm_prot_t new_prot; register boolean_t set_max; { @@ -1163,7 +1163,7 @@ vm_map_protect(map, start, end, new_prot, set_max) if (current->is_a_map) { vm_map_entry_t share_entry; - vm_offset_t share_end; + vaddr_t share_end; vm_map_lock(current->object.share_map); (void) vm_map_lookup_entry( @@ -1217,8 +1217,8 @@ vm_map_protect(map, start, end, new_prot, set_max) int vm_map_inherit(map, start, end, new_inheritance) register vm_map_t map; - register vm_offset_t start; - register vm_offset_t end; + register vaddr_t start; + register vaddr_t end; register vm_inherit_t new_inheritance; { register vm_map_entry_t entry; @@ -1270,13 +1270,13 @@ vm_map_inherit(map, start, end, new_inheritance) int vm_map_pageable(map, start, end, new_pageable) register vm_map_t map; - register vm_offset_t start; - register vm_offset_t end; + register vaddr_t start; + register vaddr_t end; register boolean_t new_pageable; { register vm_map_entry_t entry; vm_map_entry_t start_entry; - register vm_offset_t failed = 0; + register vaddr_t failed = 0; int rv; vm_map_lock(map); @@ -1392,15 +1392,15 @@ vm_map_pageable(map, start, end, new_pageable) vm_object_shadow(&entry->object.vm_object, &entry->offset, - (vm_size_t)(entry->end + (vsize_t)(entry->end - entry->start)); entry->needs_copy = FALSE; } else if (entry->object.vm_object == NULL) { entry->object.vm_object = - vm_object_allocate((vm_size_t)(entry->end + vm_object_allocate((vsize_t)(entry->end - entry->start)); - entry->offset = (vm_offset_t)0; + entry->offset = (vaddr_t)0; } } } @@ -1507,16 +1507,16 @@ vm_map_pageable(map, start, end, new_pageable) int vm_map_clean(map, start, end, syncio, invalidate) vm_map_t map; - vm_offset_t start; - vm_offset_t end; + vaddr_t start; + vaddr_t end; boolean_t syncio; boolean_t invalidate; { register vm_map_entry_t current; vm_map_entry_t entry; - vm_size_t size; + vsize_t size; vm_object_t object; - vm_offset_t offset; + vaddr_t offset; vm_map_lock_read(map); VM_MAP_RANGE_CHECK(map, start, end); @@ -1556,7 +1556,7 @@ vm_map_clean(map, start, end, syncio, invalidate) if (current->is_a_map) { register vm_map_t smap; vm_map_entry_t tentry; - vm_size_t tsize; + vsize_t tsize; smap = current->object.share_map; vm_map_lock_read(smap); @@ -1646,8 +1646,8 @@ vm_map_entry_delete(map, entry) int vm_map_delete(map, start, end) register vm_map_t map; - vm_offset_t start; - register vm_offset_t end; + vaddr_t start; + register vaddr_t end; { register vm_map_entry_t entry; vm_map_entry_t first_entry; @@ -1683,7 +1683,7 @@ vm_map_delete(map, start, end) while ((entry != &map->header) && (entry->start < end)) { vm_map_entry_t next; - register vm_offset_t s, e; + register vaddr_t s, e; register vm_object_t object; vm_map_clip_end(map, entry, end); @@ -1742,8 +1742,8 @@ vm_map_delete(map, start, end) int vm_map_remove(map, start, end) register vm_map_t map; - register vm_offset_t start; - register vm_offset_t end; + register vaddr_t start; + register vaddr_t end; { register int result; @@ -1765,8 +1765,8 @@ vm_map_remove(map, start, end) boolean_t vm_map_check_protection(map, start, end, protection) register vm_map_t map; - register vm_offset_t start; - register vm_offset_t end; + register vaddr_t start; + register vaddr_t end; register vm_prot_t protection; { register vm_map_entry_t entry; @@ -1893,7 +1893,7 @@ vm_map_copy_entry(src_map, dst_map, src_entry, dst_entry) temp_object = dst_entry->object.vm_object; vm_object_copy(src_entry->object.vm_object, src_entry->offset, - (vm_size_t)(src_entry->end - + (vsize_t)(src_entry->end - src_entry->start), &dst_entry->object.vm_object, &dst_entry->offset, @@ -1960,9 +1960,9 @@ vm_map_copy(dst_map, src_map, dst_alloc, src_destroy) vm_map_t dst_map; vm_map_t src_map; - vm_offset_t dst_addr; - vm_size_t len; - vm_offset_t src_addr; + vaddr_t dst_addr; + vsize_t len; + vaddr_t src_addr; boolean_t dst_alloc; boolean_t src_destroy; { @@ -1971,12 +1971,12 @@ vm_map_copy(dst_map, src_map, register vm_map_entry_t dst_entry; vm_map_entry_t tmp_entry; - vm_offset_t src_start; - vm_offset_t src_end; - vm_offset_t dst_start; - vm_offset_t dst_end; - vm_offset_t src_clip; - vm_offset_t dst_clip; + vaddr_t src_start; + vaddr_t src_end; + vaddr_t dst_start; + vaddr_t dst_end; + vaddr_t src_clip; + vaddr_t dst_clip; int result; boolean_t old_src_destroy; @@ -2041,7 +2041,7 @@ vm_map_copy(dst_map, src_map, if (dst_alloc) { /* XXX Consider making this a vm_map_find instead */ if ((result = vm_map_insert(dst_map, NULL, - (vm_offset_t) 0, dst_start, dst_end)) != KERN_SUCCESS) + (vaddr_t) 0, dst_start, dst_end)) != KERN_SUCCESS) goto Return; } else if (!vm_map_check_protection(dst_map, dst_start, dst_end, @@ -2124,10 +2124,10 @@ vm_map_copy(dst_map, src_map, } else { register vm_map_t new_dst_map; - vm_offset_t new_dst_start; - vm_size_t new_size; + vaddr_t new_dst_start; + vsize_t new_size; vm_map_t new_src_map; - vm_offset_t new_src_start; + vaddr_t new_src_start; /* * We have to follow at least one sharing map. @@ -2146,7 +2146,7 @@ vm_map_copy(dst_map, src_map, } if (dst_entry->is_a_map) { - vm_offset_t new_dst_end; + vaddr_t new_dst_end; new_dst_map = dst_entry->object.share_map; new_dst_start = dst_entry->offset; @@ -2171,7 +2171,7 @@ vm_map_copy(dst_map, src_map, new_dst_end); (void) vm_map_insert(new_dst_map, NULL, - (vm_offset_t) 0, + (vaddr_t) 0, new_dst_start, new_dst_end); vm_map_unlock(new_dst_map); @@ -2385,7 +2385,7 @@ vmspace_fork(vm1) check = vm_map_copy(new_map, old_entry->object.share_map, new_entry->start, - (vm_size_t)(new_entry->end - + (vsize_t)(new_entry->end - new_entry->start), old_entry->offset, FALSE, FALSE); @@ -2406,7 +2406,7 @@ vmspace_fork(vm1) #if defined(i386) || defined(pc532) /* XXX XXX XXX */ /* Allocate page table space. */ - { vm_offset_t addr = VM_MAXUSER_ADDRESS; + { vaddr_t addr = VM_MAXUSER_ADDRESS; (void) vm_allocate(new_map, &addr, VM_MAX_ADDRESS - addr, FALSE); (void) vm_map_inherit(new_map, addr, VM_MAX_ADDRESS, VM_INHERIT_NONE); @@ -2447,18 +2447,18 @@ int vm_map_lookup(var_map, vaddr, fault_type, out_entry, object, offset, out_prot, wired, single_use) vm_map_t *var_map; /* IN/OUT */ - register vm_offset_t vaddr; + register vaddr_t vaddr; register vm_prot_t fault_type; vm_map_entry_t *out_entry; /* OUT */ vm_object_t *object; /* OUT */ - vm_offset_t *offset; /* OUT */ + vaddr_t *offset; /* OUT */ vm_prot_t *out_prot; /* OUT */ boolean_t *wired; /* OUT */ boolean_t *single_use; /* OUT */ { vm_map_t share_map; - vm_offset_t share_offset; + vaddr_t share_offset; register vm_map_entry_t entry; register vm_map_t map = *var_map; register vm_prot_t prot; @@ -2598,7 +2598,7 @@ vm_map_lookup(var_map, vaddr, fault_type, out_entry, vm_object_shadow( &entry->object.vm_object, &entry->offset, - (vm_size_t) (entry->end - entry->start)); + (vsize_t) (entry->end - entry->start)); entry->needs_copy = FALSE; lockmgr(&share_map->lock, LK_DOWNGRADE, (void *)0); @@ -2625,7 +2625,7 @@ vm_map_lookup(var_map, vaddr, fault_type, out_entry, } entry->object.vm_object = vm_object_allocate( - (vm_size_t)(entry->end - entry->start)); + (vsize_t)(entry->end - entry->start)); entry->offset = 0; lockmgr(&share_map->lock, LK_DOWNGRADE, (void *)0); } @@ -2697,7 +2697,7 @@ vm_map_lookup_done(map, entry) void vm_map_simplify(map, start) vm_map_t map; - vm_offset_t start; + vaddr_t start; { vm_map_entry_t this_entry; vm_map_entry_t prev_entry; diff --git a/sys/vm/vm_map.h b/sys/vm/vm_map.h index dc01eee2298..05bf7ac11e3 100644 --- a/sys/vm/vm_map.h +++ b/sys/vm/vm_map.h @@ -1,4 +1,4 @@ -/* $NetBSD: vm_map.h,v 1.17 1998/03/01 02:24:00 fvdl Exp $ */ +/* $NetBSD: vm_map.h,v 1.18 1998/08/13 02:11:07 eeh Exp $ */ /* * Copyright (c) 1991, 1993 @@ -113,10 +113,10 @@ union vm_map_object { struct vm_map_entry { struct vm_map_entry *prev; /* previous entry */ struct vm_map_entry *next; /* next entry */ - vm_offset_t start; /* start address */ - vm_offset_t end; /* end address */ + vaddr_t start; /* start address */ + vaddr_t end; /* end address */ union vm_map_object object; /* object I point to */ - vm_offset_t offset; /* offset into object */ + vsize_t offset; /* offset into object */ #if defined(UVM) /* etype is a bitmap that replaces the following 4 items */ int etype; /* entry type */ @@ -154,7 +154,7 @@ struct vm_map { lock_data_t lock; /* Lock for map data */ struct vm_map_entry header; /* List of entries */ int nentries; /* Number of entries */ - vm_size_t size; /* virtual size */ + vsize_t size; /* virtual size */ boolean_t is_main_map; /* Am I a main map? */ int ref_count; /* Reference count */ simple_lock_data_t ref_lock; /* Lock for ref_count field */ @@ -259,51 +259,51 @@ vm_map_t map; #ifdef _KERNEL boolean_t vm_map_check_protection __P((vm_map_t, - vm_offset_t, vm_offset_t, vm_prot_t)); -int vm_map_copy __P((vm_map_t, vm_map_t, vm_offset_t, - vm_size_t, vm_offset_t, boolean_t, boolean_t)); + vaddr_t, vaddr_t, vm_prot_t)); +int vm_map_copy __P((vm_map_t, vm_map_t, vaddr_t, + vsize_t, vaddr_t, boolean_t, boolean_t)); void vm_map_copy_entry __P((vm_map_t, vm_map_t, vm_map_entry_t, vm_map_entry_t)); struct pmap; vm_map_t vm_map_create __P((struct pmap *, - vm_offset_t, vm_offset_t, boolean_t)); + vaddr_t, vaddr_t, boolean_t)); void vm_map_deallocate __P((vm_map_t)); -int vm_map_delete __P((vm_map_t, vm_offset_t, vm_offset_t)); +int vm_map_delete __P((vm_map_t, vaddr_t, vaddr_t)); vm_map_entry_t vm_map_entry_create __P((vm_map_t)); void vm_map_entry_delete __P((vm_map_t, vm_map_entry_t)); void vm_map_entry_dispose __P((vm_map_t, vm_map_entry_t)); void vm_map_entry_unwire __P((vm_map_t, vm_map_entry_t)); int vm_map_find __P((vm_map_t, vm_object_t, - vm_offset_t, vm_offset_t *, vm_size_t, boolean_t)); + vaddr_t, vaddr_t *, vsize_t, boolean_t)); int vm_map_findspace __P((vm_map_t, - vm_offset_t, vm_size_t, vm_offset_t *)); + vaddr_t, vsize_t, vaddr_t *)); int vm_map_inherit __P((vm_map_t, - vm_offset_t, vm_offset_t, vm_inherit_t)); + vaddr_t, vaddr_t, vm_inherit_t)); void vm_map_init __P((struct vm_map *, - vm_offset_t, vm_offset_t, boolean_t)); + vaddr_t, vaddr_t, boolean_t)); int vm_map_insert __P((vm_map_t, - vm_object_t, vm_offset_t, vm_offset_t, vm_offset_t)); -int vm_map_lookup __P((vm_map_t *, vm_offset_t, vm_prot_t, - vm_map_entry_t *, vm_object_t *, vm_offset_t *, vm_prot_t *, + vaddr_t, vaddr_t, vaddr_t, vaddr_t)); +int vm_map_lookup __P((vm_map_t *, vaddr_t, vm_prot_t, + vm_map_entry_t *, vm_object_t *, vaddr_t *, vm_prot_t *, boolean_t *, boolean_t *)); void vm_map_lookup_done __P((vm_map_t, vm_map_entry_t)); boolean_t vm_map_lookup_entry __P((vm_map_t, - vm_offset_t, vm_map_entry_t *)); + vaddr_t, vm_map_entry_t *)); int vm_map_pageable __P((vm_map_t, - vm_offset_t, vm_offset_t, boolean_t)); + vaddr_t, vaddr_t, boolean_t)); int vm_map_clean __P((vm_map_t, - vm_offset_t, vm_offset_t, boolean_t, boolean_t)); + vaddr_t, vaddr_t, boolean_t, boolean_t)); void vm_map_print __P((vm_map_t, boolean_t)); void _vm_map_print __P((vm_map_t, boolean_t, void (*)(const char *, ...))); int vm_map_protect __P((vm_map_t, - vm_offset_t, vm_offset_t, vm_prot_t, boolean_t)); + vaddr_t, vaddr_t, vm_prot_t, boolean_t)); void vm_map_reference __P((vm_map_t)); -int vm_map_remove __P((vm_map_t, vm_offset_t, vm_offset_t)); -void vm_map_simplify __P((vm_map_t, vm_offset_t)); +int vm_map_remove __P((vm_map_t, vaddr_t, vaddr_t)); +void vm_map_simplify __P((vm_map_t, vaddr_t)); void vm_map_simplify_entry __P((vm_map_t, vm_map_entry_t)); void vm_map_startup __P((void)); int vm_map_submap __P((vm_map_t, - vm_offset_t, vm_offset_t, vm_map_t)); + vaddr_t, vaddr_t, vm_map_t)); #endif #endif /* _VM_MAP_ */ diff --git a/sys/vm/vm_mmap.c b/sys/vm/vm_mmap.c index 06b0abf3fbf..05c2e8fe469 100644 --- a/sys/vm/vm_mmap.c +++ b/sys/vm/vm_mmap.c @@ -1,4 +1,4 @@ -/* $NetBSD: vm_mmap.c,v 1.59 1998/07/07 23:22:13 thorpej Exp $ */ +/* $NetBSD: vm_mmap.c,v 1.60 1998/08/13 02:11:07 eeh Exp $ */ /* * Copyright (c) 1988 University of Utah. @@ -135,16 +135,16 @@ sys_mmap(p, v, retval) register struct filedesc *fdp = p->p_fd; register struct file *fp; struct vnode *vp; - vm_offset_t addr; + vaddr_t addr; off_t pos; - vm_size_t size, pageoff; + vsize_t size, pageoff; vm_prot_t prot, maxprot; caddr_t handle; int fd, flags, error; - vm_offset_t vm_min_address = VM_MIN_ADDRESS; + vaddr_t vm_min_address = VM_MIN_ADDRESS; - addr = (vm_offset_t) SCARG(uap, addr); - size = (vm_size_t) SCARG(uap, len); + addr = (vaddr_t) SCARG(uap, addr); + size = (vsize_t) SCARG(uap, len); prot = SCARG(uap, prot) & VM_PROT_ALL; flags = SCARG(uap, flags); fd = SCARG(uap, fd); @@ -157,7 +157,7 @@ sys_mmap(p, v, retval) #endif /* make sure mapping fits into numeric range */ - if (pos + size > (vm_offset_t)-PAGE_SIZE) { + if (pos + size > (vaddr_t)-PAGE_SIZE) { #ifdef DEBUG printf("mmap: pos=%qx, size=%lx too big\n", pos, size); #endif @@ -173,7 +173,7 @@ sys_mmap(p, v, retval) /* Adjust size for rounding (on both ends). */ size += pageoff; /* low end... */ - size = (vm_size_t) round_page(size); /* hi end */ + size = (vsize_t) round_page(size); /* hi end */ /* Do not allow mappings that cause address wrap... */ if ((ssize_t)size < 0) @@ -316,14 +316,14 @@ sys___msync13(p, v, retval) syscallarg(size_t) len; syscallarg(int) flags; } */ *uap = v; - vm_offset_t addr; - vm_size_t size, pageoff; + vaddr_t addr; + vsize_t size, pageoff; vm_map_t map; int rv, flags; boolean_t syncio, invalidate; - addr = (vm_offset_t)SCARG(uap, addr); - size = (vm_size_t)SCARG(uap, len); + addr = (vaddr_t)SCARG(uap, addr); + size = (vsize_t)SCARG(uap, len); flags = SCARG(uap, flags); #ifdef DEBUG if (mmapdebug & (MDB_FOLLOW|MDB_SYNC)) @@ -346,7 +346,7 @@ sys___msync13(p, v, retval) pageoff = (addr & PAGE_MASK); addr -= pageoff; size += pageoff; - size = (vm_size_t) round_page(size); + size = (vsize_t) round_page(size); /* Disallow wrap-around. */ if (addr + size < addr) @@ -420,14 +420,14 @@ sys_munmap(p, v, retval) syscallarg(void *) addr; syscallarg(size_t) len; } */ *uap = v; - vm_offset_t addr; - vm_size_t size, pageoff; + vaddr_t addr; + vsize_t size, pageoff; vm_map_t map; - vm_offset_t vm_min_address = VM_MIN_ADDRESS; + vaddr_t vm_min_address = VM_MIN_ADDRESS; - addr = (vm_offset_t) SCARG(uap, addr); - size = (vm_size_t) SCARG(uap, len); + addr = (vaddr_t) SCARG(uap, addr); + size = (vsize_t) SCARG(uap, len); #ifdef DEBUG if (mmapdebug & MDB_FOLLOW) printf("munmap(%d): addr %lx len %lx\n", @@ -441,7 +441,7 @@ sys_munmap(p, v, retval) pageoff = (addr & PAGE_MASK); addr -= pageoff; size += pageoff; - size = (vm_size_t) round_page(size); + size = (vsize_t) round_page(size); if ((int)size < 0) return(EINVAL); if (size == 0) @@ -497,12 +497,12 @@ sys_mprotect(p, v, retval) syscallarg(int) len; syscallarg(int) prot; } */ *uap = v; - vm_offset_t addr; - vm_size_t size, pageoff; + vaddr_t addr; + vsize_t size, pageoff; register vm_prot_t prot; - addr = (vm_offset_t)SCARG(uap, addr); - size = (vm_size_t)SCARG(uap, len); + addr = (vaddr_t)SCARG(uap, addr); + size = (vsize_t)SCARG(uap, len); prot = SCARG(uap, prot) & VM_PROT_ALL; #ifdef DEBUG if (mmapdebug & MDB_FOLLOW) @@ -516,7 +516,7 @@ sys_mprotect(p, v, retval) pageoff = (addr & PAGE_MASK); addr -= pageoff; size += pageoff; - size = (vm_size_t) round_page(size); + size = (vsize_t) round_page(size); if ((int)size < 0) return(EINVAL); @@ -542,12 +542,12 @@ sys_minherit(p, v, retval) syscallarg(int) len; syscallarg(int) inherit; } */ *uap = v; - vm_offset_t addr; - vm_size_t size, pageoff; + vaddr_t addr; + vsize_t size, pageoff; register vm_inherit_t inherit; - addr = (vm_offset_t)SCARG(uap, addr); - size = (vm_size_t)SCARG(uap, len); + addr = (vaddr_t)SCARG(uap, addr); + size = (vsize_t)SCARG(uap, len); inherit = SCARG(uap, inherit); #ifdef DEBUG if (mmapdebug & MDB_FOLLOW) @@ -561,7 +561,7 @@ sys_minherit(p, v, retval) pageoff = (addr & PAGE_MASK); addr -= pageoff; size += pageoff; - size = (vm_size_t) round_page(size); + size = (vsize_t) round_page(size); if ((int)size < 0) return(EINVAL); @@ -623,13 +623,13 @@ sys_mlock(p, v, retval) syscallarg(const void *) addr; syscallarg(size_t) len; } */ *uap = v; - vm_offset_t addr; - vm_size_t size, pageoff; + vaddr_t addr; + vsize_t size, pageoff; int error; extern int vm_page_max_wired; - addr = (vm_offset_t)SCARG(uap, addr); - size = (vm_size_t)SCARG(uap, len); + addr = (vaddr_t)SCARG(uap, addr); + size = (vsize_t)SCARG(uap, len); #ifdef DEBUG if (mmapdebug & MDB_FOLLOW) printf("mlock(%d): addr %lx len %lx\n", @@ -642,7 +642,7 @@ sys_mlock(p, v, retval) pageoff = (addr & PAGE_MASK); addr -= pageoff; size += pageoff; - size = (vm_size_t) round_page(size); + size = (vsize_t) round_page(size); /* Disallow wrap-around. */ if (addr + (int)size < addr) @@ -673,12 +673,12 @@ sys_munlock(p, v, retval) syscallarg(const void *) addr; syscallarg(size_t) len; } */ *uap = v; - vm_offset_t addr; - vm_size_t size, pageoff; + vaddr_t addr; + vsize_t size, pageoff; int error; - addr = (vm_offset_t)SCARG(uap, addr); - size = (vm_size_t)SCARG(uap, len); + addr = (vaddr_t)SCARG(uap, addr); + size = (vsize_t)SCARG(uap, len); #ifdef DEBUG if (mmapdebug & MDB_FOLLOW) printf("munlock(%d): addr %lx len %lx\n", @@ -691,7 +691,7 @@ sys_munlock(p, v, retval) pageoff = (addr & PAGE_MASK); addr -= pageoff; size += pageoff; - size = (vm_size_t) round_page(size); + size = (vsize_t) round_page(size); /* Disallow wrap-around. */ if (addr + (int)size < addr) @@ -716,12 +716,12 @@ sys_munlock(p, v, retval) int vm_mmap(map, addr, size, prot, maxprot, flags, handle, foff) register vm_map_t map; - register vm_offset_t *addr; - register vm_size_t size; + register vaddr_t *addr; + register vsize_t size; vm_prot_t prot, maxprot; register int flags; caddr_t handle; /* XXX should be vp */ - vm_offset_t foff; + vaddr_t foff; { register vm_pager_t pager; boolean_t fitit; @@ -865,7 +865,7 @@ vm_mmap(map, addr, size, prot, maxprot, flags, handle, foff) */ else { vm_map_t tmap; - vm_offset_t off; + vaddr_t off; /* locate and allocate the target address space */ vm_map_lock(map); @@ -884,7 +884,7 @@ vm_mmap(map, addr, size, prot, maxprot, flags, handle, foff) PMAP_PREFER(foff, addr); #endif rv = vm_map_insert(map, NULL, - (vm_offset_t)0, + (vaddr_t)0, *addr, *addr+size); /* * vm_map_insert() may fail if @@ -896,7 +896,7 @@ vm_mmap(map, addr, size, prot, maxprot, flags, handle, foff) goto again; } } else { - rv = vm_map_insert(map, NULL, (vm_offset_t)0, + rv = vm_map_insert(map, NULL, (vaddr_t)0, *addr, *addr + size); #ifdef DEBUG @@ -907,7 +907,7 @@ vm_mmap(map, addr, size, prot, maxprot, flags, handle, foff) */ if (rv == KERN_SUCCESS && (mmapdebug & MDB_MAPIT)) { - vm_offset_t paddr = *addr; + paddr_t paddr = *addr; #ifdef PMAP_PREFER PMAP_PREFER(foff, &paddr); #endif @@ -961,7 +961,7 @@ vm_mmap(map, addr, size, prot, maxprot, flags, handle, foff) vm_map_t tmap; vm_map_entry_t tentry; vm_object_t tobject; - vm_offset_t toffset; + vaddr_t toffset; vm_prot_t tprot; boolean_t twired, tsu; diff --git a/sys/vm/vm_object.c b/sys/vm/vm_object.c index 3330398c838..a920d4c749f 100644 --- a/sys/vm/vm_object.c +++ b/sys/vm/vm_object.c @@ -1,4 +1,4 @@ -/* $NetBSD: vm_object.c,v 1.53 1998/03/01 02:24:01 fvdl Exp $ */ +/* $NetBSD: vm_object.c,v 1.54 1998/08/13 02:11:08 eeh Exp $ */ /*- * Copyright (c) 1997 Charles M. Hannum. All rights reserved. @@ -156,11 +156,11 @@ boolean_t vm_object_collapse_allowed = TRUE; int vmdebug = VMDEBUG; #endif -static void _vm_object_allocate __P((vm_size_t, vm_object_t)); +static void _vm_object_allocate __P((vsize_t, vm_object_t)); int vm_object_bypass __P((vm_object_t)); int vm_object_overlay __P((vm_object_t)); int vm_object_remove_from_pager - __P((vm_object_t, vm_offset_t, vm_offset_t)); + __P((vm_object_t, vaddr_t, vaddr_t)); void vm_object_set_shadow __P((vm_object_t, vm_object_t)); void vm_object_terminate __P((vm_object_t)); @@ -171,7 +171,7 @@ void vm_object_terminate __P((vm_object_t)); */ void vm_object_init(size) - vm_size_t size; + vsize_t size; { register int i; @@ -198,7 +198,7 @@ vm_object_init(size) */ vm_object_t vm_object_allocate(size) - vm_size_t size; + vsize_t size; { register vm_object_t result; @@ -212,7 +212,7 @@ vm_object_allocate(size) static void _vm_object_allocate(size, object) - vm_size_t size; + vsize_t size; register vm_object_t object; { TAILQ_INIT(&object->memq); @@ -231,7 +231,7 @@ _vm_object_allocate(size, object) object->pager = NULL; object->paging_offset = 0; object->shadow = NULL; - object->shadow_offset = (vm_offset_t) 0; + object->shadow_offset = (vaddr_t) 0; LIST_INIT(&object->shadowers); simple_lock(&vm_object_list_lock); @@ -461,8 +461,8 @@ vm_object_terminate(object) boolean_t vm_object_page_clean(object, start, end, syncio, de_queue) register vm_object_t object; - register vm_offset_t start; - register vm_offset_t end; + register vaddr_t start; + register vaddr_t end; boolean_t syncio; boolean_t de_queue; { @@ -486,7 +486,7 @@ vm_object_page_clean(object, start, end, syncio, de_queue) vm_object_unlock(object); pager = vm_pager_allocate(PG_DFLT, (caddr_t)0, object->size, VM_PROT_ALL, - (vm_offset_t)0); + (vaddr_t)0); if (pager) vm_object_setpager(object, pager, 0, FALSE); vm_object_lock(object); @@ -636,8 +636,8 @@ vm_object_cache_trim() void vm_object_pmap_copy(object, start, end) register vm_object_t object; - register vm_offset_t start; - register vm_offset_t end; + register vaddr_t start; + register vaddr_t end; { register vm_page_t p; @@ -665,8 +665,8 @@ vm_object_pmap_copy(object, start, end) void vm_object_pmap_remove(object, start, end) register vm_object_t object; - register vm_offset_t start; - register vm_offset_t end; + register vaddr_t start; + register vaddr_t end; { register vm_page_t p; @@ -695,15 +695,15 @@ void vm_object_copy(src_object, src_offset, size, dst_object, dst_offset, src_needs_copy) register vm_object_t src_object; - vm_offset_t src_offset; - vm_size_t size; + vaddr_t src_offset; + vsize_t size; vm_object_t *dst_object; /* OUT */ - vm_offset_t *dst_offset; /* OUT */ + vaddr_t *dst_offset; /* OUT */ boolean_t *src_needs_copy; /* OUT */ { register vm_object_t new_copy; register vm_object_t old_copy; - vm_offset_t new_start, new_end; + vaddr_t new_start, new_end; register vm_page_t p; @@ -832,7 +832,7 @@ Retry2: * Consistency check */ if (old_copy->shadow != src_object || - old_copy->shadow_offset != (vm_offset_t) 0) + old_copy->shadow_offset != (vaddr_t) 0) panic("vm_object_copy: copy/shadow inconsistency"); /* @@ -845,8 +845,8 @@ Retry2: vm_object_unlock(old_copy); } - new_start = (vm_offset_t)0; - new_end = (vm_offset_t)new_copy->size; + new_start = (vaddr_t)0; + new_end = (vaddr_t)new_copy->size; /* * Point the new copy at the existing object. @@ -886,8 +886,8 @@ Retry2: void vm_object_shadow(object, offset, length) vm_object_t *object; /* IN/OUT */ - vm_offset_t *offset; /* IN/OUT */ - vm_size_t length; + vaddr_t *offset; /* IN/OUT */ + vsize_t length; { register vm_object_t source; register vm_object_t result; @@ -935,7 +935,7 @@ void vm_object_setpager(object, pager, paging_offset, read_only) vm_object_t object; vm_pager_t pager; - vm_offset_t paging_offset; + vaddr_t paging_offset; boolean_t read_only; { #ifdef lint @@ -1094,7 +1094,7 @@ vm_object_cache_clear() int vm_object_remove_from_pager(object, from, to) vm_object_t object; - vm_offset_t from, to; + vaddr_t from, to; { vm_pager_t pager = object->pager; int cnt = 0; @@ -1132,8 +1132,8 @@ vm_object_overlay(object) vm_object_t object; { vm_object_t backing_object = object->shadow; - vm_offset_t backing_offset = object->shadow_offset; - vm_offset_t new_offset, paged_offset; + vaddr_t backing_offset = object->shadow_offset; + vaddr_t new_offset, paged_offset; vm_page_t backing_page, next_page, page; int rv; @@ -1441,8 +1441,8 @@ vm_object_bypass(object) vm_object_t object; { vm_object_t backing_object = object->shadow; - vm_offset_t backing_offset = object->shadow_offset; - vm_offset_t new_offset; + vaddr_t backing_offset = object->shadow_offset; + vaddr_t new_offset; vm_page_t backing_page, page; /* @@ -1626,8 +1626,8 @@ vm_object_collapse(object) void vm_object_page_remove(object, start, end) register vm_object_t object; - register vm_offset_t start; - register vm_offset_t end; + register vaddr_t start; + register vaddr_t end; { register vm_page_t p, next; @@ -1672,10 +1672,10 @@ vm_object_coalesce(prev_object, next_object, prev_offset, next_offset, prev_size, next_size) register vm_object_t prev_object; vm_object_t next_object; -vm_offset_t prev_offset, next_offset; -vm_size_t prev_size, next_size; +vaddr_t prev_offset, next_offset; +vsize_t prev_size, next_size; { - vm_size_t newsize; + vsize_t newsize; #ifdef lint next_offset++; diff --git a/sys/vm/vm_object.h b/sys/vm/vm_object.h index da972bec2c9..96072d935df 100644 --- a/sys/vm/vm_object.h +++ b/sys/vm/vm_object.h @@ -1,4 +1,4 @@ -/* $NetBSD: vm_object.h,v 1.23 1998/03/01 02:24:01 fvdl Exp $ */ +/* $NetBSD: vm_object.h,v 1.24 1998/08/13 02:11:08 eeh Exp $ */ /* * Copyright (c) 1991, 1993 @@ -88,15 +88,15 @@ struct vm_object { don't collapse or destroy */ simple_lock_data_t Lock; /* Synchronization */ int ref_count; /* How many refs?? */ - vm_size_t size; /* Object size */ + vsize_t size; /* Object size */ int resident_page_count; /* number of resident pages */ struct vm_object *copy; /* Object that holds copies of my changed pages */ vm_pager_t pager; /* Where to get data */ - vm_offset_t paging_offset; /* Offset into paging space */ + vaddr_t paging_offset; /* Offset into paging space */ struct vm_object *shadow; /* My shadow */ - vm_offset_t shadow_offset; /* Offset in shadow */ + vaddr_t shadow_offset; /* Offset in shadow */ TAILQ_ENTRY(vm_object) cached_list; /* for persistence */ LIST_HEAD(, vm_object) shadowers; /* set of shadowers */ LIST_ENTRY(vm_object) shadowers_list; /* link to next shadower of @@ -199,37 +199,37 @@ vm_object_t kmem_object; } while (0) #ifdef _KERNEL -vm_object_t vm_object_allocate __P((vm_size_t)); +vm_object_t vm_object_allocate __P((vsize_t)); void vm_object_cache_clear __P((void)); void vm_object_cache_trim __P((void)); boolean_t vm_object_coalesce __P((vm_object_t, vm_object_t, - vm_offset_t, vm_offset_t, vm_offset_t, vm_size_t)); + vaddr_t, vaddr_t, vaddr_t, vsize_t)); void vm_object_collapse __P((vm_object_t)); -void vm_object_copy __P((vm_object_t, vm_offset_t, vm_size_t, - vm_object_t *, vm_offset_t *, boolean_t *)); +void vm_object_copy __P((vm_object_t, vaddr_t, vsize_t, + vm_object_t *, vaddr_t *, boolean_t *)); void vm_object_deactivate_pages __P((vm_object_t)); void vm_object_deallocate __P((vm_object_t)); void vm_object_enter __P((vm_object_t, vm_pager_t)); -void vm_object_init __P((vm_size_t)); +void vm_object_init __P((vsize_t)); vm_object_t vm_object_lookup __P((vm_pager_t)); boolean_t vm_object_page_clean __P((vm_object_t, - vm_offset_t, vm_offset_t, boolean_t, boolean_t)); + vaddr_t, vaddr_t, boolean_t, boolean_t)); void vm_object_page_remove __P((vm_object_t, - vm_offset_t, vm_offset_t)); + vaddr_t, vaddr_t)); void vm_object_pmap_copy __P((vm_object_t, - vm_offset_t, vm_offset_t)); + vaddr_t, vaddr_t)); void vm_object_pmap_remove __P((vm_object_t, - vm_offset_t, vm_offset_t)); + vaddr_t, vaddr_t)); void vm_object_prefer __P((vm_object_t, - vm_offset_t, vm_offset_t *)); + vaddr_t, vaddr_t *)); void vm_object_print __P((vm_object_t, boolean_t)); void _vm_object_print __P((vm_object_t, boolean_t, void (*)(const char *, ...))); void vm_object_reference __P((vm_object_t)); void vm_object_remove __P((vm_pager_t)); void vm_object_setpager __P((vm_object_t, - vm_pager_t, vm_offset_t, boolean_t)); + vm_pager_t, vaddr_t, boolean_t)); void vm_object_shadow __P((vm_object_t *, - vm_offset_t *, vm_size_t)); + vaddr_t *, vsize_t)); #endif #endif /* _VM_OBJECT_ */ diff --git a/sys/vm/vm_page.c b/sys/vm/vm_page.c index f8128426bfd..1af48ee616d 100644 --- a/sys/vm/vm_page.c +++ b/sys/vm/vm_page.c @@ -1,4 +1,4 @@ -/* $NetBSD: vm_page.c,v 1.46 1998/08/09 21:58:53 perry Exp $ */ +/* $NetBSD: vm_page.c,v 1.47 1998/08/13 02:11:08 eeh Exp $ */ #define VM_PAGE_ALLOC_MEMORY_STATS @@ -144,10 +144,10 @@ static int vm_page_lost_count = 0; /* XXXCDC: DEBUG DEBUG */ * The implementation of vm_bootstrap_steal_memory here also uses * them internally. */ -static vm_offset_t virtual_space_start; -static vm_offset_t virtual_space_end; +static vaddr_t virtual_space_start; +static vaddr_t virtual_space_end; -vm_offset_t vm_bootstrap_steal_memory __P((vm_size_t)); +vaddr_t vm_bootstrap_steal_memory __P((vsize_t)); #endif /* @@ -183,11 +183,11 @@ int vm_page_count; /* OLD NCONTIG CODE: NUKE NUKE NUKE ONCE CONVERTED */ long first_page; long last_page; -vm_offset_t first_phys_addr; -vm_offset_t last_phys_addr; +paddr_t first_phys_addr; +paddr_t last_phys_addr; int vm_page_count; #endif -vm_size_t page_mask; +vsize_t page_mask; int page_shift; #if defined(MACHINE_NEW_NONCONTIG) @@ -196,7 +196,7 @@ int page_shift; */ #if !defined(PMAP_STEAL_MEMORY) -static boolean_t vm_page_physget __P((vm_offset_t *)); +static boolean_t vm_page_physget __P((paddr_t *)); #endif #endif @@ -247,9 +247,9 @@ vm_set_page_size() */ void vm_page_bootstrap(startp, endp) - vm_offset_t *startp, *endp; /* OUT, OUT */ + vaddr_t *startp, *endp; /* OUT, OUT */ { - vm_offset_t paddr; + paddr_t paddr; vm_page_t pagearray; int lcv, freepages, pagecount, n, i; @@ -356,12 +356,12 @@ vm_page_bootstrap(startp, endp) /* * vm_bootstrap_steal_memory: steal memory from physmem for bootstrapping */ -vm_offset_t +vaddr_t vm_bootstrap_steal_memory(size) - vm_size_t size; + vsize_t size; { #if defined(PMAP_STEAL_MEMORY) - vm_offset_t addr; + vaddr_t addr; /* * Defer this to machine-dependent code; we may need to allocate @@ -376,7 +376,7 @@ vm_bootstrap_steal_memory(size) return (addr); #else /* ! PMAP_STEAL_MEMORY */ - vm_offset_t addr, vaddr, paddr; + vaddr_t addr, vaddr, paddr; /* round to page size */ size = round_page(size); @@ -428,7 +428,7 @@ vm_bootstrap_steal_memory(size) */ static boolean_t vm_page_physget(paddrp) - vm_offset_t *paddrp; + paddr_t *paddrp; { int lcv, x; @@ -524,7 +524,7 @@ vm_page_physget(paddrp) */ void vm_page_physload(start, end, avail_start, avail_end) - vm_offset_t start, end, avail_start, avail_end; + vaddr_t start, end, avail_start, avail_end; { struct vm_page *pgs; struct vm_physseg *ps; @@ -564,7 +564,7 @@ vm_page_physload(start, end, avail_start, avail_end) panic("vm_page_physload: tried to add RAM after vm_mem_init"); #else /* XXXCDC: need some sort of lockout for this case */ - vm_offset_t paddr; + paddr_t paddr; /* # of pages */ npages = end - start; @@ -789,15 +789,15 @@ vm_page_physdump() */ void vm_page_bootstrap(startp, endp) - vm_offset_t *startp; - vm_offset_t *endp; + vaddr_t *startp; + vaddr_t *endp; { unsigned int i, freepages; register struct pglist *bucket; - vm_offset_t paddr; + paddr_t paddr; - extern vm_offset_t kentry_data; - extern vm_size_t kentry_data_size; + extern vaddr_t kentry_data; + extern vsize_t kentry_data_size; /* @@ -955,11 +955,11 @@ vm_page_bootstrap(startp, endp) simple_lock_init(&vm_pages_needed_lock); } -vm_offset_t +vaddr_t vm_bootstrap_steal_memory(size) - vm_size_t size; + vsize_t size; { - vm_offset_t addr, vaddr, paddr; + vaddr_t addr, vaddr, paddr; /* * We round to page size. @@ -1027,16 +1027,16 @@ vm_bootstrap_steal_memory(size) */ void vm_page_startup(start, end) - vm_offset_t *start; - vm_offset_t *end; + vaddr_t *start; + vaddr_t *end; { register vm_page_t m; register struct pglist *bucket; int npages; int i; - vm_offset_t pa; - extern vm_offset_t kentry_data; - extern vm_size_t kentry_data_size; + paddr_t pa; + extern vaddr_t kentry_data; + extern vsize_t kentry_data_size; /* @@ -1103,7 +1103,7 @@ vm_page_startup(start, end) */ kentry_data_size = round_page(MAX_KMAP*sizeof(struct vm_map) + MAX_KMAPENT*sizeof(struct vm_map_entry)); - kentry_data = (vm_offset_t) pmap_bootstrap_alloc(kentry_data_size); + kentry_data = (vaddr_t) pmap_bootstrap_alloc(kentry_data_size); /* * Compute the number of pages of memory that will be @@ -1171,7 +1171,7 @@ void vm_page_insert(mem, object, offset) register vm_page_t mem; register vm_object_t object; - register vm_offset_t offset; + register vaddr_t offset; { register struct pglist *bucket; int spl; @@ -1278,7 +1278,7 @@ vm_page_remove(mem) vm_page_t vm_page_lookup(object, offset) register vm_object_t object; - register vm_offset_t offset; + register vaddr_t offset; { register vm_page_t mem; register struct pglist *bucket; @@ -1318,7 +1318,7 @@ void vm_page_rename(mem, new_object, new_offset) register vm_page_t mem; register vm_object_t new_object; - vm_offset_t new_offset; + vaddr_t new_offset; { if (mem->object == new_object) @@ -1343,7 +1343,7 @@ vm_page_rename(mem, new_object, new_offset) vm_page_t vm_page_alloc(object, offset) vm_object_t object; - vm_offset_t offset; + vaddr_t offset; { register vm_page_t mem; int spl; @@ -1708,12 +1708,12 @@ u_long vm_page_alloc_memory_npages; int vm_page_alloc_memory(size, low, high, alignment, boundary, rlist, nsegs, waitok) - vm_size_t size; - vm_offset_t low, high, alignment, boundary; + vsize_t size; + vaddr_t low, high, alignment, boundary; struct pglist *rlist; int nsegs, waitok; { - vm_offset_t try, idxpa, lastidxpa; + paddr_t try, idxpa, lastidxpa; #if defined(MACHINE_NEW_NONCONTIG) int psi; struct vm_page *vm_page_array; diff --git a/sys/vm/vm_page.h b/sys/vm/vm_page.h index d3b38bd391a..a90e7b1b086 100644 --- a/sys/vm/vm_page.h +++ b/sys/vm/vm_page.h @@ -1,4 +1,4 @@ -/* $NetBSD: vm_page.h,v 1.27 1998/07/08 04:19:59 thorpej Exp $ */ +/* $NetBSD: vm_page.h,v 1.28 1998/08/13 02:11:08 eeh Exp $ */ /* * Copyright (c) 1991, 1993 @@ -127,7 +127,7 @@ struct vm_page { #if !defined(UVM) /* uvm uses obju */ vm_object_t object; /* which object am I in (O,P)*/ #endif - vm_offset_t offset; /* offset into object (O,P) */ + vaddr_t offset; /* offset into object (O,P) */ #if defined(UVM) struct uvm_object *uobject; /* object (O,P) */ @@ -144,7 +144,7 @@ struct vm_page { u_short flags; /* see below */ #endif - vm_offset_t phys_addr; /* physical address of page */ + paddr_t phys_addr; /* physical address of page */ #if defined(UVM) && defined(UVM_PAGE_TRKOWN) /* debugging fields to track page ownership */ pid_t owner; /* proc that set PG_BUSY */ @@ -239,10 +239,10 @@ struct vm_page { * vm_physmemseg: describes one segment of physical memory */ struct vm_physseg { - vm_offset_t start; /* PF# of first page in segment */ - vm_offset_t end; /* (PF# of last page in segment) + 1 */ - vm_offset_t avail_start; /* PF# of first free page in segment */ - vm_offset_t avail_end; /* (PF# of last free page in segment) +1 */ + vaddr_t start; /* PF# of first page in segment */ + vaddr_t end; /* (PF# of last page in segment) + 1 */ + vaddr_t avail_start; /* PF# of first free page in segment */ + vaddr_t avail_end; /* (PF# of last free page in segment) +1 */ #if defined(UVM) int free_list; /* which free list they belong on */ #endif @@ -310,9 +310,9 @@ long last_page; /* last physical page number */ /* ... represented in vm_page_array */ /* [INCLUSIVE] */ extern -vm_offset_t first_phys_addr; /* physical address for first_page */ +paddr_t first_phys_addr; /* physical address for first_page */ extern -vm_offset_t last_phys_addr; /* physical address for last_page */ +paddr_t last_phys_addr; /* physical address for last_page */ extern vm_page_t vm_page_array; /* First resident page in table */ @@ -327,35 +327,35 @@ vm_page_t vm_page_array; /* First resident page in table */ */ #if defined(MACHINE_NEW_NONCONTIG) -static struct vm_page *PHYS_TO_VM_PAGE __P((vm_offset_t)); -static int vm_physseg_find __P((vm_offset_t, int *)); +static struct vm_page *PHYS_TO_VM_PAGE __P((paddr_t)); +static int vm_physseg_find __P((paddr_t, int *)); #endif void vm_page_activate __P((vm_page_t)); -vm_page_t vm_page_alloc __P((vm_object_t, vm_offset_t)); +vm_page_t vm_page_alloc __P((vm_object_t, vaddr_t)); vm_page_t vm_page_alloc1 __P((void)); -int vm_page_alloc_memory __P((vm_size_t size, vm_offset_t low, - vm_offset_t high, vm_offset_t alignment, vm_offset_t boundary, +int vm_page_alloc_memory __P((psize_t size, paddr_t low, + paddr_t high, paddr_t alignment, paddr_t boundary, struct pglist *rlist, int nsegs, int waitok)); void vm_page_free_memory __P((struct pglist *list)); #if defined(MACHINE_NONCONTIG) || defined(MACHINE_NEW_NONCONTIG) -void vm_page_bootstrap __P((vm_offset_t *, vm_offset_t *)); +void vm_page_bootstrap __P((paddr_t *, paddr_t *)); #endif void vm_page_copy __P((vm_page_t, vm_page_t)); void vm_page_deactivate __P((vm_page_t)); void vm_page_free __P((vm_page_t)); void vm_page_free1 __P((vm_page_t)); -void vm_page_insert __P((vm_page_t, vm_object_t, vm_offset_t)); -vm_page_t vm_page_lookup __P((vm_object_t, vm_offset_t)); +void vm_page_insert __P((vm_page_t, vm_object_t, vaddr_t)); +vm_page_t vm_page_lookup __P((vm_object_t, vaddr_t)); #if defined(MACHINE_NEW_NONCONTIG) -void vm_page_physload __P((vm_offset_t, vm_offset_t, - vm_offset_t, vm_offset_t)); +void vm_page_physload __P((paddr_t, paddr_t, + paddr_t, paddr_t)); void vm_page_physrehash __P((void)); #endif void vm_page_remove __P((vm_page_t)); -void vm_page_rename __P((vm_page_t, vm_object_t, vm_offset_t)); +void vm_page_rename __P((vm_page_t, vm_object_t, vaddr_t)); #if !defined(MACHINE_NONCONTIG) && !defined(MACHINE_NEW_NONCONTIG) -void vm_page_startup __P((vm_offset_t *, vm_offset_t *)); +void vm_page_startup __P((paddr_t *, paddr_t *)); #endif void vm_page_unwire __P((vm_page_t)); void vm_page_wire __P((vm_page_t)); @@ -377,7 +377,7 @@ boolean_t vm_page_zero_fill __P((vm_page_t)); */ static __inline int vm_physseg_find(pframe, offp) - vm_offset_t pframe; + paddr_t pframe; int *offp; { #if VM_PHYSSEG_MAX == 1 @@ -459,9 +459,9 @@ vm_physseg_find(pframe, offp) */ static __inline struct vm_page * PHYS_TO_VM_PAGE(pa) - vm_offset_t pa; + paddr_t pa; { - vm_offset_t pf = atop(pa); + paddr_t pf = atop(pa); int off; int psi; diff --git a/sys/vm/vm_pageout.c b/sys/vm/vm_pageout.c index 22ee08a501b..8c48bbd63c3 100644 --- a/sys/vm/vm_pageout.c +++ b/sys/vm/vm_pageout.c @@ -1,4 +1,4 @@ -/* $NetBSD: vm_pageout.c,v 1.29 1998/03/01 02:24:02 fvdl Exp $ */ +/* $NetBSD: vm_pageout.c,v 1.30 1998/08/13 02:11:08 eeh Exp $ */ /* * Copyright (c) 1991, 1993 @@ -320,7 +320,7 @@ vm_pageout_page(m, object) */ if ((pager = object->pager) == NULL) { pager = vm_pager_allocate(PG_DFLT, (caddr_t)0, object->size, - VM_PROT_ALL, (vm_offset_t)0); + VM_PROT_ALL, (vaddr_t)0); if (pager != NULL) vm_object_setpager(object, pager, 0, FALSE); } @@ -408,7 +408,7 @@ vm_pageout_cluster(m, object) vm_page_t m; vm_object_t object; { - vm_offset_t offset, loff, hoff; + vaddr_t offset, loff, hoff; vm_page_t plist[MAXPOCLUSTER], *plistp, p; int postatus, ix, count; diff --git a/sys/vm/vm_pager.c b/sys/vm/vm_pager.c index f4de2c82366..69cea34fcd2 100644 --- a/sys/vm/vm_pager.c +++ b/sys/vm/vm_pager.c @@ -1,4 +1,4 @@ -/* $NetBSD: vm_pager.c,v 1.26 1998/03/01 02:24:02 fvdl Exp $ */ +/* $NetBSD: vm_pager.c,v 1.27 1998/08/13 02:11:09 eeh Exp $ */ /* * Copyright (c) 1991, 1993 @@ -158,7 +158,7 @@ vm_pager_t vm_pager_allocate(type, handle, size, prot, off) int type; caddr_t handle; - vm_size_t size; + vsize_t size; vm_prot_t prot; vm_offset_t off; { @@ -315,7 +315,7 @@ vm_pager_map_pages(mlist, npages, canwait) boolean_t canwait; { vm_offset_t kva, va; - vm_size_t size; + vsize_t size; vm_page_t m; /* @@ -360,7 +360,7 @@ vm_pager_unmap_pages(kva, npages) vm_offset_t kva; int npages; { - vm_size_t size = npages * PAGE_SIZE; + vsize_t size = npages * PAGE_SIZE; #ifdef DEBUG vm_offset_t va; diff --git a/sys/vm/vm_pager.h b/sys/vm/vm_pager.h index 0401e74d9e2..4ce009060c2 100644 --- a/sys/vm/vm_pager.h +++ b/sys/vm/vm_pager.h @@ -1,4 +1,4 @@ -/* $NetBSD: vm_pager.h,v 1.13 1998/03/01 02:24:02 fvdl Exp $ */ +/* $NetBSD: vm_pager.h,v 1.14 1998/08/13 02:11:09 eeh Exp $ */ /* * Copyright (c) 1990 University of Utah. @@ -73,7 +73,7 @@ struct pagerops { void (*pgo_init) /* Initialize pager. */ __P((void)); vm_pager_t (*pgo_alloc) /* Allocate pager. */ - __P((caddr_t, vm_size_t, vm_prot_t, vm_offset_t)); + __P((caddr_t, vsize_t, vm_prot_t, vaddr_t)); void (*pgo_dealloc) /* Disassociate. */ __P((vm_pager_t)); int (*pgo_getpages) /* Get (read) pages. */ @@ -81,10 +81,10 @@ struct pagerops { int (*pgo_putpages) /* Put (write) pages. */ __P((vm_pager_t, vm_page_t *, int, boolean_t)); boolean_t (*pgo_haspage) /* Does pager have page? */ - __P((vm_pager_t, vm_offset_t)); + __P((vm_pager_t, vaddr_t)); void (*pgo_cluster) /* Return range of cluster. */ - __P((vm_pager_t, vm_offset_t, - vm_offset_t *, vm_offset_t *)); + __P((vm_pager_t, vaddr_t, + vaddr_t *, vaddr_t *)); /* * The following are an extension to the original Mach pager * interface first seen in BSD/OS 2.1 (at least as far as I am @@ -95,9 +95,9 @@ struct pagerops { * -- Niklas Hallqvist (niklas@appli.se). */ int (*pgo_remove) /* Don't manage range anymore */ - __P((vm_pager_t, vm_offset_t, vm_offset_t)); - vm_offset_t (*pgo_next) /* Find next page in pager. */ - __P((vm_pager_t, vm_offset_t)); + __P((vm_pager_t, vaddr_t, vaddr_t)); + vaddr_t (*pgo_next) /* Find next page in pager. */ + __P((vm_pager_t, vaddr_t)); int (*pgo_count) /* How many pages in pager? */ __P((vm_pager_t)); }; @@ -127,29 +127,29 @@ struct pagerops { extern struct pagerops *dfltpagerops; vm_pager_t vm_pager_allocate - __P((int, caddr_t, vm_size_t, vm_prot_t, vm_offset_t)); -vm_page_t vm_pager_atop __P((vm_offset_t)); + __P((int, caddr_t, vsize_t, vm_prot_t, vaddr_t)); +vm_page_t vm_pager_atop __P((vaddr_t)); void vm_pager_cluster - __P((vm_pager_t, vm_offset_t, - vm_offset_t *, vm_offset_t *)); + __P((vm_pager_t, vaddr_t, + vaddr_t *, vaddr_t *)); void vm_pager_clusternull - __P((vm_pager_t, vm_offset_t, - vm_offset_t *, vm_offset_t *)); + __P((vm_pager_t, vaddr_t, + vaddr_t *, vaddr_t *)); void vm_pager_deallocate __P((vm_pager_t)); int vm_pager_remove - __P((vm_pager_t, vm_offset_t, vm_offset_t)); + __P((vm_pager_t, vaddr_t, vaddr_t)); int vm_pager_count __P((vm_pager_t)); -vm_offset_t vm_pager_next __P((vm_pager_t, vm_offset_t)); +vaddr_t vm_pager_next __P((vm_pager_t, vaddr_t)); int vm_pager_get_pages __P((vm_pager_t, vm_page_t *, int, boolean_t)); -boolean_t vm_pager_has_page __P((vm_pager_t, vm_offset_t)); +boolean_t vm_pager_has_page __P((vm_pager_t, vaddr_t)); void vm_pager_init __P((void)); vm_pager_t vm_pager_lookup __P((struct pagerlst *, caddr_t)); -vm_offset_t vm_pager_map_pages __P((vm_page_t *, int, boolean_t)); +vaddr_t vm_pager_map_pages __P((vm_page_t *, int, boolean_t)); int vm_pager_put_pages __P((vm_pager_t, vm_page_t *, int, boolean_t)); void vm_pager_sync __P((void)); -void vm_pager_unmap_pages __P((vm_offset_t, int)); +void vm_pager_unmap_pages __P((vaddr_t, int)); #define vm_pager_cancluster(p, b) ((p)->pg_flags & (b)) diff --git a/sys/vm/vm_param.h b/sys/vm/vm_param.h index 8a975a3e5c9..be2343f15bd 100644 --- a/sys/vm/vm_param.h +++ b/sys/vm/vm_param.h @@ -1,4 +1,4 @@ -/* $NetBSD: vm_param.h,v 1.17 1998/03/25 00:45:51 thorpej Exp $ */ +/* $NetBSD: vm_param.h,v 1.18 1998/08/13 02:11:09 eeh Exp $ */ /* * Copyright (c) 1991, 1993 @@ -108,7 +108,7 @@ typedef int boolean_t; #endif /* _KERNEL */ #if defined(_KERNEL) && !defined(UVM) -extern vm_size_t page_mask; +extern vsize_t page_mask; extern int page_shift; #endif @@ -162,30 +162,30 @@ extern int page_shift; */ #ifdef _KERNEL #define atop(x) (((unsigned long)(x)) >> PAGE_SHIFT) -#define ptoa(x) ((vm_offset_t)((x) << PAGE_SHIFT)) +#define ptoa(x) ((vaddr_t)((x) << PAGE_SHIFT)) /* * Round off or truncate to the nearest page. These will work * for either addresses or counts (i.e., 1 byte rounds to 1 page). */ #define round_page(x) \ - ((vm_offset_t)((((vm_offset_t)(x)) + PAGE_MASK) & ~PAGE_MASK)) + ((vaddr_t)((((vaddr_t)(x)) + PAGE_MASK) & ~PAGE_MASK)) #define trunc_page(x) \ - ((vm_offset_t)(((vm_offset_t)(x)) & ~PAGE_MASK)) + ((vaddr_t)(((vaddr_t)(x)) & ~PAGE_MASK)) #define num_pages(x) \ - ((vm_offset_t)((((vm_offset_t)(x)) + PAGE_MASK) >> PAGE_SHIFT)) + ((vaddr_t)((((vaddr_t)(x)) + PAGE_MASK) >> PAGE_SHIFT)) -extern vm_size_t mem_size; /* size of physical memory (bytes) */ -extern vm_offset_t first_addr; /* first physical page */ -extern vm_offset_t last_addr; /* last physical page */ +extern psize_t mem_size; /* size of physical memory (bytes) */ +extern paddr_t first_addr; /* first physical page */ +extern paddr_t last_addr; /* last physical page */ #else /* out-of-kernel versions of round_page and trunc_page */ #define round_page(x) \ - ((((vm_offset_t)(x) + (vm_page_size - 1)) / vm_page_size) * \ + ((((vaddr_t)(x) + (vm_page_size - 1)) / vm_page_size) * \ vm_page_size) #define trunc_page(x) \ - ((((vm_offset_t)(x)) / vm_page_size) * vm_page_size) + ((((vaddr_t)(x)) / vm_page_size) * vm_page_size) #endif /* _KERNEL */ #endif /* ASSEMBLER */ diff --git a/sys/vm/vm_unix.c b/sys/vm/vm_unix.c index fcfc69a1329..f026c88fd40 100644 --- a/sys/vm/vm_unix.c +++ b/sys/vm/vm_unix.c @@ -1,4 +1,4 @@ -/* $NetBSD: vm_unix.c,v 1.22 1998/07/28 18:25:15 thorpej Exp $ */ +/* $NetBSD: vm_unix.c,v 1.23 1998/08/13 02:11:09 eeh Exp $ */ /* * Copyright (c) 1988 University of Utah. @@ -68,11 +68,11 @@ sys_obreak(p, v, retval) syscallarg(char *) nsize; } */ *uap = v; register struct vmspace *vm = p->p_vmspace; - vm_offset_t new, old; + vaddr_t new, old; int rv; register int diff; - old = (vm_offset_t)vm->vm_daddr; + old = (vaddr_t)vm->vm_daddr; new = round_page(SCARG(uap, nsize)); if ((int)(new - old) > p->p_rlimit[RLIMIT_DATA].rlim_cur) return(ENOMEM); @@ -104,7 +104,7 @@ sys_obreak(p, v, retval) int grow(p, sp) struct proc *p; - vm_offset_t sp; + vaddr_t sp; { register struct vmspace *vm = p->p_vmspace; register int si; @@ -112,7 +112,7 @@ grow(p, sp) /* * For user defined stacks (from sendsig). */ - if (sp < (vm_offset_t)vm->vm_maxsaddr) + if (sp < (vaddr_t)vm->vm_maxsaddr) return (0); /* * For common case of already allocated (from trap). @@ -155,7 +155,7 @@ vm_coredump(p, vp, cred, chdr) register struct vmspace *vm = p->p_vmspace; register vm_map_t map = &vm->vm_map; register vm_map_entry_t entry; - vm_offset_t start, end; + vaddr_t start, end; struct coreseg cseg; off_t offset; int flag, error = 0; @@ -209,7 +209,7 @@ vm_coredump(p, vp, cred, chdr) if (end > VM_MAXUSER_ADDRESS) end = VM_MAXUSER_ADDRESS; - if (start >= (vm_offset_t)vm->vm_maxsaddr) { + if (start >= (vaddr_t)vm->vm_maxsaddr) { flag = CORE_STACK; start = trunc_page(USRSTACK - ctob(vm->vm_ssize)); if (start >= end) diff --git a/sys/vm/vm_user.c b/sys/vm/vm_user.c index 6fd0e514e00..b5fe964b2c4 100644 --- a/sys/vm/vm_user.c +++ b/sys/vm/vm_user.c @@ -1,4 +1,4 @@ -/* $NetBSD: vm_user.c,v 1.13 1996/02/28 22:39:16 gwr Exp $ */ +/* $NetBSD: vm_user.c,v 1.14 1998/08/13 02:11:09 eeh Exp $ */ /* * Copyright (c) 1991, 1993 @@ -83,8 +83,8 @@ simple_lock_data_t vm_alloc_lock; /* XXX */ */ struct svm_allocate_args { vm_map_t map; - vm_offset_t *addr; - vm_size_t size; + vaddr_t *addr; + vsize_t size; boolean_t anywhere; }; /* ARGSUSED */ @@ -94,7 +94,7 @@ svm_allocate(p, uap, retval) struct svm_allocate_args *uap; register_t *retval; { - vm_offset_t addr; + vaddr_t addr; int rv; SCARG(uap, map) = p->p_map; /* XXX */ @@ -114,8 +114,8 @@ svm_allocate(p, uap, retval) struct svm_deallocate_args { vm_map_t map; - vm_offset_t addr; - vm_size_t size; + vaddr_t addr; + vsize_t size; }; /* ARGSUSED */ int @@ -133,8 +133,8 @@ svm_deallocate(p, uap, retval) struct svm_inherit_args { vm_map_t map; - vm_offset_t addr; - vm_size_t size; + vaddr_t addr; + vsize_t size; vm_inherit_t inherit; }; /* ARGSUSED */ @@ -154,8 +154,8 @@ svm_inherit(p, uap, retval) struct svm_protect_args { vm_map_t map; - vm_offset_t addr; - vm_size_t size; + vaddr_t addr; + vsize_t size; boolean_t setmax; vm_prot_t prot; }; @@ -181,8 +181,8 @@ svm_protect(p, uap, retval) int vm_inherit(map, start, size, new_inheritance) register vm_map_t map; - vm_offset_t start; - vm_size_t size; + vaddr_t start; + vsize_t size; vm_inherit_t new_inheritance; { if (map == NULL) @@ -199,8 +199,8 @@ vm_inherit(map, start, size, new_inheritance) int vm_protect(map, start, size, set_maximum, new_protection) register vm_map_t map; - vm_offset_t start; - vm_size_t size; + vaddr_t start; + vsize_t size; boolean_t set_maximum; vm_prot_t new_protection; { @@ -218,8 +218,8 @@ vm_protect(map, start, size, set_maximum, new_protection) int vm_allocate(map, addr, size, anywhere) register vm_map_t map; - register vm_offset_t *addr; - register vm_size_t size; + register vaddr_t *addr; + register vsize_t size; boolean_t anywhere; { int result; @@ -237,7 +237,7 @@ vm_allocate(map, addr, size, anywhere) *addr = trunc_page(*addr); size = round_page(size); - result = vm_map_find(map, NULL, (vm_offset_t) 0, addr, size, anywhere); + result = vm_map_find(map, NULL, (vaddr_t) 0, addr, size, anywhere); return(result); } @@ -249,13 +249,13 @@ vm_allocate(map, addr, size, anywhere) int vm_deallocate(map, start, size) register vm_map_t map; - vm_offset_t start; - vm_size_t size; + vaddr_t start; + vsize_t size; { if (map == NULL) return(KERN_INVALID_ARGUMENT); - if (size == (vm_offset_t) 0) + if (size == (vaddr_t) 0) return(KERN_SUCCESS); return(vm_map_remove(map, trunc_page(start), round_page(start+size))); @@ -267,16 +267,16 @@ vm_deallocate(map, start, size) int vm_allocate_with_pager(map, addr, size, anywhere, pager, poffset, internal) register vm_map_t map; - register vm_offset_t *addr; - register vm_size_t size; + register vaddr_t *addr; + register vsize_t size; boolean_t anywhere; vm_pager_t pager; - vm_offset_t poffset; + vaddr_t poffset; boolean_t internal; { register vm_object_t object; register int result; - vm_offset_t start; + vaddr_t start; if (map == NULL) return(KERN_INVALID_ARGUMENT); @@ -334,6 +334,6 @@ vm_allocate_with_pager(map, addr, size, anywhere, pager, poffset, internal) if (result != KERN_SUCCESS) vm_object_deallocate(object); else if (pager != NULL) - vm_object_setpager(object, pager, (vm_offset_t) 0, TRUE); + vm_object_setpager(object, pager, (vaddr_t) 0, TRUE); return(result); } diff --git a/sys/vm/vnode_pager.c b/sys/vm/vnode_pager.c index 8067941dc73..b85645ea8d7 100644 --- a/sys/vm/vnode_pager.c +++ b/sys/vm/vnode_pager.c @@ -1,4 +1,4 @@ -/* $NetBSD: vnode_pager.c,v 1.40 1998/08/09 21:58:54 perry Exp $ */ +/* $NetBSD: vnode_pager.c,v 1.41 1998/08/13 02:11:09 eeh Exp $ */ /* * Copyright (c) 1990 University of Utah. @@ -83,14 +83,14 @@ int vpagerdebug = 0x00; #endif static vm_pager_t vnode_pager_alloc - __P((caddr_t, vm_size_t, vm_prot_t, vm_offset_t)); + __P((caddr_t, vsize_t, vm_prot_t, vaddr_t)); static void vnode_pager_cluster - __P((vm_pager_t, vm_offset_t, - vm_offset_t *, vm_offset_t *)); + __P((vm_pager_t, vaddr_t, + vaddr_t *, vaddr_t *)); static void vnode_pager_dealloc __P((vm_pager_t)); static int vnode_pager_getpage __P((vm_pager_t, vm_page_t *, int, boolean_t)); -static boolean_t vnode_pager_haspage __P((vm_pager_t, vm_offset_t)); +static boolean_t vnode_pager_haspage __P((vm_pager_t, vaddr_t)); static void vnode_pager_init __P((void)); static int vnode_pager_io __P((vn_pager_t, vm_page_t *, int, @@ -127,9 +127,9 @@ vnode_pager_init() static vm_pager_t vnode_pager_alloc(handle, size, prot, foff) caddr_t handle; - vm_size_t size; + vsize_t size; vm_prot_t prot; - vm_offset_t foff; + vaddr_t foff; { register vm_pager_t pager; register vn_pager_t vnp; @@ -210,12 +210,12 @@ vnode_pager_alloc(handle, size, prot, foff) } /* make sure mapping fits into numeric range, truncate if necessary */ - if (used_vnode_size > (vm_offset_t)-PAGE_SIZE) { + if (used_vnode_size > (vaddr_t)-PAGE_SIZE) { #ifdef DEBUG printf("vnode_pager_alloc: vn %p size truncated %qx->%lx\n", - vp, used_vnode_size, (vm_offset_t)-PAGE_SIZE); + vp, used_vnode_size, (vaddr_t)-PAGE_SIZE); #endif - used_vnode_size = (vm_offset_t)-PAGE_SIZE; + used_vnode_size = (vaddr_t)-PAGE_SIZE; } object = vm_object_allocate(round_page(used_vnode_size)); vm_object_enter(object, pager); @@ -335,7 +335,7 @@ vnode_pager_putpage(pager, mlist, npages, sync) static boolean_t vnode_pager_haspage(pager, offset) vm_pager_t pager; - vm_offset_t offset; + vaddr_t offset; { register vn_pager_t vnp = (vn_pager_t)pager->pg_data; daddr_t bn; @@ -387,12 +387,12 @@ vnode_pager_haspage(pager, offset) static void vnode_pager_cluster(pager, offset, loffset, hoffset) vm_pager_t pager; - vm_offset_t offset; - vm_offset_t *loffset; - vm_offset_t *hoffset; + vaddr_t offset; + vaddr_t *loffset; + vaddr_t *hoffset; { vn_pager_t vnp = (vn_pager_t)pager->pg_data; - vm_offset_t loff, hoff; + vaddr_t loff, hoff; #ifdef DEBUG if (vpagerdebug & VDB_FOLLOW) @@ -443,12 +443,12 @@ vnode_pager_setsize(vp, nsize) /* make sure mapping fits into numeric range, truncate if necessary */ - if (nsize > (vm_offset_t)-PAGE_SIZE) { + if (nsize > (vaddr_t)-PAGE_SIZE) { #ifdef DEBUG printf("vnode_pager_setsize: vn %p size truncated %qx->%lx\n", - vp, nsize, (vm_offset_t)-PAGE_SIZE); + vp, nsize, (vaddr_t)-PAGE_SIZE); #endif - nsize = (vm_offset_t)-PAGE_SIZE; + nsize = (vaddr_t)-PAGE_SIZE; } /* @@ -482,10 +482,10 @@ vnode_pager_setsize(vp, nsize) if (nsize < vnp->vnp_size) { vm_object_lock(object); vm_object_page_remove(object, - (vm_offset_t)nsize, vnp->vnp_size); + (vaddr_t)nsize, vnp->vnp_size); vm_object_unlock(object); } - vnp->vnp_size = (vm_offset_t)nsize; + vnp->vnp_size = (vaddr_t)nsize; vm_object_deallocate(object); } @@ -636,7 +636,7 @@ vnode_pager_io(vnp, mlist, npages, sync, rw) { struct uio auio; struct iovec aiov; - vm_offset_t kva, foff; + vaddr_t kva, foff; int error, size; struct proc *p = curproc; /* XXX */ diff --git a/sys/vm/vnode_pager.h b/sys/vm/vnode_pager.h index 4f903f4db82..314750ca295 100644 --- a/sys/vm/vnode_pager.h +++ b/sys/vm/vnode_pager.h @@ -1,4 +1,4 @@ -/* $NetBSD: vnode_pager.h,v 1.6 1994/06/29 06:48:49 cgd Exp $ */ +/* $NetBSD: vnode_pager.h,v 1.7 1998/08/13 02:11:09 eeh Exp $ */ /* * Copyright (c) 1990 University of Utah. @@ -49,7 +49,7 @@ struct vnpager { int vnp_flags; /* flags */ struct vnode *vnp_vp; /* vnode */ - vm_size_t vnp_size; /* vnode current size */ + vsize_t vnp_size; /* vnode current size */ }; typedef struct vnpager *vn_pager_t; |
