[OpenBIOS] [commit] r989 - in trunk/openbios-devel: arch/sparc32 arch/sparc64 include/arch/sparc32 include/arch/sparc64 include/libopenbios
repository service
svn at openbios.org
Tue Dec 28 22:41:12 CET 2010
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);
+
/* malloc interface */
extern void* ofmem_malloc( size_t size );
extern void ofmem_free( void *ptr );
More information about the OpenBIOS
mailing list