PERFORCE change 227821 for review

Brooks Davis brooks at FreeBSD.org
Wed Apr 17 22:19:33 UTC 2013


http://p4web.freebsd.org/@@227821?ac=10

Change 227821 by brooks at brooks_zenith on 2013/04/17 22:18:52

	Improve generic_bs_*_8 implementation with issues found while
	submitting for revew and as a result of review.

Affected files ...

.. //depot/projects/ctsrd/beribsd/src/sys/mips/include/cpufunc.h#6 edit
.. //depot/projects/ctsrd/beribsd/src/sys/mips/mips/bus_space_generic.c#11 edit

Differences ...

==== //depot/projects/ctsrd/beribsd/src/sys/mips/include/cpufunc.h#6 (text+ko) ====

@@ -354,11 +354,15 @@
 #define	readb(va)	(*(volatile uint8_t *) (va))
 #define	readw(va)	(*(volatile uint16_t *) (va))
 #define	readl(va)	(*(volatile uint32_t *) (va))
-#define	readd(va)	mips3_ld(va)
+#if defined(__GNUC__) && !defined(__mips_o32)
+#define	readq(a)	(*(volatile uint64_t *)(a))
+#endif
  
 #define	writeb(va, d)	(*(volatile uint8_t *) (va) = (d))
 #define	writew(va, d)	(*(volatile uint16_t *) (va) = (d))
 #define	writel(va, d)	(*(volatile uint32_t *) (va) = (d))
-#define	writed(va, d)	mips3_sd((va), (d))
+#if defined(__GNUC__) && !defined(__mips_o32)
+#define	writeq(va, d)	(*(volatile uint64_t *) (va) = (d))
+#endif
 
 #endif /* !_MACHINE_CPUFUNC_H_ */

==== //depot/projects/ctsrd/beribsd/src/sys/mips/mips/bus_space_generic.c#11 (text+ko) ====

@@ -219,11 +219,15 @@
 #define rd8(a) readb(a)
 #define rd16(a) readw(a)
 #define rd32(a) readl(a)
-#define rd64(a)	readd(a)
+#ifdef readq
+#define rd64(a)	readq((a))
+#endif
 #define wr8(a, v) writeb(a, v)
 #define wr16(a, v) writew(a, v)
 #define wr32(a, v) writel(a, v)
-#define wr64(a, v) writed(a, v)
+#ifdef writeq
+#define wr64(a, v) writeq(a, v)
+#endif
 #endif
 
 /* generic bus_space tag */
@@ -441,7 +445,7 @@
     uint64_t value)
 {
 
-#ifdef rd64
+#ifdef wr64
 	wr64(bsh + offset, value);
 #else
 	panic("%s: not implemented", __func__);
@@ -486,7 +490,7 @@
 generic_bs_wm_8(void *t, bus_space_handle_t bsh, bus_size_t offset,
     const uint64_t *addr, size_t count)
 {
-#ifdef rd64
+#ifdef wr64
 	bus_addr_t baddr = bsh + offset;
 
 	while (count--)
@@ -540,7 +544,7 @@
 generic_bs_wr_8(void *t, bus_space_handle_t bsh, bus_size_t offset,
     const uint64_t *addr, size_t count)
 {
-#ifdef rd64
+#ifdef wr64
 	bus_addr_t baddr = bsh + offset;
 
 	while (count--) {
@@ -590,7 +594,7 @@
 generic_bs_sm_8(void *t, bus_space_handle_t bsh, bus_size_t offset,
     uint64_t value, size_t count)
 {
-#ifdef rd64
+#ifdef wr64
 	bus_addr_t addr = bsh + offset;
 
 	while (count--)
@@ -638,7 +642,7 @@
 generic_bs_sr_8(void *t, bus_space_handle_t bsh, bus_size_t offset,
     uint64_t value, size_t count)
 {
-#ifdef rd64
+#ifdef wr64
 	bus_addr_t addr = bsh + offset;
 
 	for (; count != 0; count--, addr += 8)
@@ -716,7 +720,7 @@
 generic_bs_c_8(void *t, bus_space_handle_t bsh1, bus_size_t off1,
     bus_space_handle_t bsh2, bus_size_t off2, size_t count)
 {
-#ifdef rd64
+#if defined(rd64) && defined(wr64)
 	bus_addr_t addr1 = bsh1 + off1;
 	bus_addr_t addr2 = bsh2 + off2;
 


More information about the p4-projects mailing list