Module Name:    src
Committed By:   rmind
Date:           Sat Nov 21 04:45:39 UTC 2009

Modified Files:
        src/sys/arch/vax/include: param.h proc.h
        src/sys/arch/vax/uba: qv.c
        src/sys/arch/vax/vax: cfl.c compat_13_machdep.c compat_16_machdep.c
            core_machdep.c crl.c db_machdep.c disksubr.c ibcs2_machdep.c
            ka6400.c ka820.c ka88.c machdep.c multicpu.c pmap.c sig_machdep.c
            syscall.c trap.c vm_machdep.c
        src/sys/arch/vax/vsa: asc_vsbus.c hdc9224.c ncr.c vsbus.c

Log Message:
- Use lwp_getpcb() on VAX, clean from struct user usage.
- Include sys/user.h in MD proc.h .


To generate a diff of this commit:
cvs rdiff -u -r1.56 -r1.57 src/sys/arch/vax/include/param.h
cvs rdiff -u -r1.12 -r1.13 src/sys/arch/vax/include/proc.h
cvs rdiff -u -r1.26 -r1.27 src/sys/arch/vax/uba/qv.c
cvs rdiff -u -r1.18 -r1.19 src/sys/arch/vax/vax/cfl.c \
    src/sys/arch/vax/vax/sig_machdep.c
cvs rdiff -u -r1.1 -r1.2 src/sys/arch/vax/vax/compat_13_machdep.c \
    src/sys/arch/vax/vax/compat_16_machdep.c
cvs rdiff -u -r1.2 -r1.3 src/sys/arch/vax/vax/core_machdep.c
cvs rdiff -u -r1.26 -r1.27 src/sys/arch/vax/vax/crl.c \
    src/sys/arch/vax/vax/multicpu.c
cvs rdiff -u -r1.52 -r1.53 src/sys/arch/vax/vax/db_machdep.c
cvs rdiff -u -r1.50 -r1.51 src/sys/arch/vax/vax/disksubr.c \
    src/sys/arch/vax/vax/ka820.c
cvs rdiff -u -r1.10 -r1.11 src/sys/arch/vax/vax/ibcs2_machdep.c
cvs rdiff -u -r1.13 -r1.14 src/sys/arch/vax/vax/ka6400.c \
    src/sys/arch/vax/vax/ka88.c
cvs rdiff -u -r1.177 -r1.178 src/sys/arch/vax/vax/machdep.c
cvs rdiff -u -r1.172 -r1.173 src/sys/arch/vax/vax/pmap.c
cvs rdiff -u -r1.16 -r1.17 src/sys/arch/vax/vax/syscall.c
cvs rdiff -u -r1.119 -r1.120 src/sys/arch/vax/vax/trap.c
cvs rdiff -u -r1.108 -r1.109 src/sys/arch/vax/vax/vm_machdep.c
cvs rdiff -u -r1.40 -r1.41 src/sys/arch/vax/vsa/asc_vsbus.c
cvs rdiff -u -r1.49 -r1.50 src/sys/arch/vax/vsa/hdc9224.c
cvs rdiff -u -r1.46 -r1.47 src/sys/arch/vax/vsa/ncr.c
cvs rdiff -u -r1.57 -r1.58 src/sys/arch/vax/vsa/vsbus.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/arch/vax/include/param.h
diff -u src/sys/arch/vax/include/param.h:1.56 src/sys/arch/vax/include/param.h:1.57
--- src/sys/arch/vax/include/param.h:1.56	Wed Jul  2 17:28:57 2008
+++ src/sys/arch/vax/include/param.h	Sat Nov 21 04:45:39 2009
@@ -1,4 +1,4 @@
-/*      $NetBSD: param.h,v 1.56 2008/07/02 17:28:57 ad Exp $    */
+/*      $NetBSD: param.h,v 1.57 2009/11/21 04:45:39 rmind Exp $    */
 /*-
  * Copyright (c) 1990 The Regents of the University of California.
  * All rights reserved.
@@ -82,7 +82,7 @@
 
 #define	UPAGES		2		/* pages of u-area */
 #define USPACE		(NBPG*UPAGES)
-#define	REDZONEADDR	(VAX_NBPG*3)	/* Must be > sizeof(struct user) */
+#define	REDZONEADDR	(VAX_NBPG*3)	/* Must be > sizeof(struct pcb) */
 
 #ifndef MSGBUFSIZE
 #define MSGBUFSIZE	NBPG		/* default message buffer size */

Index: src/sys/arch/vax/include/proc.h
diff -u src/sys/arch/vax/include/proc.h:1.12 src/sys/arch/vax/include/proc.h:1.13
--- src/sys/arch/vax/include/proc.h:1.12	Sat Dec 22 08:29:40 2007
+++ src/sys/arch/vax/include/proc.h	Sat Nov 21 04:45:39 2009
@@ -1,4 +1,4 @@
-/*	$NetBSD: proc.h,v 1.12 2007/12/22 08:29:40 tsutsui Exp $	*/
+/*	$NetBSD: proc.h,v 1.13 2009/11/21 04:45:39 rmind Exp $	*/
 
 /*
  * Copyright (c) 1991 Regents of the University of California.
@@ -34,6 +34,8 @@
 #ifndef _VAX_PROC_H_
 #define _VAX_PROC_H_
 
+#include <sys/user.h> /* for sizeof(struct user) */
+
 /*
  * Machine-dependent lwp struct for vax,
  */

