Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/sys/arch/powerpc/include Make kernel profiling work.
details: https://anonhg.NetBSD.org/src/rev/0e4dade08d51
branches: trunk
changeset: 485079:0e4dade08d51
user: tsubai <tsubai%NetBSD.org@localhost>
date: Tue Apr 18 17:06:01 2000 +0000
description:
Make kernel profiling work.
diffstat:
sys/arch/powerpc/include/profile.h | 39 +++++++++++++++++++++++++++++++++++--
1 files changed, 36 insertions(+), 3 deletions(-)
diffs (51 lines):
diff -r 5680c9f57386 -r 0e4dade08d51 sys/arch/powerpc/include/profile.h
--- a/sys/arch/powerpc/include/profile.h Tue Apr 18 16:38:12 2000 +0000
+++ b/sys/arch/powerpc/include/profile.h Tue Apr 18 17:06:01 2000 +0000
@@ -1,4 +1,30 @@
-/* $NetBSD: profile.h,v 1.4 1999/03/05 07:59:14 tsubai Exp $ */
+/* $NetBSD: profile.h,v 1.5 2000/04/18 17:06:01 tsubai Exp $ */
+
+/*-
+ * Copyright (c) 2000 Tsubai Masanari. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. The name of the author may not be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
#define _MCOUNT_DECL void mcount
@@ -42,6 +68,13 @@
bctr; ");
#ifdef _KERNEL
-#define MCOUNT_ENTER
-#define MCONT_EXIT
+#define MCOUNT_ENTER \
+ __asm volatile("mfmsr %0" : "=r"(s)); \
+ if ((s & (PSL_IR | PSL_DR)) != (PSL_IR | PSL_DR)) \
+ return; /* XXX */ \
+ s &= ~PSL_POW; \
+ __asm volatile("mtmsr %0" :: "r"(s & ~PSL_EE))
+
+#define MCOUNT_EXIT \
+ __asm volatile("mtmsr %0" :: "r"(s))
#endif
Home |
Main Index |
Thread Index |
Old Index