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
@@ -556,7 +556,7 @@ static void keyboard_read(void)
|
||||
char *addr;
|
||||
int len, key, i;
|
||||
len=POP();
|
||||
addr=(char *)POP();
|
||||
addr=(char *)cell2pointer(POP());
|
||||
|
||||
for (i = 0; i < len; i++) {
|
||||
key = adb_kbd_read(my_adb_dev);
|
||||
|
||||
@@ -137,7 +137,7 @@ escc_read(unsigned long *address)
|
||||
int len;
|
||||
|
||||
len = POP();
|
||||
addr = (char *)POP();
|
||||
addr = (char *)cell2pointer(POP());
|
||||
|
||||
if (len < 1)
|
||||
printk("escc_read: bad len, addr %x len %x\n", (unsigned int)addr, len);
|
||||
@@ -158,7 +158,7 @@ escc_write(unsigned long *address)
|
||||
int i, len;
|
||||
|
||||
len = POP();
|
||||
addr = (unsigned char *)POP();
|
||||
addr = (unsigned char *)cell2pointer(POP());
|
||||
|
||||
for (i = 0; i < len; i++) {
|
||||
uart_putchar(*address, addr[i]);
|
||||
|
||||
@@ -1190,7 +1190,7 @@ ob_ide_read_blocks(int *idx)
|
||||
{
|
||||
cell n = POP(), cnt=n;
|
||||
ucell blk = POP();
|
||||
unsigned char *dest = (unsigned char *)POP();
|
||||
unsigned char *dest = (unsigned char *)cell2pointer(POP());
|
||||
struct ide_drive *drive = *(struct ide_drive **)idx;
|
||||
|
||||
IDE_DPRINTF("ob_ide_read_blocks %lx block=%ld n=%ld\n",
|
||||
|
||||
Reference in New Issue
Block a user