Index: src/sys/arch/vax/uba/qv.c
diff -u src/sys/arch/vax/uba/qv.c:1.26 src/sys/arch/vax/uba/qv.c:1.27
--- src/sys/arch/vax/uba/qv.c:1.26	Mon Oct 26 19:16:58 2009
+++ src/sys/arch/vax/uba/qv.c	Sat Nov 21 04:45:39 2009
@@ -1,4 +1,4 @@
-/*	$NetBSD: qv.c,v 1.26 2009/10/26 19:16:58 cegger Exp $	*/
+/*	$NetBSD: qv.c,v 1.27 2009/11/21 04:45:39 rmind Exp $	*/
 
 /*-
  * Copyright (c) 1988
@@ -123,7 +123,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: qv.c,v 1.26 2009/10/26 19:16:58 cegger Exp $");
+__KERNEL_RCSID(0, "$NetBSD: qv.c,v 1.27 2009/11/21 04:45:39 rmind Exp $");
 
 #include "qv.h"
 #if NQV > 0
@@ -132,7 +132,6 @@
 
 #include "sys/param.h"
 #include "sys/conf.h"
-#include "sys/user.h"
 #include "qvioctl.h"
 #include "sys/tty.h"
 #include "sys/buf.h"

Index: src/sys/arch/vax/vax/cfl.c
diff -u src/sys/arch/vax/vax/cfl.c:1.18 src/sys/arch/vax/vax/cfl.c:1.19
--- src/sys/arch/vax/vax/cfl.c:1.18	Tue Mar 11 05:34:03 2008
+++ src/sys/arch/vax/vax/cfl.c	Sat Nov 21 04:45:39 2009
@@ -1,4 +1,4 @@
-/*	$NetBSD: cfl.c,v 1.18 2008/03/11 05:34:03 matt Exp $	*/
+/*	$NetBSD: cfl.c,v 1.19 2009/11/21 04:45:39 rmind Exp $	*/
 /*-
  * Copyright (c) 1982, 1986 The Regents of the University of California.
  * All rights reserved.
@@ -71,13 +71,12 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: cfl.c,v 1.18 2008/03/11 05:34:03 matt Exp $");
+__KERNEL_RCSID(0, "$NetBSD: cfl.c,v 1.19 2009/11/21 04:45:39 rmind Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
 #include <sys/conf.h>
 #include <sys/proc.h>
-#include <sys/user.h>
 #include <sys/buf.h>
 
 #include <machine/cpu.h>
Index: src/sys/arch/vax/vax/sig_machdep.c
diff -u src/sys/arch/vax/vax/sig_machdep.c:1.18 src/sys/arch/vax/vax/sig_machdep.c:1.19
--- src/sys/arch/vax/vax/sig_machdep.c:1.18	Tue Jan 13 23:56:13 2009
+++ src/sys/arch/vax/vax/sig_machdep.c	Sat Nov 21 04:45:39 2009
@@ -1,4 +1,4 @@
-/* $NetBSD: sig_machdep.c,v 1.18 2009/01/13 23:56:13 mjf Exp $	 */
+/* $NetBSD: sig_machdep.c,v 1.19 2009/11/21 04:45:39 rmind Exp $	 */
 
 /*
  * Copyright (c) 1982, 1986, 1990 The Regents of the University of California.
@@ -83,7 +83,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: sig_machdep.c,v 1.18 2009/01/13 23:56:13 mjf Exp $");
+__KERNEL_RCSID(0, "$NetBSD: sig_machdep.c,v 1.19 2009/11/21 04:45:39 rmind Exp $");
 
 #include "opt_ddb.h"
 #include "opt_compat_netbsd.h"
@@ -96,7 +96,6 @@
 #include <sys/systm.h>
 #include <sys/extent.h>
 #include <sys/proc.h>
-#include <sys/user.h>
 #include <sys/time.h>
 #include <sys/signal.h>
 #include <sys/kernel.h>
@@ -224,7 +223,8 @@
 {
 	struct lwp *l = curlwp;
 	struct proc *p = l->l_proc;
-	struct trapframe *tf = l->l_addr->u_pcb.framep;
+	struct pcb *pcb = lwp_getpcb(l);
+	struct trapframe *tf = pcb->framep;
 	struct sigaltstack *ss = &l->l_sigstk;
 	const struct sigact_sigdesc *sd =
 	    &p->p_sigacts->sa_sigdesc[ksi->ksi_signo];

Index: src/sys/arch/vax/vax/compat_13_machdep.c
diff -u src/sys/arch/vax/vax/compat_13_machdep.c:1.1 src/sys/arch/vax/vax/compat_13_machdep.c:1.2
--- src/sys/arch/vax/vax/compat_13_machdep.c:1.1	Tue Jan 13 23:56:13 2009
+++ src/sys/arch/vax/vax/compat_13_machdep.c	Sat Nov 21 04:45:39 2009
@@ -1,4 +1,4 @@
-/*	$NetBSD: compat_13_machdep.c,v 1.1 2009/01/13 23:56:13 mjf Exp $	*/
+/*	$NetBSD: compat_13_machdep.c,v 1.2 2009/11/21 04:45:39 rmind Exp $	*/
 
 /*
  * Copyright (c) 1982, 1986, 1990 The Regents of the University of California.
@@ -83,7 +83,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: compat_13_machdep.c,v 1.1 2009/01/13 23:56:13 mjf Exp $");
+__KERNEL_RCSID(0, "$NetBSD: compat_13_machdep.c,v 1.2 2009/11/21 04:45:39 rmind Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_compat_netbsd.h"
@@ -97,7 +97,6 @@
 #include <sys/systm.h>
 #include <sys/extent.h>
 #include <sys/proc.h>
-#include <sys/user.h>
 #include <sys/time.h>
 #include <sys/signal.h>
 #include <sys/kernel.h>
@@ -144,12 +143,13 @@
 		syscallarg(struct sigcontext13 *) sigcntxp;
 	} */
 	struct proc *p = l->l_proc;
+	struct pcb *pcb = lwp_getpcb(l);
 	struct trapframe *scf;
 	struct sigcontext13 *ucntx;
 	struct sigcontext13 ksc;
 	sigset_t mask;
 
-	scf = l->l_addr->u_pcb.framep;
+	scf = pcb->framep;
 	ucntx = SCARG(uap, sigcntxp);
 	if (copyin((void *)ucntx, (void *)&ksc, sizeof(struct sigcontext)))
 		return EINVAL;
Index: src/sys/arch/vax/vax/compat_16_machdep.c
diff -u src/sys/arch/vax/vax/compat_16_machdep.c:1.1 src/sys/arch/vax/vax/compat_16_machdep.c:1.2
--- src/sys/arch/vax/vax/compat_16_machdep.c:1.1	Tue Jan 13 23:56:13 2009
+++ src/sys/arch/vax/vax/compat_16_machdep.c	Sat Nov 21 04:45:39 2009
@@ -1,4 +1,4 @@
-/*	$NetBSD: compat_16_machdep.c,v 1.1 2009/01/13 23:56:13 mjf Exp $	*/
+/*	$NetBSD: compat_16_machdep.c,v 1.2 2009/11/21 04:45:39 rmind Exp $	*/
 
 /*
  * Copyright (c) 1982, 1986, 1990 The Regents of the University of California.
@@ -83,7 +83,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: compat_16_machdep.c,v 1.1 2009/01/13 23:56:13 mjf Exp $");
+__KERNEL_RCSID(0, "$NetBSD: compat_16_machdep.c,v 1.2 2009/11/21 04:45:39 rmind Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_ddb.h"
@@ -98,7 +98,6 @@
 #include <sys/systm.h>
 #include <sys/extent.h>
 #include <sys/proc.h>
-#include <sys/user.h>
 #include <sys/time.h>
 #include <sys/signal.h>
 #include <sys/kernel.h>
@@ -142,11 +141,12 @@
 		syscallarg(struct sigcontext *) sigcntxp;
 	} */
 	struct proc *p = l->l_proc;
+	struct pcb *pcb = lwp_getpcb(l);
 	struct trapframe *scf;
 	struct sigcontext *ucntx;
 	struct sigcontext ksc;
 
-	scf = l->l_addr->u_pcb.framep;
+	scf = pcb->framep;
 	ucntx = SCARG(uap, sigcntxp);
 
 	if (copyin((void *)ucntx, (void *)&ksc, sizeof(struct sigcontext)))

Index: src/sys/arch/vax/vax/core_machdep.c
diff -u src/sys/arch/vax/vax/core_machdep.c:1.2 src/sys/arch/vax/vax/core_machdep.c:1.3
--- src/sys/arch/vax/vax/core_machdep.c:1.2	Sat Aug 15 23:45:01 2009
+++ src/sys/arch/vax/vax/core_machdep.c	Sat Nov 21 04:45:39 2009
@@ -1,4 +1,4 @@
-/*	$NetBSD: core_machdep.c,v 1.2 2009/08/15 23:45:01 matt Exp $	     */
+/*	$NetBSD: core_machdep.c,v 1.3 2009/11/21 04:45:39 rmind Exp $	     */
 
 /*
  * Copyright (c) 1994 Ludd, University of Lule}, Sweden.
@@ -31,13 +31,12 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: core_machdep.c,v 1.2 2009/08/15 23:45:01 matt Exp $");
+__KERNEL_RCSID(0, "$NetBSD: core_machdep.c,v 1.3 2009/11/21 04:45:39 rmind Exp $");
 
 #include <sys/types.h>
 #include <sys/param.h>
 #include <sys/systm.h>
 #include <sys/proc.h>
-#include <sys/user.h>
 #include <sys/exec.h>
 #include <sys/vnode.h>
 #include <sys/core.h>
@@ -69,6 +68,7 @@
 {
 	struct md_coredump md_core;
 	struct coreseg cseg;
+	struct pcb *pcb;
 	int error;
 
 	if (iocookie == NULL) {
@@ -80,7 +80,8 @@
 		return 0;
 	}
 
-	md_core.md_tf = *(struct trapframe *)l->l_addr->u_pcb.framep; /*XXX*/
+	pcb = lwp_getpcb(l);
+	md_core.md_tf = *(struct trapframe *)pcb->framep; /*XXX*/
 
 	CORE_SETMAGIC(cseg, CORESEGMAGIC, MID_MACHINE, CORE_CPU);
 	cseg.c_addr = 0;

