summaryrefslogtreecommitdiffstats
path: root/cpukit/score/inline/rtems/score/address.inl
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>2008-10-03 22:27:01 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>2008-10-03 22:27:01 +0000
commitdb41bb6784c6f7da698eda25c969082143e65b43 (patch)
tree11a87692f381ac4205491f4f18c1fec16f76ece6 /cpukit/score/inline/rtems/score/address.inl
parent2008-10-03 Joel Sherrill <joel.sherrill@oarcorp.com> (diff)
downloadrtems-db41bb6784c6f7da698eda25c969082143e65b43.tar.bz2
2008-10-03 Joel Sherrill <joel.sherrill@oarcorp.com>
* libcsupport/src/printk.c: Addresses can be larger than integers so use long for %p formats. * score/inline/rtems/score/address.inl: Offsets can be positive or negative, so use int32_t. Also do math with intptr_t since there are cases where the number of bits in an address do not equal the number of bits in an integer. * score/inline/rtems/score/heap.inl: Offsets can be positive or negative, so use int32_t.
Diffstat (limited to 'cpukit/score/inline/rtems/score/address.inl')
-rw-r--r--cpukit/score/inline/rtems/score/address.inl11
1 files changed, 6 insertions, 5 deletions
diff --git a/cpukit/score/inline/rtems/score/address.inl b/cpukit/score/inline/rtems/score/address.inl
index 3394a52388..fb44781e6d 100644
--- a/cpukit/score/inline/rtems/score/address.inl
+++ b/cpukit/score/inline/rtems/score/address.inl
@@ -6,7 +6,7 @@
*/
/*
- * COPYRIGHT (c) 1989-2006.
+ * COPYRIGHT (c) 1989-2008.
* On-Line Applications Research Corporation (OAR).
*
* The license and distribution terms for this file may be
@@ -39,12 +39,13 @@
*
* @return This method returns the resulting address.
*/
+#include <rtems/bspIo.h>
RTEMS_INLINE_ROUTINE void *_Addresses_Add_offset (
void *base,
- uint32_t offset
+ int32_t offset
)
{
- return (void *)((char *)base + offset);
+ return (void *)((intptr_t)base + offset);
}
/** @brief Subtract Offset from Offset
@@ -61,10 +62,10 @@ RTEMS_INLINE_ROUTINE void *_Addresses_Add_offset (
RTEMS_INLINE_ROUTINE void *_Addresses_Subtract_offset (
void *base,
- uint32_t offset
+ int32_t offset
)
{
- return (void *)((char *)base - offset);
+ return (void *)((intptr_t)base - offset);
}
/** @brief Subtract Two Offsets