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);
_______________________________________________
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to