Index: src/sys/arch/vax/vax/crl.c
diff -u src/sys/arch/vax/vax/crl.c:1.26 src/sys/arch/vax/vax/crl.c:1.27
--- src/sys/arch/vax/vax/crl.c:1.26	Tue Dec 16 22:35:27 2008
+++ src/sys/arch/vax/vax/crl.c	Sat Nov 21 04:45:39 2009
@@ -1,4 +1,4 @@
-/*	$NetBSD: crl.c,v 1.26 2008/12/16 22:35:27 christos Exp $	*/
+/*	$NetBSD: crl.c,v 1.27 2009/11/21 04:45:39 rmind Exp $	*/
 /*-
  * Copyright (c) 1982, 1986 The Regents of the University of California.
  * All rights reserved.
@@ -36,13 +36,12 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: crl.c,v 1.26 2008/12/16 22:35:27 christos Exp $");
+__KERNEL_RCSID(0, "$NetBSD: crl.c,v 1.27 2009/11/21 04:45:39 rmind Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
 #include <sys/conf.h>
 #include <sys/proc.h>
-#include <sys/user.h>
 #include <sys/buf.h>
 
 #include <machine/cpu.h>
Index: src/sys/arch/vax/vax/multicpu.c
diff -u src/sys/arch/vax/vax/multicpu.c:1.26 src/sys/arch/vax/vax/multicpu.c:1.27
--- src/sys/arch/vax/vax/multicpu.c:1.26	Thu Apr  2 13:00:40 2009
+++ src/sys/arch/vax/vax/multicpu.c	Sat Nov 21 04:45:39 2009
@@ -1,4 +1,4 @@
-/*	$NetBSD: multicpu.c,v 1.26 2009/04/02 13:00:40 tsutsui Exp $	*/
+/*	$NetBSD: multicpu.c,v 1.27 2009/11/21 04:45:39 rmind Exp $	*/
 
 /*
  * Copyright (c) 2000 Ludd, University of Lule}, Sweden. All rights reserved.
@@ -35,7 +35,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: multicpu.c,v 1.26 2009/04/02 13:00:40 tsutsui Exp $");
+__KERNEL_RCSID(0, "$NetBSD: multicpu.c,v 1.27 2009/11/21 04:45:39 rmind Exp $");
 
 #include "opt_multiprocessor.h"
 
@@ -43,7 +43,6 @@
 #include <sys/queue.h>
 #include <sys/malloc.h>
 #include <sys/proc.h>
-#include <sys/user.h>
 #include <sys/device.h>
 
 #include <uvm/uvm_extern.h>

Index: src/sys/arch/vax/vax/db_machdep.c
diff -u src/sys/arch/vax/vax/db_machdep.c:1.52 src/sys/arch/vax/vax/db_machdep.c:1.53
--- src/sys/arch/vax/vax/db_machdep.c:1.52	Mon Oct 26 19:16:58 2009
+++ src/sys/arch/vax/vax/db_machdep.c	Sat Nov 21 04:45:39 2009
@@ -1,4 +1,4 @@
-/*	$NetBSD: db_machdep.c,v 1.52 2009/10/26 19:16:58 cegger Exp $	*/
+/*	$NetBSD: db_machdep.c,v 1.53 2009/11/21 04:45:39 rmind Exp $	*/
 
 /* 
  * :set tabs=4
@@ -39,14 +39,13 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: db_machdep.c,v 1.52 2009/10/26 19:16:58 cegger Exp $");
+__KERNEL_RCSID(0, "$NetBSD: db_machdep.c,v 1.53 2009/11/21 04:45:39 rmind Exp $");
 
 #include "opt_ddb.h"
 #include "opt_multiprocessor.h"
 
 #include <sys/param.h>
 #include <sys/proc.h>
-#include <sys/user.h>
 #include <sys/reboot.h>
 #include <sys/systm.h> /* just for boothowto --eichin */
 
@@ -408,10 +407,9 @@
 	const char	*modif,		/* pointer to flag modifier 't' */
 	void		(*pr)(const char *, ...)) /* Print function */
 {
-	extern struct user *proc0paddr;
 	struct lwp	*l = curlwp;
 	struct proc	*p = l->l_proc;
-	struct user	*uarea;
+	struct pcb	*pcb;
 	int		trace_proc;
 	pid_t		curpid;
 	const char	*s;
@@ -484,38 +482,36 @@
 #endif
 	}
 	if (p == NULL) {
-		uarea = proc0paddr;
+		pcb = lwp_getpcb(&lwp0);
 		curpid = 0;
 	} else {
-		uarea = l->l_addr;
+		pcb = lwp_getpcb(l);
 		curpid = p->p_pid;
 	}
 	(*pr)("Process %d.%d\n", curpid, l->l_lid);
 	(*pr)("	 PCB contents:\n");
-	(*pr)(" KSP = 0x%x\n", (unsigned int)(uarea->u_pcb.KSP));
-	(*pr)(" ESP = 0x%x\n", (unsigned int)(uarea->u_pcb.ESP));
-	(*pr)(" SSP = 0x%x\n", (unsigned int)(uarea->u_pcb.SSP));
-	(*pr)(" USP = 0x%x\n", (unsigned int)(uarea->u_pcb.USP));
+	(*pr)(" KSP = 0x%x\n", (unsigned int)(pcb->KSP));
+	(*pr)(" ESP = 0x%x\n", (unsigned int)(pcb->ESP));
+	(*pr)(" SSP = 0x%x\n", (unsigned int)(pcb->SSP));
+	(*pr)(" USP = 0x%x\n", (unsigned int)(pcb->USP));
 	(*pr)(" R[00] = 0x%08x	  R[06] = 0x%08x\n", 
-		(unsigned int)(uarea->u_pcb.R[0]), (unsigned int)(uarea->u_pcb.R[6]));
+		(unsigned int)(pcb->R[0]), (unsigned int)(pcb->R[6]));
 	(*pr)(" R[01] = 0x%08x	  R[07] = 0x%08x\n", 
-		(unsigned int)(uarea->u_pcb.R[1]), (unsigned int)(uarea->u_pcb.R[7]));
+		(unsigned int)(pcb->R[1]), (unsigned int)(pcb->R[7]));
 	(*pr)(" R[02] = 0x%08x	  R[08] = 0x%08x\n", 
-		(unsigned int)(uarea->u_pcb.R[2]), (unsigned int)(uarea->u_pcb.R[8]));
+		(unsigned int)(pcb->R[2]), (unsigned int)(pcb->R[8]));
 	(*pr)(" R[03] = 0x%08x	  R[09] = 0x%08x\n", 
-		(unsigned int)(uarea->u_pcb.R[3]), (unsigned int)(uarea->u_pcb.R[9]));
+		(unsigned int)(pcb->R[3]), (unsigned int)(pcb->R[9]));
 	(*pr)(" R[04] = 0x%08x	  R[10] = 0x%08x\n", 
-		(unsigned int)(uarea->u_pcb.R[4]), (unsigned int)(uarea->u_pcb.R[10]));
+		(unsigned int)(pcb->R[4]), (unsigned int)(pcb->R[10]));
 	(*pr)(" R[05] = 0x%08x	  R[11] = 0x%08x\n", 
-		(unsigned int)(uarea->u_pcb.R[5]), (unsigned int)(uarea->u_pcb.R[11]));
-	(*pr)(" AP = 0x%x\n", (unsigned int)(uarea->u_pcb.AP));
-	(*pr)(" FP = 0x%x\n", (unsigned int)(uarea->u_pcb.FP));
-	(*pr)(" PC = 0x%x\n", (unsigned int)(uarea->u_pcb.PC));
-	(*pr)(" PSL = 0x%x\n", (unsigned int)(uarea->u_pcb.PSL));
-	(*pr)(" Trap frame pointer: 0x%x\n", 
-							(unsigned int)(uarea->u_pcb.framep));
-	db_dump_stack((VAX_CALLFRAME *)(uarea->u_pcb.FP),
-	    (u_int) uarea->u_pcb.KSP, pr);
+		(unsigned int)(pcb->R[5]), (unsigned int)(pcb->R[11]));
+	(*pr)(" AP = 0x%x\n", (unsigned int)(pcb->AP));
+	(*pr)(" FP = 0x%x\n", (unsigned int)(pcb->FP));
+	(*pr)(" PC = 0x%x\n", (unsigned int)(pcb->PC));
+	(*pr)(" PSL = 0x%x\n", (unsigned int)(pcb->PSL));
+	(*pr)(" Trap frame pointer: 0x%x\n", (unsigned int)(pcb->framep));
+	db_dump_stack((VAX_CALLFRAME *)(pcb->FP), (u_int)pcb->KSP, pr);
 	return;
 #if 0
 	while (((u_int)(cur_frame->vax_fp) > stackbase) && 
@@ -581,12 +577,7 @@
 			printf("Don't know what to do without panic\n");
 			return;
 		}
