From f26f5fc12446e8e35bdcf0da30d271896a62a946 Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Tue, 23 Jul 2013 15:30:16 +0200 Subject: score: Merge address API into one file --- cpukit/score/inline/rtems/score/address.inl | 192 ---------------------------- 1 file changed, 192 deletions(-) delete mode 100644 cpukit/score/inline/rtems/score/address.inl (limited to 'cpukit/score/inline/rtems') diff --git a/cpukit/score/inline/rtems/score/address.inl b/cpukit/score/inline/rtems/score/address.inl deleted file mode 100644 index 590a80f4a7..0000000000 --- a/cpukit/score/inline/rtems/score/address.inl +++ /dev/null @@ -1,192 +0,0 @@ -/** - * @file - * - * @brief Inlined Routines Associated with Addresses - * - * This include file contains the bodies of the routines - * about addresses which are inlined. - */ - -/* - * COPYRIGHT (c) 1989-2008. - * 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. - */ - -#ifndef _RTEMS_SCORE_ADDRESS_H -# error "Never use directly; include instead." -#endif - -#ifndef _RTEMS_SCORE_ADDRESS_INL -#define _RTEMS_SCORE_ADDRESS_INL - -#include - -/** - * @addtogroup ScoreAddress - */ -/**@{**/ - -/** - * @brief Add offset to an address. - * - * This function is used to add an @a offset to a @a base address. - * It returns the resulting address. This address is typically - * converted to an access type before being used further. - * - * @param[in] base is the base address. - * @param[in] offset is the offset to add to @a base. - * - * @return This method returns the resulting address. - */ -#include -RTEMS_INLINE_ROUTINE void *_Addresses_Add_offset ( - const void *base, - uintptr_t offset -) -{ - return (void *)((uintptr_t)base + offset); -} - -/** - * @brief Subtract offset from offset. - * - * This function is used to subtract an @a offset from a @a base - * address. It returns the resulting address. This address is - * typically converted to an access type before being used further. - * - * @param[in] base is the base address. - * @param[in] offset is the offset to subtract to @a base. - * - * @return This method returns the resulting address. - */ - -RTEMS_INLINE_ROUTINE void *_Addresses_Subtract_offset ( - const void *base, - uintptr_t offset -) -{ - return (void *)((uintptr_t)base - offset); -} - -/** - * @brief Subtract two offsets. - * - * This function is used to subtract two addresses. It returns the - * resulting offset. - * - * @param[in] left is the address on the left hand side of the subtraction. - * @param[in] right is the address on the right hand side of the subtraction. - * - * @return This method returns the resulting address. - * - * @note The cast of an address to an uint32_t makes this code - * dependent on an addresses being thirty two bits. - */ -RTEMS_INLINE_ROUTINE int32_t _Addresses_Subtract ( - const void *left, - const void *right -) -{ - return (int32_t) ((const char *) left - (const char *) right); -} - -/** - * @brief Is address aligned. - * - * 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. - * - * @param[in] address is the address being checked for alignment. - * - * @retval true The @a address is aligned. - * @retval false The @a address is not aligned. - */ -RTEMS_INLINE_ROUTINE bool _Addresses_Is_aligned ( - const void *address -) -{ -#if (CPU_ALIGNMENT == 0) - return true; -#else - return (((uintptr_t)address % CPU_ALIGNMENT) == 0); -#endif -} - -/** - * @brief Is address in range. - * - * 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. - * - * @param[in] address is the address to check. - * @param[in] base is the lowest address of the range to check against. - * @param[in] limit is the highest address of the range to check against. - * - * @retval true The @a address is within the memory range specified - * @retval false The @a address is not within the memory range specified. - */ -RTEMS_INLINE_ROUTINE bool _Addresses_Is_in_range ( - const void *address, - const void *base, - const void *limit -) -{ - return (address >= base && address <= limit); -} - -/** - * @brief Align address to nearest multiple of alignment, rounding up. - * - * This function returns the given address aligned to the given alignment. - * If the address already is aligned, or if alignment is 0, the address is - * returned as is. The returned address is greater than or equal to the - * given address. - * - * @param[in] address is the address to align. - * @param[in] alignment is the boundary for alignment and must be a power of 2 - * - * @return Returns the aligned address. - */ -RTEMS_INLINE_ROUTINE void *_Addresses_Align_up( - void *address, - size_t alignment -) -{ - uintptr_t mask = alignment - (uintptr_t)1; - return (void*)(((uintptr_t)address + mask) & ~mask); -} - -/** - * @brief Align address to nearest multiple of alignment, truncating. - * - * This function returns the given address aligned to the given alignment. - * If the address already is aligned, or if alignment is 0, the address is - * returned as is. The returned address is less than or equal to the - * given address. - * - * @param[in] address is the address to align. - * @param[in] alignment is the boundary for alignment and must be a power of 2. - * - * @return Returns the aligned address. - */ -RTEMS_INLINE_ROUTINE void *_Addresses_Align_down( - void *address, - size_t alignment -) -{ - uintptr_t mask = alignment - (uintptr_t)1; - return (void*)((uintptr_t)address & ~mask); -} - -/** @} */ - -#endif -/* end of include file */ -- cgit v1.2.3