Don't assume that pointer and cell size are identical, part 1

On ppc64, cell size is 32 bits but pointers are 64-bit.
Thus, direct casts result in warnings, treated as errors.

Use [u]intptr_t cast or cell2pointer and pointer2cell macros as necessary.

v2:
* Drop changes related to physical addresses since physical addresses may be
  wider than pointers (e.g., 36 bits on sparc32, as pointed out by Blue).
* Drop changes to cell2pointer() and pointer2cell() for now.

Signed-off-by: Andreas Färber <andreas.faerber@web.de>


git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@922 f158a5a8-5612-0410-a976-696ce0be7e32
This commit is contained in:
Andreas Färber
2010-10-25 20:48:45 +00:00
committed by Andreas Färber
parent 28516584d1
commit 380cd335cc
27 changed files with 93 additions and 94 deletions

View File

@@ -110,7 +110,7 @@ void* ofmem_malloc( size_t size )
top = ofmem_arch_get_heap_top();
if( (ucell)ofmem->next_malloc + size > top ) {
if( pointer2cell(ofmem->next_malloc) + size > top ) {
printk("out of malloc memory (%x)!\n", size );
return NULL;
}
@@ -183,10 +183,9 @@ ofmem_set_property( phandle_t ph, const char *name, const char *buf, int len )
printk("ofmem_set_property: NULL phandle\n");
return;
}
PUSH((ucell)buf);
PUSH(pointer2cell(buf));
PUSH(len);
PUSH((ucell)name);
PUSH(strlen(name));
push_str(name);
PUSH_ph(ph);
fword("encode-property");
}