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

@@ -238,7 +238,7 @@ static void
grubfs_files_read( grubfs_info_t *mi )
{
int count = POP();
char *buf = (char *)POP();
char *buf = (char *)cell2pointer(POP());
grubfile_t *file = mi->gfs->fd;
int ret;
@@ -295,7 +295,7 @@ grubfs_files_seek( grubfs_info_t *mi )
static void
grubfs_files_load( grubfs_info_t *mi )
{
char *buf = (char *)POP();
char *buf = (char *)cell2pointer(POP());
int count, ret;
grubfile_t *file = mi->gfs->fd;
@@ -314,7 +314,7 @@ grubfs_files_get_path( grubfs_info_t *mi )
grubfile_t *file = mi->gfs->fd;
const char *path = file->path;
RET( (ucell) strdup(path) );
RET( pointer2cell(strdup(path)) );
}
/* ( -- cstr ) */
@@ -323,7 +323,7 @@ grubfs_files_get_fstype( grubfs_info_t *mi )
{
grubfs_t *gfs = mi->gfs;
PUSH( (ucell)strdup(gfs->fsys->name) );
PUSH( pointer2cell(strdup(gfs->fsys->name)) );
}