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
@@ -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)) );
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user