summaryrefslogtreecommitdiffstats
path: root/cpukit/score/macros/rtems/score/address.inl
diff options
context:
space:
mode:
Diffstat (limited to 'cpukit/score/macros/rtems/score/address.inl')
-rw-r--r--cpukit/score/macros/rtems/score/address.inl75
1 files changed, 75 insertions, 0 deletions
diff --git a/cpukit/score/macros/rtems/score/address.inl b/cpukit/score/macros/rtems/score/address.inl
new file mode 100644
index 0000000000..3797e8906d
--- /dev/null
+++ b/cpukit/score/macros/rtems/score/address.inl
@@ -0,0 +1,75 @@
+/* macros/address.h
+ *
+ * This include file contains the bodies of the routines
+ * about addresses which are inlined.
+ *
+ * COPYRIGHT (c) 1989-1999.
+ * On-Line Applications Research Corporation (OAR).
+ *
+ * The license and distribution terms for this file may be
+ * found in the file LICENSE in this distribution or at
+ * http://www.rtems.com/license/LICENSE.
+ *
+ * $Id$
+ */
+
+#ifndef _RTEMS_SCORE_ADDRESS_INL
+#define _RTEMS_SCORE_ADDRESS_INL
+
+/*PAGE
+ *
+ * _Addresses_Add_offset
+ *
+ */
+
+#define _Addresses_Add_offset( _base, _offset ) \
+ ((void *)((char *)(_base) + (_offset)))
+
+/*PAGE
+ *
+ * _Addresses_Subtract_offset
+ *
+ */
+
+#define _Addresses_Subtract_offset( _base, _offset ) \
+ ((void *)((char *)(_base) - (_offset)))
+
+/*PAGE
+ *
+ * _Addresses_Subtract
+ *
+ * NOTE: The cast of an address to an uint32_t makes this code
+ * dependent on an addresses being thirty two bits.
+ */
+
+#define _Addresses_Subtract( _left, _right ) \
+ ((void *)(_left) - (void *)(_right))
+
+/*PAGE
+ *
+ * _Addresses_Is_aligned
+ *
+ */
+
+#if (CPU_ALIGNMENT == 0)
+#define _Addresses_Is_aligned( _address ) \
+ (TRUE)
+#elif defined(RTEMS_CPU_HAS_16_BIT_ADDRESSES)
+#define _Addresses_Is_aligned( _address ) \
+ ( ( (unsigned short)(_address) % CPU_ALIGNMENT ) == 0 )
+#else
+#define _Addresses_Is_aligned( _address ) \
+ ( ( (uint32_t )(_address) % CPU_ALIGNMENT ) == 0 )
+#endif
+
+/*PAGE
+ *
+ * _Addresses_Is_in_range
+ *
+ */
+
+#define _Addresses_Is_in_range( _address, _base, _limit ) \
+ ( (_address) >= (_base) && (_address) <= (_limit) )
+
+#endif
+/* end of include file */