-		if (p)
-			paddr = (u_int)p->p_addr;
-		else
-			paddr = proc0paddr;
-
-		stackbase = (ddb_regs.psl & PSL_IS ? istack : paddr);
+		stackbase = (ddb_regs.psl & PSL_IS ? istack : pcb);
 	}
 #endif
 }

Index: src/sys/arch/vax/vax/disksubr.c
diff -u src/sys/arch/vax/vax/disksubr.c:1.50 src/sys/arch/vax/vax/disksubr.c:1.51
--- src/sys/arch/vax/vax/disksubr.c:1.50	Mon Oct 26 19:16:58 2009
+++ src/sys/arch/vax/vax/disksubr.c	Sat Nov 21 04:45:39 2009
@@ -1,4 +1,4 @@
-/*	$NetBSD: disksubr.c,v 1.50 2009/10/26 19:16:58 cegger Exp $	*/
+/*	$NetBSD: disksubr.c,v 1.51 2009/11/21 04:45:39 rmind Exp $	*/
 
 /*
  * Copyright (c) 1982, 1986, 1988 Regents of the University of California.
@@ -32,7 +32,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: disksubr.c,v 1.50 2009/10/26 19:16:58 cegger Exp $");
+__KERNEL_RCSID(0, "$NetBSD: disksubr.c,v 1.51 2009/11/21 04:45:39 rmind Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -42,7 +42,6 @@
 #include <sys/disk.h>
 #include <sys/syslog.h>
 #include <sys/proc.h>
-#include <sys/user.h>
 
 #include <uvm/uvm_extern.h>
 
Index: src/sys/arch/vax/vax/ka820.c
diff -u src/sys/arch/vax/vax/ka820.c:1.50 src/sys/arch/vax/vax/ka820.c:1.51
--- src/sys/arch/vax/vax/ka820.c:1.50	Tue Dec 16 22:35:28 2008
+++ src/sys/arch/vax/vax/ka820.c	Sat Nov 21 04:45:39 2009
@@ -1,4 +1,4 @@
-/*	$NetBSD: ka820.c,v 1.50 2008/12/16 22:35:28 christos Exp $	*/
+/*	$NetBSD: ka820.c,v 1.51 2009/11/21 04:45:39 rmind Exp $	*/
 /*
  * Copyright (c) 1988 Regents of the University of California.
  * All rights reserved.
@@ -39,7 +39,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ka820.c,v 1.50 2008/12/16 22:35:28 christos Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ka820.c,v 1.51 2009/11/21 04:45:39 rmind Exp $");
 
 #include "opt_multiprocessor.h"
 
@@ -50,7 +50,6 @@
 #include <sys/systm.h>
 #include <sys/conf.h>
 #include <sys/proc.h>
-#include <sys/user.h>
 
 #include <uvm/uvm_extern.h>
 
@@ -535,6 +534,7 @@
 static void
 ka820_startslave(struct cpu_info *ci)
 {
+	const struct pcb *pcb = lwp_getpcb(ci->ci_data.cpu_onproc);
 	const int id = ci->ci_slotid;
 	int i;
 
@@ -548,8 +548,7 @@
 	ka820_txrx(id, "D/I 4 %x\r", ci->ci_istack);	/* Interrupt stack */
 	ka820_txrx(id, "D/I C %x\r", mfpr(PR_SBR));	/* SBR */
 	ka820_txrx(id, "D/I D %x\r", mfpr(PR_SLR));	/* SLR */
-	ka820_txrx(id, "D/I 10 %x\r",			/* PCB for idle proc */
-	    ci->ci_data.cpu_onproc->l_addr->u_pcb.pcb_paddr);
+	ka820_txrx(id, "D/I 10 %x\r", pcb->pcb_paddr);	/* PCB for idle proc */
 	ka820_txrx(id, "D/I 11 %x\r", mfpr(PR_SCBB));	/* SCB */
 	ka820_txrx(id, "D/I 38 %x\r", mfpr(PR_MAPEN));	/* Enable MM */
 	ka820_txrx(id, "S %x\r", (int)&vax_mp_tramp);	/* Start! */

