svn commit: r210911 - head/sys/mips/sibyte

Neel Natu neel at FreeBSD.org
Fri Aug 6 05:30:56 UTC 2010


Author: neel
Date: Fri Aug  6 05:30:55 2010
New Revision: 210911
URL: http://svn.freebsd.org/changeset/base/210911

Log:
  Use a signed integer to hold the address of a register.
  
  This does the right thing by sign extending the address when compiling for
  the n64 abi.

Modified:
  head/sys/mips/sibyte/sb_scd.c

Modified: head/sys/mips/sibyte/sb_scd.c
==============================================================================
--- head/sys/mips/sibyte/sb_scd.c	Fri Aug  6 05:24:41 2010	(r210910)
+++ head/sys/mips/sibyte/sb_scd.c	Fri Aug  6 05:30:55 2010	(r210911)
@@ -45,8 +45,8 @@ __FBSDID("$FreeBSD$");
  *
  * We use the mips_ld() and mips_sd() functions to do this for us.
  */
-#define	sb_store64(addr, val)	mips3_sd((uint64_t *)(addr), (val))
-#define	sb_load64(addr)		mips3_ld((uint64_t *)(addr))
+#define	sb_store64(addr, val)	mips3_sd((uint64_t *)(uintptr_t)(addr), (val))
+#define	sb_load64(addr)		mips3_ld((uint64_t *)(uintptr_t)(addr))
 
 /*
  * System Control and Debug (SCD) unit on the Sibyte ZBbus.
@@ -131,7 +131,7 @@ sb_system_reset(void)
 void
 sb_disable_intsrc(int cpu, int src)
 {
-	uint32_t regaddr;
+	int regaddr;
 	uint64_t val;
 
 	regaddr = INTSRC_MASK_ADDR(cpu);
@@ -144,7 +144,7 @@ sb_disable_intsrc(int cpu, int src)
 void
 sb_enable_intsrc(int cpu, int src)
 {
-	uint32_t regaddr;
+	int regaddr;
 	uint64_t val;
 
 	regaddr = INTSRC_MASK_ADDR(cpu);
@@ -157,7 +157,7 @@ sb_enable_intsrc(int cpu, int src)
 void
 sb_write_intsrc_mask(int cpu, uint64_t val)
 {
-	uint32_t regaddr;
+	int regaddr;
 
 	regaddr = INTSRC_MASK_ADDR(cpu);
 	sb_store64(regaddr, val);
@@ -166,7 +166,7 @@ sb_write_intsrc_mask(int cpu, uint64_t v
 uint64_t
 sb_read_intsrc_mask(int cpu)
 {
-	uint32_t regaddr;
+	int regaddr;
 	uint64_t val;
 
 	regaddr = INTSRC_MASK_ADDR(cpu);
@@ -178,7 +178,7 @@ sb_read_intsrc_mask(int cpu)
 void
 sb_write_intmap(int cpu, int intsrc, int intrnum)
 {
-	uint32_t regaddr;
+	int regaddr;
 
 	regaddr = INTSRC_MAP_ADDR(cpu, intsrc);
 	sb_store64(regaddr, intrnum);
@@ -187,7 +187,7 @@ sb_write_intmap(int cpu, int intsrc, int
 int
 sb_read_intmap(int cpu, int intsrc)
 {
-	uint32_t regaddr;
+	int regaddr;
 
 	regaddr = INTSRC_MAP_ADDR(cpu, intsrc);
 	return (sb_load64(regaddr) & 0x7);
@@ -227,7 +227,7 @@ sb_read_sysrev(void)
 void
 sb_set_mailbox(int cpu, uint64_t val)
 {
-	uint32_t regaddr;
+	int regaddr;
 
 	regaddr = MAILBOX_SET_ADDR(cpu);
 	sb_store64(regaddr, val);
@@ -236,7 +236,7 @@ sb_set_mailbox(int cpu, uint64_t val)
 void
 sb_clear_mailbox(int cpu, uint64_t val)
 {
-	uint32_t regaddr;
+	int regaddr;
 
 	regaddr = MAILBOX_CLEAR_ADDR(cpu);
 	sb_store64(regaddr, val);


More information about the svn-src-head mailing list