summaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
authoreeh <eeh@NetBSD.org>1998-08-13 02:10:37 +0000
committereeh <eeh@NetBSD.org>1998-08-13 02:10:37 +0000
commita2dd74ed791b6de71af4e5878486b5613375cb4e (patch)
treeaa2625388cc5681096b3c307d42be0f08b784f07 /sys
parentc987d231462ae4d94029c65fe37a562d67fdf4ee (diff)
Merge paddr_t changes into the main branch.
Diffstat (limited to 'sys')
-rw-r--r--sys/arch/alpha/include/types.h10
-rw-r--r--sys/arch/alpha/isa/isapnp_machdep.c2
-rw-r--r--sys/arch/alpha/isa/isapnp_machdep.h2
-rw-r--r--sys/arch/arm32/include/types.h10
-rw-r--r--sys/arch/arm32/isa/isapnp_machdep.c2
-rw-r--r--sys/arch/arm32/isa/isapnp_machdep.h2
-rw-r--r--sys/arch/bebox/isa/isapnp_machdep.c2
-rw-r--r--sys/arch/bebox/isa/isapnp_machdep.h2
-rw-r--r--sys/arch/bebox/isa/wd.c2
-rw-r--r--sys/arch/i386/include/types.h10
-rw-r--r--sys/arch/m68k/include/types.h10
-rw-r--r--sys/arch/mips/include/types.h10
-rw-r--r--sys/arch/pc532/include/types.h10
-rw-r--r--sys/arch/powerpc/include/types.h10
-rw-r--r--sys/arch/sparc/dev/isp_sbus.c5
-rw-r--r--sys/arch/sparc/include/types.h10
-rw-r--r--sys/arch/sparc64/Makefile4
-rw-r--r--sys/arch/sparc64/conf/Makefile.sparc644
-rw-r--r--sys/arch/sparc64/conf/NONPLUS5
-rw-r--r--sys/arch/sparc64/dev/bt_subr.c7
-rw-r--r--sys/arch/sparc64/dev/bwtwo.c2
-rw-r--r--sys/arch/sparc64/dev/cgeight.c2
-rw-r--r--sys/arch/sparc64/dev/cgfour.c2
-rw-r--r--sys/arch/sparc64/dev/cgfourteen.c2
-rw-r--r--sys/arch/sparc64/dev/cgsix.c7
-rw-r--r--sys/arch/sparc64/dev/cgthree.c2
-rw-r--r--sys/arch/sparc64/dev/cgtwo.c2
-rw-r--r--sys/arch/sparc64/dev/dma.c15
-rw-r--r--sys/arch/sparc64/dev/esp.c6
-rw-r--r--sys/arch/sparc64/dev/fb.c4
-rw-r--r--sys/arch/sparc64/dev/if_ie.c12
-rw-r--r--sys/arch/sparc64/dev/if_le.c13
-rw-r--r--sys/arch/sparc64/dev/isp_sbus.c22
-rw-r--r--sys/arch/sparc64/dev/sbus.c190
-rw-r--r--sys/arch/sparc64/dev/sbusreg.h7
-rw-r--r--sys/arch/sparc64/dev/sbusvar.h74
-rw-r--r--sys/arch/sparc64/dev/si.c6
-rw-r--r--sys/arch/sparc64/dev/upa.c12
-rw-r--r--sys/arch/sparc64/dev/xd.c12
-rw-r--r--sys/arch/sparc64/dev/xy.c12
-rw-r--r--sys/arch/sparc64/dev/zs.c6
-rw-r--r--sys/arch/sparc64/include/asm.h4
-rw-r--r--sys/arch/sparc64/include/autoconf.h6
-rw-r--r--sys/arch/sparc64/include/bus.h18
-rw-r--r--sys/arch/sparc64/include/db_machdep.h4
-rw-r--r--sys/arch/sparc64/include/fbvar.h2
-rw-r--r--sys/arch/sparc64/include/kcore.h4
-rw-r--r--sys/arch/sparc64/include/openfirm.h4
-rw-r--r--sys/arch/sparc64/include/param.h6
-rw-r--r--sys/arch/sparc64/include/pmap.h19
-rw-r--r--sys/arch/sparc64/include/pte.h4
-rw-r--r--sys/arch/sparc64/include/sparc64.h20
-rw-r--r--sys/arch/sparc64/include/types.h11
-rw-r--r--sys/arch/sparc64/include/vmparam.h16
-rw-r--r--sys/arch/sparc64/sparc64/autoconf.c11
-rw-r--r--sys/arch/sparc64/sparc64/clock.c29
-rw-r--r--sys/arch/sparc64/sparc64/db_disasm.c4
-rw-r--r--sys/arch/sparc64/sparc64/db_interface.c13
-rw-r--r--sys/arch/sparc64/sparc64/db_trace.c6
-rw-r--r--sys/arch/sparc64/sparc64/genassym.c3
-rw-r--r--sys/arch/sparc64/sparc64/genassym.cf3
-rw-r--r--sys/arch/sparc64/sparc64/intr.c6
-rw-r--r--sys/arch/sparc64/sparc64/kgdb_stub.c8
-rw-r--r--sys/arch/sparc64/sparc64/locore.s92
-rw-r--r--sys/arch/sparc64/sparc64/machdep.c164
-rw-r--r--sys/arch/sparc64/sparc64/mem.c14
-rw-r--r--sys/arch/sparc64/sparc64/ofw_machdep.c71
-rw-r--r--sys/arch/sparc64/sparc64/openfirm.c11
-rw-r--r--sys/arch/sparc64/sparc64/pmap.c985
-rw-r--r--sys/arch/sparc64/sparc64/timerreg.h3
-rw-r--r--sys/arch/sparc64/sparc64/trap.c57
-rw-r--r--sys/arch/sparc64/sparc64/vm_machdep.c69
-rw-r--r--sys/arch/sparc64/stand/ofwboot/Locore.c46
-rw-r--r--sys/arch/sparc64/stand/ofwboot/Makefile4
-rw-r--r--sys/arch/sparc64/stand/ofwboot/ofdev.c4
-rw-r--r--sys/arch/vax/include/types.h10
-rw-r--r--sys/compat/svr4/svr4_misc.c6
-rw-r--r--sys/compat/ultrix/ultrix_misc.c8
-rw-r--r--sys/ddb/db_aout.c4
-rw-r--r--sys/ddb/db_break.c4
-rw-r--r--sys/ddb/db_break.h4
-rw-r--r--sys/ddb/db_elf.c5
-rw-r--r--sys/ddb/db_watch.c8
-rw-r--r--sys/ddb/db_watch.h4
-rw-r--r--sys/ddb/db_xxx.c6
-rw-r--r--sys/dev/ic/aic7xxx.c6
-rw-r--r--sys/dev/ic/midway.c4
-rw-r--r--sys/dev/ic/pdqvar.h10
-rw-r--r--sys/dev/ic/vga.c2
-rw-r--r--sys/dev/isa/files.isa6
-rw-r--r--sys/dev/isa/pcdisplay.c2
-rw-r--r--sys/dev/md.c12
-rw-r--r--sys/dev/ofisa/ess_ofisa.c2
-rw-r--r--sys/dev/pci/if_de.c8
-rw-r--r--sys/dev/pci/if_devar.h4
-rw-r--r--sys/dev/pci/if_fpa.c7
-rw-r--r--sys/dev/pci/if_tl.c4
-rw-r--r--sys/dev/pci/ncr.c24
-rw-r--r--sys/dev/pci/tga.c2
-rw-r--r--sys/dev/pci/tgavar.h20
-rw-r--r--sys/dev/pcmcia/pcmcia.c4
-rw-r--r--sys/dev/sbus/sbusvar.h4
-rw-r--r--sys/dev/tc/asc.c4
-rw-r--r--sys/dev/tc/asc_ioasic.c12
-rw-r--r--sys/dev/wscons/wsdisplayvar.h2
-rw-r--r--sys/kern/init_main.c6
-rw-r--r--sys/kern/kern_exec.c16
-rw-r--r--sys/kern/kern_fork.c4
-rw-r--r--sys/kern/kern_malloc.c24
-rw-r--r--sys/kern/kern_resource.c6
-rw-r--r--sys/kern/kgdb_stub.c10
-rw-r--r--sys/kern/subr_pool.c6
-rw-r--r--sys/kern/sysv_shm.c16
-rw-r--r--sys/kern/vfs_bio.c4
-rw-r--r--sys/miscfs/procfs/procfs_mem.c16
-rw-r--r--sys/sys/kgdb.h4
-rw-r--r--sys/sys/types.h3
-rw-r--r--sys/uvm/uvm.h6
-rw-r--r--sys/uvm/uvm_amap.c14
-rw-r--r--sys/uvm/uvm_amap.h20
-rw-r--r--sys/uvm/uvm_amap_i.h12
-rw-r--r--sys/uvm/uvm_aobj.c22
-rw-r--r--sys/uvm/uvm_device.c23
-rw-r--r--sys/uvm/uvm_extern.h74
-rw-r--r--sys/uvm/uvm_fault.c18
-rw-r--r--sys/uvm/uvm_fault.h14
-rw-r--r--sys/uvm/uvm_glue.c29
-rw-r--r--sys/uvm/uvm_init.c4
-rw-r--r--sys/uvm/uvm_io.c8
-rw-r--r--sys/uvm/uvm_km.c64
-rw-r--r--sys/uvm/uvm_km.h6
-rw-r--r--sys/uvm/uvm_loan.c14
-rw-r--r--sys/uvm/uvm_loan.h4
-rw-r--r--sys/uvm/uvm_map.c90
-rw-r--r--sys/uvm/uvm_map.h42
-rw-r--r--sys/uvm/uvm_map_i.h8
-rw-r--r--sys/uvm/uvm_mmap.c86
-rw-r--r--sys/uvm/uvm_page.c34
-rw-r--r--sys/uvm/uvm_page.h10
-rw-r--r--sys/uvm/uvm_page_i.h4
-rw-r--r--sys/uvm/uvm_pager.c22
-rw-r--r--sys/uvm/uvm_pager.h32
-rw-r--r--sys/uvm/uvm_pager_i.h6
-rw-r--r--sys/uvm/uvm_pdaemon.c6
-rw-r--r--sys/uvm/uvm_pglist.c8
-rw-r--r--sys/uvm/uvm_swap.c6
-rw-r--r--sys/uvm/uvm_unix.c14
-rw-r--r--sys/uvm/uvm_user.c8
-rw-r--r--sys/uvm/uvm_vnode.c48
-rw-r--r--sys/uvm/uvm_vnode.h4
-rw-r--r--sys/vm/device_pager.c20
-rw-r--r--sys/vm/pmap.h54
-rw-r--r--sys/vm/swap_pager.c42
-rw-r--r--sys/vm/swap_pager.h4
-rw-r--r--sys/vm/vm_extern.h56
-rw-r--r--sys/vm/vm_fault.c31
-rw-r--r--sys/vm/vm_glue.c29
-rw-r--r--sys/vm/vm_init.c8
-rw-r--r--sys/vm/vm_kern.c73
-rw-r--r--sys/vm/vm_map.c156
-rw-r--r--sys/vm/vm_map.h48
-rw-r--r--sys/vm/vm_mmap.c94
-rw-r--r--sys/vm/vm_object.c68
-rw-r--r--sys/vm/vm_object.h32
-rw-r--r--sys/vm/vm_page.c76
-rw-r--r--sys/vm/vm_page.h48
-rw-r--r--sys/vm/vm_pageout.c6
-rw-r--r--sys/vm/vm_pager.c8
-rw-r--r--sys/vm/vm_pager.h38
-rw-r--r--sys/vm/vm_param.h22
-rw-r--r--sys/vm/vm_unix.c14
-rw-r--r--sys/vm/vm_user.c50
-rw-r--r--sys/vm/vnode_pager.c42
-rw-r--r--sys/vm/vnode_pager.h4
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;