mirror of
https://gitlab.rtems.org/rtems/rtos/rtems.git
synced 2025-12-08 00:23:14 +00:00
* SUPPORT, LICENSE: New files. * Numerous files touched as part of merging the 4.5 branch onto the mainline development trunk and ensuring that the script that cuts snapshots and releases works on the documentation.
106 lines
1.6 KiB
C++
106 lines
1.6 KiB
C++
/* inline/address.inl
|
|
*
|
|
* This include file contains the bodies of the routines
|
|
* about addresses which are inlined.
|
|
*
|
|
* COPYRIGHT (c) 1988-2002.
|
|
* On-Line Applications Research Corporation (OAR).
|
|
* All rights reserved.
|
|
*
|
|
* $Id$
|
|
*/
|
|
|
|
#ifndef __INLINE_ADDRESSES_inl
|
|
#define __INLINE_ADDRESSES_inl
|
|
|
|
/*PAGE
|
|
*
|
|
* _Addresses_Add_offset
|
|
*
|
|
*/
|
|
|
|
STATIC INLINE void *_Addresses_Add_offset (
|
|
void *base,
|
|
unsigned32 offset
|
|
)
|
|
{
|
|
return (base + offset);
|
|
}
|
|
|
|
/*PAGE
|
|
*
|
|
* _Addresses_Subtract_offset
|
|
*
|
|
*/
|
|
|
|
STATIC INLINE void *_Addresses_Subtract_offset (
|
|
void *base,
|
|
unsigned32 offset
|
|
)
|
|
{
|
|
return (base - offset);
|
|
}
|
|
|
|
/*PAGE
|
|
*
|
|
* _Addresses_Add
|
|
*
|
|
* NOTE: The cast of an address to an unsigned32 makes this code
|
|
* dependent on an addresses being thirty two bits.
|
|
*/
|
|
|
|
STATIC INLINE void *_Addresses_Add (
|
|
void *left,
|
|
void *right
|
|
)
|
|
{
|
|
return (left + (unsigned32)right);
|
|
}
|
|
|
|
/*PAGE
|
|
*
|
|
* _Addresses_Subtract
|
|
*
|
|
* NOTE: The cast of an address to an unsigned32 makes this code
|
|
* dependent on an addresses being thirty two bits.
|
|
*/
|
|
|
|
STATIC INLINE unsigned32 _Addresses_Subtract (
|
|
void *left,
|
|
void *right
|
|
)
|
|
{
|
|
return (left - right);
|
|
}
|
|
|
|
/*PAGE
|
|
*
|
|
* _Addresses_Is_aligned
|
|
*
|
|
*/
|
|
|
|
STATIC INLINE boolean _Addresses_Is_aligned (
|
|
void *address
|
|
)
|
|
{
|
|
return ( ( (unsigned32)address % 4 ) == 0 );
|
|
}
|
|
|
|
/*PAGE
|
|
*
|
|
* _Addresses_Is_aligned
|
|
*
|
|
*/
|
|
|
|
STATIC INLINE boolean _Addresses_Is_in_range (
|
|
void *address,
|
|
void *base,
|
|
void *limit
|
|
)
|
|
{
|
|
return ( address >= base && address <= limit );
|
|
}
|
|
|
|
#endif
|
|
/* end of include file */
|