Module Name:    src
Committed By:   matt
Date:           Tue Jun 21 06:32:36 UTC 2011

Modified Files:
        src/sys/arch/powerpc/include: cpu.h
        src/sys/arch/powerpc/powerpc: powerpc_machdep.c

Log Message:
Add a common cpu_ast(l, ci) routine.
Add a ci_pmap_asid_cur for BOOKE debugging.


To generate a diff of this commit:
cvs rdiff -u -r1.85 -r1.86 src/sys/arch/powerpc/include/cpu.h
cvs rdiff -u -r1.56 -r1.57 src/sys/arch/powerpc/powerpc/powerpc_machdep.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/powerpc/include/cpu.h
diff -u src/sys/arch/powerpc/include/cpu.h:1.85 src/sys/arch/powerpc/include/cpu.h:1.86
--- src/sys/arch/powerpc/include/cpu.h:1.85	Tue Jun 21 04:21:17 2011
+++ src/sys/arch/powerpc/include/cpu.h	Tue Jun 21 06:32:36 2011
@@ -1,4 +1,4 @@
-/*	$NetBSD: cpu.h,v 1.85 2011/06/21 04:21:17 matt Exp $	*/
+/*	$NetBSD: cpu.h,v 1.86 2011/06/21 06:32:36 matt Exp $	*/
 
 /*
  * Copyright (C) 1999 Wolfgang Solfrank.
@@ -113,6 +113,7 @@
 #define	CPUSAVE_SRR1	7		/* where SRR1 gets saved */
 	register_t ci_savearea[CPUSAVE_SIZE];
 #if defined(PPC_BOOKE) || defined(MODULAR) || defined(_MODULE)
+	uint32_t ci_pmap_asid_cur;
 	struct pmap_segtab *ci_pmap_segtabs[2];
 #define	ci_pmap_kern_segtab	ci_pmap_segtabs[0]
 #define	ci_pmap_user_segtab	ci_pmap_segtabs[1]
@@ -370,6 +371,7 @@
 
 vaddr_t	cpu_lwp_pc(struct lwp *);
 
+void	cpu_ast(struct lwp *, struct cpu_info *);
 void *	cpu_uarea_alloc(bool);
 bool	cpu_uarea_free(void *);
 void	cpu_need_resched(struct cpu_info *, int);

Index: src/sys/arch/powerpc/powerpc/powerpc_machdep.c
diff -u src/sys/arch/powerpc/powerpc/powerpc_machdep.c:1.56 src/sys/arch/powerpc/powerpc/powerpc_machdep.c:1.57
--- src/sys/arch/powerpc/powerpc/powerpc_machdep.c:1.56	Mon Jun 20 08:47:13 2011
+++ src/sys/arch/powerpc/powerpc/powerpc_machdep.c	Tue Jun 21 06:32:36 2011
@@ -1,4 +1,4 @@
-/*	$NetBSD: powerpc_machdep.c,v 1.56 2011/06/20 08:47:13 matt Exp $	*/
+/*	$NetBSD: powerpc_machdep.c,v 1.57 2011/06/21 06:32:36 matt Exp $	*/
 
 /*
  * Copyright (C) 1995, 1996 Wolfgang Solfrank.
@@ -32,7 +32,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: powerpc_machdep.c,v 1.56 2011/06/20 08:47:13 matt Exp $");
+__KERNEL_RCSID(0, "$NetBSD: powerpc_machdep.c,v 1.57 2011/06/21 06:32:36 matt Exp $");
 
 #include "opt_altivec.h"
 #include "opt_modular.h"
@@ -68,6 +68,10 @@
 #include <powerpc/altivec.h>
 #endif
 
+#ifdef MULTIPROCESOR
+#include <powerpc/pic/ipivar.h>
+#endif
+
 int cpu_timebase;
 int cpu_printfataltraps = 1;
 #if !defined(PPC_IBM4XX)
@@ -367,6 +371,22 @@
 }
 
 void
+cpu_ast(struct lwp *l, struct cpu_info *ci)
+{
+	l->l_md.md_astpending = 0;	/* we are about to do it */
+
+	if (l->l_pflag & LP_OWEUPC) {
+		l->l_pflag &= ~LP_OWEUPC;
+		ADDUPROF(l);
+	}
+
+	/* Check whether we are being preempted. */
+	if (ci->ci_want_resched) {
+		preempt();
+	}
+}
+
+void
 cpu_need_resched(struct cpu_info *ci, int flags)
 {
 	struct lwp * const l = ci->ci_data.cpu_onproc;

Reply via email to