Index: src/sys/arch/vax/vax/ibcs2_machdep.c
diff -u src/sys/arch/vax/vax/ibcs2_machdep.c:1.10 src/sys/arch/vax/vax/ibcs2_machdep.c:1.11
--- src/sys/arch/vax/vax/ibcs2_machdep.c:1.10	Mon Apr 28 20:23:39 2008
+++ src/sys/arch/vax/vax/ibcs2_machdep.c	Sat Nov 21 04:45:39 2009
@@ -1,4 +1,4 @@
-/*	$NetBSD: ibcs2_machdep.c,v 1.10 2008/04/28 20:23:39 martin Exp $	*/
+/*	$NetBSD: ibcs2_machdep.c,v 1.11 2009/11/21 04:45:39 rmind Exp $	*/
 
 /*-
  * Copyright (c) 1997 The NetBSD Foundation, Inc.
@@ -30,13 +30,12 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ibcs2_machdep.c,v 1.10 2008/04/28 20:23:39 martin Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ibcs2_machdep.c,v 1.11 2009/11/21 04:45:39 rmind Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
 #include <sys/proc.h>
 #include <sys/exec.h>
-#include <sys/user.h>
 #include <sys/signalvar.h>
 #include <sys/signal.h>
 

Index: src/sys/arch/vax/vax/ka6400.c
diff -u src/sys/arch/vax/vax/ka6400.c:1.13 src/sys/arch/vax/vax/ka6400.c:1.14
--- src/sys/arch/vax/vax/ka6400.c:1.13	Tue Mar 11 05:34:03 2008
+++ src/sys/arch/vax/vax/ka6400.c	Sat Nov 21 04:45:39 2009
@@ -1,4 +1,4 @@
-/*	$NetBSD: ka6400.c,v 1.13 2008/03/11 05:34:03 matt Exp $	*/
+/*	$NetBSD: ka6400.c,v 1.14 2009/11/21 04:45:39 rmind Exp $	*/
 
 /*
  * Copyright (c) 2000 Ludd, University of Lule}, Sweden. All rights reserved.
@@ -40,7 +40,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ka6400.c,v 1.13 2008/03/11 05:34:03 matt Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ka6400.c,v 1.14 2009/11/21 04:45:39 rmind Exp $");
 
 #include "opt_multiprocessor.h"
 
@@ -50,7 +50,6 @@
 #include <sys/device.h>
 #include <sys/systm.h>
 #include <sys/conf.h>
-#include <sys/user.h>
 
 #include <machine/ka670.h>
 #include <machine/cpu.h>
@@ -339,6 +338,7 @@
 static void
 ka6400_startslave(struct cpu_info *ci)
 {
+	const struct pcb *pcb = lwp_getpcb(ci->ci_data.cpu_onproc);
 	const int id = ci->ci_slotid;
 	int i;
 
@@ -352,8 +352,7 @@
 	ka6400_txrx(id, "D/I 4 %x\r", ci->ci_istack);	/* Interrupt stack */
 	ka6400_txrx(id, "D/I C %x\r", mfpr(PR_SBR));	/* SBR */
 	ka6400_txrx(id, "D/I D %x\r", mfpr(PR_SLR));	/* SLR */
-	ka6400_txrx(id, "D/I 10 %x\r",			/* PCB for idle proc */
-	    ci->ci_data.cpu_onproc->l_addr->u_pcb.pcb_paddr);
+	ka6400_txrx(id, "D/I 10 %x\r", pcb->pcb_paddr);	/* PCB for idle proc */
 	ka6400_txrx(id, "D/I 11 %x\r", mfpr(PR_SCBB));	/* SCB */
 	ka6400_txrx(id, "D/I 38 %x\r", mfpr(PR_MAPEN)); /* Enable MM */
 	ka6400_txrx(id, "S %x\r", (int)&vax_mp_tramp); /* Start! */
Index: src/sys/arch/vax/vax/ka88.c
diff -u src/sys/arch/vax/vax/ka88.c:1.13 src/sys/arch/vax/vax/ka88.c:1.14
--- src/sys/arch/vax/vax/ka88.c:1.13	Tue Mar 11 05:34:03 2008
+++ src/sys/arch/vax/vax/ka88.c	Sat Nov 21 04:45:39 2009
@@ -1,4 +1,4 @@
-/*	$NetBSD: ka88.c,v 1.13 2008/03/11 05:34:03 matt Exp $	*/
+/*	$NetBSD: ka88.c,v 1.14 2009/11/21 04:45:39 rmind Exp $	*/
 
 /*
  * Copyright (c) 2000 Ludd, University of Lule}, Sweden. All rights reserved.
@@ -39,7 +39,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ka88.c,v 1.13 2008/03/11 05:34:03 matt Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ka88.c,v 1.14 2009/11/21 04:45:39 rmind Exp $");
 
 #include "opt_multiprocessor.h"
 
@@ -50,7 +50,6 @@
 #include <sys/systm.h>
 #include <sys/conf.h>
 #include <sys/cpu.h>
-#include <sys/user.h>
 #include <sys/malloc.h>
 #include <sys/lwp.h>
 
@@ -374,6 +373,7 @@
 static void
 ka88_startslave(struct cpu_info *ci)
 {
+	const struct pcb *pcb = lwp_getpcb(ci->ci_data.cpu_onproc);
 	const int id = ci->ci_slotid;
 	int i;
 
@@ -387,8 +387,7 @@
 	ka88_txrx(id, "D/I 4 %x\r", ci->ci_istack);	/* Interrupt stack */
 	ka88_txrx(id, "D/I C %x\r", mfpr(PR_SBR));	/* SBR */
 	ka88_txrx(id, "D/I D %x\r", mfpr(PR_SLR));	/* SLR */
-	ka88_txrx(id, "D/I 10 %x\r",			/* PCB for idle proc */
-	    ci->ci_data.cpu_onproc->l_addr->u_pcb.pcb_paddr);
+	ka88_txrx(id, "D/I 10 %x\r", pcb->pcb_paddr);	/* PCB for idle proc */
 	ka88_txrx(id, "D/I 11 %x\r", mfpr(PR_SCBB));	/* SCB */
 	ka88_txrx(id, "D/I 38 %x\r", mfpr(PR_MAPEN)); /* Enable MM */
 	ka88_txrx(id, "S %x\r", (int)&vax_mp_tramp); /* Start! */

