mirror of
https://gitlab.com/qemu-project/openbios.git
synced 2024-02-13 08:34:06 +08:00
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:
committed by
Andreas Färber
parent
28516584d1
commit
380cd335cc
@@ -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 -- ) */
|
||||
|
||||
@@ -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)) );
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -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 -- ) */
|
||||
|
||||
@@ -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 -- ) */
|
||||
|
||||
@@ -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 )
|
||||
|
||||
Reference in New Issue
Block a user