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
@@ -150,7 +150,7 @@ get_file_path( int fd )
|
||||
if( lookup_xt(fdp->ih, "get-path", &fdp->get_path_xt) )
|
||||
return NULL;
|
||||
call_package( fdp->get_path_xt, fdp->ih );
|
||||
return (char*)POP();
|
||||
return (char*)cell2pointer(POP());
|
||||
}
|
||||
|
||||
const char *
|
||||
@@ -160,7 +160,7 @@ get_volume_name( int fd )
|
||||
if( lookup_xt(fdp->ih, "volume-name", &fdp->volume_name_xt) )
|
||||
return NULL;
|
||||
call_package( fdp->volume_name_xt, fdp->ih );
|
||||
return (char*)POP();
|
||||
return (char*)cell2pointer(POP());
|
||||
}
|
||||
|
||||
const char *
|
||||
@@ -170,7 +170,7 @@ get_fstype( int fd )
|
||||
if( lookup_xt(fdp->ih, "get-fstype", &fdp->get_fstype_xt) )
|
||||
return NULL;
|
||||
call_package( fdp->get_fstype_xt, fdp->ih );
|
||||
return (char*)POP();
|
||||
return (char*)cell2pointer(POP());
|
||||
}
|
||||
|
||||
int
|
||||
@@ -183,7 +183,7 @@ read_io( int fd, void *buf, size_t cnt )
|
||||
if (fd != -1) {
|
||||
fdp = file_descriptors[fd];
|
||||
|
||||
PUSH( (ucell)buf );
|
||||
PUSH( pointer2cell(buf) );
|
||||
PUSH( cnt );
|
||||
call_package( fdp->read_xt, fdp->ih );
|
||||
ret = POP();
|
||||
|
||||
@@ -39,7 +39,7 @@ int forth_printf( const char *fmt, ... )
|
||||
i = vsnprintf(buf, sizeof(buf), fmt, args);
|
||||
va_end(args);
|
||||
|
||||
PUSH((ucell)buf);
|
||||
PUSH(pointer2cell(buf));
|
||||
PUSH(i);
|
||||
fword("type");
|
||||
|
||||
|
||||
Reference in New Issue
Block a user