[OpenBIOS] [commit] r989 - in trunk/openbios-devel: arch/sparc32 arch/sparc64 include/arch/sparc32 include/arch/sparc64 include/libopenbios

Blue Swirl blauwirbel at gmail.com
Wed Dec 29 19:52:58 CET 2010


On Tue, Dec 28, 2010 at 9:41 PM, repository service <svn at openbios.org> wrote:
> Author: mcayland
> Date: Tue Dec 28 22:41:11 2010
> New Revision: 989
> URL: http://tracker.coreboot.org/trac/openbios/changeset/989
>
> Log:
> Move pa2va() and va2pa() inline functions from the io.h header files to lib.c for both SPARC32 and SPARC64.
>
> Also introduce the correct phys_addr_t type for physical addresses.
>
> Signed-off-by: Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
>
> Modified:
>   trunk/openbios-devel/arch/sparc32/lib.c
>   trunk/openbios-devel/arch/sparc64/lib.c
>   trunk/openbios-devel/include/arch/sparc32/io.h
>   trunk/openbios-devel/include/arch/sparc64/io.h
>   trunk/openbios-devel/include/libopenbios/ofmem.h
>
> Modified: trunk/openbios-devel/arch/sparc32/lib.c
> ==============================================================================
> --- trunk/openbios-devel/arch/sparc32/lib.c     Fri Dec 24 23:36:33 2010        (r988)
> +++ trunk/openbios-devel/arch/sparc32/lib.c     Tue Dec 28 22:41:11 2010        (r989)
> @@ -87,6 +87,27 @@
>  } ofmem;
>  #define ALLOC_BLOCK (64 * 1024)
>
> +/* Private functions for mapping between physical/virtual addresses */
> +inline phys_addr_t
> +va2pa(unsigned long va)
> +{
> +    if ((va >= (unsigned long)&_start) &&
> +        (va < (unsigned long)&_end))
> +        return va - va_shift;
> +    else
> +        return va;
> +}
> +
> +inline unsigned long
> +pa2va(phys_addr_t pa)
> +{
> +    if ((pa + va_shift >= (unsigned long)&_start) &&
> +        (pa + va_shift < (unsigned long)&_end))
> +        return pa + va_shift;
> +    else
> +        return pa;
> +}
> +
>  // XXX should be posix_memalign
>  static int
>  posix_memalign2(void **memptr, size_t alignment, size_t size)
>
> Modified: trunk/openbios-devel/arch/sparc64/lib.c
> ==============================================================================
> --- trunk/openbios-devel/arch/sparc64/lib.c     Fri Dec 24 23:36:33 2010        (r988)
> +++ trunk/openbios-devel/arch/sparc64/lib.c     Tue Dec 28 22:41:11 2010        (r989)
> @@ -36,6 +36,27 @@
>        return i;
>  }
>
> +/* Private functions for mapping between physical/virtual addresses */
> +inline phys_addr_t
> +va2pa(unsigned long va)
> +{
> +    if ((va >= (unsigned long)&_start) &&
> +        (va < (unsigned long)&_end))
> +        return va - va_shift;
> +    else
> +        return va;
> +}
> +
> +inline unsigned long
> +pa2va(phys_addr_t pa)
> +{
> +    if ((pa + va_shift >= (unsigned long)&_start) &&
> +        (pa + va_shift < (unsigned long)&_end))
> +        return pa + va_shift;
> +    else
> +        return pa;
> +}
> +
>  void *malloc(int size)
>  {
>        return ofmem_malloc(size);
>
> Modified: trunk/openbios-devel/include/arch/sparc32/io.h
> ==============================================================================
> --- trunk/openbios-devel/include/arch/sparc32/io.h      Fri Dec 24 23:36:33 2010        (r988)
> +++ trunk/openbios-devel/include/arch/sparc32/io.h      Tue Dec 28 22:41:11 2010        (r989)
> @@ -8,26 +8,6 @@
>  // Defined in ldscript
>  extern char _start, _data, _stack, _estack, _end, _vmem, _evmem, _iomem;
>
> -static inline unsigned long
> -va2pa(unsigned long va)
> -{
> -    if ((va >= (unsigned long)&_start) &&
> -        (va < (unsigned long)&_end))
> -        return va - va_shift;
> -    else
> -        return va;
> -}
> -
> -static inline unsigned long
> -pa2va(unsigned long pa)
> -{
> -    if ((pa + va_shift >= (unsigned long)&_start) &&
> -        (pa + va_shift < (unsigned long)&_end))
> -        return pa + va_shift;
> -    else
> -        return pa;
> -}
> -
>  // XXX check use and merge
>  #define phys_to_virt(phys) ((void *) ((unsigned long) (phys)))
>  #define virt_to_phys(virt) ((unsigned long) (virt))
>
> Modified: trunk/openbios-devel/include/arch/sparc64/io.h
> ==============================================================================
> --- trunk/openbios-devel/include/arch/sparc64/io.h      Fri Dec 24 23:36:33 2010        (r988)
> +++ trunk/openbios-devel/include/arch/sparc64/io.h      Tue Dec 28 22:41:11 2010        (r989)
> @@ -11,26 +11,6 @@
>  // Defined in ldscript
>  extern char _start, _data, _stack, _estack, _end, _vmem, _evmem, _iomem;
>
> -static inline unsigned long
> -va2pa(unsigned long va)
> -{
> -    if ((va >= (unsigned long)&_data) &&
> -        (va < (unsigned long)&_end))
> -        return va - va_shift;
> -    else
> -        return va;
> -}
> -
> -static inline unsigned long
> -pa2va(unsigned long pa)
> -{
> -    if ((pa + va_shift >= (unsigned long)&_data) &&
> -        (pa + va_shift< (unsigned long)&_end))
> -        return pa + va_shift;
> -    else
> -        return pa;
> -}
> -
>  // XXX check use and merge
>  #define phys_to_virt(phys) ((void *) ((unsigned long) (phys)))
>  #define virt_to_phys(virt) ((unsigned long) (virt))
>
> Modified: trunk/openbios-devel/include/libopenbios/ofmem.h
> ==============================================================================
> --- trunk/openbios-devel/include/libopenbios/ofmem.h    Fri Dec 24 23:36:33 2010        (r988)
> +++ trunk/openbios-devel/include/libopenbios/ofmem.h    Tue Dec 28 22:41:11 2010        (r989)
> @@ -75,6 +75,10 @@
>  extern int             ofmem_map_page_range( phys_addr_t phys, ucell virt, ucell size,
>                                       ucell mode );
>
> +/* Private functions for mapping between physical/virtual addresses */
> +extern inline phys_addr_t va2pa(unsigned long va);
> +extern inline unsigned long pa2va(phys_addr_t pa);

'inline' with 'extern' does not make much sense.



More information about the OpenBIOS mailing list