Index: src/sys/arch/vax/vax/machdep.c
diff -u src/sys/arch/vax/vax/machdep.c:1.177 src/sys/arch/vax/vax/machdep.c:1.178
--- src/sys/arch/vax/vax/machdep.c:1.177	Mon Oct 26 19:16:58 2009
+++ src/sys/arch/vax/vax/machdep.c	Sat Nov 21 04:45:39 2009
@@ -1,4 +1,4 @@
-/* $NetBSD: machdep.c,v 1.177 2009/10/26 19:16:58 cegger Exp $	 */
+/* $NetBSD: machdep.c,v 1.178 2009/11/21 04:45:39 rmind Exp $	 */
 
 /*
  * Copyright (c) 1982, 1986, 1990 The Regents of the University of California.
@@ -83,7 +83,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: machdep.c,v 1.177 2009/10/26 19:16:58 cegger Exp $");
+__KERNEL_RCSID(0, "$NetBSD: machdep.c,v 1.178 2009/11/21 04:45:39 rmind Exp $");
 
 #include "opt_ddb.h"
 #include "opt_compat_netbsd.h"
@@ -97,7 +97,6 @@
 #include <sys/systm.h>
 #include <sys/extent.h>
 #include <sys/proc.h>
-#include <sys/user.h>
 #include <sys/time.h>
 #include <sys/signal.h>
 #include <sys/kernel.h>
@@ -329,8 +328,8 @@
 	}
 #endif
 #ifdef DEBUG
-	if (sizeof(struct user) > REDZONEADDR)
-		panic("struct user inside red zone");
+	if (sizeof(struct pcb) > REDZONEADDR)
+		panic("struct pcb inside red zone");
 #endif
 }
 
@@ -462,7 +461,8 @@
 int
 process_read_regs(struct lwp *l, struct reg *regs)
 {
-	struct trapframe *tf = l->l_addr->u_pcb.framep;
+	struct pcb *pcb = lwp_getpcb(l);
+	struct trapframe *tf = pcb->framep;
 
 	memcpy(&regs->r0, &tf->r0, 12 * sizeof(int));
 	regs->ap = tf->ap;
@@ -476,7 +476,8 @@
 int
 process_write_regs(struct lwp *l, const struct reg *regs)
 {
-	struct trapframe *tf = l->l_addr->u_pcb.framep;
+	struct pcb *pcb = lwp_getpcb(l);
+	struct trapframe *tf = pcb->framep;
 
 	memcpy(&tf->r0, &regs->r0, 12 * sizeof(int));
 	tf->ap = regs->ap;
@@ -491,10 +492,11 @@
 int
 process_set_pc(struct lwp *l, void *addr)
 {
+	struct pcb *pcb = lwp_getpcb(l);
 	struct	trapframe *tf;
 	void	*ptr;
 
-	ptr = (char *) l->l_addr->u_pcb.framep;
+	ptr = (char *)pcb->framep;
 	tf = ptr;
 
 	tf->pc = (unsigned) addr;
@@ -505,10 +507,11 @@
 int
 process_sstep(struct lwp *l, int sstep)
 {
-	void	       *ptr;
+	struct pcb *pcb = lwp_getpcb(l);
 	struct trapframe *tf;
+	void *ptr;
 
-	ptr = l->l_addr->u_pcb.framep;
+	ptr = pcb->framep;
 	tf = ptr;
 
 	if (sstep)
@@ -637,7 +640,8 @@
 cpu_upcall(struct lwp *l, int type, int nevents, int ninterrupted,
     void *sas, void *ap, void *sp, sa_upcall_t upcall)
 {
-	struct trapframe *tf = l->l_addr->u_pcb.framep;
+	struct pcb *pcb = lwp_getpcb(l);
+	struct trapframe *tf = pcb->framep;
 	uint32_t saframe[11], *fp = saframe;
 
 	sp = (void *)((uintptr_t)sp - sizeof(saframe));
@@ -682,7 +686,8 @@
 void
 cpu_getmcontext(struct lwp *l, mcontext_t *mcp, unsigned int *flags)
 {
-	const struct trapframe *tf = l->l_addr->u_pcb.framep;
+	const struct pcb *pcb = lwp_getpcb(l);
+	const struct trapframe *tf = pcb->framep;
 	__greg_t *gr = mcp->__gregs;
 
 	gr[_REG_R0] = tf->r0;
@@ -708,7 +713,8 @@
 int
 cpu_setmcontext(struct lwp *l, const mcontext_t *mcp, unsigned int flags)
 {
-	struct trapframe *tf = l->l_addr->u_pcb.framep;
+	struct pcb *pcb = lwp_getpcb(l);
+	struct trapframe *tf = pcb->framep;
 	const __greg_t *gr = mcp->__gregs;
 
 	if ((flags & _UC_CPU) == 0)

Index: src/sys/arch/vax/vax/pmap.c
diff -u src/sys/arch/vax/vax/pmap.c:1.172 src/sys/arch/vax/vax/pmap.c:1.173
--- src/sys/arch/vax/vax/pmap.c:1.172	Sat Nov  7 07:27:48 2009
+++ src/sys/arch/vax/vax/pmap.c	Sat Nov 21 04:45:39 2009
@@ -1,4 +1,4 @@
-/*	$NetBSD: pmap.c,v 1.172 2009/11/07 07:27:48 cegger Exp $	   */
+/*	$NetBSD: pmap.c,v 1.173 2009/11/21 04:45:39 rmind Exp $	   */
 /*
  * Copyright (c) 1994, 1998, 1999, 2003 Ludd, University of Lule}, Sweden.
  * All rights reserved.
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: pmap.c,v 1.172 2009/11/07 07:27:48 cegger Exp $");
+__KERNEL_RCSID(0, "$NetBSD: pmap.c,v 1.173 2009/11/21 04:45:39 rmind Exp $");
 
 #include "opt_ddb.h"
 #include "opt_cputype.h"
@@ -1664,7 +1664,7 @@
 void
 pmap_activate(struct lwp *l)
 {
-	struct pcb * const pcb = &l->l_addr->u_pcb;
+	struct pcb * const pcb = lwp_getpcb(l);
 	struct pmap * const pmap = l->l_proc->p_vmspace->vm_map.pmap;
 
 	PMDEBUG(("pmap_activate: l %p\n", l));
@@ -1694,7 +1694,7 @@
 void	
 pmap_deactivate(struct lwp *l)
 {
-	struct pcb * const pcb = &l->l_addr->u_pcb;
+	struct pcb * const pcb = lwp_getpcb(l);
 	struct pmap * const pmap = l->l_proc->p_vmspace->vm_map.pmap;
 
 	PMDEBUG(("pmap_deactivate: l %p\n", l));

Index: src/sys/arch/vax/vax/syscall.c
diff -u src/sys/arch/vax/vax/syscall.c:1.16 src/sys/arch/vax/vax/syscall.c:1.17
--- src/sys/arch/vax/vax/syscall.c:1.16	Tue Jun  2 23:21:37 2009
+++ src/sys/arch/vax/vax/syscall.c	Sat Nov 21 04:45:39 2009
@@ -1,4 +1,4 @@
-/*	$NetBSD: syscall.c,v 1.16 2009/06/02 23:21:37 pooka Exp $     */
+/*	$NetBSD: syscall.c,v 1.17 2009/11/21 04:45:39 rmind Exp $     */
 
 /*
  * Copyright (c) 1994 Ludd, University of Lule}, Sweden.
@@ -33,7 +33,7 @@
  /* All bugs are subject to removal without further notice */
 		
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: syscall.c,v 1.16 2009/06/02 23:21:37 pooka Exp $");
+__KERNEL_RCSID(0, "$NetBSD: syscall.c,v 1.17 2009/11/21 04:45:39 rmind Exp $");
 
 #include "opt_multiprocessor.h"
 #include "opt_sa.h"
@@ -41,7 +41,6 @@
 #include <sys/types.h>
 #include <sys/param.h>
 #include <sys/proc.h>
-#include <sys/user.h>
 #include <sys/syscall.h>
 #include <sys/syscallvar.h>
 #include <sys/systm.h>
@@ -87,6 +86,7 @@
 	struct trapframe * const exptr = frame;
 	struct lwp * const l = curlwp;
 	struct proc * const p = l->l_proc;
+	struct pcb *pcb = lwp_getpcb(l);
 	const struct emul * const emul = p->p_emul;
 	const struct sysent *callp = emul->e_sysent;
 	const u_quad_t oticks = p->p_sticks;
@@ -99,7 +99,7 @@
  
  	LWP_CACHE_CREDS(l, p);
 
-	l->l_addr->u_pcb.framep = frame;
+	pcb->framep = frame;
 
 	if ((unsigned long) frame->code >= emul->e_nsysent)
 		callp += emul->e_nosys;
@@ -131,7 +131,7 @@
 		error = sy_call(callp, curlwp, args, rval);
 	}
 
-	KASSERT(exptr == l->l_addr->u_pcb.framep);
+	KASSERT(exptr == pcb->framep);
 	TDB(("return %s pc %lx, psl %lx, sp %lx, pid %d, err %d r0 %d, r1 %d, "
 	    "frame %p\n", syscallnames[exptr->code], exptr->pc, exptr->psl,
 	    exptr->sp, p->p_pid, error, rval[0], rval[1], exptr));
@@ -167,8 +167,9 @@
 void
 child_return(void *arg)
 {
-        struct lwp *l = arg;
+	struct lwp *l = arg;
+	struct pcb *pcb = lwp_getpcb(l);
 
-	userret(l, l->l_addr->u_pcb.framep, 0);
+	userret(l, pcb->framep, 0);
 	ktrsysret(SYS_fork, 0, 0);
 }

