svn commit: r191451 - projects/mips/sys/mips/include

Oleksandr Tymoshenko gonzo at FreeBSD.org
Fri Apr 24 04:17:21 UTC 2009


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)


More information about the svn-src-projects mailing list