forked from Imagelibrary/rtems
* 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.
111 lines
2.3 KiB
C
111 lines
2.3 KiB
C
/* address.h
|
|
*
|
|
* This include file contains the information required to manipulate
|
|
* physical addresses.
|
|
*
|
|
* COPYRIGHT (c) 1988-2002.
|
|
* On-Line Applications Research Corporation (OAR).
|
|
* All rights reserved.
|
|
*
|
|
* $Id$
|
|
*/
|
|
|
|
#ifndef __ADDRESSES_h
|
|
#define __ADDRESSES_h
|
|
|
|
/*
|
|
* _Addresses_Add_offset
|
|
*
|
|
* DESCRIPTION:
|
|
*
|
|
* This function is used to add an offset to a base address.
|
|
* It returns the resulting address. This address is typically
|
|
* converted to an access type before being used further.
|
|
*/
|
|
|
|
STATIC INLINE void *_Addresses_Add_offset (
|
|
void *base,
|
|
unsigned32 offset
|
|
);
|
|
|
|
/*
|
|
* _Addresses_Subtract_offset
|
|
*
|
|
* DESCRIPTION:
|
|
*
|
|
* This function is used to subtract an offset from a base
|
|
* address. It returns the resulting address. This address is
|
|
* typically converted to an access type before being used further.
|
|
*/
|
|
|
|
STATIC INLINE void *_Addresses_Subtract_offset(
|
|
void *base,
|
|
unsigned32 offset
|
|
);
|
|
|
|
/*
|
|
* _Addresses_Add
|
|
*
|
|
* DESCRIPTION:
|
|
*
|
|
* This function is used to add two addresses. It returns the
|
|
* resulting address. This address is typically converted to an
|
|
* access type before being used further.
|
|
*/
|
|
|
|
STATIC INLINE void *_Addresses_Add (
|
|
void *left,
|
|
void *right
|
|
);
|
|
|
|
/*
|
|
* _Addresses_Subtract
|
|
*
|
|
* DESCRIPTION:
|
|
*
|
|
* This function is used to subtract two addresses. It returns the
|
|
* resulting offset.
|
|
*/
|
|
|
|
STATIC INLINE unsigned32 _Addresses_Subtract (
|
|
void *left,
|
|
void *right
|
|
);
|
|
|
|
/*
|
|
* _Addresses_Is_aligned
|
|
*
|
|
* DESCRIPTION:
|
|
*
|
|
* This function returns TRUE if the given address is correctly
|
|
* aligned for this processor and FALSE otherwise. Proper alignment
|
|
* is based on correctness and efficiency.
|
|
*/
|
|
|
|
STATIC INLINE boolean _Addresses_Is_aligned (
|
|
void *address
|
|
);
|
|
|
|
/*
|
|
* _Addresses_Is_in_range
|
|
*
|
|
* DESCRIPTION:
|
|
*
|
|
* This function returns TRUE if the given address is within the
|
|
* memory range specified and FALSE otherwise. base is the address
|
|
* of the first byte in the memory range and limit is the address
|
|
* of the last byte in the memory range. The base address is
|
|
* assumed to be lower than the limit address.
|
|
*/
|
|
|
|
STATIC INLINE boolean _Addresses_Is_in_range (
|
|
void *address,
|
|
void *base,
|
|
void *limit
|
|
);
|
|
|
|
#include "address.inl"
|
|
|
|
#endif
|
|
/* end of include file */
|