Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 24 Apr 2009 04:17:21 +0000 (UTC)
From:      Oleksandr Tymoshenko <gonzo@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-projects@freebsd.org
Subject:   svn commit: r191451 - projects/mips/sys/mips/include
Message-ID:  <200904240417.n3O4HLI8008098@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: gonzo
Date: Fri Apr 24 04:17:21 2009
New Revision: 191451
URL: http://svn.freebsd.org/changeset/base/191451

Log:
  - Define accessor functions for CP0 Config(16) register selects 1, 2, 3.
      Content of these registers is defined in MIPS spec and can be used
      for obtaining info about CPU capabilities.

Modified:
  projects/mips/sys/mips/include/cpufunc.h

Modified: projects/mips/sys/mips/include/cpufunc.h
==============================================================================
--- projects/mips/sys/mips/include/cpufunc.h	Fri Apr 24 03:51:11 2009	(r191450)
+++ projects/mips/sys/mips/include/cpufunc.h	Fri Apr 24 04:17:21 2009	(r191451)
@@ -212,18 +212,24 @@ MIPS_RDRW32_COP0(pagemask, MIPS_COP_0_TL
 MIPS_RDRW32_COP0(prid, MIPS_COP_0_PRID);
 MIPS_RDRW32_COP0(watchlo, MIPS_COP_0_WATCH_LO);
 MIPS_RDRW32_COP0(watchhi, MIPS_COP_0_WATCH_HI);
+#undef	MIPS_RDRW32_COP0
 
-static __inline uint32_t
-mips_rd_config_sel1(void)
-{
-	int v0;
-	__asm __volatile("mfc0 %[v0], $16, 1 ;"
-			 : [v0] "=&r" (v0));
-	mips_barrier();
-	return (v0);
+#define MIPS_RD_CONFIG_SEL(sel) \
+static __inline uint32_t				\
+mips_rd_config_sel##sel(void)				\
+{							\
+	int v0;						\
+	__asm __volatile("mfc0 %[v0], $16, " #sel " ;"	\
+			 : [v0] "=&r" (v0));		\
+	mips_barrier();					\
+	return (v0);					\
 }
 
-#undef	MIPS_RDRW32_COP0
+
+MIPS_RD_CONFIG_SEL(1);
+MIPS_RD_CONFIG_SEL(2);
+MIPS_RD_CONFIG_SEL(3);
+#undef	MIPS_RD_CONFIG_SEL
 
 static __inline register_t
 intr_disable(void)



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200904240417.n3O4HLI8008098>