Index: src/sys/arch/vax/vax/trap.c
diff -u src/sys/arch/vax/vax/trap.c:1.119 src/sys/arch/vax/vax/trap.c:1.120
--- src/sys/arch/vax/vax/trap.c:1.119	Wed Feb 25 19:56:49 2009
+++ src/sys/arch/vax/vax/trap.c	Sat Nov 21 04:45:39 2009
@@ -1,4 +1,4 @@
-/*	$NetBSD: trap.c,v 1.119 2009/02/25 19:56:49 mhitch Exp $     */
+/*	$NetBSD: trap.c,v 1.120 2009/11/21 04:45:39 rmind Exp $     */
 
 /*
  * Copyright (c) 1994 Ludd, University of Lule}, Sweden.
@@ -33,7 +33,7 @@
  /* All bugs are subject to removal without further notice */
 		
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: trap.c,v 1.119 2009/02/25 19:56:49 mhitch Exp $");
+__KERNEL_RCSID(0, "$NetBSD: trap.c,v 1.120 2009/11/21 04:45:39 rmind Exp $");
 
 #include "opt_ddb.h"
 #include "opt_multiprocessor.h"
@@ -41,7 +41,6 @@
 #include <sys/types.h>
 #include <sys/param.h>
 #include <sys/proc.h>
-#include <sys/user.h>
 #include <sys/syscall.h>
 #include <sys/systm.h>
 #include <sys/signalvar.h>
@@ -99,9 +98,9 @@
 int no_traps = 18;
 
 #define USERMODE_P(framep)   ((((framep)->psl) & (PSL_U)) == PSL_U)
