blob: ec748b7534015feba56911483e3ca3d93b407378 (
plain) (
tree)
|
|
/* macros/address.h
*
* This include file contains the bodies of the routines
* about addresses which are inlined.
*
* COPYRIGHT (c) 1989-1997.
* On-Line Applications Research Corporation (OAR).
* Copyright assigned to U.S. Government, 1994.
*
* The license and distribution terms for this file may in
* the file LICENSE in this distribution or at
* http://www.OARcorp.com/rtems/license.html.
*
* $Id$
*/
#ifndef __MACROS_ADDRESSES_h
#define __MACROS_ADDRESSES_h
/*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 unsigned32 makes this code
* dependent on an addresses being thirty two bits.
*/
#define _Addresses_Subtract( _left, _right ) \
((void *)(_left) - (void *)(_right))
/*PAGE
*
* _Addresses_Is_aligned
*
*/
#define _Addresses_Is_aligned( _address ) \
( ( (unsigned32)(_address) % 4 ) == 0 )
/*PAGE
*
* _Addresses_Is_in_range
*
*/
#define _Addresses_Is_in_range( _address, _base, _limit ) \
( (_address) >= (_base) && (_address) <= (_limit) )
#endif
/* end of include file */
|