add missing RAW_ADDRs

This commit is contained in:
okuji 1999-08-04 19:38:05 +00:00
parent 89b82dcc84
commit 0623b3f394
2 changed files with 19 additions and 9 deletions

View file

@ -1,3 +1,8 @@
1999-08-05 Pavel Roskin <pavel_roskin@geocities.com>
* stage2/boot.c (load_image): Use RAW_ADDR macro when loading
an a.out kernel.
1999-08-04 OKUJI Yoshinori <okuji@kuicr.kyoto-u.ac.jp> 1999-08-04 OKUJI Yoshinori <okuji@kuicr.kyoto-u.ac.jp>
* stage2/asm.S: Make each of the addr32 and data32 prefixes * stage2/asm.S: Make each of the addr32 and data32 prefixes

View file

@ -312,7 +312,7 @@ load_image (void)
printf (", loadaddr=0x%x, text%s=0x%x", cur_addr, str, text_len); printf (", loadaddr=0x%x, text%s=0x%x", cur_addr, str, text_len);
/* read text, then read data */ /* read text, then read data */
if (grub_read ((char *) cur_addr, text_len) == text_len) if (grub_read ((char *) RAW_ADDR (cur_addr), text_len) == text_len)
{ {
cur_addr += text_len; cur_addr += text_len;
@ -326,15 +326,16 @@ load_image (void)
printf (", data=0x%x", data_len); printf (", data=0x%x", data_len);
if (grub_read ((char *) cur_addr, data_len) != data_len && if ((grub_read ((char *) RAW_ADDR (cur_addr), data_len)
!errnum) != data_len)
&& !errnum)
errnum = ERR_EXEC_FORMAT; errnum = ERR_EXEC_FORMAT;
cur_addr += data_len; cur_addr += data_len;
} }
if (!errnum) if (!errnum)
{ {
memset ((char *) cur_addr, 0, bss_len); memset ((char *) RAW_ADDR (cur_addr), 0, bss_len);
cur_addr += bss_len; cur_addr += bss_len;
printf (", bss=0x%x", bss_len); printf (", bss=0x%x", bss_len);
@ -353,18 +354,21 @@ load_image (void)
mbi.syms.a.addr = cur_addr; mbi.syms.a.addr = cur_addr;
*(((int *) cur_addr)++) = pu.aout->a_syms; *((int *) RAW_ADDR (cur_addr)) = pu.aout->a_syms;
cur_addr += sizeof (int);
printf (", symtab=0x%x", pu.aout->a_syms); printf (", symtab=0x%x", pu.aout->a_syms);
if (grub_read ((char *) cur_addr, pu.aout->a_syms) == pu.aout->a_syms) if (grub_read ((char *) RAW_ADDR (cur_addr), pu.aout->a_syms)
== pu.aout->a_syms)
{ {
cur_addr += pu.aout->a_syms; cur_addr += pu.aout->a_syms;
mbi.syms.a.tabsize = pu.aout->a_syms; mbi.syms.a.tabsize = pu.aout->a_syms;
if (grub_read ((char *) &i, sizeof (int)) == sizeof (int)) if (grub_read ((char *) &i, sizeof (int)) == sizeof (int))
{ {
*(((int *) cur_addr)++) = i; *((int *) RAW_ADDR (cur_addr)) = i;
cur_addr += sizeof (int);
mbi.syms.a.strsize = i; mbi.syms.a.strsize = i;
@ -372,7 +376,8 @@ load_image (void)
printf (", strtab=0x%x", i); printf (", strtab=0x%x", i);
symtab_err = (grub_read ((char *) cur_addr, i) != i); symtab_err = (grub_read ((char *) RAW_ADDR (cur_addr), i)
!= i);
cur_addr += i; cur_addr += i;
} }
else else