-#define FAULTCHK						\
-	if (l->l_addr->u_pcb.iftrap) {				\
-		frame->pc = (unsigned)l->l_addr->u_pcb.iftrap;	\
+#define FAULTCHK(pcb)						\
+	if (pcb->iftrap) {					\
+		frame->pc = (unsigned)pcb->iftrap;		\
 		frame->psl &= ~PSL_FPD;				\
 		frame->r0 = EFAULT;/* for copyin/out */		\
 		frame->r1 = -1; /* for fetch/store */		\
@@ -118,6 +117,7 @@
 	const bool usermode = USERMODE_P(frame);;
 	struct	lwp *l;
 	struct	proc *p;
+	struct	pcb *pcb;
 	u_quad_t oticks = 0;
 	struct vmspace *vm;
 	struct vm_map *map;
@@ -127,11 +127,12 @@
 	KASSERT(l != NULL);
 	p = l->l_proc;
 	KASSERT(p != NULL);
+	pcb = lwp_getpcb(l);
 	uvmexp.traps++;
 	if (usermode) {
 		type |= T_USER;
 		oticks = p->p_sticks;
-		l->l_addr->u_pcb.framep = frame; 
+		pcb->framep = frame; 
 		LWP_CACHE_CREDS(l, p);
 	}
 
@@ -157,7 +158,7 @@
 	case T_KSPNOTVAL:
 		panic("%d.%d (%s): KSP invalid %...@%#x pcb %p fp %#x psl %#x)",
 		    p->p_pid, l->l_lid, l->l_name ? l->l_name : "??",
-		    mfpr(PR_KSP), (u_int)frame->pc, l->l_addr,
+		    mfpr(PR_KSP), (u_int)frame->pc, lwp_getpcb(l),
 		    (u_int)frame->fp, (u_int)frame->psl);
 
 	case T_TRANSFLT|T_USER:
@@ -228,7 +229,7 @@
 		rv = uvm_fault(map, addr, ftype);
 		if (rv != 0) {
 			if (!usermode) {
-				FAULTCHK;
+				FAULTCHK(pcb);
 				panic("Segv in kernel mode: pc %x addr %x",
 				    (u_int)frame->pc, (u_int)frame->code);
 			}
@@ -355,8 +356,10 @@
 setregs(struct lwp *l, struct exec_package *pack, u_long stack)
 {
 	struct trapframe *exptr;
+	struct pcb *pcb;
 
-	exptr = l->l_addr->u_pcb.framep;
+	pcb = lwp_getpcb(l);
+	exptr = pcb->framep;
 	exptr->pc = pack->ep_entry + 2;
 	exptr->sp = stack;
 	exptr->r6 = stack;				/* for ELF */
@@ -375,6 +378,7 @@
 	int err;
 	ucontext_t *uc = arg;
 	struct lwp *l = curlwp;
+	struct pcb *pcb;
 
 	err = cpu_setmcontext(l, &uc->uc_mcontext, uc->uc_flags);
 #if DIAGNOSTIC
@@ -385,14 +389,17 @@
 	pool_put(&lwp_uc_pool, uc);
 
 	/* XXX - profiling spoiled here */
-	userret(l, l->l_addr->u_pcb.framep, l->l_proc->p_sticks);
+	pcb = lwp_getpcb(l);
+	userret(l, pcb->framep, l->l_proc->p_sticks);
 }
 
 void
 upcallret(struct lwp *l)
 {
+	struct pcb *pcb;
 
 	/* XXX - profiling */
-	userret(l, l->l_addr->u_pcb.framep, l->l_proc->p_sticks);
+	pcb = lwp_getpcb(l);
+	userret(l, pcb->framep, l->l_proc->p_sticks);
 }
 

Index: src/sys/arch/vax/vax/vm_machdep.c
diff -u src/sys/arch/vax/vax/vm_machdep.c:1.108 src/sys/arch/vax/vax/vm_machdep.c:1.109
--- src/sys/arch/vax/vax/vm_machdep.c:1.108	Sat Oct 24 20:03:56 2009
+++ src/sys/arch/vax/vax/vm_machdep.c	Sat Nov 21 04:45:39 2009
@@ -1,4 +1,4 @@
-/*	$NetBSD: vm_machdep.c,v 1.108 2009/10/24 20:03:56 rmind Exp $	     */
+/*	$NetBSD: vm_machdep.c,v 1.109 2009/11/21 04:45:39 rmind Exp $	     */
 
 /*
  * Copyright (c) 1994 Ludd, University of Lule}, Sweden.
@@ -31,7 +31,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: vm_machdep.c,v 1.108 2009/10/24 20:03:56 rmind Exp $");
+__KERNEL_RCSID(0, "$NetBSD: vm_machdep.c,v 1.109 2009/11/21 04:45:39 rmind Exp $");
 
 #include "opt_execfmt.h"
 #include "opt_compat_ultrix.h"
@@ -42,7 +42,6 @@
 #include <sys/param.h>
 #include <sys/systm.h>
 #include <sys/proc.h>
-#include <sys/user.h>
 #include <sys/exec.h>
 #include <sys/exec_aout.h>
 #include <sys/vnode.h>
@@ -96,11 +95,14 @@
 cpu_lwp_fork(struct lwp *l1, struct lwp *l2, void *stack, size_t stacksize,
     void (*func)(void *), void *arg)
 {
-	struct pcb *pcb;
+	struct pcb *pcb1, *pcb2;
 	struct trapframe *tf;
 	struct callsframe *cf;
 	extern int sret; /* Return address in trap routine */
 
+	pcb1 = lwp_getpcb(l1);
+	pcb2 = lwp_getpcb(l2);
+
 #ifdef DIAGNOSTIC
 	/*
 	 * if p1 != curlwp && p1 == &proc0, we're creating a kernel thread.
@@ -113,8 +115,8 @@
 	 * Copy the trap frame.
 	 */
 	tf = (struct trapframe *)((u_int)l2->l_addr + USPACE) - 1;
-	l2->l_addr->u_pcb.framep = tf;
-	*tf = *(struct trapframe *)l1->l_addr->u_pcb.framep;
+	pcb2->framep = tf;
+	*tf = *(struct trapframe *)pcb1->framep;
 
 	/*
 	 * Activate address space for the new process.	The PTEs have
@@ -143,21 +145,20 @@
 	 * Set up internal defs in PCB. This matches the "fake" CALLS frame
 	 * that were constructed earlier.
 	 */
-	pcb = &l2->l_addr->u_pcb;
-	pcb->iftrap = NULL;
-	pcb->AP = (uintptr_t)&cf->ca_argno;
-	pcb->KSP = (uintptr_t)cf;
-	pcb->FP = (uintptr_t)cf;
-	pcb->PC = (uintptr_t)cpu_lwp_bootstrap + 2;
-	pcb->PSL = PSL_HIGHIPL;
-	pcb->ESP = (uintptr_t)&pcb->iftrap;
-	pcb->SSP = (uintptr_t)l2;
+	pcb2->iftrap = NULL;
+	pcb2->AP = (uintptr_t)&cf->ca_argno;
+	pcb2->KSP = (uintptr_t)cf;
+	pcb2->FP = (uintptr_t)cf;
+	pcb2->PC = (uintptr_t)cpu_lwp_bootstrap + 2;
+	pcb2->PSL = PSL_HIGHIPL;
+	pcb2->ESP = (uintptr_t)&pcb2->iftrap;
+	pcb2->SSP = (uintptr_t)l2;
 
 	/* pcb->R[0] (oldlwp) set by Swtchto */
-	pcb->R[1] = (uintptr_t)l2;
-	pcb->R[2] = (uintptr_t)func;
-	pcb->R[3] = (uintptr_t)arg;
-	pcb->pcb_paddr = kvtophys(pcb);
+	pcb2->R[1] = (uintptr_t)l2;
+	pcb2->R[2] = (uintptr_t)func;
+	pcb2->R[3] = (uintptr_t)arg;
+	pcb2->pcb_paddr = kvtophys(pcb2);
 
 	/*
 	 * If specified, give the child a different stack.
@@ -179,7 +180,7 @@
 void
 cpu_setfunc(struct lwp *l, void (*func)(void *), void *arg)
 {
-	struct pcb *pcb = &l->l_addr->u_pcb;
+	struct pcb *pcb = lwp_getpcb(l);
 	struct trapframe *tf = (struct trapframe *)((u_int)l->l_addr + USPACE) - 1;
 	struct callsframe *cf;
 	extern int sret;

Index: src/sys/arch/vax/vsa/asc_vsbus.c
diff -u src/sys/arch/vax/vsa/asc_vsbus.c:1.40 src/sys/arch/vax/vsa/asc_vsbus.c:1.41
--- src/sys/arch/vax/vsa/asc_vsbus.c:1.40	Mon Apr 28 20:23:39 2008
+++ src/sys/arch/vax/vsa/asc_vsbus.c	Sat Nov 21 04:45:39 2009
@@ -1,4 +1,4 @@
-/*	$NetBSD: asc_vsbus.c,v 1.40 2008/04/28 20:23:39 martin Exp $	*/
+/*	$NetBSD: asc_vsbus.c,v 1.41 2009/11/21 04:45:39 rmind Exp $	*/
 
 /*-
  * Copyright (c) 1998 The NetBSD Foundation, Inc.
@@ -31,7 +31,7 @@
 
 #include <sys/cdefs.h>			/* RCS ID & Copyright macro defns */
 
-__KERNEL_RCSID(0, "$NetBSD: asc_vsbus.c,v 1.40 2008/04/28 20:23:39 martin Exp $");
+__KERNEL_RCSID(0, "$NetBSD: asc_vsbus.c,v 1.41 2009/11/21 04:45:39 rmind Exp $");
 
 #include "locators.h"
 #include "opt_cputype.h"
@@ -45,7 +45,6 @@
 #include <sys/device.h>
 #include <sys/buf.h>
 #include <sys/proc.h>
-#include <sys/user.h>
 #include <sys/reboot.h>
 #include <sys/queue.h>
 

Index: src/sys/arch/vax/vsa/hdc9224.c
diff -u src/sys/arch/vax/vsa/hdc9224.c:1.49 src/sys/arch/vax/vsa/hdc9224.c:1.50
--- src/sys/arch/vax/vsa/hdc9224.c:1.49	Mon Oct 26 19:16:58 2009
+++ src/sys/arch/vax/vsa/hdc9224.c	Sat Nov 21 04:45:39 2009
@@ -1,4 +1,4 @@
-/*	$NetBSD: hdc9224.c,v 1.49 2009/10/26 19:16:58 cegger Exp $ */
+/*	$NetBSD: hdc9224.c,v 1.50 2009/11/21 04:45:39 rmind Exp $ */
 /*
  * Copyright (c) 1996 Ludd, University of Lule}, Sweden.
  * All rights reserved.
@@ -51,7 +51,7 @@
 #undef	RDDEBUG
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: hdc9224.c,v 1.49 2009/10/26 19:16:58 cegger Exp $");
+__KERNEL_RCSID(0, "$NetBSD: hdc9224.c,v 1.50 2009/11/21 04:45:39 rmind Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -63,7 +63,6 @@
 #include <sys/buf.h>
 #include <sys/bufq.h>
 #include <sys/proc.h>
-#include <sys/user.h>
 #include <sys/device.h>
 #include <sys/disklabel.h>
 #include <sys/disk.h>

Index: src/sys/arch/vax/vsa/ncr.c
diff -u src/sys/arch/vax/vsa/ncr.c:1.46 src/sys/arch/vax/vsa/ncr.c:1.47
--- src/sys/arch/vax/vsa/ncr.c:1.46	Mon Apr 28 20:23:39 2008
+++ src/sys/arch/vax/vsa/ncr.c	Sat Nov 21 04:45:39 2009
@@ -1,4 +1,4 @@
-/*	$NetBSD: ncr.c,v 1.46 2008/04/28 20:23:39 martin Exp $	*/
+/*	$NetBSD: ncr.c,v 1.47 2009/11/21 04:45:39 rmind Exp $	*/
 
 /*-
  * Copyright (c) 1996 The NetBSD Foundation, Inc.
@@ -42,7 +42,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ncr.c,v 1.46 2008/04/28 20:23:39 martin Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ncr.c,v 1.47 2009/11/21 04:45:39 rmind Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -52,7 +52,6 @@
 #include <sys/device.h>
 #include <sys/buf.h>
 #include <sys/proc.h>
-#include <sys/user.h>
 
 #include <dev/scsipi/scsi_all.h>
 #include <dev/scsipi/scsipi_all.h>

Index: src/sys/arch/vax/vsa/vsbus.c
diff -u src/sys/arch/vax/vsa/vsbus.c:1.57 src/sys/arch/vax/vsa/vsbus.c:1.58
--- src/sys/arch/vax/vsa/vsbus.c:1.57	Mon Oct 26 19:16:58 2009
+++ src/sys/arch/vax/vsa/vsbus.c	Sat Nov 21 04:45:39 2009
@@ -1,4 +1,4 @@
-/*	$NetBSD: vsbus.c,v 1.57 2009/10/26 19:16:58 cegger Exp $ */
+/*	$NetBSD: vsbus.c,v 1.58 2009/11/21 04:45:39 rmind Exp $ */
 /*
  * Copyright (c) 1996, 1999 Ludd, University of Lule}, Sweden.
  * All rights reserved.
@@ -33,7 +33,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: vsbus.c,v 1.57 2009/10/26 19:16:58 cegger Exp $");
+__KERNEL_RCSID(0, "$NetBSD: vsbus.c,v 1.58 2009/11/21 04:45:39 rmind Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -42,7 +42,6 @@
 #include <sys/file.h>
 #include <sys/ioctl.h>
 #include <sys/proc.h>
-#include <sys/user.h>
 #include <sys/device.h>
 #include <sys/disklabel.h>
 #include <sys/syslog.h>

Reply via email to