Port-powerpc archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
mfdcr/mtdcr
Hello,
I'd like to move mfdcr()/mtdcr() macro definitions into a separate file.
Motivation:
* Currently, they're defined multiple times in include/ibm4xx/dcr40*.h
* For evbppc/virtex, I'd like to be able to access DCR without
also pulling in irrelevant address definitions (DCR address
layout is completely up to the HDL designer)
The diff below (relative to arch/powerpc/include/ibm4xx) creates dcr.h
and makes dcr40*.h use it. Other option would be to move the macros to
ibm4xx/cpu.h (the m{f,t}dcr instructions are 4xx specific).
Does it sound OK? If so, anyone wants to commit? ;-)
-- Jachym
--- /dev/null 2006-05-10 03:03:43.000000000 +0200
+++ dcr.h 2006-05-10 03:11:37.000000000 +0200
@@ -0,0 +1,20 @@
+/* $NetBSD$ */
+
+#ifndef _IBM4XX_DCR_H_
+#define _IBM4XX_DCR_H_
+
+#ifndef _LOCORE
+
+#define mtdcr(reg, val) \
+ __asm volatile("mtdcr %0,%1" : : "K"(reg), "r"(val))
+
+#define mfdcr(reg) \
+({ \
+ u_int32_t __val; \
+ \
+ __asm volatile("mfdcr %0,%1" : "=r"(__val) : "K"(reg)); \
+ __val; \
+})
+
+#endif /* _LOCORE */
+#endif /* _IBM4XX_DCR_H_ */
Index: dcr403cgx.h
===================================================================
RCS file: /cvsroot/src/sys/arch/powerpc/include/ibm4xx/dcr403cgx.h,v
retrieving revision 1.2
diff -u -r1.2 dcr403cgx.h
--- dcr403cgx.h 24 Dec 2005 22:45:36 -0000 1.2
+++ dcr403cgx.h 9 May 2006 23:18:51 -0000
@@ -36,17 +36,10 @@
* POSSIBILITY OF SUCH DAMAGE.
*/
+#include <powerpc/ibm4xx/dcr.h>
+
#ifndef _DCR403GCXP_H_
#define _DCR403GCXP_H_
-
-#ifndef _LOCORE
-#define mtdcr(reg, val) \
- __asm volatile("mtdcr %0,%1" : : "K"(reg), "r"(val))
-#define mfdcr(reg) \
- ( { u_int32_t val; \
- __asm volatile("mfdcr %0,%1" : "=r"(val) : "K"(reg)); \
- val; } )
-#endif /* _LOCORE */
/* Device Control Register declarations */
Index: dcr405gp.h
===================================================================
RCS file: /cvsroot/src/sys/arch/powerpc/include/ibm4xx/dcr405gp.h,v
retrieving revision 1.4
diff -u -r1.4 dcr405gp.h
--- dcr405gp.h 24 Dec 2005 22:45:36 -0000 1.4
+++ dcr405gp.h 9 May 2006 23:18:52 -0000
@@ -35,17 +35,10 @@
* POSSIBILITY OF SUCH DAMAGE.
*/
+#include <powerpc/ibm4xx/dcr.h>
+
#ifndef _DCR405GP_H_
#define _DCR405GP_H_
-
-#ifndef _LOCORE
-#define mtdcr(reg, val) \
- __asm volatile("mtdcr %0,%1" : : "K"(reg), "r"(val))
-#define mfdcr(reg) \
- ( { u_int32_t val; \
- __asm volatile("mfdcr %0,%1" : "=r"(val) : "K"(reg)); \
- val; } )
-#endif /* _LOCORE */
/* Device Control Register declarations */
Index: dcr405xx.h
===================================================================
RCS file: /cvsroot/src/sys/arch/powerpc/include/ibm4xx/dcr405xx.h,v
retrieving revision 1.4
diff -u -r1.4 dcr405xx.h
--- dcr405xx.h 24 Dec 2005 22:45:36 -0000 1.4
+++ dcr405xx.h 9 May 2006 23:18:55 -0000
@@ -30,6 +30,8 @@
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
+#include <powerpc/ibm4xx/dcr.h>
+
#ifndef _IBM4XX_DCR405XX_H_
#define _IBM4XX_DCR405XX_H_
@@ -38,16 +40,6 @@
* for AMCC(IBM) PowerPC 405 series
* 405CR/NPe405L/NPe405H/405EP/405GP/405GPr
*/
-
-#ifndef _LOCORE
-#define mtdcr(reg, val) \
- __asm volatile("mtdcr %0,%1" : : "K"(reg), "r"(val))
-#define mfdcr(reg) \
- ( { u_int32_t val; \
- __asm volatile("mfdcr %0,%1" : "=r"(val) : "K"(reg)); \
- val; } )
-#endif /* _LOCORE */
-
/*****************************************************************************/
/*
Home |
Main Index |
Thread Index |
Old Index