Module Name:    src
Committed By:   rmind
Date:           Wed Nov 25 13:53:19 UTC 2009

Modified Files:
        src/sys/arch/i386/i386: db_trace.c
        src/sys/sys: lwp.h

Log Message:
Restore exporting of lwp_getpcb() to userland and fix DDB properly.
While the header might be abstracted better, it is a separate issue.


To generate a diff of this commit:
cvs rdiff -u -r1.65 -r1.66 src/sys/arch/i386/i386/db_trace.c
cvs rdiff -u -r1.125 -r1.126 src/sys/sys/lwp.h

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/i386/i386/db_trace.c
diff -u src/sys/arch/i386/i386/db_trace.c:1.65 src/sys/arch/i386/i386/db_trace.c:1.66
--- src/sys/arch/i386/i386/db_trace.c:1.65	Sat Nov 21 19:59:51 2009
+++ src/sys/arch/i386/i386/db_trace.c	Wed Nov 25 13:53:19 2009
@@ -1,4 +1,4 @@
-/*	$NetBSD: db_trace.c,v 1.65 2009/11/21 19:59:51 dsl Exp $	*/
+/*	$NetBSD: db_trace.c,v 1.66 2009/11/25 13:53:19 rmind Exp $	*/
 
 /* 
  * Mach Operating System
@@ -27,7 +27,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: db_trace.c,v 1.65 2009/11/21 19:59:51 dsl Exp $");
+__KERNEL_RCSID(0, "$NetBSD: db_trace.c,v 1.66 2009/11/25 13:53:19 rmind Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -452,6 +452,7 @@
 				    sizeof(l), (char *)&l);
 			}
 			(*pr)("lid %d ", l.l_lid);
+			pcb = lwp_getpcb(&l);
 #ifdef _KERNEL
 			if (l.l_proc == curproc &&
 			    (lwp_t *)lwpaddr == curlwp) {
@@ -461,11 +462,6 @@
 			} else
 #endif
 			{
-#ifdef _KERNEL
-				pcb = lwp_getpcb(&l);
-#else
-				pcb = &l.l_addr->u_pcb;
-#endif
 				db_read_bytes((db_addr_t)&pcb->pcb_ebp,
 				    sizeof(frame), (char *)&frame);
 				db_read_bytes((db_addr_t)(frame + 1),

Index: src/sys/sys/lwp.h
diff -u src/sys/sys/lwp.h:1.125 src/sys/sys/lwp.h:1.126
--- src/sys/sys/lwp.h:1.125	Sat Nov 21 19:54:49 2009
+++ src/sys/sys/lwp.h	Wed Nov 25 13:53:19 2009
@@ -1,4 +1,4 @@
-/*	$NetBSD: lwp.h,v 1.125 2009/11/21 19:54:49 dsl Exp $	*/
+/*	$NetBSD: lwp.h,v 1.126 2009/11/25 13:53:19 rmind Exp $	*/
 
 /*-
  * Copyright (c) 2001, 2006, 2007, 2008, 2009 The NetBSD Foundation, Inc.
@@ -197,6 +197,13 @@
 #define	UAREA_TO_USER(uarea)	((struct user *)((uarea) + UAREA_USER_OFFSET))
 #endif /* !defined(UAREA_TO_USER) */
 
+static inline void *
+lwp_getpcb(struct lwp *l)
+{
+
+	return &l->l_addr->u_pcb;
+}
+
 LIST_HEAD(lwplist, lwp);		/* a list of LWPs */
 
 #ifdef _KERNEL
@@ -391,13 +398,6 @@
 	return MAX(l->l_inheritedprio, pri);
 }
 
-static inline struct pcb *
-lwp_getpcb(lwp_t *l)
-{
-
-	return &l->l_addr->u_pcb;
-}
-
 int lwp_create(lwp_t *, struct proc *, vaddr_t, int,
     void *, size_t, void (*)(void *), void *, lwp_t **, int);
 

Reply via email to