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

@@ -144,7 +144,7 @@ static void
ext2_files_read( ext2_info_t *mi )
{
int count = POP();
char *buf = (char *)POP();
char *buf = (char *)cell2pointer(POP());
ext2_COMMON *common = mi->common;
if (common->type != FILE)
@@ -177,7 +177,7 @@ ext2_files_seek( ext2_info_t *mi )
static void
ext2_files_load( ext2_info_t *mi )
{
char *buf = (char *)POP();
char *buf = (char *)cell2pointer(POP());
int count;
ext2_COMMON *common = mi->common;
@@ -201,14 +201,14 @@ ext2_files_get_path( ext2_info_t *mi )
if (common->type != FILE)
RET( 0 );
RET( (ucell) strdup(common->file->path) );
RET( pointer2cell(strdup(common->file->path)) );
}
/* ( -- cstr ) */
static void
ext2_files_get_fstype( ext2_info_t *mi )
{
PUSH( (ucell)strdup("ext2") );
PUSH( pointer2cell(strdup("ext2")) );
}
/* static method, ( pathstr len ihandle -- ) */

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)) );
}

View File

@@ -359,7 +359,7 @@ static void
hfs_files_read( hfs_info_t *mi )
{
int count = POP();
char *buf = (char *)POP();
char *buf = (char *)cell2pointer(POP());
hfscommon *common = mi->common;
if (common->type != FILE)
@@ -402,7 +402,7 @@ hfs_files_seek( hfs_info_t *mi )
static void
hfs_files_load( hfs_info_t *mi )
{
char *buf = (char *)POP();
char *buf = (char *)cell2pointer(POP());
int count;
hfscommon *common = mi->common;
@@ -461,14 +461,14 @@ hfs_files_get_path( hfs_info_t *mi )
if( strlen(buf) >= sizeof(buf) )
RET( 0 );
RET( (ucell) strdup(buf+start) );
RET( pointer2cell(strdup(buf+start)) );
}
/* ( -- cstr ) */
static void
hfs_files_get_fstype( hfs_info_t *mi )
{
PUSH( (ucell)strdup("HFS") );
PUSH( pointer2cell(strdup("HFS")) );
}
/* ( -- cstr|0 ) */
@@ -486,7 +486,7 @@ hfs_files_volume_name( hfs_info_t *mi )
volname[0] = '\0';
}
PUSH ((ucell)volname);
PUSH(pointer2cell(volname));
}
/* static method, ( pathstr len ihandle -- ) */

View File

@@ -264,7 +264,7 @@ static void
hfsp_files_read( hfsp_info_t *mi )
{
int count = POP();
char *buf = (char *)POP();
char *buf = (char *)cell2pointer(POP());
hfsp_file_t *t = mi->hfspfile;
volume *vol = t->rec.tree->vol;
@@ -350,7 +350,7 @@ hfsp_files_seek( hfsp_info_t *mi )
static void
hfsp_files_load( hfsp_info_t *mi )
{
char *buf = (char *)POP();
char *buf = (char *)cell2pointer(POP());
hfsp_file_t *t = mi->hfspfile;
volume *vol = t->rec.tree->vol;
@@ -388,7 +388,7 @@ hfsp_files_load( hfsp_info_t *mi )
static void
hfsp_files_get_fstype( hfsp_info_t *mi )
{
PUSH( (ucell)strdup("HFS+") );
PUSH( pointer2cell(strdup("HFS+")) );
}
/* ( -- cstr ) */
@@ -405,7 +405,7 @@ hfsp_files_get_path( hfsp_info_t *mi )
strncpy( buf, t->path, strlen(t->path) );
buf[strlen(t->path)] = 0;
PUSH ((ucell)buf);
PUSH(pointer2cell(buf));
}
/* ( -- success? ) */
@@ -434,7 +434,7 @@ hfsp_files_volume_name( hfsp_info_t *mi )
volname[0] = '\0';
}
PUSH ((ucell)volname);
PUSH(pointer2cell(volname));
}
/* static method, ( pathstr len ihandle -- ) */

View File

@@ -90,7 +90,7 @@ static void
iso9660_files_read( iso9660_info_t *mi )
{
int count = POP();
char *buf = (char *)POP();
char *buf = (char *)cell2pointer(POP());
int ret;
if ( mi->common->type != FILE )
@@ -137,7 +137,7 @@ iso9660_files_offset( iso9660_info_t *mi )
static void
iso9660_files_load( iso9660_info_t *mi)
{
char *buf = (char*)POP();
char *buf = (char*)cell2pointer(POP());
int ret, size;
if ( mi->common->type != FILE )